Sunday, December 13, 2009

Let the presses roll

As some of you probably know I've spent the last few months writing a book on programming for the iPhone and iPod touch platform for O'Reilly Media. Late last night my editor emailed me to say that my final draft has just been pushed out the door to production...


I've pulled together some supporting material for the book. Including a couple of screencasts walking you through building the example applications from chapter 10 and chapter 11 of the book, some sample code and the slides from my keynote presentation at the Where 2.0 Online Conference on iPhone Sensors.

Learning iPhone Programming is available now online in Rough Cuts through O'Reilly's Safari Book service, and should be in stores by the middle of March.

What better Christmas present for the geek in your life..?

Thursday, December 03, 2009

.Astronomy in one word

Monday, November 30, 2009

The .Astronomy Conference

I'm in Leiden this week at the Lorentz Centre for the .Astronomy Meeting. If you're not lucky enough to be here, we're streaming the mornings live so you can sit in on the talks...

Live TV : Ustream

Sunday, November 15, 2009

Coding from camelback

The term digital nomad is starting to break into the mainstream. To some it's all about work from anywhere; your local library or coffee shop, the hotel pool, a co-working space. But lately it seems that anywhere has become a much broader term. Sell your house, your car, your furniture, pack your bags and buy a ticket to somewhere, anywhere, that isn't here. The plan is to earn a first world salary by telecommuting, but pay third world prices for food and shelter.

The nomand's lifestyle is defined not by how many hours a day they're online, but by when they're not. Emily Davidow has it right,

Last weekend, an uncle asked me “How many hours a day do you go online?” I looked up from my iPhone and repeated the question out loud several times... “All of them,” my wise brother answered. “She doesn’t go online, she just is.” Uncle seemed confused and more than a little worried. - Emily Davidow
I've been a semi-nomad for the last decade, I didn't sell my house or my car and just go. I've always had somewhere to come back to, but I've travelled a lot. At the peak, a few years back now, I was spending six to nine months of the year out of the country. Although over the last year or so, for obvious reasons, I've scaled back the amount of travel I'm doing, I must admit I sometimes have a wistful thought or two. Looking out a hotel window on a new view, or sitting watch the world go by, or even a quick dose of culture shock is a different life than dragging myself into the office every morning. No matter how much I enjoy what I do for a living...

However this weekend I sat on my couch at home in-front of a roaring fire as the severe weather raged outside. Surrounded by three laptops, my iPhone and an iPod touch, I was working on the second draft of my upcomimg book. I could have been anywhere in the world, but I was at home. Why? Because while I could have been anywhere in the world, I chose to be at home. After a decade of semi-nomadic existence, where else is really as comfortable?

Where 2.0 Online


At the start of December I'll be kicking off the Where 2.0 Online Conference talking about iPhone sensors. My introductory session is intended to be the foundation for the rest of the event and is based on the sensors chapter of my upcoming O'Reilly book Learning iPhone Programming. I'll be going over the sensors available and talking about how to access them, then I'll deep dive into the accelerometer and attempt to build an accelerometer based application, live on camera. I'm not sure how they talked me into that...

I'll be followed by four app developers who will each focus on the sensors they used in their respective apps. They will cover their tools, their process and their mistakes. Andreas Alfare will be talking about augmented reality, Ian Peters-Campbell will be talking about location sensors, Martin Roth about working with audio and Jeffrey Powers about computer vision.

Admittance is US$149, and participants will receive an advance copy of Chapter 10 of my book, the chapter talking about sensors, as a part of the conference fee. If you'd like to register, but you're thinking that's a bit steep, I can offer you 25% off as a "friend of the speaker", use the discount code whrfall09fsp when you register. It's should be a lot of fun, if you only to see me attempting to code on camera...

Wednesday, October 28, 2009

Stack Overflow Dev Day

Stackoverflow.com is a free collaboratively built and maintained programming Q&A site, and if you haven't heard about it already, you should have done. It's pretty much my first call now for those obscure programming questions that come up from time-to-time, and the community that's grown up around the site is pretty solid.

I'm currently down in London for the the day to attend the first UK Stackoverflow Dev Day. The conference is in the Kensington Town Hall, somewhere I haven't been since the London ADASS meeting back in 2007. Although I do remember there is a really good Lebanese place around the corner...


Waiting for the #DevDays to begin...

Along with the the intriguingly entitled talk "Humanity: Epic Fail" about half way through the day, we're covering topics ranging from Python to Android, and Qt to the iPhone.


Joel Spolsky

I's going to be a lot of fun, and you can follow along on Twitter...

Tuesday, August 25, 2009

The (lost?) Android Opportunity

At the time Apple initially released the native SDK for the iPhone some people argued that Objective-C was a poor choice as a development language. I'd now argue that either they picked the right language, or more probably (at least within reason) the platform was good enough, attractive enough to developers, that the language they chose didn't matter all that much. Developers were willing to spend the time learning Objective-C just so they could write code for the iPhone.

