If you’re going to compare Terms of Service, kindly do so based on facts.

ObDisc: I used to work for Google. I still have lots of friends at Google. I have a bias towards trusting Google that’s largely based on knowing people who work there and trusting them personally. I pay money for many Google services – several Apps domains, for instance. I am also a paying customer of both Dropbox and iCloud.

I had thought that the nonsense about Google’s Terms of Service and their impact on Google Drive was dead with Nilay Patel‘s comprehensive summary of Dropbox, Skydrive, Google Drive, and iCloud Terms of Service, but then I saw this tweet and realised that the nonsense is continuing. The article linked (published on Trend Micro’s “Cloud Security” blog) to was written on the same day as Nilay’s piece, so it’s not new – but apparently this nonsense is still being spread.

Trend Micro also have a similar service, called Safe Sync. In the footnotes below, I’ve included (as well as the comparison from Nilay’s article) the equivalent sections from Safe Sync’s own EULA for you to compare.

All of these Terms are fairly standard. Amongst their many similarities, each of them has a “You retain ownership” clause[1], and a “You grant us the right to” clause[2]. [3]

Without exception, every bit of FUD I’ve seen has been predicated around comparing the “You retain ownership” clauses from the other services with Google’s “You grant us the right to” clause. Today’s bit of nonsense does exactly the same thing: it lists the “You retain ownership” clauses from Skydrive and Dropbox against the “You grant us rights” clause from Google. This one goes one step further though: it first argues that the “You retain ownership” clauses in the other Terms are vital for establishing a Reasonable Expectation of Privacy under US law; then makes the explicit claim that Google’s terms destroy any argument that content uploaded to your cloud storage service has a reasonable expectation of privacy – implying (although never actually stating) that Google’s Terms, unlike the others, lack the vital “You retain ownership” clause.

Utter nonsense.

It’s quite possible that not having a “You retain ownership” clause might have consequences on a Reasonable Expectation of Privacy; but as Google’s Terms are equivalent to the others, this would apply equally to the other services. I don’t see how this could arise from a genuinely mistaken reading of Google’s Terms, either: the “You retain ownership” clause is quite literally in the previous sentence to the one quoted in the Trend Micro article – I don’t see how any honest attempt at understanding the Terms could miss the clause. I don’t see how this can be anything other than a deliberate attempt to create FUD.

The Trend Micro ends with a plug for their own product. The penultimate sentence says:

Here’s hoping the EFF shames Google into at least being less evil.

Good news! Ars Technica got in touch with the EFF and asked them to read over Google’s policy.. Was the result the shaming that Trend Micro were hoping would be bestowed on their competitors?

When Ars spoke to the Electronic Frontier Foundation about Google Drive’s terms of service, the EFF found little about them that was more suspicious than in any other similar cloud service.

I’m sure that Google is indeed positively burning with shame.

Edited to add: Just to be clear, I’m not intending to imply that there is no reason to be concerned about putting your private data on any of these services. Any time you decided to use any of these services (or any cloud Webmail service, or an online photo sharing site, or a social network…) you need to carefully balance the utility you get from the service against the very real privacy and security issues associated with the service. However, these decisions need to be based on *facts*: what the relevant Terms and Policies actually say. Spreading FUD about the contents of the policies doesn’t help anyone make a decision about which services to use (or not to use).

Google Drive
Some of our Services allow you to submit content. You retain ownership of any intellectual property rights that you hold in that content. In short, what belongs to you stays yours.
By using our Services you provide us with information, files, and folders that you submit to Dropbox (together, “your stuff”). You retain full ownership to your stuff. We don’t claim any ownership to any of it.
Except for material that we license to you, we don’t claim ownership of the content you provide on the service. Your content remains your content
Except for material we may license to you, Apple does not claim ownership of the materials and/or Content you submit or make available on the Service
You are the owner of your files and are solely responsible
for your conduct and content of your files, as well as any of the content contained in communications with other
users of the Trend Micro Products/Services.
Trend Micro does not claim any ownership rights
in your files.


