August 2005 Archives

I have often wondered how many of the processes and that are running on an out-of-the-box Microsoft Windows XP installation are really required for it to function very well. Most of the time, that thought lingered around for about two or three seconds, and then it disappeared again.

Well, it seems that I was not the only one. The most excellent people at sysinternals apparently had the same thought. However, unlike me, they were able to combine it with Knowledge (capitalized and emphasized for a reason!). Mark XXX decided to try and find out and reported on his results in the Sysinternals blog.

Of course, I had to try it (cowardishly as I am, I did it on a VMWare Virtual Machine) and it works just like he describes!

Oh, and I didn't find this blog entry myself; Slashdot has a post on the topic too.

Re: Biculturalism

| 1 Comment | No TrackBacks

This article got me thinking. When I develop software, I do that from my background of Linux-like systems. I.e., I begin with a design, create some some command-line experiments, document the whole lot in plain unformatted text, and then I sometimes proceed to implement a graphical user interface. In doing so, I take a strictly engineering approach: I built something which has to be technically sound, and should be easily fixable if it breaks.

Unfortunately, that is not how the "real world" usually works. Market-driven software development requires companies to quickly make something that can be shown to potential customers. Whether or not it works (perfectly) is generally not relevant. Proof of this is the never-ending vast amount of patches which fix vulnerabilities in software that has been sold as "ready".

Joel summarizes this succinctly this as

"Unix culture values code which is useful to other programmers, while Windows culture values code which is useful to non-programmers."

The same holds true for documentation. I write technical documentation, which is aimed at developers, rather than end-user documentation which is littered with examples and screenshots. Eric S. Raymond, in his book The Art of UNIX Programming says about that:

"Classic Unix documentation is written to be telegraphic but complete... The style assumes an active reader, one who is able to deduce obvious unsaid consequences of what is said, and who has the self-confidence to trust those deductions. Read every word carefully, because you will seldom be told anything twice."

A point on which I do not agree with Joel is the following

The cultural schism is so sharp that Unix has never really made any inroads on the desktop. Aunt Marge can't really use Unix, and repeated efforts to make a pretty front end for Unix that Aunt Marge can use have failed, entirely because these efforts were done by programmers who were steeped in the Unix culture.

This is no longer true. Distributions like Knoppix and Ubuntu provide excellent graphical desktop environments which are easy to use for end-users. I have tried to give my parents an Ubuntu desktop, and they have been using it for months without problems. A colleague of mine did the same, and his parents are most likely even more technological illiterate than mine. In my opinion, the real chasm between Windows users and Unix users does not manifest itself till users start to tinker with their OS. In this respect Unix undeniably has a steeper learning curve than Windows does.

There is always room for coffee

While the story below is far from new, it illustrates perfectly what setting priorities in life should be all about.

THE MAYONNAISE JAR...AND COFFEE

When things in your life seem almost too much to handle, when 24 hours in a day are not enough, remember the mayonnaise jar...and the coffee...

A professor stood before his philosophy class and had some items in front of him. When the class began, wordlessly, he picked up a very large and empty mayonnaise jar and proceeded to fill it with golf balls. He then asked the students if the jar was full. They agreed that it was.

So the professor then picked up a box of pebbles and poured them into the jar. He shook the jar lightly. The pebbles rolled into the open areas between the golf balls. He then asked the students again if the jar was full. They agreed it was.

The professor next picked up a box of sand and poured it into the jar. Of course, the sand filled up everything else. He asked once more if the jar was full. The students responded with a unanimous "yes."

The professor then produced two cups of coffee from under the table and poured the entire contents into the jar, effectively filling the empty space between the sand. The students laughed.

"Now," said the professor, as the laughter subsided, " I want you to recognize that this jar represents your life. The golf balls are the important things-your God, your family, your children, your health, your friends, and your favorite passions-things that if everything else was lost and only they remained, your life would still be full. The pebbles are the other things that matter like your job, your house, and your car.The sand is everything else-the small stuff.

"If you put the sand into the jar first," he continued, "there is no room for the pebbles or the golf balls. The same goes for life. If you spend all your time and energy on the small stuff, you will never have room for the things that are important to you. Pay attention to the things that are critical to your happiness. Play with your children. Take time to get medical checkups. Take your partner out to dinner. Play another 18 holes. There will always be time to clean the house and fix the disposal." Take care of the golf balls first, the things that really matter. Set your priorities. The rest is just sand."

One of the students raised her hand and inquired what the coffee represented.

The professor smiled. "I'm glad you asked. It just goes to show you that no matter how full your life may seem, there's always room for a couple of cups of coffee with a friend."

If anyone knows who wrote this text originally, I would like to credit them for that. Please drop me a note if you have additional information.

Optimus keyboard

Slashdot ran a story about the Optimus keyboard. The keyboard has LED technology, which allows a programmer to assign different colored pictograms to each key. Even more so, it is possible to animate the keyboard.

It seems that this keyboard is going to be Heaven for gamers, but also for serious programmers. Air Traffic Control consoles have been using a similar technology based on touch screens to make context-aware keyboard layouts for quite some time.

I cannot wait to give it a go; this might really be a useful innovation for interacting with computers. Something that I have not seen in a very long time (most likely, since the introduction of the mouse).