Monthly Archive for January, 2008

Just an update

Just booked out of camp this morning. I was confined on Saturday because of very stupid reason that I shan’t wish to elaborate here. Because I was the only one in my bunk, I was the bedbugs’ sole food, so I suffered. Terribly. My legs and arms were covered with tiny bites that itch the hell out of me and caused me so much agony I was unable to sleep until 1am last night. Damn.

My grandmother celebrates her birthday today. I have some fantastic photos and videos about it, but I won’t be posting them yet because I really do not have the time. I will be booking in in a little less than 2hrs.

Spent $20 at the arcade today. Got 708 at the basketball machine, which is the best score me and my gf have so far. We were very happy.

My sister told me that the little boy in the movie CJ7 is actually a girl. View the trailer movie here. What the hell. I think she looks more boy-ish than other boys at her age.

Nothing much to blog about for now. My brain is still in its hibernation state.

Oh ya, to all NSFs and Regulars out there, if you are Chinese, you will get Feb’s pay on 2nd Feb instead of 10th Feb. I don’t really see the rational for this. Perhaps to let us have our money abit earlier to shop for new year clothes (which I have not yet done)?

And to share some stuffs that are entertaining me recently:
Game: Final Fantasy IX
Anime: School Rumble, D’Gray Man, Mahou Sensei Negima
Book: Dilbert: The Day of the Weasels, God is not Great: The case against Religion.

Rate this post: 1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...

Q-Steer Fun

Recently I got interested in these tiny whiny R/C cars called Q-Steer produced by Tomy. A few years back I ordered 2 Bit-CharG cars from a japan hobby website. Those were the smallest consumer r/c car toys of that time, measuring around 6cm in length. Now, I discovered Q-Steer. Its even smaller.

What is the size of Q-Steer? If you have visited any toy shops, you should have noticed a series of over priced pull-back cars measuring 4cm long, called Choro-Q, which are also produced by Tomy. Well, Q-Steer is branded under the Choro-Q umbrella, and if not for the electronics inside it, Q-Steer cars are totally identical in look and size as the pull-back Choro-Qs.

An interesting point is that these cars do not contain rechargeable batteries, unlike other tiny R/C toys. They run on 2 LR44 batteries, the very same batteries that power your Digimon toys. Instead of transmitting via radio waves, these cars are controlled via Infra Red. As a result, gadgets with built in infra red sensors like handphones and PSP can also be used to control those cars as long as you have the necessary applications.

Here is a pic of my collection. (Only 3 cars, will get more soon!)

In my opinion, these cars are priced rather inexpensively. $16.95 for a box with a car only. $24.95 for a box with a standard car and a remote. $29.90 for a box with a special car, speed upgrade accessories and a remote. $59.90 for 2 special
cars, a bunch of accessories and 2 remotes. Compare this with the price of a Bit Char-G ($29.95) for a car and remote, or Digi-Q ($70) for a car a remote which were released a few years back and no longer available today.

After watching a few Youtube videos which featured a bunch of guys racing their Q-Steers on racing tracks which they made themselves, I’ve decided to make one too for the budget of $5. I overshot my budget slightly, but the end result is worth every penny.

1) Grade 1200 Sandpaper $0.50 - for the Slope
2) Large black thick cardboard $3.60 - for the base
3) White glue $1.00
4) Ice-cream sticks $0.80 - for the corners and structures

I’ll be getting some green plasticine to add patches of “grass”, some plastic trees, etc to beautify it later today.

Update: After applying some plasticine and adding some new elements:

The next logical step is of course to use ice-cream sticks to block up everything so that the cars won’t fun out of the track.. but I’ve ran out of ice-cream sticks for now so this will have to do.

Q-Steer is really, really fun!

And if anyone is feeling generous! Kindly make a donation so that I would be able to afford more cars! My birthday was just over btw (18 Jan). I can use some belated birthday gifts!

Please rate: 1 Star2 Stars3 Stars4 Stars5 Stars (3 votes, average: 5 out of 5)
Loading ... Loading ...

