The Airsource Blog

Articles by Ben Blaukopf

Caching broken on iOS 8 - 3/3

In Part 1 I discussed how NSURLCache is broken on iOS 8, and delivered some source code in Part 2. Now that iOS 8.1 has been released (with absolutely no mention in the release notes about this issue, I ran all the tests again, Read more…

Caching broken on iOS 8 - 2/3

The roundup for the released version of 8.1 is available in Part 3. In Part 1 I discussed how NSURLCache is broken on iOS 8, and promised some source code. The source code is available here, and it is worth taking a closer look at some of the results. Read more…

Caching broken on iOS 8 - 1/3

Part 2, with source code and detailed results, is now available. The roundup for the released version of 8.1 is available in Part 3. Apple have already experienced one PR disaster with the iOS 8.0.1 release which broke cell phone operation for some users. They may be on their way to another problem - less serious this time, but still significant. Read more…

Viral Fou now available!

Airsource are delighted to announce their latest application, Viral Fou. Viral Fou leverages the power of crowd-sourcing, to identify potential mischief makers in their community. The initial release of Viral Fou is only available in France. It is free, but time-limited, and will expire at midnight tonight. Read more…

App Store Localizations

Your app is on the App Store, and you've just sorted out the translations for all the metadata. So you go upload them on iTunes Connect, and then obviously you check that they look right in iTunes, changing country to make sure each language looks right. English is unchanged ... Read more…

Optiscan Update

The update to Optiscan has been approved by Apple - get it on the App Store now! The update is free for all existing customers, and includes several improvements such as better image processing, internationalisation, and bug fixes. Try it out! Read more…

Optiscan Sale

We are about to release the next version of Optiscan, featuring improved image processing algorithms, internationalisation (including Japanese), and bug fixes. It has been submitted to Apple, and will go on sale at the normal Optiscan price of $4.99. BUT - you can get Optiscan right now for $3.99 ... Read more…

Why the App Store beats OVI

I have just spent four days in Barcelona at MWC catching up on the industry developments. The main topic on everyone's lips was The App Store, and by "The" App Store I mean Apple's, not Nokia's OVI offering or any of the other contenders.

Let's take ... Read more…

Optiscan - Upcoming Features

We've had quite a lot of feedback about Optiscan, from various sources. Where possible we've replied, but in some cases email addresses haven't been correct, and in others no reply is possible -- such as on the App Store Reviews. Read more…

Monetizacommercial ifuggedaboutit

An old colleague of mine who used to work at Microsoft told me that he once went to a global summit, to find people standing on tables shouting "Show Me The Money". As a business strategy, it doesn't work too badly. It fell out of favour in the 2000 ... Read more…

AppStore Research with Mobclix

I discovered an incredibly useful resource yesterday - Mobclix. Among other things, they let you see a graph of how your iPhone App Store application - or anyone else's - is getting on. For instance, here's Home Barista. Read more…

Thin versus Thick

Apparently, web apps may not be quite the cure-all that everyone thought they were. The linked article gives five reasons why a browser-based app may not be the best idea. Here's five of my own, related to cell phone web apps. A website doesn't know where you are ... Read more…

AppStore Pricing

I just noticed that number 24 in the UK AppStore is mBoxMail - a Hotmail client for the iPhone. That's impressive in its own right - you don't see many non-entertainment app that high in the AppStore. But the really interesting thing is the price - £5.99 ($9.99). Looks ... Read more…

Save the Bits - Part II

Back in my original Save the Bits article, I noted that a foreign currency application on the iPhone, which I'll refer to as AppX, uploaded 16K of data and downloaded 136K just to render a graph. I said I'd get back when I'd run a packet sniffer. I've just done that, and the results aren't pretty. Read more…

iPhone Simulator - hidden feature

One day I'll get round to reading the manual for all the devices I use on a day to day basis. No doubt I'll then discover lots of things I never knew - and from then on, life will be more productive, but more boring. In the meantime, I ... Read more…

Getting blood out of a stone

I am pretty network agnostic. If I were buying a new phone contract tomorrow, I would not really care which network operator I used. Obviously I'd check out the details of the contract - but the name of the operator is not significant. With one exception - they have to issue a PAC code over the phone. If an operator isn't prepared to let me leave, then I'm not prepared to join them in the first place. Read more…

Save the Bits!

Over here at Airsource, we're not exactly retro, but we do care about computing resources, especially bandwidth. We like small sleek applications that perform well, not applications that use excess bandwidth, and run twenty times slower than necessary. With that in mind, I picked a relatively simple iPhone application that displays a currency exchange rate and a graph of recent historical movement, and measured its bandwidth usage. The results were amazing. Read more…

Google and iPhone - part II

I just found another interesting article out there in the World Wild Web, over at Daring Fireball. Apparently, Google started publicizing the voice search feature some time before it actually reached the AppStore. The critical phrase in the NYTimes article is "...Users of the free application, which Apple is expected to make available as soon as Friday through its iTunes store..." which suggests, in Daring Fireball's analysis, that Google may have have pressured Apple to accept their application even though it violated the SDK agreement. Read more…

Google using private APIs? Not really...

Google recently admitted to breaking the AppStore rules in their iPhone application, which fuelled a growing wave of resentment, prompted by the belief that Google were abusing their position as industry leaders to gain a competitive advantage in the market. The critics claim that a similar application submitted by anyone else would be rejected by Apple and never make it to the AppStore. Why should there be one law for Google, and another for the plebian masses? Shouldn't the Google application be pulled from the AppStore until they abide by the rules, as others have been? Read more…

Memory usage in UIImagePickerController

UIImagePickerController has plenty of issues. One of the first to be widely discussed was its memory leak which shows itself when you try to access the PhotoLibrary on the simulator. Fortunately, this leak is limited to the Simulator and does not show up on Device. It has also apparently been fixed in iPhone OS 2.2 - though you obviously need to be aware of it if you are coding for older versions. There is, however, another more serious problem with the image picker on device1 Read more…

Views of UIImagePickerController

The standard image capture in API in the iPhone SDK is the UIImagePickerController. There is much discussion on the web about how this can be customized via subclassing, both from the viewpoint of technical feasibility, and from the viewpoint of being allowed onto the AppStore. It is generally accepted that going direct to private frameworks is unacceptable, even though this arguably can give a better user experience. Phanfare had their app pulled from their AppStore for using the PhotoLibrary private framework, and returned with a new version that instead customizes the UIImagePickerController experience. I took an in-depth look at the view structure that the standard UIImagePickerController creates. Read more…

Spill chucking

Just got a letter, from a source that will remain nameless... It was addressed to "Ben BLAUNITEDKINGDOMOPF". Sounds like someone needs to rethink exactly what parts of the address field get auto-completion... Read more…

'It Just (doesn't) Work'

