Tags: apple



The web on my phone

It’s funny how times have changed. Remember back in the 90s when Microsoft—quite rightly—lost an anti-trust case? They were accused of abusing their monopolistic position in the OS world to get an unfair advantage in the browser world. By bundling a copy of Internet Explorer with every copy of Windows, they were able to crush the competition from Netscape.

Mind you, it was still possible to install a Netscape browser on a Windows machine. Could you imagine if Microsoft had tried to make that impossible? There would’ve been hell to pay! They wouldn’t have had a legal leg to stand on.

Yet here we are two decades later and that’s exactly what an Operating System vendor is doing. The Operating System is iOS. It’s impossible to install a non-Apple browser onto an Apple mobile computer. For some reason, the fact that it’s a mobile device (iPhone, iPad) makes it different from a desktop-bound device running OS X. Very odd considering they’re all computers.

“But”, I hear you say, “What about Chrome for iOS? Firefox for iOS? Opera for iOS?”

Chrome for iOS is not Chrome. Firefox for iOS is not Firefox. Opera for iOS is not Opera. They are all using WebKit. They’re effectively the same as Mobile Safari, just with different skins.

But there won’t be any anti-trust case here.

I think it’s a real shame. Partly, I think it’s a shame because as a developer, I see an Operating System being let down by its browser. But mostly, I think it’s a shame because I use an iPhone and I’m being let down by its browser.

It’s kind of ironic, because when the iPhone first launched, it was all about the web apps. Remember, there was no App Store for the first year of the iPhone’s life. If you wanted to build an app, you had to use web technologies. Apple were ahead of their time. Alas, the web technologies weren’t quite up to the task back in 2007. These days, though, there are web technologies landing in browsers that are truly game-changing.

In case you hadn’t noticed, I’m very excited about Service Workers. It’s doubly exciting to see the efforts the Chrome on Android team are making to make the web a first-class citizen. As Remy put it:

If I add this app to my home screen, it will work when I open it.

I’d like to be able to use Chrome, Firefox, or Opera on my iPhone—real Chrome, real Firefox, or real Opera; not a skinned version of Safari. Right now the only way for me to switch browsers is to switch phones. Switching phones is a pain in the ass, but I’m genuinely considering it.

Whereas I’m all talk, Henrik has taken action. Like me, he doesn’t actually care about the Operating System. He cares about the browser:

Android itself bores me, honestly. There’s nothing all that terribly new or exciting here.’

save one very important detail…


That’s true for now. The pole position for which browser is “best” is bound to change over time. The point is that locking me into one particular browser on my phone doesn’t sit right with me. It’s not very …webby.

I’m sure that Apple are not quaking in their boots at the thought of myself or Henrik switching phones. We are minuscule canaries in a very niche mine.

But what should give Apple pause for thought is the user experience they can offer for using the web. If they gain a reputation for providing a sub-par web experience compared to the competition, then maybe they’ll have to make the web a first-class citizen.

If I want to work towards that, switching phones probably won’t help. But what might help is following Alex’s advice in his answer to the question “What do we do about Safari?”:

What we do about Safari is we make websites amazing …and then they can’t not implement.

I’ll be doing that here on adactio, over on The Session (and Huffduffer when I get around to overhauling it), making progressively enhanced, accessible, offline-first, performant websites.

I’ll also be doing it at Clearleft. If you work at an organisation that wants a progressively-enhanced, accessible, offline-first, performant website, we should talk.

Without delay

When I wrote about mobile Safari adding support for touch-action: manipulation, I finished with this snarky observation:

Anyway, I’m off to update my CSS even though this latest fix probably won’t land in mobile Safari until, oh ….probably next October.

Historically, Apple have tied mobile Safari updates to iOS version number increments, and they happen about once a year. But this time, it looks like my snark was unfounded:

On Safari for iOS, the 350 ms wait time to detect a second tap has been removed to create a “fast-tap” response. This is enabled for pages that declare a viewport with either width=device-width or user-scalable=no. Authors can also opt in to fast-tap behavior on specific elements by using the CSS touch-action property, using the manipulation value.

That’s from the release notes for Safari 9.1—a point release.

I’m very pleased to have been absolutely wrong with my prediction of Apple’s timing.

Home screen

Remy posted a screenshot to Twitter last week.

A screenshot of adactio.com on an Android device showing an Add To Home Screen prompt.

That “Add To Home Screen” dialogue is not something that Remy explicitly requested (though, of course, you can—and should—choose to add adactio.com to your home screen). That prompt appears in Chrome on Android as the result of a fairly simple algorithm based on a few factors:

  1. The website is served over HTTPS. My site is.
  2. The website has a manifest file. Here’s my JSON manifest file.
  3. The website has a Service Worker. Here’s my site’s Service Worker script (although a little birdie told me that the Service Worker script can be as basic as a blank file).
  4. The user visits the website a few times over the course of a few days.

I think that’s a reasonable set of circumstances. I particularly like that there is no way of forcing the prompt to appear.

There are some carrots in there: Want to have the user prompted to add your site to their home screen? Well, then you need to be serving on a secure connection, and you’d better get on board that Service Worker train.

Speaking of which, after I published a walkthrough of my first Service Worker, I got an email bemoaning the lack of browser support:

I was very much interested myself in this topic, until I checked on the “Can I use…” site the availability of this technology. In one word “limited”. Neither Safari nor IOS Safari support it, at least now, so I cannot use it for implementing mobile applications.

I don’t think this is the right way to think about Service Workers. You don’t build your site on top of a Service Worker—you add a Service Worker on top of your existing site. It has been explicitly designed that way: you can’t make it the bedrock of your site’s functionality; you can only add it as an enhancement.

