Wednesday, May 24, 2006

10 Minutes to make your Macintosh incredible

I've decided to write this post about software—despite my normal reservations about writing boring articles about software. Despite these reservations, I truly believe that—provided you use a Macintosh computer—you can gain some great advantages in useability via the programs mentioned in this article. That mentioned, let's dive right in, shall we?

When one is using a machine to get things done, several problems usually obtain. All of these problems are related to the interface between the human and the machine. Many interfaces have been used in the past, each with it's own advantages and flaws. I'll not beat a thouroughly dead horse even further by expounding upon the tribulations one might face in using a command line interface, not to mention any others. That has already been done elsewhere. Instead, I shall focus on "modern" interface problems surrounding my beloved computer systems; namely the OSX operating system.

When a new user sits down to use his machine, he is usually full of anticipation. He thinks, "I'll really learn to use this thing. I'll become like a hacker from a T.V. show." Subsequently, this user is ultimately disappointed. Why? First, he has serious trouble trying to tell the system what he wants it to do.

A default installation of OSX provides several ways to access programs. The means depend upon whether the program is already running—a dangerous modality. The methods are these: The Dock, the menu bar, the command line, Finder. That last is the only way that one is expected to start OSX applcations. The idea is that you open a Finder window, then press Apple–Shift–A to open the /Applications, finally locating and double–clicking upon your desired application. Painful, isn't it? You Windows users out there are probably shaking your heads thinking, "thank God I have a start menu!"

What about output? Why should that be a problem for our poor, befuddled user? First, he has to know that the program actually output something. Most might say that sounds and flashing screens are enough. I cry bullshit. Nothing quite as maddening as trying to keep track of more than one application at once. It gets far worse when you start using more than one machine at a time. Half the time, you don't notice the Application trying to get your attention, and your friend's IM goes unanswered. So there is a problem with the way current programs let you know that something requiring your attention has happened.

So, how do we solve these problems? First, we stop using the Finder for tasks that it really wasn't meant for. Starting applications is not something that the Finder is really any good at. Trying to start Applications with parameters is simply impossible. Some might suggest Spotlight, and that can work, but Spotlight has problems too. Aside from there being no way to say, "search for Applications only" without having to open preferences, there is the issue of general interface idiocy. Spotlight also has no way for a user to pass parameters to a command. This is of paramount importance. You need to be able to tell your program what you want it to do.

Enter QuickSilver. QuickSilver is a program designed to make it simplicity itself to open and command programs. With QuickSilver, one need only type a brief key sequence to access any program or resource on the system. For instance, type option–apple–space on my systems and you will see a simple window appear in the center of the screen. Start typing your command, and the incremental search will show you results in realtime. When you see what you want, merely press enter. If you wish to add parameters, you need only press tab and type them in. So, to start FireFox, I need only type "fi" and enter. I can get the whole sequence out in the time it takes you to open your start menu or Finder window. And I can do that with every program, not just those few on the Dock.

So what about output problems? Traditionally, one could have programs do things like mail you when the program is done or produces output. This was ok in the old days when everything was command line and polling your mailbox every few minutes was routine. Today, you'd have to keep your mail window atop everything else. That's a bit annoying, not to mention the idea that it's like using a cannon to kill a fly. A far better solution can be had in Growl. What is Growl? It is a system notification service that you can run. Programs can send Growl messages, which it then displays as brief messages that fade away after a few seconds. So when a friend jumps onto AIM, Growl will put up a message letting you know. Even better, Growl can be setup across a network so that every machine on that network can alert every other machine when something happens. This makes it ridiculously simple to track programs. Growl even provides a command line tool, so your scripts can also use Growl to keep you abreast of things.

This next program is concerned with those who run more than one system. Perhaps you like to have your laptop next to your desktop. Perhaps you have several different desktops? All of those keyboards are probably getting to be a pain. How about that nest of mice and trackpads? You could go buy a KVM switch to make it easy to switch between systems. But that costs money, which I don't have. This is why I love SynergyKM, which is a wonderful PrefPane wrapper for Synergy, a virtual KM switch. Configured properly, you need only move your mouse to the edge of one screen, and it jumps to the next screen. Keyboard also follows the mouse. This makes it very easy to control many computers with just one keyboard and mouse. It even works on other systems besides the Macintosh, not that I really care.

Put these three programs, QuickSilver, Growl, and SynergyKM together; and you have the makings of a great system. It will be so easy to run and command your programs, so easy to see what they are doing, that you will wonder how you lived without them before. There is one more program that is worth mentioning. Adium X is a beautiful instant messaging and chat multiclient. With it, you can easily control all of your chat service accounts at the same time. You can even use it with MSN, Yahoo, AIM, Jabber. It even has a specific flavor for GoogleTalk that makes it drop dead easy to use your Google Talk accounts. Two other things make Adium X worth your time. One is the fact that it uses Growl to let you know when things happen. The other is it's support for Off The Record (OTR) encryption.

OTR encryption is a fully public key cryptography–based system, complete with message signing and the built in ability to disavow ownership of messages. It was designed with one purpose: privacy. It's totally automatic between supported clients. Simply click the lock icon to turn it on and off.

Although I seem pretty disconnected as I write this, I believe that I managed to relate the fundamental idea. I can only suggest that you try these programs. They are all free, and most are also open source. The worst that can happen is that you don't like them and remove them. If you do manage to do that, please feel free to drop a comment here and let me know what you didn't like.

Friday, May 12, 2006

Mountain Stream

I took this picture near my house. It is of a small mountain stream, complete with temple. Copyright ©2006 Toku Chan

I took this photo recently, when I went to this tiny mountain temple near my house. It was incredible. The sound of rushing water, the peace and quiet. You know those movies where the monk goes off to train in the mountains? This is one of those places.