As mentioned previously, I was assigned to another team barely 1 month into my new job. Initially, I felt I was dumped, but from the current situation, I was glad it happened.
When I was still in my old team, the last task in progress was an enhancement to a function. We are going to receive a new kind of data from Not Competent Solutions. My task was to create new tables to hold the data and new screens to display them, and to add Update and Invalidate functions for old data. It is urgent with a tight deadline, only 1 month, inclusive of non-working days. But it shouldn't be difficult since it's just mostly displaying. I was allowed to put my tasks at hand aside.
The person in charge, R, briefed me. Currently, the function is a popup. The title of the new data will display on this popup. To see the summary of the new data, click on the title to open a popup. To see the details of the new data, click a button to open yet another popup. So fond of popups! It sounded like a horrible design, so I suggested redesigning it. But R said the users wanted it.
Huh... I thought R should talk the users out of it, but o well... *shrugs*
Without any knowledge of the purpose of each of the fields of the new data, I found it hard to decide what to display. What does the user need to see? I also didn't want to entrap myself in case the field to display actually needed much processing beforehand and its presence unimportant. Who wants to go through a lot of unnecessary trouble to display something optional, just because I proposed it?
R's advice was to display "everything". More is better than less. This means displaying the code name AND display name of the item, for instance, when surely, only the display name will make sense to the user. Do you need to know that your Ricola herb flavour, large size, is called RIHL in the inventory?
By the way, I do not understand Not Competent Solutions' rationale for sending code and display name together. Shouldn't they just send the code name, maintain a separate list of code and display names and map the 2 tables? By doing it their way, when there is a change in, say, display name, they have to sift through all the data to update. More work instead of less. If it were done the proper way, they would only need to update 1 row what. Obviously they don't need a sotong to teach them something as basic as this, so I'm really curious about why they still chose this stupid way. Maybe want to charge more effort when the time comes.
The users approved the screens. I bet they did not even spend a minute to think about whether the information is useful or makes sense. I bet they didn't even really know what they wanted to see on the screens. It doesn't bode well.
Due to my lousy computer that hangs up to 4 times a day, my unfamiliarity with the IDE and not-so-up-to-standard programming skills, I ran into scheduling problems. I caught up by sacrificing a Saturday and ignoring potential problems regarding the update. Get the basics up first, fine tune later.
Because of the Invalidate function, it would make sense not to display invalidated data in the Current list, yet still display in the History list. I reflected to R and he agreed. No mention of any time extension. The other in charge, M, will surely say such a "small" change, 1hr can finish, time is tight, cannot extend. Although the documentation said this enhancement does not include anything not mentioned. The programmer shall slog for the flawed impact analysis.
There were still many things unconfirmed. Many new dropdown menus are added, but there was no mention of where the items were coming from. R and M didn't know if Not Competent Solutions was going to send that. I have only like 1 week left, but they still haven't discussed that.
Then there is this label, "Update Reason", which could either be filled in by selecting from the dropdown menu or typing in the textbox. But in the database table, there's only 1 column for Update Reason, instead of 1 for dropdown and 1 for textbox. So with the data from the database, how do I know where it belongs? If the user makes changes, I can't possibly merge data from 2 fields into 1 column? Computer is stupid one lor, I need an indicator or a set of rules! Whatever the case, it's additional work.
The time came for me to leave the team. There were still things I didn't have time to think over. There must still be undiscovered problems. Not mine anymore.
1 month has elapsed long ago, but I still see the poor guy, B, who took over my shit coming to ask R and M what to do about this field and that field. Or R and M telling B that there are changes. This is really shitty man, why did they rush into things and still let the user anyhow change? If the deadline remains, the buffer is... wow. Really weird way of doing things.
I just confirmed that the leader really does nothing at holding the team together. He was on leave on Friday. We all didn't know he was leaving the company until the new, enthusiastic leader came to start taking over the project's documents and the soon-to-be-ex leader's desk although he has not officially taken over yet.
Everyday, my old team is the last to go for lunch and the first to return from lunch. They rarely chit chat. I'm happy I'm not with them anymore. But sadly, I'm still sitting with them.
To be fair, I must give them credit for still helping me to buy lunch. And the rare chit chat.
Sneaky sotong hiding behind her machine. No photos of sotongs and related beings here. Stop trying.
Saturday, December 30, 2006
Botak Jones @ AMK
"IT'S official - this is the wettest December in 137 years of recorded history."
On Boxing Day, W, J and I braved the relentless rain, bone-pricking wind and slippery floor to try the highly-raved Botak Jones western food during dinner. I reached before them and picked a dry and warm table. W and J were going to wait for a bus at YCK, so it's gonna be a wait.