The new iPhone SDK requires that developers upgrade to OS X Leopard, which is a nice excuse for most of us to drop 100 bucks on a new operating system that does, err, exactly what the old one did. I am sure I'll come across some amazing new feature ... Read more…

Symbian OS goes OS

Airsource woke up this morning to Nokia's announcement to make Symbian an Open Source platform, and with it all the concrete platforms like S60, UIQ, and so forth. While Motorola, Sony Ericsson, and NTT DoCoMo are all mentioned in the press release, it seems to me that they had ... Read more…

Yotel just another Hotel

I stayed at the Yotel in Heathrow Terminal 4 the other day. I had an 11am flight to the US, and decided that instead of a 6am start from Cambridge, it made much more sense to stay literally 50m away from the British Airways checkin desk. This made me an accidental, but much appreciated, beneficiary of the T5 shambles - BA are keeping a lot of their long-haul flights in T4 until the new terminal has properly bedded down. Read more…

Mobile Device Databases

I've just been taking a look at Device Atlas, which in its own words is the "world's most comprehensive database of mobile device information". I had high hopes, but unfortunately it appears to be rehash of the kind of information which is readily available, without anything more useful ... Read more…

What platform should I write my app for?

When we set up Airsource, we set it up as a BREW consultancy. We rapidly sold a number of BREW projects, and built on the expertise we had acquired while at QUALCOMM. In the process, however, we inevitably found ourselves working on other software platforms, particularly on Series 60, which now accounts for about half of Airsource's work. Series 60 and BREW are often held up as competitors, though in practice I would argue quite strongly that they target very different markets. Read more…

Why should I use static_cast?

