post

User Interfaces are rarely Universal Interfaces

If you’ve used computers for a long time, you’ll have trained yourself subconsciously to use the visual language of using a computer of that time.   You may have even been using the language of one dialect of computers for all your life and that is dangerous.

It breeds a certain expectation of how things should work; for instance we might consider the seemingly ubiquitous floppy-disk-as-save shorthand.  That save icon has lost the original meaning the skeuomorphism suggested; that button is pretty esoteric to someone who has only used computers in the current environment of always online cloud computing.  I however have had the misfortune of learning that the picture of the floppy disk means ‘save’ to the physical floppy disk and therefore people of my generation have kept that in the design language of computer systems.  I feel sorry for younger people in school today when they encounter software written by someone my age.  It’s the visual equivalent of calling a Toyota Prius a ‘motor car’.

hamburgers icon

hamburger menu icons

We’re surrounded by really bad iconography and user interface, because what we’re trying to convey is too complicated or taboo to encapsulate in a single little picture.  Also, we’re quite adept at learning that a strange little symbol means something – one such example is the hamburger icon, which I personally like, but I have heard so many people complain about it.  If you don’t already know it represents a menu, and short of something better coming along conveying visually that a menu will appear when you click it, we’re going to be stuck with it so get used to it.

It’s exactly why I struggled using Microsoft Office’s groundbreaking “ribbon interface”.  It just became so confusing that I simply starting using a more familiar alternative that aped a much earlier version.

Jellyfish jumping out of a waterfall

Jellyfish jumping out of a waterfall

Car designers along with equipment manufacturers also struggle with icons as they face the same issue: a device with hundreds of words representing functions would be very difficult to sell internationally.  Thankfully, context sometimes comes to the rescue in most programs and devices and allows the user to have an innate clue as what that button might do by scanning eyes around the device.  The rear fog lamp, which is a strangely European requirement on cars, has an icon apparently totally confusing to other nationalities as they don’t have them; so an icon showing an old fashioned headlight isn’t going to immediately be obvious to the first time user.

Snooze

Snooze

My personal favourite poor iconography is the humble unisex toilet sign: I always assumed as a young child it was a bedroom to take a snooze in.  I think it was because at that time most toilets just had the word “GENTLEMEN” on, and unisex toilets were relatively rare except on trains which just read “TOILET”.  I guess it was a time when the UK wasn’t accommodating even a little to people who couldn’t speak English.  I always felt a picture of an actual toilet would suffice, then I’d not have envisioned a prudish clothed heterosexual couple lying very still on a bed either side of a dividing wall; but then again that might say more about me than it does about the icon.

post

Poaching eggs isn’t programming

You must have heard the analogy before: programming is like giving the computer a recipe to make the program you wish to build.  Let me tell you: programming is much, much easier.

We’ve all been there, following ‘a simple recipe’ containing uniquely bonkers metric and imperial measures and mocking vagueness of instructions like “lightly brown”, “rolling boil” or “until the texture of porridge” and we’ve ended up with a horrific mess we’ll just call dinner.  It’s edible, sure: but it’s worryingly reminiscent of the result of someone dragging a hot frying pan through an abattoir sluice and then topping it with next door’s food waste recycling served with mayonnaise.

As a direct opposite, if you follow a well written programming guide, you’ll get exactly what they got and learn from mistakes.  You can save at various points and in most modern languages you can try something out as you go – essentially you can lick the spoon throughout the process.  Programming in a scripting language like PHP, Python or Javascript is very try and see, much better than waiting for Pascal or C compiling back when I learned to code.

I’ve come to believe cooking is a skill you either ‘have’ or ‘have not’.  I’m sure I’m able to be taught to cook a certain specific recipe using the tools present in that kitchen; but maybe I’m wired wrong, I cannot cook even though I want to be able to.  Maybe it is the subtlety of cookery instructions given – you either understand them a priori and make glorious presentable or you research what was instructed, copy the procedure as described and end up with marginally edible results.

My usual poached egg results

My usual poached egg results

I present the horrifying idiosyncratic world of the poaching eggs method.  If anyone ever asks me to poach an egg I will just fry the damn eggs and save the mess, disruption and ridiculousness of the attempt.  They’re not that nice, I mean I’d not really pick it in my top three egg cooking methods.  However, against my better judgement, this morning I decided on a whim to poach some eggs (results above) and even using a device sold to aid the process I ended up with what I like to call Egg Soup.  Bravely, I fished out the larger coagulated masses, served it on some toast and with some salt and pepper.  I enjoyed the result; given I was very hungry, but towards the latter part of the consumption process I spied some mould on the crust of the remaining bread, threw the rest away and now have the sneaking suspicion that for the remainder of the day I’ll have psychosomatic stomach discomfort.

