ATO + Linux = FAIL

Posted on November 25th, 2009 in Comp, Other by Patrick

I keep a windows VirtualBox image lying around for two purposes

  1. To sync music to my iPhone
  2. To use the Australian Tax Office website

I would dearly love to expunge windows from my life entirely, but so far I haven’t been able to find suitable workarounds. For the iPhone, the obvious solution is to follow chromatic’s advice and buy hardware that supports linux, such as an Android phone – and now that Android 2 is out that is looking increasingly viable.

The ATO issue is rather more intractable. Any linux user in Australia who run a business and/or submits their own tax return via the ATO website will be painfully aware that the site doesn’t work on non-proprietary operating systems; specifically, anything other than Windows or Mac. The culprit is the “Common use Signing Interface (CSI)” that the site uses to “allow businesses to securely transact online with Government agencies using digital certificates”. CSI is written in Java, which despite being a horribly verbose enterprise-friendly language, is at least supposed to be a horribly verbose cross-platform enterprise-friendly language (remember WORA?). But in spite of this, the developers did their bit to prove Kirrily Robert right and made the application only work under Windows and Mac.

For fun, I decided to submit this as a bug. Subsequent correspondence with the ATO follows for your enjoyment.

Mike@ATO:

I spoke to you yesterday in relation to the feedback you gave the ATO in relation to our Business Portal.  As I said on the phone  here is an email with some information I have been able to find.

I have received some advice from our Portal Support area.  Their response to the issues you raised were:

ATO Portal Support: (my emphasis)

Stated here is that the client cannot log into the Business Portal as he is running Ubuntu and Firefox. In this situation Firefox is not the issue as Firefox is supported for the Portal and testing has been completed around this.

The issue for this client is to do with CSI (the digital certificate software) and Ubuntu. CSI would not be able to be installed on Ubuntu and is not supported for CSI software as per the link below:

http://www.ato.gov.au/onlineservices/content.asp?doc=/content/36220.htm

If the user was using Firefox on a windows based system this would work correctly.

The difficulty with Linux based operating systems is that the percentage of users is quite low for Linux operating systems and also there is a large quantity of Linux distributions (or types) making it very difficult to support.

Hope this answers the queries set out below, if you need any further information please don’t hesitate to contact me.

Mike@ATO: (my emphasis)

Probably not what you wanted to hear and not sure how much this helps you.  It is unlikely that the ATO would be doing any work to address the compatability issues for Ubuntu due to the costs involved and the anticipated small number of users. The ATO believes that it is complying with the Australian Government’s guidelines and recommendations for government websites.

If you believe that the Business Portal is not supporting Firefox and were able to provide the specific circumstances it would give us an pportunity to do further investigations and address those concerns.  If you have any further issues or comments feel free to contact me.

Me:

Thanks Mike, I’m really impressed with the way you’ve followed up on this.

That’s great news re: Firefox.

If it’s not imposing too much, would you be able to ask the Portal Support person what percentage of Portal users are Linux users and what percentage of Portal users have Javascript turned off?

For example, on an internet-wide level, the latest W3C stats show Linux usage at 4.1% vs 5% for browsers with Javascript turned off. This is likely to vary wildly on a per-site basis, which is why I’m interested to find out what the specific ATO Portal numbers are.

