Archive for the 'general geek' Category

Usability atrocities – ParentPay

ParentPay is, according to its Twitter profile “the market leading online payment & dinner money management solution for schools and caterers, used by hundreds of thousands of parents each week.”

It’s quite a good idea – I load up the account by credit card and, as my daughter buys lunch, the account reduces and I get an itemised bill so I can ensure she’s getting her five a day.

The school are supposed to tell her when her account drops below £5, and she’s supposed to inform me. Somewhere in this chain that involves a computer system, harassed dinnerladies and the legendary communication skills of a twelve year old girl, the system breaks down. Therefore, I rarely find out that funds are low until I receive an accusing text at 8.30 am, or on her arrival home when she tasmanian-devils through the family food supplies because she couldn’t afford lunch.

This morning I had just such an SOS text so went to the website. As usual, I’d forgotten my login details (I really want to use my email address instead of choose a username so it’s less to remember). The password reset showed me a splendidly helpful error message:

Server-specific error message in web page

Showing techy error messages saying “server errors in ‘/AUTH’ application” and a handy snippet of XML is unlikely to assist a user. However, showing error messages that can identify a specific server technology is of tremendous use to hackers – they know which server and potentially which version number to target.

After 20 minutes trying different username and password combos, I got into the system and made my payment – puzzlingly, to an organisation called “Alliance in Partnership”, on a website called “ParentPay”. Eh? Alliance in Partnership sounds like some barking rightwing thinktank. But I persevere.

I then verified my transaction via the pseudo-security of Verified by Visa (or its equivalent, Mugged by Mastercard), which is heavily JavaScript-reliant and which reportedly can’t be used on some mobile phones. (This isn’t a criticism of ParentPay, by the way: it’s a cunning ruse by the banks to dodge responsibility.)

I want to like ParentPay. I think it’s a good idea and I hope they succeed. But they need to think more about their customers’ experience. Here’s one tip that would make my life slightly easier.

I know that such a thing is currently beyond human ingenuity and no technology exists that could power such a marvel, but perhaps ParentPay may consider a system that emails me automatically when the account drops below a certain threshold, thereby guaranteeing an uninterrupted supply of bratfuel?

Added 12.30pm

Someone from ParentPay contacted me and said, with admirable politeness, that there actually is such an alert facility but only available at some schools and, once checking that my daughter’s school does offer such a facility, showed me how to set it up.

It’s not easy to find (on the page that tells your balance there is the opportunity to sign up for paid SMS alerts, but no option for emails so I assumed it doesn’t exist), but after verifying my email address I am now signed up.

So I beg ParentPay’s pardon is assuming there isn’t such a system, but suggest that they make it more obvious – I think I’m pretty web savvy and couldn’t find it.

And, in answer to other queries I’ve received, once topped up with money, their system has been flawless over the last 10 months.

I hate computers, but I love what you can do with them.

My friends think I’m a geek and have stopped reading this blog because of its boring techy content. My family don’t understand how I earn my money.

But I’m not a geek. I didn’t see Tron or the Lord of The Rings. I never play computer games. I’m scared of Git and Subversion. I can’t compile a kernel. In fact, I hate computers—I just love what you can do with them.

When I first started professionally in computers in 1988, I was writing COBOL, FORTRAN, 6502 assembler. There were no GUI tools; everything was command line. That was then. Now, I see no reason why I should need to learn some weird syntax to achieve a simple task.

Exhibit A: I was amused yesterday to read the webP converter instructions for converting imageA.png to imageA.webP. Unless you specify the string “-o”, the converter doesn’t convert: “If omitted, cwebp will perform compression but only report statistics.” What’s the bloody point of an extra switch to make it fulfil its sole function?

I think of non-GUI programs in the same way as I do about going camping. Some people love sleeping in a tent and getting up in the night to walk in the rain to poo in a hole they’ve dug behind a tree. Not me. I spend a considerable portion of my income on a house with a central heating system and three flushing toilets, so there’s no bloody way I’m going camping.

