Planet LUV

February 03, 2012

etbeA Computer Conference on a Cruise Ship

After LCA [1] there was a discussion about possible locations for future conferences, most of the messages in the discussion were jokes or suggestions that don’t seriously apply to LCA. So I’ll add my suggestion for conferences other than LCA.

I’ve previously written generally about the issue of conferences at sea [2]. I don’t think that LCA would be suitable for running at sea because delegates have specific expectations for LCA which are quite different to what a cruise ship can offer, so I don’t think it makes sense to change LCA which is working well as it is. However there are lots of other possible computer conferences which could suite a cruise ship.

Price

Price is a major factor in running a conference, so obviously getting a cheap cruise price is very important. Here is a link for Vacations To Go which shows cruises from the Australia/NZ region which are of at least 5 nights and cost no more than $800 [3]. The cheapest entry at this moment is $609 for 5 nights and the cheapest on a per-night basis is an 8 night cruise for $779. The cheapest cruise currently on offer which allows a conference similar to LCA is 7 nights for $699. The prices should be regarded as rough approximations as some cruises have some mandatory extra fees and the prices are quoted in US dollars and subject to currency fluctuations. Note that those prices are for dual-occupancy cabins, this can be a “double” or a “twin” configuration. Some cruise ships have cabins for 3 or 4 people that are cheaper, but if you have a cabin for a single person then the rate is almost the same as for having two people.

The price for LCA accommodation including breakfast was $78 per night for a single room or $92 for a double room. Then lunch cost a minimum of $10 and for dinner there was $80 for the penguin dinner and probably about $20 for dinner every other night. That gave an overall cost for a 6 night stay (which is probably the minimum for someone who lives further away than Melbourne) in Ballarat of 6*78+6*10+5*20+80==$708. For a double room that would be 6*92+6*10+5*20+2*80==$872.

Even if we don’t count the fact that the Australian dollar is worth more than the US dollar it is obvious that on the basis of accommodation and food two people sharing a twin cabin on a cruise ship could pay LESS than two people in single rooms at the Ballarat University dorms! Now sharing a cabin isn’t so great, but the upside is that cruise ships have excellent food and lots of other entertainment options. I previously reviewed the food on the Dawn Princess and determined that it’s better than the food I would expect to get if I spent the cost of the cruise on dinner at land based restaurants [4].

I have been led to believe that the use of ship conference facilities is typically free for any organisation that books a sufficient number of cabins. So there’s no reason why the conference admission fees should be any greater than for a land based conference.

Advantages

A common problem with conferences is finding suitable dining options. Most people want to eat with other delegates but finding restaurants that have sufficient space and which are conveniently located is difficult at best and often impossible. On a cruise ship everything is within a short walk and the restaurants are big, usually be at least one restaurant will hold 500 people. The fact that you have to reserve times for the “Main Dining Room” makes it more difficult to miss one’s colleagues.

Everything on a cruise ship is luxurious.

There are lots of good locations for BoFs, pools, cafes, restaurants, and bars. Basically the ship is filled with comfortable places for groups of people to sit down.

A cruise ship typically has a main theater with more than 700 seats – more than large enough for most conferences I’ve attended. It’s common for the size of a conference to be limited to the size of the main theater that is used, for a cruise ship this will probably be less of a problem than for most other conference venues.

Disadvantages

The first disadvantage of running a computer conference on a cruise ship is the almost total lack of net access. The costs for net access are more expensive than most delegates will pay. Probably many delegates would check their email but it wouldn’t be practical for people to download source code, browse Wikipedia, and use the Internet in other ways related to the conference. It would be practical to have mirrors of Wikipedia, the source of several distributions of Linux, and other big things of common interest.

Another possible problem is the fact that you need to book it well in advance to avoid the risk of selling out (there is no option to stay at a different hotel). An established conference with financial backing could just pay to reserve the cabins. But when starting a new conference this could be a problem.

Alcohol is rather expensive on cruise ships. But getting really drunk isn’t compatible with learning about computer science anyway.

Finally the requirement to have at least two people in a cabin for good rates is a serious issue. The upside of this is that people travelling with their SO would find that it works really well (regardless of whether the SO is a delegate or not). But anyone who’s not travelling with their SO and doesn’t want to share with a friend will have to either pay a lot more or skip the conference.

Conclusion

I think that there is a good potential for running a computer conference around the Australia/NZ region on a cruise ship. It won’t be overly expensive for delegates and the facilities that are provided are good. The trade-off for solitary travelers of having to share a cabin (or pay more) for getting much better food and leisure facilities will be appreciated by many people (and admittedly hated by some).

Some people won’t appreciate the option of swimming, but even if you consider the cruise ship to be just a floating collection of restaurants and cabins it’s still fairly luxurious and beats the heck out of most conferences I’ve attended.

If you are considering the possibility of running a conference then I think that a cruise ship should be considered. VacationsToGo.com is the best site I’ve found for cheap cruise prices, their large group department has experience handling groups of more than 500 people so I think that anyone who wants to run a new conference in/around Australia should give them a call.

Also cruise ships travel around the world, so the same thing can be done in other countries but at a different time of year. The economic factors will differ by country though. Cruise ships probably aren’t a cheap option for a conference in some other countries.

Related posts:

  1. My First Cruise A few weeks ago I went on my first cruise,...
  2. Cruises It seems that in theory cruises can make for quite...
  3. Creating a Micro Conference The TEDxVolcano The TED conference franchise has been extended to...

January 29, 2012

Chris SamuelTwitter Weekly Updates for 2012-01-29

  • Exhibition of my black+white photos at Cafe Have Ya Bean, Upwey http://t.co/rO5IMuHr mostly from this set http://t.co/7QUS5oIL #
  • How do I check usage of equal cost routes to a destination (say for load balancing across multiple 10G-IB routers) ? #
  • Forgot to say – that question about equal cost routing is about #Linux #HPC compute node (RHEL5.7/CentOS5.7 FWIW) #
  • The #hwloc developers are trying to find people to test 1.4rc2 on #AIX can anyone help them out? http://t.co/RvCLbA3p #
  • RT @r_netsec: Blu-ray encryption keys leaked, enable VLC playback [xpost from /r/technology] – http://t.co/ikqThYIT #
  • US Defence Secretary on Iran – Sunday 22nd Jan "Are they trying to develop a nuclear weapon? No." http://t.co/AaEtgQKE #
  • 4 trains cancelled this evening already on the Belgrave line – what's going on @metrotrains ? #
  • Vendor replaced motherboard with dead IPMI controller. Now node boots, but only sees half the RAM. Try again Friday.. #
  • #HHGTTG fans in UK – this is for you – http://t.co/wu4sxCwO – radio show cast perform show live on stage! #hitchhikers #
  • Today is my 4th anniversary of becoming an Australian citizen. #
  • Attempting to install Android SDK on Arch Linux via AUR and ABS. Not as painful as it sounds! :-) #
  • Spent part of yesterday at the Survival Day celebration at Belgrave – lovely atmosphere! #WeNeedFirstAustraliansDay #
  • #Symantec #pcAnywhere remote exploit only fixed when stolen source published, 6 years after theft, vulnerable all that time. #
  • Info about #pcAnywhere remote exploit from #Symantec http://t.co/FhLEszgh #
  • NB: the duck farms quarantined in Melbourne for LPAI do *NOT* have H5N1.. #
  • OK Android wizards, how do I find out who does OTA updates for 4.0 build yakjzus? @google don't respond to queries. :-( #
  • Person here http://t.co/UMAuGSOU told by @Samsung + @Google OTA updates for yakjzus Galaxy Nexus not up to them /cc @MobiCity #
  • RIP Freddy the Fighting Fish, after a short illness. #
  • Power gone out here, slowly cooking. :-) #

Powered by Twitter Tools

This item originally posted here:

Twitter Weekly Updates for 2012-01-29

Chris SamuelTwitter Weekly Updates for 2012-01-29

  • Exhibition of my black+white photos at Cafe Have Ya Bean, Upwey http://t.co/rO5IMuHr mostly from this set http://t.co/7QUS5oIL #
  • How do I check usage of equal cost routes to a destination (say for load balancing across multiple 10G-IB routers) ? #
  • Forgot to say – that question about equal cost routing is about #Linux #HPC compute node (RHEL5.7/CentOS5.7 FWIW) #
  • The #hwloc developers are trying to find people to test 1.4rc2 on #AIX can anyone help them out? http://t.co/RvCLbA3p #
  • RT @r_netsec: Blu-ray encryption keys leaked, enable VLC playback [xpost from /r/technology] – http://t.co/ikqThYIT #
  • US Defence Secretary on Iran – Sunday 22nd Jan "Are they trying to develop a nuclear weapon? No." http://t.co/AaEtgQKE #
  • 4 trains cancelled this evening already on the Belgrave line – what's going on @metrotrains ? #
  • Vendor replaced motherboard with dead IPMI controller. Now node boots, but only sees half the RAM. Try again Friday.. #
  • #HHGTTG fans in UK – this is for you – http://t.co/wu4sxCwO – radio show cast perform show live on stage! #hitchhikers #
  • Today is my 4th anniversary of becoming an Australian citizen. #
  • Attempting to install Android SDK on Arch Linux via AUR and ABS. Not as painful as it sounds! :-) #
  • Spent part of yesterday at the Survival Day celebration at Belgrave – lovely atmosphere! #WeNeedFirstAustraliansDay #
  • #Symantec #pcAnywhere remote exploit only fixed when stolen source published, 6 years after theft, vulnerable all that time. #
  • Info about #pcAnywhere remote exploit from #Symantec http://t.co/FhLEszgh #
  • NB: the duck farms quarantined in Melbourne for LPAI do *NOT* have H5N1.. #
  • OK Android wizards, how do I find out who does OTA updates for 4.0 build yakjzus? @google don't respond to queries. :-( #
  • Person here http://t.co/UMAuGSOU told by @Samsung + @Google OTA updates for yakjzus Galaxy Nexus not up to them /cc @MobiCity #
  • RIP Freddy the Fighting Fish, after a short illness. #
  • Power gone out here, slowly cooking. :-) #

Powered by Twitter Tools

This item originally posted here:

Twitter Weekly Updates for 2012-01-29

January 26, 2012

etbeLinks January 2012

Cops in Tennessee routinely steal cash from citizens [1]. They are ordered to do so and in some cases their salary is paid from the cash that they take. So they have a good reason to imagine that any large sum of money is drug money and take it.

David Frum wrote an insightful article for NY Mag about the problems with the US Republican Party [2].

TreeHugger.com has an interesting article about eco-friendly features on some modern cruise ships [3].

Dan Walsh describes how to get the RSA SecureID PAM module working on a SE Linux system [4]. It’s interesting that RSA was telling everyone to turn off SE Linux and shipping a program that was falsely marked as needing an executable stack and which uses netstat instead of /dev/urandom for entropy. Really the only way RSA could do worse could be to fall victim to an Advanced Persistent Attack… :-#

The Long Now has an interesting summary of a presentation about archive.org [5]. I never realised the range of things that archive.org stores, I will have to explore that if I find some spare time!

Jonah Lehrer wrote a detailed and informative article about the way that American high school students receive head injuries playing football[6]. He suggests that it might eventually be the end of the game as we know it.

François Marier wrote an informative article about optimising PNG files [7], optipng is apparently the best option at the moment but it doesn’t do everything you might want.

Helen Keeble wrote an interesting review of Twilight [8]. The most noteworthy thing about it IMHO is that she tries to understand teenage girls who like the books and movies. Trying to understand young people is quite rare.

Jon Masters wrote a critique of the concept of citizen journalism and described how he has two subscriptions to the NYT as a way of donating to support quality journalism [9]. The only comment on his post indicates a desire for biased news (such as Fox) which shows the reason why most US media is failing at journalism.

Luis von Ahn gave an interesting TED talk about crowd-sourced translation [10]. He starts by describing CAPTCHAs and the way that his company ReCAPTCHA provides the CAPTCHA service while also using people’s time to digitise books. Then he describes his online translation service and language education system DuoLingo which allows people to learn a second language for free while translating text between languages [11]. One of the benefits of this is that people don’t have to pay to learn a new language and thus poor people can learn other languages – great for people in developing countries that want to learn first-world languages! DuoLingo is in a beta phase at the moment but they are taking some volunteers.

Cory Doctorow wrote an insightful article for the Publishers Weekly titles “Copyrights vs Human Rights” [12] which is primarily about SOPA.

Naomi Wolf wrote an insightful article for The Guardian about the “Occupy” movement, among other things the highest levels of the US government are using the DHS as part of the crackdown [13]. Naomi’s claim is that the right-wing and government attacks on the Occupy movement are due to the fact that they want to reform the political process and prevent corruption.

John Bohannon gave an interesting and entertaining TED talk about using dance as part of a presentation [14]. He gave an example of using dancerts to illustrate some concepts related to physics and then spoke about the waste of PowerPoint.

Joe Sabia gave an amusing and inspiring TED talk about the technology of storytelling [15]. He gave the presentation with live actions on his iPad to match his words, a difficult task to perform successfully.

Thomas Koch wrote an informative post about some of the issues related to binary distribution of software [16]. I think the problem is evenm worse than Thomas describes.

Related posts:

  1. Links January 2011 Halla Tomasdottir gave an interesting TED talk about her financial...
  2. Links January 2010 Magnus Larsson gave an interesting TED talk about using bacteria...
  3. Links January 2009 Jennifer 8 Lee gave an interesting TED talk about the...

January 25, 2012

etbeSE Linux Status in Debian 2012-01

Since my last SE Linux in Debian status report [1] there have been some significant changes.

Policy

Last year I reported that the policy wasn’t very usable, on the 18th of January I uploaded version 2:2.20110726-2 of the policy packages that fixes many bugs. The policy should now be usable by most people for desktop operations and as a server. Part of the delay was that I wanted to include support for systemd, but as my work on systemd proceeded slowly and others didn’t contribute policy I could use I gave up and just released it. Systemd is still a priority for me and I plan to use it on all my systems when Wheezy is released.

Kernel

Some time between Debian kernel 3.0.0-2 and 3.1.0-1 support for an upstream change to the security module configuration was incorporated. Instead of using selinux=1 on the kernel command line to enable SE Linux support the kernel option is security=selinux. This change allows people to boot with security=tomoyo or security=apparmor if they wish. No support for Smack though.

As the kernel silently ignores command line parameters that it doesn’t understand so there is no harm in having both selinux=1 and security=selinux on both older and newer kernels. So version 0.5.0 of selinux-basics now adds both kernel command-line options to GRUB configuration when selinux-activate is run. Also when the package is upgraded it will search for selinux=1 in the GRUB configuration and if it’s there it will add security=selinux. This will give users the functionality that they expect, systems which have SE Linux activated will keep running SE Linux after a kernel upgrade or downgrade! Prior to updating selinux-basics systems running Debian/Unstable won’t work with SE Linux.

As an aside the postinst file for selinux-basics was last changed in 2006 (thanks Erich Schubert). This package is part of the new design of SE Linux in Debian and some bits of it haven’t needed to be changed for 6 years! SE Linux isn’t a new thing, it’s been in production for a long time.

Audit

While the audit daemon isn’t strictly a part of SE Linux (each can be used without the other) it seems that most of the time they are used together (in Debian at least). I have prepared a NMU of the new upstream version of audit and uploaded it to delayed/7. I want to get everything related to SE Linux up to date or at least with comparable versions to Fedora. Also I sent some of the Debian patches for the auditd upstream which should reduce the maintenance effort in future.

Libraries

There have been some NMUs of libraries that are part of SE Linux. Due to a combination of having confidence in the people doing the NMUs and not having much spare time I have let them go through without review. I’m sure that I will notice soon enough if they don’t work, my test systems exercise enough SE Linux functionality that it would be difficult to break things without me noticing.

Play Machine

