Google AJAX APIs outside the browser

Google just announced their new Language API this morning. Unfortunately their API is another one of their AJAX APIs – that are designed to be used from JavaScript in web pages. These APIs are pretty cool for building client-side web applications – I used their AJAX Feeds API in my home page – but I …

API Design

Recently at Songbird I’ve been working on some guidelines to help us build better APIs. One of the most exciting things we’re hoping to offer users and developers are APIs that give them access to their music and the ability to extend their and others’ music players. Getting these APIs right can be hard and …

A simpler mobile OpenID workflow?

Chris Messina posted today about the problems with current OpenID work-flows for mobile users. In spite of a long list of chores I was intending to complete today I had a bit of an experiment with an approach to solving this. The main problem I wanted to solve was to allow a user to prove …

Moving from Drupal to WordPress for blogging

I really like Drupal quite a lot. It’s powerful and flexible, it’s code is clear and well written and it’s extension mechanism is one of the best I’ve ever seen. All this flexibility tends to distract me from actually writing blog posts. So I’ve moved back to WordPress. If you’re reading this over RSS expect …

Songbird 0.3

Last week we release Songbird 0.3. It’s the release I’ve been working on since I joined the Pioneers of the Inevitable in January. There are a whole lot of improvements in there to various parts of the application – the database engine was rewritten to be faster and more extensible, we added tabs to the browser, etc – but that’s not what’s really cool. What’s really cool is the new Web API we’ve developed.

Flock 1.0

Flock 1.0 has finally shipped.

Almost two and a half years ago I met up with Bart Decrem for coffee in Palo Alto. He was working with Geoffrey Arone to build a company to write a new browser. Bart wasn’t fully clear on exactly what it would look like or exactly what it would do but he believed that it was important to build a web browser that would break new ground in functionality and experience. He showed me a prototype that showed off two pretty amazing features: really simple bookmarking shared bookmarking and the ability to take pieces of web pages and store them for later reuse. I was excited so I quit my job and joined up.

How I set up gitweb

There don’t seem to be any straight-forward documents on how to set up gitweb, the web interface to git repositories. Or at least I couldn’t find any. After failing to get it working a couple of times and then succeeding a couple of times in different ways here’s the recipe I came up with to get what you can see on What I have there is a bunch of git trees I’m following or working on. Perhaps not a bunch, but at least a few.

Installing Ruby Gems in your home directory

I’ve been playing with Ruby in my cheap shared hosting provider. They don’t include everything I need so I had to install Ruby Gems in my home directory. The instructions don’t work. So here’s what I did…

First set up environment variables to tell Ruby and Gems where to find stuff:
export GEM_HOME=$HOME/lib/ruby/gems/1.8
export RUBYLIB=$HOME/lib/ruby:/home/ian/lib/site_ruby/1.8

Download and unpack the Gems source (this is the version I downloaded, you should grab the latest:
tar xzvf rubygems-0.9.4.tgz
cd rubygems-0.9.4

Run the setup.rb script with the right arguments to install into your home directory:
ruby setup.rb all --prefix=$HOME --siterubyver=$HOME/lib/site_ruby/1.8

This will install the gem command (and a couple of others) into $HOME/bin and the Gems source into $HOME/lib/site_ruby. Gems will be installed into $HOME/lib/ruby/gems/1.8. You should add $HOME/bin to your path. If you want to install it somewhere else replace $HOME with the prefix you’d like to use.

Inbox Diet

Anyone who has lived with me or worked closely with me knows that I have a lot of trouble staying organized and a lot of trouble keeping on top of my email. Typically my inbox grows to a couple of thousand messages and then I “archive” it and start again. This happens every couple of years.

When I receive email I either discard it immediately, reply if it will only take a few moments, or if its important and will take some time to deal with I leave it there to be dealt with later. This almost never happens, my inbox grows, my family wonders why I never respond to my emails, my coworkers form the opinion that I’m unreliable, my wife sick of people emailing her when they want to get my attention.

Last week I came up with a great idea. I’m going to put my inbox on a diet. Every day my inbox must shrink by at least 25 items. I estimated that I should be able to get through the 700 or so emails in a month if I can keep up the pace.

Being a nerd, the first thing I did was make a spreadsheet. For each day it tracks my goal inbox size and how I’m doing. I have ups and downs but I’m making solid progress towards zero. There’s even a chart:

As I’m going I’m also building the habit of processing email as it arrives. I can’t afford not to. I know that I’ll fall off the wagon again and I’ll let my inbox get out of control, but I think I’ve got a strategy for recovering.