Archive for ‘ 2009

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.

CODE8 Apprenticeships

I would like to highlight an initiative by our government for fresh graduates – CODE8. CODE8 is an apprenticeship programme designed for people in the ICT area. Anyone who is interested should apply for it – particularly if you are having trouble finding a job. In fact, I highly recommend that you apply for this if you have yet to successfully find employment anywhere else.

The package is a really good one and since it is an apprenticeship, you will be provided with invaluable training in various areas. There will even be lessons to attend regularly – it will just be like school again! You will need to sign a short term contract but think of it as an extended internship except that you will be highly paid unlike interns.

And please help spread the word around. If you have friends who are fresh graduates, please ask them to apply for it too! This lucrative offer is not to be missed. I guarantee that you will never find anything like this anywhere else in 1Malaysia!

Open Graphics

I had just read an interesting write-up today on the possible reasons behind the death of Larrabee – Intel’s next-generation home-grown graphics processor designed to open up the world of CPU-GPU computing and to kill both ATI and NVIDIA in graphics. Needless to say, the article was very juicy but regardless of its factual truth, it did provide me an insight or two into the cut-throat world of graphics processing.

Graphics is hard! That is why there are only two major companies leading the high end graphics chips and two companies at the low end. From a technical perspective, a graphics processor is at the opposite end of the spectrum from a general-purpose microprocessor. It is a different beast entirely. This got me thinking – it might be fun to do a graphics processor project on my own – on a small scale of course. This got my brain churning, which is always a good thing.

If I were to design a graphics processor of my own, I would first start with a half-precision or smaller word-length. This would keep the computational units small. I would further simplify the hardware by synchronising all the computational units to operate in lock-step with each other. Operation scheduling would be controlled in software. As long as the graphics processor is simple enough to push out pixels are a fairly decent rate, I would already be really happy. It might be all that is necessary for running a certain class of software, particularly if paired with my existing processor. At the very least, it would be fun to do and interesting to learn.

Now, if I could only get my hands on some graphics processor architecture books or sample hardware designs or even some publicly available data sheets on some older chips.

Sound System

Now that I have a LCD television and a PS3 home entertainment machine, all that is lacking in the collection is a proper sound system. Just out of curiousity, I checked out what models our local Carrefour had on promotion. Turns out that it is running a promotion on four home theatre systems that end tomorrow. I am not too worried about Carrefour prices because they tend to keep things low, even after their promotions end.

The model that attracted my eye is the HT554TM package that comes for just under RM1000 with the discount voucher.

It is a regular DVD player with an attached 5.1 surround sound system. It has up to 1080p HDMI output and a optical input. This is exactly the kind of device that I am looking for. It would allow me to watch my regular DVDs in high-definition on my television and it would allow me to experience proper 5.1 surround sound on both DVDs and Bluray movies. Nice! The PS3 comes with an optical audio output for full 5.1 surround sound. In addition, the device is from LG and comes with the SimpLink technology which would allow me to control the DVD player with the same remote that I use for controlling the television, which is a good thing.

Well, this is just a consideration and it is a good system at a reasonable price. I have not decided to get it yet. I will probably wait till early next year to get one. I have sort of busted my budget this month with all the PS3 games that I bought. I was kind of shocked when I received my credit card statement the other day. But it is nice to start looking around for a decent sound system. The next thing that I will have to do is to find a nice way to wire up the living room. There is an electrical shop near my place that sells the right kind of wires.

Core Dump

I sometimes lament the fact that most software people do not have the necessary hardware knowledge to understand how computers actually work. A software person may think that the algorithm is secure simply because he/she had obfuscated and encrypted both the library and the application software using the library. A software person may think that it would take years to break the encryption and obfuscation.

Unfortunately, I have a very bad news for these software people. The hardware guys totally agree that encryption standards today are so strong that there is no point attacking your algorithm at the software level, which is why hardware people always attack these problems at the hardware level. The primary problem, you see, is that there is no microprocessor that executes encrypted code. All code will need to be decrypted at some point, and stored in-memory for the processor to execute. That is where the hardware person will attack the problem. The typical hardware person would just dump the memory and then read and interpret its contents, which is much easier than it actually sounds. It is fairly easy to differentiate random data and proper sequence of instructions in-memory. There are tell-tale signs that any embedded programmer would be able to read.

In fact, even if you do not store your encryption algorithms nor encryption keys in external memory but choose to store it in the on-chip cache, it is still possible to force the processor to evict that cache content into external memory and then steal the code from the memory. All these are fairly standard hardware debugging techniques that need to often be used to verify that hardware works. For example, if a processor isn’t doing what it is supposed to be doing, one of the first things that a hardware person needs to check is that the programme in memory is actually being executed by the processor (and it is not just sitting there in memory).

And with today’s virtualisation technology, it makes the job much easier to do. It is possible to run the secure application in a virtual machine and to dump and inspect the virtual machine’s memory while the application is actually running inside the virtual machine. That is one of the cool advantages for using virtual machines that every software developer needs to learn. The hardware person does not need to actually crack the encryption protecting the software nor does the hardware guy need to debug the code inside the operating system. It only needs to be intercepted at the virtual machine level.

It is something that people should just be aware of, especially people peddling security applications.

PS: In case anyone was wondering why there are no processors that run encrypted software, the reason is again due to software. It would be a nightmare to debug the software written for an encrypted processor.