Google Drive
you give Google (and those we work with) a worldwide license to use, host, store, reproduce, modify, create derivative works (such as those resulting from translations, adaptations or other changes we make so that your content works better with our Services), communicate, publish, publicly perform, publicly display and distribute such content. The rights you grant in this license are for the limited purpose of operating, promoting, and improving our Services, and to develop new ones.
We may need your permission to do things you ask us to do with your stuff, for example, hosting your files, or sharing them at your direction. This includes product features visible to you, for example, image thumbnails or document previews. It also includes design choices we make to technically administer our Services, for example, how we redundantly backup data to keep it safe. You give us the permissions we need to do those things solely to provide the Services.
You understand that Microsoft may need, and you hereby grant Microsoft the right, to use, modify, adapt, reproduce, distribute, and display content posted on the service solely to the extent necessary to provide the service.
you grant Apple a worldwide, royalty-free, non-exclusive license to use, distribute, reproduce, modify, adapt, publish, translate, publicly perform and publicly display such Content on the Service solely for the purpose for which such Content was submitted or made available, without any compensation or obligation to you.
You understand that in order to provide the Service and make your Content available thereon, Apple may transmit your Content across various public networks, in various media, and modify or change your Content to comply with technical requirements of connecting networks or devices or computers. You agree that the license herein permits Apple to take any such actions.
In order to make the Trend Micro Products/Services available to you, you agree to grant Trend Micro a limited, nonexclusive, perpetual, fully-paid and royalty-free, sub-licensable and worldwide license: (i) to use, copy, transmit, distribute, store and cache files that you choose to sync; and (ii) to copy, transmit, publish, and distribute to others the files as you designate

[3]All of the service have Privacy Policys which modify the Terms of Service in various ways. It’s interesting comparing these too.

  • Google’s Privacy Policy mostly limits what they can do with the rights you’ve granted them under the ToS. For instance, although the Terms of Service require that you grant Google the right to use your data for “the limited purpose of … promoting … our Services”, the Privacy Policy seems to restrict Google’s ability to actually do this – as far as I can tell, only data you have expressly chosen to make world-visible could ever be used in this way.
  • Dropbox’ Privacy Policy, by contrast, greatly *expands* the rights Dropbox have. For instance, the Terms say that “aside from the rare exceptions we identify in our Privacy Policy, no matter how the Services change, we won’t share your content with … law enforcement, for any purpose unless you direct us to”. On the surface, this seems much more restricted than Google’s equivalent terms – until you find this in the Privacy Policy: We may disclose to parties outside Dropbox files stored in your Dropbox and information about you that we collect when we have a good faith belief that disclosure is reasonably necessary to (a) comply with a law, regulation or compulsory legal request. In short, despite the misleading wording in the Terms, Dropbox can and will share your data with law enforcement just as readily as any other corporation.

Precise Pangolin install hints

My desktop at work is a Dell Precision T5500 – a fairly standard desktop, you’d think. My video card is an NVIDIA Quadro FX 580.

I recently spent most of 3 days trying to upgrade from Lucid to Pangolin. I’m not going to bore you with the details, but here are some things I wish I’d known.

  • I have two monitors, one on each of the DisplayPort outputs. The LiveCD will not use either of them *unless you have a third monitor plugged in to the DVI port*. My monitors happen to be able to handle Picture-by-Picture, so I can actually make one of them track both the DisplayPort and DVI inputs, which comes in handy.
  • Although the installer can use the graphics card just fine, the system it installs by default is broken. At the very first part of the installer (a purple screen with a keyboard and a human – at least, I think that’s what those two fuzzy blobs are meant to be), press any key. You’ll be asked to choose a language, then you’ll get a menu with options like “Try Ubuntu without installing” and “Install Ubuntu”. Press F6, arrow-down to “nomodeset”, and press x to activate it. This makes no difference at all to the installer, but does result in it installing a system that can use your graphics card later.
  • This part of the installer uses the DVI input to your monitor. Take the time to set up Picture-by-Picture so you can track the install as it flips back and forth between DVI and DisplayPort throughout the rest of the process.
  • Now choose “Try Ubuntu without installing”. Despite the misleading name, this gives you a chance to set your system up before running the installer.
  • The installer may now switch from DVI to DisplayPort, but then again, sometimes it won’t. Be glad you set up PbP so you can catch it wherever it appears. If it’s on DisplayPort, you probably didn’t set nomodeset correctly. Don’t waste your time continuing with the installer, even though it seems to be working fine – just restart it.
  • The standard LiveCD does not support LVM, so will not handle the LVM partitions already on your desktop (you do use LVM, right?). You can switch to a terminal by pressing alt+F1, and then:
    • sudo apt-get install lvm2
    • sudo vgchange -ay

    You can then use alt+F7 to get back to the GUI and kick off the installer.

  • The installer doesn’t seem to be able to cope with existing swap partitions – at least, not when you have several swap partitions. It does amusing things like popping up modal dialogs to tell you that creating the swap space failed – and then doesn’t let you dismiss the dialog, so your only option is a hard power-down. Don’t waste your time, just tell the partitioner not to use any swap partitions at all.
  • If you choose to use encrypted homedirs, the process that creates the homedirs assumes you have at least one swap partition. Because you’ve had to choose not to use any swap partitions, this will fail – but it does so in a recoverable way. Just use alt+F1 again, “sudo swapon /dev/sdXY”, (assuming that /dev/sdXY is your swap partition), then switch back to the GUI and click “Try Again” on the installer.
  • When you’re setting up your partitions, you will be asked to choose a device for boot loader installation. Choose your hard drive, not your USB stick. Near the end of the installer, sometimes the installer will try to install grub on the USB stick anyway. This will fail, but you will get the chance to pick another partition to install GRUB to. Pick your actual hard drive again.
  • If you cancel the installer, it will think something went wrong and ask if you want to send a message with details to Ubuntu developers. If you cancel this, the window never dies. If you start the installer again, it will eventually reach a point where it’s blocked waiting for the original window to go away. Switch back to the console and use “kill $(ps auxwww | grep [a]pport)” to terminate the original process.
  • Even though you’ve manually installed lvm2 and are installing onto LVM, ubuntu won’t bother installing LVM into the system it creates. Make sure you follow step 7 of this guide before you reboot. If you forget, you can always boot up the LiveCD again and run through this step.

