Style Updates

For better or worse, there have been a number of stylesheet updates around here, so you may notice things looking slightly different. First off are the shadows behind the main content box, for whose sake non-semantic elements were added to this page for the first time ever. How quick we are to sell out!

Speaking of selling out, text advertisements may appear at the top every now and then. Yes they suck but it’s the holidays and extra cash is always nice.

I moved the background image for the post titles from the anchor element to the h2 element to prevent the blinking when you rolled over the titles in IE on Windows. My Mother will be sorely disappointed as she thought that was a rather cool effect I had done intentionally. I wish!

Tantek and Eric informed me that my site was completely borked in respectively Mac IE 5 and Safari. This site is an experiment, so I make no guarantees as to browser compabilitiy but I try to be good about testing things on browsers available to me. Last night I used Greg’s Powerbook to see what was going on. It seems Safari was having trouble with some commented out content (the ads that are temporarily disabled) so I moved that from HTML comments to PHP comments. Commenting things out server-side is actually a much better practice because it keeps the source code maintainability for you the author but hides the comments from any visitors. There is also a savings in bandwidth, but in many cases that will be minimal. So as a best practice go from:

<-- Three extra divs added because prima the donna designer just HAD to have his shadows. And my idiot boss agrees with him. -->

to:

<?php /* :-- Three extra divs added because the prima donna designer just HAD to have his shadows. And my idiot boss agrees with him. And they'll never see this comment. MUHAHAHA! */ ?>

As for Mac IE, I wasn’t sure where to begin. It doesn’t handle the float on the menu list items well so instead of a nice tabby menu you have a series of giant honking bars in the header. I could go to display: inline for the navigation list items and work with the horizontal menu from there, but I’ve always prefered having the list items floated and the anchors as blocks, which you can’t do when the containing list element is inline. If I remember correctly Eric helped me around this problem before on the WordPress site (thank you!) by giving the items a fixed width, but I don’t have the space to burn here like I did on that menu.

Checking over my stats, Mac IE users make up approximately 2.1% of my viewing audience over the life of this site, and closer to 0.9% over the last month. Uowever is this low and declining number because other browsers are now in vogue on the Mac and IE hasn’t been updated recently to quench Mac users’ insatiable desire for upgrades? Or is it because my site looks so bad in their browser? The world may never know.

So the moral of the story is: the web is a jungle and watch your comments when on Safari.

Problem With Trackback

Today I was cleaning up some of the trackback code for WordPress when a number of things struck me about Trackback, which I’m sure someone has thought of before but I’m surprised they haven’t been addressed in the specification.

First off, what is trackback? On movabletype.org there is a Beginner’s Guide to TrackBack that is pretty thorough. Interestingly though they mention the names of several “tools” that have implemented TrackBack (as <strong> no less) they don’t link to any of them. If you’re not familiar with Trackback go read the first section of that to get up to speed.

A commonly requested feature is the ability to send a trackback ping when editing an entry. This has been especially needed since we’ve implemented post status flags (so you can, for example, save your post as a draft and work on it later). There are a couple of logical steps to implementing this, the first of which being that we need to track what pings have and haven’t been sent yet. Then the posting code had to modified a bit to only send trackback pings when an entry was published, and to not ping a URI that had been pinged before, et cetera. Not terribly hard stuff, just a bit of code to go through and some testing to make sure everything worked right.

Now that we have a nice record of pings that have been sent, I thought it would be nice to add that data to the default template for WordPress, as Trackback suffers from the same one-way linking problem it was trying to solve. That is, if I trackback another site my ping will show up in their comments or their trackbacks, but there’s nothing on my site indicating I sent that ping.

Then I realized that this set of pinged URIs I had was close to useless. What does a URI like http://www.movabletype.org/mt/trackback/55 mean anyway? If you enter it in your browser you get an XML error back. If you append a query string to it with ?__mode=rss with some implementations you will get a RSS .91 feed of trackbacks sent from that entry, from which you could extract the actual URI of the resource that http://www.movabletype.org/mt/trackback/55 is relevant to, but what a hassle. You can sweep things like this under the rug with a convoluted “auto-discovery” functionality (which is using sloppily embedded RDF instead of <link>… why?) but these problems are easy enough to solve that they should be.

