Cathedral vs Bazaar

I couldn’t concentrate on work today. So, I decided to do a little reading. Something in a forum that I subscribed to triggered me to look at The Cathedral and The Bazaar by ESR. Although slightly dated, I still liked what he had to say, especially since he had real life examples to quote. I have also experienced some of the things myself, through my own open source endeavours. So, this is a summary of his lessons:

  1. Every good work of software starts by scratching a developer’s personal itch.
  2. Good programmers know what to write. Great ones know what to rewrite (and reuse).
  3. “Plan to throw one away; you will, anyhow.” (Fred Brooks, The Mythical Man-Month, Chapter 11)
  4. If you have the right attitude, interesting problems will find you.
  5. When you lose interest in a program, your last duty to it is to hand it off to a competent successor.
  6. Treating your users as co-developers is your least-hassle route to rapid code improvement and effective debugging.
  7. Release early. Release often. And listen to your customers.
  8. Given a large enough beta-tester and co-developer base, almost every problem will be characterized quickly and the fix obvious to someone.
  9. Smart data structures and dumb code works a lot better than the other way around.
  10. If you treat your beta-testers as if they’re your most valuable resource, they will respond by becoming your most valuable resource.
  11. The next best thing to having good ideas is recognizing good ideas from your users. Sometimes the latter is better.
  12. Often, the most striking and innovative solutions come from realizing that your concept of the problem was wrong.
  13. “Perfection (in design) is achieved not when there is nothing more to add, but rather when there is nothing more to take away.”
  14. Any tool should be useful in the expected way, but a truly great tool lends itself to uses you never expected.
  15. When writing gateway software of any kind, take pains to disturb the data stream as little as possible—and never throw away information unless the recipient forces you to!
  16. When your language is nowhere near Turing-complete, syntactic sugar can be your friend.
  17. A security system is only as secure as its secret. Beware of pseudo-secrets.
  18. To solve an interesting problem, start by finding a problem that is interesting to you.
  19. Provided the development coordinator has a communications medium at least as good as the Internet, and knows how to lead without coercion, many heads are inevitably better than one.

Multiply Air

Image from CNET (AU)

A friend of mine attended an interview for a job at Dyson and told me about this product that they have – the air multiplier. I did not think much more about it until I saw it in a recent copy of IET’s newsletter. It is pure genius – the only bladeless fan in the world. Don’t ask me how it works – my knowledge in fluid dynamics is iffy. However, I can immediately appreciate the strength of the product.

All that I wonder about is – the exorbitant price tag!

Anyway, Dyson is a company that sells products, manufactured in Malaysia, outside of Malaysia. If you google for Dyson you will see a bunch of Malaysian hits for their local production facilities. However, try buying any Dyson product in Malaysia and you would be out of luck.

Anti Retirement

Guess what? Michael is back!

According to the AFP article on France 24, the maestro is back. I guess that he got tired of just watching the race from the side-lines for the last few years. According to the article, he has signed up with Mercedes, which should prove interesting. After his successful career and retirement at Ferrari, he is giving them the slip and going for their rivals. His former colleagues and team mates are now going to be his rivals. This will probably spice things up a bit.

Anyway, I’ve not always been a fan of Michael. He has his ups and downs but there is no denying that he is a great driver who has yet to be dethroned. However, I am not quite sure how competitive he will find himself with the current crop of young drivers. They are pretty good themselves and some of them may have the chance of breaking his records some day.

Or maybe this is just a case of mid-life crisis? He is exactly 40 after all – just the right age for a mid-life crisis.

Go Byond?

Astro has just launched its new HD service called Byond. It is nice that we are finally getting some HD channels in Malaysia even if it is only 5 channels – Astro Supersport, ESPN, HBO, National Geographic and History. It is also fine that it will only be broadcast in 720p. However, it will cost an additional RM20 extra. Knowing how Astro works, this RM20 is only for now.

So, the question for me is whether or not I should go Byond or not?

At present, I am not an Astro subscriber. I don’t really care much for its programming and the fact that it is standard definition channels just doesn’t interest me. However, it may interest me to subscribe to the HD channels. But I will need to first subscribe to an existing package because Astro is not selling the HD channels on their own, which does not make sense to me.

According to what I understand, I would need to first subscribe to regular Astro – i.e. the minimum of RM38 per month package. Then, a contractor will come and install the old Astro dish and decoder for me. Then, I will need to convert my subscription to the HD package for an additional RM20 per month. Then, a contractor will come again and install the new Astro dish and HD decoder for me. All in all, I will need to drill multiple holes into the walls and pay RM58 per month for this luxury.

The question for me is whether or not it is worth forking out the RM58++ each month for the channels. One way of looking at it is that I will be getting all the local channels as well. At present, I do not have any terrestrial TV because I cannot get a good signal at home. The only channels that I am interested in on Astro is mainly AXN and possibly AFC. Then, getting just HBO-HD for RM20 is okay because it is only the cost of two cinema tickets.