Edited to add: One more tip: Once you’re done, unplug the DVI cable. If you leave it plugged in, a reboot will see the system using the DVI output and ignoring the two DisplayPort outputs again. If I ever do a reboot and the screens go to sleep, I’m going to try plugging in the DVI cable again. The system really seems to love that DVI output.

Wed and Circuses

Circus the First: Sexuality

I noticed, well over a decade ago, that many gay young men, once they finally accept themselves and their sexuality, over-compensate. They jump straight from self-hatred into embracing extreme gay stereotypes – not because that’s who they are, but because that’s the only way to be gay that they’re aware of. The jump from “I’m okay! I’m gay; gays do X, therefore I must want to do X” has always saddened me.

I think a lot of people would be much happier if they were able to just say “I’m okay! I’m gay” and not think that they have to radically change every aspect of their life. That’s not going to be a common thing until every gay child grows up being aware that they are surrounded by gay people, who are just as diverse as the rest of the people they know.

Unfortunately, we live in a world where teachers, actors, singers, sports people, politicians (to name just a few) all feel they need to stay in the closet in order to have a career; where children are routinely told that gay love is “different” and “inferior” and “we can’t let those dirty gays have our precious marriage”. Until all of that changes, gay kids are going to grow up only having one kind of role model – they’re going to believe that the only way to be authentically gay is to “be here, be queer, get used to it”.

I lucked out and (mostly, I think) avoided this mistake myself – although I certainly went through a period where I was certainly acting the way I thought I ought to behave, and not the way I wanted to behave. A big part of how I got lucky was that I happened to fall in with a crowd of gay men who showed me that I don’t need to change who I am in order to be gay.

I would like every child to have the chance to make the discovery I made *before* they start trying to mutilate their personality until it fits into the only mould they’ve ever been aware of. Until we get a critical mass of public figures being visbly out of the closet, Mardi Gras is one of the best ways to achieve this. It gives a very distorted, one-sided extremist view of what it means to be gay; and that does cause some harm – but it causes much less harm than having children growing up believing they’re the only gay in the village.

Fortunately, I think that this circus is drawing to a close. There are far more out public figures now than there 10 or 20 years ago, when I was struggling. Most of the ways the law treats heterosexual couples different from other couples have been removed. There are still remnants of discrimination that are politically infeasible to remove just yet – but there’s a growing awareness that the political problems stem from a very vocal minority and don’t actually reflect the views of the majority of the population. I’m reasonably confident that children born this decade will be able to mature without going through too much trauma if they realise that their sexuality is something other than 100% hetero.

In short, I believe that Mardi Gras is going to become far less relevant over the next decade or so – and we’re going to see far fewer young gay men making drastic changes to their lifestyle and harming themselves in the process. This won’t be achieved solely because of the noisy extremists who started the gay rights movement in this country 30+ years ago – but it *will* be achieved because their noisy, violent, rude pioneering made it possible for ordinary everyday gay people to make themselves known to the people around them.

Circus the second: Religion

For myself, being able to accept my sexuality meant that I first had to modify some of the religious beliefs I’d grown up with. However, I didn’t happen to fall in with a crowd who showed me that it’s possible to only modify parts of my religious belief. I’d grown up surrounded by one end of the religious spectrum (the end now represented by the ACL, although if it existed at the time I wasn’t aware of it). The only alternative I was aware of – thanks to a lot of very noisy extremists – was right at the other end of the religious spectrum. Consequently, that’s where I went – one huge leap, discarding huge portions of my prior belief system, because that was the only change I believed possible.