I am now preparing a new SE Linux “Play Machine” running Debian/Unstable. I wore my Play Machine shirt at LCA so I’ve got to get one going again soon. This is a good exercise of the strict features of SE Linux policy, I’ve found some bugs which need to be fixed. Running Play Machines really helps improve the overall quality of SE Linux.

Related posts:

  1. Status of SE Linux in Debian LCA 2009 This morning I gave a talk at the Security mini-conf...
  2. SE Linux in Debian I have now got a Debian Xen domU running the...
  3. Debian SE Linux Status At the moment I’ve got more time to work on...

Stewart SmithTextSecure – secure SMS for Android

So… having secure SMS really isn’t hard. Onec upon a time you may have been forgiven to think that your SMS messages weren’t recorded forever by telecommunications companies or various government agencies, but those times have long passed. At the very least you should be concerned about somebody getting hold of your phone and going through all your SMSs (phones no longer just store 20 messages).

TextSecure (Free and Open Source Software up on github) does both local encryption (messages are encrypted on your phone) and over the wire encryption. That’s right kids – you can send encrypted text messages to each other.

It’s a drop-in replacement for the built in Android text messages application, so it all “just works”.

Go install it now.

This is the app that Jacob Appelbaum mentioned in is Keynote at lca2012.

January 24, 2012

Chris SamuelA Week or so with the Samsung Galaxy Nexus

After a couple of good years with my Nokia N900 I’ve come to the sad conclusion that there’s no future for that platform due to the combined actions of Nokia and Intel – Nokia for dumping Linux and going with Windows Mobile for their smart phones after getting a new CEO (ex-Microsoft) and then Intel through dumping Meego and setting up a partnership with Samsung for yet another mobile Linux platform called Tizen (which at least went for the code first, hype second path, unlike Meego). Intel are now on their third mobile Linux project as there was their Moblin project which was merged with Nokia’s Maemo to form Meego (announced less than 2 years ago) so they have form here as a serial abandoner.

Looking at what is left in the mobile space it was really a no-brainer as neither Windows Mobile nor Apple’s iOS appealed at all, so it had to be an Android phone. The timing was pretty good as Samsung and Google had just started shipping their jointly designed Galaxy Nexus with Android 4 (aka Ice Cream Sandwich or ICS). It has the advantage of apparently being a phone recommended for the AOSP (Android Open Source Program) should I feel the need once my warranty expires – though I can’t find a reference to that now! I ordered an unlocked Galaxy Nexus with 2 year warranty from Mobicity as I didn’t fancy the rubbish that carriers tend to put onto their phones, nor get handcuffed into a contract I didn’t want. As an added bonus Mobicity let you pick from 3 optional accessories for free – I picked the screen protector (the other were either a charger or a bluetooth headset from memory).

As an amusing aside I did try and see if Dick Smith Electronics would price match with Kogan for the Galaxy Nexus as Kogan was far cheaper and DSE was only selling them online, but with a manufacturers warranty (unlike Mobicity or Kogan). Unfortunately DSE declined to do so on the grounds that Kogan didn’t have a physical retail outlet which was a bit rich given that neither does DSE for these phones. But then I found out they are now owned by Woolworths and so I didn’t fancy supporting the largest owners of poker machines in Australia.

Despite the best efforts of UPS (who said it would take 6 days to cross Melbourne having taken 24 hours from Hong Kong – it actually arrived the following morning) I received it intact and on time.

Samsung / Google Galaxy Nexus

I’ve now been playing with it, er, using it in anger for over a week now and so far I’m very happy. I’d have to say the best description of the overall experience is “smooth”. Android 4 seems light years ahead of Android 2.3.3 on my wifes Huaewei Sonic, though part of that will be the fact that it’s just a much more capable phone with a larger screen and much more powerful processor.

Good bits:

  • Auto-language select – it started up in Chinese characters but before I could really wonder how I’d fix that it detected it had an Australian SIM in it and autoconfigured the locale to match.
  • No extra cruft – I’ve not spotted any “extras” from Samsung on the phone – the Market is the standard Android Market, etc.
  • Good size screen – the phone feels much smaller in the pocket than my old N900 due to its narrowness despite it having a much wider screen.
  • Android Market – heaps of apps, though the usual criticism of it not being easy to search for open source applications applies here.
  • Camera – it’s “only” 5 megapixels, but it’s still pretty good (though I’ve not yet figured out how to turn the flash off).
  • NFC – OK, a little bit of a toy at the moment, but there are a couple of apps that will read it and confirm that the reason my Myki and Uni ID card interfere is that they’re the same type of technology and so interfere with each other. As do my credit card and my bank card (same tech again).
  • Compass – my N900 had GPS and accelerometers (as does the Galaxy Nexus of course) but the compass allows neat things like Google Sky where you can just point your phone at the sky and have it show you a labelled view of planets stars and constellations.
  • IPv6 works on Wifi – I know people say IPv6 has worked on Wifi since Android 2.2, but it certainly doesn’t on my wifes Android 2.3 phone. But the Galaxy Nexus seems quite happy on my home network with native dual stack IPv6 courtesy of Internode.

Of course nothing is ever perfect, so here’s my feelings on the bad bits:

  • No real keyboard – I really miss the N900′s physical keyboard, it made typing easy. The on-screen keyboard that Android has is good, and quite usable for SMS, Twitter, etc, but for things like the Connectbot SSH client you can’t beat a real keyboard
  • No NTP synchronisation possible – you can get root on the phone (and void your warranty) but this *really* shouldn’t be necessary!
  • NITZ sucks – whilst it gets the time right the timezone is out by an hour. Probably a carrier issue but I don’t think phones should be relying on it. Had to set it by hand to fix it up.
  • Short notification sounds – a minor nit but the default notification sounds that are used for things like SMS, etc, are really short and quite easy to miss.
  • Not entirely open source – whilst the N900 wasn’t either it does seem to have been more open than Android, and it didn’t try and avoid GPL code at all costs like Android does.
  • No update to Android 4.0.2 available (yet) – so far it appears that Samsung haven’t pushed an Android 4.0.2 update to the region my phone was intended for – though other Galaxy Nexus owners around the world have reported getting updates at other times (including someone at Mobicity where I bought it). I suspect this is just an organisational delay and nothing more serious, but it is annoying. If it wasn’t for the warranty issue I’d consider reflashing the phone with the stock Google firmware for the Galaxy Nexus and pick the updates up directly from them in future.

To finish it off here are three images taken with the camera in the Samsung Galaxy Nexus (as I said I was happy with it), the first one was used on the weather slot as a background by the ABC News people last week!

Melbourne summer morning Swanston St Skyline The Light Side and the Dark Side

This item originally posted here:

A Week or so with the Samsung Galaxy Nexus

January 23, 2012

Stewart SmithMySQL and PostgreSQL Cloud Offerings – linux.conf.au 2012 miniconf talk by myself and Selena

Selena and I gave a talk on the various issues of running databases “in the cloud” at the recent linux.conf.au in Ballarat. Video is up, embedded below:

<iframe frameborder="0" height="315" src="https://www.youtube-nocookie.com/embed/UFTp0zA4Mx8" width="420"></iframe>

January 22, 2012

Chris SamuelTwitter Weekly Updates for 2012-01-22

  • Melbourne summer morning – grass blowing in the wind at Lincoln Square in Carlton, on the way to work at VLSCI. http://t.co/fgC13ZcF #
  • Why can't Android 2.3.3 phone see the CFA FireReady app my Galaxy Nexus can? Link from CFA site gives not found error too #
  • Fact for the day: Papua New Guinea has 1 in 7 of the planets languages (@newscientist, 10th Dec 2011) #
  • Why doesn't the IBM XL C++ compiler for BlueGene/P obey the CPLUS_INCLUDE_PATH environment variable? It's meant to.. #hpc #
  • "Do not edit below this line" – I laugh in the face of your pitiful warning Makefile! (Just needed to change -O3 to -O2) #
  • anyone know if OVCC (Open Visual Communications Consortium – which @AARNet just joined) is pushing real open standards? #
  • Or is OVCC just another vendor club pushing encumbered "open" standards? Their website is content free.. :-( #
  • Rumour is that #VLSCI will be on a segment on the @abc730 program tonight.. #
  • Swanston St Skyline http://t.co/WA92agMK #
  • #Linux kernel 3.3-rc1 now tagged in git.. #
  • A shame that the @CFA_Updates FIreReady app for Android crashes whenever it gets a push notification /cc @naturallybeing #
  • Interesting @abcnews story about crackers using owned accounts to sell shares at high price to others http://t.co/siaAYWvV #
  • Apparently the @abcnews weather people used this photo yesterday – shame I missed it! :-) http://t.co/fgC13ZcF #
  • RT @ScienceCalendar Jan. 22, 1561-Birthday of philosopher Francis Bacon, formulated the principles of the scientific method. #
  • At Fed Square waiting for @mikekuiper to arrive to go see Star Voyager at ACMI #
  • The Light Side and the Dark Side http://t.co/UotAzd2l #
  • Is it just me or is Google's AGPS system being particularly random this arvo? Keep popping up in Europe! #
  • Played Quake at ACMI – did pretty well after not playing for many years + without keyboard config – fragged @mikekuiper #

Powered by Twitter Tools

This item originally posted here:

Twitter Weekly Updates for 2012-01-22

January 18, 2012

Tim ConnorsAn open letter to Peter Ryan regarding police treatment of cyclists

Hon Peter Ryan,

I am writing because I am concerned at the number of recent incidents where a driver has collided with a cyclist, and the case hasn't been followed up by the police. Such incidents and the publicity surrounding them does nothing to encourage road users to obey the law when they realise that they will most likely get away with not doing so.

A week ago in Ballarat, a 13 year old boy was hit by a car, and the police said the boy had the right of way[1]. Despite this, the article linked states that the police will not charge the driver. This, despite her having broken Australian Road Rule 67 to 72, 84 or 86 depending on circumstances at the stated intersection, or perhaps 140 to 144 if travelling in the same direction. She was likely negligent in allowing the collision to happen in the first place, which, by my understanding, is a criminal offence, especially since there was serious injury involved. If she used the usual excuse that "she didn't see him", then that's an admission of guilt in failing to obey ARR 297 - driver having proper control of vehicle.

Also recently, there was a highly publicised case where Shane Warne had an altercation with a bicycle rider. In that case, the fact that Warne hit the cyclist from behind (ARR 126) after overtaking unsafely (ARR 144) is undisputed[2]. The fact that details were not exchanged following the collision is also undisputed (ARR 287). It is also well established that Warne was stopped unnecessarily in a bike lane (ARR 125; 153)[3]. And yet the police will not investigate[4].

Going back a number of years, I also have not had good experiences getting the police to follow up on cases. In my most recent case (11/10/2005; I do not know the case number sorry, all I know was that I was attended to by Angove & Auchterlonie from Boroondara police), the driver also failed to obey ARR 287 (as well as a slew of other offences, such as ARR 46 and 148 - changing lanes without indicating sufficiently and without due care). The police refused to prosecute the driver, and also would not hand over the driver's details or insurer details, based on some misguided privacy policy, asking me instead to fork out for a freedom of information request. Given that I was a broke student at the time, this was not a feasible thing to do and I never did receive compensation from the driver for damage to my bicycle, clothes, and large out of pocket expenses for travel to medical care for several years that the TAC didn't cover. The police also displayed a lack of knowledge of the law, initially thinking that I had broken ARR 141.

I can't imagine why the police aren't investigating these cases, because in each case, clear evidence is at hand, and not disputed. The identities of all parties are known. It should be an open and shut case. Without the police making charges, the rider in each case will have a much harder time claiming from the driver's insurance (if the boy was not admitted overnight, his TAC excess will be an enormous burden to his family). The driver in each case will not be discouraged from driving in a similar fashion next time. And other drivers also know that they will most likely get away with any offences they commit if a bicycle is involved. This is a perverse reversal of the situation that we should have, in which drivers should be encouraged to take due diligence around cyclists. It almost seems that the police always assume a cyclist is at fault unless proven otherwise in Australia, whereas most other countries with an established bicycling culture assume that the driver is at fault unless proven otherwise as they hold the burden of driving the more deadly vehicle and so should be required to take due care.

If the laws weren't adequate enough to prosecute to the driver in the above cases, has your department been contacted to update the laws, and what is being done? Keep in mind that cyclists have no protection other than by the law, and as the more vulnerable road user, the laws should focus on their safety and ensuring that transgressions are dealt with effectively.

Can you please encourage the police in each of these cases to follow them up to the full extent that the law currently allows.


Sincerely,


[1]
http://www.theage.com.au/victoria/teen-cyclist-struck-by-car-20120110-1ps85.html

[2]
http://theage.drive.com.au/motor-news/warnes-tirade-triggers-bike-rego-call-20120118-1q5k0.html

[3]
http://www.cyclingtipsblog.com/2012/01/cyclist-versus-warnie-the-cyclists-story/

[4]
http://www.heraldsun.com.au/news/more-news/warne-blasts-cyclists-on-twittershane-warne-clashes-with-cyclist-on-way-home-from-training-session/story-fn7x8me2-1226246735306

January 14, 2012

Tim ConnorsBreaking windows

Another letter in The Age today. Unedited text below:


Ian Porter (Without car manufacturing, we are on the road to ruin, The Age, 13 Jan) believes that the government needs to keep throwing money at the car industry in order to support other industry in Australia. I'm surprised as an industry analyst, he hasn't heard of the broken window fallacy.

Throwing good money after a bad unsustainable industry that can't adapt is just a waste. It's exactly identical to sending soldiers to dig holes only to fill them back up again just to keep them employed and off the streets. The money could be better spent on doing useful things that will remain useful into the future. Yes, paying people to break windows and then paying the glazier to repair them will keep people employed, but couldn't the glazier be better employed building things that then keep other people employed into the future?

Why don't we do something useful with the money instead? Like built modern intra- and inter-city rail infrastructure? This won't become stranded assets when cheap oil becomes unavailable. We won't be left with vast tracts of useless motorways - we will continue to be able to use the rail infrastructure well past these boom times.

January 08, 2012

etbeMy First Cruise

A few weeks ago I went on my first cruise, from Sydney to Melbourne on the Dawn Princess. VacationsToGo.com (a discount cruise/resort web site) has a review of the Dawn Princess [1], they give it 4 stars out of a possible 6. The 6 star ships seem to have discount rates in excess of $500 per day per person, much more than I would pay.

The per-person rate is based on two people sharing a cabin, it seems that most cabins can be configured as a double bed or twin singles. If there is only one person in a cabin then they pay almost double the normal rate. It seems that most cruise ships have some support for cabins with more than two people (at a discount rate), but the cabins which support that apparently sell out early and don’t seem to be available when booking a cheap last-minute deal over the Internet. So if you want a cheap cruise then you need to have an even number of people in your party.

The cruise I took was two nights and cost $238 per person, it was advertised at something like $220 but then there are extra fees when you book (which seems to be the standard practice).

The Value of Cruises

To book a hotel room that is reasonably comfortable (4 star) in Melbourne or Sydney you need to spend more than $100 per night for a two person room if using Wotif.com. The list price of a 4 star hotel room for two people in a central city area can be well over $300 per night. So the cost for a cruise is in the range of city hotel prices.

The Main Dining Room (MDR) has a quality of food and service that compares well with city restaurants. The food and service in the Dawn Princess MDR wasn’t quite as good as Walter’s Wine Bar (one of my favorite restaurants). But Walter’s costs about $90 for a four course meal. The Dawn Princess MDR has a standard 5 course meal (with a small number of options for each course) and for no extra charge you can order extra serves. When you make it a 7 course meal the value increases. I really doubt that I could find any restaurant in Melbourne or Sydney that would serve a comparable meal for $119.

You could consider a cruise to be either paying for accommodation and getting everything else for free or to be paying for fine dining in the evening and getting everything else for free. Getting both for the price of one (along with entertainment etc) is a great deal!