Go ITE directly. Stop wasting your time.

“Go ITE instead.”

Imagine that is what your principal said to you during the first week of school in a new year, after you have worked so terribly hard in the examinations so that you get into Secondary 5 and will be able to take the O levels to further your future education by going to a Junior College or a Poly.

The principal told a reporter, “Some…who don’t qualify for poly will end up in the ITE anyway, so they might as well go direct to the ITE.”

When further questioned, she said, “It’s a fact.”

Does she even care about the kind of effort less academically inclined students have to put in in order to go this far and be able to take the O Levels? No. She literally told them, don’t waste your time. You won’t make it. Go ITE now.

How disheartening.

Worst, this principal undermined the fantastic marketing efforts that the ministry and ITE put in over the years in order to alter the view of the general public - that ITE is an holistic institution and not a collector of less academically inclined students.

Yet, in today’s newspaper, Minister of State for Education, Lui Tuck Yew is quick to stand behind her. He said, “The tone of a principal’s message to Secondary 5 students may not have gone down well, but it was one that had to be delivered, for the students’ sake.”

I give an example. If I am outside on the street, and someone is right in front of me, blocking my direction of travel. If I were an untactful idiot I would have said, “Fuck off la, cheebye!” If I am more civilized, I would say, “Excuse me, please.” Same message, different tones. Totally different impact and outcome. Is the fact that message had to be delivered a good justification to disregard the tone that the principal had used?

After I say “Fuck off la, cheebye!” to the person and on the verge of getting beaten to death, can I then explain away the tone of my message by saying what National Institute of Education, Rear-Admiral (NS) Lui said, “it was important to separate the ‘tone’ from the ’substance’ of the message.” ?

And in my last moment on earth, perhaps I can further tell my attacker, as if to save my own grace before I die, “I can calibrate the tone. I can soften it, improve on the presentation, but you really were blocking my way.’”

Furthermore, while I am in hell, I still refuse to admit I am wrong,
“‘My message affected you, provoked you and it impacts you negatively, and it’s an excuse. Or you can stand up tall, just take it gracefully and accept that I am a bastard for shouting ‘Fucking off la, cheebye’ at you, and move out of the way so that I can pass.”

Further more, what category of human beings does the principal’s tone put her under? Is she even qualified to be an educator? Lest a commuter on the street.

What are the reasons behind her action?
(The following are my own humble opinions that should be regarded with a pinch of salt. I am only speculating here. None of the below may be true.)

I suspect she look down on her students. It is common knowledge that academically inclined students tended to look down on students who are not. Being a high flier in the education industry, looking at a bunch of less academically inclined students struggling to improve their future careers and paths MAY seem to her like ants struggling to survive after the onslaught of a big spray of pesticide. Laughable and fruitless. Waste of time. Forget it and just go ITE (or in the case of the ants, heaven) directly. Stop wasting your time.

Another possible reason for her action was perhaps to boast up her school’s ranking. By getting rid of the weaker students, the school’s ranking will definitely go up. As straight forward as that.

Perhaps the least plausible reason was that the principal’s words were “wake-up” call that must be delivered. As illustrated in the earlier example, however, a wrong tone is a wrong tone. Despite the fact that the gist of the message to be conveyed is the same, using the wrong tone has the wrong impact. It can be considered a different kind of message altogether. The principal certainly has not embraced herself in the mind boggling world of English literature before.

I think this incident is a wake-up call to all educators out there. For them to stop being so full of themselves, for them to be more tactful towards their students, for them to really deserve their high pay and educator perks, for them to behave more like a principal, respect their students, and not view school ranking as defining stones on their career.

How successful you are as an educator does not depend on the ranking you achieved for your school, it despends on how you have touched your students an inspired them. In this case, the principal may not even deserve to be called an “educator”.

Quotes
A teacher affects eternity:
he can never tell where his influence stops.
Henry Adams
(Me: So what kind of influence did this principal cast on her poor students?)

What nobler employment, or more valuable to the state,
than that of the man who instructs the rising generation.
Marcus Tullius Cicero
(Me: Are her actions noble?)