I’m wondering what percentage is required before the Linux user group becomes worth supporting, and seeing how this compares to the current percentage of disabled web users which the ATO website currently supports via Australian Governement Accessibility standards (e.g. http://australia.gov.au/about/accessibility).

Mike@ATO: (my emphasis)

The following information is provided in relation to your latest enquiries.

In relation to the Business Portal we do not gather specific statistics regarding specific operating system usage or if a user has Java script turned off.  In saying this though I could assume that there would be 0% Portal users utilising a Linux Distro, reasoning behind this response is where by CSI (the software that allows login with a digital certificate) cannot be loaded onto or used on a Linux operating system and is not supported by the ATO.  So basically there wouldn’t be any users as they wouldn’t be able to access via Linux.  Regarding the Java script query, this is not something we would be able to answer as we do not gather those statistics.

The statistics you have quoted are an internet wide statistic as stated and cannot be related to the Portal as in the first response there would not be any users as CSI is not supported for Linux.

It should be noted that as the stats for usage for Linux is quite low this is not just an issue affecting the Portal and the ATO. There are a plethora of systems and software that does not support Linux as the user base is just not there to support. This position also aligns to that of the majority of the software developers producing the accounting and practice management software used by our clients.

The link you provided to the Australian Government Accessibility Standards goes to a page discussing the commitments by the Australian Government to ensure access to online information for people with disabilities.  There is no corollary between our obligations to support users with disabilities and users of specific operating software.  Government agencies are bound by specific legislation (Disabilities Discrimination Act) on the issue of accessibility of Government services.  This does not apply in the case of operating software choice.

The final point to note is a Catch 22 situation ie Linux users aren’t clients because the systems don’t support them and because they can’t use our systems they’ll never make up a large enough percentage of our clients to warrant changing our position.  I think the answer to this is that the Linux users of our website as opposed to our installable applications (e-tax, ECI, CSI, eSAT) should not be overly impacted by compatibility issues.  Statistics collected by the ATO show that only 0.3 percent of visitors to ato.gov.au were identified as Linux users.

In summary:

* We do not routinely test our online applications against Linux;
* Consequently, we do not support Linux through our technical support areas;
* Given the very low verifiable client base percentage (<1%) that are Linux users, there are no current plans to change this approach;
* There is no defined threshold % at which this position would change.

Realistically, in the absence of any substantial research or statistics confirming a much greater Linux client base then we are currently aware of, the position stated in the dot points above is unlikely to change.

I also appreciate that this situation is less than satisfactory to the Linux clients, however, we are bound under our policies and financial legistlation to ensure that expenditure of public monies promotes the efficient, effective and ethical use of all Commonwealth resources and provides value for money.  Any stance other than that above would not be in keeping with our obligations under the Financial Management and Accountability Act.

Hope this further information answers your enquiries.

So there you have it. End of story. No ATO for linux users. Ever.

..

heh yeah right.

Where the Australian Government fails you, the linux community saves you. Someone slap me for wasting 3 weeks on an email exchange instead of just asking google.

Whirlpool.net.au to the rescue:


sudo apt-get install sun-java6-bin sun-java6-jre sun-java6-plugin
export JAVA_HOME=/usr/lib/jvm/java-6-sun/jre
wget http://pki.ato.gov.au/atocsiInstall/CSIinstall.dmg
sudo mkdir /tmp/csi
sudo mount -t hfs -o loop CSIinstall.dmg /tmp/csi
sudo cp -p /tmp/csi/CsiInstaller.pkg/Contents/Resources/jarFiles/csi.jar $JAVA_HOME/lib/ext
sudo cp -p /tmp/csi/CsiInstaller.pkg/Contents/Resources/jarFiles13/jce1_2_2.jar $JAVA_HOME/lib/security
sudo umount /tmp/csi
sudo rmdir /tmp/csi
java au.gov.bafcsi.clapi.crypto.CsiManager # run CSI certificate manager program

You can even drop your .csi directory from your windows home dir into your linux home dir and your existing certificates will be appear without any need to manually export/import them. After completing the above steps, completely disable AdBlock, restart Firefox and you can log in to the ATO website!
(tested on Ubuntu 9.10).

Now all I have to do is ditch my iPhone..

The curse of console.log

Posted on April 3rd, 2009 in Javascript, Music by Patrick

Here’s a common scenario, you’re on-site demonstrating some fancy new Javascript interface you’ve written, only to discover that some part of it that was working so beautifully on your dev box inexplicably breaks. hmm you think, must be a bloody IE bug. You try it in Firefox.. it still doesn’t work, what the?!

Later that day you get home and on a hunch run a quick search through your source tree:

> ack  ‘console.log’
www/extras/wobject/Survey/dd.js
96:console.log(destEl);

The culprit is Firebug’s console.log() function. The damn thing is just too handy. So handy that a few years ago the collective web development community abandoned alert() as the #1 debugging weapon of choice. Now we all use console.log(). Forget the firebug debugger, nobody can be bothered bringing up their js source in the script tab and clicking the break button or setting a watch variable, that’s like, 4 clicks too many man! Whack in a of console.log(a, b, c)s and it’s all there, plain as day in the firebug console, ready to be clicked on and examined further  in the DOM tab.

Until you forget that not everyone in the world runs firebug. Hard to believe, I know. But actually, the problem occurs for anyone who hasn’t got the firebug console turned on for YOUR SITE. The problem being of course that you probably always have the firebug console turned on for your site, but no-one else in the world does. So the likelihood of being bitten are pretty high.

Of course, there are lots of workarounds. One approach is to just define console.log as an empty function (and while you’re at it, you may as well define all the other Firebug functions too):


if (!("console" in window) || !("firebug" in console)) {
 var names = ["log", "debug", "info", "warn", "error", "assert", "dir", "dirxml", "group", "groupEnd", "time", "timeEnd", "count", "trace", "profile", "profileEnd"];
 window.console = {};
 for (var i = 0, len = names.length; i < len; ++i) {
 window.console[names[i]] = function(){};
 }
}

In my case the code was part of a drag and drop method used in WebGUI. And like all sane web projects, WebGUI oursources its cross-browser Javascript concerns to a library (in our case YUI). And it turns out YUI has a perfectly good logger of its own, guaranteed to be available on any page that YUI is loaded onto. Hello YAHOO.log();

Now, “YAHOO.log” is 1 letter shorter than “console.log”, so why does everyone end up using console.log() all the same? Maybe they don’t like typing in upper-case. More probably they noticed that when they use YAHOO.log(‘blah’); nothing appears in the firebug console. What gives? Well, you need to tell YAHOO to pass on log  messages to the console, that’s what. Type the following line first, and everything will work out just fine:


YAHOO.widget.Logger.enableBrowserConsole();

Of course, that’s a lot more letters than just typing console.log(), and what’s more you need to use YAHOO.lang.dump() to serialise objects passed to log() (no nice firebug object examination), which admittedly is a lot less fun. But it does mean a little less broken code in production.

People Behind WebGUI

Posted on March 3rd, 2009 in Other, Perl by Patrick

I was recently interviewed as part of the “People Behind WebGUI” series on webgui.org.

pbwg_patrick

My Road Bike

Posted on July 7th, 2008 in Cycling by Patrick

With the Tour De France in full swing I thought I’d post some details about my current road bike.

The original bike that I bought in July 2007 in Osaka, Japan was a 2008 model Specialized Roubaix Elite Compact. The image I grabbed from the Specialized website is the exact same colour of my bike (I would have gone for something more interesting looking but it was hard enough finding a frame in my size in Japan, let alone being picky about colour).

2008 Specialized Roubaix Elite Compact

I bought her from Yoshito Yamamoto at Cycle Station Speed for about AU$2,000, roughly $1k less than the equivalent price here in Australia at the time (and subsequently got hit with $350-odd in duty by Australian Customs on the way home.. damnit!).

5000kms on Melbourne roads later my drive train was pretty worn out and the spokes on both wheels were becoming quite a pain (either frequently loosening or siezing up completely so that I couldn’t adjust them to re-true the wheels).

I recently upgraded the wheels to Easton EA90 SL for approx AU$500 (big ups to ebay). At 1532 grams they’re a lot lighter than my old Specialized wheels. They’re similar to Easton’s flagship EA90 SLX wheelset except that they have some extra steel spokes, which is great for someone looking for light but durable wheels. I’m not sure if it’s just psychological, but they feel really responsive when accelerating.

Easton EA90 SL Wheelset

I’ve also started upgrading my groupset from Shimano 105 to Dura-Ace. So far I’ve done the crankset, bottom bracket, rear cassette, chain-rings, and chain. The bottom bracket has had a ceramic bearing upgrade. Not sure if I can feel the difference with the ceramic bearnings, but overall it’s definitely smoother than with my worn out old 105 components.

Here’s a couple of recent pictures post-upgrade:

Dura-Ace Easton Roubaix

Dura-Ace Easton Roubaix Closeup

Next Page »