Tuesday, March 31, 2009


We are very excited to announce that our latest application DoucheBag has been released on the Apple AppStore. Official press release:


Never party with the wrong crowd again - find out immediately where to hit the town

Mountain View, Calif. – April 1st, 2009 – jamcode LLC, the leader in rich-mapping applications for the iPhone and iPod Touch, today announced the launch of DoucheBag, the best way to avoid uncool bars and clubs.

* DoucheBag uses the same rich-mapping technology as GasBag, GasBag Pro, and myATM, to quickly and easily show the users where the nearest clubs and bars are.
* DoucheBag users can rapidly identify the "Douche"-level of a bar and inform the DoucheBag community instantly
* Sophisticated trust network algorithms ensure the best DoucheBag-identifiers are rewarded and their recommendations propagated more quickly.

"It's harder than ever to go out and have a good time without some douchebag interfering," said Mick Johnson, CEO & Co-Founder of jamcode LLC. "Now with DoucheBag on the iPhone I can avoid them like never before."

"Sometimes I just sit at home." he added.

"We've taken the best algorithms around the globe, mixed them up in a glass, and added a pinch of salt," said James Gregory, CEO & Co-Founder for jamcode LLC. "Our Advanced Douche Detection (ADD) engine is second to none."

DoucheBag is free on the AppStore - get it today.

Facebook Connect

At last we've submitted version 2.0.4 to the AppStore. As James was alluding to before, we had some extra special features we wanted to roll out, and just as we were about to, Facebook announced Facebook Connect for iPhone at SXSW. So we went back and added that in, which to my mind makes GasBag even more cool! In short, if you log into Facebook through GasBag (hit the Info screen), then whenever you update prices or fill up you can check a box to inform your Facebook friends as well as the GasBag network.

We're rolling this out for GasBag first, to be followed by GasBag Pro later.

Hope you all like it!

Sunday, March 15, 2009

iTunes Connect Scraper

Just a quick note about a, well, smaller release than most of the others. As have many other iPhone developers, we've been pretty frustrated that we're not able to automate the process of getting sales reports from the iTunes Connect portal. It's frustrating because it means someone has to have the responsibility of logging in and downloading them every day, and we've just got better things to be doing (like making great software!).

So we're trying to be part of the solution. Last night, I put together a simple script using the fabulous Beautiful Soup framework to automatically log in and download the latest daily report for you. Paragon of software engineering excellence it is not, but it does rather neatly solve this problem for us. So if you're an iPhone developer, check it out here. It's BSD licensed, meaning you can do pretty much whatever you want with it, but we'd love to hear about any novel uses you find for it, and we'll gladly accept patches for bugfixes or new features or what have you.

I hope you find it useful!

James -- Co-founder and CTO.

Friday, March 13, 2009

Taking the bear by the horns

Liz Tay at ITNews did another great piece on us and how we've been approaching business given the recession. It's been a bit of a roller-coaster I have to say, but I'm very glad we've done so and I have a huge amount of faith both in the jamcode team and also the community that is growing and growing every day.


"Some businesses forged during recessions have achieved great success. These included Cisco, funded during the recession of the early '90s, and Australian start-up Atlassian that was established during the dot-com bust."

A sentiment I strongly believe in. Now's the time!

Thursday, March 12, 2009


We're about to roll out a set of updates to GasBag and GasBag Pro, so I wanted to briefly fill you in on what to expect, and provide some rationale for the process we're going to use to get these releases into your hands.

First up, what's changing: this is primarily a bugfix release, intended to target two issues that have been frustrating users since the 2.0 release: we call them "the Sydney bug", and "the price update bug". The "Sydney bug" is where the app will unpredictably jump over to Sydney, Australia, without any really good reason to do so. This is very frustrating except for a very small percentage of our users who also happen to be at that location* :). The "price update bug" is an issue we inadvertently introduced in the switch over to the new map technology. In short, when you enter a new price, that update isn't reflected on the map when you go back to it. The prices are getting to our server just fine, but no-one has any way to know that.

We're still debating whether to add a couple of small pieces of functionality, but if we do include them, we'll be sure to let you know. We're hoping that the new release will be out late next week, but as always we're subject to Apple's approval process, so we can't give any guarantees.

But the more important part of this release is that we're experimenting with a new, staged release cycle. The idea is that we're going to roll these new features into the free version of GasBag, and assuming that all goes well, we'll fold them into Pro a little while later. If it doesn't go so well, we'll repeat the process until we get it right. Why? Well, we've had a lot of feedback about our apps, on everything from our icon to our database, but nothing angers people more than unstable software (and rightfully so). Now don't get us wrong, this release has been through the same testing process that all our software goes through, and we think it's solid, but it's also true that every time we've done that, you guys have managed to find something we didn't think to test for. While we hugely value all our users, we feel that it is fair that people who have actually put down hard-earned cash get the benefit of this "crowd-testing". Ultimately, this is a bugfix release, so we're hoping that no-one's going to be missing out on anything too critical, and we're only talking about a week or two.