The important thing is not so much
that every child should be taught,
as that every child should be given the wish to learn.
John Lubbock
(Me: “Fuck Olevels. Go ITE directly. Stop wasting your time. You won’t make it.” Oh my..)

Those who educate children well are more to be honored than parents, for these only gave life,
those the art of living well.
Aristotle
(Me: From a parent of one of the students: “‘It is very sad when your principal doesn’t have faith in you and will not give you a chance.’ “)

We cannot hold a torch to light another’s path without brightening our own.
Ben Sweetland
(Me: …)

It is the supreme art of the teacher to awaken
joy in creative expression and knowledge.
Albert Einstein
(Me: Again, “Fuck Olevels. Go ITE directly. Stop wasting your time. You won’t make it.” Oh my..)

Teaching is not a lost art,
but the regard for it is a lost tradition.
Jacques Barzun

A master can tell you what he expects of you.
A teacher, though, awakens your own expectations.
Patricia Neal

And finally,

A child miseducated is a child lost.
John F. Kennedy


References:
Principal’s ‘wake-up call’ to Sec 5 students had to be ‘conveyed’
Principal’s words of advice to Sec 5 students ill-chosen
Sec 5 class advised: Go to ITE instead
Principal’s ITE advice ‘had to be delivered’
Inspirational Teachers Quotes and Sayings


Note to fellow regular readers: I realised that after going into hibernation for so long I couldn’t write as well as before. Sorry about that. I’ll try to blog regularly once again so as to sharpen the saw and prevent it from rusting even more.

Rate this post: 1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...

How to recoginze a good programmer

Link

How do you recognise good programmers if you’re a business guy?

It’s not as easy as it sounds. CV experience is only of limited use here, because great programmers don’t always have the “official” experience to demonstrate that they’re great. In fact, a lot of that CV experience can be misleading. Yet there are a number of subtle cues that you can get, even from the CV, to figure out whether someone’s a great programmer.

I consider myself to be a pretty good programmer. At the same time, I’ve spent a fair amount of time on the business side of the fence, filtering technical CVs for projects, interviewing people, etc. Thanks to this, I think I have a bit of experience in recognising good programmers, and I want to share it in this article, in the hope that it may help other “business guys” to recognise good programmers. And, who knows, perhaps some programmers who have the potential to be good but haven’t really exploited this can also read this and realise what they need to do to become good (although, as I’ll argue, that’s definitely not accessible to all programmers!).

In his article The 18 mistakes that kill startups, Paul Graham makes the following point:

“… what killed most of the startups in the e-commerce business back in the 90s, it was bad programmers. A lot of those companies were started by business guys who thought the way startups worked was that you had some clever idea and then hired programmers to implement it. That’s actually much harder than it sounds—almost impossibly hard in fact—because business guys can’t tell which are the good programmers. They don’t even get a shot at the best ones, because no one really good wants a job implementing the vision of a business guy.

In practice what happens is that the business guys choose people they think are good programmers (it says here on his resume that he’s a Microsoft Certified Developer) but who aren’t. Then they’re mystified to find that their startup lumbers along like a World War II bomber while their competitors scream past like jet fighters. This kind of startup is in the same position as a big company, but without the advantages.

So how do you pick good programmers if you’re not a programmer? I don’t think there’s an answer. I was about to say you’d have to find a good programmer to help you hire people. But if you can’t recognize good programmers, how would you even do that?”

I disagree with Mr Graham on this one. I think there are a number of very strong indicators of a “good programmer” (and, conversely, strong indicators of a “not-so-good programmer”) that even a business guy can recognise. I’ll summarise some key indicators and counter-indicators in a list at the end of the article.
#1 : Passion

In my corporate experience, I met a kind of technical guy I’d never met before: the career programmer. This is a person who’s doing IT because they think it’s a good career. They don’t do any programming in their spare time. They’re shocked when they find out I have a LAN and 3 computers at home. They just do it at work. They don’t learn new stuff unless sent on a training program (or motivated by the need to get a job that requires that technology). They do “programming” as a day job. They don’t really want to talk about it outside of work. When they do, they talk with a distinctive lack of enthusiasm. Basically, they lack passion.

