About the Redesign

Welcome to the redesigned Speed Of Light. It's taken me a while to get this far, but I'm pretty happy with the result.

The biggest change is stylistic. The site looks much better now than it ever has: better contrast and nicer typography. Typically I steer away from serif fonts for computer screens, but as new devices have been rolled out in the last year, it's becoming clear screen pixel-density is increasing, which really makes the type look gorgeous. Naturally, laptop and desktop displays haven't seen such dramatic leaps, but my guess a good portion of my readership is reading on a mobile device, anyway. If not, you should.

Having said that, it's probably only going to look great if you're using an Apple OS (that is, Mac OS X or iOS). Typography on Android unfathomably shitty. It's almost worse than on Windows. If the site looks bad on your Android device, I'd recommend instead subscribing to the site in a feed-reader and bypassing the homepage entirely. You won't miss much that way. Much.

Stylistically, the site should scale better as font-sizes or window sizes change, although it's not yet bullet-proof. I've also not implemented proper mobile style tweaks, although at least on iPhone 4 and iPad I'd say it works pretty well as is.

Other changes include improved markup for the actual pages themselves. The HTML5 (actually, it's just HTML now) now uses tags such as <section>, <header>, <article>, <nav>, and <footer> to produce more semantically rich pages. This should work in all browsers, whether or not they support the new HTML features.

I've moved the site navigation to the bottom of the page (no more sidebar). My reasoning is most people probably don't use the navigation very much, so there's no reason cluttering up the top of the page. Now there's just the mast and article content.

A few things are still missing: there are no more shortcut keys for page navigation (did anyone use these?) and the hyphenation library is gone as well (this one made the site look really nice, so I'll likely incorporate that again).


Firstly, the site went down sometime in December 2010. I say sometime because I honestly don't know when (it was pointed out to me on Boxing Day). That tells you how often I'd been using the site even myself, not to mention how long it'd been since I'd last updated.

The site is hosted by Dreamhost and they changed something on my server which caused the site to break (deploying this site to Dreamhost was more like a nightmare), so I had to fix that as well. The fix ended up being mostly painless (though some of my other hosted sites are still down).

I knew it was time for a redesign. And more importantly, I knew it was time to get writing more. I've had this idea bouncing around in my head for a month or so now, and I'm not ready to share it, but it involves writing more. This website is the first step to accomplishing my goal.


“Colophon” is the name of the engine running this website. It's a Ruby application written with the excellent Sinatra framework. It was written by me in early 2010 as a way to learn Ruby better.

Posts are written as plain-text files on my computer, formatted in Markdown (so maybe not plain-text), and have an accompanying metadata file formatted as json. All articles are stored this way, and are in source control with git. When I hit “Publish” in my Editor app, all files are added to git, then pushed to my server over ssh. On my server, I have a post-commit hook set up which runs another Ruby script on the server. The script scans through the newly pushed articles, reads them one by one and converts the markdown to HTML, and shoves them in an SQLite database. When you request a page from the server, it's the database which ultimately gets read.

This is convoluted, but it gives me great flexibility. More importantly, it solves two major problems I have: I'm very unskilled with properly managing databases; I'm very unskilled with web-security.

Firstly, inserting and deleting rows in a database are dangerous for me. If a DB interface were the sole way of publishing articles, I can promise I would have already lost all my data at least once or twice by now. Databases are pretty opaque as far as datatypes go. Conversely, I could edit my articles with Notepad if I wanted to.

What you also may not realize is the database has been hosed a number of times in the last year by my prodding, yet all the articles are still available. I've deleted the database at least ten times, and I've still been able to properly re-migrate all article content back in (the script takes less than a minute to move all articles).

With articles being in git, I can make changes, revert, and even merge changes on other machines if I want to (and I do). I even have a “drafts” branch which does not get published until I merge into my master branch.

Secondly, security. I don't know what I'm doing with web-security so the safest route for me was ssh (which git uses). I don't have to worry about https or certificates or passwords. It would be very difficult for someone to break into my site because I haven't sloppily coded the security (had it been coded by me, it would have been sloppy and bug-ridden). Leave the security to the experts.

The rest of Colophon is very basic. There is an ATOM feed (similar to RSS, only I find it has better support for embedding HTML in feed items, and it was simpler to build in code). I'm also looking into integrating a json feed of the articles (because XML is essentially digital-Satan).

Speed of Light