facepalm

Some computer problems are easy to diagnose.  Some are extremely difficult.  Often the more subtle, the more difficult – especially when you’re using multiple bits of software.  It adds layers to the possibilities of where the cockup may be nestling, if indeed the symptom you’re seeing is based on there being a cockup.  Sometimes a cockup is as a result of 2 or more things working exactly as they’re intended.

For quite some time now I’ve been using a Microsoft Natural keyboard – otherwise known by my colleagues as “one of those weird wavy hippy kepboards: the rationale for it is that the keyboard is split such that the resting position of your hands is more akin with their anatomical place, and you don’t have to force your wrists around all day to type.  The downside, of course, is that it’s a Microsoft Keyboard, and typically involves having extra drivers and software to make all its bells & whistles do their various tinkling and whistling.  I think it’s actually impossible to get the plain Natural keyboard – the minimum spec now available is the Multimedia version, with soft buttons (aka Places For Cockups To Hide).

I like Open Source Software.  I like the idea that it’s out there for anyone to write & make improvements to, particularly by way of having many, many more pairs of eyes to find & fix bugs.  The Closed vs. Open Source argument’s not one I want to have here, but the salient point here is that it’s not 100% uncommon when using OSS for stuff to have been released which displays some “undocumented idiosyncrasies”.  Generally it’s not the case, however it’s something I’ve learned to keep in the back of my mind when using it.  Two of my favourite pieces of software are Mozilla Firefox (the best web browser available today), and the java-based text editor, jEdit.  Both programmes have embraced an extensible, modular framework which 3rd parties can use to bolt on features & functions.  Or, as this blog post’s calling them, Cockup Hutches.

Oh yes, then of course there’s Java – a highly versatile programming language which can run on any computer architecture by way of using a “virtual machine” to run on, so if you have a Windows PC you get the Java Virtual Machine for that, then run the java code on top of that.  If you have a Mac, you get the JVM for that, and can then run the same java code.  Got a Commodore 64?  Well, so long as you’ve got a JVM for it, you can probably run the same code as well*.  It’s going to be pretty damn robust, but as with any bit of core gear, it’s an iterative process that gets updated regularly, and so becomes another neat place for Cockups to Nest.

Having established that there’s now *plenty* that can go wrong, here’s what was bothering me: sometimes when I’ve been working at a PC for a while I go to type something in quotation marks, and get a @ character.  Or, for the last 5 years, go looking for a £ and get a # instead.  It’s bloody frustrating.  It’s not the end of the world, by any stretch of the imagination.  It’s just that when you’re typing in complex passwords, for example, it’s often useful to know that every keystroke is what you intended it to be.

The irksome part is that when you start the computer up the key does exactly what it’s meant to.  Then, however, after some unspecified interval or event, the key decides to go off-piste and do its own thing.

In fact, it seems to make sense that what’s going on is the keyboard layout is somehow changing – the UK keyboard layout has the ” character positioned as the SHIFT function of the 2 key, whereas in the US normal layout the 2 key gets the @.  Equally, the Americans don’t really need a £ symbol, so they’ve made their SHIFT-3 into # (although both are referred to respectively as the pound symbol, weirdly…).

My confusion lay in the fact that I’d be writing some code in jEdit, then swap over to a half-finished email in Outlook, and all would be hunky-dory.  Swap to Firefox, write some notes in our bugtracker, fine.  Go make a coffee, come back, wake up the screensaver, finish the bug notes, go back to jEdit, and suddenly everything’s arse-about!

A few weeks later (after forgetting about the particulars of what happened last time, only that keys seemed to be randomly hopping about) I’d go to send an email in Firefox, and discover that I have to go hunting for the @ symbol.  It’s like being on holiday, all of a sudden (anyone who’s used a French or Czech keyboard knows what I mean).

I’ve never been able to pin down what the cause is – it never seems to happen to me on most computers, and I’ve never heard anyone else complaining about it.  As I said, I’d assumed it was something to do with the software I was using, or something – there didn’t look to be anything amiss in the Regional/Language control panel settings, or in the Keyboard control panel.

However tonight, armed with that most powerful of motivations – finding ways of procrastinating over something else – I’ve found it!

Microsoft Windows XP – pretty much the main OS I’ve been using since 2001 – has a feature called the Language Bar.  It provides ways of setting your Windows installation up to make use of alternate character sets and keyboard layouts.  Being fairly Anglo-centric, I’ve never actually found a use for it – in fact with PS/2 keyboards you can’t usually unplug one and plug another in without doing some “find new hardware” action, or worse, rebooting.

Imagine my delight to learn that the thing that’s been buggerising my @ symbol spasmodically over all these years was in fact a Windows Feature – some berk decided it’d be a good idea to allow people to toggle between keyboard layouts with the key combination of Shift and Left-Alt.

Even better than that though – having changed layouts, the OS gives you no visual clues that you’ve changed anything.  I mean, you can see it if you have the language bar in the Start Bar, click on it, and notice that your keyboard layout has changed – but even then there’s a chance you won’t get it, because it seems to be set ON A PER-APPLICATION BASIS!  Hence why Firefox might give you ” symbols when jEdit, Word, Outlook, and everyone else is giving you @.

Now, as someone who spends a lot of time switching between apps I almost exclusively use keyboard shortcuts, of which Alt-Tab is the usual one.  However if you’ve got loads of apps open it often helps to use Alt-Shift-Tab to cycle through your apps in the other direction.  What I want to know is On What Frigging Planet did whoever decided to bind something as largely useless as swapping keyboard layout to a set of keys that do something else entirely useful?!

The good news is that once you know about it, you can do something about it – right-clicking on the Language Bar gives you access to its settings, from which you can turn off the ridiculous key combination.

It’s enough to make you want to install Linux, honestly.  Or move to a country where they use US keyboard layouts.  Like Australia.

* yes, there is.  Well, there was going to be.