Video Quagmire
April 23, 2008 at 11:45 PM
2007 may have been the year of video on the internet, but support for video technology in software is still pretty poor. The emergence of Flash players enabled the video explosion, sure. But Flash is still proprietary and has a bunch of other problems as well, not the least of which is that it's not strictly a video format, but rather an entire programming environment which happens to support video.
Video is primarily such a mess because of codecs. I was first exposed to the codec madness circa 1999, when people in my office shared videos via a shared drive. I was using Linux exclusively (this was pre-OS X, remember), so this meant I could very rarely view them. I always assumed that OS 9 and Windows users didn't have these problems. In envisioned Mac and Windows users living in utopia of video, where they just clicked on any file and it opened and started playing.
Then I had occasion to use a friend's Windows computer to try to view video. Nope! Same codec problems. Then later I got a Mac. Bzzt! Some videos would play, others wouldn't. Windows, Mac, and Linux all had the same problem: fail to play the video, with an extremely unfriendly and unhelpful error dialog. (Not one of them said "You don't have the right codec." They all read something like, "Error code: -29")
Things are a bit better today. Actually I have no idea about Windows, but on Mac you can get a WMV plugin for Quicktime, and Ubuntu and other Linux distros prompt you to download reverse-engineered codecs from outside the US when you click on a video format that isn't recognized. Still, in neither case does it the video just play without any hassle. Linux is the easiest, but there's still a bunch of dialogs to click through. And this doesn't even begin to touch the problem of authoring: just look at the codec dropdown in iShowU:

How does one make an informed decision about this? I don't think most people do. I kept trying formats at random until I got one that 1. wasn't horribly grainy, 2. didn't produce massively large files, and 3. played on Quicktime and VLC without issues. This feels like the dark ages of digital video, not the revolution.
Ogg Theora could be the solution. It's a free and open standard, and could open up the creation and distribution of video in the same way that HTML did for documents.
As usual, though, the problem is default support. No one wants to install extra software to play video; but the two biggest operating system vendors (Microsoft and Apple) have their own proprietary formats (Windows Media and Quicktime) that they want to defend. So that's not going to happen. (Ubuntu plays Theora out of the box, I hardly need mention.)
At a recent Super Happy Dev House, I met someone who was working on Theora support for MediaWiki. He mentioned that Firefox 3 was going to support Ogg Theora out of the box, which I found very exciting. It would be as simple as a
Unfortunately, it looks like Ogg has been dropped from the latest HTML 5 specification, and from what I can tell FF3 is not going to have support for Theora (though it may offer the video tag, without any default codecs). Unawesome.
Still, all of this seems gives me some hope that there is a path out of this horrible quagmire that video technology is currently stuck in. We're not quite on the path yet, but at least it's there - waiting for when the world is ready for video stop sucking.
Loose Whitespace Annoys Me
April 04, 2008 at 03:46 PM
It tickles me to death that Git highlights loose whitespace in red.