So let us consider a recipe for Poached Eggs.

Preparation method
  1. Fill a small pan just over one third full with cold water and bring it to the boil.
  2. Add the vinegar and turn down to simmer.
  3. Crack the eggs one at a time into a small bowl and gently tip into the simmering water.
  4. Lightly poach for 3-4 minutes.
  5. Remove with a slotted spoon and drain on kitchen towels.

BBC Food Recipes

I immediately have issue with the method: “small pan” – define small; are we talking a shallow frying pan or a small diameter sauce pan?  Next instruction – define simmer is that some strange matter changing state the world of science has yet to unlock?  Okay, simmer probably means keeping it from bubbling, but still, can we have a temperature to aim for?  Instruction 4 is a total peach: lightly poach?  As in perform the method I’m trying to achieve as if I didn’t need this guide already?  It is at this point I claim shenanigans, like it is some life long joke aimed at mocking my inability in the kitchen and just eat at restaurants or warm up ready meals.

Addendum

Since I posted on Twitter about my poaching inability, I’ve had two people suggest how improve how to cook them:

  • boiling hot water and fresh eggs are key
  • use the cling film method

I know they mean well, but I’ve tried these (plus adding vinegar, swirling the water etc.) and it’d probably be better if I just have scrambled eggs in the future.

post

What is the cost of free software?

You might think that if you don’t pay for something, but are unhindered in using it, it’s not costing you anything.  It is with this in mind I have to disagree when someone tells me some software is free.

As a non-digital example you might consider the air, which doesn’t cost you anything and you have unhindered access to it.  So you might presume that the use of some software is the same, especially things like web browsers which you can freely download and install for free – but it depends on what you are giving up to use that software.

For instance, if you look at Google Chrome, you install it for free but you give Google a way of gathering data about your browsing habits; essentially you sign up to being guinea pigs for Google.  Furthermore, at any time, Google can withdraw that software; they have no reason to support your use or any legal obligation to improve it.  There’s nothing inherently wrong with that, but you need to be aware of just how free that software is.  In addition to owning a free piece of software, Google prevent you from seeing inside it.  They have a commercial and legal right to protect its software from competition and illegal use.  This is where free software gets really hard to decipher.

If I buy a sandwich, I can look inside it and add mayonnaise if I like.  If I buy a car, I can repair a headlight myself to continue using the car at night.  If I buy a book, I can make notes inside it and use it for purposes unintended by the publisher: I could use it as part of a stack of items to prop up a couch, for example.  Software isn’t like this at all.

Remember those EULAs you’ve signed?  They’re End User License Agreements, and you must “Accept” or “Agree” to them in order to install most software – even the free bits.  They often protect the software company from people making claims of damages if the software fails to work as expected. they might prevent you from amending the software and profiting from resale.  Essentially they’re saying you agree that you can’t add mayonnaise to your free sandwich, repair your free car’s headlamp or use your free book to prop up your couch.  So you’re giving away your consumer and ownership rights, which you’re quite happy to do.  So it’s a little less free again.

In opposition, there is a movement of Free and Open Source Software (FOSS) which differentiates itself from this “Closed Source” EULA protected software, by an easy distinction: It’s Free as in Free Speech, not Free as in Free Beer.  The FOSS movement doesn’t prevent you from doing anything from their software, however you intend to use it.  They just hope you’ll use it and enjoy it, maybe even become involved in the project and make things better.

post

What exactly is UK Keyboard Layout anyway?

It’s not what you think it is, that’s for sure.  Basically, it depends on the manufacturer and for which operating system it was designed to be used with.  One thing to note is that the Windows/IBM standard of putting the hash # on UK keyboards just to the left of the return key (on the same key as the tilde ~) was so we could have the more useful GBP sign £, not because that’s where it belongs.  Essentially, you’ll see that it was put there to hide it away as it was little used.

Regarding the Mac keyboard layout for UK, I struggle to sympathise with their decision that the ‘standard’ position of the hash key # being ⎇ alt +3 instead of Shift + 3, so we can have the pound key £ – but I have learned it’s there all the same.

