Last week, tens of thousands of Malaysians descended on the road in front of Merdeka Square (as the Square itself was being refurbished) to have a protest rally on the upcoming Goods and Services Tax (GST) that our government intends to introduce in April 2015. However, I did not join the rally this time around because I actually think that the implementation of GST will be good for this country.
Continue reading GST is Good for Malaysia
I’ve driven more than 5,000km in my CRZ. After the service, I decided to start driving more aggressively as I had gotten accustomed to the drive and handling of the car. That’s when I noticed a few things about the modes on the car.
The CRZ comes with three pre-programmed modes – Econ, Normal, and Sport. I’ve been driving around using the Normal mode most of the time. It’s a decent enough drive, nothing particularly exciting about it. In Normal mode, it drives like almost any other car with a little more HP under the hood.
However, when in the Sport mode, it drives like the wind. Acceleration is awesome and I had to actually change driving styles just to accommodate it. As an example, when shifting gears, I cannot touch the accelerator at all unlike in the Normal mode. A slight touch would cause the engine to rev.
At first, I had thought that the Sport mode would be petrol guzzling. This is also reflected in the dash, which changes to red in Sport mode while it fluctuates between blue-green in Normal mode to indicate fuel efficiency.
However, by using the on-board measuring system, it turns out that the Sport mode is actually more fuel efficient than the Normal mode, if I am driving it aggressively i.e. if I want to drive aggressively, I’d actually save more fuel in Sport mode.
I can get the same <15km/L fuel efficiency in Normal mode if I'm driving it like a normal car, but not aggressively like the little sport coupe that it is. When I push the car in Normal mode, I get <13km/L on it.
Also, the handling changes a bit in Sport mode. The steering becomes noticeably heavier in Sport mode. In Normal mode, I can easily turn by a light push of the steering but in Sport mode, the steering pushes back and tries to straighten itself.
I guess that this is a safety feature, particularly if you were going at high speeds, you wouldn't want your steering to be too light and to easily turn at the slightest touch. So, that's also a good thing.
Anyway, just some observations.
This article first appeared on DNA here.
In my previous column, I suggested several ways that one could start learning programming, at any age, on our own. The important thing to remember while doing all this learning is to keep things fun and what could be more fun than doing it with some like-minded individuals?
Although the stereotypical computer programmer is often depicted as a loner working from a dark basement or kitchen table, programming is actually a social activity. In fact, there are certain aspects of a programmer’s skillset that can only be cultivated if we do programming as a group activity.
The group does not need to be big – a pair is often good enough.
We can think of a program’s source code as a form of written communication. Besides being a systematic method to instruct computers on what to do, it also serves as an exact and unambiguous form of communication between those who understand the language.
Just like how we are often told to read and write more as a way to improve our language skills, by our English teacher, a good way to improve our programming skills is to write some code and have someone else read and critique it.
Another excellent way of improving our coding skills is to read code written by other programmers. It takes a good programmer to spot the bugs in someone else’s code. We can learn as much from the mistake that others make, as from our own.
Therefore, working in a small group is a good way of sharpening communication skills and ensuring that others are able to understand what we are trying to accomplish. If someone else finds it difficult to read and understand our code, then we are likely doing it wrong.
A popular cartooni illustrates this best: “the only valid measurement of code quality is WTFs a minute.”
Programming is an intellectual activity involving multiple layers of abstraction and many moving parts. Sometimes, things get complicated quickly. We can often discover better ways of doing things by simply discussing our code with others.
In addition to sharpening our communication skills, we will learn how to see things from a different viewpoint and learn to think at multiple levels of abstraction. It is often useful to discuss things with non-programmers too as they can offer a fresh perspective.
Useful real-world software is often created by programmers working together, sometimes across different geographical regions and time-zones. As a result, a lot of effort has been spent on developing tools that enable teams of programmers from around the world to work together.
While there are far too manyii such tools to list, they all have the same objective – to help manage source code and teams. So, the key is to just pick one and learn good house-keeping rules. Just like programming languages, good programmers know how to use several.
I would personally recommend learningiii to use Gitiv, simply because it is used to manage the source code of Linux, which has several million lines of code written by thousands of programmers from across the world. It is both capable of managing complex projects and quite useful for handling small individual projects.
There are many different methodsv to use Git but which one we ultimately choose will depend on individual preference and group dynamics.
That’s right, programming is a great way of learning how to work with other people.
Writing software gives us a chance to work with diverse people from around the world, and not just those from our own kampung. This is particularly true for major open-source projects. We will get to interact with others who share our interest, from all across the world.
A good programmer needs to know more than just how to write code. A good programmer must be capable of communicating clearly and concisely, able to see things from different perspectives, and able to work effectively with others including those who may not necessarily be programmers. These skills cannot be learned by working alone.
Very interesting TED talk.
I have to admit that I am neither an Islamic scholar nor a Muslim.
However, my limited knowledge of Islam tells me that Islam is a monotheistic religion that believes in one and only one God. This is in contrast with a religion like Hinduism that is polytheistic in nature and believes in multiple gods, or a religion like Buddhism that is atheistic in nature and does not have a god at all.
So, the weird thing about the Court of Appeal judgement is that it seems to suggest that there are at least two gods, one that belong to the Muslims identified as ‘Allah’ and another that belongs to the Christians, that is identified by something other than ‘Allah’ in the Malay language.
Now, if the judges were atheists or polytheists, I wouldn’t think much about the decision at all. But I fear that the aqidah or faith of the judges is at risk of deviation simply because they seem to have pronounced that there are at least two different gods.
Personally, I think that the judgement itself is flawed in many other ways but this probably explains why. If they are lost within their own faith, it’s no wonder that they do not understand others.
If you want opinions by other people smarter than me on why this judgement is wrong, just search for the articles on-line.
I had conversations with a couple of people yesterday, about being successful in their careers. One recurring point was that they were measuring their success based on how they performed compared with their peers.
There are many flaws with this point of view.
Firstly, everyone is different. There is no way to do a direct apples to apples comparison. As long as that remains true, trying to make any sort of comparison is an exercise in futility. There is no metric nor benchmark that can be used.
This should be the most obvious flaw to everyone. It took me a while to realise this as well but once I realised it, it became obvious. I have had difficulty measuring myself against my peers as it isn’t even obvious who my peers were.
Secondly, everyone has flaws. While another person may be better than us in one way, they may be worse than us in another way. We do not know anyone well enough to know everything about them. If anything, we should be comparing ourselves against an ideal.
I learned this at a young age, when I realised that for everything that I could do well, I knew of others who did it way better. But nobody is perfect in this world. For every flaw that I had, there were others who had them worse too.
Thirdly, we can’t peer into the future. Anything can happen at any time. Some may start off really well but stumble later in life. Some may do the opposite. It is very unusual to find someone who has the stamina to sustain their success throughout their lives.
This was something that others have taught me. You can’t really tell whether someone is a success or not, while they’re alive. You actually need to wait till their story is completely written to figure that one out – on balance.
Fourthly, everyone measures success differently. Some people measure it in terms of money, some in terms of power and influence, some in terms of happiness, others have other ways of measuring it.
Personally, all I care about is happiness. In my opinion, there is no point in being miserably rich, nor fearfully powerful. At the end of the day, what is important is that we are happy, with ourselves and what we have done with our lives.
Finally, what’s the point?
The important point is: just know where we want to be and what we’d like to ideally achieve, and to pit ourselves against our future self. As long as we keep moving in the right direction and achieve things along the way, we know that we’re on track to success.
Stop peer pressuring ourselves.
PS: Coming from Cambridge, this is a particularly dangerous trap to fall into.