(A side note, a URI tied to a unique ID system specific to a particular software platform does very little to suggest permanence to me. Are we going to have sent ping URI link rot?)

Original Zen

I think I’ve found the original CSS Zen Garden, circa 1996. Internet Explorer version 3 or above required. The rest of the CSS Gallery is highly entertaining. It shows that with great power comes great responsibility and that Microsoft is capable of true evil. How far we have come. (Good work does not go unnoticed.) And how far we have to go.

(How could the same people we thank for giving Verdana and Georgia to the web be responsible for such a thing?)

Offline

It was not long ago that we measured online time in minutes. You knew exactly how long you had been online in a given period because you were billed for the time you were connected. The first computer game I bought—One Must Fall 2097 by Epic Megagames—was downloaded on a Compuserve account (it was paid for online; ecommerce and delivery in 1994!) and cost about $10 over its price in usage charges. Connection was a luxury.

Now, I have no idea how much time I spend online. It would be easier to tally up hours I’m commuting, sleeping, and (sometimes) eating and subtract that from the number of hours in a day, if I wasn’t scared of the results. I just vaguely remember what it was like to count the online hours instead of the offline ones. I’d like to recapture that magic, and it’s a beatiful night outside.

The Google Blog

As nearly everyone in the world has noticed, Google has a blog now. It’s too bad they didn’t go with the /blog/ URI because this one has extra redundant redundancy, and that doesn’t seem very Google-like. The new blog is very generic, it barely seems like a Blogger blog. On the same day Blogger releases gorgeous XHTML+CSS tempates from Doug and the crew, Google releases its blog with a table-based layout and funky HTML 4 (with no doctype). Also, Blogger uses utf-8 encoding by default now (like WordPress) and Google’s blog uses iso-8859-1.

So there isn’t a lot of information on their blog yet. The first post was signed by Ev, but after that it’s been non-entities writing (and modifying) the posts, which is very weird for a blog. Where to go for more information? Their Atom feed of course. The first thing I noticed was the <id> element, which contained tag:big.corp.google.com,2003:blog-1720. Big corp, ha! So who’s the mysterious author of the two entries after Ev’s?

<author>
<name>A Googler</name>
</author>

Well that’s helpful. Their second post on outsourcing has a more interesting bit of metadata.

<issued>2004-05-10T15:30:52-07:00</issued>
<modified>2004-05-11T17:40:57Z</modified>
<created>2004-05-10T22:39:01Z</created>

Bloggers edit their entries all the time, but “A Googler” actually changed quite a bit, removing a paragraph on outsourcing to India. Perhaps Google is already sharing more than they had planned, but I’ll stop now before they take away my Gmail account.

Blank Slate

Daring Fireball: Blank Slate talks about basing your work off a template vs. starting from scratch. I think both can be valid, there are enough (over 1000) WP templates out there that finding one that’s close enough to what you want and customizing from there can be a great way to bootstrap and get started quickly. But longer term, invest in design. (This reminded me I have a long todo list for this site to catch up with.)

Home Storage Solution

Jeremy’s search for a home network storage appliance is very similar to my own, so go give him advice. I’ve also been considering just getting another dedicated server instead, for ~$100 a month I can get a high-bandwidth server with 250+ GB of storage and upgrade it every year. Of course this might not be necessary with home bandwidth going up — I got two offers this month for 10mbps and 25mbps internet connections in my building for under $30 a month, a third of what I just paid to Comcast.

The Weather

It is definitely a stay-at-home and drink-hot-chocolate kind of day here in San Francisco. And I’m totally okay with that. Now if only I could get the 64-bit Windows installation disk to recognize my SATA controller, life would be good. I’m not a fan of Linux for desktop usage yet (I’ve tried it about once a year for 4+ years now) but I might be pushed in that direction, ironically, because of better hardware compatibility. This might be easier if I had a non-USB floppy drive, but I’m not inclined to go out in this weather just to get one.