I did start to meet people who showed me that there was another I could have taken much later – but by then, it was too late. There’s as little chance of me tweaking my beliefs from my current extreme as their was when I started. In fact, even though I’ve been aware of the first Circus for a long time, I really only became aware of that I’d done essentially the same thing in the second Circus tonight.

I believe that the largest part of why I was unaware of other possibilities is because moderate Christians tend not to speak out publicly against the extremists – at least, not the extremists they regard as being within the fold of Christianity. There are good biblical reasons for this – 1 Corinthians 6:1-11, for instance. Because of passages like this, many Christians seem to feel that the correct way to handle people at the extremes of Christian belief is quietly – within the church, or just maybe, by expressing a very quiet contrary opinion only when directly questioned – but never, ever speaking out loudly against the extreme viewpoints.

I can sympathise with this view. Unfortunately, it means that this circus looks very different from the first circus. The first circus started with loud extremists at both ends of the spectrum – but is going to end because the vast majority of people in the center stood up and made themselves known. The second circus has also attracted loud extremists at both ends – but so far at least, the vast majority in the center refuse to make themselves known.

I’d love to see the second circus draw to an end too. I’d love to see the ACL and their ilk to be understood as the extremist, vocal, minority that I believe they are. I’d love to be able to tell the atheists currently gathering in Melbourne that their conference has no more value than I believe Mardi Gras will have in a few years time – a fun spectacle, perhaps, but not a vitally important way of letting people understand that they aren’t alone. I’d love for children who grew up with a Christian background be able comprehend the enormous diversity of opinion within the Christian churches, and were able to make minor corrections instead of having to ditch Christianity entirely.

However, none of this is going to happen while the only people willing to speak up are the people at the extreme ends of the spectrum. If you’re neither an extreme atheist nor an extreme Christian, it’s *vital* that you be willing to be loud and proud about your beliefs. It’s vital that you step forward and say “The ACL does not entirely represent what it means for me to be Christian” or “Extremists like PZ Myers do not entirely represent what it means for me to be atheist”, just as it was vital for the silent majority of gays to step forward and say “Mardi Gras does not entirely represent what it means for me to be gay”. As long as the moderates refuse to loudly, publicly, visibly repudiate the extremists who claim to speak for all Christians or all Atheists, *those will be the only voices that are heard*.


As it happens, there’s a fantastic opportunity open *right now* for everyone to have their say. The House of Representatives Standing Committee on Social Policy and Legal Affairs is holding a a verbosely-named Inquiry into the Marriage Equality Amendment Bill 2012 and the Marriage Amendment Bill 2012 which is calling for public submissions on the topic of marriage equality generally, and two specific bills in particular. The ACL are encouraging their constituency to make their feelings known; and of course, we gasbagging noisy atheists are doing the same. If you’re a moderate, this is your chance! Don’t let the extremists make it look as though there are only two opinions here! Don’t let the ACL or the noisy atheists get away with pretending they talk for you!

All you need to do is answer 5 multiple choice questions (and, optionally, say a few words (very few – only 250 words will be accepted) in response to two more open-ended questions) in order to make sure that our Parliament is able to understand the full diversity of opinions in the community.

Two of the questions on the survey ask you whether you support each of the bills named in the Inquiry’s title. If you believe that any amendments to remove the “Man and Woman” clause from the Marriage Act would be bad, there’s no need for you to read either of the bills.

Everybody else should read both of the (very short) bills before they complete the survey. The bills do differ – for instance, both aim to preserve the right ministers of religion already have to refuse to solemnise any wedding that falls outside of their religious belief, but both bills approach this in slightly different ways.

Both bills – and some other background information, if you want to learn more – are linked from the Inquiry page. If you’d like to read the full text of the existing Marriage Act, that’s available over at ComLaw

And so, to bed

This was meant to be a quick response, just a tiny bit too long to fit in a single tweet. 3.5 hours later, I’m not sure the words I’m writing make sense any more. It’s time for bed.

State Theater Wurlitzer

Spotted in the State Library’s Flickr feed a few days ago: one magnificent Wurlitzer being installed into the State Theater:

I visited the Museum Speelklock while in the Netherlands last year and was amazed by some of the automated music machines they had on display there – simple cuckoo-clocks, clocks that use a circular bow and intricate fingering mechanisms to play four violins at once, all the way up to some enormous steam organs. I was amazed at how much ingenuity went into building some of these instruments.