I need to think about this a bit, but I have this sinking feeling that I will take the plunge.

Job Interviews


I have been conducting some job interviews recently. It is ironic that someone who has never passed a job-interview in his life, is now conducting job interviews instead. My boss has some head-count to fill so we have been interviewing some candidates. However, the candidate that I had to interview today, takes the cake.

First of all, the candidate arrived late – really late. The candidate contacted us to say that there are traffic problems which will cause about a 5 minute delay. After 30 minutes, the candidate had yet to arrive. When the candidate finally did arrive, the candidate was empty handed – there were no supporting documents brought. Therefore, we had no way of discerning the candidate’s education.

The candidate was asked to describe some previous work done, particularly the latest project being worked on. This was for a Java developer position. So, naturally, we talked about Java. The candidate claimed at first to have never done server-side Java programming but only done client applications and GUI. So, I began to do some questioning down this path. However, after a while, the candidate claimed to have been mistaken. The candidate now claims to have neither done client application nor GUI programming but had only done server-side Java programming. So, I switched and began questioning down the server path instead.

Since the candidate was unable to satisfy me in either of these respects, I decided to just ask some basic programming questions instead to test the candidate’s aptitude for programming. I asked the candidate about evaluating the quality and performance of Java code. I wanted to know how the candidate would go about testing not just the functionality of Java code but to also test its performance, identify bottlenecks and introduce improvements. The candidate totally faltered.

Needless to say, I doubt that I will be seeing the candidate again.

Overwhelming Sandiwara

Things were much clearer when I was in the UK. Malaysian problems and issues seemed a lot more clear cut from a distance. Now, living in the heart of it, things are an entirely different matter. Local problems and issues are so very blur. One seems to lead into another seamlessly without any differentiation between them. I find it extremely hard to keep up with everything.

So, the solution is to stop trying – at least for the time being. It is far more important to step back and listen.

This is one of the reasons why I have been rather quiet with my rants for quite a while now. In some ways, I am better positioned to understand things but in other ways, I am more constrained by my knowledge of the matters. Sometimes, I feel that there is just too much stuff ingrained in the very core of our beings that the only way to fix our problems is to actually reboot our entire nation and start over from scratch. Unfortunately, that is just wishful thinking and impractical.

Slower to Learn Math in Chinese

This stupid M’kini article has got me a bit riled up at how stupid some people can be. The article is entitled “Faster to learn maths and science in Chinese” and the author obviously does not know a thing about math. What the author is talking about is arithmetic, not math. Even ignoring that, the article claims that, “Does anyone knows that why Chinese school students are good in mathematics and science? One major reason is because of the language. Mandarin is a more efficient language than other language.”

Utter nonsense.

To count 1 to 10 in Mandarin, it takes 10 syllables. To count in French, it also takes 10. For numbers above ten, things get a bit more muddled. In some cases, it takes less syllables in Mandarin and in many other cases, it takes less syllables in French. To express simple expressions such as 2+2=4 it takes six syllables in Mandarin. To do the same in French, it takes only five syllables. By the same argument, we should all be learning arithmetic in French, which I would totally support because it would get rid of this whole racist argument on which language is better for math.

I particularly like this argument:

For the one hour of a mathematics examination, a Chinese-educated student may use 40 minutes of the time to answer all the questions and spends another 20 minutes checking his answers. While a Bahasa educated student may not able to answer all the questions within the one hour allotted.

I wonder if the author ever took math in school. You friggin’ answer math questions in math! Maybe only idiotic bigots answer the math questions in Mandarin, I don’t know. There are reasons why there exists a well developed set of mathematical symbols (often based off Greek) that have very unambiguous and exact meanings, unlike language that is subject to the ambiguous interpretations of grammar and syntax.

It is best to learn math, in math!

Science, meanwhile, requires a good memory and imagination. ‘Han Ji’ are symbolic and pictorial characters. There are more than thousand of these Chinese characters. To learn Chinese, a student is indirectly trained to memorise and this thus stimulates the brain cells for memory and imagination. Hence, from the learning of Chinese, indirectly, students are trained up in the field of mathematics and science.

Oh my goodness, obviously the author has never done science – or never became very good at it. It is impossible to do science with memory. Try doing physics with memory and see how far that gets you. Try doing that with chemistry. Science is about understanding processes and phenomena. It is not about rote memorisation, which is something that I agree Chinese school students are really good at. Furthermore, there is nothing imaginary about science – at least for the hard sciences.

Maybe the author mistakes pseudo-sciences for science.

Kong Kok-Haw, you should refrain from writing on things that you have no business writing about since you obviously neither understand science nor math at all. I certainly pray that you did not come from a Chinese school because you are not the right person to defend the use of the language.