I wasn't a long time Mac developer when the iPhone appeared. I learned Objective-C because I wanted to develop for the iPhone, not because it was widespread, or particular popular.

What's the difference between a Cocoa developer and a large pizza? A large pizza can still feed a family of four. - Mike Lee

Although its popularity is now on the rise; the language jumped 22 places in the TIOBE index in the last year, entering the top 20 "most popular" languages for the first time.


The popularity of Objective-C as measured by its TIOBE index. Climbing from 40th position in the rankings in 2002 to 19th position this month, with almost all of that growth in popularity being since the release of the iPhone.

After learning the language I found I actually quite liked it, it was powerful, and because it allows dynamic typing and binding it was flexible. Something I'd grown used to after years of using loosely-typed languages to get things done.

The development environment Apple provide, Xcode and Interface Builder, is the best I've come across. Perhaps not the most powerful, but they're the easiest to use, and because of the late object binding that Objective-C allows the heavy integration of Interface Builder into the development process hugely simplifies creating user interfaces. It also removes large chunks of glue code that, in other languages, you'd have to sit down and write yourself.

However while I downloaded the Android SDK from Google, I've done little with it. Despite the fact that Google picked Java as their development language for Android, a language I already knew fairly well. I even had a couple of ideas for the first Android Developer Challenge, and a couple of people were interested in working on them with me, but in the end I didn't bother.

The Android platform isn't that exciting, and until recently I couldn't pin down why. John Gruber writes in the Daring Fireball about the Android Opportunity complaining that the Android state-of-the-art is even further behind the iPhone than when the G1 was announced back in 2008.

The reason I wanted to develop for the iPhone was that is was so much better than the competition. Regretfully the Android handsets that the manufacturers have produced so far just, well, aren't.

Tuesday, August 04, 2009

The year of the tablet?

Wired has decided that 2010 will be the year of the tablet, and it's arguable that the multi-touch additions to upcoming Snow Leopard make a tablet an obvious step for Apple. Despite that, others are claiming that after seven years of torturous rumours and speculation the predicted tablet from Apple just doesn't exist. Whatever the truth of the thing we can confidently predict that over the next few months the rumour mill will be running at high speed.

Sitting on the sidelines, nobody tells me anything. But something is up. The rumours surrounding the Apple tablet have a curious firmness about them, much like the later part of the two years of rumours leading up to the original iPhone launch back at the start of 2007.

However having used a tablet to try and do actual work, I tend to agree that tablets aren't mainstream. But then netbooks aren't mainstream and they're selling rather well, even I bought one, or as it happens two of them.

Dell at least may be deliberately targeting their rumoured tablet at the niche e-book reader market, and may well even offer their tablet for free with a contract for "one or more digital media subscriptions", which would be interesting. The Kindle is selling well, so perhaps it's even a sustainable model. Although Amazon at least aren't giving away the hardware as a loss leader.

When it comes down to it I'd be less interested in the rumours of an Apple tablet if it wasn't for the iPhone. The iPhone was the first mobile device I've ever owned, and I've owned a fair few, where I could check my email comfortably. That's made a big difference, and it's because the iPhone is not a phone, it just happens to be able to make phone calls. So maybe what I really need is a well designed tablet?

Update: Of course there are some people that are just pulling figures out of the air when it comes to the rumoured Apple tablet...

Monday, June 08, 2009

Apple WWDC 2009

I'm currently in San Francisco for this years Apple World Wide Developer Conference (WWDC). However, unlike a lot of the big conferences I attend, I won't be blogging this one live. Apart from the Keynote on Monday morning, and the party on Thursday night, everything else going on here, including most of the content of the conversations going on in the hallway track, are under a non-disclosure agreement (NDA) with Apple.

Published by aallan on Flickr.
Moscone West

However if Twitter manages to stay up under the onslaught I'll be tweeting during the Keynote. I'm currently trying to figure out when I should start lining up outside the Moscone Center. Knowing this barmy lot, there's probably already half a dozen people standing outside the doors already...

Tuesday, May 26, 2009

The Emperor has no clothes

The number of people publishing sales statistics for their iPhone applications are few and far between. Apart from people like Pinch Media, who still really only have a skewed sample, the only people with a real overview of what's going on are Apple themselves. The rest of us just have to rely on our own experience, and anecdotal evidence like the recent post by iPhone developer Rick Strom.

Perhaps we're going to see a bit more transparency now that TechCrunch picked up Rick's post and ran with it, or at least some sort of acknowledgement that the App Store isn't going make developer's rich overnight.