I’ve been in the State Theatre a few times, but don’t remember noticing any visible parts of this organ. I wonder if it’s still intact?

Go here! No, don’t go here!

I took a photo yesterday, on my Android phone. Google Plus Instant Upload pushed it up to Picasa for me. This seems to have triggered an email notification.

Not the warning: “Content has been removed for a violation of terms of service”. This concerns me – I don’t think anything I’ve uploaded should violate the terms of service. There doesn’t seem to be any way to discover what content was removed, or from where, or what terms of service it violated – just a “Give Feedback” link.

That link takes me to https://groups.google.com/forum/?fromgroups#!forum/gmail-labs-help-media-previews – which tells me right at the top that this isn’t where I want to be.

Good job, Google!

Lion cannot get an initial IPv4 DHCP lease if IPv6 is enabled on your network

I just got bitten by this a second time, so I figure it’s time to blog about it so that I might be able to find my own notes on why this happens next time around.

If your network supports IPv6, Lion is unable to get an IPv4 DHCP lease if it’s never had one before.

This has bitten me twice: once when I booted into Recovery, and a second time just now right after a completely fresh install of Lion.

In both cases, the fix was the same: I had to tell my router to disable IPv6. As soon as I did that, my machine got an IPv4 address. I was then able to re-enable IPv6 and the machine continues to work fine on IPv4 indefinitely.

Not too much of a bother in a house with only a few macs that very rarely encounter a fresh install; but I hate to think how this would play out on a corporate LAN.

Meaningless numbers are meaningless.

Vic Gundotra (still using a pseudonym, still insisting that you can’t do the same) has announced that more than 90 million “people” have joined Google+; that 60% of those people sign in daily, and 80% weekly.

I recently deleted one of my Google+ accounts (I forget how many I had – it was at least two, possibly 3). I’m not going to suggest that I’m normal and that the real figure is more like 40 million people, but I do think it’s disingenuous to talk about “people” when you really mean “accounts”.

Before I deleted the account, I signed in at least once a week – to deal with the annoying notification that infected my gmail to let me know that some random I didn’t care about had circled me.

I ended up deleting my account for reasons I outlined in my last post. I’m now using one of my other accounts to follow a select few people who are doing interesting things with Hangouts – so few people that Google wastes around 220 pixels of vertical space on a message nagging me to follow more people.

I hope these numbers, although meaningless, will at least trigger large bonuses for all my friends still working at Google. That would be nice, right?

Google Plus is killing the open web

This tirade was originally posted as a comment on this post on Google Plus; but given the content, it seemed like it would be wrong not to post it here as well.

[Edited to add]To be clear, I’m not accusing Google, or anyone at Google, from intentionally trying to kill the web. I know that most Googlers, and Google itself, strongly believe that an open interweb is a good thing. I’m fairly sure, although I don’t know anyone involved, that the people working on Plus have good intentions about making it open; and probably believe that their custom API is better than an RSS/Atom feed because it offers more functionality.

I’m only commenting here on what I see as the net effect of Google+, as it is today, on the interwebs.[/EDITED]

Plus is killing the web because even Facebook offers more ways to track and be notified about that content than Plus does. Plus doesn’t export any RSS/Atom feeds. The only way to pull data out is a custom API that nothing much supports yet – I can’t even follow Google Plus from within Google Reader! I can follow my Facebook activity from within Google Reader – it’s a limited feed that doesn’t give me all the information I see within Facebook, but it’s enough that I know I haven’t missed any interesting activity from my friends. Plus makes it almost impossible to see anything but the last few posts, so I know that the interesting people I’m following are posting stuff that I’m missing. Stuff that if they posted to some open platform – their blog, twitter, hell, even Facebook – I’d be able to catch thanks to use of standards like RSS.

Plus is killing the web by tricking people into putting interesting content here that they would otherwise have put on their blog; then making it hard for me to find that content. For a while I’d considered “blogging” here (not that I blog much); but now that I’ve realised that posting here makes it next-to-impossible for anyone to find my content later, I won’t be. My second thought was to have my WordPress use the limited API to pull the content here into a post on my blog, but everything I’ve found that does that is ugly (and no, I’m not going to waste my time developing something when I could just post on my blog, on the open internet, and avoid the problem).

Plus is killing the web because it’s driving comments here, for much the same reason as the above. It’s easy for me to track down a comment someone made on +Robert Collins blog post about dmraid six months ago; if it was a post here, that would be impossible to find the post, let alone the comment.

