July 11, 2012
I wanted to use my old iPhone as a sort of party jukebox; plug it into a stereo and control its iTunes player via HTTP REST calls. Didn't see any apps that do that (most apps do the opposite, let your iPhone control other music sources). So I wrote the app. It's called SubnetX Music Controller. It's free.
Once you install and run it, it runs a web server on your iPhone that listens for POSTs to control playback and GETs to query your library. ✜
July 12, 2010
MangleBracket (the Word document to HTML power tool) has been offline for several months. It's back up now, not in its feature complete form, but still functional. Check it out at manglebracket.appspot.com.
The problem was that the Word import process requires a fleet of OpenOffice processes, which need a dedicated server or at least a virtualized server, since it can't run in a shared hosting environment. This costs money. I tried to monetize MangleBracket with traditional means such as AdSense, but traditional means rely on crawling your site to determine contextually relevant ads to show. This doesn't work with web applications, where the contextual relevance data is in a private session and locked up in server-side variables.
Since then, Google announced AdSense for Ajax, which sounds like it perfectly addresses my issue, however it appears to still be invite only. No self-service signup.
Then I started thinking, maybe ads wasn't the best way to monetize. 37signals' DHH would probably say "if you have a useful app, charge for it." I'm inclined to agree. So the plan now is to leverage Google's up-and-coming web app distribution network, either with the Google Apps Marketplace or the Chrome Web App Store, or both. Those systems don't yet provide an integrated billing solution, hence MangleBracket is free for the time being. But when they do, I'll integrate with it, and perhaps make enough monthly income to pay my AT&T/iPhone bill. ✜
February 25, 2010
This article got lost when I set up my new blog and several people have e-mailed me to complain. Here it is restored.
Using Orbited with Django ✜