Learning to Fly

I had a hectic day today. I have been out since waking up this morning and only got back after mid-night. I met up with a friend of mine who flew from Switzerland down to sunny Malaysia for a vacation. Since he was here on vacation, I had to show him some things about Malaysia that he would not likely see without a tour-guide like me. We met up at KLCC after lunch but before that I caught up with some other friends of mine and some Achenese to share some knowledge and experience.

Since we met up at KLCC, I brought him to have some local desserts at the food-court while we had a chat to catch up. We last met in 2006. We ended up talking about a great many things including technical stuff and office politics (both his and mine). After that, I took him down to Kajang for some satay and ketupat. He’s never had it before so it was something interesting. Then, I brought him to Putrajaya to take some night photos and partake in prayers at the mosque. On the way back, I took him to TPM to see things. He said that he didn’t realise that such places existed in Malaysia. He had this impression that we were a ‘developing nation’ but the TPM reminded him of the Bay Area. Finally, we went to a mamak stall for supper and went home to rest.

In the course of these chats, he had some questions about Malaysia that I was happy to answer. He has been in Malaysia for more than a week and has actually been following the local news. He gets our leading English daily delivered at his hotel. He even knew about our PPSMI issue and related to me some of the experiences in Turkey with me. At one point, we also talked about the political aid who was found dead at the MACC building.

He said that, “before assisting investigations, one has to learn to fly”. I found that really funny and I thought that I should share it.

Intellectual Property

I was somehow roped into a committee at work today. The job of the committee is to help review some of the intellectual property generated internally. So, I got to sit in and help review a patent. Obviously, I cannot discuss anything about the patent in this blog due to confidentiality issues. However, I can safely talk about my feelings and experience of being involved in this minor step in the patent process. I don’t really know if I am supposed to do what I did, but I ended up asking lots of questions and making a suggestion or two in the process. The short review ended up consuming almost an hour in the process. I hope that the rest of the presenters and reviewers don’t hate me for it.

As a result of getting roped into the committee meeting, I managed to familiarise myself a little, with the way that the patent process is handled at the organisation. I was previously also involved in parts of the process at Cambridge. I got to learn how the process was handled internally at Cambridge, how revenue is shared between the university and the inventor, and even got involved with doing some market feasibility study for a patent. Obviously, there are differences in process and procedures over here.

However, this issue of patents keep cropping up in recent weeks. So, I managed to meet up with a patent attorney last week and asked him some questions about patents, particularly about software patents. I got to find out that the patent process is an extremely cumbersome one. In Malaysia, one has to file a patent locally, and within a span of 12 months, file a PCT application, then within a span of another 18 months, file in each individual country. The costs of filing the patents in each country varies between USD 1k-6k. As for the subject of software patents, it is not possible to patent software algorithms directly, in Malaysia. However, according to the patent attorney that I met, there are workarounds for that problem if someone really needs to patent a piece of software.

It’s almost 6am and I still have not fallen asleep yet. I guess that I won’t be getting any sleep today.

Death of MACC?

While the investigations are under-way with regards to the recent death of the political aide, I won’t bother to engage in speculations of whodunnit. However, what I would like to say is that regardless of what happened, the MACC faces some problems simply because the death occurred under their watch (so to speak). The repercussions of this event are going to send the wrong signal to the people.

You see, the MACC is supposed to investigate corruption. Often in these cases, an initial whistle blower is required to supply some intelligence or documents that kick start the investigations. Otherwise, the MACC would have a really tough time determining which monies are clean and which monies are not. However, I am not quite sure who would be willing to whistle blow when the MACC is unable to provide any guarantee of their safety and security.

It is one thing if the whistle blower is killed in a freak accident in some random area outside but it is quite another if people start dying under their watch. As an agency of the government that is supposed to protect the identities of whistle blowers and help keep them from harm, this incident is not very good marketing. If the MACC runs out of witnesses and whistle blowers, I am not so sure if it will be able to survive long in this business.

Might this be the incident that sounds the death knell of the MACC before it even has had enough time to grow and mature into a potent anti-corruption agency? Honestly, I don’t know. I am writing this entry at 4.30am as I am unable to fall asleep.

Amdahl's Law

When you add more processors, it does not necessarily speed up the computational process. A naive view would think that adding two processor cores would double the computational power. Things are not quite as rosy as that. There are many factors that come into play, when considering different computational issues. One classical example used to illustrate this folly is Amdahl’s Law. Although it is incomplete, it serves as an initial estimate as to how much speed up is achievable with a specific number of cores.

Simply stated, Amdahl’s Law is:

speedup = 1 / (serial + parallel/cores)

What this simple expression illustrates is that if the bulk of computation is serial, there will be little speed-up observed even if we use an infinite number of processor cores. However, if a task is highly parallel, then a huge almost linear speed-up can be obtained from using multiple computational cores. Therefore, when someone has a computational problem that needs to be reduced, throwing more cores at the problem may not be the right solution.

When I said that the Law was incomplete, that’s because it does not capture the various other factors that come into play. When we increase the number of cores, the computational complexity also increases because the number of cores will need to communicate with each other in order to synchronise their tasks. The synchronisation complexity will increase exponentially with the number of cores. This includes process synchronisation and memory synchronisation. Memory being slow as it already is, may just worsen the situation.

MACC Downfall

I love the way that the sudden death of a local political aide is referred to in TheStar. You must wonder at the kind of brilliant writers that work there.

Selangor exco’s aide falls to death.
SHAH ALAM: A man died after having fallen off Plaza Masalam here where the Malaysian Anti-Corruption Commission (MACC) has its office on the 14th floor.
The man is believed to be Teoh Beng Hock, political secretary to Selangor executive council member Ean Yong Hian Wah, who was taken in for questioning by the MACC Wednesday evening.

They make it sound like he decided to step out off an open window to take a stroll along the outside of the building, breathing in a lung-full of fresh hazy air and enjoying the spectacular view from up high, before sneezing and falling to his death. Wow, who says that Malaysians have a weak grasp of the English language!

Half Precision

I was looking up floating-point numbers yesterday just out of curiousity and I found out that the IEEE754 standard for floating-point numbers includes half-precision numbers. These mean exactly what the name says – it provides half the precision of single-precision floating-point numbers. I had once read an article which argued that for most normal applications, we do not require high precision numbers. An example application would be voice applications, that only require a quarter-precision value to work.

A half-precision number is a 16-bit representation for a floating-point. It has the ability of providing a larger range of values than a 16-bit integer representation but is less computationally expensive to work with, than a 32-bit single-precision representation and uses up half the memory space. According to the Wikipedia article, it was mooted by the graphics industry for working on graphics applications. This proves that lower-precision numbers can actually be ‘good enough’ for certain applications.

I just thought that I should note it down here. It will come in useful at some point in the future, when I work on enhancements to my processor.