I think that’s really, really smart. It means that you can start implementing Service Workers today and as more and more browsers add support, your site will appear to get better and better. My site worked fine for fifteen years before I added a Service Worker, and on the day I added that Service Worker, it had no ill effect on non-supporting browsers.

Oh, and according to the Webkit five year plan, Service Worker support is on its way. This doesn’t surprise me. I can’t imagine that Apple would let Google upstage them for too long with that nice “add to home screen” flow.

Alas, Mobile Safari’s glacial update cycle means that the earliest we’ll see improvements like Service Workers will probably be September or October of next year. In the age of evergreen browsers, Apple’s feast-or-famine approach to releasing updates is practically indistinguishable from stagnation.

Still, slowly but surely, game-changing technologies are landing in browsers. At the same time, the long-term problems with betting on native apps are starting to become clearer. Native apps are still ahead of what can be accomplished on the web, but it was ever thus:

The web will always be lagging behind some other technology. I’m okay with that. If anything, I see these other technologies as the research and development arm of the web. CD-ROMs, Flash, and now native apps show us what authors want to be able to do on the web. Slowly but surely, those abilities start becoming available in web browsers.

The pace of this standardisation can seem infuriatingly slow. Sometimes it is too slow. But it’s important that we get it right—the web should hold itself to a higher standard. And so the web plays the tortoise while other technologies race ahead as the hare.

It’s interesting to see how the web could take the desirable features of native—offline support, smooth animations, an icon on the home screen—without sacrificing the strengths of the web—linking, responsiveness, the lack of App Store gatekeepers. That kind of future is what Alex is calling progressive apps:

Critically, these apps can deliver an even better user experience than traditional web apps. Because it’s also possible to build this performance in as progressive enhancement, the tangible improvements make it worth building this way regardless of “appy” intent.

Flipkart recently launched something along those lines, although it’s somewhat lacking in the “enhancement” department; the core content is delivered via JavaScript—a fragile approach.

What excites me is the prospect of building services that work just fine on low-powered devices with basic browsers, but that also take advantage of all the great possibilities offered by the latest browsers running on the newest devices. Backwards compatible and future friendly.

And if that sounds like a naïve hope, then I humbly suggest that Service Workers are a textbook example of exactly that approach.

100 words 082

Apple launched the iPad five years ago. A few months after its release, I bought one of those first-generation iPads. I used it for a while before concluding that, much as I had suspected, it wasn’t the right device for me. But it was the perfect device for my mother. So I gave the iPad to my mother.

Sure enough, it worked out great for her. But now it’s getting quite long in the tooth. So now I’ve given her a new iPad for her birthday; one that’s lighter, faster, and—crucially—comes with a camera. It’s a Facetime device.

100 words 015

An article in Wired highlights a key feature of the new Apple watch—to free us from the tyranny of the smartphone screen.

I’ve never set up email on my phone.

If I install an app on my phone, the first thing I do is switch off all notifications. That saves battery life and sanity.

The only time my phone is allowed to ask for my attention is for phone calls, SMS, or FaceTime (all rare occurrences). I initiate every other interaction—Twitter, Instagram, Foursquare, the web. My phone is a tool that I control, not the other way around.

iOS Six Fix

Last Christmas I gave you my bug report. Well, more of a whinge really. Scott put together a much better bug report and test page:

When the meta viewport tag is set to content=”width=device-width,initial-scale=1”, or any value that allows user-scaling, changing the device to landscape orientation causes the page to scale larger than 1.0. As a result, a portion of the page is cropped off the right, and the user must double-tap (sometimes more than once) to get the page to zoom properly into view.

Yes, it’s the old orientation and scale bug in Mobile Safari.

I’m pleased to report that as of iOS version 6, this bug seems to have finally been squashed. Hallelujah!

Given the relatively rapid upgrade path for iPhone, iPod Touch and iPad users, it won’t be long until we can remove our clever solutions for working around this problem.

Stand down, hackers, stand down. This bug has been taken care of.

Jeremy caught the mantis


When I was writing about browser-developer relations yesterday, I took this little dig at Safari:

Apple, of course, dodges the issue entirely by having absolutely zero developer relations when it comes to their browser.

A friend of mine who works at Apple took me to task about this on Twitter (not in the public timeline, of course, but by direct message). I was told I was being unfair. After all, wasn’t I aware of Vicki Murley, Safari Technologies Evangelist? I had to admit that I wasn’t.

“What’s her URL?” I asked.


“Of her blog.”

“She doesn’t have one.”

That might explain why I hadn’t heard of her. Nor have I seen her at any conferences; not at the Browser Wars panels at South by Southwest, nor at the browser panels at Mobilsm.

The Safari Technologies Evangelist actually does speak at one conference: WWDC. And the videos from that conference are available online …if you sign on the dotted line.

Now, I’m not saying that being in developer relations for a browser vendor means that you must blog or must go to conferences. But some kind of public visibility is surely desirable, right? Not at Apple.

I remember a couple of years back, meeting the Safari evangelist for the UK. He came down to Brighton to have lunch with me and some of the other Clearlefties. I remember telling him that I could put him touch with the organisers of some mobile-focused conferences because he’d be the perfect speaker.

“Yeah,” he said, “I’m not actually allowed to speak at conferences.”

An evangelist who isn’t allowed to evangelise. That seems kind of crazy to me …and I can only assume that it’s immensely frustrating for them. But in the case of Apple, we tend to just shrug our shoulders and say, “Oh, well. That’s Apple. That’s just the way it is.”

Back when I was soliciting questions for this year’s browser panel at Mobilism, Remy left a little rant that began:

When are we, as a web development community, going to stop giving Apple a free fucking pass? They’re consistently lacking in the open discussion in to improving the gateway to the web: the browser.

And he ended:

Even the mighty PPK who tells entire browser vendors “fuck you”, doesn’t call Apple out, allowing them to slither on. Why is it we continue to allow Apple to get away with it? And can this ever change?

