Foxconn coverage

A short list of companies who use Foxconn manufacturing’s services and aren’t Apple Inc.

Acer Inc.,, ASRock, Asus, Barnes & Noble, Cisco, Dell, EVGA Corporation, Hewlett-Packard, Intel, IBM, Lenovo, Logitech, Microsoft, MSI, Motorola, Netgear, Nintendo, Nokia, Panasonic, Philips, Samsung, Sharp, Sony Ericsson, Toshiba, Vizio.


A short list of Foxconn’s customers mentioned in articles about Foxconn’s working conditions:

Apple Inc in all of them, and “Xboxes” twice.

(Source, Doing a google news search for “Foxconn”, reading the top articles for each story on the front page, and a random selection of the non-top stories, around 20 in total)

Foxconn’s conditions are awful. The latest round of allegations makes me upset at what we do to human beings, and a lot of this coverage comes from Apple’s recent release of a report on how they have to do better by the workforce, but every Foxconn tragedy story I’ve read since they came to light has mentioned iPhones (Which is fair enough, they’re a good and well known example to use) and very few have mentioned any other company at all.

Notably absent from either of these lists is HTC, who do their own mass production. I haven’t seen any news stories about their factories, so they must be paragons of virtue.

Computer Games

Dizzy – Prince of the Yolk Folk

So today, I’m going to tell you a tale of a game with an open world, filled with characters who repeat the same dialogue, where a primary concern is how full your inventory is and how useful a large percentage of it will be, and involves defeating trolls.

Dizzy has been released for Android, iPhone & iPad.

The earliest games I can remember playing:

The first Dizzy game came out in 1986 – I’d have been five – and was perilous. You had three lives, a single inventory slot, and touching any dangerous thing at all would kill you instantly. In modern game parlence, it’s a game of fedex quests, but with a single item inventory. So you pick up the grease-gun to fix the cart, which means you can’t carry the birdseed which allows you to kill the birds, and you need to get the diamond across the map which means swapping over to get the raincoat to stop the water killing you occasionally. Lots and lots of back-tracking.

By the time of POTY, which the new release is a port of, came out the inventory had been beefed up a lot and the instadeath mostly restricted to “Don’t fall in the sea” and “Don’t stand in the fire”.  With the new version comes infinite lives, which makes the game easier.

It’s certainly a far prettier game, with updated graphics and detailed animations.

It’s not very good, though.

It’s a perfectly servicable port of the original game, but with updated graphics, but it suffers from a half-hearted finish that lets the game down. It just seems a few steps away from being complete.

The biggest gripe for me is one that’s followed the game since the unremake, it suffers from a excess of float in the jump which makes precision platforming quite hard. Dizzy’s jump move is quite complicated for a platformer, in that has you jump he somersaults, and if you land while he’s somersaults he’ll roll for a bit until he stands up. This doesn’t seem consistent, and sometimes when you land you’ll roll directly off the platform you were trying to hit. If it was predictable when this would be, I’d be less irritated, but it butts against one of the other fundermental flaws with the game: You can’t tell where the platform ends. The new game has beautiful, cartoony graphics where your platforms connect to the trees behind them, where the clouds float in mid-air, but invisible on top of this is the edges of the platforms, which don’t match up to where the cartoon hand-drawn graphic says they do. In a game where you are required to stand at the very edge of a platform in order to make a jump, it’s incredibly annoying to fall though it instead. Dizzy has gained a Batman/Lara Croft style move where if you *almost* hit a platform, he will grab at it and hang there looking worried, but this doesn’t help, because he can’t – with his stubby little red gloves – pull himself up. It just delays your inevitable fall and death with a cheery animation.

There seems to be a half-finished integration with something as well, although it doesn’t call to Gamecenter or Twitter or anything; but when you actually do something you get a first-person announcement about it, like this:

Games can be unforgiving, so long as they’re fair. As long as the reason why I’ve just plummeted to my death is that I didn’t pay attention, it’s all fine, but this isn’t that.

As a call to nostalgia, it works wonderfully. I spent the time wandering though this game (Spending a lot of it wandering backwards and forwards having entirely forgotten you can jump on clouds) remembering trying to finish various Dizzy games on various 8-bit devices in the 90s, and it’s a faithful recreation of the kind of 8-bit platformer I really used to love beating my head against.

As a modern game for iOS and Android, it’s unpolished and the controls require more precision than the game allows. Without the Infinite Lives addition, it would be an exercise in pure frustration, but as it is I can highly recommend it for people who remember the old games and wish to wallow for a while. For everyone else, there are better games out there.