You may think it a badge of honour that you can do “sudo dpkg -i –force-all cupswrapperHL2270DW-2.0.4-2a.i386.deb” from memory. I think you’re burying your turds with a trowel in a thunderstorm.

Operating systems are the same. Despite the fervent wishes and protestations of adherents of operating system X (or Y), each demand that you learn a special way of working to accommodate its own idiosyncrasies. Where the operating systems (or browsers, or Word Processors) agree on a method, it’s not because it’s natural, it’s just a thoroughly-entrenched convention. The Firefox UX blogpost Joe’s First Computer Encounter shows that there are very few “natural” interactions with computers.

So by now you’re wondering why I do this job. “Why, Grandad”, you are shouting in my ear trumpet, “Why do you accept a salary from the geekiest browser out there when you’re clearly 200 years past your sell-by date?”

Because, I reply while drooling onto my cardigan, I love what you can do with a computer. I can use VoIP to call someone anywhere in the world for buttons. I can discuss Shakespeare, furry culture or even HTML5 with someone I’ve never met (and will probably never meet), for free. I can do research, download books, read the thoughts of someone in Iran, or Iraq or Peru or Burma. I can listen to music that would never be commercially released, and I can see photos of anywhere I could ever fancy going, read reviews of hotels and book holidays in an environment which is as close to the micro-economic theory of Perfect Competition as we’ll ever see. Because, at the moment, a computer is my best way to access the Web, which connects me to a third of humanity and, when made properly (accessible HTML isn’t that hard, really), is the most democratic, inclusive mode of communication we’ve ever had.

I hate computers. But I love what you can do with them.

On videoing conference sessions

PPK has released a very good Conference Organisers’ Handbook in which he writes

Recording the sessions on video is becoming a custom, and a very good one. Every single session that’s out there as a video increases the knowledge of the web community as a whole, and in the end that is the goal of your conference, too.

I completely agree. Speaking at conferences is a big part of my job evangelising open Web standards for Opera, and videoing the talks is a great way to reach even more people.

So here are some notes on PPK’s advice.

Don’t try to claim copyright

I spoke recently at an excellent event and, as I was preparing to leave, I was handed a release form that granted the organiser the right to publish the video. I always read these, and encourage every conference speaker to do so. It’s lucky I did; a clause in the release form asserted that I grant copyright to the conference organiser, and give them the right to pass on the material to subsidiaries, and “third-party affiliates”.

There are several problems with this. Firstly, and primarily applicable to speakers who are representing their employers: I don’t own the copyright to my talks, Opera does as Opera pays my salary. Also, I have no authority to bind Opera to a contract anyway, so wouldn’t be able to assign such rights away. Most importantly, however, and applicable to most speakers I see: I don’t own copyright for the creative-commons images that I use in my talks, so cannot assign those rights to someone else.

(There is a happy ending to this: when I pointed out the problems to my hosts, they immediately understood and sent me a much simpler agreement that said simply “we will publish the video but make no claim to ownership or rights to the content”.)

Don’t make the video members-only

If you publish videos, don’t put them behind some kind of login or (worse) a paywall. I consent to conference organisers publishing video because it enables those who couldn’t come to the conference to get the content. If it’s only behind a login, it doesn’t get that extra reach.

If it’s behind a paywall, I can’t allow you to reproduce my slides, as some of them are licensed creative commons non-commercial. Now, I’m starting to think that creative commons licenses are so ambiguously worded that it’s impossible be sure that you’re not in breach (see my concerns about sharealike), but to me, using an attributed non-commercial image is OK as long as I’m not directly profiting from that image, eg by selling copies of it or making t-shirts with that design. But I don’t know if it counts as “commercial use” if it’s in a presentation behind a paywall. As I have no wish to be sued in order that someone else can make a profit by restricting circulation of the video, I don’t consent to that video being published. (It’s why one talk of mine was recently published audio-only).