I believe that good developers are always passionate about programming. Good developers would do some programming even if they weren’t being paid for it. Good programmers will have a tendency to talk your ear off about some technical detail of what they’re working on (but while clearly believing, sincerely, that what they’re talking about is really worth talking about). Some people might see that as maladapted social skills (which it is), but if you want to recognise a good developer, this passion for what they’re doing at the expense of social smoothness is a very strong indicator. Can you get this guy to excitedly chat up a technology that he’s using, for a whole half hour, without losing steam? Then you might be onto a winner.
#2 : Self-teaching and love of learning

Programming is the ultimate moving target. Not a year goes by without some new technology robbing an old, established standard blind and changing half the development universe. This is not to say that all good programmers pick up these changes and ride the bleeding edge. However, there’s a class of programmers that will never, ever pick up a new technology unless forced to, because they don’t like learning new stuff. These programmers will typically have learnt programming at university, and expect to get by on whatever skills they picked up there, plus whatever courses their company is willing to send them on.

If you’re thinking of hiring someone as a programmer, and he ever utters the words “I can work with that, just send me on a training course for a week and I’ll be good at it”, don’t hire that guy. A good programmer doesn’t need a training course to learn a new technology. In fact, the great programmer will be the one talking your ear off about a new technology that you haven’t even heard of, explaining to you why you must use it in your business, even if none of your staff knows how to use it. Even if it’s a technology he doesn’t know how to use yet.
#3 : Intelligence

Some business people assume that lack of social tact and lack of intelligence are the same. Actually, intelligence has several facets, and emotional/social intelligence is only one of them. Good programmers aren’t dumb. Ever. In fact, good programmers are usually amongst the smartest people you know. Many of them will actually have pretty good social skills too. The cliché of the programmer who’s incapable of having a conversation is just that - a cliché. I’ve been to a few meetings of the London Ruby User Group and I can say that with only a very few exceptions, most people there are smart, talkative, sociable, have varied interests, etc. You wouldn’t look at them chattering away in the pub and think “what a bunch of geeks!” - at least until you approach a group and realise they’re talking about the best way to design a RESTful application with a heavy UI frontend.

This doesn’t mean that they’ll all feel comfortable in every social context. But it does mean that if the context is comfortable and non-threatening enough, you’ll be able to have as great a conversation with them as you would with the most “socially enabled” people (perhaps better, since most good programmers I know like their conversation to revolve around actually useful topics, rather than just inane banter).

Don’t ever hire a dumb person thinking they’re a good developer. They’re not. If you can’t have a great conversation with them in a relaxed social context, they’re very likely not a good programmer. On the other hand, anyone who’s clearly very smart at the very least has a strong potential to be a good or great programmer.
#4 : Hidden experience

This is correlated with the “Passion” point, but it is such a strong indicator that I’d like to emphasise it with its own point.

I started programming when I was about 9, on a Commodore 64. I then migrated onto the PC, did some Pascal. When I was 14 I wrote a raycasting engine in C and Assembler, spent a large amount of time playing with cool graphic effects that you could get your computer to do by messing directly with the video card. This was what I call my “coccoon stage”. When I entered that stage, I was a mediocre programmer, and lacked the confidence to do anything really complicated. When I finished it, I had gained that confidence. I knew that I could code pretty much anything so long as I put my mind to it.

Has that ever appeared on my CV? Nope.

I strongly believe that most good programmers will have a hidden iceberg or two like this that doesn’t appear on their CV or profile. Something they think isn’t really relevant, because it’s not “proper experience”, but which actually represents an awesome accomplishment. A good question to ask a potential “good programmer” in an interview would be “can you tell me about a personal project - even or especially one that’s completely irrelevant - that you did in your spare time, and that’s not on your CV?” If they can’t (unless their CV is 20 pages long), they’re probably not a good programmer. Even a programmer with an exhaustive CV will have some significant projects that are missing from there.
#5 : Variety of technologies

