Google I/O Contest

Are you attending Google I/O? I’m not, but @davidangry is.

Submit your best @davidangry Google I/O story on Twitter. After the conference ends, the best Tweet wins a $20 Amazon gift certificate.


  • Your tweet must mention @davidangry (so I know how to find it)
  • Your tweet must include the #io2009 hash tag
  • I am the judge.

The contest is real. @davidangry is not. Let the tweeting begin.

Comic 4 – Linux on the Desktop

Comic 4 is up, go to Twittch to see it.

As requested, the Twittch Atom feed now includes full-size comics.

On a technical note, I publish Twittch using Yummy FTP. Yummy is super fast and easy, but still requires “going into an FTP program” to publish. Via Daring Fireball, I found ExpanDrive a few hours ago.

ExpanDrive looks exactly like what I really need: it treats your FTP site just like a USB drive. If all goes well, I should be able to create a shell script with rsync to publish changed files to my web site, in conjunction with ExpanDrive.

Twittch Update

I posted a new comic over on Twittch a little while ago:

Fail Whale

I wrote a custom static publishing tool that generates the whole site. My tool generates the random links *when I publish the site*, rather than dynamically. With only three comics, this isn’t a big deal. As the site grows, I will use some JavaScript to generate that link on the fly.

For each new comic, I do the following:

  • Create a new, numbered directory on my filesystem.
  • Create an SVG file using Inkscape.
  • Export three images: the full-size comic, a 320-pixel wide mobile version, and a 320-pixel wide teaser comic for the Atom feed and the image shown above.
  • Create a .properties file with the comic title, tooltip, tags, characters, and publication date.
  • Run a program that generates the site on my hard drive.
  • Using Yummy FTP, I synchronize the site to my ISP.

I commit the SVG, PNG, and .properties files to git. I do not commit generated files to git.

Atom Feed

Although the Atom feed appears in the “normal spot” in any modern web browser, a few people missed it. So I put a feed icon directly on the page to alleviate this problem.


I use Google Friend Connect for comments. I just added it a few hours ago, and am looking forward to seeing what kinds of gadgets Google comes up with next.

Why Static?

So why write a static publishing tool?

  • I don’t want to deal with WordPress upgrades.
  • I want 100% control over every single URL.
  • I want the most scalable possible site in case I’m ever on Digg.
  • I can (and do) store all content in git with full history.
  • Because I wanted to.

Future Plans

You’ll have to stay tuned. But I do plan to publish at least weekly, and a mobile version of the site is high on my priorities list.

Announcing Twittch

There won’t be any more comics here on Instead, head on over to, my new webcomic.

I’ll post a tease here as each new comic comes online. Here is the first frame of Comic #1:

Inbox Zero

Inbox Zero

And here is the first frame of Comic #2:

Beautiful Wife

Beautiful Wife

Consider the new site *pre-beta* quality. I have not tested the site with Internet Explorer, for instance. I have ideas for many more features, but I wanted to publish the site now rather than wait several more weeks. I do have a day job, after all.