When I next saw Remy, I chuckled and said something along the usual lines of “Hey, isn’t that just the way it is at Apple?” And then Remy told me something that made me rethink my defeatist accepting attitude.

He reminded me about the post on Daring Fireball where John describes the sneak peak he was given of Mountain Lion:

But this, I say, waving around at the room, this feels a little odd. I’m getting the presentation from an Apple announcement event without the event. I’ve already been told that I’ll be going home with an early developer preview release of Mountain Lion. I’ve never been at a meeting like this, and I’ve never heard of Apple seeding writers with an as-yet-unannounced major update to an operating system. Apple is not exactly known for sharing details of as-yet-unannounced products, even if only just one week in advance. Why not hold an event to announce Mountain Lion — or make the announcement on apple.com before talking to us?

That’s when Schiller tells me they’re doing some things differently now.

And that, said Remy, is exactly why now is the time to start pushing back against Apple’s opaque developer relations strategy when it comes to Safari: they’re doing some things differently now.

He’s right.

Apple’s culture of secrecy has served them very, very well for some things—like hardware—but it’s completely at odds with the spirit of the web. That culture clash is most evident with Safari; not just a web browser, but a web browser built on the open-source Webkit platform.

I’m sure that Vicki Murley is great at her job. But her job will remain limited as long as she is hampered by the legacy of Apple’s culture.

That culture of secrecy is not written in stone. It can change. It should change. And the time for that change is now.


Dear Apple Claus,

I’ve been a very good boy this year so I hope you don’t me asking for a little present. What I’d really like for Christmas is for you to fix that strange orientation scaling bug in Mobile Safari.

Just in case you’ve forgotten about it, my friend Scott—who has been a very, very good boy this year (what with that whole Boston Globe thing)—put together a test page quite a while back to demonstrate the problem.

Basically, if I set meta name="viewport" content="width=device-width, initial-scale=1.0" then it means a pixel should be equal to a pixel: in portrait view, the width should be 320 pixels; in landscape view the width should be 480 pixels. But in Mobile Safari, if I move from portrait to landscape, the width jumps to a value larger than 480 pixels, which means the hapless user must double tap to bring the scale down to 1:1.

Now, admittedly, I could just set meta name="viewport" content="width=device-width" and leave it at that (or I could additionally declare minimum-scale=1.0). But then when the user changes from portrait to landscape, although it doesn’t have the same over-zooming behaviour, it does scale up. That means I’m not getting the full 480 pixels (it’s effectively still a 320 pixel wide display, even in landscape).

I could make the bug disappear by adding maximum-scale=1.0 or user-scaleable=no but that’s the cure that kills the patient. I also did some hacking with Shi Chuan but what we come up with still feels fairly clunky.

So that’s why I’m writing to you, Father Applemas. Won’t you fix this bug for me?

My friend PPK thinks you won’t fix this bug because it would trigger a reflow (and repaint) of the page …but I know that can’t be the reason because the bug doesn’t occur when going from landscape to portrait!

Also—and this is the really strange part—If I’m looking at a web page on my iPhone/Pod in a custom browser (like the Twitter app), rather than using Mobile Safari, then the bug doesn’t occur.

I don’t get, Apple Claus. Why have one behaviour for webviews in other people’s apps and a different behaviour for your own app?

Anyway, if you could see your way to granting this boy’s wish, it would make for a webby Christmas.

Hugs and kisses,


P.S. By this time next year, it would be lovely to have access to the camera (and other device APIs) from the browser …but I’m getting ahead of myself.

Update: the bug has been fixed in iOS 6.

Super-Toys Last All Summer Long

When I was in Boston for An Event Apart back in May, I bought an .

That makes it sound like a very casual act. Back then, iPads were in very short supply. When I asked an employee at the Apple Store in Boston if they had any iPads in stock, he didn’t answer Hmm… let me check, or Not at the moment. He answered Oh, God no!

Fortunately, Malarkey was far more persistent than I and managed, through means fair or foul, to track down the only two iPads for sale in all of Beantown.

I used the device for two months and then, as predicted, I gave it to my mother. It was definitely the right decision. She loves it. She’s using it all the time, surfing the web wherever she pleases.

I liked using the iPad, but I didn’t love it. Once the novelty wore off, I found I had few good reasons to use it rather than use my Macbook.

Some observations from a Summer spent in the company of the iPad…

The iPad is almost exactly the wrong weight. It’s just that little bit too heavy to comfortably hold in one hand. It’s no coincidence that all of iPad demonstrations show it resting on a raised leg. I found that if I was using the iPad for any length of time, I would adopt a more and more relaxed, nay… slouchy position. Before I knew it, I was supine on the sofa, one leg raised with the iPad resting against it, like a Roman emperor waiting to be fed individually-peeled grapes.

The iPad is a great device for reading. I rediscovered the power of RSS. The iPad is also a great device for browsing the web. The problem is, I don’t really browse the web that much. Instead, I browse, I bookmark, I quote, I huffduff, I copy, I paste, I tweet, I share. Using an iPad made me realise that the web is very much a read/write medium for me. While it’s possible to do all those things on the iPad, it isn’t easy.

The tell-tale moment came when I was reading something on the iPad—supine on the sofa, of course—that I wanted to post to Delicious. Rather than fill in a form using the iPad’s on-screen keyboard, I found myself putting the iPad down and reaching for my Macbook just to accomplish that one little task. That’s when I knew it wasn’t the ideal device for me.

Don’t get me wrong: I’m not joining in the chorus of those silly enough to say that the iPad can’t be used for creating, editing and updating. That conclusion would be far too absolute and Boolean. But I think the iPad favours consumption more than creation. And that’s okay. That still makes it a great device for many people—such as my mother.