I may be showing my obsessive-compulsive side here, but one thing I don't like about TextMate is that it indents blank lines. (Other editors, such as vim and emacs, remove the superfluous whitespace when you press enter twice on an indented block. That is, they never save a file which has a blank line containing whitespace; blank lines are always just a newline and nothing else.)
I'd be ok with it if it was consistent, but it isn't. Which is why you end up with blank lines with whitespace that doesn't match nearby indents. Hardly a showstopper, but it does mean that I end up wasting time chasing whitespace around when I should be coding. (Britt Selvitelle agrees, and offers some tricks to work around TextMate's inherent whitespace sloppiness.) Maybe now that Git is all the rage, the TextMate author will be encouraged to change its handling of whitespace.
Update: You only get colorized diffs if you have this in your $HOME/.gitconfig:
[color] diff=auto
Admin Debris
March 28, 2008 at 09:31 PM
Ryan Tomayko gives us all a good spanking on the subject of admin debris in your interface. He especially scorns the /admin style of management interfaces, in favor of edit functions sprinkled in with the standard app content. I like the usability of this approach, though the downside is views that are littered with <% if @user.admin? %> ... <% end %>.
Unobtrusive Screencasting
March 04, 2008 at 12:47 PM
I wish screencasting were more ubiquitous. Not just developers showing off their products, but for everyone. When a customer sends a bug report to customer service, it should be completely standard for them to include a screencast of themselves experiencing the problem. Used properly, screencasts could become a sort of multimedia email for anyone who works on something that can be displayed on a computer screen.
I've had this sense ever since watching my first screencast (DHH's "make a blog in 15 minutes" - probably many people's first). A year or so later I went looking for screencasting software and discovered that despite the apparent popularity of screencasts, the authoring software available was fairly lackluster.
I ended up making do with hacked up copy of pyvnc2swf plus a command-line audio recording tool when I made these. Nowhere near turnkey, to say the least. Later I started using iShowU on the Mac, which is an ok piece of software, but not grand by any means. Plus, it's shareware, which pretty much means it can never achieve ubquity. (This is not because people are unwilling to pay, but that the process of payment creates friction that will always keep it out of the hands of some portion of the computer-using population.)
Recently I had occasion to try out Istanbul, an open source project for screencast recording on the Linux/GNOME desktop. I am very impressed. This is desktop software at its finest: simple, streamlined, does exactly one thing and does it well. Compare the bewildering battery of options on iShowU to the easy-to-understand context menu of Istanbul, for example.
But perhaps more significant is how it runs. It sits in your dock, showing a simple record icon (red circle) when inactive. Click it and you instantly begin recording - no questions, no dialogs, no delay of any kind. Click it again to stop your recording, review it, and either discard or save it.
It saves to Ogg Theroa, a format I'm excited about for reasons I'll mention in a future post, but thanks to ffmpeg you can convert it to pretty much any other format.
This quiet, always-accessible aspect of Istanbul represents what I hope is the future of screencasting. iShowU dominates your screen with a huge window whenever it's open; you'd never have it open perpetually. This is quite reasonable, if you assume that screencasting is an occasional thing, a big event. But technology is the most useful when it becomes an unobtrusive part of the background, a tool that is always within each reach. Istanbul shows us that future for screencasting.
I'm Tired of Logging In
February 21, 2008 at 06:58 PM
Client certificates - it's like authorized_keys for your web browser. I've wanted this for ages. Passwords are so lame - insecure, hard to remember, just annoying all around. Even worse is the whole process of logging in; particularly on banks and other financial websites where they make you go through a multi-page wizard. Asymmetric key cryo is what it's all about.
I look forward to the day when we all keep our private keys on a usb dongle, such that we can sit down at any computer and have instant access to all of the sites and services that we use.
Making OS X Spaces Sane
February 18, 2008 at 01:33 PM
If you use Spaces on Leopard, you should install this fix immediately. It blocks the annoying default behavior of Spaces, which is to try to force all windows from the same application onto the same virtual desktop.
Spaces still isn't quite up to par with standard unix virtual desktops - such as not remembering the stack order of windows when you switch away from a desktop and then return to it. But the fix above makes it substantially more useable.
HTML Paste
February 01, 2008 at 09:29 PM
When using web-based editors like GMail or Google Docs, I often grab something from a web page or other document and paste it in. In almost every case, I just want the text - no formatting. Perhaps I'm pasting an email address, a web url, or a longish phrase that I don't want to manually retype.
Using most of these editors, the formatting information is carried across. This is a good thing in some circumstances, but in most cases it's quite annoying. Pasting a name into an email and have it be a slightly different typeface, size, and weight from the surrounding text just looks bad.
The solution I've been using is to pop open a blank TextMate document (on the Mac) or a gedit window (on Ubuntu), paste the text in, then re-select it and copy it again for paste into the final location. This is pretty lame though. Anyone have a better technique? Maybe operating systems should start adding a context menu item, "Paste as Plain Text."