So if you're on GasBag Free, look forward to an update in the next week or so. If you're on Pro, you'll get the update as soon as we can manage, and you can be sure that it's ready to rock when it hits your phone.

Let us know what you think of the new release process in the comments -- we're always trying to do the right thing by our users. Let us know how we're doing.

James -- Co-founder and CTO.

[*] as it happens, I live quite close to the area where "the Sydney bug" dropped you, so for a long time I wouldn't believe the rest of the team that there was anything wrong!

Wednesday, March 11, 2009

myATM is launched

Very happy to announce that our latest application, myATM, has just been approved on the AppStore. Official press release below:


Find your nearest fee-free ATM in under 5 seconds, 
for less than the cost of a single transaction fee

Mountain View, Calif. – March 11th, 2009 – jamcode LLC, the leader in rich-mapping applications for the iPhone and iPod Touch, today announced the launch of myATM, the fastest and easiest way to save on ATM fees.

myATM is fast:

  • Same rich-mapping technology as the best-selling GasBag and GasBag Pro applications
  • 250,000+ ATM locations stored on the phone, so users can search immediately without needing to connect
  • Rapid launch brings up the map and ATM locations in under 5 seconds
  • Panning and zooming instantly refresh the map for a great viewing experience

myATM saves you money:

  • A single transaction fee can cost from $2.50 to over $6!
  • For the first week only, myATM on sale for just $0.99
  • Standard price of $1.99, still less than the cost of a single transaction fee at a foreign ATM

myATM launched with the ability to individually identify the 20 largest banks in the US, with all other ATMs identified with a generic dollar sign. It also comes with the ability to jump straight from the ATM details screen into online banking for that bank, so users can check their balance or transfer money before they reach the ATM.

“With the US economy in a tail-spin and families everywhere feeling the pinch, who wants to shell out more money in fees just to get your own cash out of the bank?” said James Gregory, CTO and Co-Founder of jamcode LLC. “Now with myATM people can get their own stimulus package, directly on the iPhone.”

myATM is available and on sale for just $0.99 on the AppStore today.

Get it at the AppStore

Wednesday, March 4, 2009


One of the most visible changes in GasBag 2.0 was our move away from Google's map over to Microsoft Virtual Earth. It's been really interesting to watch the way this change has been received, because it hasn't worked out exactly the way we anticipated.

Today I'd like to tell you all the story of why it was that we switched, and hopefully give you some insight into what we were thinking. If you don't like the change, I totally understand, but hopefully you'll find it an interesting story nonetheless.

The story starts in Summer, 2008. We had the idea to build this application, so we all went out and bought Macs, downloaded XCode and got started. The initial concept was to deliver "map-based, community-driven mobile gas-price finding". That's a very hyphen-rich mission statement, but there it is. We pretty quickly got to a point where we needed to embed a map into our app, and this is where things suddenly got hard.

We looked around, and since this was really the early days of iPhone app development, there were very few mapping toolkits around. The one we settled on, iphone-google-maps-component, seemed really nifty: it did all that hard Objective-C stuff (we all had a lot of experience in pretty hard-core C, HTML, Javascript and so on, but objective-C was still a mystery back then), and all we had to do was provide a data-source for Google Maps. We thought this was great, because it had the added benefit that since we were setting up Google Maps to serve our data anyway, we got a web version of the app for free! We put together a prototype in a week or two, ran it up in the iPhone Simulator that ships with XCode, and man, were we impressed! It was wicked-fast, had sexy Google styled maps, and it was responsive which in turn meant that it was usable. "Home run!" we thought.

And we kept thinking that right up until the day that we finally got accepted into the dev program and were able to install the app on our phones. You might think that a day like that would be cause for celebration, but instead we were all hugely disappointed. You see, running our application in the Simulator brought with it all the processing power of my laptop's fairly significant CPU to it plus the huge bandwidth of my home Internet link. Needless to say, the iPhone does not have as much CPU power as my MacBook Pro, nor the bandwidth. So we ran the app up on our phones and quickly discovered that the sub-second load times we'd seen from the Simulator were complete fiction: load times on the phone were about 60 seconds, and the beautifully smooth interactions we had in the simulator were nowhere to be seen either -- movement was jerky and the slow interactions affected usability badly -- pinching and swiping both worked in the app, but it was so slow to respond that for the most part nobody noticed.