I'm building applications for the store not because it's going to pay my mortgage any time soon, but because at last I have a mobile platform where I can "scratch my own itch". After years of pushing the boulder uphill on the on Series 60 platform, and before that on the Palm, the iPhone and Apple's SDK is a welcome breeze in an otherwise desolate wasteland of overly complicated development environments. The barrier for entry is just that much lower and, despite not really being viewed as a mainstream language, I've always had a soft spot for Objective-C. It fits the way I think about things...

...unlike Java. I've never really gotten on with Java. Despite dire warnings to the contrary I haven't missed not having it on my iPhone, the lack of Flash support is by far the more noticeable.

I was disappointed, although not terribly unsurprised, to learn that Google had gone with Java as their development platform and Eclipse as their IDE of choice for Android applications. Despite that I'm looking forward to getting my hands on a G1 so that I can play around with the hardware, which allows you to do some cool things you can't yet do with the iPhone.

As Russell Beatie said back in 2005,

If someone's using a PC to demo the next big thing, then it's not the next big thing...

Despite the iPhone I consider the mobile web as still born. I rarely use the "real" web on my iPhone, instead the information is brought to me by those native applications that Apple didn't initially think were a good idea. The next big thing isn't going to be the Web, the last big thing was the Web, it's not going to be the next big thing as well.

Using the new iPhone SDK 3.0 your application can communicate with accessories attached to the phone, and rumours suggest that the next generation iPhone will have a magnetometer plugging the gap between the iPhone and the G1. Sensing is coming to your phone, and it's not just accelerometers anymore...

The signs of the next big thing; in the mainstream with devices like the iPhone and the G1, in academia with projects like Siftables and Google's PowerMeter, and out on the open-hardware fringes with things like the Arduino, are everywhere.

People won't get rich (re-)writing niche iPhone applications which get lost in the noise of the App Store. I know that, despite enjoying the experience of cranking out software, I'm not going to get rich except by the oddest of chances.

However a bunch of people are going to get rich, and probably fairly soon. We're entering a period of change. The next big thing is ubiquitous computing, and don't let anyone tell you differently.

Compared to a real ubiquitous computing we're at the banging the rocks together stage, but the recent trends towards embedded systems and cloud computing are obvious first steps down the path. The Emperor may have no clothes on, but he's got a good suit waiting in the closet...

Monday, May 25, 2009

CloudStatus on the iPhone

One of the problems writing software that relies on third party APIs is that when that content goes away your application breaks, and that's something that's happened to my Cloud Status application for the iPhone. The service I was relying on to provide real-time information on Twitter went away...


Cloud Status v3.0

Users of the application currently get a blank page when they ask for the status of Twitter, and there isn't an easy way to reproduce the information that I was using from Twitter's own API. So I've gone ahead and removed it from the application, and implemented the most requested feature for this application to replace it. Support for reporting real-time status from Google Apps, as well as Google App Engine...


The new Google Apps support...

Unfortunately you aren't going to be seeing this update on the App Store any time soon, I'm currently developing against the new 3.0 beta SDK which is still under NDA with Apple. However if you're a fellow developer who would like to test out the new Cloud Status application, and already have the new 3.0 OS deployed onto your iPhone or iPod touch, I'm happy to generate a limited number of Ad Hoc distribution copies for interested parties.

Update: You can of course just go an purchase the current version from the App Store. As soon as I can push the new version to the store I will, and you'll get it as a free update when I do...

Monday, May 18, 2009

Sky Map for Android

So I've been much remiss in not mentioning the official release of John Taylor's Sky Map. Yet another of those funky Google products that started off as someone's 20% project and end up with an official Google launch and a less interesting name. What is it with Google and dull product names?


Kevin Serafini introducing Google Sky Map

John's new SkyMap application for Android does stuff that you're not going to get your iPhone to do because of hardware, rather than software, limitations. It makes use of the phone's GPS, accelerometer, and compass to create a window in the sky that moves with your hand.


John Taylor's demo at Google's Searchology Event

John and I actually had a discussion way back when about using the iPhone's GPS to simulate the G1's compass. The iPhone knows your position, so if you walk for a small distance in the direction you're facing, it should be to able to work that out as well...

Of course the question we couldn't resolve was "how far" in the direction you're facing you'd have to go, and in the end we figured it probably wouldn't work all that well. Just one of the reasons I'm looking forward to WWDC, which for once I'm actually going to be at, and the possibility of getting my hands on some new iPhone hardware.


Searching for the Moon

Well done John, very cool. Now, how do I get my hands on a G1 again?

Thursday, May 07, 2009

New for the iPhone, App Engine Manager

Following on from my previous iPhone applications, Cloud Status and AWS Calc, and continuing with the Cloud Computing theme. I'd like to announce the release of my next iPhone application onto the App Store.


App Engine Manager for the iPhone 3G and iPod touch.

Want to manage your Google App Engine applications from your iPhone? There's an app for that...

