I love computers and I love user interfaces. I’m pretty lucky to have had access to so much beauty and function. The first real desktop I fell in love with was on my Amiga 2000, circa 1987, and it’s not that different from what we have today – a desktop with icons, a mouse with a highly-responsive, high-precision, (even animated!) cursor, and the ability to run many apps side by side. So have we come much farther?

You have to make an effort in this information age to remain productive. We are constantly bombarded with incoming data that overloads our senses and shuts down our own creativity. Even the ultimate interactive device, the computer, is more and more just used as a browser of the various garbage heaps strewn about the internet.

For me, productivity begins when you move your hand from the mouse to the keyboard. That’s the moment where you begin to carve something out. Other than when applied to computer modelers and other artists, this rule is pretty reliable. Nobody gets any real work done on an iPad or iPhone. Oh snap! Following this line of thought, the primary purpose of an excellent desktop user interface is to move you from desktop to desktop and app to app with the least amount of mouse effort. Following from that, these are the specific primary goals of the ultimate desktop experience:

  • Support 2 monitors. When you really get into a task, you’re going to want to maximize its primary window. But almost every task will require movement of data from one app to another. Two windows allows one task to be quickly maximized with the keyboard, and then the other window can be used to host all the other supporting apps, or a maximized second app, as needed. It’s the perfect configuration to display 2..n apps at once.
  • Support 4 virtual desktops. This is basically the number of tasks that you would work on at the same time. It’s a balanced number – any less and you are not at your most productive, any more and the number of things you’re doing simultaneously get hard to track.
  • Support keyboard driven app switching, maximization, and minimization. This lets you do the most common window tasks quickly without even moving to the mouse at all.
  • Support keyboard driven virtual desktop switching, again to perform the most common tasks at lightening speed.
  • Support keyboard driven movement of the focused app to any other desktop. Another of the most common actions required to organize your major tasks.

Those are the big tasks, dealing with apps that are typically taking up an entire screen. You will find that most modern desktop environments have evolved to provide these basic mechanisms.

What about when you need to work with several apps at once? There are a few different approaches to arranging multiple apps on one screen:

  • Dynamic tiling
  • Keyboard-driven tiling
  • Manual mouse-driven tiling, with keyboard assistance

Dynamic tiling is a great idea, but it should come with the ability to adjust the width and height of the columns and rows very quickly, and that seems to be lacking. Most windows managers at least provide the third option, which should come with these accelerators to be efficient:

  • Provide keyboard modifiers to instantly move and resize the window from any mouse location over the window.
  • Provide window snapping at every edge.

How do the big ones stack up? After the break… (continued…)

Trac is nice and simple and clean and “suits me well” for now. I was able to quickly add custom fields and use them on the front page of my tracker. And it supports the ability for anyone to anonymously add a new ticket, which is the Holy Grail of getting feedback. But getting feedback includes getting spammed. I was getting a few spam tickets every minute, making things unusable. How to fix?

TracSpam to the rescue. It’s built in to trac, but it required some tweaking… (continued…)

gpg (which i use to encrypt my passwords, so it’s not really optional) started giving me a segmentation fault on a recent [emerge world] that bumped it to v2.0.19. I reverted to v2.0.17, same crash. I ran gdb on it, crash was happening in libgcrypt, which had also recently been bumped from v1.4.6 to v1.5.0-r2. I reverted to v1.4.6 and all is well again. Sometimes “stable” isn’t.

Here’s a snip from his June Crypto-Gram (you should subscribe to this!):

When I talk about “Liars and Outliers” to security audiences, one of the things I stress is our traditional security focus — on technical countermeasures — is much narrower than it could be. Leveraging moral, reputational, and institutional pressures are likely to be much more effective in motivating cooperative behavior. This story illustrates the point. It’s about the psychology of fraud, “why good people do bad things.”

Along similar lines, some years ago Ross Anderson made the suggestion that the webpages of people’s online bank accounts should include their photographs, based on the research that it’s harder to commit fraud against someone whom you identify with as a person. Two excellent papers on this topic: 1 2

This really resonates with me. I’d like to think, generally speaking, that there aren’t good guys and bad guys, just people with different perspectives on different situations and institutions, and that pretty much everyone has some form of moral code, even possibly overlapping in many areas. Isn’t that really our only hope as a species?

I dropped my Macbook Pro laptop on the concrete sidewalk on the short walk to work a couple weeks ago. I had popped the messenger bag shoulder strap up off my shoulder to pull my coat out, and didn’t quite catch it on the way down. Blammo. Turns out that when push comes to shove, concrete retains its shape a lot better than aluminum. All the USB ports on my Macbook Pro 5.2 were instantly transformed into trapezoids, as the corner crumpled up like a soft soda can.

Those Apple folks know what they’ve got going, and do a good job of treating people with no regard for money well. $600 later I had a lot of heartburn, but also had a 50% brand new MBP that worked perfectly. Too bad the 50% included the hard drive. 🙁

Anyway… long story short -too late-… my clean hard drive emboldened me to finally install all the OSes I needed. What does it take to get my four favorite ones squeezed onto one fat-assed macbook pro? A little more pain than should really be necessary. The moral of the story is that this is the stuff you play with when you don’t really care if you blow all your data away. No, really. Back up anything you care about first. Technical details start up after the break… (continued…)