I've now migrated this blog from Serendipity, the blogging package I was previously using, to Bloog, a blog platform written for App Engine. Before doing so, though, I made some fairly significant changes and improvements, including:
  • A Serendipity uploader script (so I can import my old articles).
  • (Limited) unit-testing.
  • A bunch of improvements suggested by Matteo Crippa, including:
- Comment notification by email to the blog owner.
- Gravatar support.
- SEO improvements.
- Sitemap support.
  • Theme inheritance, so new themes can be defined that make only minor modifications to existing ones, without needing to copy the entire theme.
  • Support for FirePython logging when logged in as an administrator.
  • Improvements to how comments and posts are stored and retrieved.
  • The option to use a Google Custom Search Engine instead of the built-in search.
  • Many code cleanups and minor bugfixes.
In the process, I've been learning the wonders of Git and Github, and I'm seriously impressed.

All my work is available in my own Github branch here. It has several branches; 'master' contains non-breaking changes from the original Bloog, 'breaking' consists of master plus any changes that are likely to break backwards compatibility or require running an upgrade script. 'matteocrippa.it' contains ...

Getting O2 Ireland's "Mobile Broadband" working in OSX 10.5

O2 Ireland proudly advertise that their mobile broadband offering works for both Windows and Mac. Then they proceed to offer only windows instructions, with no hint of how to get it working on a mac. This is, obviously, less than helpful. To complicate things, the generic instructions for getting Huawei modems working in OSX aren't entirely sufficient: The PIN on the sim card has to be disabled first, and the Huawei app for setting the APN doesn't seem to work in 10.5. So here are the instructions, in a nutshell:

1. Find a windows computer with administrator priveliges. Plug in the modem and follow the installation instructions. When prompted, enter your pin, then select Tools -> Pin Options -> Disable Pin. Enter your pin again. If you're trying these directions for a network other than O2 Ireland, this would be a good time to check the settings for the APN name, too.

Yes, I know it sucks to have to use a PC to set it up. It might be possible to do this by putting the 3G sim into a cellphone and disabling the PIN using that - I haven't tried, but it seems like it should ...

I can has job?

I just came across this job opening. I'd like to think I'm uniquely suited for the position.

Unfortunately, I don't live in the US or Canada, and I'm quite happy with my current job at Google. Oh well.

Nearly all DHT implementations vulnerable to 'merge' bug.

As DHT implementations proliferate and harmonise, the prospect of multiple widely-deployed applications using the same or compatiable DHT implementations is increasingly becoming a reality. There are a large and increasing number of DHT libraries out there, such as Entangled , and FreePastry, being used by an increasing number of applications.

However, most of these implementations are vulnerable to a simple but subtle bug: They have no way of distinguishing one DHT network from another. Although each application's DHT network or networks start off separate, if, by chance or deliberate action a node from a different but compatiable DHT is introduced, the 'self healing' property of DHTs will ensure that, sooner or later, the two networks become merged into a single DHT.

This is not a problem for single-purpose DHT implementations such as those used by BitTorrent or Overnet, since they generally establish a single DHT with all compatiable clients participating in any case. Nor is this a problem for networks designed with heterogenous applications in mind, such as CSpace. However, this still leaves a number of DHT libraries that don't fall into either of these categories.

If DHTs from two distinct applications using compatiable implementations become merged, the outcome ...

SMTP to HTTP gateway for your App Engine (and other) apps!

In response to a comment in the freenode.net/#appengine channel by someone wishing their App Engine app could receive email, I put together smtp2web, a simple service that accepts mail for an address (or your entire domain), and sends it via HTTP POST to a URL you specify. If you're running in a restricted environment such as App Engine, this means you can now receive email. Even if you're not, this is a lot simpler to use than writing your own SMTP server (or adding custom handlers to most existing servers).

Someone's already blogged about it, too.

Read this: Little Brother by Cory Doctorow