I recently had the dubious pleasure of debugging a User 42 Panic on a piece of Symbian code that was given to me by another company. You always need to make sure you understand what the system is telling you, so I went straight to the documentation: User 42: This panic is raised by a number of RHeap member functions, AllocLen(), Free(), FreeZ(), ReAlloc(), ReAllocL(), Adjust() and AdjustL() when a pointer passed to these functions does not point to a valid cell. Read more…

On starting a software company

This blog has been going for nearly a year now - our first post was on January 29th. Airsource has been around for a little longer than that - I quit my job at QUALCOMM to work full-time at Airsource in June 2006. We're approaching the end of the year, so what better time for a bit of a review. I'm going to stick to the technical side of things - I'm sure Nick will have something to say, and maybe one of our new employees will want to give their view of things too. Read more…

Cambridge Fun Run

The Airsource team have just been out for their first team-building exercise. One of the benefits of running your own company is that you get to choose what the activities are - and since my sport is running, and Airsource is a four man company, I decided we'd do the ... Read more…

All jobs filled...

One pile of CVs later, after 53 days and a whole bunch of interviewing, we have finally filled our roles. The Airsource team is about to double! This means we're not currently recruiting. I would say that speculative applications from good candidates are always welcome, but until we get ... Read more…

Airsource are recruiting

If you've been following our blog, you'll notice things have been a bit quiet recently. Business is good - and we need another software engineer. If you're good, and willing to work in Cambridge (that would be Cambridge UK, for our US readers), then we'd love to ... Read more…

DUMA Release

As promised, here's the release of DUMA for BREW, announced at BREW 2007. It's a library that helps debug memory problems, and Airsource have ported it over to to BREW. Download it here - it includes a test program, and full documentation of how to use it. Read more…

DUMA Release Date

I know that some of you out there have been waiting for our release of DUMA for BREW, which we announced in our talk at BREW 2007. We're still finalising the documentation for this - but it will be out on Tuesday 17th July. Check back here then, and in ... Read more…

BREW Conference 2007

The Airsource team are now back in the UK after BREW 2007. We've had a good post-conference debrief, which was particularly interesting for me, the CTO of Airsource, as it was my first BREW conference. I have a few thoughts I'd like to share. Read more…

Your application drained my battery

A client rings up and says 'your application killed my battery. I ran it, and within 30 minutes my battery was flat'. How do you prove that it's not your application at fault? Now, bearing in mind most mobile phone batteries last for a week or more on standy, even if you some long and very tedious tests, it's going to take you forever to prove, well, nothing really. Certainly nothing that will convince the client. Read more…

Floating Point on BREW

Pretty much any BREW developer knows that you can't use floating point. Or, to be more precise, you can't use floating point without jumping through a few hoops. You essentially have three options Read more…

The Art of the Demo

Mobile Monday is a great networking event for companies in the mobile space, and Airsource regularly attends. Last night I went along to their Demo Night, where instead of the usual format of panel debate and a couple of demos, the entire evening was given over to ten demos. Read more…

Don't Surprise The User

Back when I worked at Qualcomm, and previously Trigenix, I spent most of my time working on mobile phone UIs, or more specifically on uiOne and its earlier incarnations, a tool making it much easier to implement a mobile UI from scratch. As a matter of necessity, we spent a lot of time looking at UIs on embedded systems. I could go on, at length, about some appalling examples of usability, but that's a topic for another day. The question is, what makes a good UI? Why is one application awesome when others are terrible? Read more…

Why doesn't my BREW project work on this machine?

I had a client call me yesterday; he'd built a BREW application (most of the code provided by Airsource) on one machine, and it wouldn't run on another. It ran on all of our machines, so this was a bit difficult for us to debug, until eventually we tried it on a pretty much vanilla VMWare partition - and it wouldn't start. "Unable to start application" chirped the simulator, leaving us none the wiser. Read more…

Write Once, Run Anywhere?

Spent a couple of days this week chasing down a crash on a pre-release BREW 3.1.5 handset. The handset rebooted when I exited my application, which was, err, not ideal. It turned out that the crash was caused by releasing (and thereby destroying) an IROOTFORM while handling EVT_APP_EXIT. Remove that line (and leak the object) and the crash went away. Clean up a whole bunch of other objects? Still no crash. Read more…