I can recommend a cruise as a good holiday which is rather cheap if you do it right. That is if you want to spend lots of time swimming and eating quality food.

How Cruise Companies Make Money

There are economies of scale in running a restaurant, so having the MDR packed every night makes it a much more economic operation than a typical restaurant which has quiet nights. But the expenses in providing the services (which involves a crew that is usually almost half the number of passengers) are considerable. Paying $119 per night might cover half the wages of an average crew member but not much more.

The casino is one way that the cruise companies make money. I can understand that someone taking a luxury vacation might feel inclined to play blackjack or something else that seems sophisticated. But playing poker machines on a cruise ship is rather sad – not that I’m complaining, I’m happy for other people to subsidise my holidays!

Alcohol is rather expensive on board. Some cruise companies allow each passenger to take one bottle of wine and some passengers try to smuggle liquor on board. On the forums some passengers report that they budget to spend $1000 per week on alcohol! If I wanted a holiday that involved drinking that much I’d book a hotel at the beach, mix up a thermos full of a good cocktail in my hotel room, and then take my own deck-chair to the beach.

It seems that the cruise companies specialise in extracting extra money from passengers (I don’t think that my experience with the Dawn Princess is unusual in any way). Possibly the people who pay $1000 per night or more for a cruise don’t get the nickel-and-dime treatment, but for affordable cruises I think it’s standard. You have to be in the habit of asking the price whenever something is offered and be aware of social pressure to spend money.

When I boarded the Dawn Princess there was a queue, which I joined as everyone did. It turned out that the queue was to get a lanyard for holding the key-card (which opens the cabin door and is used for payment). After giving me the lanyard they then told me that it cost $7.95 – so I gave it back. Next time I’ll take a lanyard from some computer conference and use it to hold the key-card, it’s handy to have a lanyard but I don’t want to pay $7.95.

Finally some things are free at some times but not at others, fruit juice is free at the breakfast buffet but expensive at the lunch buffet. Coffee at the MDR is expensive but it was being served for free at a cafe on deck.

How to have a Cheap Cruise

VacationsToGo.com is the best discount cruise site I’ve found so far [2]. Unfortunately they don’t support searching on price, average daily price, or on a customised number of days (I can search for 7 days but not 7 or less). For one of the cheaper vessels it seems that anything less than $120 per night is a good deal and there are occasional deals as low as $70 per night.

Princess cruises allows each passenger to bring one bottle of wine on board. If you drink that in your cabin (to avoid corkage fees) then that can save some money on drinks. RumRunnerFlasks.com sells plastic vessels for smuggling liquor on board cruise ships [3]. I wouldn’t use one myself but many travelers recommend them highly.

Chocolate and other snack foods are quite expensive on board and there are no restrictions on bringing your own, so the cheap options are to bring your own snack food or to snack from the buffet (which is usually open 24*7). Non-alcoholic drinks can be expensive but you can bring your own and use the fridge in your cabin to store it, but you have to bring cans or pressurised bottles so it doesn’t look like you are smuggling liquor on board.

Generally try not to pay for anything on board, there’s enough free stuff if you make good choices.

Princess offers free on-board credit (money for buying various stuff on-board) for any cruise that you book while on a cruise. The OBC starts at $25 per person and goes as high as $150 per person depending on how expensive the cruise is. Generally booking cruises while on-board is a bad idea as you can’t do Internet searches. But as Princess apparently doesn’t allow people outside the US to book through a travel agent and as they only require a refundable deposit that is not specific to any particular cruise there seems no down-side. In retrospect I should have given them a $200 on the off chance that I’ll book another cruise with them some time in the next four years.

Princess provide a book of discount vouchers in every cabin, mostly this is a guide to what is most profitable for them – and thus what you should avoid if you want a cheap holiday. But there are some things that could be useful such as a free thermos cup with any cup of coffee – if you buy coffee then you might as well get the free cup. Also they have some free contests that might be worth entering.

Entertainment

It’s standard practice to have theatrical shows on board, some sort of musical is standard and common options include a magic show and comedy (it really depends on which cruise you take). On the Dawn Princess the second seating for dinner started at 8PM (the time apparently varies depending on the cruise schedule) which was the same time as the first show of the evening. I get the impression that this sort of schedule is common so if you want to see two shows in one night then you need to have the early seating for dinner. The cruise that I took lasted two nights and had two shows (a singing/dancing show and a magic show), so it was possible to have the late seating for dinner and still see all the main entertainment – unless you wanted to see one show twice.

From reading the CruiseCritic.com forum [4] I get the impression that the first seating for dinner is the most popular. On some cruises it’s easy to switch from first to second seating but not always possible to switch from second to first. Therefore the best strategy seems to be to book the first seating.

Things to do Before Booking a Cruise

Read the CruiseCritic.com forum for information about almost everything.

Compare prices for a wide variety of cruises to get a feel for what the best deals are. While $100 per night is a great deal for the type of cruise that interests me and is in my region it may not be a good match for the cruises that interest you.

Read overview summaries of cruise lines that operate in your area. Some cruise lines cater for particular age groups and interests and are thus unappealing to some people – EG anyone who doesn’t have children probably won’t be interested in Disney cruises.

Read reviews of the ships, there is usually a great variation between different ships run by one line. One factor is when the ships have been upgraded with recently developed luxury features.

Determine what things need to be booked in advance. Some entertainment options on board support a limited number of people and get booked out early. For example if you want to use the VR golf simulator on the Dawn Princess you should probably check in early and make a reservation as soon as you are on board. The forums are good for determining what needs to be booked early.

Also see my post about booking a cruise and some general discussion of cruise related things [5].

Related posts:

  1. Cruises It seems that in theory cruises can make for quite...
  2. Combat Wasps One of the many interesting ideas in Peter F. Hamilton’s...
  3. Victoria Hotel Melbourne I have just stayed at the Victoria Hotel Melbourne. I...

January 05, 2012

Julien GoodwinThe "Qantas Feedback Panel"

