Sunday, September 21, 2003

Complacency

Complacency is a sure killer. When a person is complacent, telling him that he is complacent does not help at all. You see, one sign of complacency is the inability to listen to anything contrary to what he is thinking. Like a downward spiral, it will only get deeper and deeper. When the complacency is finally broken, it is usually too late to correct course. Only salvage operations will be useful when that happens.

I found a website for the school band I used to belong to in high school. Those four years were such joyful time that when it ended, I refused to accept the reality; and I hid away from it for half a year. When I saw the website, the memory just washed over me, creating the familiar bittersweet feeling that has been following me for 30 years now.

I thought back on the dreams I had at that time, and I realized I achieved more than in my wildest dream. That shows how bad a dreamer I was; but it also gives me a warning that I am on the edge of complacency now. Rather than enjoying every second of what I have, what I have achieved, what I will be able to achieve, I am not exactly happy about my current circumstances. It is time to change that attitude.

Friday, September 12, 2003

Hopelessness

My daughter is studying computer science. She is in third year now. Last year, when she was taking a course on Unix, one of her assignments was about facilities that are needed to write a shell. That brought back a lot of memory about my years in graduate school, playing with Unix for fun, all the time trying to finish my thesis on time. I wrote a few shells at that time, starting with the tinkering of the Bash Shell when it was version 0.3, I think. It was not really usable at that time, but it was a lot of fun for me to modify it to fix the bugs I found when I was using it.

Eventually, when I got bored by Bash and it was also getting better by other people's effort, I decided to write a shell of my own. It was based on my obsession at that time, Lisp. I got a open source Lisp interpreter to use as the engine. I put in all the Unix system stuff to handle pipes, process handling, terminal handling, background jobs, etc. It was a fun thing, and it is just too bad that I lost the source code. The biggest problem at that time for me was the syntax for pipes. The Bourne shell is left associative. But Lisp uses a prefix notation.

Anyhow, what makes that a random thought is that I went to an interview this morning. I was asked a few questions about Korn Shell, the successor of Bourne Shell. Since I was not told that shell scripts would be in the interview, I did not pay attention to shell scripts at all. So, I did not know what $? meant.

You know, at that time, I had that feeling of hopelessness that I feel about when I look at most job postings: they all ask for a certain years of experience using a certain software package. I have the same hopelessness because if I was given the time, I have the ability to write the software package in the first place.

Even though I might not be able to tell you all the special variables in Korn Shell, I can tell you what variables have to be in Korn Shell for it to be useful for the job at hand. In other words, I know all the concepts; not only do I know the concepts, I actually know how they are implemented; not only do I know how they are implemented, I know how to use them. I just don't know their literal symbolic representation.

But in the interview, I knew it was useless to tell the interviewer that I knew how to re-write Korn Shell myself. And I just happened to be one of those guys who can't memorise these special variables. In any case, when I debug shell scripts, I always consult a reference on shell scripts, just to be sure that I remember the special variables right. So the reference will always be there, whether I can remember the special symbols or not.

Is anybody hiring a guy who can implement whatever program you need to implement, but who can't remember any language's syntax unless it is being used right now?

Tuesday, September 02, 2003

The speed of time

I have always been fascinated by the apparent speed of time. Sometimes, time flies by very quickly. Sometimes, I might look at my watch 100 times and it would have passed perhaps 30 seconds.

I notice that when I program, time flies by quickly. When I read, time flies by quickly. When I watch TV, time simply disappears. But when I am waiting for the bus, then ten minutes feel like an eternity. For me, flight time and airport waiting time are the two activities that have the slowest time. If the flight takes 14 hours, then it will be hell for me to count the seconds, trying to sleep all the time. To wait for a flight in an airport feels like the same. Actually, I prefer in the sky than in an airport. At least, I know the plane is going somewhere. In an airport waiting for a flight is like waiting for the beginning of something, something dreadful. That makes it doubly dreadful. The combination of both is what I have to endure every time I go back home.

Of course, the passing of time is really a metaphor. Time is just there. The temporal dimension is simply out of our grasp.