Commercial conferences should transcribe the videos

If you’re a commercial conference, you should transcribe the videos at your own expense so that they’re accessible to people with disabilities. (I don’t mean for grassroots conferences that charge a small entrance fee to cover costs, I mean for big commercial conferences that have a ticket price in the hundreds of dollars).

Creative Commons Share Alike, my bum

As part of tarting up Introducing HTML5 for its second edition, I’m discussing the very useful -moz-ui-invalid pseudo-class. The documentation at Mozila Developer Centre is a paragon of clarity and succinctness, so much so that my instinct is to quote the 4 lines “The result is that .. unchanged valid value” with attribution, rather than rephrase it and reduce its clarity.

However, the license for that page is CC Share Alike:

Share Alike — If you alter, transform, or build upon this work, you may distribute the resulting work only under the same or similar license to this one.

Now, I don’t know whether quoting within a chapter is “building upon” or not. I can’t release the book under a similar license as neither Remy nor I own the intellectual property (we tried to persuade the publishers to release it but they were… somewhat antipathetic (ahem) to that idea).

Twitter chums advised that quoting 4 lines was OK as “fair use”. But I’m in the UK and as far as I can tell, we don’t have that concept here. Wikipedia says of UK “fair dealing”:

Under the Copyright, Designs and Patents Act 1988 (CDPA), fair dealing is limited to the following purposes: research and private study (both must be non-commercial), criticism, review, and news reporting (sections 29, 30, 178). Although not actually defined as a fair dealing, incidental inclusion of a copyrighted work in an artistic work, sound recording, film, broadcast or cable programme doesn’t infringe copyright.

But our book is a commercial project. It’s not criticism, review or news.

So I’ve emailed the MDC to ask them to waive their rights. I’m writing this book as a private individual, and the derisory royalties that technical books produce don’t make me willing to accept personal legal risks: no way am I risking my house, which is the only thing of value I own. (Hiring a lawyer would use up all my royalties.)

This emphatically is not a criticism of Mozilla – they’ve always had an excellent track record of openness and I’m certain they’d be delighted to be quoted in a chapter that praises them.

It’s a criticism of UK copyright law and the Share Alike license which doesn’t define “build upon” or “non-commercial” in any useful way.

Reading list

HTML5

Other Web

Lulz

Opera Dragonfly

The big news was that Opera Dragonfly was released. I made a video to introduce it to you (best viewed full screen):

Opera Dragonfly tour (8 mins) from Bruce Lawson on Vimeo.

You want HTML5 funky dirty native, don’t you?

Made by someone commenting in Haavard Moen’s post about the announcement of "native HTML5", this video does NOT represent Opera’s official position, but it did make me laugh. Personally, I like "native HTML5". It’s important that it not be tainted with our "modern ways", but preserved for diversity reasons (thx @stommepoes!).

Microsoft announces an important innovation.

Official interview with me about Native HTML5.

Screencasting an Android phone

For my talk on HTML5 multimedia next month at web directions @media I plan to very quickly demo the HTML5 getUserMedia API (formerly <device>) on my Nexus S.

On my old Windows Phone I had a lovely program called MyMobiler to view your mobile screen on your desktop, which you installed and Just Worked.

Not so easy on Android, it appears. I found Android screencast but couldn’t get it working on Windows. So I tried it on Ubuntu; still no joy. When Ubuntu, hacking and things not working coincide, the way forward is to invite Stuart Langridge out to the Opera-Canonical Temple of Synergies and buy him beer while he swears at your machine, Google, Oracle, Ubuntu and anyone in the immediate vicinity. (“Java! You’re a massive cock-bubble!” was one exasperated highlight.)

And he did it! Read how in Ubuntu and Android, sitting in a tree (nearly), in which Stuart calls for Ubuntu to become the best platform for Android development.

