Archive for April, 2008

Good news, I have a new job – joined FeedHenry this week as their technical architect. FeedHenry is part of the TSSG organisation here, and will likely be spun out as a separate company in time. I’m working a 4 day week for the moment, so Tax123.ie is now a part time gig.

FeedHenry is a widget service delivery platform, and is a culmination of several innovative research projects carried out in TSSG. IMO is far superior to other competing platforms, mainly because it moves widgets beyond the ‘toy’ status. How it does this I can’t say as yet; its not quite live at the moment, but I should be able to blog a big more about it in a month or so.

So I’m very impressed after my first week, the team is great, the technology is very interesting, its got amazing potential to be incredibly successful and I’m really looking forward to getting stuck in over the next few weeks! (And its a good job we all studied about ‘widgets’ so much in school/college, its great that everyone knows what a widget is… right? ;-)

Guinness floating widget

Image via Wikipedia

Having read quite a bit of commentary on Goole App Engine (GAE) launched last week, in general the reaction has been quite positive, and I’m sure GAE will enable lower the bar for many developers looking for a cheap solution for storage and a potential solution to their scalability needs. What is striking is a the lack of concern over a few fundamental issues however:

1) Lock in: if you go down the GAE route, you are totally locked in to staying with Google for the lifetime of your application. You have to develop using their choice of language and their APIs. If you want to leave, you can’t take exactly take Googles proprietary BigTable and GFS technology with you, so where exactly are you going to find a new home for your system? It’s interesting that new technologies like AppDrop have already started to appear to address this issue (AppDrop just address portability however, it doesn’t provide an alternative scaling mechanism to BigTable, but I’m sure that will come..)

You’d have the same problem if you go with Amazon, although not to the same degree: EC2 is open, the new persistent storage should also be portable, but if you use S3 for storage, SimpleDB, or SQS, you can’t exactly take them with you either (admittedly you can abstract the API’s for these services, but the alternative implementations may not match the desired functionality/scalability requirements exactly). In short, until there are Open Standards for the Clouds, tread carefully unless you don’t care about being at the mercy of a 6 ton gorilla! In this day and age, I can’t see how any business would lock themselves into a proprietary solution only available from one vendor, didn’t ‘Open’ win some time ago?

2) Scalability: GAE primarily addresses the eternal detractors question of ‘does it scale?’. I can imagine many naive develops and VC’s alike breathing a sigh of relief when the answer is ‘we run on GAE’. Idiots. There is no one size fits all solution for scaling any software system. BigTable and GFS are a solution for specific scalability requirements (most notably search!). You are effectively locked in to Googles scaling solution, regardless of how appropriate it is for your application, with no leverage for even testing alternative scaling approaches (as your development is so tied into Googles language/APIs). Scalability is complex, usually involving both hardware and software, but its solvable on an application by application basis – once your happy with the ‘do what degree doesn’t it scale?’ question yourself (nothing scales infinitely without cost), there are well know techniques/patterns to address most scalability requirements. So, unless your absolutely sure that BigTable and GFS suit your application scalability requirements, why would you use GAE?

3) Pigeon-holed hosting: the odd thing about GAE is that you can only develop applications from scratch on it. You can’t use many of the open source tools and technologies that can play an important part in your overall application/service. Want to use an open source CMS, like Drupal, for some basic content management on GAE? Nope. Want to use WordPress as the blogging tool on your site? Nope. Want to use a non-python open source library for PDF processing for example? Nope, just not an option. So, your overall application is restricted to what ever open source applications/libraries that run in GAE’s sandbox, of which they’re aren’t many (how many useful open source python projects don’t use the full standard library?). At the end of the day, I’m just more comfortable with a shell to a real server on which I can install anything that helps our business, regardless of what it was developed in. (None of this is an issue with Amazon obviously)

So in summary, unless you know all your requirements upfront (waterfall development model anyone?) think long and hard about committing to GAE.

After initial speculation that Googles ‘storage’ announcement yesterday would be a ‘BigTable‘ web service, it looks like they’ve changed the game in a much bigger fashion again with the release of Google App Enigine. Huge win for Python and django framework in particular. It’s suppsed to be language neurtal, but I wonder if that includes java.. Java would be the biggest win for Google, not only is it the natural backend for GWT client applications (GWT is java development environment, even though it generates javascript behind the scenes) but its the key to getting applications out of the enterprise and hosted on Google. The pricing will also be interesting, no announcements on that yet..

Also, on a completely different topic, I was tracking down an odd timestamp issue yesterday where timestamps were still on winter time. Given that our server is based in the US (we use Joyent) I assumed that the servers hadn’t adjusted to summertime. However, the servers were running on GMT time, which is the timezone that I thought we lived in, but, I was wrong – we live in IST (Irish Standard Time) – full explanation on wikipedia here. Google will tell you the GMT time by typing ‘time GTM’ into the search box (and compare that to just typing ‘time’, which returns IST for me). File under ‘you learn something new everyday’.