Last night, having finally found my Cybook again, I downloaded Cory Doctorow's latest novel, Little Brother. Like all his other works, it's available for free download under a creative commons license, and like all his other books, it's excellent.

Unlike his other books, Little Brother is scary. Not scary in a "something's creeping up behind you" sort of way, but scary in a "completely plausible, yet utterly terrifying" way. The book is set in the (very) near future, and is focused around some of the most surveiled people in society - no, not prison inmates, high-school children. Imagine George Orwell's 1984, only a lot more immediate. Though disturbing enough to begin with, describing as it does worrying yet (alas) completely plausible intrusions in the name of 'security', everything takes a turn for the worse when a terrorist attack sends security paranoia into overdrive.

This is not a light hearted, "fun" novel. Though I don't live in the US, what happens there in the name of the "war on terror" affects me and everyone else. Starting as it did from a plausible and worryingly immediate beginning, the plot developments followed the same pattern, making it hard ...

Response from Gohop

I did eventually get a response from Gohop - my apologies for not posting it sooner. Here's the response:
Dear Mr. Johnson,

Thank you for your email received, the contents of which have been noted and passed to our IT department for investigation.

Firstly, may I say how disappointing it is for us to be made aware of any aspects of our customers holiday that fail to reach complete satisfaction. Gohop.ie are a privately owned and Irish operated Travel Agency and we rely heavily on goodwill and repeat clients, the comments we receive from our customers are treated with the utmost respect. We pride ourselves in devising good quality and good prices but above all high customer service.

Naturally we are most concerned to learn of your dissatisfaction with the organization of your seat assignments. We always Endeavour to secure the best seating as requested from our clients, despite this however, subject to seat allocation at time of booking, the system in this case booked the next available alternatives, seating you apart. I would like to advise you at this point that this is the first problem of its kind we have come across and are most certainly ...

Don't use gohop.ie to book your flights!

Here's the email I just sent gohop:

Recently, my fiance and I booked tickets back to our home country of New Zealand for our wedding using gohop.ie. We encountered some issues on the way there - auto check-in systems only brought up one reservation, seats had to be re-arranged, etc, but were not fully aware of the scope of the issues until our trip back to Dublin.

Our flight from Auckland, NZ to London was fully booked, and when we checked in, we discovered that our seats were not adjacent - not even in the same row, as a matter of fact. The cause of this, it turns out, is that gohop does not group code tickets purchased through your site. Your company, it appears, is somewhat infamous amongst airline checkin personnel because of this - as soon as I mentioned gohop, I got a resigned sigh and a nod of understanding.

Despite efforts well above and beyond the call of duty by airline staff - including asking other people to accept alternate seats - a process which delayed the departure of the entire plane due to us and others not having suitable seats, they were unable to find us adjacent seats ...


Just a quick update: Yes, I did get back from Switzerland (with a new passport), eventually.

I also went back to NZ, got married to my (now) wife Hayley, and had a wonderful honeymoon. After a horrid flight back (about which more later), we're now back in Ireland and ready to go back to work.

Photos of the wedding will be forthcoming in a week or two for anyone who cares.

Stuck in Switzerland

(Though of all the places to be stuck, this isn't a bad one)

I've been on holiday in Switzerland with my SO for the past few days, staying with a friend. Just after christmas, however, we took the train up to Zermatt to spend the night and see the matterhorn. However, on the train from Losanne to Visp, my bag was stolen. The bag containing my Passport and my Work Permit, not to mention my work laptop, the new watch I bought just the day before, and a bunch of other things.

To top it off, it looks like we're _not_ covered by travel insurance (I thought we were).

And now I can't leave until I get a new passport issued and mailed to me. Fortunately, this only takes 3 days (plus postage) if I pay for expedited processing, but the passport office doesn't open until the 3rd.

Also on the plus side, I got some nice photos of the fantastic fireworks show in Zurich for new year, which I hope to post soon, and I'm able to work out of our Zurich office while I wait for my passport.