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.

Hunting a Rat

I have a rat problem at home. It has been eating my bread and most recently, it has eaten its way through a door. I hate rats. I wish that hunting rats was as easy as hunting hackers. I was brought in on an incident at work today. Seems like one of our servers had recently been compromised. Any organisation with a sufficiently large server infrastructure needs to be ever vigilant of attacks.

So, I got my grubby hands on the KVM terminal of the server and started nosing around. Very quickly, I found that it was making two network connections, one to an IRC server and another attack on a remote web server. This is interesting because it is a classic bot-net scenario where the bot sits in the background and connects to an IRC server in order to receive commands from its masters.

Then, I had to hunt down the offending background bot programme. That took a little snooping around the proc filesystem of the server to track down the application. I loved the filenames that the hacker used for its scripts. Some of those names were really creative to say the least. The final step was to track down how the hack was initiated. This was definitely something planted ages ago before being turned-on recently.

At one point, I commented to a colleague that it felt fun playing CSI on the server. As usual, the ultimate flaw in the security lay in the system admin. While nosing around in the system, I got a feel for the competency of that particular server’s sysadmin. There were several things done, that should not be done. So, let’s just hope that they take our advice to heart and fix the flaws.

As for the rat at home. I think that I’ll need to try to track down its entry point into the house. Then, I can plug it and kiss it goodbye.