I hope it does well, though, because if they can tighten up the controls for the next one it could be a star.

A final point: Codemasters: Releasing the iPad and iPhone versions as two separate games is a Dick Move, especially when there are no differences between them. The iOS Universal Binaries system is good for customers.


In which Android Market Support have annoyed me

A couple of months ago, I wrote an article called “Android’s not as good” where I listed all my various problems with the Android platform as it was then. A lot of them are still true, although the music skipping’s gone away, but one in particular has been resolved, and it is this:

I did a factory reset of my phone, and now all the Marketplace items I bought before I did the reset are gone from my “Downloads” section, but it will let me download them again, happily adding them to the same google account I bought them from in the first place. This is shit.
When I finally get a reply about the above problem from the aforementioned support ticket, and ask when, roughly, it might be fixed I am told:
Unfortunately, we are unable to comment on the exact timing of the fix because of different variables affecting the roll out.

…which is shit.

And, indeed, it was shit. A couple of weeks ago, I got bored of waiting for the “rollout” of this “fix” and asked the exact question again, supplying receipt IDs and everything, and discovered something interesting. Going though the whole process again and explaining it all to a new representative, instead of “Our engineers are working on a fix” I got this instead a couple of days ago:

Thank you for your patience. We see that you have made these purchases
using your account.

Please use the same primary account on your device to access these missing

When I did the factory reset, I’d entered my Gmail account first, whereas previously I’d added my Aquarionics Google Apps account first. Unlike every other google app on the phone, the market only uses one Google account, the one you typed in first. This is your “Primary” account, a distinction not marked anywhere on the interface, and you cannot change what account the Market uses without a factory reset. I mean, it’s quite lucky I didn’t originally type in my Skimlinks account details when I first got the phone, or I’d have lost access to all my apps when I left that job.

This really sucks from a UI perspective, from a user flow perspective, and is generally a horrible and misguided way of doing anything. There’s no indication of what’s happened (Since you can’t get Checkout accounts in Google Apps yet, all my payments were still made from the GMail account, so all the receipts for the transactions are there), you can’t transfer apps between accounts, you can’t log in to more than one account, a user who does this is effectively screwed.

And that’s crap, and it’s even less than I’d expect from the Android UX, which is not a particularly high bar to have banged its shins on, but it’s not the thing that annoys me most. The thing that annoys me most is this:

Hello Nicholas,

Thanks for notifying us of this issue, which our engineering team will address as soon as possible.

In the meantime, please feel free to contact us again if you have additional questions. We apologize for any inconvenience you may have experienced.

The Android Market Team

and, later:

Thanks for writing in.

Unfortunately, we are unable to comment on the exact timing of the fix because of different variables affecting the roll out.

Please rest assured we are working diligently to resolve this issue as soon as possible.


The Android Market Team

That’s a lie. That’s all bullshit. There is no “issue” the fault, such as it is, is a UX/Metaphor Shear problem caused by a thing *I* did differently, as the second CS Rep managed to work out. It’s even partly my fault, as I didn’t even realise I’d reordered the accounts after the reset. A very small amount my fault.

But as a direct result of being told “We’re working on a fix” I believed them, and I went and bought more apps on the “new” account, even replacing some of the ones I’d bought before, so now I have a block of apps under two different accounts, which cannot be merged and cannot be accessed.

Which is shit.


Android's not as good

I’m giving up on Android. It’s good enough for now, and I won’t immediately go out and replace it with an iPhone 4, but come the next iPhone revision, I think I’ll be back to being an Apple customer.

These are some of the reasons why:

Upgrading to Gingerbread has increased my battery life by 100%. My phone will now go a couple of days without a charge, but it still goes from 100% to 20% over many hours, then ticks down the last 20% over ten minutes. This is shit.

The music player skips and bounces around sometimes if something else wants to do anything else. This is shit. If it’s due to the expensive SD card I bought not being quite expensive enough, that is more shit, not less.

The media syncing system, even with doubletwist airsync, is comparatively shit.

The music player will pick up every sound file on the device, from other program’s podcasts down to voice recordings. This is shit.

The market is filled with shit. A search for a popular item will result in the item – somewhere – and dozens of “$popular_app Wallpaper” or more subtle customer gouging shit.

The market support is beyond shit. I expect a support request email to result in user-blaming boilerplate text, because I am trained to expect little from technical support, but to respond to a reply with *more* user blaming boilerplate that doesn’t actually answer my question is just shit.

