Wednesday, December 31, 2008

Too bad Pangloss was wrong

Follow up to yesterday's rant.

In the best of all possible worlds, computers and software would always help us without hassles. Instead, they stand in our way at every turn. How much lost productivity has the world experienced because people spent needless hours trying to get past computer roadblocks?

How much brain power has been wasted reinventing solutions to problems that shouldn't have been problems in the first place? Is that too much to ask: that stuff should just work?

Apparently so. As the popular line goes: "Get used to it."

Tuesday, December 30, 2008

Everything is broken

Time for a completely scattered and rambling rant.

I develop software for a living and at home I program for fun.

At work, I use WindowsXP, RedHat Linux, Solaris and AIX. I use a Windows PC to ssh to various unix servers and on all of them use GNU software to forge pieces of a development environment. One common thread is Emacs, run using X-Windows with Exceed as X Server component.

At home, I use Mac OS X 10.5.5 (Leopard) and an imposing array of software, none of which perfectly suits my needs. I use a wide variety of text editors: TextEdit, Aquamacs, TextMate, JEdit, JEditX, XCode, Eclipse and others from time to time, including various text editing components built into things like browsers. All of these have various shortcomings, some more infuriating than others.

The single most broken part of the OS X GUI for text editing is the old-fashioned use of the home and end keys. These are either bound to nothing or mean "Go to top" and "Go to bottom" of document, respectively. This is flat out stupid in the 21st century. Windows otoh gets it right: these keys are bound to "Go to beginning" and "Go to end" of line - operations that are 99% more common than the OS X interpretations. I mean: Control-A and Control-E; I'm an emacs geek and I hate those bindings; I have a lazy and/or weak little finger. Why should I have to use key combinations when single keys are so much more natural. This is like doctors refusing to give terminal cancer patients pain medication. Grrrrrrr!!

TextMate is a great editor, but it has the above shortcoming along with a plethora of other flat out wrong and inconsistent navigational key bindings. Supposedly, according to Alan Odgaard the principal developer, all of these bindings and interpretations follow Apple's Human Interface Guidelines. Well, guess what, Alan: Apple is flat out wrong too! For all their bally hooing about "it's intuitive" "it just works" etc. etc. it turns out that they lie, just like Micro$oft. Both companies have their pet marketing ponies and neither gets it 100% right. (I told you this would be scattered and rambling)

The reason the navigational semantics are wrong is that operations that are in the majority are mapped to the less convenient key combinations. Just one example: to compound the misery of the home key, when you use it to go to the top of a document, the cursor does not follow! How broken is that! Sure - there are times when you just want to peek at the top and then return to where you were before. But compared to wanting to go somewhere and start typing there (i.e. have the cursor follow your navigational operation), the former is just in the vast unwashed minority. You can get the cursor to follow you, but you have to use a modifier key. And here is the ultimate insanity: for page up and page down, to get the cursor to follow, you use the Ctrl key to modify. If you try this with Home, not only doesn't the cursor follow you, but in fact you don't even go anywhere at all: Ctrl-Home is a No-op. To go to the top of the document with cursor following, you type Cmd-UpArrow. Well isn't that special! Guess what the default key combo for changing between Spaces is: you guessed it: Cmd-UpArrow (or DownArrow or Right or LeftArrow). Obviously, this is a case of dwim and you can't overload keys that way. But it wouldn't be nearly the problem that it is if the right semantics were adopted in the first place.

Both Windows and Mac OS X have alt-tab features (OS X calls it cmd-tab). OS X gets this almost right, but a crucial mistake makes the OS X version infinitely less useful. Windows includes not only applications, but open documents of applications in the alt-tab list. Holding down alt and banging on the tab key gets you to anything you want pretty fast. On OS X, to find a document you have to use the clunky Exposé (another example of massive overhype). This means reaching up to the top of the keyboard to find the F9 key, then moving the mouse to click on the window you want on top. Uggghhh! I get soooo tired of hitting F9. At work, I either use the mouse to select the window I want from the task bar, or if I know that the window is close in the alt-tab list, I use that.

Windows obviates the need for Expose by having icons for open apps and open documents all in the task bar. The Mac OS X dock only shows applications, documents only appear if you have explicitly minimized them; hence, the necessity for Exposé and its frustrating waste of motion. Fifty plus years ago there were people called "Efficiency experts" who did "time and motion studies" to figure out ways to minimize useless actions. They would have had a field day with Expose.

Windows has its own problems, not the least of which is the lack of Unix underpinnings. Sure, there is Cygwin, but it has its own annoyances and even Cygwin can't get around all of Windows' shortcomings. Try using heavy symbolic linking in your Cygwin installation. And don't even get me started on paths involving drive letters. So - I would much rather use Mac OS X Terminal windows than either Windows command prompt or Cygwin term windows.

Too many Windows dialogs are too modal. Popup dialog boxes hide information in parent dialog boxes that you often need to see in order to perform some modification. Sometimes you can just move the child dialog out of the way, but often there are several generations of parents / children in the picture and you want to see the grandparent of the active and moveable dialog, but you can't since the parent box is moded out and can't be moved. This may occasionally be a problem on OS X - most likely with Windows ports or influenced software, but it seems to be much less frequent.

To be continued (maybe)...

Tuesday, February 19, 2008

A new way to waste (actually, spend) time

I recently joined LibraryThing.com and must say that for a reader and collector of books it is a splendid way to share information about such. I'm in the process of entering my library; my profile is located here

Appropriately, my wife and I visited the new Borders Store in Ann Arbor

I had to force myself to leave before I went bankrupt. Found some interesting books for my library:

The Lords of the North, Bernard Cornwell
Un Lun Dun, China Mieville
The GOD Delusion, Richard Dawkins
The Wild Trees, Richard Preston
The Book That Changed My Life, 71 writers
21, Ben Mezrich
The Miraculous Journey of Edward Tulane, Kate DiCamillo
Learning Ruby, Michael Fitzgerald

Sunday, December 9, 2007

Some trivia

In keeping with the frivolous theme, here are a few trivia questions for ya.

  1. What was the original URL for Google? Where do you wind up if you enter it today?
  2. Who invented the idea of milling the edges of coins?
  3. What is O'Toole's Corollary? (Hint: it's a corollary to Murphy's Law)
  4. How many words are there in the first sentence of Charles Dickens' "A Tale of Two Cities"?
  5. For each letter, "L" of the alphabet, name a writer whose initials are "L. L."
  6. What is (was?) a drum card?
  7. What is a hapax legomenon? Give an example.
  8. What are Canada Bill Jones' Motto and Canada Bill Jones' Supplement?
  9. Who is responsible for the brilliant piece of alliteration: "...this nimble, nipply witchling, ..." In what novel did he write it?
  10. What is the mathematical equivalent of the Nobel Prize?

Saturday, December 1, 2007

Who cares what I think?

I've resisted starting a blog, since I doubt if I have anything earthshaking to say. On the other hand, maybe it's not about what I have to say to others but what I have to say to myself.