The App Engine Manger application allows you to to monitor the status of Google App Engine in real time, estimate your monthly costs based on your current usage levels, then lets you estimate how much a sudden usage spike could cost.

It also allows you to look at the performance of each of your applications individually and examine requests per second, upload and download bandwidth and CPU.

Saturday, April 25, 2009

Culture Shock

After over ten years traveling around the world racking up frequent flyer miles, and having set foot on every continent except Antarctica, you begin to think you're immune to culture shock.

Posted to Flickr by aallan.
Sunrise over Santa Cruz Municipal Wharf.

I know the best place to eat in more than two dozen airports. I know the hidden and totally unsigned walking route between the main terminals which keeps you airside at SFO rather than sending you back through security.

I can speak fluent American as well as British English, or at least I can get the words right. My accent is unmistakable, and at least some of the time, an asset here in the States. I've stayed in some of the best, and certainly some of the worst, hotels in the world and I'm familiar with many of those little cultural taboos that catch out in-frequent travelers and cause difficulties.

Culture shock is what happens to other people...

The sight of what appeared to be a cute soccer mom, with large sun glasses and a scowl on her face, driving a black sport utility vehicle with tinted windows, being pursued at some speed by six police cruisers with sirens blowing and lights flashing down Pacific Avenue here in Santa Cruz proved me wrong.

Or rather the fact that I was the only one paying this incident any attention. The sight of one of the cops leaning out the window of the lead vehicle holding a shotgun wasn't apparently that unusual. The ambulance that raced by a few minutes later, heading in the same direction as the now long departed cavalcade of vehicles, didn't seem to be raising any eyebrows either.

Of such small incidents, and other little things, comes the large and uncomfortable feeling of disorientation that tells you you're a very long way from home. No matter how many times you visit a country, and no matter how at home you feel there, there is always the possibility that culture shock will creep up on you unexpectedly.

Thursday, April 16, 2009

The decline and fall of Gizmo

Until a couple of months ago I was a fairly happy customer of the Gizmo Project, a SIP based competitor to Skype. Back in February however they sent me a support email to tell me my Call-In number was out of order.

Date: Fri, 20 Feb 2009
Subject: Attn:Regarding Your UK Number From Gizmo5
From: Gizmo5

Dear Gizmo5 Customer:

Our provider for your number in the United Kingdom is experiencing technical problems with their numbers. They are working on this issue but have been unable to provide us with a time frame for when these numbers will be functional.

To remedy this situation we have 2 options for our customers:

1. Offer you a replacement number
2. If you would like to keep your number, we will extend your expiration date to cover the time it was down once the numbers are restored and functioning normally.

Please respond to this email to let us know of your decision. We are sorry for the inconvenience this may have caused and look forward to getting this resolved quickly.

Thank you for your business,
Gizmo 5 Support Staff
Since my Call-In number was the one I used for my business I wasn't that happy. I certainly didn't want a different number, this was the one on all of my business cards after all. So crossed my fingers, and just over a week later I got a follow up email.

Date: Sat, 28 Feb 2009 00:02:54 UT
Subject: UPDATE:Regarding Your UK Number From Gizmo5
From: Gizmo5

Dear Gizmo5 Customer:

Regarding the number outage that has occured in the UK, We have received notification from our provider that service to the numbers affected should return by Monday March 2nd. They stated that everything possible is done so that it does not happen again.

Thanks again for your patience and we apologize for the inconvenience this may have caused.

Regards,
Gizmo5 Support Staff

A long outage, but at least it was almost behind me? Suffice to say the 2nd of March rolled around without my service being restored. In fact Gizmo have never managed to restore my service...

...and quite frankly their level of customer service was abysmal. There was no advanced notice of any possible outage, and then notification that there was an outage was delayed after they did know about it. I learned later from colleagues that the number had gone out of service some time before the initial email I received from them about the problem. Repeated promises that it would be fixed soon, that it was already fixed when it wasn't. Weeks between answering support tickets, support tickets randomly disappearing from my list filled tickets without any reason...

The Call-In number in question has now 'expired' as the entire saga has ran past the end of my billing cycle, and I certainly wasn't going to throw good money after bad to renew a number I couldn't use. Claims that they'd,

...extend your expiration date to cover the time it was down

just didn't happen. Unfortunately availability of number portability in the UK, while normal practice for mobile numbers, is in it's infancy for landlines and relies on the complex interaction of a series of mutual handshake deals between various providers. There is no standard way to do things. So I've now got another dial-in number with a different provider. Fortunately since I'd gone with a standards based VoIP solution I could take my expensive shiny VoIP hardware along with me to my new provider. Heaven knows what I'd have done if I was relying on Skype...

I've had my business cards reprinted, and I'll now tell anyone who listens that they shouldn't trust the Gizmo Project with their business. A dead phone line doesn't give a great first impression to your customers.