Tom Insam

I don't have a personal beef against Apple or the iPhone - I've never wanted to tether my computer to my phone, I can't get a Google Voice account (Google maintain an air of smug US-centricity sometimes that Apple can't match), and I've never tried to ship an app with an open webkit in it. But the reflected rage about the whole thing has me all annoyed/uncomfortable/fearful in advance.

So I'm casting around for replacements. And basically, this means Android, as it seems to suck less than everything else. Indeed, if the iPhone didn't exist, Android phones would be easily the best phones out there for me. Maybe the Pre/WebOS would be better. But it's not available in the UK yet, so it's pretty much moot.

I'm trying to like Android.

I have to write down why Android annoys me. I'd really like a go at using a Hero (I'm using a G1 dev phone running cupcake here) before committing, so this is a random set of half-formed thoughts.

  • It's slow. Again, probably the hardware. But the G1 is slow compared to the iPhone (original and 3G, let alone the 3GS).

  • I can't listen to music on it. It won't sync with iTunes (solvable), it doesn't have a headphone socket (solvable), the music app is lousy (probably solvable), and I only have a 2 gig micro-SD card, so it doesn't all fit (solvable). All solvable, all annoying.

  • Many fewer apps. The store is smaller, and the apps that are on it tend to be worse than the ones on the Apple store. It's hard to find reviews of them. They don't come with screen shots. There are already some apps that require cupcake, some that don't work on cupcake, some that just crash on startup, etc.

  • The browser just isn't up to the standard of the iPhone's. The Mail app is awful. The web browser seems to sometimes open new windows, and sometimes reuse existing windows when following links.

  • The on-screen keyboard is sluggish. This is the same speed problem as above, but whereas elsewhere it's mostly just cosmetic annoyance, here it's causing me serious difficulty - lots of typing errors unless I slow right down.

  • I'm trying to port Flame to it - Flame is my normal 'just real enough that you have to learn the platform' app that I port to new things I'm playing with. But the emulator behaves differently from the real device, I'm not confident that any other real device running Android would behave the same, so I'd have to test everywhere. And anyway, the device seems to have a major bug around multicast that makes Flame impossible.

Any one of these I could deal with no problem. Probably more. It's just the combination of all of them that wears you down. And then there's all the standard little things that come with being a citizen of a second-class platform.

A tiny example - has an iphone-optimized mobile view - I believe it's a wordpress standard, I might have seen it in a few places. But he serves the normal page to the android web browser. It's not a big deal, but a thousand things like that is like using linux in a world of windows people again. No-one bothers with the little stuff. Stuff works on the iPhone because everyone tests on the iPhone. It would work on Android if anyone bothered.

Linux vs Windows/MacOS, all over again. You gain Freedom by using an open platform, making life worse for yourself in a thousand tiny ways, any one of which can easily be dismissed, so they are. But it's still worse.

Paperwork Hacks


With iPhone OS 3.0, Apple introduced in-app purchasing. The idea is that applications can charge for additional functionality (or game levels), content subscriptions, or pay-per-use features.

There are two interesting caveats, though:

  1. An app can only offer in-app purchasing if the app isn’t free.


If you want to charge money for your app, you have to jump through a lot of paperwork-shaped hoops with Apple about tax and other very boring things. The same will obviously be the case for apps that want to offer in-app purchasing. But charging money for an app up-front is part of the iTunes Store process, and is hooked into your developer account. Using the 'paid content download' API is part of the developer tools, and is probably very hard to detect without using debugging tools, which aren't part of the iTunes Store process.

This feels like a legal hack. It's a short-term way to make sure that developers have done the paperwork required to collect money. Once the problem is solved properly, I'd expect this restriction to be relaxed. Maybe even you'll be allowed to charge money for downloads if you have any paid-for app in the store, that might be easier to implement first.

I'm guessing that Apple got to shave a chunk of time off the release date of a feature by hacking their own license agreement system.

Twitter timeline

Yay twitter. You launch a small fun social chatter app. It falls over during WWDC, hillarity ensues. You gain an adorable downtime mascot! Next WWDC, you're better, things stay up. Much handwaving happens about business models, never goes anywhere. Spammers arrive - you must be a real web service! Yay!

