Wednesday, December 03, 2003

Irony

I started reading a book on consciousness. As I am rather far away from congnitive science research, the different perspectives advocated and rebuked in the book are rather distant to me. But since I just want to know more about this most important topic, I find it a rather interesting read.

I was enjoying myself when the author said that for many centuries, the quest was to heighten our awareness, of the world surrounding us, and of our own selves. Except television and computers, he wrote.

I was startled, and when I thought about it, I found it extremely amusing.

This is the source of my amusement: many activities we do in daily life are mostly done subconsciously. For instance, when I type on my keyboard, I don't really think about how I am typing. I don't know how my four fingers peck on the keyboard. Actually, I don't even think conscously about which finger I will use to hit which key. Most other activities are carried out in this way. We don't reflect very much on what we are doing. Of course, writing a program is one of the exceptions. It is simply not possible to write a program in any other way than in a very conscious way. To make programs as bugfree as possible, we think and re-think, plan and re-plan, the lines of code we write. Many smaller constructs are done more or less subconsciously, in terms of their syntax, but the meaning of the constructs always weigh on the mind, as one little mistake and the program will do something we don't want it to do.

The author's quip is amusing because I do agree with him; our programs are completely void of any kind of consciousness, of course. They don't heighten our awareness of ourselves; that I completely agree with as well. The content of a web page might move us, get us to reflect, but the programs themselves? No. Never.

So, with utmost conscious effort, in perhaps the activity that requires the most conscious effort on our part, we programmers produce things that are completely void of any kind of ability of any kind of conscious activity.

Very amusing.

Saturday, November 01, 2003

Purpose in Life

I had a discussion about my purpose in life in the middle of a discussion about how to set up various systems for testing. I was asked whether I was happy being a contractor and whether programming is what I want to do.

Of course, programming is what I like to do since I was 16, and I have never regretted it, and I have never been bored by it. But I think the question was more like whether programming was all I wanted to do in life.

Of course, it is all I want to do. But it is more than that. It is about satisfaction in life. The way I look at it, I want to be able to look back after I have retired to feel that I have not wasted my life on something that I don't care much about. I want to be happy about what the things I chose to do, whether they ultimately prove to be successful or not. I know for sure that if I become a manager now, whether I become a good or bad manager will not figure in my reckoning.

What I want to be able to feel is that I have tried to change the world, the programming world. Of course, I am hoping that I will be successful in the next few years. But even if I am not able to do anything about it at all, I know I will be happy if it is because I simply am not good enough to do much about it, or because the time is not ripe for such a radical change.

Monday, October 13, 2003

Doubles

I like to read a book when I am on the GO train. It makes the time I spend on the train more worthwhile. Unlike many people, I don't read on the train because I want the time to pass faster. I like riding the train; I just don't like the destination half the time: the office.

Work feels like a trap to me. I can't survive without it, but I am definitely not contributing my talent with the nature of work expected of me. My dream job does not exist. Or, I don't have the qualifications to get one.

The latest book I read on the train is Margaret Atwood's book on writing. Like my daughter told me when she saw me reading the book: she is a wonderful writer, a wonderful story teller, I just don't care much about the tales. But this particular book is about writing, so I bought it during the lunch hour a few days back.

The one topic she talks about in the book is the concept of a double for writers. A writer, when she is writing, she says in the book, is really a different person from the person not writing.

I am not a writer. I don't wear a scarf, other than to fend off the wind in the winter. But I think that is a good strategy to use when I work. I should simply pretend that I am a different person when I am working. Actually, I probably yet another double, because I am definitely a different person when I need to think about some weird ideas.

So, I need three personalities: one for work, one for thinking, and one for ordinary living.

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.