Then we put the world to rights and agreed with each other about Apple again.

Update: Since writing this, I’ve been recommended Droid@Screen. I haven’t tried it yet, but I’m told it’s better than the method above, and it can be started by double-clicking the JAR file.

Hurray for friends who are cleverer than oneself.

Windows Backup did not complete successfully

This took me ages to discover (and hat-tip to Sarah Bourne for the answer) so I’m posting it as it might help someone else.

If you suddenly start getting this error when doing backups on Windows 7, run a full security scan and kill any quarantined viruse. (I use the free-to-download Microsoft Security Essentials.)

Why the error message is so stupidly unhelpful, and why Windows back-up doesn’t simply carry on in the legitimate assumption that you’d rather not backup quarantined viruses, are just two of the many mysteries of the universe.

Old programmer war story

I had to smile to see some young whippersnapper ask “What are the Windows A: and B: drives used for?“, and thought back to when I started using computers that were even pre-floppy drive (you saved and loaded from a cassette tape and sat listening to the high-pitched noise as it loaded for 10 minutes with fingers crossed in case of data error), and decided to write down my favourite computer war story of prehistoric times.

Between 1988 and 1993 I worked for a very large computer services company, writing VAX/VMS Fortran and Cobol programs that drove an “online” Viewdata service that allowed the dealer network of a British car company to record sales and arrange finance. No program module could be more than 8K, I recall – so fripperies like comments, meaningful variable names or 4 digit year numbers were luxuries we couldn’t afford.

At night, the service was suspended while batch jobs ran to produce great big magnetic taps of data that were taken by motorcycle courier from the West Midlands to London in time for the BACS run at 7 am, when the banks did all their transactions. If you missed the BACs run, the previous day’s sales were not debited form the customers’ accounts and therefore not credited to the car dealer. Because of this, members of the team took it turns to carry a pager so that we could be contacted if there was a problem outside office hours (no mobile phones then!).

In the early hours of the morning of 2nd of August 1991, I was disturbed in flagrante delicto by my work pager chirruping. I phoned the operator at our computer data centre to be told that one of the batch jobs had failed with an inscrutable error message. Of course, these days I’d open my laptop and search the Web, but way back then I had no option to get a taxi into the data centre and go to the big cupboard full of the big orange ring binders that contained the manuals.

The error message told me that a data type had overflowed. A further 30 minutes led me to conclude that the running total of sales value was being stored in an INTEGER*4 variable. Because it was an integer, it was being tallied in pence rather than pounds – and at £55m (or 5.5 billion pence) the number was too big to store in 4 bytes. The previous day’s trading, 1st of August, was the first day of the new registration year, so everyone had rushed to be the first on their street/in their office to have the newest registration plate.

Another half hour with cigarettes, vending machine coffee while looking at the manuals suggested that I could substitute a REAL*4 variable and tally in pounds with two significant decimal places for the pennies. With no time for fripperies like testing my theory, I recompiled and relinked all the programs and ran the batch job again as dawn was breaking.

The leathered-up motorcycle guy was in Reception by this point. “It’s going to start getting busy on the M25″ he warned as we mounted the tapes to write to.

It was with a queasy feeling that I checked the logs before writing the tape to make sure that the grand total was £55million. If I’d got it wrong, I would rather not send a tape to the bank at all than send a tape that erroneously debited £5million or £550million. I was also painfully aware that I had no authority to take such a decision—and a day’s interest on that kind of money was not trivial. But by the time I had found the number of someone with such authority, phoned him, awoken him, explained the position to he could take the decision, it would be too late.

Success – the total was correct! While the courier grumbled that he was going to perhaps exceed the 70mph speed limit on British motorways, the tape was written, boxed up and put in the cycle paniers. As the courier roared off, I wearily got into a taxi back to my sleeping lady-friend, to shave and shower to start work at 8.30 again.

You young ‘uns with your APIs and debugging consoles. You don’t know you’re born.