This one’s pretty simple. Because of the love of learning and toying with new technologies that comes with the package of being a “good programmer”, it’s inevitable that any “good programmer” over the age of 22 will be fluent in a dozen different technologies. They can’t help it. Learning a new technology is one of the most fun things a programmer with any passion can do. So they’ll do it all the time, and accumulate a portfolio of things they’ve “played around with”. They may not be experts at all of them, but all decent programmers will be fluent in a large inventory of unrelated technologies.

That “unrelated” bit is the subtle twist. Every half-decent java programmer will be able to list a set of technologies like “Java, J2EE, Ant, XML, SQL, Hibernate, Spring, Struts, EJB, Shell scripting”, etc.. But those are all part of the same technology stack, all directly related to each other. This is possibly hard to recognise for non-programmers, but it is possible to tell whether their technology stack is varied by talking to them about it, and asking them how the different technologies they know relate to each other. Over-specialisation in a single technology stack is an indicator of a not-so-good programmer.

Finally, if some of those technologies are at the bleeding edge, that’s a good positive indicator. For instance, today (November 2007), knowledge of Merb, Flex, RSpec, HAML, UJS, and many others… Please note that these are fairly closely related technologies, so in a couple of years, someone who knows all these will be equivalent to someone familiar with the Java stack listed in the previous paragraph.

Update: As a clarification to this point, there’s in fact two indicators here: variety and bleeding edge. Those are separate indicators. A good variety of technologies across a period of time is a positive indicator, whether or not the technologies are bleeding edge. And bleeding edge technologies are a positive indicator, whether or not there’s a variety of them.
#6 : Formal qualifications

This is more a of non-indicator than a counter-indicator. The key point to outline here is that formal qualifications don’t mean squat when you’re trying to recognise a good programmer. Many good programmers will have a degree in Computer Science. Many won’t. Certifications, like MCSE or SCJP or the like, don’t mean anything either. These are designed to be accessible and desirable to all. The only thing they indicate is a certain level of knowledge of a technology. They’re safeguards that allow technology recruitment people in large corporations to know “ok, this guy knows java, he’s got a certification to prove it” without having to interview them.

If you’re hiring for a small business, or you need really smart developers for a crack team that will implement agile development in your enterprise, you should disregard most formal qualifications as noise. They really don’t tell you very much about whether the programmer is good. Similarly, disregard age. Some programmers are awesome at 18. Others are awesome at 40. You can’t base your decisions about programmer quality on age (though you might decide to hire people around a certain age to have a better fit in the company; please do note that age discrimination is illegal in most countries!).

As a final note to this, in my experience most average or poor programmers start programming at university, for their Computer Science course. Most good programmers started programming long before, and the degree was just a natural continuation of their hobby. If your potential programmer didn’t do any programming before university, and all his experience starts when she got her first job, she’s probably not a good programmer.
Disclaimer

None of the indicators above or below are sure-fire indicators. You will find great programmers who break some of those moulds. However, my view is, you’ll rarely find a great programmer that breaks all of them. Similarly, you may find poor programmers that meet (or appear to meet) some of these criteria. But I do strongly believe that the more of these criteria a programmer meets, the more likely they are to be one of those elusive “good programmers” that, as a business guy, you need to partner with.
The criteria in bullets

So, in summary, here are some indicators and counter-indicators that should help you recognise a good programmer.

Positive indicators:

* Passionate about technology
* Programs as a hobby
* Will talk your ear off on a technical subject if encouraged
* Significant (and often numerous) personal side-projects over the years
* Learns new technologies on his/her own
* Opinionated about which technologies are better for various usages
* Very uncomfortable about the idea of working with a technology he doesn’t believe to be “right”
* Clearly smart, can have great conversations on a variety of topics
* Started programming long before university/work
* Has some hidden “icebergs”, large personal projects under the CV radar
* Knowledge of a large variety of unrelated technologies (may not be on CV)

Negative indicators:

* Programming is a day job
* Don’t really want to “talk shop”, even when encouraged to
* Learns new technologies in company-sponsored courses
* Happy to work with whatever technology you’ve picked, “all technologies are good”
* Doesn’t seem too smart
* Started programming at university
* All programming experience is on the CV
* Focused mainly on one or two technology stacks (e.g. everything to do with developing a java application), with no experience outside of it

I hope these help. Let me know below if you have any comments, or anything to add to them!

Thanks for reading.

This post is sort of as a follow up to the previous post regarding NUS starting a Facebook module.

Rate this post: 1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...

Living life without living it

Life has been very very monotonous lately, which pretty much explains the lack of posts right here. Animes have somehow lost their appeal as my number one form of entertainment, which is a bad sign for Odex.

Looking at those around me, those who are going to ORD in one or two months’ time, I could not help but feel a certain dread. True, I no longer have to refer to my ORD year as “the year after next”, but the months stretches in front of me like Sahara dessert. Jan, Feb, March, April and so on and on. A whole year more to go, and then some.

Lost my dear’s couple ring today while on my dad’s car on the way to Pasir Ris beach. The interesting thing is despite practically turning the entire car inside out, we couldn’t find the ring. It seemed to have acquired some RPG like magical qualities on its own and casted a vanishing spell on itself. Its gone for good. Don’t worry dear, don’t be sad. We will buy an even prettier ring next week ok?

Haven’t talked to Poh Wei for very long. Wondering how he’s doing. Also arousing my curiosity is Cygig. When will he talk to me again? I still don’t understand the reason behind him daoing me just because I was unable to talk to him for a few weeks due to me busy giving Slops a do over.

Life is short enough already without actually looking at the seconds ticking by. How I wish time could slow, so that the limited time I have on Earth could be put into better use and be more enriching. However, at the same time I hope for time to past faster. Accelerating towards ORD, accelerating towards the time when time don’t apply to me anymore.

I am growing increasingly disillusioned with the standard of living in Singapore. Despite announcing constant economic growth, ministers have spoken and asked us to “choose cheaper products” due to increasing prices of basic necessities. And choosing cheaper products does not equal to more savings. The reason why we have to choose something cheaper was because due to the increasing prices and stagnant wages, we can no longer afford things that we used to be able to. We have to buy a “cheaper” and probably more inferior product, which in fact costs the same price as what a more superior product costs in the past. This would result in gradual lowering in our standard of living. A very interesting question would hence be, why is Singapore’s strong economic growth accompanied by call for Singaporeans to lower their standard of living?

China people are flooding our workforce. Jobs like toilet cleaners, vendors in shopping centre food courts, waitresses, etc which were once occupied by our older and less educated work force were all replaced by workers from China. Is this because the lower paid Singaporeans have all upgraded their skills to a better job? I highly doubt so. Added to this is the constant call from the government for Singaporeans to work past the retirement age to be less of a burden to the younger generation due to the aging trend in our population. Jobs competition for those lower skilled jobs will definitely become even stronger. And the result? Shopping centres get cheaper toilet cleaners.

And parenting in Singapore is getting lousier and lousier. In the past, the cane is the king. Although using the cane is a pretty violent way to educating young children, it works. Now with younger parents prefering to talk it out with their kids, we see more and more spoilt children running around. A little boy who yanks at his father and sink his nails into his father’s leg because he wants to buy a transformer toy; a little girl who stands on the table and chairs on a fast food restaurant like a Chinese Lion dance while her mother happily enjoys her food; a 8 years old walking around a shopping mall swinging his arms like a hooligan. I think I will be leaving before they are taking over as the country’s leaders.

This is living life without living it. When you see things going obviously wrong and people just pretend or choose not to have noticed them. Things are certainly going downhill. I am just being wash along by the wave of inevitable. I have no choice and could not doing anything. I have lived but not live.

I don’t even know what the hell I am saying.

Rate this post: 1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...

Dangerous of exterior Air-Con drainage pipe.

Imagine if the pipe were to drop…
Enough said.

Rate this post: 1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...