US elections happen! Major political parties use Twitter to do.. things. You start appearing in major newspapers. Every company suddenly has to have a Twitter account. Hardcore userbase grumble about how people aren't using twitter 'properly', it's just microblogging/broadcast. Noone notices them because their grumbles are buried under the firehose. You turn off some features, tweak others, there's a little grumbling, noone actually stops using it. Future looking rosy! Though that might just be the burning servers.

Then the State Department asks you to move downtime to not clash with elections. Today, you're a tool for Iranian propaganda.

Personal thoughts on this.

a. Twitter are a lot bigger and more important than I thought they were, apparently.

b. If I worked there, I'd be terrified.

I guess iPhone push notifications might be annoying. But you can always turn them off. This isn't what worries me.

The biggest problem with this Twitter/push thing is that we're not going to get it for Twitter apps any time soon. Obviously, Twitter won't do it natively, it'll be left for third parties. So some third party will have to run a server that polls Twitter for your updates, and pushes them to your phone.

This will have scaling issues. The first person to launch this will get all the users (because shiny!!1), and their server will melt. Unless it's huge.

They will have to charge money for this service. Probably monthly.

The leap from 'I have written a pretty Twitter client' to 'I have to run infrastructure and bill monthly for it' is huge. Push isn't just a bullet point feature. It's almost a harder problem than writing the iPhone app in the first place.

Also you're now polling Twitter for all of your users all the time. and holding auth credentials for them on your central server. So

  • Twitter API usage lurches upwards again, because now this service is polling them every 5 mins for every user, and all these users are polling Twitter from their phones (unless the phone client is polling your server for updates, in which case now you have to scale for that as well. At least if the only thing you do is poll/push, it doesn't matter if you fall over for 5 minutes. or indeed for an hour).

  • This third party server now has usernames/passwords or oauth tokens for all of their users, rather than these tokens staying only on the client apps. yay security!

Now, Twitter seem to be growing some sort of streaming API. Not sure if this helps. If I have 100,000 users, I hope I don't have to hold 100,000 simultaneous HTTP connections open to my server, that might be tricky.

Twitter is useless

as archival systems go, Twitter is beyond useless - the shift to the infinite-page ‘More’ button and the complete lack of any sort of dated archive mechanism means finding things you’ve said in the past is almost impossible

Hmmm, suggestion. Twitter is as popular as it is exactly because archiving is useless. It's so shitty that it almost approaches an actual conversation in terms of forgetteability and deniability, and this is valuble.

Of course, it only feels like that. Things are hard to find if you're looking for them, but not actually gone, so we have things the dangerous and nasty way round, rather than the useful-to-monkeys-with-overdeveloped-social-lobes way round. But it feels safer.


Tom seriously, opensocial is one of those 'can be used to solve any problem _except_ problems caused by too much javascript bogging everything down' solutions.
Tom you just extend the container API with some verbs that describe your service.
Tom for instance, dopplr public pages with embeddable widgets written by 3rd parties that can get your trip data and display pretty graphs.
Aaron every webpage a portal
Aaron the web will eat itself
Tom Actually, I can't even think of a _bad_ use for that.
Tom it would be a more ELEGANT DESIGN to implement your entire site _as_ an opensocial widget!
Tom I will now go looking for VENTURE CAPITAL
Tom and maybe SLEEP.

jerakeen proposal for twitter bot that public announces position changes from, say dopplr.
jerakeen it just says '@blech has just landed in SFO'
jerakeen but flags it as a reply somehow (handwave)
jerakeen so I only see the travel movements of people who I also follow
blech if you went to its page, you'd see everything, surely?
blech so it'd have to be opt-in
blech although depending on how it's fed it'd have to be opt-in anyway
blech still, kind of a nice idea
jerakeen sure, ignore the privacy angle
jerakeen I'm just wondering about clever things you can do with the twitter limited distribution thing
jerakeen also, note that its utility would be _totally_ dependant on twitter not randomly changing things again
jerakeen you can design all sorts of clever things using conceptually very fragile bits of 'API'
jerakeen which twitter can change at any moment.
jerakeen etc etc
blech indeed