There’s one big fly in the ointment of the iPad as a device for non-geeks—such as my mother—and that’s the out-of-the-box experience. John Gruber pointed this out in his review of the iPad:

One thing that is very iPhone-like about iPad is that when you first take it out of the box, it wants to be plugged into your Mac or PC via USB and sync with iTunes. … It creates an impression that the iPad does not stand on its own. It’s a child that still needs a parent. But it’s not a young child. It’s more like a teenager. It’s close. So close that it feels like it ought to be able to stand on its own.

My mother has an old G3 Ruby iMac which doesn’t have USB 2, so I had to set up the iPad on my machine before giving it to her. It’s such a shame that this step is even necessary. I love the idea of a portable touchscreen device that you can simply turn on for the first time, connect to a WiFi network, and start surfing the web.

Perhaps later versions of the iPad will support account synching via . Perhaps later versions of the iPad will support multiple accounts, which would make it a great family household device. Perhaps later versions of the iPad will have a front-facing camera and support FaceTime. Perhaps later versions of the iPad will be slimmer and lighter.

Perhaps I will get a later version of the iPad.

The iPad and the web

Before Apple launched the , I managed to refrain from adding to the deluge of speculation and rumour. Now that the much-anticipated tablet has been unveiled, I can’t resist jotting down my thoughts.

Now, this is just my reaction to a piece of technology. I feel a need to clarify that because discourse on the internet has a strange way of getting warped. Someone says I like Italian food, and someone else responds with Why do you hate Mexican food? Someone says I enjoyed watching Avatar, and someone else hears Everyone should enjoy watching Avatar. So bear in mind that this is just my personal reaction. I’m not saying that everyone should share my feelings. ‘Twould be a very dull world indeed in which we all felt the same.

I didn’t watch Steve Jobs unveiling the iPad—I was busy learning at a Skillswap event—but when I was reading up about it afterwards, I thought to myself I’m probably going to get an iPad…

Actually, at this point I need to take care of something:

Mum, if you’re reading this, could you stop now please? Thanks. Love you.

Anyway, as I was saying, I thought to myself I’m probably going to get an iPad …for my mother.

Honestly, there isn’t much on offer in the iPad that I don’t already have in my Macbook. I don’t think it is the device for me. But it is most definitely the device for my mother. I don’t mean “a theoretical persona such as one’s mother,” I mean my mother.

My mother is currently using a that used to belong to me. When she started using this machine, she had never used a keyboard, much less a computer. I am very, very glad that her first computer was a Mac and that she’s never had to deal with the world of pain that is Windows, but even a Mac has a learning curve for someone who’s never used a computer before.

I remember explaining what the cursor was and how the mouse controlled it. When I said “move it up”, she lifted up the mouse off the table. Thinking about it, the mouse isn’t as straightforward as we think: moving the mouse left and right does map to moving the cursor left and right, but moving the mouse forward and backward maps to moving the cursor up and down. Both the cursor and the mouse move on two-dimensional surfaces but only half the movements of the mouse correspond directly to movements of the cursor.

In computer years, a G3 iMac is ancient. It’s amazing that it still runs at all. I’ve been thinking for a while now about what would make a suitable replacement. A newer iMac would be good but they’re a little pricey for something that’s going to be used for web surfing, email, some digital photography and little else. A laptop would be nice. Now that my mother has WiFi, there’s no need for her to have to remain in one place to use her computer. But laptops are fiddly things with fiddly trackpads.

The iPad strikes me as the Goldilocks solution. It’s just right. If the European pricing follows the general Apple conversion rate, the iPad should be pretty darn affordable. It would be nice if it came with an iSight for iChatting; that might well get added in a later version. Web surfing, email and photo browsing are all not just possible, but likely to be pleasurable. That’s because the multitouch control mechanism is likely to feel far more intuitive than either a mouse or a trackpad. (Caveat: I haven’t used an iPad. Take my opinion, and the opinions of anyone else who hasn’t actually used one, with a heaped tablespoon of salt.)

So I’m probably going to get an iPad, but for someone else. If it came with nothing more than a WiFi connection and a web browser, it would still be a worthwhile device for my mother. In fact, the idea of using a computing device based around a browser is what’s driving the . Google’s vision is one wherein the file system and the hard drive are far less important than the web browser and the web server.

That’s why I’m slightly mystified about the App Store grumblings. Yes, it’s a closed system that Apple controls completely. But the same devices that support the App Store also come with a very advanced web browser. Personally, I think that if a device is capable of running HTML, CSS and JavaScript, I don’t think it can be described as “closed”.

Don’t like the closed nature of the App Store? Don’t use it. Use the web instead. That’s the point that PPK was making, albeit a bit stridently. Admittedly, if you want to make money directly from an app, you might have a harder time of it on the web than on the App Store. Make your app distribution bed and lie in it.

I’ve already seen people on Twitter sharing some ideas for the uses to which the iPad could be put:

  • displaying sheet music on a music stand,
  • showing recipes on a kitchen worktop,
  • playing scrabble, sudoku and crosswords,
  • reading comics,
  • reading magazines a la Mag+,
  • reading books in a way that doesn’t involve the silly page-turning visual metaphor built into the iBooks app.

All of those are great ideas and all of them can be implemented on the web. Remember that Mobile Safari already has excellent support for canvas, audio, video and offline storage. No App Store required. As Simon St. Laurent puts it, web developers can rule the iPad.

I understand the concerns of my fellow geeks who see the read-only nature of the iPad as restrictive compared to the read-write nature of laptop and desktop computers. Rafe Colburn asks Is the iPad the harbinger of doom for personal computing?:

I think that it’s a real possibility that in 10 years, general purpose computers will be seen as being strictly for developers and hobbyists.

Alex Payne foresees a tinkerer’s sunset:

The thing that bothers me most about the iPad is this: if I had an iPad rather than a real computer as a kid, I’d never be a programmer today.