I did a factory reset of my phone, and now all the Marketplace items I bought before I did the reset are gone from my “Downloads” section, but it will let me download them again, happily adding them to the same google account I bought them from in the first place. This is shit.

When I finally get a reply about the above problem from the aforementioned support ticket, and ask when, roughly, it might be fixed I am told:

Unfortunately, we are unable to comment on the exact timing of the fix because of different variables affecting the roll out.

…which is shit.

The upgrade path is shit. As soon as HTC decide they can’t be arsed with the Desire upgrades anymore (a process I expect to happen before Gingerbread is officially released) I’ll never get an official update again, and I’m lucky that I don’t have an operator as an extra level in that. For all people complain about Apple’s “Another model along shortly” attitude, they’ve supply major OS updates for two years for each phone.

There is no good time to buy an android phone. Anything you buy will be succeeded in weeks, if not days. This is shit.

The Hardware UX standard design is shit. You cannot predict which buttons are on the phone in which order, whether they’re hard or soft or what. Good UX means avoiding metaphor-shear and maintaining consistant rulesets, and Apple’s good at that, there is probably a button *here* which will take you back a screen, *this* button will take you back to this place. Just the Back button in android could take you back to the last application you used, the last screen you saw in this application, the home screen of your current application, back a web page, or the home screen of the whole phone. This is shit.

There are two email applications on every phone. One is for GMail, one for IMAP. Widgets use one or the other, and every app which wants to send an email has to ask every time. This is shit.

If you try to open an MP3 attachment from the GMail program, the temporary file is deleted before the Android Music App can see it. This is shit (and stops me getting phone messages).

A cheap MicroUSB cable appears to have a 50/50 chance of carrying a charge. This isn’t really anything to do with Android’s fault, but is still shit.

Every so often I’ll answer a call and the UI will change to the “You’re on a phone call” one, but the phone will still be ringing and I can’t answer it anymore.

My phone has gigabytes of storage in it, but only a few hundred megs of app storage space, because every tin-pot application believes it has a divine right to hinder sleep mode, and therefore refuses to go on the SD Card. That I have to care about this is shit.

My Android has never failed to wake me up because the year or timezone changed. It has, however, failed to wake me up because it spontaneously crashed necessitating a battery removal at roughly 3am.

The default array of apps that HTC supplied with my phone (like the Facebook app that’s not as good as the official one, and the twitter one that’s not as good as the official one, and the Flickr one tha…) cannot be prevented from wasting the limited app space I have. This is shit.

MobileSafari has a useful thing: If you double-tap on a block level element, it zooms the view-port to match the width of it. In the Android browser, double tapping zooms the page in a lot. This is shit.

Gestures on the Android are almost always “I am doing this gesture to make the phone perform this action” rather than “I am performing this action”. Zoom and Rotate in particular suffer from the classic shower-tap problem of requiring a massive amount of micro-dexterity to get the effect you want.

None of these are deal-breakers. They’re bugs, annoyances, or lack of joined up thinking. But what I need out of a phone is to be able to pull it out, do the thing I wanted, then put it away again. Joined Up Thinking is the very thing I actually *need* it to do. The lack of system-level design (both UI design and hardware-spec) makes a day with android just a little more frustrating than the same day with the iPhone.



Apps I use a lot:

To Play The Game

Abduction 2

It’s a game with a bouncing cow. What else do you want out of life?

Angry Birds & Angry Birds Seasons

On the off-chance you haven’t seen it, it’s a game like worms only with birds. Or like Scorched Earth, really, since the catapult doesn’t move.

You remember Gorilla.bas under QBasic? Like that. Not as much like that as Kian’s faithfulish conversion, but close.

Nimble Nimbus

Backup to Gmail

Copies all your smses to a label under your gmail or google apps account. Optionally does the same with your phone logs. Get all your communications with a person in one place 🙂


Everything is in dropbox.


The Twitter client I use. There are others, but I like this one.

Don’t Talk To Me About Lifestyle

Gentle Alarm / Sleep as a Droid

I’m switching between these at the moment. Gentle Alarm is a pretty good alarm program, with a “Prewake” quiet alarm system that works quite well (a quiet alarm ten minutes beforehand to see if you’re already awake, then a real one if you don’t respond). Sleep As A Droid does the motion-sensor graph thing I liked on the iPhone, though. Neither’s failed me yet, and I do like Gentle Alarm’s pre-buy version, which is fully working except the alarm won’t go off on Wednesdays.