Undeterred, what followed was a solid month of hacking on the code to get it into shape. We managed to get the typical load time down from 60 seconds to about 10, improved the responsiveness of the map, and we eventually got it to a point where, well, we weren't thrilled about it, but it was definitely workable, and with the screaming about gas prices at the time, we thought we helped more people by releasing than by holding it back.

So release we did, and things actually went pretty well ("well", in the sense that a startup uses it, means that the first day's deluge of users brought our server to its knees, requiring a quadrupling of compute resources to handle the load), and we saw some solid growth, helped by the gas price crisis, and for a while, we forgot about the map.

Along the way, we started discussions with WhatGas, who are an awesome bunch of guys in the UK doing some similar stuff on the web. We saw some great synergies, so we formed a partnership with them, and then began the hard work of retrofitting internationalization (or i18n as we call it) to the server and to the app. We also figured that since we'd done all that hard i18n work, why not release it in Australia at the same time. And so we got a good database of stations in Australia, and launched it and held our breath.

It was at this time that I was suddenly acutely aware of our map's shortcomings again. As a co-founder and Sydney-sider, I felt duty-bound to enter petrol prices everywhere I went, and so I religiously did exactly that. And it was at that point I realised what I imagine a lot of our users had known for a long time: the map was too slow.

But what to do? Well, fortunately the iPhone dev community has come a long way since our initial efforts, and a particularly bright developer called Joseph Gentle invented RouteMe, which is just an awesome piece of code to display a fast, responsive map in your application. So over my Christmas "break", I put together a prototype with RouteMe, and... wow! It solved pretty much all of my gripes with version 1, just like that (you'll have to imagine me snapping my fingers at this juncture).

But Google Maps as a source of map imaging just wasn't available. Not only did RouteMe not support it, we looked at the Google Maps terms of service and it was pretty clear: you can't use the map imagery outside of Google Maps. A little more research showed that they were serious about it too, having served several take-down notices to websites who had tried to push the limits. In contrast, Microsoft actually provides a detailed explanation, including source-code, on how you can build an app using their map imagery.

So we went ahead and launched with Virtual Earth as our source of map imagery. This time, we were truly proud of the application: we could say with a completely clear conscience that it was the fastest app of its type, and that it was easy to use. Like I said, all our gripes from previous versions were basically eliminated. We released, and also pushed out GasBag Pro, which added some features users had been asking for for way too long in our books.

But this is where the surprises started rolling in. We've had a huge amount of feedback from people saying "Why did you take the Google Maps away?! The new map is ugly and waaaay slower." Needless to say, we were surprised: we'd done a lot of testing prior to release, and the response was unanimous: version 2's map was a huge leap forward in terms of performance and usability.

We've now looked into a few of these, so let me give you the scoop: the issue is with caching. For those who don't know, this is a technique used in many programs in many ways, whereby the computer remembers something it did before, in case it needs to do it again. When that happens, the computer just inspects the cache and gives back the answer it worked out last time. In the case of HTTP based applications, web-browsers (and web-browser toolkits) will store data that they download from webservers, and use this cached copy the next time that document is requested.

Now as part of that effort to get version 1's load time down from 60 seconds to 10, we shipped with what we called a primed cache: we shipped with a cache that had already been loaded with map tiles for some commonly used areas, and a bunch of other stuff that we figured most of our users would need. We didn't do that with version 2. Mostly this was because the huge win in load times that RouteMe got us somewhat obviated us of the need to do so, but it was also because we wanted to shrink the download size. Version 1 clocked in at around 7MB, while version 2 is a little over 1MB -- much more palatable, especially when you're on the road and don't have a WiFi link to work with.

So what people are now seeing is that when they upgrade to 2.0 and fire it up, they're met with a few seconds of a grey screen while those first map tiles are pulled down. Similarly when they pan around, there's more grey where the first version didn't have it because those areas were in the primed cache. I hope that they're also seeing that when they do that panning, the application responds instantly, zipping and zooming wherever their finger takes it.

But the great thing about a cache is that it remembers -- after you've suffered through those first few seconds of downloading map tiles, you'll never need to wait for them again; the phone will store them and the next time you load up the app, you should get a map on the screen within about 3 seconds of tapping the GasBag icon. That's faster, much faster, than CoreLocation is able to get a fix on your location in most cases, which is pretty hard to beat.

As for the map being ugly, well, I got used to the Virtual Earth imagery pretty quickly, but it was a bit of a shock initially. As things stand, we really don't have much of a choice at the moment. The good news is that the popularity of mapping apps on iPhone is bringing with it renewed interest in mapping imagery, so we're hopeful that new options will appear in the not too distant future. We're certainly keeping an eye out.

But hey, don't get me wrong, we love the feedback. The good and the bad. So keep it coming, and thanks for your patience while we try new stuff like this out; we hope that we're making a better app for everyone.

James -- CTO and Co-founder.