While I understand and to a certain extent, share these forebodings, I’m cautiously optimistic that these fears won’t be realised. The iPad isn’t going to replace laptop or desktop computers; it’s a different kind of machine for a different kind of user.

Frasier Spiers welcomes the glimpse that the iPad offers us of information processing dissolving into behaviour when he writes:

If the iPad and its successor devices free these people to focus on what they do best, it will dramatically change people’s perceptions of computing from something to fear to something to engage enthusiastically with. I find it hard to believe that the loss of background processing isn’t a price worth paying to have a computer that isn’t frightening anymore.

Nik agrees:

Yes, it’s an entirely prescriptive way of computing - one that the hackers, tinkerers and geeks will find alien and protest about its lack of openness. But here’s the thing: for the people who the iPad is aimed at it really doesn’t matter that this experience is prescriptive.

I think he’s right. The iPad isn’t for geeks but I can foresee geeks, like me, buying iPads for members of their family …if for no other reason than to reverse the trend of the holiday season becoming the tech support season.

I’m not usually one for predictions, but I think I’ll try my hand at one now. The iPad will be the best-selling device to be purchased as a gift for Christmas 2010.


When the original came out, it was pretty impressive. Every subsequent iteration has featured improvements of varying levels of impressiveness. The latest version, though, has bowled me over.

I’m not talking about faster speeds, bigger storage, or any new fangled gizmos or geegaws. I’m talking about VoiceOver in the iPhone.

Watch the video to get the low-down. Then read this first-hand account of using an accessible touch-screen device.

That’s quite a design challenge: an accessible touch-screen device! I doff my hat in the general direction of the Apple engineers who rose to this challenge.

Speaking of exciting developments in the world of accessibility…

The second Accessibility 2.0 conference will be taking place in London on the 22nd of this month. It was a cracking event last year and, judging by the line-up, this year is going to be a winner too. Grab a ticket now.

Hacky holidays on the iPod Touch

I’m guessing that one of the more popular gifts this season is the . Christmas came early for me; I picked up my iTouch when I was in San Francisco in October. Thanks to Jina and a weak dollar, the price was right.

Ever since then, I’ve been making the most of it. The 16GB capacity is a bit limiting—my music collection is somewhat larger than that—but the combination of WiFi and a kickass web browser more than compensates. An iPod Shuffle is still probably the best choice for accompaniment on a brisk walk but the Touch is the perfect traveling companion on a train or plane.

I’ve been meaning to sit down and hack open the iPod but I just haven’t had the time… until now. As well as being the ideal time for wresting with operating system upgrades, this Christmas break in Arizona is the perfect opportunity for a bit of jailbreaking.

If you got a brand new iPod Touch for Christmas and you’d like to install third-party apps, here’s what you need to do.

Downgrading the firmware

Chances are you’ve updated your iPod’s software to version 1.1.2 or 1.1.3. You can find the version number by going to Preferences, then General, then About and looking under Version. If you’re running 1.1.1, you can skip ahead to the next step. If you’re running 1.1.2 or higher, you’ll need to downgrade to version 1.1.1 in order to jailbreak your iPod Touch.

You can follow all the steps required to downgrade. Be warned: this will remove any songs, movies and photos that you have on your iPod—you’ll need to sync again at the end of all this in order to get your stuff back on there.

In a nutshell:

  1. Download the firmware.
  2. Put your iPod into recovery mode.
  3. Connect your iPod Touch to your Mac. When iTunes launches, hold down the option key and click Restore. Now select the file that you downloaded in step 1.
  4. Wait for the firmware to install. Once it’s done, the iPod Touch will reboot.
  5. Choose the option to set up a new iPod (the option to restore from backup won’t work). At this point, you might want to re-sync all the music and other data that was wiped in the firmware downgrade. Feel free to disconnect the iPod after this step.


Once you’re running version 1.1.1, hacking the iPod Touch is very simple. Make sure you’re online and then use Safari on the iPod to navigate to jailbreakme.com. Scroll down to the end of that page and click on “Install AppSnapp.” Safari will quit and you will see a progress indicator while your iPod gets cracked open (if you don’t see the progress indicator, go back into Safari and try that link again).

Once that’s done, you’ll have a new app on your iPod’s desktop called Installer.

Turbocharging the iPod Touch

The new Installer app on your iPod is your gateway to a world of third-party wonders. Here are my recommendations.


This Last.fm app is wonderful. It’s like having a radio on your iPod but a radio that knows exactly what kind of music you like. While a song is playing, you can view an artist bio, read the song lyrics and even see upcoming tour dates. Get this: if you click on one of those concert dates, the event will be added to your Calendar app.


This is my IRC client of choice on the desktop so I was really happy to see that a version was available for the iPod Touch. It works a treat. Now I can pop into #microformats on freenode.net any time I want.


Once you’ve got this eBook reader installed, you can download works in the public domain such as The Origin of Species and The Adventures of Sherlock Holmes as well as the Creative Commons licensed Free Culture by Lawrence Lessig.


This is like the Books application but it’s specifically for StarDict dictionaries, of which there are many available to install. Install as many dictionaries as you like and you can then run simultaneous searches against them all. A single dictionary takes up less space than the average MP3.


There’s a Tetris clone called Tetromino, a Chess app called Caissa, a fiendishly addictive game called Lights Off and of course, the ubiquitous Sudoku. The Sketches app isn’t strictly speaking a game but it sure is fun. It’s like etch-a-sketch—you can even shake the iPod to erase your drawings.

Installing iPhone apps

Ingenious as all these third-party apps are, you’re probably most eager to get your hands on those iPhone apps that for some reason known only to Steve Jobs, didn’t ship with the iPod Touch. Maps, Notes, Weather and Mail; these are all apps that can run perfectly well on your iPod.