This stall is powerful ley! There are so many helpers, in uniform somemore! Even got cash register neh :O Didn't see the angmoh girl. I heard there usually is a queue, but there was only 2 people queueing ley. Maybe it's the rain. They were looping the music on their homepage. I pitied the poor people working in the coffeeshop for being subjected to it for as long as they work.
Moments later, the dinner crowd arrived. 3 tables of people came and the queue started snaking towards my table!! Alamak! I quickly called W and J to get them to sms me their orders so they wouldn't have to wait too long for the food later. Of course I was not going to risk my life and table to queue up to place orders like everybody. I signaled to one of the helpers and he was understanding. Not like some stupid 汤圆 stall at Ghim Moh market, rather stare into space and let my 汤圆 turn cold in his face. Condemn!
O by the way, I got to skip the queue because he brought my order directly to the kitchen :X The sotong preyed on people's kindness again. I hope he didn't think I was going to eat everything by myself.
I turned to look at the tv. There was a short interview of Botak Jones on the variety show, Heartland Getaways! So 准! The helpers cheered and clapped. So Botak Jones is really botak...
The food started being served but W and J were not here yet. First was my Botak Burger with cheese and Stuffed Jalapenos. Don't need to label the photos lah, quite obvious which is which hor?


Should I wait for W and J? The stuffed jalapenos looked very cute and yummy. Not nice when it's cold. The melted cheese must be eaten hot.
I reached for the stuffed jalapenos but they were too hot to be handled. Therefore I must eat my burger before the cheese solidify (excuses). I knifed my burger before recalling that I wanted to take a photo. This explains why the burger is pacman-shaped.
Soon, W and J arrived. I ordered a cup of hot horlicks. Coupled with the cheese, it's a healthy high-calcium diet. But W and J's iced lemon tea looked nice *regret* Their fish and chips came within minutes. Good timing!

It was disappointingly small, too puny to be shared between 2 people.
I learned that the jalapeno is a very spicy chilli. I tried 1/2 of it and couldn't tahan. Wa heng I never eat it just now!
My beef patty is thick, juicy and tender, good! Except for a portion with ligaments. My chilli fries are delicious! Don't know why the fish and chips came with plain fries. The website showed chilli fries ley. Kena cheated. I shared my fries with them since I couldn't finish anyway.
The fish tastes good, but too thin lah.
We looked around and saw all the fish came in pairs. Hey how come we only have 1 slice? I thought it might be because the helper gave me 1 less to help prevent me from overeating. But actually it's because we ordered regular, only large has 2 slices lah.
W and J were not satisfied, so they got a Giant Chicken Hot Dog. They thought we were taking away, so they gave us in a styrofoam box. But when they realised we were eating it right now (must be surprised at the big stomachs of 3 ladies), they served it in a proper plate. Or maybe they wanted to save a styrofoam box.