Worst of all, by intermingling “Blog post” and “Link blog” type traffic (via the recent changes to gReader, amongst other things), Plus is killing the web by intermingling shallow commentary on half-read web trash (the kind of thing that used to be safely contained in gReader, delicious, or other linkblog type things) with interesting new content. Two-thirds of the reason why it would be impossible to find a six-month old post +Robert Collins had made would be the 7500 bits of crap in his stream since then – “Esconced for the wait until the flight”, “Checked in in some random hotel in eastern europe”, “aieee” being paraphrases of 3 of his 4 most recent posts. Blogs are for blogging; linkblogs are for sharing potentially interesting content, Plus is for dumping all your shit in and flushing.

In summary: Plus makes it harder to extract content than even Facebook; Plus encourages intermingling of the banal and the profound; and thus Plus makes it impossible to not miss quality content that would be found if it were posted on the open internet.

I hate to harp on about how Friendfeed got this right, but it really did. Friendfeed, although it aggregated my Twitter and my Blog, kept their identities as seperate streams. Friendfeed allowed you to choose if you wanted to see my tweets, my blog posts, or both. Friendfeed re-exported the stream I was watching as a single integrated RSS feed that I could then track in an RSS reader of my choice to make sure I didn’t miss any content. Friendfeed made it easy to re-share posts onto other services such as Digg or delicio.us. Friendfeed made it easy to pull the comments made on an item inside Friendfeed back into the source, so that the conversation did not get splintered or lost.

I miss Friendfeed. I wish Google had managed to bring +Paul Buchheit and the rest of the team back into the fold – Friendfeed would have made such a fantastic open platform on which to build a social network.

The long overdue details of my miserable EY experience

When I switched jobs earlier this year, I wanted to spend my week off between jobs doing something different from my routine – so I flew to Paris for 3 days, spent 2 in London, then flew home for the new job.

A few months earlier, I’d gone to the US for work, and flown Premium Economy on VA there and back. That flight was fantastic, not least because I got bumped up to business on the way over there. That flight, together with some domestic flights I’d taken earlier in the year, was enough to bump me to Silver status with VelocityRewards, so a secondary aim of my trip to Europe was to bump me up to Gold, so that I’d be able to have ongoing little treats for myself every time I have to fly over the next year. So, I booked Premium Economy fares for this trip too.

At the time, the alliance between VA and EY was fresh and shiny, so I decided to give it a try – especially as it seemed like the best way to maximise my chances of hitting Gold. All the flights to Europe were VA SYD-AUH, followed by EY between AUH and your destination. In my case, I flow AUH-CDG, caught the Eurostar to London, and flew back LHR-AUH.

At one point during the booking process, I was considering going Business class, as the fares seemed surprisingly cheap. That’s when I noticed the fine print: these fares were Business only on the VA leg, but economy on the EY leg. A few, far more expensive, fares offered Business all the way through – but even though this trip was about me splurging, I didn’t want to splurge *that* much.

This made me check the fine print on the Premium fares, and discover that they too put you in economy, as EY has no Premium service. This was my first disappointment: I wanted to splurge on myself just a little, but VA had chosen a partner that didn’t allow that.

The VA legs were fantastic: comfortable seats, plenty of room, good food, good IFE. Absolutely no complaints about those legs.

The layover in AUH outbound wasn’t terrible. The strange layout of the airport means that, after deplaning, you are forced to go through security just to enter the terminal; and terminal 3 at AUH turns out to be tiny – 5 or 6 obligatory high-priced fashion outlets, a token chemist/travel goods/bookstore, and a perfunctory food court above. The whole thing is closed in and claustrophobic – the longest line of sight anywhere in the place is standing at the base of the escalators up to the food court and looking up two stories to the roof. There are no windows in the terminal proper.

The terminal is shaped like the letter p – all the shops are in the circle at the top, with all the gate lounges in the long tail trailing off. If your flight is at one of the distant gates, allow a good long time for walking down there – and once you’re there, you won’t want to walk back.

After my layover, boarded the EY A340-500. The good news was that seating is 2-4-2, and I had one of the 2s to myself. The bad news was that I had detritus from the last passenger on and around the seat – most memorably, half a plastic cup on the ground in front of the seat, but also random bits of plastic in the seat pocket in front of me, and stuff down beside the seat. Aside from having to clean away someone else’s rubbish, that particular flight went fairly smoothly. I was disappointed to find out that the “Bakery Selection” the menu had promised for breakfast turned out to be “A Croissant”, but as I was about to be landing anyway it didn’t seem to matter much.