By default, the Installer app doesn’t offer these applications. You can remedy that by clicking on the Sources list in Installer, then pressing the Edit button in the top right corner and then Add in the top left. Enter http://repo.us.to/ as a new source.

Now the Install list will show new categories including “iPhone 1.1.2 Apps for iTouch”. That’s where you’ll find the iPhone goodies, each one accompanied by a stern warning that you should of course already own an iPhone in order to install these apps (wink, wink). If you plan on installing Maps or Mail, be sure to install the corresponding Maps Prep and Mail Prep applications first.

Having the Maps application running on the iPod Touch is worth any jailbreaking hassle. It instantly makes the device more useful (and more fun).

Usually, accounts of iPod or iPhone hacking are accompanied by caveats absolving the author of any culpability so at this point I should probably say something about this all being at your own risk and yadda, yadda, yadda. But I’m not going to say that. Instead, I say if you’ve got an iPod Touch, jailbreak it now. It will unlock the latent power of that Turing machine in the palm of your hand and turn it from being an MP3 player into a true mobile device.

If something does go horribly wrong, the worst that’s going to happen is that you’ll need to restore your iPod Touch to its factory settings—something you can do in one click from iTunes.

Hacky holidays on OS X

Christmas is a time for giving, a time for over-indulgence, a time for lounging around and for me, a time for doing those somewhat time-consuming tasks that I’d otherwise never get around to doing… like upgrading my operating system.

I used the downtime here in Arizona to install Leopard on my Macbook. I knew from reading other people’s reports that it might take some time to get my local web server back up and running. Sure enough, I had to jump through some hoops.

I threw caution to the wind and chose the “upgrade” option. Normally I’d choose “Archive and Install” but it sounds like this caused some problems for Roger .

The upgrade went smoothly. Before too long, I had a brand spanking new OS that was similar to the old OS but ever so slightly uglier and slower.

My first big disappointment was discovering that my copy of Photoshop 7 didn’t work at all. Yes, I know that’s a really old version but I don’t do too much image editing on my laptop so it’s always been good enough. I guess I should have done some reading up on compatibility before installing Leopard. Fortunately, I was able to upgrade from Photoshop 7 to Photoshop CS3—I was worried that I might have had to buy a new copy.

But, as I said, the bulk of my time was spent getting my local LAMP constellation back up and running. I did most of my editing in BBEdit—if you install the BBEdit command line tools, you can use the word bbedit in Terminal to edit documents. If you use Textmate, mate is the command you want.

Leopard ships with Apache 2 which manages virtual hosts differently to the previous version. Instead of keeping all the virtual host information in /etc/httpd/httpd.conf (or /etc/httpd/users/jeremy.conf), the new version of Apache stores it in /private/etc/apache2/extra/httpd-vhosts.conf. I fired up Terminal and typed:

bbedit /private/etc/apache2/extra/httpd-vhosts.conf

That file shows a VirtualHost example. After unlocking the file, I commented out the example and added my own info:

<VirtualHost *:80>
   ServerName adactio.dev
   DocumentRoot "/Users/jeremy/Sites/adactio/public_html"

The default permissions are somewhat draconian so to avoid getting 403:Forbidden messages when trying to look at any local sites, I also added these lines to the httpd-vhosts.conf file:

<Directory /Users/*/Sites/>
    Options Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
    AllowOverride All
    Order allow,deny
    Allow from all

I then saved the file, which required an admin password.

The good news is that Leopard doesn’t mess with the hosts file (located at /private/etc/hosts). That’s where I had listed the same host names I had chosen in the previous file: localhost adactio.dev

But for any of that to get applied, I needed to edit the httpd.conf file:

bbedit /private/etc/apache2/httpd.conf

I uncommented this line:

# Include /private/etc/apache2/extra/httpd-vhosts.conf

While I was in there, I also removed the octothorp from the start of this line:

# LoadModule php5_module libexec/apache2/libphp5.so

That gets PHP up and running. Leopard ships with PHP5 which is A Good Thing.

Going into Systems Preferences, then Sharing and then ticking the Web Sharing checkbox, I started up my web server and was able to successfully navigate to http://adactio.dev/. There I was greeted with an error message informing me that my local site wasn’t able to connect to MySQL.

Do not fear: MySQL is still there. But I needed to do two things:

  1. Tell PHP where to look for the connection socket and
  2. Get MySQL to start automatically on login.

For the first step, I needed a php.ini file to edit. I created this by copying the supplied php.ini.default file:

cd /private/etc
cp php.ini.default php.ini
bbedit php.ini

I found this line:

mysql.default_socket =

…and changed it to:

mysql.default_socket = /private/tmp/mysql.sock

I had previously installed MySQL by following these instructions but now the handy little preference pane for starting and stopping MySQL was no longer working. It was going to be a real PITA if I had to manually start up MySQL every time I restarted my computer so I looked for a way of getting it to start up automatically.

I found what I wanted on the TomatoCheese Blog. Here’s the important bit:

Remove the MySQL startup item (we’ll use the preferred launchd instead):

 sudo rm -R /Library/StartupItems/MYSQLCOM

Also, right-click and remove the MySQL preference pane in System Preferences because we’ll be using the preferred launchd instead.

Copy this MySQL launchd configuration file to /Library/LaunchDaemons, and change its owner to root:

sudo chown root /Library/LaunchDaemons/com.mysql.mysqld.plist

That did the trick for me. When I restarted my machine, MySQL started up automatically.

So after some command line cabalism and Google sleuthing, I had my local webdev environment back up and running on Leopard.

Tiki connection

The jolly japes continue in San Francisco. Sitting in the Tonga Room last night, Steve introduces Jina to Stephanie: “You two both work at Apple.” At that point, someone points out where Steve works: “LinkedIn!”

Well, I thought it was funny. But maybe that was just down to the cocktail I was drinking from a pineapple.


Amazon is selling MP3s. Right now it’s US only (and I’ve got a sneaky US account on the side) but hopefully this will reach foreign shores before too long. Straight out of the starting gate, they’ve got about 2 million songs on offer. Every single one of those songs is encoded at 256kbps with no DRM. It’s that last detail that makes this such a big deal.

I’ve never been able to get my head around the justifications for DRM. In the past, I have been literally sitting in front of my computer with my credit card in hand, eager to spend money on music I love. But rather than greet me with open arms, services like iTunes instead treat me with suspicion, demanding that they get to call the shots about how I can use music that I’ve bought.

For a really egregious example of where this can lead, take note that Virgin Digital is shutting down:

All tracks used Windows Media DRM, and therefore were only playable under Windows and on WMA-compatible devices. The site now advises its customers who have purchased tracks to back them up, as they will not be able to download them again once Virgin Digital has closed. It’s unclear whether the purchasers of individual tracks will be able to access their songs without burning them to CD and reimporting them as MP3s, but it’s better to be safe than sorry if you’re one of those customers. And naturally, subscribing members will lose access altogether once their subscriptions lapse.

DRM-crippled suppliers treat me like a criminal. That turns out to be a self-fulfilling prophesy. It’s precisely because of the DRM that I resort to using peer-to-peer networks or other illicit means of music acquisition.

Make no mistake, the design of the iTunes music store trumps Amazon on just about every level. For most of the purchasing process, the user experience is far superior on iTunes. But the user experience doesn’t end with a financial transaction. The user experience of interacting with the purchased song continues long after leaving the store.

I haven’t bought anything from the iTunes music store because of the DRM. I have used it though: I’ve been given gift certificates for iTunes downloads. This is what I have to do after completing a download:

  1. Pull out the read/write CD I keep just for this,
  2. Burn my new music to the CD,
  3. Rip the music back as MP3,
  4. Erase the CD in preparation for step 1.

And that’s perfectly legal allowed by the terms of service*. But I can’t just convert from DRMed AAC straight to MP3—that would be illegal.

Now, it’s pretty clear that this kind of “copy protection” isn’t going to get in the way of anyone who seriously wants to make copies of the music. All it does is place frustrating stumbling blocks in the path of legitimate customers who want to listen to their purchased music wherever they choose.

I hope that the launch of the Amazon MP3 store is a sign that record companies are finally beginning to realise that people who want their music to be open and portable aren’t criminals—they’re music lovers.

John Gruber puts it best when he says:

Given the Amazon MP3 Store’s audio quality, prices, and user experience, I can’t see why anyone would buy DRM-restricted music from iTunes that’s available from Amazon.

In a wonderful twist, the current number one bestselling song on Amazon is 1234 by Feist— the very song that Apple uses to promote the iPod Nano. And why not? iPods and MP3s have always been a great combination (it always frustrates me when I read reports by lazy journalists that contain statements such as “only songs purchased from Apple’s iTunes music store can be played on the iPod”). I suspect that the vast majority of iPods are filled with un-DRMed music, mostly ripped from CD. Now, thanks to Amazon, there’s also an easy way to fill them with un-DRMed music downloaded from the tubes of the internets.

* Matthew points out that back-ups, archiving, shifting format, all currently illegal in the UK. Here’s the petition to change that. Even the government agrees that the current situation is pretty stupid but the law hasn’t changed.

Apple doesn’t get the Web

Now, now, don’t go jumping to any conclusions. I’m not Apple-bashing here, I’m just sayin’…

Apple make great products—those new iMacs, the iPhone, all that stuff. And the operating system and desktop software that ships on a Mac is, for the most part, superb. But in the fast-moving, messy world of online services I don’t think the genius-led design of Apple can compete with the truckloads of nimble young upstarts making snazzily addictive products on the Web. Competing against a behemoth like Microsoft is one game; competing against an ecosystem of hungry start-ups and bedroom coders is a different proposition.

But I’m not complaining. I quite like this status quo. As long as Apple keep making great hardware and software, I’m happy. I’ll just look elsewhere for examples of great design on the Web… and when I say design, I definitely mean more than simply visual design.


Playing a gig is tiring. There’s the actual playing on stage—which can get pretty sweaty—but it’s the hauling of amps and instruments that inevitably means that a gig night is a late night. So after playing a Salter Cane concert on Friday night, I had a nice long lie-in on Saturday.

When I did finally emerge, I slothfully sat with my iBook, casting a casual eye over the Web via Twitter, Flickr and all my habitual haunts. At five minutes to midday, I glanced at my mobile phone and saw that I had missed a call. In no particular hurry, I listened back to my voice mail.

The message was from Robert Harding, the authorised Apple service provider who was replacing the hard drive in my borked Macbook. The message said that my laptop was ready but I’d need to pick it up before noon. That was just five minutes away!

I quickly called him back and asked if he could stay open a little longer. It turns out that he normally doesn’t even work on a Saturday but he had gone the extra mile to get this done and he really needed to be somewhere else soon… but he would hang on until ten past twelve.

I’ve never dressed so fast in my life. While I was donning some clothing, Jessica called a taxi for me. I ran downstairs and began counting the seconds until the cab came ‘round the corner. It showed up, I hopped in, and away we went.

I made it. Just. While the taxi waited outside, I ran in and grabbed my Macbook, thanked Robert Harding profusely—he gets a thumbs-up from Jane and Richard too—and took the same cab back home.

Now I had my Macbook back with a brand new hard drive. Thus began a long day of file transfers, downloads, SVN checkouts and cabalistic command-line push-ups involving Apache, PHP and MySQL. I’ve just about managed to restore the machine back to the state it was in before its meltdown.

And not a moment too soon: in a few minutes I’ll be heading to the airport to grab a flight to New York where I’ll spend the week giving workshops and consulting with Time Warner. I had more or less resigned myself to bringing the iBook but, assuming that this machine stays fixed, the extra power of the Macbook will come in handy.

Expect numerous clichéd tourist photos in my Flickr stream.

Ticked off with Apple

When I got my new Macbook just over two months ago, I was somewhat wary of how it would compare to the workhorse of an iBook that I’d had for so long. I’m not necessarily saying that Intel chips are inherently shit but I had heard enough horror stories from friends to make me think that a good ol’ G4 was a geek’s best friend.

Pretty soon though, I got used to the Macbook’s speed and power and I quickly learned to live its quirky reflective screen. Before long, it became my main machine.

How premature of me! Last night the Macbook started making regular ticking noises. A loud click is emitted every second. I tried shutting down the laptop and was confronted with the spinning beachball of death so I held down the power button to force a shutdown.

After letting it cool off for a while, I tried starting up the Macbook. The ticking resumed immediately. And now, instead of booting into OS X, I get the dreaded flashing question mark folder. PRAM zapped. System Management Controller reset. All to no avail.

I’ll probably have to send the laptop away to get repaired. But I really can’t afford to be without a laptop—I’ve got a trip to New York coming up next week that involves two days of workshops. So I dug out my old iBook and—touch wood—it seems to be working okay. No freezes or kernel panics yet. Sure, the iBook feels a bit slow and claustrophobic compared to the Macbook but at least it isn’t constructed made of shoddy hardware.

I have a lemon that’s less than three months old. Tomorrow I’ll begin the long hold’n’explain with the Corkonian support staff. I hope they’ll deal with this situation lickety-split. I’m not happy about this.

It could be worse though. At least I’ve only got a couple of months of photos and music to lose. Over at The Onion, you can see ongoing coverage of Webcrash 2007:

Although the Internet did restart, all data had been lost. At an emergency press conference, White House Press Secretary Tony Snow revealed that the goverment does not have a back of the internet but had “always meant to get around to making one.”

The good book

I’ve had a white iBook literally since the day they were first released. By today’s standards my first iBook was a primitive G3 affair. Since then I’ve upgraded to more powerful models but I’ve always had an iBook and I’ve always been more than happy the sturdiness and portability.

My last iBook is a few years old now and it’s beginning to show signs of laptop dementia. Intermittent freezing and kernel panics are telling me that it’s time to put the ol’ white thing out to pasture.

In the past I would have simply invested in a new iBook. That’s not an option anymore, more’s the pity. So I got myself a Macbook (well, technically it’s a Clearleft purchase but you know what I mean).

This looks like being a great machine—I’m certainly going to enjoy the larger hard drive, bigger screen and extra RAM—but I can’t help but feel a twinge of sadness for the passing of the iBook era. Me and my little white Turing machines have been through a lot together; travelling to foreign climes and joining faraway networks.

Now it’s time to break in my pristine new Macbook. I’d better start collecting some sticker schwag. Flickr, Technorati, Creative Commons… if you guys want to some free advertising, just send some sticky love my way.

I’ve spent the last couple of days migrating all my data and operating system foibles over to the new laptop. Soon I’ll take it with me on the road and find out how it holds up.

The Macbook didn’t show up in time for a workshop I did in Rochdale last week so I borrowed Jessica’s iBook instead but I’ll giving the new Macbook its first field test at an Ajax seminar in Dublin next week. It’ll get a good workout this month when I lug it to Paris for XTech and San Francisco for @media (and maybe I’ll make it to Copenhagen for Reboot).

I’m sure it’ll feel weird at first, like wearing a new pair of shoes, but by the end of this month I hope to form a bond with my new portable computing device.

iPhone, uPhone, we all scream for iPhone

Like everyone else in the geekosphere, I was vicariously attending MacWorld through all those Mac rumour sites as well as Twitter. Unsurprisingly, the iPhone has a lot of people excited.

Jason Kottke got so excited, he immediately whipped up a cardboard scale model of the iPhone. Jeff Croft is really excited that the iPhone is running Leopard.

A lot of people are talking about how to get their heads around this thing. Is it a phone or is it a PDA? John Allsopp wouldn’t mind losing the phone functionality altogether.

Mike Davidson thinks that the iPhone is worthy of the moniker Steve’s Amazing New Device. He must be pretty pleased that his prediction that Apple would no longer be just a computer company became reality with the official change of the company’s name. Khoi Vinh, on the other hand, will be disappointed to hear that the iPhone does indeed use iTunes to do its syncing.

I spent part of the keynote chanting Get to the web browsing! Get to the web browsing! Then Steve Jobs got to the web browsing… with expando-Safari.

Dave Hyatt may be slightly biased but he thinks that this may spell the beginning of the end for a separate mobile web. Dan Cederholm is pretty impressed too. Cameron Moll, on the other hand, believes that the iPhone won’t revolutionise the mobile web landscape for most people. Brian Fling disagrees. He thinks the impact of the iPhone will be huge.

Bursting Apple’s reality distortion field with Photoshop, Jon Hicks demonstrates the problem with the iPhone’s screen. Roger Johansson also throws a cold bucket of reality on proceedings when he asks where the tactile feedback is supposed to come from when there’s no keyboard. That’s a valid concern according to David Pogue’s hands-on experience.

The biggest downer probably won’t be anything to do with the device itself but the lock-in with some crappy provider, as Dave Shea explains. That’s still not enough to dissuade Jason Santa Maria from wanting an Apple mobile device.

I met up with Brighton’s own mobile guru, Tom Hume, for lunch today. He’s taking a pragmatic and somewhat pessimistic approach with his thoughts on the iPhone.

Only time will tell how Apple’s baby will fare once its released into the wild. For some historical perspective, I invite you to cast your mind back to a Slashdot article from 2001 announcing the iPod.