I was invited by Qantas to join their feedback panel, and despite recent service being fairly unimpressive (Given that I flew one one of the very last flights before the grounding, and two the day the took to the air again that's not surprising) I decided to give it a try.

After my flight to Melbourne for Christmas I got a link to a survey, in it they asked a few questions about service on the ground and in the air. However instead of using text boxes they decided that a 1-10 value was sufficient.

They also rate limit the survey to (based on a forum posting somewhere) not more often then once every 10 days. This means that after my flight back to Sydney, in which many more things went wrong, and right, then normal there was no way to let them know through this channel.

I think both of these are wrong, if I was doing it I would ask five questions (based on their existing questions):
  1. What, if anything, impressed you with your experience when booking, and on the ground?
  2. What, if anything, disappointed you with your experience when booking, and on the ground?
  3. What, if anything, impressed you with your experience in the air?
  4. What, if anything, disappointed you with your experience in the air?
  5. Any other feedback about this flight?


And in addition to mailing (do it as one mail for all flights at the end of a round trip if it's for a week or less) make the link available as a "give feedback on a recent flight" link for all Frequent Flyers. Perhaps give some nominal bonus (miles/status credits) to people who give feedback that Qantas are able to take action on.

Yes using free text requires more time to review, but it's needed if they really want feedback. Even one person should easily be able to handle 100 requests that need to be examined and passed on for action, or many times that for ones that say nothing specific (or simple things like "the baggage service in SYD is very slow") per day.

January 03, 2012

Stewart SmithCold Brew Coffee Experiment #3

So, I did what I said I’d do – 1/3rd cup ground coffee + 2 cups water, overnight (about 18-20hrs) in fridge. Tasted really nice.

I think I’ve found the combination that works when I’m just making one.

Filtering out the grounds is certainly annoying… I guess this is what the Toddy is meant to solve…. because what I most certainly need is yet another way to make coffee.

January 02, 2012

Stewart SmithCold Brew Coffee Experiment #2

Two things varied from my previous attempt:

  1. I kept it in the fridge instead of on the bench (it’s been really hot in Melbourne and the fridge is closer to “normal” temperature than outside)
  2. doubled the amount of water

The difference? It’s certainly cooler, and a weaker flavour. That being said,  I think you get more of the subtleties of the flavour rather than being a bit thwacked with it. I found my last experiment nice, but perhaps a bit sharp. This batch tastes very smooth and refreshing.

This batch also seemed to be less gritty, with me seeing fewer grounds in the filter. I wonder if that’s due to fridge, variance of grind or water quantity.

I think for my next go I’m going to try same amount of coffee, in the fridge, but 2 cups of water.

December 07, 2011

Daniel Stonewhy you don't actually want dpi

Inspired by a discussion in #wayland today, here are snippets from three people explaining why X declares its DPI as 96, and why a single 'DPI' sledgehammer isn't actually what basically anyone<super>*</super> wants. Please read them. Thanks.

Adam Jackson:

I am clearly going to have to explain this one more time, forever. Let's see if I can't write it authoritatively once and simply answer with a URL from here out.

Matthew Garrett:

But what about the single monitor case? Let's go back to your Vaio. It's got a high DPI screen, so let's adjust to that. Now you're happy. Right up until you plug in an external monitor and now when you run any applications on the external display your fonts are twice the size they should be. WOOHOO GO TEAM of course that won't make us look like amateurs at all. So you need another heuristic to handle that, and of course "heuristic" is an ancient african word meaning "maybe bonghits will make this problem more tractable".

Federico Mena-Quintero:

People who know a bit of typography may know a few factoids:
- Printed books generally use fonts which can be from about 9 to about 12 points in size.
- A point is roughly 1/72 of an inch. For people in civilized countries, this translates to "I have no idea what the fuck a quarter pounder is".

*: Yes, I know you need to have actual point equivalence, and you've had all your displays and printer colour-calibrated for the past ten years too. You're doing all this in the GIMP or some other kind of design tool, so please yell at them to use the display size information that XRandR gives you right now, already, today.

December 03, 2011

Julien GoodwinThe obliagatory 30000' post

I'm on a plane cruising over the pacific ocean, so it must be time for another instalment of "Julien writes a blog post about a Cory Doctorow book while sitting in (premium) economy on-board a Qantas jet flying to/from the US".

First of all, the Qantas A380.

It's an interesting aircraft, unlike the 747 it lacks that massive sense of power on a fully loaded take-off roll. Overall it's a nice plane, but I still hold a torch for the 747. It is quieter which is nice as I somehow lost my custom earplugs. Premium economy is about the same as in the 747, except it's upstairs which ads to the privacy (despite requesting upgrades to business on both outbound and return I failed to win the upgrade lottery although I did luck out with an empty seat next to me on the way out). The bathrooms seem smaller then on the 747, although given that it's over two years since I've flown on one of those that could just be wishful thinking. The entertainment system seems like a small, but nice, improvement over the 747. One thing that makes me very sad however is that Qantas (or possibly one of the aviation regulators that they're beholden to) felt the need to keep lit "no smoking" signs, which doesn't help people like me sleep with all those extra points of fairly bright light. However for some strange reason the in-seat power doesn't seem to work for my thinkpad (tried multiple chargers both 60w and 90w, one of them [the 90w] nearly brand new, with both Australian an US plugs), fortunately this one still gets over five hours of battery life even though it's coming up on 18 months old with the original battery. (Update: of course when the flight attendant tried it worked fine, go figure), of course then the plane decided we're on a landing trek and turned all the lights on and killed seat power which took a few minutes to resolve.

It's a real shame that Qantas don't offer the SYD-SFO service any more, evidenced solely by the number of people connecting from bay-area flights there's still demand for it, and Qantas did state it was a profitable route, I hope when more A380's come that they'll reintroduce it as a 747 route.

I also feel obligated to give a shout out to the cute PM from Oracle with whom I had a nice chat in LAX while waiting to board (another Aussie working in the valley).

As I've been in the states for a few weeks I've done a bunch of shopping, picking up a few things that are unavailable, or just too expensive in Australia.

The item longest on my list was a Unicomp keyboard, particularly the version with the inbuilt trackpoint (or whatever female body part you prefer to call them). It's so nice to have a solid keyboard again, and I'll certainly enjoy having a good keyboard to work off, Google offers a decent variety of keyboards for their staff, but none were ones I was particularly happy with.

Next comes a slightly odder one, Pelican, well known for making hard cases came out a year or so ago with their "1510 LOC" which is a 1510 case (supposedly the maximum dimensions for a carry-on bag, not that anyone respects that) but with inserts that make it into a small overnight case, with a neoprene laptop sleeve in the lid, it's a very nice combination, and (hopefully) somewhere below me is mine carrying many of my newly acquired gadgets.

In terms of new gadgets I picked up the two newest form of Amazon's Kindle, neither available outside the US, the Touch and the Fire. I've never owned an e-Reader of any sort before so these are new to me. My general view is that the fire, for anyone outside the US is a waste of money (unless you want a 7" tablet for custom apps, which was my plan). The touch on the other hand is a much nicer device, only let down by its lack of physical page-turn buttons, and well worth the US$100 price. (For more of my view on the fire see the Delimiter review and my comments on it)

I picked up a FitBit Ultra for a friend and decided to try one myself, not a bad little unit, but once I've got my typical daily stats I suspect the novelty will wear off and I'll not bother with them, the sleep tracking I gave up on after less than half a night due to the uncomfortable wrist band.

The rest of my purchases were fairly minimal, a couple of random bits from a Frys trip and other odd pieces from the Amazon order.

As mentioned I was in the states for a few weeks, only a few days short of a whole month. My trip started with a big off-site for all of NetOps (and associated groups) down in San Diego, of which many of us from Sydney missed much of due to the need to cover our Sydney shifts combined with an unexpected critical update we had to roll out across many of our devices. I will say that even the basement of a five star hotel is a nice place, and ordering many hundreds of dollars of room service on the company is oddly fun.

Given the number of (staff) visitors Google has in Mountain View they've bought up a bunch of corporate apartments which was my home for this trip, combined with the Google shuttle bus' for commuting, and that I ate breakfast, lunch, and dinner at the office nearly every day (notable exceptions were the days around Thanksgiving when much of the campus shut down) during the week this allowed me to have eyes only for the company. But even with this I don't think I'd actually move there, this trip reinforced for me that outside a few major cities it's close to impossible to live in the states without having a car, and an inability to get to all sorts of places would get to me very quickly. It is annoying however that the en-suite bathroom in my corporate apartment was at least twice the size of the bathroom in my apartment in Sydney.

All this has been a nice distraction from actually writing about Cory's book "With a little help". This is a short story compilation so it's hard to actually give a good review of the content given its varied nature. The story on what Google could be like if we/they actually tried to be evil was scary, not least because I started thinking about the interesting technical challenges that would be involved, only to see Cory's note at the end suggesting that interest in the challenges as one plausible way that Google might head down that slope. One thing that I can comment on however was the physical aspect, I bought the hardbound version and am actually somewhat disappointed with it as a *book*, it's beautiful, but not quite as good as a typical machine binding, also the paper is a little too thick to be a nice read, but does give it some gravitas as a trinket.

November 30, 2011

Daniel Stonesome meaningless numbers

My current running Xorg server, built with -O0 -g3 -ggdb, having been through a few suspend cycles, hosting a full GNOME Shell session with several billion tabs in a long-running Chromium instance, a couple of terminals, and a freshly-opened gedit, is currently sitting at 20MB resident memory usage, of which 11MB is shared. The freshly-opened gedit instance has 25MB resident, of which 17MB is shared. Bloat is in the eye of the beholder, I guess.

(Those numbers are RES/SHR respectively in top. Correct me if I'm wrong about what they mean.)

November 22, 2011

Julien GoodwinJunOS apply-groups

Ivan Pepelnjak has recently been playing with JunOS, and was wondering how people configure various things.

Here's how to use Juniper's built-in groups feature to make configuring backbone interfaces in an IS-IS+MPLS environment trivial (and I've thrown in IPv6 for free). This is not a complete config (notably IS-IS I've left out as I'm too tired to write that as well).

One other trick I've included is using groups to set your own defaults, in this case the frame scrambler for SONET links.

groups {
	BACKBONE {
		interfaces {
			<*> {
				mtu 2000;
				unit 0 {
					family iso;
					family inet6;
					family mpls;
				}
			}
		}
	}
	SONET-DEFAULTS {
		interfaces {
			<so-*> {
				sonet-options {
					fcs 32;
				}
			}
		}
	}
}
interfaces {
	apply-groups SONET-DEFAULTS;
	ge-0/0/0 {
		apply-groups BACKBONE;
		unit 0 {
			description "A Backbone link";
			family inet {
				address 10.1.2.3/26;
			}
		}
	}
	so-0/1/0 {
		apply-groups BACKBONE;
		unit 0 {
			description "Another backbone link";
			family inet {
				address 10.2.3.6/28;
			}
		}
	}
			
}
protocols {
	rsvp {
		interface all;
		interface fxp0 {
			disable;
		}
	}
	mpls {
		interface all;
		interface fxp0 {
			disable;
		}
	}
}

November 21, 2011

Julien GoodwinAn efficient, yet high performance, PC

A thread currently ongoing on the LUV list about RAM and swap had me thinking about how to create a desktop system capable of high performance that idles with low power usage.

The way I think that would actually work is to split a system in two. First, a main system containing:

  • A dual-core 64-bit ARM CPU (the 64-bit ARM is now standard, but will take a while to make it to mass production)

  • A few SATA ports, at least two 6Gb

  • A basic 3D GPU, a laptop-level NVIDIA or AMD chip is probably right here, needs to be capable of driving four simultaneous displays and/or two 30" monitors

  • A *good* 1Gb ethernet NIC, capable of sustaining wire-speed transfers

  • Capable of taking 16GB of RAM, normally 4GB or 8GB for this sort of system



This should easily be doable in less then 30 watts, and, for most operations would not be obviously different from a larger system.

Next, sitting off across a PCIe link (at least 10Gb/sec, so x4 if Gen1), a simple, yet high performance system with a "single-board" system, containing:

  • A high end Intel (eg. Core i7 39xx) or AMD (Bulldozer) cpu

  • As much RAM as they can take, could be 32GB or more

  • BIOS would be LinuxBios to allow fast booting and shutdown



And that's it, all IO would be via the PCIe bus back to the main ARM system. A simple job scheduler on the ARM side could then allow jobs needing high performance to spin up the big system, and after all jobs complete and the big system goes idle, shut it down again.

I have a hefty Intel system (Core i7, 12GB RAM) on my desk at Google, and, for some network simulation jobs this can max-out my system for a few minutes, but the other 99% of the day a much smaller system would be more then enough.

November 11, 2011

Dave HallDrupal in the Enterprise (aka Vote for my DrupalCon Session)

TL; DR: [spam]Please vote for my DrupalCon Denver proposal on Drupal workflows in the enterprise.[/spam]

For the last few months I've been working for Technocrat on a new Drupal based site for the Insurance Australia Group's Direct Insurance brands. The current sites are using Autonomy Teamsite.

The basics of the build are relatively straight forward, around 1000 nodes, a bunch of views and a bit of glue to hold it all together. Where things get complicated is the workflow. The Financial services sector in Australia is subject to strict control of representations being made about products. The workflow system needs to ensure IAG complies with these requirements.

During the evaluation we found that generally Drupal workflows are based around publishing a single piece of content on the production site. In the IAG case a collection of nodes need to be published as a piece of work, along with a new block. These changes need to be reviewed by stakeholders and then deployed. This led us to build a job based workflow system.

We are using the Features module to handle all configuration, deploy for entities and some additional tools, including Symfony, Jenkins and drush to hold it all together.

I've proposed the session for Drupal Downunder in January and will refine the session based on feedback from there in preparation for Denver. If you want to learn more about Drupal Workflows in the Enterprise, please vote for my session.

October 27, 2011

Tim ConnorsPolice a bit rich

Hrrrfm. The Age didn't publish my letter:


I find it a bit rich that the police union are upset that information
alongside a photograph was distributed about one of their members, without
his consent. I understand that truth is not not considered a defence to
libel in Australia, so it was perhaps unwise to distribute such a photo.
But it is common police practice to photograph protesters without our
consent, and to store these photos with profiles in national databases
without a right of appeal or review. I probably find myself on some
watchlist now just for attending some of last night's Occupy Melbourne
general assembly.

Maybe there would be no need for a photograph to be distributed if police
correctly wore their own name badges (and if the name badges weren't
deliberately too small to read). Or if there was some accountability, as
opposed to the protectionism that police have demonstrated in the past
with the likes of their disgusting behaviour at the APEC protests.

October 26, 2011

Donna Benjaminheritage and hysterics

Originally published at KatteKrab. Please leave any comments there.

This gorgeous photo of The Queen in Melbourne on the Royal Tram made me smile this morning.

I've long been a proponent of an Australian Republic - but the populist hysteria of politicians, this photo, and the Kingdom of the Netherlands is actually making me rethink that position.

At least for today.  Long may she reign over us.

"Queen Elizabeth II smiles as she rides on the royal tram down St Kilda Road"
Photo from Getty Images published on theage.com.au

October 25, 2011

JesstaA lesson in how to win against peaceful protesters.


Dear Mr Robert Doyle,

"First they ignore you, then they ridicule you, then they fight you, then you win." - Mahatma Gandhi

The key strategy behind peaceful civil disobedience is that any action an authority takes against it is seen to be unnecessarily violent. It puts the authority in a place where it can't win. It either doesn't get it's way, or it is seen by the population to be unreasonable, aggressive and violent. It's a really effective strategy that has been used successfully for decades. The only way to deal with it is to be shown to be as reasonable as possible.

Ways you could have been seen to be more reasonable:

  1. Walked down to the occupymelbourne protest and participated in the discussion and general assembly, talked to some people and made sure you actually knew what it was all about. "How can I represent you better?" is a key question the protesters would have liked to have heard from you.

  2. Before giving the eviction order you could have offered to discuss a different location they could move to with an acknowledgement that they would be given a permit to stay at the new location for a few days with renewal of this permit to be discussed. A lot of people from the protest did leave when asked, more would have if they'd had another place to go. With the remaining people looking like dicks in the public eye.

  3. The protest, once evicted, was obviously going to set-up at a new location that you'd have to evict in the future anyway. You knew this, it would be far better for it to be a location you could be involved in the discussion with and that people could move on to peacefully without being violently attacked.

  4. Get great video footage of all of this.

The occupymelbourne group does contain a few unreasonable people looking for a fight with authority. But it also involves many more people that just want their voices heard. The number of people that want a fight are a small minority and are mostly kept in check by the larger population of peaceful people.

On Friday and Saturday I pulled up a few stupid kids with scarves over their faces and water balloons and  informed them that this is a peaceful protest and that their actions were inappropriate and why violence (even minimal water balloon violence) never wins. I'm sure many other people did the same thing.

Even being very reasonable you'd likely still have had to drag a number of hardcore people away either from the city sq or the new location at the end of the permit, but they would have looked like complete dicks in comparison to how reasonable you'd look.

You only win against peaceful protests by being reasonable.

October 02, 2011

Donna BenjaminSticks and Stones and Speech

Originally published at KatteKrab. Please leave any comments there.

THE law does treat race differently: it is not unlawful to publish an article that insults, offends, humiliates or intimidates old people, for instance, or women, or disabled people. Professor Joseph, director of the Castan Centre for Human Rights Law at Monash University, said in principle ''humiliate and intimidate'' could be extended to other anti-discrimination laws. But historically, racial and religious discrimination is treated more seriously because of the perceived potential for greater public order problems and violence.

Peter Munro The Age  2 Oct 2011

Ahaaa. Now I get it! We've been doing it wrong. 

Racial villification is against the law because it might be more likely to lead to violence than villifying women, the elderly or the disabled.

Interesting debates and articles about free speech and discrimination are bobbing up and down in the flotsam and jetsam of the Bolt decision. Much of it seems to hinge on some kind of legal see-saw around notions of a bad law about bad words.

I've always been a proponent of the sticks and stones philosophy.  For those not familiar, it's the principle behind a children's nursery rhyme.

Sticks and Stones may break my bones
But  words will never hurt me

But I'm increasingly disturbed by the hateful culture of online comment.  I am a very strong proponent of the human right to free expression, and abhor censorship, but I'm seriously sick of "My right to free speech" being used as the ultimate excuse for people using words to denigrate, humiliate, intimidate, belittle and attack others, particularly women.

We should defend a right to free speech, but condemn hate speech when ever and where ever we see it.  Maybe we actually need to get violent to make this stop? Surely not.

September 23, 2011

Tim Connorson the hardships of living with minimal amounts of RAM (4GB or so)

I just got 200MB/s read/write rate from my swap device on my laptop. Fast laptop eh? OK, so I'm cheating by using the compcache/zram module from the staging tree.

When I bought my 2 laptops, I was upgrading from 256MB to 4GB. I thought that would be enough to last me for years. The video card on that first laptop came with more memory than the system memory of the machine I was upgrading from. Alas, I forgot to factor in opera and firefox (we're now in the era when Emacs is officially lightweight). And being laptops with the particular chipsets they have, 4GB is it, I'm afraid.

And the fact that Linux's VMM, for me, has never really handled the case of a machine running with a working set not all that much smaller than physical RAM. If I add up resident process sizes plus cache plus buffer plus slab plus anything else I can find, I always come up about 25% short of what's actually in the machine. Ever since those 256MB days (whereas about half the ram went "missing" on the 128MB machine prior to then). And even when your working set, including any reasonable allowance for what ought to be cachable, falls far short of RAM, it still manages to swap excessively, killing interactive performance (yes, I've tried /proc/sys/vm/swappiness). When I come in in the morning, it's paged everything out to make backups through the night marginally faster (not that I cared about that - I was asleep). Then it pages everything back in again at 3MB/s, despite the disk being capable of 80MB/s. Pity it's not smart enough to realise that I need the entire contiguous block of swapped pages back in, so it might as well dump the whole wasted cache, and read swap back in contiguously at 80MB/s rather than seeking everywhere and getting nowhere.

What I really wanted, was compressed RAM. Reading from disk with lots of seeks is a heck of a lot slower than decompressing pages in RAM. I vaguely recall such an idea exists if you're running inside VMWare or the like. But this is a desktop. I want to display to my physical screen without having to virtualise my X11 display.

But the zram module might be what I want. Pretty easy to set up (in the early days, it required a backing swap device and was kinda fiddly). Here's the hack I've got in rc.local along with a reminder sent to myself that I've still got this configured, at reboot:
echo 'rc.local setting zramfs to 3G in size - with a 32% compression ratio (zram_stats), that means we take up 980M for the ramfs swap' | mail -s 'zram' tconnors
echo $((3*1024*1024*1024)) > /sys/block/zram0/disksize
mkswap /dev/zram0
swapon -p 5 /dev/zram0

It seems to present as a block device of default 25% of RAM size (but I've chosen 3GB above), and as you write to that device, compressed versions of the page end up in physical memory. Eventually you'd run out of physical memory, and hopefully you have a second swap device (of lower priority) configured where it can page out for real. In my case, I'm using the debian swapspace utility. Be warned, if you plan to hibernate your laptop, not to forget to have a real swap partition handy :)

zram_stats tells me I'm currently swapping 570MB compressed down to 170MB, for a compression ratio of 28%. That 170MB has to be subtracted from the memory the machine has, so it appears to really only have 3.8 or so GB. No huge drawback. At that compression ratio, if I were to swap another 3GB out, physical ram stolen by zram would only be 1GB. My machine would be appearing to have 3GB of physical ram, 3GB of blindingly fast swap, and a dynamic amount (via swapspace) of slow disk based swap. I'd be swapping more because I had 1GB less than I originally had. But at least I'd be swapping so quickly I ought not notice it ('course, I haven't bench marked this). And I'd be able to have 2GB more in my working set before paging really starts to become unbearable.

So, with an uptime of 4 hours, I haven't even swapped to disk yet (I know this, because swapspace hasn't allocated any swapfiles yet). The machine hasn't yet thrashed half to death yet. That must be a recent record for me.


Yes, the module is in the staging tree. It's already deadlocked on me once, getting things stuck in the D state. And the machine has deadlocked with unexplained reasons a couple of other times recently (with X having had the screensaver going at the time, so no traces, and no idea whether it's general kernel 3.0 flakiness or zram in particular; I had forgotten until tonight that I even had previously configured zram back in the 2.6.32 days).

What I really *really* want, since I lack the ability to add more ram to the machines, is a volatile-ram ESata device, used purely as a swap device, reinitialised each boot (ie, having a battery backup is just pointless complexity and expense, and SSD is slow, fragile and prone to bad behaviour when you can't use TRIM, for the amount of writes involved in a swap device). There is the Gigabyte i-Ram and GC-RAMDISK and similar devices, but they're kinda pricey, even without the RAM included in the price. Why is SSD so much cheaper than plain old simple RAM these days? I thought the complexity involved would very much make it go the other way around.

What I really *really* **really** want, is for software to be less bloaty crap.

September 20, 2011

Donna BenjaminQantas Pilots

Originally published at KatteKrab. Please leave any comments there.

The Qantas Pilot Safety culture is something worth fighting to protect. I read Malcolm Gladwell's Outliers whilst on board a Qantas flight recently. While Qantas itself isn't mentioned in the book, a footnote listed Australia as having the 2nd lowest Pilot Power-Distance Index (PDI) in the world. New Zealand had the lowest. The entire chapter "The Ethnic Theory of Plane Crashes" is the strongest argument I've seen which explains the Qantas safety record. The experience of pilots and relationships amongst the entire air crew is a crucial differentiating factor. Other airlines work hard to develop this culture, often needing to work against their own cultural patterns to achieve it. At Qantas, and likely at other Australian airlines too, this culture is the norm.

I want Australian Qantas Pilots flying Qantas planes. I'd like an Australian in charge too.

If you too support Qantas Pilots - go to their website, sign the petition.

Do your own reading.

G.R. Braithwaite, R.E. Caves, J.P.E. Faulkner, Australian aviation safety — observations from the ‘lucky’ countryJournal of Air Transport Management, Volume 4, Issue 1, January 1998: 55-62.

Anthony Dennis, What it takes to become a Qantas pilot news.com.au, 8 September 2011.

Ashleigh Merritt, Culture in the Cockpit: Do Hofstede’s Dimensions Replicate?  Journal of Cross-Cultural Psychology, May 2000 31: 283-30.

 

September 18, 2011

Donna BenjaminRegistering for LCA2012

Originally published at KatteKrab. Please leave any comments there.

linux.conf.au ballarat 2012

I am right now, at this very minute, registering for linux.conf.au in Ballarat in January. Creating my planet feed. Yep. Uhuh.

I reckon the "book a bus" feature of rego is pretty damn cool.  I won't be using it, because I'll be driving up from Melbourne. Serious kudos to the Ballarat team. Also nice to see they'll add busses from Avalon airport as well as from Tullamarine airport if there's demand.

Too cool.

September 15, 2011

Paul DwerryhouseEtherwaker - GPL wake on lan client for Android

I've been playing around with Android application development quite a bit, over the last few months. The one thing I've built that's actually quite usable has been the wake-on-lan client Etherwaker (because the world really needed another one of these, didn't it?)

I've just put the Mercurial repository for it up on Bitbucket and released it under the GPL-3, for people to peruse or fork at their leisure.

Five second guide to fetching the source: hg clone ssh://hg@bitbucket.org/pdwerryhouse/etherwaker

If you can't be bothered with all this, and just want to wake up your mythtv box from your bed, then it can be downloaded from the Android market.

September 14, 2011

Paul DwerryhouseBuilding a redundant mailstore with DRBD and GFS

I've recently been asked to build a redundant mailstore, using two server-class machines that are running Ubuntu. The caveat, however, is that no additional hardware will be purchased, so this rules out using any external filestorage, such as a SAN. I've been investigating the use of DRBD in a primary/primary configuration, to mirror a block device between the two servers, and then put GFS2 over the top of it, so that the filesystem can be mounted on both servers at once.

While a set-up like this is more complex and fragile than using ext4 and DRBD in primary/secondary mode and clustering scripts to ensure that the filesystem is only ever mounted on one server at a time, it's likely that there will be a requirement for GFS on the same two servers for another purpose, in the near future, so it makes sense to use the same method of clustering for both.

The following guide details how to get this going on Ubuntu 10.04 LTS (lucid). It won't work on any version older than this - the servers that this is destined for were originally running 9.04 (Jaunty), however, I've tested DRBD+GFS on that release, and there's a problem that prevents it from working. As far as I'm concerned, production servers should not be run on non-LTS Ubuntu releases, anyway, because the support lifecycle is far too short. This guide should also work fine for Debian 6.0 (squeeze), although I haven't tested it, yet.

One thing to keep in mind - the Ubuntu package for gfs2-tools claims that "The GFS2 kernel modules themselves are highly experimental and MUST NOT be used in a production environment yet". There's a problem with this, however - the gfs2 module is available in the kernel, in Ubuntu 10.04, but the original gfs isn't there (it wasn't ever there) and the redhat-cluster-source package which provides it, doesn't build. I'm inclined to say that the "experimental" warning is incorrect.

Firstly, install DRBD:

apt-get install drbd8-utils drbd8-source


We have to install the drbd8-source package in order to get the drbd kernel module. When drbd is started, it should automatically run dkms to build and install the module.

Now, the servers I'm using have their entire RAID already allocated to an LVM volume group named vg01, so I'm going to create a 60Gb logical volume within this volume group, to be used as the backing store for the DRBD block device on each. Obviously, this step isn't compulsory and the DRBD block devices, can be put on a plain disk partition instead.

lvcreate -L 60G -n mailmirror vg01


After this, configure /etc/drbd.conf on both servers:

global {
  usage-count yes;
}

common {
  protocol C;
}
resource r0 {
  net {
    allow-two-primaries;
    after-sb-0pri discard-zero-changes;
    after-sb-1pri discard-secondary;
    after-sb-2pri disconnect;
  }
  syncer {
    verify-alg sha1;
  }
  startup {
    become-primary-on both;
  }
  on mail01 {
    device    /dev/drbd0;
    disk      /dev/vg01/mailmirror;
    address   10.50.0.11:7789;
    meta-disk internal;
  }
  on mail02 {
    device    /dev/drbd0;
    disk      /dev/vg01/mailmirror;
    address   10.50.0.12:7789;
    meta-disk internal;
  }
}


With this done, we can now set up the DRBD mirror, by running these commands on each server:

drbdadm create-md r0
modprobe drbd
drbdadm attach r0
drbdadm syncer r0
drbdadm connect r0


...and to start the replication between the two block devices, run the following on only one server:

drbdadm -- --overwrite-data-of-peer primary r0


By looking at /proc/drbd, we'll be able to see the servers syncing. It's likely that this will take a long time to complete, but the drbd device can still be used, while that's happening. One last thing we need to do is move it from primary/secondary mode, into primary/primary mode, by running this on the other server:

drbdadm primary r0


So, now we want to create a GFS2 filesystem. There's a catch here, however: GFS2 cannot sit directly on a DRBD block device. Instead, we need to put an LVM physical volume on the DRBD device, and then create a volume group and logical volume within that. Furthermore, because this is going on a cluster, we need to use clustered LVM and associated clustering software:

apt-get install cman clvm gfs2-tools


And then configure the cluster manager on each server. Put the following in /etc/cluster/cluster.conf:

<?xml version="1.0" ?>
<cluster alias="mailcluster" config_version="6" name="mailcluster">
        <fence_daemon post_fail_delay="0" post_join_delay="3"/>
        <totem consensus="6000" token="3000"/>
        <clusternodes>
                <clusternode name="mail01" nodeid="1" votes="1">
                        <fence>
                                <method name="1">
                                        <device name="clusterfence" nodename="mail01"/>
                                </method>
                        </fence>
                </clusternode>
                <clusternode name="mail02" nodeid="2" votes="1">
                        <fence>
                                <method name="1">
                                        <device name="clusterfence" nodename="mail02"/>
                                </method>
                        </fence>
                </clusternode>
        </clusternodes>
        <cman expected_votes="1" two_node="1"/>
        <fencedevices>
                <fencedevice agent="fence_manual" name="clusterfence"/>
        </fencedevices>
        <rm>
                <failoverdomains/>
                <resources/>
        </rm>
</cluster>


In the above, I'm using manual fencing, because at the moment, I don't have any other method for fencing available to me. This should not be done in production; it needs a real fencing device, such as an out-of-band management card (eg, Dell DRAC, HP iLO) to kill power to the opposite node, if something is amiss. All that manual fencing does is write messages to syslog, saying that fencing is needed.

Without fencing, it's possible to encounter a situation where the DRBD device might have stopped mirroring, yet the mail spool is still mounted on each server, with the mail daemon on each one writing to its GFS filesystem independently, and that would be a very difficult mess to clean up.

One other thing: there's an Ubuntu-specific catch here - Ubuntu's installer has this irritating habit of putting a host entry in /etc/hosts for the hostname with an IP address of 127.0.1.1. This will break the clustering, so remove the entry from both servers, and either make sure your DNS is set up correctly for the name that you're using in your cluster interfaces, or add the correct addresses to the hosts file.

You can now start up clustering on both hosts:

/etc/init.d/cman start


Run cman_tool nodes, and if all is well, you'll see:

Node  Sts   Inc   Joined               Name
   1   M    120   2011-09-14 10:53:32  mail01
   2   M    120   2011-09-14 10:53:32  mail02


We'll need to make a couple of modifications to /etc/lvm/lvm.conf on both servers. Firstly, to make LVM use its built-in clustered locking:

locking_type = 3


...and secondly, to make it look for LVM signatures on the drbd device (in addition to local disks):

filter = ["a|sd.*|", "a|drbd.*|", "r|.*|"]


Now start up clvm:

/etc/init.d/clvm start


At this point, we can create the LVM physical volume on the drbd device. Because we now have a mirror running between the two servers, we only need to do this on one server:



pvcreate /dev/drbd0


Run pvscan on the other server, and we'll be able to see that we have a new PV there.

Now, again, on only one server, create the volume group:

vgcreate mailmirror /dev/drbd0


Run vgscan on the other server, to see that the VG also appears there.

Next, we'll create a logical volume for the GFS filesystem (I'm leaving 10Gb of space spare for a second GFS filesystem in the future):

lvcreate -L 50Gb -n spool mailmirror


And then lvscan on the other server should show the new LV.

The final step is to create the GFS2 filesystem:

mkfs.gfs2 -t mailcluster:mailspool -p lock_dlm -j 2 /dev/mailmirror/spool


mailcluster is the name of the cluster, as defined in /etc/cluster/cluster.conf, while mailspool is a unique name for this filesystem.

We can now to mount this filesystem on both servers, with:

mount -t gfs2 /dev/mailmirror/spool /var/mail


That's it! We now have have a redundant mailstore. Before starting your mail daemon, however, I'd suggest changing its configuration to use maildir instead of mbox format, because having multiple servers writing to an mbox file is bound to cause corruption at some point.

Other recommended changes would be to alter the servers' init scripts so that drbd is started before cman and clvm.


Paul Dwerryhouse is a freelance Open Source IT systems and software consultant, based in Australia. Follow him on twitter at http://twitter.com/pdwerryhouse/.

September 05, 2011

Ben McGinnesNew Players in the Great Game

Last week the complete unredacted diplomatic cables obtained by WikiLeaks last year were revealed to the world following a series of events involving WikiLeaks, the Guardian and possibly others. There has been much finger pointing regarding who is to ultimately blame for this, which is essentially pointless. The deed is done and the information is out. A couple of days later WikiLeaks, under the direction of Julian Assange, elected to update their Cablegate site with the unredacted data and provide a full mirror archive [torrent] and PostgreSQL database copy [torrent].

Already there are interesting revelations being brought to international attention by the latest data releases. There are also very valid concerns regarding the safety of intelligence sources, victims of crime and political dissidents who are identified in the cables. Amongst these have been the revelation that one or more cables identify current Australian intelligence officers, as reported in The Age and The Sydney Morning Herald.

Last Friday a statement [PDF] was made by Robert McClelland, the Australian Attorney-General, regarding this fact and confirming that the Australian Security Intelligence Organisation (ASIO), along with other agencies, were reviewing the material. Mr. McLelland reiterated that Section 92 of the Australian Security Intelligence Organisation Act 1979 (ASIO Act) makes it a crime to “publish or cause to be published in a newspaper or other publication, or by radio broadcast or television, or otherwise make public, any matter stating, or from which it could reasonably be inferred, that a person having a particular name or otherwise identified, or a person residing at a particular address, is an officer (not including the Director-General), employee or agent of the Organisation or is in any way connected with such an officer, employee or agent or, subject to subsection (1B), is a former officer (not including a former Director-General), employee or agent of the Organisation or is in any way connected with such a former officer, employee or agent.” That second part is obviously aimed at protecting the families of ASIO employees, while subsection 1B deals with exceptions where former officers have consented to their previous employment being made public.

This has led to speculation that Julian Assange could face prosecution under Section 92 of the ASIO Act. There may be the possibility of additional charges relating to officers of other Australian agencies, such as the Office of National Assessments (ONA) or the Australian Secret Intelligence Service (ASIS). In adition to the cable referred to by The Age and The Sydney Morning Herald there is at least one cable which lists the names of a number of senior ONA analysts and there may be more buried amongst the quarter of a million cables.

One of the problems facing any Australian prosecution in this matter will be whether or not charges can be laid based on the sequence of events. The initial revelations of the complete data came from a GPG encrypted file which had been available online via BitTorrent for several months and which was decrypted using a passphrase published by the Guardian. Each on its own could not reveal the information, they had to be used together to obtain the data. If charges were to be laid related to that, who would be charged? Julian Assange for creating the encrypted file? Another WikiLeaks staffer for putting it on BitTorrent? David Leigh and Luke Harding at the Guardian for publishing the decryption passphrase in WikiLeaks: Inside Jullian Assange’s War on Secrecy? John Young at Cryptome for providing the decrypted CSV file? Raymond Hill at Cablegate Search for using that data in his online database? Others?

That’s just dealing with the initial release of the data. The next question is whether or not Julian Assange or others involved with WikiLeaks can be charged for effectively republishing the data after it has already been decrypted by others? No doubt this is something which Australian Commonwealth prosecuters will consider following the reviews of the diplomatic cables being conducted by ASIO and others.

On Sunday the Attorney-General followed the national security theme with a statement [PDF] announcing a new national security awareness campaign promoting the National Security Hotline (NSH). The NSH was introduced in 2002 by the Howard Government and the initial advertising campaign in 2003 featured much derided fridge magnets for every household.

What is unclear about the latest NSH advertising campaign is whether it was already planned, whether or not it is in response to or accelerated due to the release of the unredacted cables or whether it is part of a push to turn public opinion against WikiLeaks. When the cables were being dribbled out with effort taken to redact information that could identify people at risk of violence or retaliation it was difficult for many people to take the government’s objection too seriously. The complete release last week changes that scenario completely and the publication has been condemned by the traditional media organisations, which had previously worked with WikiLeaks to redact and publish the cables. It is possible that the Attorney-General’s department views an elevation of national security in the public consciousness will make it easier for people to draw the conclusion that the cable publication and, by extension, WikiLeaks is to be condemned.

Regardless of one’s opinions of Julian Assange and WikiLeaks, either for or against, the fact is that the facility to provide a platform for the global release of sensitive material has been a major change for both national and international politics. It has shifted the concentration of power in ways which governments are not used to. They are beginning to learn a similar lesson to that of the media: that the people formerly known as the audience are able to actively engage to a greater extent than previously possible. Not only are people able to do this, but they actually do it.

As I type this there are people around the globe pouring through the released cables looking for interesting information. Some of the results are published by traditional media outlets, some are blogged about and some are included in the running commentary on Twitter or other social media networks. Most people refer to the latter as crowd-sourcing, but governments and intelligence agencies refer to it as open source intelligence. It is another example of ordinary citizens being able to level a playing field which has previously been restricted to governments, intelligence agencies, law enforcement and corporations with the budgets necessary to obtain and mine vast amounts of data. This shift is, unsurprisingly, of real concern to those organisations which have traditionally maintained a monopoly on information.

As a consequence, moves by governments around the world to attempt to limit or discourage this power shift are to be expected. Where that coincides with existing national security legislation, such as that protecting intelligence officers here in Australia, a link is able to be drawn between the power shift and a subtext of potential sedition. It’s not quite accusing anyone engaged in any aspect of the shift in power and sharing (versus control) of information of treason, but it is a manner of presenting opposition to people doing so as in the interests of national security. It is a subtle and dangerous approach to the changing nature of politics and intelligence, which could backfire. Yet it is one which will be pursued by any government seeking to maintain a concentration of power; that being, all of them.

It also won’t work, not completely, that genie is well and truly out of the bottle. The governments, intelligence agencies, law enforcement and corporations already know this; their game is now to limit anything which they see as potentially damaging. The extent of their success or failure in this will only become apparent over time; not just in relation to the various releases from WikiLeaks, but also information which will be released by other sources and organisations in the future.

There are new players in the Great Game of international politics, players who were previously viewed almost entirely as pawns. It will be very interesting to see how it plays out as the power and the rules shift.

Originally published at Organised Adversary. Please leave any comments there.

August 19, 2011

Ben McGinnesPreventing Political Blunders With Digital Signatures

Yesterday’s news that Paul Freebody, a candidate for the Queensland seat of Cairns, has been expelled from the Liberal National Party (LNP) highlights the need for the greater adoption of email encryption and digital signatures.

As with the OzCar Affair of two years ago, the issue here relates more to the verification that an email has not been tampered with rather than protecting the content from prying eyes. Thus it is a digital signature which would have been of use to Freebody in this case. Had he already been using OpenPGP compliant software to sign his emails, such as PGP or GPG, Freebody could have proven that the change to his email after signing and sending it was made by someone else, without needing to identify or, in this case, embarass that person.

The reports regarding the case of Paul Freebody are a little unclear as to whether the modified email had been sent from his computer or whether a family member who had received the email modified it and then forwarded it on. Regardless of which of those two alternatives it was, the regular use of a digital signature would have helped.

If the email had been modified on Mr. Freebody’s computer before it was sent, the prompt to sign the message would have prevented message from being sent without the relevant passphrase. If the relative had removed the signing option then Mr. Freebody could have pointed to the lack of the signature as a certain level of proof that he did not send that email.

Had the email been signed and a recipient modified the content before forwarding it to others, the signature would not validate for that message and Mr. Freebody could then have pointed to that as proof that the message had been altered. In this case Mr. Freebody could have provided a copy of the original message with the valid signature for comparison.

This is the second time in as many years in which a forged or modified email has resulted in a scalp being claimed in Australian politics; yet the tools to prevent it have been available for two decades and standardised since the late 1990s. Since that time the ease of using email encryption and signatures, particularly with the combination of Thunderbird, GPG and Enigmail, has been improved considerably.

Until people in public life start using at least this aspect of cryptographic technology, even if they don’t actually encrypt their email, these kind of scandals will continue to occur.

Originally published at Organised Adversary. Please leave any comments there.

July 05, 2011

LUVBarCamp Geelong, Linux Install Fest and Mini-Conf

Jul 9 2011 09:14
Jul 9 2011 09:14
Location: 

Deakin University Waterfront Campus, 1 Gheringap Street Geelong.

LUV is co-organising an install-fest and miniconf with BarCamp Geelong on Saturday July 9 at the Deakin University Waterfront Campus, 1 Gheringap Street Geelong.

The event is sponsored by Linux Australia, Duxtel Pty Ltd, and the Open Source Developers' Conference.

Speakers will include Lev Lafayette on The Competitive Advantage of Linux and Open-Source, Dennis Wollersheim on An Introduction to Linux Scripting (along with a 3D printer stall), and Alex Clews on Backing Up Your Linux System.

July 9, 2011 - 09:14

read more

June 22, 2011

Ben McGinnesAccess Ministries Resort to Scientology Tactics to Silence Critic

Australian blogger Mike Stuchbery, a vocal critic of ACCESS Ministries‘ school chaplaincy program, has been gagged by the evangelical religious group.

On the 15th of June Mr. Stuchbery posted an article about a graphic novel, Man Hunters published by ACCESS Publishing International, a division of ACCESS Ministries. The original article included several images from the graphic novel and a link to a PDF of the complete article.

On the 17th of June Mr. Stuchbery received a letter from Moores Legal stating that the post of the graphic novel and any part of it was a breach of copyright. The letter demanded the removal of the graphic novel PDF, the deletion of any copies of same, the removal of any images from the PDF and the deletion of the entire article which included this content. The letter, which Mr. Stuchbery posted, included a deadline of 5:00pm on June 22nd.

Mr. Stuchbery complied with the request to remove the PDF and all of the images, except for a single panel. The other panels were replaced with transcripts of the dialogue. He cited the “fair use” (actually it is “fair dealing”) provisions of the Copyright Act 1968 for the purpose of the critique which comprises the remainder of his article.

In spite of this compliance, Mr. Stuchbery’s posting access to his site was disabled by WordPress.com before the deadline set by Moores Legal. This indicates that the purpose of this action is not simply to protect the material published by ACCESS Ministries, but to silence one of their critics. If it were purely concerned with the copyright issue then the deadline would have been honoured, as would the fair dealing provisions of the Copyright Act 1968. Instead moves were made to report Mr. Stuchbery’s site for copyright infringement to his hosting provider before that, the result being suspension of updates well before the deadline. According to Mr. Stuchbery he discovered the suspension more than nine hours prior to the deadline.

This type of use of copyright law by organisations, especially religious organisations, to stifle dissent is nothing new. The Church of Scientology is well practiced at using precisely this tactic to silence their critics and have done so to great effect for many years. Now ACCESS Ministries are taking their turn at using copyright law to censor their opposition. This case is a little different from many of the Scientology ones in one crucial respect; the criticism of ACCESS Ministries and their teaching material does not relate purely to their internal policies and behaviour, as much of the Scientology criticism does, it relates to material used by ACCESS Ministries chaplains in a government funded program for secular schools. As such, criticism of the policy and of any content used in the delivery of that policy should be protected by the implied right to free political speech. This relates to both the High Court rulings regarding freedom of political speech inferred from the Australian Constitution and various international treaties which Australia has ratified, most notably the International Covenant on Civil and Political Rights.

With this action ACCESS Ministries have proven their complete disregard for the civil rights of those who do not agree with them. They have shown their willingness to resort to any means available to silence any and all opposition and criticism.

Originally published at Organised Adversary. Please leave any comments there.

June 02, 2011

Ben McGinnesNeo-Victoria: Evolution of the Nanny State

Six months ago Victoria went to the polls and elected a Liberal-National Coalition government, led by Ted Baillieu, with a (slim) majority in both houses of parliament. After more than a decade of Labor government, this was not entirely unexpected. Due to electoral reforms made by the previous Labor government, there will be another three and a half years before another election will be held.

The change in government has led to a drastic change in the tone of governance in Victoria. Three of the changes which particularly illustrate this are a review of the Charter of Human Rights and Responsibilities Act 2006 with a possible result of watering down or even repealing the Act, on the spot fines for “indecent” language and the controversial introduction of legalising discrimination for groups not wishing to employ, service or otherwise interact with individuals with life styles or traits they object to. That last one essentially translates to: some Christian organisations want support for prejudice against single mothers, non-believers, people of different faiths, divorced people and, of course, the entire LGBTI community.

Those aren’t the only things on the agenda, there are assorted other law-and-order policies currently being pushed by Baillieu and Attorney-General Robert Clark, including mandatory sentencing for sixteen and seventeen year-old violent offenders. Still, this is only six months into a four year term. It is clear that Baillieu and Clark are aiming for significant changes to Victoria’s legislative powers before the voters have a chance to oppose them. Perhaps this would be more understandable if the policies presented to the public by the Coalition had included this significant law-and-order focus; but, with the exception of the fairly standard comments about recruiting more police, this was not the case.

It is clear that the Baillieu-Clark agenda, beginning with the reduced emphasis on human rights, is to forge a far more conservative and controlled Victoria. The first step is to reduce the rights previously granted to Victorians. The second step is to introduce law-and-order policies which may appeal to some sections of the community without appearing too controlling to the general punter, but which actually undermine civil liberties significantly. The third step is to provide greater power to certain interest groups at the expense of minorities.

So what can we expect in the future? I expect there will be considerably more similar action in the future. Most likely this will include anti-association legislation, which is normally labelled as “anti-bikie” legislation and which has been adopted in South Australia and New South Wales. Whenever politicians and police discuss legislation like this they are careful to focus on one section of the community, in this case “criminal organisations” and motorcycle clubs, but the reality is that the legislation is never so specific and can be used against any organisation or group of people. Currently the Charter of Human Rights and Responsibilities Act prevents such anti-association legislation from being passed in Victoria, but a repeal of that Act or reduction in its scope may open this door.

No doubt there will be more than this in just the next year or two, given the changes pushed in just the last six months. By the time of the next election in November 2014, the changes in Victoria could be tremendous.

Originally published at Organised Adversary. Please leave any comments there.

JesstaGolang interfaces

Interfaces in Go are very powerful, but their power comes from being generic.
Unlike interfaces in Java or C# where an interfaces defines a very specific thing that just lacks an implementation. Interfaces in Go only define a set of methods. Because of this you can do interesting things like:

func SomeFunction(w interface{Write(string)}){
w.Write("pizza")
}

This is a function that takes any type that has a Write(string) method. Statically verified duck typing at it's finest.

More commonly it would be written as:

type Writer interface {Write(string)}

func SomeFunction(w Writer}){
w.Write("pizza")
}

Giving the interface a name makes it easier for the reader to determine what you expect the interface to be used for.

Since you can put any number of methods in an interface you can also put zero methods there.
This is what we call the "empty interface". There is nothing special about it. It's just a regular interface with no methods.

The useful thing about the "empty interface" is that all types satisfy it. As all types have at least zero methods. This makes it useful for storing abitrary types in collections (eg. lists, vectors, trees etc.) and for writing functions that take parameters of arbitrary type and figure out what to do with them based on their type. (eg fmt.Printf())

Russ Cox has a really good blog post about how go interfaces are implemented.
Effective Go also has a section on go interfaces

June 01, 2011

Todd HarbourZazz's use of the term "PC"

I've decided to document letters I write to companies and groups here as I often forget to follow up on them, or get a reply that is quite indicative of the type of company they are. Information others may appreciate.

Open Letter to Zazz regarding their use of the term "PC"

PLEASE stop using the term "PC" to refer to a PC running Windows. It can be very misleading and confusing for people.

Eg. http://www.zazz.com.au/pastproducts.php?past=1985

"PC/Mac/Linux" makes no sense. That's like saying "Ice cream tub/Strawberry/Chocolate" when referring to neapolitan ice cream supported flavours. Obviously this is just an annoyance but when it's just Windows and Mac support, it's actually false advertising and misleading to write "PC/Mac".

Thank you for your time.

May 16, 2011

Dave HallDrush Make and Module Dependencies

Drush make is a wonderful tool for constructing Drupal platforms. A lot of Drupal developers are used to adding a list of modules, a few libraries and theme or 2 then running drush make to build their platform. It all seems pretty easy. What if I told you module developers could make things even easier for site builders?

Some contrib modules depend on third party libraries, and due to various reasons they can't always be stored in git repositories on drupal.org and included in the module release. To solve this problem module developers can include a .make file for their module. Drush recursively processes make files, so the module make file would be processed once found by drush make.

A good example of where this could be useful is the SMTP module, which depends on the LGPL licensed PHPMailer library. The module also requires a patch to be applied to the library, which drush make can apply for us. The following .make file could be included in the SMTP module as smtp.make:

core = 6.x
api = 2

libraries[phpmailer][download][type] = "get"
libraries[phpmailer][download][url] = "http://downloads.sourceforge.net/project/phpmailer/phpmailer%20for%20php5_6/Previous%20Versions/2.2.1/phpMailer_v2.2.1_.tar.gz"
libraries[phpmailer][download][md5] = "0bf75c1bcef8bde6adbebcdc69f1a02d"
libraries[phpmailer][directory_name] = "phpmailer"
libraries[phpmailer][destination] = "modules/contrib/smtp"

libraries[phpmailer][patch][drupal-compatibility][url] = "http://drupalcode.org/project/smtp.git/blob_plain/2acaba97adcad7304c22624ceeb009d358b596e3:/class.phpmailer.php.2.2.1.patch"
libraries[phpmailer][patch][drupal-compatibility][md5] = "2d82de03b1a4b60f3b69cc20fae61b76"

Now when the SMTP module is included a normal drush make file it will be downloaded, the PHPMailer library will be downloaded and patched ready for use.

Unfortunately there are some limitations to this approach. Firstly it assumes that the SMTP module will be installed under the modules/contrib directory, which is accepted best practice, but may not suit everyone's needs. When I tested this with the current stable version of drush make (6.x-2.2) it failed, and drush make 6.x-3.x from git needed to be patched. Hopefully a fix for this can be backported to the 6.x-2.x branch and included in a future release.

Update: I have posted the make file for the SMTP module as patch in issue #1159080.

April 02, 2011

Dave HallFixing Zimbra's Broken debs

As much as I love Zimbra, I find their Debian packaging frustrating. Why do they insist on shipping half broken debs? I can excuse vmware for being too lazy to provide proper descriptions for their packages, although the generic "Best email money can buy" text seems a little lame. Failing to populate the "Provides" field is brain dead. This makes it possible to install mailx on a server running Zimbra without installing another MTA.

I've created a simple workaround deb which provides mail-transport-agent and depends on zimbra-mta. The deb also symlinks the zimbra sendmail binary to /usr/sbin/sendmail - where it belongs. Now mailx and other tools which depend on mail-transport-agent can be installed. The package should work with both Debian and Ubuntu.

The source available on github, or you can download a prebuilt platform independent deb from github's download manager. The package is released under the terms of the WTFPLv2.

I hope that Zimbra builds better debs and makes this package obsolete.

February 05, 2011

Dave HallHelp a Drupal Geek Earn his Way to DrupalCon Chicago

I really want to attend DrupalCon Chicago, which kicks off in just over 4 weeks. The problem is that since DrupalCon Copenhagen business has been pretty quiet and so I find that I can't really afford to fund it myself. After deciding I had to be in Chicago I got creative about how to make it happen. The buy a line project was born.

Instead of just asking people to kick in some cash to get me to Chicago, I felt it was only right to earn my keep. People can buy a line of code, or sentence of documentation for Drupal. All code and docs created will be contributed to drupal.org. Buyers are free to specify where the lines are to be contributed, or leave me to decide. I'm looking forward to writing some of the lines on the Drupal Bus.

Recently I have been working on porting the UUID module to Drupal 7. I hope to get this module into Drupal 8 core. To make this happen I have to be in Chicago! Improvements to UUID will mean that content can be packaged up and moved around like configuration can be using the Features module.

All buy a line issues will be tagged so people can watch my progress. The first lines of code have been contributed to the getID3() module, so Drupal Commons can be installed by Aegir.

Thanks to everyone who has contributed so far. I have almost covered the DrupalCon ticket I bought from the Gizra team.

Please consider buying a line (or more) to help get this Drupal geek to Chicago. This is a great way of getting a module ported to Drupal 7, better documentation or even just a bug fixed. I have a decent track record of contributing to the project.

When deciding how many lines to buy, think about this - if I don't make it to Chicago, who will lock themselves out of their hotel room at 4am - naked!

December 17, 2010

Daniel Stonenew x.org multitouch patchset posted

So, I've been working on multitouch on and off the past few months (which have included a solid ten weeks of holiday), but have finally posted the third patch series, which I think should be pretty close to final, to the list today.

Touch events look kind of similar to standard Xi 2.1 events (DeviceMotionNotify and friends), but the implementation of grabbing and event delivery is quite different from the traditional X model that we all know and love.

Firstly, touch grabs are not strictly grabs as with other input events. When a synchronous pointer or keyboard grab activates, it 'freezes' the device, stopping delivery of all further events until the grabbing client has decided what to do. The client can either pass on the event to the next client (replay), opt to continue receiving all events with the device freezing again after each event (synchronous mode), or continue receiving all events with the device unfrozen (asynchronous). While this is happening, the grabbing client is the only one receiving events, hence the name.

Touch grabs break both of these assumptions. Firstly, the device never freezes: delivery of all events (pointer, keyboard, touch, whatever) continues at full tilt, and a touch grab never affects pointer or keyboard events, with the possible future exception of pointer events that are emulated from touch events. Secondly, all clients with grabs, as well as the client with the first selection we find<super>0</super>, receive the events. An 'owner' flag is set (or unset) to indicate to the client that it does, or does not, own the touch stream in question.

The owner principle is important: the theory is that all touch streams must be considered as a whole (i.e. from init, through all the motion events, to the touch stream ending), and cannot be separated into component parts. So a client which does not own a touch stream can do gesture recognition or whathaveyou in the background, but must not act upon it until it becomes the owner. We added an extra request, XIAllowTouchEvents, to control ownership: clients can either reject ownership, passing it on to the next in line, or assert their ownership and permanently remove all other clients from the delivery list.

So it's somewhat different, but (hopefully) not without reason. The motivation behind this was to keep latency as low as humanly possible, since people seem to demand lower latencies from direct touch-based devices. Sticking to the traditional grab model would have meant a flurry of round trips between all the clients in the stack and the server, as well as maintaining huge buffers in the server for every touch event, which each client would have to transfer in turn.

This model is a compromise between my original design and Ubuntu's suggested design; both of us had far more simple designs, but oriented towards different usecases. The original Ubuntu usecase was for a global gesture recognition system, which apps would only opt out of in rare cases. My primary usecase was exactly the reverse: apps doing their own gesture recognition, with a very small, if any, global system. Hopefully it's actually the best of both worlds, rather than the worst possible intersection: I guess we'll find out. :)

At the moment, it's all largely theoretical, but some of the Nokia Qt guys are working on a port and have provided really helpful feedback, and hopefully the GTK+ multitouch branch, which was written against a much earlier and, er, speculative, version of the spec, gets updated too.

Finally, some thanks: to both Nokia and my excellent employer Collabora for sponsoring my part of this work; to Chase Douglas from Canonical for his contributions and for not just giving us the finger and vanishing when we rejected the X Gesture Extension, but hanging around and working through it; and to Peter Hutterer, for spec work and review. There were also numerous others involved earlier (including, but not limited to, Henrik Rydberg working on mtdev and others) who deserve credit, so sorry if I forgot anyone.

If you want to get it and play around with it, the patches/repositories are all laid out in my initial mail linked to earlier, as well as the follow-up mail noting the evdev repository location. The spec has more details, and will hopefully be cleaned up to be a lot less clunkily-written.

[0]: The delivery order is unchanged. For grabs, we start at the root window and proceed down the window stack to the innermost child window, activating grabs in that order. For events selected for with XISelectEvents, we start at the innermost child window, work our way up towards the root window, and stop as soon as we find one.

November 27, 2010

Greg BanksCyrus, cruftissimo

Ok, so it’s been an embarrassingly long time between posts.  It’s a good thing I don’t pretend to be blogging for a living.

Anyway, these days I’m hacking on the Cyrus IMAP server for a living.  This software  isn’t much to write home about. It’s Open Source so you get to see all the ugly bits.  It’s really quite old and crufty (there’s K&R C in there!) and mostly works.  Mostly.

What I’m supposed to be doing is adding Conversations support – more about that in another post sometime.  What I’m mostly doing is cleaning up amazing crufty code and writing unit tests to prove that I didn’t break anything.  The process goes something like this:

  • Oh, I need a function to parse a date/time string.
  • Cool, here’s one.
  • Oh…here’s another one…in a different file in a different directory…that only reads directly from the main IMAP protocol stream.  No worries, we can split it up into a sensible pair, one of which reads a quoted string from the protocol stream into a buffer, another which converts the buffer to a time_t.
  • Wait, they parse different formats.  Because RFC822 and RFC3501 specify similar but not identical date/time formats.  Well, whatever, they’re both necessary for RFC compliance.
  • Ooh, one of them takes about a half-dozen different flags, let’s write a comment documenting their effects.
  • Wait, most of the flag combinations make no sense.  One combination results in two separate timezone offsets being applied to the result, the one specified in the date/time string itself, and also the server’s own timezone.  WTF? Aha, there’s only two different sets of flags it’s called with…so change the function to take a boolean.
  • Cool, this function has support for Military single-letter timezone names (e.g. ‘Z’ is UTC). Wait, it accepts ‘J’ as a timezone name, which it isn’t.  Even better, this means it miscalculates timezones ‘K’ through ‘M’ which are now all off by one hour.  Classy.
  • Well I don’t trust it now…ah, it parses some hardcoded US timezone names, like EST, PDT etc.  Oh but look, the Daylight Savings calculation moves one hour in the wrong direction.  Wonderful.
  • What?  Here’s more date/time parsing code!  This time it parses the RFC3339 date format (which is mostly the same as the ISO8601 format, and is arguably the most sensible one of them all).  It’s opencoded in the middle of a function that parses imap:// URLs, of all things.
  • Ok, I give up.  I’m gonna fix it all up!  Pull all the date/time parsing and generating code out into a new source file, lib/times.c, fix the names of the functions to be remotely sensible and consistent, enforce sensible and consistent return values (number of characters consumed or generated, or -1 on error), and write unit tests for the lot.

And that’s what I’ve spent so much time doing recently.  So many ratholes, so little time.

November 14, 2010

JesstaHierarchical File Systems are live and well

I thought I'd respond to this paper "Hierarchical File Systems are dead" People have been talking about searchable and tagable local file systems for decades. The main problems with searching and tagging is:


  • Most data isn't easily searchable. How do you search music? spreadsheets? movies?
  • Tagging is hard work and generally non-portable.
  • Getting people to agree on file formats is near impossible,
    so how would you ever get everyone to agree on a tagging format?
  • Tags mean different things to different people. Tagged data tends to have lots of very broad tags and few specific and useful tags.
  • items tend to move around in searches, searching for the same thing can yield different results as new data comes in.

So why is the hierarchical file system still so ubiquitous?

  • The hierarchical file system doesn't know or care about your files. This means the only agreement you need between people is that a file is an amount of contiguous bytes.
  • hierarchies are easy to navigate and predictable, things are always in the place you left them.
People think "we have web search, why don't we have desktop search?". Well, searching websites is easy...relatively easy. They are all text and linked to each other in meaningful ways. Every link is a tag. They are already in a hierarchy that helps determine their meaning and related topics.

There are many really great ideas for how humans could interact with computers but many of them require the computer to have too much intelligence and we aren't there yet. Making interfaces that require the computer to be more intelligent than it currently is, is a recipe for a difficult to use and unpredictable user experience.


October 28, 2010

Daniel Stonehow do i progammatically invoke aero peek on a window?

Whenever someone asks how to force their window to be raised to the top in X, because their program is so great that their users shouldn't be allowed to even see other programs, the answer looks a lot like the Windows equivalent:
Yes, I realize you wrote a program so awesome that all other programs pale in comparison, and that part of your mission is to make all the other programs literally pale in comparison to your program. Sorry. Maybe you can meet up with that other program that is the most awesome program in the history of the universe and share your sorrows over a beer.

October 25, 2010

Hiddensoul (Mark Clohesy)Content Moved

The content of this blog has moved to http://twistedshack.blogspot.com/

LUVNovember Beginner's Workshop

Nov 20 2010 12:00
Nov 20 2010 16:00
Nov 20 2010 12:00
Nov 20 2010 16:00
Location: 

Cinema Room, The Hub @ Docklands, cnr Bourke St and Harbour Esplanade, Docklands

It's time again for the LUV Beginner's Workshop. Come along on 20th of November. Talk: "WordPress Introduction" by Kathy Reid

LUV would like to acknowledge BENK Open Systems for their help in obtaining The Hub venue and VPAC for hosting!

November 20, 2010 - 12:00

read more

September 16, 2010

Patrick2010 WebGUI Contributor of the Year Award

… JT Smith opened the conference with his annual State of WebGUI speech, in which he highlighted many upcoming features in WebGUI 8. In addition, the Contributor of the Year and Colin Kuskie Award for community contributions were announced. This year’s Colin Kuskie award went out to Patrick Donelan. Patrick was recognized for his contributions to WebGUI 8, in particular for single-handedly increasing the performance of WebGUI by over 300%. This year’s Contributor of the Year award recognizes an outstanding business contribution. United Knowledge won the Contributor of the Year award for their dedication to the Template Working Group, which is working towards standardizing all WebGUI asset templates…

via plainblack.com

Thanks guys!

September 09, 2010

PatrickWUC 2010 Post-Conference Wrap

I was in Madison last week for my third consecutive WebGUI User Conference, affectionately known as “the WUC” (rhymes with “chook”… that’s Australian for chicken).

I spent the pre-conference hackathon working on getting WebGUI 8 to run under Mongrel 2, thanks to lestrrat‘s experimental Plack::Handler::Mongrel2. Since WebGUI 8 is a Perl Plack app, it wasn’t an overly complicated task – I spent most of my time getting up to speed on Mongrel2 itself and learning why a language-agnostic web server rocks (ZeroMQ++). Along the way I found a bizarre bug where Image::Magick was causing the server to hang – but apart from that it was smooth sailing.

The pay-off was being able to show off a live demo of Mongrel2 running WebGUI alongside a Python / JSSocket chat app and a streaming MP3 server all on the same domain as part of my “Plack and the Post-Apache Future of WebGUI” talk the next day (the streaming MP3 server meant that I was able to include a You Am I song in my talk which probably no-one at all in the audience recognised..). I also did a live demo of gugod, clkao and c9s’ very cool XDFighter WebSocket demo (again mounted in the same domain as a WebGUI site), with help from Andy who controlled one of the stick figure fighters from the audience via his iPhone.

None of which was very WebGUI-centric, but that was kinda the point: every cool thing that happens in the Perl PSGI/Plack world is now a WebGUI feature by default :)

The rest of the conference was spent enjoying Wisconsin’s unfair abundance of fantastic locally brewed beer (and fried cheese curd!) and hanging out with all the awesome American and Dutch members of the WebGUI family – many who have attended more WUCs than they can count on one hand (a good reflection of how much fun the WebGUI conferences are).

I’ve submitted a modified version of my talk for the Pittsburgh Perl Workshop (PPW) in October titled s/modperl/plack/, with the intention of ripping out the Plack introduction (people can get a much better version of that at PPW from the horse’s mouth) and replace it with more specifics on how we decoupled WebGUI from modperl (replacing it with Plack) as an example of how others might convert their own legacy modperl applications.

Many thanks to JT and everyone else at PlainBlack for organising yet another awesome Perl / WebGUI conference, you guys rock.

August 18, 2010

Paul DwerryhouseWhy Victorians should not put Senator Conroy last

There has been quite a campaign to encourage people to put Senator Stephen Conroy last on the Victorian Senate ballot paper, in light of his never-ending attempts to filter the internet in Australia.

I can sympathise - several years ago, I was advising people to put Senator Richard Alston last on the same ballot paper, for similar reasons, and did so myself. I was wrong to do this.

By putting Senator Conroy last, you are effectively saying that his policies are worse than everyone else on the ballot paper. I am utterly against the filter, but, that said, there are plenty of issues just as serious, and there are some absolute nutcases standing for election for Victoria's senate seats. Let me provide a few examples:

Family First are a group of extreme religious social conservatives, and most of their members belong to strange pentecostal sects. They too want a mandatory filter, but beyond that, they want to ban internet pornography entirely (good luck with that), they're firmly against abortion and euthanasia, and they believe that "Small Business (are) the True Heroes of the Economy", whatever that means. Now, I'm not saying that Family First are a front for whack-job churches like Hillsong and the Assembly of God, but whenever Senator Steven Fielding opens his mouth, I'm pretty sure he's speaking in tongues. Their Queensland lead Senate candidate has, err, issues, and in the last election, the party demonstrated their lack of judgement by endorsing Pastor Danny Nalliah of Victoria's-bushfires-were-an-act-of-retribution-from-God fame. Stephen Conroy may be a devout Catholic, but he's not beyond ignoring stupid church doctrine and taking advantage of the NSW surrogacy laws, something which his own state doesn't allow. He's far better than the Family First nutters and should be put higher on the ballot paper than them.

The Citizens Electoral Council are a pack of Larouchite loons who should be put absolutely last on any sane human being's ballot paper. Conroy is far preferable to them.

We all know who One Nation are, and what they stand for. The only reason I put them above the Citizens Electoral Council is that One Nation couldn't organise a dinner in a room full of fish-and-chip shop owners. They've proved that they're too incompetent to be dangerous. Nevertheless, they're racist and extreme-right. Conroy is easily better than them.

The Liberal Party of Australia is a socially conservative party with an almost-dead small-l liberal faction. It is led by a man who, when health minister, pulled out all stops to keep RU486 banned in Australia. He believes that "climate change is crap" and is so creepy that he talks to the media about his daughters' virginity. One of the Liberal Party's Victorian candidates that is running for re-election is a former National Party member named Julian McGauran. The Age has an interesting article that refers to him. Definitely going below Conroy.

Obviously, there are plenty of good parties to put above Labor: the Greens, The Australian Sex Party and The Australian Democrats are all socially liberal parties. Stephen Mayne (of Crikey fame) is also running for the Senate, and while I disagree with a few things he's said in the past, he's shown himself to be honest and generally progressive.

But to put Senator Conroy last on your ballot paper is to say that he's worse than a herd of far-right, bigoted religious fundamentalists, who want to interfere with your life. Despite his ridiculous stance on the filter, I don't believe that he is as bad as them.

Paul DwerryhouseVoting in Stockholm

So, I've finished my mad dash from the north of Norway, to Stockholm, in order to vote in one of the only two locations in Scandinavia and the Baltics that Australia makes available (the other being Copenhagen). Australia typically only provides voting facilities in embassies, and as Norway, Finland, Estonia, Latvia and Lithuania only have honorary Australian consulates, there's no opportunity to vote in any of those countries (unless, of course, you have a permanent address there, and thus can get a postal vote).

The voting process was all very straightforward - a room had been set up on the ground floor of the building which houses the embassy, so there was no need to pass through any faux-security measures in order to get in, unlike when I voted in The Hague back in 2001.

No identification was required, as is typical for Australian elections - it was just a matter of completing what was probably a postal vote envelope, and then filling out the ballot papers. The electoral officer then explained how to vote on each paper - the instructions were accurate, though I felt she emphasised a little too strongly that the Senate ballot paper was big, which I suspect caused a couple of people who followed me to vote above the line. That said, she did point out that all the group ticket preference allocations were available for people to read, if they wanted. I always vote below the line, so I didn't have any need for this.

I was amazed, however, at a question from one of the other voters in the room: "This isn't for local elections, is it?". Seriously, I know I'm more attuned to politics than the average person, but a question like this is probably a good argument for compulsory civics lessons in schools. I find it somewhat unbelievable that state schools still brainwash children with religious education, but fail to teach them the basics of how our democracy works.

July 26, 2010

Hiddensoul (Mark Clohesy)HTC Tattoo and tethering

I hooked up the HTC in tether mode tonight, I had to go to settings and switch it off then on manually but then it shared the connection over the phones 3G, cool now I dont have to buy a 3G modem for internet access when I am out, there is also an app in the market to share the connection over an adhoc network so I might give that a try in the future..

July 23, 2010

Hiddensoul (Mark Clohesy)An Android Smartphone the HTC Tattoo

I have been playing with my HTC Android phone for a week or so now and thought I would jot down my thoughts on the phone over the next few weeks, things like how it rates going from symbian s60 v3 to Android 1.6 and what a 'budget' phone brings to the market. The Processor is a  Qualcomm running at 528 MHz The phone runs Android 1.6 with the HTC SenseUI on top. A really nice feature is the

June 18, 2010

PatrickIt’s official: WebGUI 8 will be Plack-powered

Back in December 2009 I wrote about PlebGUI, an experimental branch of WebGUI with mod_perl replaced with Plack/PSGI. As a result, I was able to demonstrate WebGUI running on shared hosting via Plack + FastCGI.

For the next few months I worked through the process of turning the proof of concept into something core-worthy. Primarily that meant removing PlebGUI’s faked Apache2::Request object, completely eliminating any mod_perl dependencies from the WebGUI core and instead baking in WebGUI::Request and WebGUI::Response which are thin layers over Plack::Request and Plack::Response.

By about April most of the basic pieces were in place, performance was looking good, and I’d started the fun task of refactoring WebGUI to take advantage of the value-add features that Plack brings such as Middleware and stealing liberally from other Plack projects such as Tatsumaki‘s streaming API. But there was still lots of work to be done getting the test suite passing again and smoothing off the rough edges. Progress was slow due to my work commitments and frequent travel.

Then three of the main WebGUI committers got involved, first haarg++, then perlDreamer++ and preaction++. The pace accelerated dramatically. This week we officially merged the PSGI branch into the main development branch, meaning that the next major release of WebGUI will officially be a PSGI app!

Huge credit and thanks to haarg, perlDreamer and preaction (and anyone else who contributed too) for getting us over the hump. These guys are also the main driving force behind the other awesome features that are being baked into WebGUI 8, so if you like anything you see in the next version, make sure you buy them a beer or two.

Here are some screenshots of WebGUI with the Plack::Middleware::Debug bar turned on.

Previously, in debug mode WebGUI would append all debug output to the bottom of the page. Now, thanks to haarg’s custom Plack::Middleware::Debug panels, debug messages are contained within the “Logger” panel. Notice also the “Asset Performance” panel, which displays WebGUI::Asset performance metrics. This is only the beginning.

It’s such a buzz to have the PSGI branch merged in; now the real fun starts! I’ll be speaking about the WebGUI PSGI branch at the WebGUI User Conference in Madison in September, and at the rate things are going, who knows how much fun stuff we’ll be able to show off..

I’m also really looking forward to attending YAPC::NA next week (my first YAPC on American soil) and meeting/hanging out with lots other people who have been doing awesome things in the Perl web app space (and beyond). Vive la renaissance Perl!

June 17, 2010

PatrickPlack Apps in Javascript

Love Plack web apps but feel like writing some Javascript today instead of Perl?

# app.psgi
use Plack::App::JSP;
Plack::App::JSP->new( js => q{
[ 200, [ 'Content-type', 'text/html' ], [ 'Hello, World!' ] ]
});

# displays: Hello, World!

Given the similarities between Perl and JSON you can’t actually tell if I’m cheating or not from the above snippet.

Let’s try something more convincing:

Plack::App::JSP->new( js => q{
function respond(body) {
    return [ 200, [ 'Content-type', 'text/html' ], [ body ] ]
}

respond("Five factorial is " +
    (function(x) {
      if ( x<2 ) return 1;
      return x * arguments.callee(x - 1);
    })(5)
);
});

# displays: Five factorial is 120

I just pushed Plack::App::JSP to the CPAN.
Thanks to Salvador Ortiz and Miguel Ibarra whose recently released JSP module makes this possible.

May 04, 2010

JesstaLearning by Trolling

I've been following the development of the Go programming language for a few months now and learning more and more about it.
I've actually found that I learn more about it by helping other people than I would on my own. People on IRC and the mailing list tend to get themselves in to messy situtations and wanting to do insane things and encounter problems I never would. In the process of helping those people with their insanity I actually learn alot.

I tend to have a shortage of problems because I'm very good at planning to avoid them. Which I really think is a disadvantage, especially in any kind of learning or research stages.

The whole reason human beings have advanced technologically has been due to the great number of problems we've had and created for ourselves.
Droughts resulted in the need for farming, farming caused over population, over population caused packed cities of people spreading disease resulting in the need for medical treatments. etc.

If it wasn't for all the stupid problems we wouldn't have the solutions.

April 15, 2010

Greg BanksFirst post!

Oh joys of joys, I have finally succumbed to the repeated blandishments of my buddies Russell Coker and Mitch Davis and have joined the heaving groaning mass of the blogosphere.  The universe may never be the same again.

So what will this blog be about?  It’s a reasonable question, after all.  The answer is: whatever I damn well feel like writing.

Actually the real answer is more complicated, something like “whatever I damn well feel like writing, that doesn’t go against my contractual and moral obligations to my employer, that isn’t against the laws of any country I might want to visit, that I’m unlikely to get sued for, and that won’t annoy my friends too much”.  As usual the truth is messier than the soundbite.

As a guide to what I might blog about, here’s a random selection of my interests:

  • Linux kernel development
  • networking protocols
  • filesystems
  • development tools (profilers, coverage, debuggers, test loads)
  • history
  • current affairs
  • books
  • science, biology, evolution

Yes, it’s all over the place.  Well spotted.  Give that reader a gold star.

Thanks to Russell for setting up WordPress for me.

March 16, 2010

Hiddensoul (Mark Clohesy)Eggs and Ham

I have been spending most of my evenings listening to Amateur radio operators (Hams) on my shortwave recievers. It gives me someone to listen to now that Mick has gone.Currently I have three shortwave receivers, the first one I brought is a realistic DX 150-B from the 1970's. It is a great radio. The second is also a realistic model the DX200 from the 1980's, this is my main listening set.

February 24, 2010

December 22, 2009

LUVBeginner's Workshop

Feb 20 2010 12:00
Feb 20 2010 16:00
Feb 20 2010 12:00
Feb 20 2010 16:00
Location: 

Cinema Room, The Hub @ Docklands, cnr Bourke St and Harbour Esplanade, Docklands

After a short holiday in January, it's time again for the LUV Beginner's Workshop. Come along on February 20.

We intend to cover things like:

  • How should you partition your machine? Should you use LVM?
  • installing various linux distributions;
  • tweaking and configuring your system;
  • automatic backups;
  • home networking, including wireless;
  • setting up specific applications;
  • using specific applications;
  • the Linux problem you're having

The Hub @ Docklands, 17 Waterview Walk, Docklands (near the corner of Bourke Street and Harbour Esplanade - look for the giant rabbit sculpture)
Melway reference: 2E H7

Parking can be found nearby. Coffee and breakfast are available just across the road. Wireless internet access is provided.

For those coming via Public Transport, the City Circle, number 48 (North Balwyn - Docklands) number 86 (Bundoora - Docklands) and number 70 (Wattle Park - Docklands) all stop on the corner of Bourke Street and Harbour Esplanade. Southern Cross Station is just across the overpass over Wurundjeri Road.

February 20, 2010 - 12:00

October 17, 2009

Todd HarbourUser-Agent Stupidity (Wordpress, Amazon etc) ... Android?

According to the HTTP/1.1 specification (RFC 2616, section 14.43) ( http://www.w3.org/ ):

14.43 User-Agent

The User-Agent request-header field contains information about the user agent originating the request. This is for statistical purposes, the tracing of protocol violations, and automated recognition of user agents for the sake of tailoring responses to avoid particular user agent limitations. User agents SHOULD include this field with requests. The field can contain multiple product tokens (section 3.8) and comments identifying the agent and any subproducts which form a significant part of the user agent. By convention, the product tokens are listed in order of their significance for identifying the application.

(emphasis by me)

Despite this quite clear definition, a LOT of websites use the User-Agent in an attempt to identify what capabilities a browser has and deliver it to them. Some might say that Microsoft's usage (abuse) of the User-Agent was the cause of the mess of all this we have today when they made Internet Explorer identify itself as "Mozilla" when it clearly was not. When you think about it though, they most likely did this in order to OVERCOME these already incorrect uses of the User-Agent by web "developers" (as this mozilla page from '98 ( http://www-archive.mozilla.org/ ) also implies).

I use the following true, correct and legal User-Agent for my most used browser, uzbl ( http://uzbl.org/ ):

Uzbl/aa8c2e459cd035f13144c21400f8db1c47a15a36 (X11; U; Linux i686; en-US) Webkit/1.1.6 (A browser built upon the highly renowned web standards compliant and secure Webkit rendering engine that is the heart of several open source web browsers, including Uzbl, Midori and Android Webbrowser)

(the "aa8c2e459cd035f13144c21400f8db1c47a15a36" is actually the git commit (source code version if you will))

User-Agent sniffing is SO bad, that my initial User-Agent (shown below) led to too many sites simply not displaying AT ALL (errors, blank page, etc):

Uzbl/aa8c2e459cd035f13144c21400f8db1c47a15a36 (X11; U; Linux i686; en-US; A browser built upon the highly renowned web standards compliant and secure Webkit rendering engine that is the heart of several open source web browsers, including Uzbl, Midori and Android Webbrowser)

So, whenever I come across a page that I notice does a User-Agent sniff (for example they say "we are sorry, you need to be using IE or Firefox to view this page") I contact the webmaster and inform them of their error. This leads to also no change and in most cases no response.

In the event a response IS received after I contact them, it is usually in the form of "We are looking into this" or something similar to the hilarious "If you tell us your User-Agent, we can add it to the list of working User-Agents".

I have not been hugely affected by this and in the event that a site really doesn't work properly due to this, I will simply go elsewhere and "blacklist" that site (after trying to help them of course).

I have noticed very recently however, a HUGE difference in pages I visit. An extreme number of sites have seemingly started User-Agent sniffing all starting around the same time. As time moved on, I noticed it was largely (but not only) wordpress ( http://wordpress.org/ ) blogs. So what was the symptom of these "sniffing fails"? "Mobile" versions of sites. I visit Amazon ( http://amazon.com/ ) and am presented with a rather plain page:

Amazon as seen by me



This is quite different compaired to the standard amazon page:

Amazon as seen with Firefox UA

This page is displayed by the EXACT same browser, passing all the same header variables with the acception of the User-Agent, where it was changed to:

Mozilla/5.0 (X11; U; Linux i686; en-au; rv:1.8.1) Gecko/20061010 Firefox/2.0

The effect is the same with all those Wordpress blogs. So why's it happening I thought, until I realised, they are all sniffing for 1 simple word... "Android". When they detect a User-Agent containing "Android", they go into this "Mobile" version.

I emailed Amazon to let them know, but got the standard "1-click" reply that's rather common with Customer Support these days:

Hello,

Thank you for your comments about using Amazon Anywhere with your mobile device. In addition to our large selection, one of the benefits we try very hard to offer our customers is convenience. I'm very sorry for the inconvenience you experienced while shopping at our store with your device.
...

Of course, they didn't actually READ my comments judging by the "... using Amazon Anywhere with your mobile device ..."

The funniest thing about this is, that even without any adblock or noscript plugins in my browser, I actually get a rather lean browsing experience as a result of this :p

Perhaps the solution would be to build a mobile device called "Mozilla" ;)

July 06, 2009

Todd HarbourWhy the iPhone sucks SO much

I read an article today entitled "iPhone 3GS Gets Jailbroken, Hack Available Online" ( http://www.pcworld.com/ ). A single paragraph really stood out for me, namely:

"However, the purplera1n jailbreak will free your iPhone from the limitations imposed on it by AT&T and Apple. After jailbreaking, a user will be able to customize the iPhone with home-screen wallpapers and third-party ringtones. But the biggest advantage of jailbreaking is the support of unapproved apps such as iBlackList (blacklists and whitelists for contacts) and many others."

Upon reading this I thought simply, "so, hang on, people are actually truly dumb enough to pay $879 AU ($695 US at time of writing) ( http://store.apple.com/au/ ) for this?!".

You can't run your own applications. To me this is unbelievable. I recently purchased a Palm OS based phone for cheap (off eBay, couldn't get one new ( see my earlier "Good Products are hard to find" post ) and I have so much cool freeware on it it hurts! I've got a RSS/Website feed reader, email client, file manager, PDF viewer, dictionary, thesaurus, complex alarm clock, speech synthesiser, movie player (XVid, Quicktime, etc - you name it), Automatic call recorder, SMS Scheduler, Complex SMS auto-replier, C Compiler and Interpreter, VNC client, SSH client, Source code editor, Text editor, Barcode scanner, Midi editor, XMPP client, Google maps, IRC client, Programmable Remote control, Web browser, a GB/NES/SNES (yes, SNES, as in Super Nintendo Entertainment System)/SMS/SMD etc Emulator and about 4 gazzilion games. This doesn't include the built in apps either, these are just the FREE (as in cost) apps I installed. Stick that up your App Store.

People who own iPhones, just like those who own iPods, deserve what they've got.

For me though, the best bit is "After jailbreaking, a user will be able to customize the iPhone with home-screen wallpapers and third-party ringtones". Riiiiight, so out of the box, you can only have a wallpaper or ring tone that Apple sells/gives you?!

To be fair, with this new model they've added MMS support and copy/cut/paste, voice memo's too! - Apple REALLY lead the pack in tech don't they. Although, they are still missing some features Telstra's $99 AU ($78.55 US at time of writing) T6 ( http://shop.telstra.com/ ) phone has like a built in FM radio, video capture, expandable memory using microSD and proper Bluetooth that works with other Bluetooth devices, not just Apple ones. Oh, and the Telstra T6... I bet it supports having your very own background.

Disclaimer: Please note that the iPhone does actually come with a GPS receiver built in and 16Gb (albeit a hard drive not memory) whilst the T6 only has 45Mb but this comparison was more about showing what a rip-off the crap iPhone is and not how great Telstra's crap T6 phone is.

July 01, 2009

Todd HarbourEssential Firefox Extensions

I use Firefox and have been doing so since before the name change from Firebird (which occurred early 2004) and whilst I have tried other browsers I find a lot of them lacking.

There's Lynx, Links and ELinks but they are text only (well elinks does support a vesa graphics mode I believe but I haven't tried that) and can be a little difficult to use and navigate. There's also dillo but it's SSL support is alpha only at the moment, it doesn't support frames and it's support for image formats seems a little limited.

I find Firefox somewhat better than these although out of the box it's got some annoying limitations - luckily it has extensions. In the past I had to add 20 odd extensions just to make Firefox "almost un-annoying" to me but thanks to Mozilla adding these features in Firefox over time, I've got my extensions list down to a mere 9 which I will detail below (roughly in inverse order of importance, just for fun).

  • User Agent Switcher (https://addons.mozilla.org/)

    This extension allows you to change your User Agent, also allowing you to switch between user-defined User Agent strings. While a lot of people use this to visit websites that say "I'm sorry, you need Internet Explorer to view this" when it would render fine in Firefox, I use it just to set my User Agent to something more generic (namely "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.5) Gecko/2008123017 (A browser built upon the highly renowned web standards compliant and secure Gecko rendering engine that is the heart of several open source web browsers, including Camino, Epiphany, Firefox, K-Meleon, Mozilla, Netscape, SeaMonkey and XULRunner)", an idea I got from Mozilla Firefox Bug 334967 (https://bugzilla.mozilla.org/)). In fact if a website says "You need Internet Explorer", I just take my business elsewhere.

  • Add Bookmark Here² (https://addons.mozilla.org/)

    I realise while writing this, that I don't actually use this extension anymore but only because it doesn't really work with another extension I use that I cherish more. Add Bookmark Here² adds a menu item under each subdirectory in your Bookmarks called "Add Bookmark Here". This is a lot more intuitive and natural feeling than using Firefox's Add Bookmark dialog to navigate to where you want to place your Bookmark.

  • Duplicate Tab (https://addons.mozilla.org/)

    This little beauty is essential when dealing with annoying pages that require you to click something and won't accept it when you open them in a new tab/window etc. It simply allows you to duplicate any given tab to another tab or window, including it's history.

  • Image Zoom (https://addons.mozilla.org/)

    This extension allows you to right-click any image and zoom it to any size. This is a great little extension if you need to get a closer look at an image. As of Firefox 3 "zooming" the page no longer zooms just the text but also the images making this extension less necessary but I still find it better to turn that feature off and reserve their "zooming" to text only and leave the image zooming to this little extension.

  • Stop Autoplay (https://addons.mozilla.org/)

    Stop Autoplay allows you to disable autostarting of embedded media (or exclude it altogether) as well as blocking Flash (though I don't use that feature (see below)). Quick, simple, NECESSARY for those dodgy GeoCities or MySpace websites that spew audio at you obnoxiously.

  • Nuke Anything Enhanced (https://addons.mozilla.org/)

    Ever had a website that brought up an annoying "popup" within the page, blocking the content and not allowing you to read it until you clicked something? Maybe you want to print the page without all the unnecessary images (Note I haven't actually tested this extension for this purpose but I THINK it'd work)? Well, this extension will allow you to right click ANYTHING (yep even a table cell, paragraph, image, frame, div etc) and select "Remove this object". Until you try this, you have no idea how satisfying it is!

  • Adblock Plus (https://addons.mozilla.org/)

    This extension will block ads from websites so that you don't have them in your face whilst trying to read the content. You can subscribe to ad list databases and even add your own manually or automatically (right-click any ad and say "AdBlock this"). I am actually torn with this one as I realise some sites rely on their ad revenue to fund their hosting etc. I would advise anyone who feels this way to still have this installed (but not subscribed to any database) and simply use it for the really obnoxious ads that insist on flashing in your face.

  • Flashblock (https://addons.mozilla.org/)

    The web today is unusable without this extension. This extension is more advanced than Stop Autoplay's Flash blocking capabilities because it still reports to the website that you can handle Flash but it won't actually load the Flash unless you click a cute little play button. Stop Autoplay is aware of this extension and won't fight for Flash control if it sees it (so they play nice together).

  • Vimperator (http://vimperator.org/)

    This one changed my life. It's the best extension EVER. It is designed to allow you to operate Firefox as you would VIM, including many of the same shortcuts and commands. The good thing is you can have it installed and still use Firefox normally and just take advantage of the features you like. It has a most excellent keyboard link navigating system where you press 'F' and start typing the text of a link. As you do so, the list of available will reduce until such time as there is only one left at which time, it is "clicked". While this is happening however, the links matching the text you've typed will be highlighted and numbered so you can optionally type a number at any time to follow that specific link. Features like this make keyboard navigation quick and painless. It has many other features worth looking into too - check out their website for more details. In short though, if you use VIM (and Firefox) you NEEEEEEEEED this.

Well, that's it. My list of required extensions to make Firefox really usable and an almost painless experience.