Coming up, Kindle tricks and things I like about the Kindle, and why it’s not an iPad competitor.


It’s, but on the Android.

Sounds Delightful

Doubletwist / Doubletwist Airsync

I generally use the Native android music player for actually playing music (The lockscreen integration is the thing I like most) but DT’s airsync system works really well, and the video player Just Works.  I wish the desktop client could do app installs, though.


It’s a thing that listens to what you can hear and tells you what the song is. It’s reasonably awesome.


Barcode Scanner

For scanning 2d barcodes, but also creating them.


An SSH client.


A thing that changes phone settings and does stuff based on other stuff, like the current GPS location, or time, or something. For example:

  • Between 1am and 6am, turn off all notification sounds except phone calls if I am within wifi range of home.
  • If I am within a few hundred yards of home, work or the pub, turn on wifi.
  • If the battery is low, turn the screen right down, kill wifi and GPS, put the screen timeout down too, and turn the wallpaper a dark red colour as a hint.

Locale’s handy.

Apple computing linux

iPhone vs Android, Part Two

One of my main reasons for getting a new phone was that the iPhone was unable to get a signal in my flat. This is partly because of the construction and materials, and partly because the radios in the iPhone 3G are not particually good. The Desire gets a far better signal than the iPhone does in the same place, with the same SIM.

As an actual phone, they handle much of a muchness. I don’t actually like making phones on a smartphone, I sweat all over the screen, it gets icky and horrible. The Desire and the iPhone are both as good and as bad as each other in this regard. The speakers and microphones work, the quality appears to work, it works as a phone.

The interface is a different thing, though. The android device keeps its “Phoneness” front and centre, with a button labelled “Phone” at the bottom of the home screen. Press it and you get the phone app, complete with last dialled numbers, missed calls and such. Start typing a name in the search box at the top, and it’ll find the number for anything matching that. Press to dial.

Actually, the press-to-dial is the bit that annoys me. Generally, I don’t want to phone someone unless I press a big green button saying “dial”, and I keep – after a couple of months now – accidentally phoning people when I just want to view their contact details – which is what the same action does in the contacts view, which it otherwise resembles – or phoning someone back when I want to find out *when* I missed their call.

The iPhone interface on this is superficially similar, but more consistent. Clicking a contact brings you to the contact’s page, where there’s a clear call-to-action button to dial, message or email. These things seem small and insignificant, but they’re actually most of the big problem with Android (Including Sense) as a interface, all the functionality works, and sometimes works far better than on the iPhone, but even on native apps there are inconsistent reactions, meaning that you have to second thought most actions, think about where you are in the system, before you can do anything.

For example, the Desire has a “Back” button. What does it do? Most of the time it takes you to the screen you were on before you hit this button. “Back”. But that’s contextual, so if you clicked a notification saying “You have one new Twitter mention”, it takes you to the Twitter app (The official one, in this case) and to the page with your mentions on it. You click the mention, it has a URL, you click the URL, you’re in the web browser, you click a link in the web browser and you’re on a new page. Back, you’re on the previous page; Back, you’re on the tweet that mentioned you; Back, you’re on your Twitter mentions; Back, you’re at the home screen again.

However, if you launch twitter from the icon, you get the main menu. Mentions, Tweet, URL, New page. From there, Back to the URL, Back to the mentions, Back to the main menu, back to the home screen. From the “Mentions” page, therefore, you cannot tell what’s going to happen when you press the back button. If you came in from one direction, you get one action; from another place, another action. If you hit the “Web Browser” icon on the desktop, you’ll get the URL from the tweet. Click back from that and you’re at the home screen, consistent user action leads to inconsistent results.

That’s an example, and not one I have a solution for, but because apps define these behaviours, they all do it differently, and even within the core apps it’s not perfect. The aforementioned contacts problem – where tapping a contact might open up more information, or phone them, sometimes text them – is another. Neither are insurmountable problems, but they require someone to treat them as problems and solve them, rather than hope some kind of consistency comes out in the wash.

There’s masses I can do on the Android device that the iPhone can’t even touch. I could have half a dozen different alarm programs going off at different times. I could install an SSH server and run Aquarionics from it. I run IRC connections in the background while I’m websurfing, I can tell what’s using my battery (Maps drinks it). It’s a massively flexible device, but with that seems to come a lack of focus. I can upgrade the memory.