The hotdog was deliberately sliced halfway and the knife left on the plate for aesthetic purposes.
Not bad, very chewy. Too bad no cheese.
Verdict: Very filling. Tastes good and is cheap. Can go back. But not very accessible though.
Check out the website
Interesting points
On Boxing Day, W, J and I braved the relentless rain, bone-pricking wind and slippery floor to try the highly-raved Botak Jones western food during dinner. I reached before them and picked a dry and warm table. W and J were going to wait for a bus at YCK, so it's gonna be a wait.
This stall is powerful ley! There are so many helpers, in uniform somemore! Even got cash register neh :O Didn't see the angmoh girl. I heard there usually is a queue, but there was only 2 people queueing ley. Maybe it's the rain. They were looping the music on their homepage. I pitied the poor people working in the coffeeshop for being subjected to it for as long as they work.
Moments later, the dinner crowd arrived. 3 tables of people came and the queue started snaking towards my table!! Alamak! I quickly called W and J to get them to sms me their orders so they wouldn't have to wait too long for the food later. Of course I was not going to risk my life and table to queue up to place orders like everybody. I signaled to one of the helpers and he was understanding. Not like some stupid 汤圆 stall at Ghim Moh market, rather stare into space and let my 汤圆 turn cold in his face. Condemn!
O by the way, I got to skip the queue because he brought my order directly to the kitchen :X The sotong preyed on people's kindness again. I hope he didn't think I was going to eat everything by myself.
I turned to look at the tv. There was a short interview of Botak Jones on the variety show, Heartland Getaways! So 准! The helpers cheered and clapped. So Botak Jones is really botak...
The food started being served but W and J were not here yet. First was my Botak Burger with cheese and Stuffed Jalapenos. Don't need to label the photos lah, quite obvious which is which hor?
Should I wait for W and J? The stuffed jalapenos looked very cute and yummy. Not nice when it's cold. The melted cheese must be eaten hot.
I reached for the stuffed jalapenos but they were too hot to be handled. Therefore I must eat my burger before the cheese solidify (excuses). I knifed my burger before recalling that I wanted to take a photo. This explains why the burger is pacman-shaped.
Soon, W and J arrived. I ordered a cup of hot horlicks. Coupled with the cheese, it's a healthy high-calcium diet. But W and J's iced lemon tea looked nice *regret* Their fish and chips came within minutes. Good timing!
It was disappointingly small, too puny to be shared between 2 people.
I learned that the jalapeno is a very spicy chilli. I tried 1/2 of it and couldn't tahan. Wa heng I never eat it just now!
My beef patty is thick, juicy and tender, good! Except for a portion with ligaments. My chilli fries are delicious! Don't know why the fish and chips came with plain fries. The website showed chilli fries ley. Kena cheated. I shared my fries with them since I couldn't finish anyway.
The fish tastes good, but too thin lah.
We looked around and saw all the fish came in pairs. Hey how come we only have 1 slice? I thought it might be because the helper gave me 1 less to help prevent me from overeating. But actually it's because we ordered regular, only large has 2 slices lah.
W and J were not satisfied, so they got a Giant Chicken Hot Dog. They thought we were taking away, so they gave us in a styrofoam box. But when they realised we were eating it right now (must be surprised at the big stomachs of 3 ladies), they served it in a proper plate. Or maybe they wanted to save a styrofoam box.
The hotdog was deliberately sliced halfway and the knife left on the plate for aesthetic purposes.
Not bad, very chewy. Too bad no cheese.
Verdict: Very filling. Tastes good and is cheap. Can go back. But not very accessible though.
Check out the website
Interesting points
- Nobody from the drinks stall asked me if I wanted a drink, unlike most coffeeshops.
- The helpers very blur one. Keep asking repeatedly if our orders have been served, whether we have paid and whether they have given the change. Different people asking the same questions. Maybe that's why they need so many helpers.
MS SQL
If you have no programming background, I suggest you skip this entry.
Having used Oracle-related tools like Toad and SQL Plus for 2 years 3 mths, I had the opportunity to learn MS SQL due to my new project, AiFalm. Syntax-wise, Oracle and MS SQL are very similar, so no problem with that. I'm a programmer who is only trying to 混口饭吃, so I cannot comment on the geeky performance issues. My only gripe is how the client tools, Enterprise Manager (EM) and Query Analyzer (QA), get on my nerves. I use the Enterprise Manager most of the time, so everything that follows regarding MS SQL is based on that.
Over the years with Oracle with Toad, I have formed a habit of putting multiple SQL statements on the same query window, then selecting the statement I want and executing it. I can even run all the statements as a script.
But this convenience is not unavailable on EM. There can only be 1 SQL statement in 1 query window, the implication being that I will have to open 10 query windows for 10 SQL statements. Perhaps MS is only trying to highlight the flagship feature, windows. Changing window vs selecting the statement. The winner is obvious. I choose to open a text file and put all my SQL statements needed for the session and copy and paste into the tools.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
EM has a auto-formatting feature. Although the syntax for SQL is not case-sensitive, it is a convention to type the keywords like SELECT, FROM, WHERE, VALUES, in upper case. When I type my statement in lower case and click on execute, voila! Everything looks neater and more conventional.
Original
select * from tableA a where title='Alice in Wonderland'
Formatted
SELECT *
FROM tableA a
WHERE title = 'Alice in Wonderland'
However, when the help that you have never asked for and can live without, causes your statement to fail, it become geh kiang.
Original
select *
from tableA a with (nolock) where title='Alice in Wonderland'
After I executed it, EM popped an error window, complete with the "doot" sound. It claimed that there's an error with the statement near "a". I examined the newly-formatted statement. Notice the rearrangement.
Formatted
SELECT *
FROM tableA WITH (NOLOCK) a
WHERE title = 'Alice in Wonderland'
Thanks a lot, EM. How I wish I can turn off this "feature".
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
While looking through AiFalm's codes, I figured that there was a trigger somewhere, so I went about looking for it. From 1 of the tables affected by the trigger, I found out the trigger's name. But all I have was the name, no link to the code at that point.
In Toad, it is very convenient with all the triggers listed neatly in an accessible way. However, I practically turned EM and QA upside down and I could find no such list.
I googled. So there isn't such a function at all. However, I could query the system table for the code if I have the trigger's name. I copied and pasted the super chim-looking SQL statement provided, got only a code snippet because the column length can't possibly be large enough to hold an infinitely long code, but was good enough for me.
CREATE TRIGGER tg_updateA
ON tableA
I looked up the properties for tableA and sure enough, I found the complete trigger code. So the complete code can only be accessed from the owner of the trigger. Logical, but how many times do programmers know exactly which table is the owner?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
We have come to the end of the complain session. If you have no programming background and has managed to come this far, I kowtow to you.
Having used Oracle-related tools like Toad and SQL Plus for 2 years 3 mths, I had the opportunity to learn MS SQL due to my new project, AiFalm. Syntax-wise, Oracle and MS SQL are very similar, so no problem with that. I'm a programmer who is only trying to 混口饭吃, so I cannot comment on the geeky performance issues. My only gripe is how the client tools, Enterprise Manager (EM) and Query Analyzer (QA), get on my nerves. I use the Enterprise Manager most of the time, so everything that follows regarding MS SQL is based on that.
Over the years with Oracle with Toad, I have formed a habit of putting multiple SQL statements on the same query window, then selecting the statement I want and executing it. I can even run all the statements as a script.
But this convenience is not unavailable on EM. There can only be 1 SQL statement in 1 query window, the implication being that I will have to open 10 query windows for 10 SQL statements. Perhaps MS is only trying to highlight the flagship feature, windows. Changing window vs selecting the statement. The winner is obvious. I choose to open a text file and put all my SQL statements needed for the session and copy and paste into the tools.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
EM has a auto-formatting feature. Although the syntax for SQL is not case-sensitive, it is a convention to type the keywords like SELECT, FROM, WHERE, VALUES, in upper case. When I type my statement in lower case and click on execute, voila! Everything looks neater and more conventional.
Original
select * from tableA a where title='Alice in Wonderland'
Formatted
SELECT *
FROM tableA a
WHERE title = 'Alice in Wonderland'
However, when the help that you have never asked for and can live without, causes your statement to fail, it become geh kiang.
Original
select *
from tableA a with (nolock) where title='Alice in Wonderland'
After I executed it, EM popped an error window, complete with the "doot" sound. It claimed that there's an error with the statement near "a". I examined the newly-formatted statement. Notice the rearrangement.
Formatted
SELECT *
FROM tableA WITH (NOLOCK) a
WHERE title = 'Alice in Wonderland'
Thanks a lot, EM. How I wish I can turn off this "feature".
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
While looking through AiFalm's codes, I figured that there was a trigger somewhere, so I went about looking for it. From 1 of the tables affected by the trigger, I found out the trigger's name. But all I have was the name, no link to the code at that point.
In Toad, it is very convenient with all the triggers listed neatly in an accessible way. However, I practically turned EM and QA upside down and I could find no such list.
I googled. So there isn't such a function at all. However, I could query the system table for the code if I have the trigger's name. I copied and pasted the super chim-looking SQL statement provided, got only a code snippet because the column length can't possibly be large enough to hold an infinitely long code, but was good enough for me.
CREATE TRIGGER tg_updateA
ON tableA
I looked up the properties for tableA and sure enough, I found the complete trigger code. So the complete code can only be accessed from the owner of the trigger. Logical, but how many times do programmers know exactly which table is the owner?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
We have come to the end of the complain session. If you have no programming background and has managed to come this far, I kowtow to you.
Monday, December 25, 2006
Impressions of 2 Movies
Just my impressions after watching, not a review.
The Departed

