The winter months were getting to me recently as they so often do, so last week I released Suncaster, a little app that uses your location and the time you leave work to determine when you'll next be able to hit the streets before the sun sets (my favourite time of day).
Suncaster uses the HTML5 geolocation API to get your location, then uses the PyEphem library to calculate sunset times based on that position. You supply the time you leave work, and it'll calculate when the first sunset after that time will be. If you're already leaving work before sunset, it'll tell you how long you can do that for. A bit of timezone ninjitsu required behind the scenes, but beyond that it's pretty simple. It turned out to be a great excuse to cut my teeth on ApplicationCache, Geolocation and iOS's "Add to Home Screen" feature, among other diversionary delights.
It only took three or four evenings of tinkering but it took me quite a while to decide that the thing was "finished", a state whose definition seems to vary greatly among my side-projects but that basically amounts to the main thrust of development being over and a point where I can happily advertise its existence being reached. I seem to have an instinctive fear of calling anything (in side-project land) "finished", I imagine because (especially with web stuff) exhaustive testing usually isn't possible, and I always worry that someone will discover some previously unknown corner case as soon as I publish, and I'll be embarrassed.
This is silly, because even "finished" projects get patched and improved, and mine are no exception. Part of the solution might be in the marketing, inasmuch as the more fanfare is attached to the "finish", the more the fear of reaching it. If I put something out and label it as "work in progress" then the stigma attached to bugs that might crop up is much less.
With TweetVault, a Twitter archiving service I built a while back, the fact that real actual money was changing hands upped the fear level even more, such that I've held back from properly marketing the site, waiting for some arbitrary confidence level yet to be reached. Any excuse will do but recently it was performance, with an underperforming server making searches increasingly slow, but I've now moved to much faster hardware so that's not an issue any more. Perhaps I've finally reached the point where I can confidently solicit users en masse.
Whatever it is, I need to get over this tic if I'm to get to the next level. Products that get stuck in pre-v1 perpetuity are no fun for anyone. I need to test until I'm confident enough to plant the flag and say "this is done, check it out." Speaking of which, Suncaster is finished and you should check it out.