One of my main uses for a “superphone” is as my local music player. For this, the iPhone is great. I already have all my stuff in iTunes, in playlists, smart playlists, podcasts and folders. I tell iTunes that I want these playlists on the iPhone, and it syncs it. As it’s doing so, it installs the latest versions of my apps, trims heard podcasts and installs new ones. The sync is two way, so when I listen to something on the android, it’s marked as “played today” on the playlists, and the smart playlists update with it. If I play a podcast on my phone, it’s marked as listened to.

The default way of sending music to an android device is to drag a folder full of MP3s onto a mass storage device.

The music player finds any MP3s on the storage device and lists them, sorting by album, artist and collection as best as the tags allow, and this is fine.

Doubletwist is great, because it does the one-way sync bit as well as iTunes does, if a lot slower. It imports my playlists as best it can, it manages podcasts to some extent. I understand the problems a lot of people have with iTunes. It’s heavy and hungry, it doesn’t work under linux and it doesn’t even like Windows very much, and it lacks important music management things (like duplicate detection, lists of MP3s it can no longer find, et. al.) but it gets the two way sync right. Doubletwist is getting there, and I hope one day it works as well.

Finally, there’s the future.

Next year, Apple will release the iPhone 5. Anyone who bought an iPhone 4 will feel slightly dejected that their shiny isn’t the shiniest any more, iOS 5 will work on the iPhone 4 (missing some new features), work barely on the iPhone 3GS (maybe) and not at all on the 3G, which will be consigned to the same “unsupported” box that the original iPhone now resides in. Apple will spend from now until then constructing and polishing the unholy alliance of hardware and software they specialise in.

In the time that it took me to get a Desire, HTC had announced several new phones to succeeded it, some of which have launched by now. Some are faster, some have better battery life and some more memory and higher resolution screen. HTC currently appear to be releasing a new set of handsets – bigger, faster, better – every two months, and are significantly less than speedy about releasing the new Android revisions for the older ones.

Froyo – the new Android release – will make my phone feel faster. It’ll give it more features, more things the Android can do that the iPhone can’t. Gingerbread – the one after that – will solve all my problems with the Android interface, giving me a consistent UI I can trust to do what I want it to.

In the future, Androids will conquer the earth. It’s a great system, and it’s open, and it’s a far more flexible base than iOS is. But Android will be great around the corner, the jam will come tomorrow. The iPhone is here now, and it works.

I’m sticking with the Desire, at least for now. I’ve been a bit harsh on it in these articles, in part because it has so much it could be doing much better, but I like the idea of a system I can open up and fiddle with, even if I’m never going to get around to doing so.

If a less technically-minded person wanted a “superphone”, though, I’d recommend the iPhone. It has jam, and it has it in a pot ready to use.

Apple computing linux

iPhone vs Android, Round One, Initialisation

So, a couple of weeks ago, Apple announced that the iPad release date for the UK was delayed. Deprived of my chance of a shiny new gadget, and on top of the news that the new iPhone 4 release Just Won’t Work in most respects on my phone which as of the announcement was only one revision behind current, I gave in, bit the bullet, and bought an HTC Desire on a non-contract basis. Starting now, I’m going to bring together my thoughts on the differences. Some of these things are a perspective thing, possibly. I’ve been using an iPhone for close to two years, and the Android for less than a month. On the other hand, my Android device is brand new, and my iPhone is nearly two revisions out of date.


Boxed 2 Around two years ago, I eventually got an iPhone. Apple’s industrial design goes all the way to the box, which is made of high quality cardboard, opens easily, and feels high quality. The Desire box clearly takes inspiration from it, although with a more traditional – for phones – slide out packaging. One of the neat things about the apple box is the way the inside of the top is padded where it touches the screen, avoiding the need for cheap plastic film to protect it in transit. The HTC box is still a step above most phone boxes, however.

Out of the box, the iPhone turns on, and contains a semi-charged battery.

Unboxed 1

Out of the box, once you’ve taken the back off, installed the battery (and memory card if you need one), the Desire also turns on and contains a semi-charged battery. The Desire’s back case removal seems flimsy and breakable, and while you’re only going to need to remove it for rare things – new sim, new memory card, swapping batteries – it’s something of a point of worry. Maybe it’s more sturdy than I credit it for.

The iPhone box contains a special glorified pin for poking into the hole to eject the battery and install the sim.

From a usability point of view, the iPhone wins this. Putting aside the argument about user-replaceable batteries and memory cards (That’ll come later) getting the HTC from box to turn-on was faffy and required dealing with cheap, plasticky components that made me feel like I was breaking the phone. Not a wonderful start, however:

First Boot