Coming back from LHR was less pleasant. I discovered that my Velocity Silver status didn’t get me priority checkin – but I had arrived well before the flight, so the line wasn’t long anyway. This time the plane was clean, so I thought that maybe the problems on the previous flight were a one-off – but as we were descending into AUH, I realised that this time the Bakery Selection had consisted of nothing at all. Suddenly the paltry “Selection” from the first flight seemed positively luxurious!

(Yes, I did just complain that, in the midst of being whisked quickly and without fuss from Merry Old Englande to the center of Erotic Arabia, they forgot to give me a pastry. You did notice the “#firstworldproblems” tag, right? If you want to read about people with *actual* problems, look elsewhere)

Then we landed at AUH Terminal 1. This is obviously a much older terminal, and seemed to be undergoing its first maintenance in decades. The whole terminal is one giant dome, with a supporting pillar in the center. Once again, the terminal lacks meaningful windows, turning would could be a glorious view out over the runways towards the sea into a claustrophobic world of concrete. As a concession to smokers, the terminal offers a smoking booth in the center of the terminal.

I’ve seen smoking booths at other airports. SIN has some of them – decent sized rooms, with strong ventilation, so that people standing outside get only the faintest whiff of smoke as people enter and exit. EY’s booth was as pathetic as the rest of the terminal – about the size of 6 standard Telstra phone boxes joined together. Free-standing in the center of the terminal, with no attached ventilation that I could see. For the convenience of people entering the booth, it had an automatic sliding door, which opened into a gaping maw about 50% of the length of the booth – and then stayed open, because there were constantly people walking past and triggering the sensor.

As a result, even the few people who were actually smoking inside the booth were just resulting in a constant trickle of smoke heading up to the ceiling and adding to the already foul haze and miasma in the room. Yes, room – this entire terminal is just one big domed room.

Using the smoking booth was clearly pointless, so most smokers didn’t bother. Sure, they mostly stood *near* the booth – but also sitting near the booth, surrounded by smokers, was a mother and her baby, who couldn’t have been more than 2.

I noted all this in passing as I was proceeding, post-haste, towards the comparative bliss of T3 – yet again, EY had managed to turn the downsides of the last trip into longed-for pleasant memories.

It was while I was in T3 eating in the ersatz food court that I realised I’d left my Kindle on the plane. No problem, I thought, cleaners will have found it. I’ll just ask customer service too retrieve it for me..

Well, it turns out that customer service is a two-person desk on the edge of T1 – so back into the smoke I had to go. It turned out that an EY flight to BKK had just been cancelled. It turns out that most of the people on the flight might have been able to get accommodation in Abu Dhabi – if they’d thought to get a visa before they left home. As it was, the customer service desk was surrounded by a swarm of people who weren’t happy at being told that their only option was to remain in that smoky dome indefinitely, until another plane could be found for them.

Neither of the customer service people behind the desk seemed interested in doing anything about this. They spent a lot of time staring at people, and asking questions like “So what am I meant to do about it?”. You know that Little Britain motif, where someone bashes away at a computer for a bit before blandly responding “Computer says no”? It was exactly like that, except without even the pretence of blaming it on the computer.

I waited in this morasse for about an hour, gradually managing to inch my way towards the desk as the people at the friend of the huddle gave in and left. I was almost there when some ground staff from another airline led in a woman through a back door. She’d left a scarf on an EY plane, but as she couldn’t get to EY’s customer service people, she’d made enough of a nuisance of herself to staff of other airlines that they’d dragged her in behind the desk just to get rid of her.

EY customer service> What are you here for>
Woman> I left my scarf on my plane
EY> *blank look* So? What are we meant to do about that?
Woman> *furious* I want you to see if the cleaners found it and handed it in
EY> *sigh* I guess.

At this point, the sketch I alluded to earlier played out in full: the customer service person picked up a phone, bashed a few keys, said a few words, listened for a few seconds, then put it down and announced “Cleaners say no”. He then stared at the woman until she gave in and went away.

Even if I hadn’t given up all hope of recovering my kindle at that point, my flight was now boarding – I’d been in that line for over an hour. I went back to T3 and boarded.

Actually, two more things happened while boarding. Due to Australian regulations, we had to undergo “Additional Screening” before getting on the plane. This consisted of EY ground stuff rummaging through our hand luggage in case we were smuggling hot beverages or vast quantities of drinking water onto the plane. The man in front of my had some roll-on deodorant in his bag, and the EY staff started thrusting it in his face and loudly asking him “How big is this? Is this bigger than 100mL?”.

Firstly: no, it wasn’t. It was nowhere near big enough to be 100mL, so it was a silly question.
Secondly: Why are you relying on *passengers* to tell you whether or not they’re complying with your regulations? If you’re going to conduct these silly checks, train your staff to have some vague idea of what 100mL looks like
Thirdly: printed right on the front of the bottle, it says “30mL”.

I know this because I happened to have exactly the same thing in my luggage. I made a point of pointing at the label when mine was being searched, which saved a lot of time.

The second thing that happened was that one of the EY staff asked me, as I was about to board the plane, if I’d enjoyed my time in AUH. I told him I hadn’t, which made him ask for details. He ended up taking my contact details and promising to try to find my kindle for me, but a few days later he had to tell me that no-one had reported it.

Would I fly with VA/EY again? Well, now that I’ve got Gold status, I had been thinking of giving it a try, to see if AUH is less hellish once you’re inside the lounges – but as EY have effectively rescinded lounge access for anyone not travelling business class (even their own Gold status frequent flyers don’t get lounge access any more, unless they’re travelling Business), I won’t even get the chance to find out. I could get into the Al Reem lounge in T1, maybe, if they have space – but I could have done that last time I flew too, as it’s open to anyone with $39USD to spare.

OpenAustralia/ScraperWiki hackfest: my first ruby code!

This weekend, I’ve been hanging out at my old office, taking part in the OpenAustralia/ScraperWiki “What are you up to next weekend?” hackfest. I’ve been to quite a few OA hackfests before, but always as a host – this is the first time I’ve been to one with the intent to code.

I’ve been meaning to learn Ruby for a while, and this seemed like a good opportunity, so I decided to write a scraper to get some more data into PlanningAlerts.

PlanningAlerts is a project of the OpenAustralia Foundation, and aims to provide you with email alerts of development applications near you. Development applications are scraped from council websites, alerts are sent (via RSS or email) to people who have requested notifications about applications in that area; and the site gives you a simple way to send your feedback back to the council.

Henare from OpenAustralia has written a guide to writing scrapers using the excellent ScraperWiki. Utilising that, cadging from some of his existing scrapers, and asking a few noob questions along the way, I created a scraper that pulls in information about development applications from the Redfern/Waterloo Authority site.

The good parts of the code I’ve scraped together come from the doc or from other samples; the ugly parts are my own invention.

When I started, the provided sample code when I started working looked like this:

 if ScraperWiki.select("* from swdata where `council_reference`='#{record['council_reference']}'").empty?
  ScraperWiki.save_sqlite(['council_reference'], record)
  puts "Skipping already saved record " + record['council_reference']

This breaks on a couple of corner cases: if the swdata table doesn’t already exist, this will die. If you want to trample on your existing data, you have to manually comment out 4 lines of code. As well, it results in one select code per record – fine in small cases, but potentially a time-sink for larger cases.

While I was working on the code, the first problem was fixed by changing the first line to:

if (ScraperWiki.select("* from swdata where `council_reference`='#{record['council_reference']}'").empty? rescue true)

I expanded on that (and along the way taught myself a little bit about Ruby classes):

class Saver
  def initialize
    #If you want to trample on existing data, set this to true
    @trample_data = false
    @references = (ScraperWiki.select("council_reference from swdata") rescue nil)

  def save(record)
    if record
      if @trample_data || @references.nil? || @references.include?(record['council_reference'])
        ScraperWiki.save_sqlite(['council_reference'], record)
        puts "Skipping already saved record " + record['council_reference']

This will only do one lookup, and can then do in-memory comparisons to decide if the database needs to be updated for each record. This handles the case where swdata doesn’t exist yet; and if you want to trample on the data, just one word needs to be changed.

There’s some real ugliness in other parts of the code though.

* The entire page uses a tables-based layout, so to find the data I want I have to use page.search('table table table table table table table table tr')
* Both DAs on the site right now have the same data items in the same order; but rather than assume this is consistent, I have my parser iterating over the rows and using a nasty big case to interpret the contents of the second cell based on the value of the first cell in the same row.
* Each DA is on public exhibition from a specifc date to another specific date. The two dates are expressed in compact form: if the month/year values are the same for both dates, they’ll only be expressed once, on the second date. There’s another nasty case block to handle the different possible values here and extract useful dates.
* Every time the code encounters the start of a new record, it tries to save the old record. This leads to an attempt to save an empty record at the start of the parsing (hence the if record test in Saver.save); and a need to manually do One Last Save at the bottom of the code.

The complete code is available on ScraperWiki, and the data is already available on the PlanningAlerts site.