Just like anything else, many standards arise from sheer tradition.  It is therefore simply tradition that sees Ctrl+C, Ctrl+X et al being the keyboard shortcut on IBM/Windows devices, in opposition to the view held by many that it’s “the correct keyboard shortcut”. In fact, the IBM keyboard didn’t feature a Ctrl key until 1986, 6 years after Apple had the Command Key  on their 1980 model.  So if anything is the standard, it’s the Apple Cmd+C, Cmd+X et al.

In case you’re interested, here’s a look at a UK BBC computer keyboard layout,the Mac keyboard from 1980 and an IBM keyboard from 1986.

bbc keyboard

bbc keyboard

Apple keyboard

Apple keyboard

ibm keyboard 1986

ibm keyboard 1986

 

post

24th January 1984

I was copying a large file and noticed that the Date Modified field in Finder showed “24 January 1984 09:00”.  I thought for a second that it was a result of being copied from a Windows to a Mac OS, but turns out it’s an easter egg and a reference back to the launch of the Macintosh 128K on that date.

Macintosh_128k_transparency

Wikipedia: Macintosh 128K

post

What is the capacity of Scarlett Johansson?

I recently watched Lucy, the sci-fi film starring Scarlett Johansson and [spoilers] through a long chain of extraordinary events she ends up turning into a USB Pen Drive.  No, really.

The film was enjoyable, full of nonsense CGI and an adorably unfathomable scene where Ms Johansson’s character, the eponymous Lucy, phones her mother while having surgery performed on her torso, shortly after shooting a man with inoperable tumour in his brain.  Apparently, the internet gave the film a thumbs down, but I liked it.  Any way, it got me thinking, how can she fit on a pen drive?

Pen Drive

Pen Drive

Pen drives, you see, are formatted with a file system, just like any other data storage device.   They most likely are found with the file storage format of FAT or FAT32, a rather simple data storage format that has physical limits.  This tied in neatly with a recent requirement that I wanted to move a Virtual Machine Image from my office (Mac) to home (Windows 7).  Turns out a bottleneck is Windows and FAT32.

According to wikipedia, FAT32 allows for a maximum capacity of any partition (e.g. a portion of the device’s capacity) to max out at 16 TB.  Sounds a lot, but she turned into the pen drive hoping to disseminate to Morgan Freeman and his team the entire knowledge of human life and essentially the entire knowledge of reality.  I’d doubt any file compression methodology could crush down that knowledge on a pen drive of capacity 16 TB.  Plus it’d be relatively slow and possibly run into issues of data integrity.  My personal pen drive problem led me to abandon FAT32 and use exFAT, but more on that later.

You see the limitation here isn’t necessarily on the pen drive itself, but the computer into which you stick it – the Operating System on the host computer would need to be able to understand the drive formatting so choosing the disk format is critical.  Another solution might be to have a rather large number of partitions of 16 TB, but that would mean the Operating System would need to be something other than Windows – as far as I recall, Windows can only see one partition on any given thumb drive, which is rather annoying.  Furthermore, my pen drive problem ran into the issue that FAT32 can’t store single files with a size exceeding approximately 4GB.  So Lucy would need to separate up her data into chunks or look into another format.

data

data

I ended up with a solution of exFAT, with limits recommended at 512 TB for the partition and a maximum files size of 127 PB – confusingly you can have a larger file than the capacity of a partition.  So this is better.  However, as I discovered, exFAT isn’t a walk in the park to get a disk to be formatted as if you’re not on Windows (it’s a licensed technology) and if you use something like Mac OSX’s disk manager tool to format it, Windows won’t play nicely straight away.  But accepting that Lucy came with appropriate licensing, could she fit on this format?  Well, it’s estimated by someone somewhere (I googled) that a human brain is equivalent to 2.5 PB.  But in the role of the film, Lucy used ten times the average human’s capacity in the pen drive evolved form, so exFAT is problematic here.

So we’re left with two alternatives, which both will fit (depending on the actual files required to interface with Lucy) the knowledge on.  HFS+ which is used on the Mac OSX operating system and ext4 which is available on Linux.  ext4 is limiting as most other operating systems won’t work with it and single files are limited to rather small in comparison sizes.  So Lucy would have avoided this.

HFS+ is a proprietary system and would need to be licensed beforehand, but essentially, we can surmise that Lucy chose it as her file system for two reasons: one, it’s more widely supported.  Two: the lab in which she was in when she morphed into a pen drive apparently made of actual space with a USB A male connector jammed in one end, was adorned with many Apple computers.