I turned on the Android device. I was taken though a slightly under-brief tutorial on how to use the on-screen keyboard (it’s interesting that Apple don’t do this. They give you a keyboard, and expect their usability design to do the rest. The Android keyboard is almost exactly the same, but they don’t trust their own design enough to expect you to be able to use it. On the alternate, the “hold to select special symbols” functionality is explicitly covered in the tutorial, and is the one thing iPhone users used to miss. The 3GS may have fixed this somehow). During a setup wizard thing, I gave it my Google Apps account details and the wifi password, and it slurped down my contacts and emails. It asked for twitter, flickr and facebook accounts, and I gave it these too, and then it slurped down contact photos from facebook for anyone who put their mobile numbers into their profile. It showed me how to use the wigetized home screen, and then left me to it.

I turned on the iPhone. It demanded to be connected to iTunes. I was on a train, and my computer was far away. I turned it back off, put it in its box, in its bag, and sat quietly reading my new phone contract until I got home.

First Boot 1

Advantage Android, I feel.

Once home, and the phone was connected to iTunes, it ran roughly the same as the android thing without the tutorial (There’s a mini-tutorial in a manual that comes with it). I used NuevaSync to treat my google account as an exchange account, which gave me all the automatic syncing I mentioned above (There’s now a way to do this natively using Google, but it never worked for me as well as Nueva does). The Facebook app for iPhone does the contact picture syncing I mentioned (and by the same method, linking contacts to facebook profiles via a “fb://$fbid” URL in the “URLs” section).

Sync or Swim

One of my primary uses for my phone is as a media player, so I wish to be able to sync my music and videos as painlessly as possible. All my music already being in iTunes (with complicated inter-layered automatic playlists, like “Stuff you rate highly but haven’t listened to in a while, plus some new, unrated, stuff.”) iTunes sync is most handy. By default, Android’s music, video and podcast sync is the most old-school thing imaginable, mount as USB device, drag, drop. This works, but has no real “sync” support. Better is DoubleTwist, an app that is  attempting to make music sync on the Android as painless as the iPhone. It has successfully imported my iTunes playlists (mostly. No folder support, and imports automatic playlists as flat) and synced the ones I selected across. It even supports updating podcasts, though it appears to put them straight into the music application and there’s no tracking of what’s been listened to or not. There’s no two-way syncing at all, in fact. Also, Doubletwist is slower than wading though frozen treacle.

Given that the iPhone inherits a lot of this structure from the iPods, it’s no real suprise that being able to sync your own music and song metadata to and from the device is one of the iPhone’s highlights, but the rest of the industry has had eight years to make this stuff even slightly more palatable than dragging files hither and yon; and to launch a “competitor” to the iPhone while thinking that this stuff in any way doesn’t matter is just astoundingly stupid. That Android even needs Doubletwist to exist is proof that Google have missed much of what made the iPhone quite so popular, and even if it didn’t there’s more.

End of part one

Coming up: The phone as a phone, actually using the phone, using it as a media player, apps, app stores, app markets, and WHY THE FUCK HASN’T ANDROID MARKET GOT AN “INSTALL ALL UPDATES BUTTON?”


Apple windows

On being a late adopter III

Depite my great and brand new phone and its wonderous open-sorcery, I still don’t hate Apple.

I mean, I assume my new phone is great, as I write this it still hasn’t arrived.

I said, at the end of that article, that the choice of whether I wanted to waste my battery life is mine, the choice of what I install on my computer is mine. This is because I am a geek, and it matters to me.

I actually believe that there is not a right to tinker. In fact, having worked Desktop Support for a while in both professional and power-user contexts, I am firmly of the opinion that the right to tinker by someone who “knows better” than the guy who set up the system is, sometimes, to be nuked. From orbit. Twice.

In fact, the concept of giving a barely-computer-literate a machine that will work one way, can do the things it should do and also let them change the wallpaper, is a Very Good Idea, because it would minimise the amount of time I, or someone like me, spent on the phone or in a dusty back-office attempting to work out how to revirginise the PC in front of me.

(My favourite, ever, was a machine with a Windows 2000 install where they had infected it with a couple of buckets of spyware, and then ran out of diskspace as the porn-bot-net it was running filled up the hard drive. They had then seen the “Compress Drive” option when looking for ways of gaining space back. As a result, you had a PC running out of memory, where all its swap files needed to be decompressed in memory before access. It ran like almsot frozen blackstrap molasses)

One of the favourite metaphors surrounding the closedness of the iPhone & iPad ecosystems (For those of you playing at home, the iPad and iPhone can only get software via the “App Store”, which required apple vet every piece of software available. The vetting process is currently inconsistant, which is bad, but there is no other way to install stuff, which people see as worse) is that of the car engine, and how this turns the computer industry from the old days where you could see where all the bits went, into the modern car industry where everything is hermatically sealled under a plastic case. The complaint is that the barrier to tinker with your stuff is now higher.

I can accept some of this. I have been tinkering with computers for longer than I can remember. one of my earliest memories is crawling along the carpet to behind the sofa, and pressing the magic button on the white thing that made the numbers go to zero. This – I found out many years later – was the tape counter on a Commadore 64. My first computer was this same C64, where the entire interface *was* a Basic input shell. Shift Run-Stop, Press Play on Tape. I can see how people would say that this meant more people would become computer programmers when they grew up, but I think we’ve already passed that. With PCs up until Windows 95 and the Rise of the Mac, you *had* to learn the basic concepts of computer command lines to use them, be it the ability to type “cd gamesDoom” “doom2” or the inner workings of the config.sys file on the boot disk you created for when you wanted to play Theme Park.

The rise of GUIs pushed a lot of the people who would have become programmers, I think, to having their first experience of source code to be HTML. It just shifts a bit, and if it means that people do not have to understand how a computer works in order to use it, that’s possibly even better. To continue the car simile for a bit, it’s not as if the rise of BMW-type sealled engine blocks entirely removed the people who know how your car works. I’m pretty sure that the people with the mental tendancy to tinker with code aren’t going to be put off forever because their phone or their video player doesn’t compile things for them, as they’ll gravitate to the ones that do, and if it means that I can know my non-existant Uncle Martin has bought an iPad and I won’t be spending the 27th December scrubbing spyware from it, so much to the better.

Apple linux

On being a late adopter II

The story of Flash on the iPhone is interesting.

I don’t want flash on my iPhone, to be honest, and I don’t want it for all the reasons Steve Jobs said in his essay yesterday. Firefox is a lot more stable if you don’t install flash, so is Chrome. Apple say that Flash is the number one reason for crash reports in OS X.

However, I said in my last thoughts on the subject that the iPhone isn’t very ideologically sound. I cut out the paragraph explaining that, because it distracted from the main point, but it’s probably worthwhile anyway. One of the main complaints about the iPhone from both a metaphorical software point of you and a literal hardware perspective, is that that it lives in a hermatically sealed environment. Partly, this is a function a phone OS developed in the US mobile market, which has always been more closed than the European one. You can make less hermetically sealled by jailbreaking it, but the process of Jailbreaking an iPhone is basically a three-shell game with firmware revisions, and if this doesn’t go 100% smoothly you may end up with a phone that no longer has any concept of such things as “how to respond to the on switch”. Apple’s approach appears to be to make this three-shell game slightly more complicated – more out of due-diligence to the phone companies who say you can’t run custom software on a phone than because they hate us – but every so often do things like rewrite the entire bootloader to make it 30% faster, with the side effect that there are now *five* shells and two of them are made out of explosives.

All of this is because most of the US phone network is built of sticky-back plastic, string, hope and tangerines; and this has traditionally lead to the US phone networks making an absolute – and somewhat paranoid – ruling that nothing not personally signed off by the network could be executed on a phone , just in case it went ballywacky and managed to bring down the entire local phone network (GSM, the mobile phone network protocol we use in Europe and that is beginning to take hold in the states, has a couple more safeguards). This has existed since days of Java apps. The years before the iPhone, where people could grab java games and apps and put them on their phone? The US missed 90% of that, because building an app for java in the states meant submitting every new build (and a java app needs to have several different builds for each version, because no two phones have the same capabilities) though an expensive, arbitrary and somewhat brittle certification process *per network* whose phones you wanted to run on. This is why the iPhone was such a revelation to the US market, it was a phone that didn’t suck on a fundamental level (Most .eu phones – being GSM – didn’t make it to the states. The most popular phone up until the iPhone there was, I believe, the Motorola Razr, which is a device with a user interface that actively wishes you to THROW THE PHONE UPON THE FLOOR AND STAMP ON IT WITH MIGHTY BOOTS).

Anyway, the upshot of this was that the iPhone had no capability to add software on launch – it was scary enough as it was for AT&T, being a phone they didn’t have enough control over – but even when they added the App Store for revision 2 it had no hooks for it to take over any of the phone’s basic features. In fact, the App Store official policy states that you cannot post to the store any app that duplicates existing iPhone functionality, and even if you could, there simply aren’t the “hooks” in the system to say “When you get a phone call, run this app instead of Phone”, or even “Use this app instead of the email client”.

Most of the reason for that appears to be control-freakery. Apple’s primary selling point is simplicity of use, that you do not need to know how to work it to work it, and stopping an arbitary app you install from being able to modify what happens when you click on an email address in an SMS is part of it. There is a way that an iPhone works, and this is it, everything else is in its own little sandbox.

Recently, they’ve made steps towards building a climbing frame in the sandbox that things have to build upon. The idea of an app that works the same on Android as on Palm as on iPhone isn’t good for them, because it won’t follow the UI guidelines for iPhone applications in order that, by having used an iPhone application, you roughly know what this button on this other application is going to do. This is actually important to Apple, which is part of the reason they put the block on cross-compiling applications. I agree with this, for the most part. The easist route for an app *should* be the one that follows the UI guidelines for what they are releasing it on, and doesn’t look entirely out of place on the phone.

However, it should be a fence. A short fence, white picket, which can – if necessary – be stepped over. It should not be a wall. For example, Safari and iTunes for Windows both look exactly the same as their Apple counterparts. Partly because maintaining one lot of code is easier, partly because they’re adverts for how shiny a real mac would look. They both follow some guidelines – the window manipulation buttons aren’t arbitary trafic lights, the application closes when you press the close button (not just the window), iTunes even integrates with the taskbar to provide a mini-player when minimised, if you want it to. Microsoft didn’t block iTunes from Windows because it looks entirely out of place (Which is fortunate, otherwise they’d have had to block Steam, Xfire, Winamp, Sonique, and thousands of apps down the line, including Office 2010. Also IE8).

So, basically, it’s not your decision, Steve. It should be mine.

That’s why I’ve just ordered an HTC Desire. I may go back to the iPhone, but at least this way I can pick my own variety of battery drain for a while.

Apple linux

On being a late adopter

I have an iPhone.

I didn’t get a first version iPhone, partly because I wasn’t convinced. I got a 3G one once they came out, and it’s a thing I require now. I have gone somewhat beyond the first stage of iPhonicness, where there is no moment where you are sitting down and not playing with it. I still play, obviously, but I attempt to put it away occasionally.

Anyway, my contract on it ran out in January, so I’ve been thinking about an upgrade, and because I am a geek I’ve been looking at Android phones, and with the HTC Desire, I think I have found a winner for my next phone.

It’s an iPhone.

The Android phones are nice, in fact they’re pretty awesome. The UI is progressing in leaps and bounds, and the hardware is getting more and more impressive. That’s actually part of the problem, in fact. When I started thinking “I need to get a new phone, what can Android get me now?” it was the Droid – the Milestone, when it was eventually released here – and then as my contract expired, Google announced the Nexus one. I thougt originally that the release date of the Nexus One was a cool bit of timing, exactly 18 months after the release of the iPhone 3G, which was the standard contract length O2 were offering for it. I was ready to sign up, switch to T-Mobile, and go. But it didn’t release here, only in the US. It may have released here by now, but I no longer care, because the upgraded model, better in every respect, has launched in the form of the HTC Desire.

That, from the Droid to the Nexus One to the Desire, is three major leaps in Android hardware in nine months, and I will be really unsuprised if another one isn’t announced in June, around the same time the new iPhone is announced.

The iPhone isn’t perfect. I mean, physically it pretty much is, and technologically it’s awesome too, but it’s not ideologically sound. The closed in hardware and software model is not one I like, but to be entirely honest for a device that I will be quite literally using and relying on every single day, I care a great deal about the UI, and the joined-up-ness of the software, but I do also care about the openness. A bit.

I’m also literally invested in the Apple platform, having bought a number of Apps over the last 22 months.

In July, the new iPhone OS 4 will be released, and many of the new features won’t work with my phone. Importantly, Multitasking won’t, because it has half the processing power and memory of the current model iPhone (and probably a quarter of what the next model up will have). But for a year, it was the best model available and would run everything. One of the standard anti-mac-fanboy rants is that there’s an upgraded model out before you’ve bought the current one, but if I buy the new iPhone in June, I can be pretty sure it’ll be the best iPhone for at least a year, and a supported platform for another after that. If I bought an Android phone today, it’ll not be able to run the newest stuff in six months time – possibly including OS updates – and by the time an 18 month contract expires I’ll be eight revisions behind, assuming advancements at current rates.

But we shall see what the next announcement will bring.