A remake of 无间道, I applaud the successful efforts made to condense 3 movies into 1 without spoiling the broth.
The Mafia Boss
Jack Nicholson sure looks more like a mafia boss than 曾志伟. 曾志伟 looks (and sounds) more like a clown. I don't understand why he always gets to play the mafia boss, or somebody with more power than pawns.
The Girls
Money all spent on the male leads, so have to settle on an all-in-one for the female lead? And not as pretty somemore...
To make the thugs sound like, well, thugs, and make stressed police sound like they were really stressed out, saying the movie is "peppered" with expletives is an understatement. It is marinated in fuck and its variations with "fuck" as the root word. Don't think this will ever be shown on tv. It's either getting ear damage from the ceaseless "por! por!" or having to dub the movie all over again.
Aiyah I think too much liao, why would Mediacorp even want to buy a new movie? That would be against the plot to make us pay for tv, right?
I still prefer 无间道.
Jackass 2

I don't know what to say about this movie. The poster says it best: skull fracture, crutches, missing tooth. It's better than any Jackie Chan stunt. Will Jackie Chan roast his privates with a hair-dryer or stick pubic hair (with lice) onto his face? Bet not.
I'm curious if any of them became impotent, lost 100 points of IQ, e.t.c. It's a wonder none of the people in it died.
The Departed
A remake of 无间道, I applaud the successful efforts made to condense 3 movies into 1 without spoiling the broth.
The Mafia Boss
The Departed | 无间道 |
Jack Nicholson sure looks more like a mafia boss than 曾志伟. 曾志伟 looks (and sounds) more like a clown. I don't understand why he always gets to play the mafia boss, or somebody with more power than pawns.
The Girls
无间道: The baddie undercover's girl | 无间道: The psychologist |
The Departed: The baddie's girl cum psychologist |
Money all spent on the male leads, so have to settle on an all-in-one for the female lead? And not as pretty somemore...
To make the thugs sound like, well, thugs, and make stressed police sound like they were really stressed out, saying the movie is "peppered" with expletives is an understatement. It is marinated in fuck and its variations with "fuck" as the root word. Don't think this will ever be shown on tv. It's either getting ear damage from the ceaseless "por! por!" or having to dub the movie all over again.
Aiyah I think too much liao, why would Mediacorp even want to buy a new movie? That would be against the plot to make us pay for tv, right?
I still prefer 无间道.
Jackass 2
I don't know what to say about this movie. The poster says it best: skull fracture, crutches, missing tooth. It's better than any Jackie Chan stunt. Will Jackie Chan roast his privates with a hair-dryer or stick pubic hair (with lice) onto his face? Bet not.
I'm curious if any of them became impotent, lost 100 points of IQ, e.t.c. It's a wonder none of the people in it died.
Monday, December 18, 2006
Dangerous Taxi Driver on the Loose!
SHA5853Y, travelling along PIE towards Changi Airport, around the Upper Bukit Timah section, thinks that motorcycles have no right to take up a lane on the road. He drove at the same speed as the motorcycle, side by side on the same lane, like want to overtake don't want to overtake. In the end he "overtook" because the motorcycle decelerated. All these under a pouring sky.
Hop onto his taxi if you want to be involved in a road accident.
Hop onto his taxi if you want to be involved in a road accident.
Saturday, December 16, 2006
Shopping Spree!
Yeah, all these (except the bag behind) purchased today from Johnson and Johnson warehouse sale. Still have a box of masks, face wash and shampoo not in the picture, and smaller items hidden in the bags. 8 bottles of shower cream!!! How many years will my family take to finish them?
My brother said soap is part of a survival kit.
Monday, December 11, 2006
Free Ice-cream!
* To qualify for your free pint of Gelare ice cream and a chance to win air tickets, simply send an SMS to 9184 2000 in the following format: HSBC
Wa ice-cream ley! (Not interested in the air ticket at all)
Upon seeing this exciting promotion, I asked my father to pay for the new washing machine with his supp card (I haven't decided if I wanna pay for the machine hee). When he returned with the receipt last night after 9pm, I wanted to send the SMS immediately, knowing how I love to procrastinate. But well ya, I ended up procrastinating again.
This morning, I finally decided to send the SMS. I only have 7 days to do so! What if Gelare is only giving out a limited number of redemptions? Now now now! I can think about when and where I wanna collect the ice-cream later.
I got a reply within 2s of sending out the SMS. Impressive eh...
"Use the code GJEWDH for your pint of ice cream at Gelare. Pls present your charge slip and this SMS. Valid today (11 December 2006) only. Ts & Cs apply."
Wh...What?
"Use the code GJEWDH for your pint of ice cream at Gelare. Pls present your charge slip and this SMS. Valid today (11 December 2006) only. Ts & Cs apply."
Huh the SMS is valid for today only!!! Not 7 days meh??? Walau the fineprint never say lor! Today die die must go after work already! Heng no plans for tonight man!
In hindsight, luckily I procrastinated. I can't imagine what would happen if I hadn't. The only outlets still open at 10pm are Siglap and Changi Airport and I wouldn't go out specially for that lor. So 奸! Long live procrastination!
Choosing the outlet was a no-brainer - the one nearest my home of course, we are talking about ice-cream. Don't want to say here, coz I don't wanna get hoot by ah bengs (coming up below). If you know where I live, it's obvious where I went lah. I think the ride from my work there took almost 1hr, my butt damn pain sia. All for free ice-cream, dunno worth it or not also :(
I waited at the carpark while my father went up to redeem the ice-cream. A few minutes later, he returned empty-handed. He came back for his wallet because he must show the credit card as proof, something the fineprint never say :\
At this time, a black, ah-beng car pulled up beside me.
Those 2 pairs of butts in the picture belong to the driver and passenger of that car. They don't look beng lah, it's just the car, and the fact that they stepped out to SMOKE, and the wind was blowing the smoke into my face. It always happens, I'm a smoke magnet, dunno why. So I must revenge by posting this picture! Maybe they realised that it's uncool to switch on those lights here, so they switched it off before driving off.
My father returned with the ice-cream. Apparently the promotion is very popular as there were quite a few people redeeming too. We went home. My poor butt... oww...
Haven't eat the ice-cream yet, haven't even seen or asked what flavour. Shall surprise myself tomorrow. Better not be banana.
Sunday, December 10, 2006
Chinese Disco Nearby...
Right at this moment. Scared people dunno they are having prayers. I think holding it at this hour will negate all their efforts.
Or maybe they are offering countless people's sleep as a sacrifice?
Or maybe they are offering countless people's sleep as a sacrifice?
Friday, December 08, 2006
Promoting Bad Chinese
This ad promoting the Malaysia Sale has been blasting on 933 for quite some time. The portion about their street performers caught my attention:
OMG who wrote that ad? Or did that fellow reading it slip up? Why no QA? Playing on Singapore radio somemore, tsk tsk tsk.
"...将浑身解数为您热情演出..."
OMG who wrote that ad? Or did that fellow reading it slip up? Why no QA? Playing on Singapore radio somemore, tsk tsk tsk.
Subscribe to:
Posts (Atom)