Quote:
Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.
Today is Malaysia's national day. Just nice, someone reminded me of this controversial rapper from 3 years ago: namewee.
What was he infamous for? He composed a rap song called negaraku. Negaraku, I'm told, means "My Country". Of course, he didn't exactly spell it like that. (Anyway, you can search for it on YouTube.)
The rap song is pretty insulting, but you know what, it is the truth. If some parts make you smile and some parts bring a tear to your eyes, you know that you are still a Malaysian.
I'm sure every overseas Chinese Malaysian is torn between going home and wondering what's the point.
Home is where you grew up and there is just no place like home.
Code review is something everyone says is good, but nobody ever do — or do properly.
After doing a couple of code reviews after all the code was written, I now think we need to do some review earlier — as early as possible, before most of the code is written. When the code is done, people are not inclined to change it anymore. You find wrong assumptions, workarounds, hacks, inefficient coding and so on.
Recently, when I was listening to a colleague presenting his team's code review guidelines, something struck me: should we need to do code review at all?
Are we not trusting people to write code that is up to standards?
Here's something to think about: how about co-owners? Two or more people own a feature. They must care about the quality of their code. (If not, who else will?) They will feedback to one another from time to time.
If you are wondering, this is getting closer and closer to pair-programming.
I have almost never seen good comments. I don't write much comments myself, because I can read the code just fine. We are programmers — write code that programmers can understand. Keep it simple. Keep it short. Keep it readable.
One of my favourite quotes: if you need to write comments, you need to rewrite the code.
(This is not an excuse not to write comments. It just asks you to write simple code that does not need comments.)
Assert is not bad, but we have used it as a shortcut. Don't want to handle an error condition? Assert.
My manager mentioned something about it in his team meeting. I believe this is what he referred to: Go doesn't provide assertions. (...) Programmers use them as a crutch to avoid thinking about proper error handling and reporting.
But assert remains popular. Java started without asserts too. It was added in 1.4.
To assert or not?
Before you decide, ask yourself, why do some languages require it?
Why are we still using a language created in 1972 that has fixed-sized arrays? And worse — they don't even know their own length!
This language also only has rudimentary support for strings. Strings are nothing more than char arrays. But the really flawed design is NUL-terminated strings. It makes it so easy to overrun buffers.
In Mathematics, rounding is pretty fair. >0.0 to <0.5, round down, else round up. It is 50-50.
(Not that rounding is simple topic. There is a banker's rule that is fairer for finance-related transactions. It can be strange the first time you see it.)
But it can be gamed if you can control the input: you can make it round up or down in your favour.
For example, Shell rounds the litres pumped when converting to its Shell points. 1 litre = 1 point and points are whole numbers.
So what happens when you pump 0.499 litres? (They track to 3 decimal places.) 0 points. 0.500 litres? 1 point.
One person gaming the system is insignificant. If you pump once a week (double UOB SMART $ on Sunday for a limited time only), you are only going to get 52 extra points per year.
(Unless you pump multiple times per day. Hmm, that's an idea! :devil:)
You can use 600 points to get a $20 petrol voucher. Not all redemptions are equal; that is another topic.
Many drivers gaming the system, however, is more serious.
"Is this the face that launch a thousand ships?"
Trust me, you don't want to hear the next three cheesy lines.
Some poems are better said on the beach, amidst howling winds and growling waves — and a dose of strong liquor.
I don't want to settle for 'just good enough'.
I don't want to fall for just anyone or make exceptions simply to get hitched.
But it seems that that is exactly what young adults of my generation are being encouraged to do, at least according to the latest Ministry of Community Development, Youth and Sports (MCYS) campaign to try to get young singles to date.
Although the campaign is still in its planning stages, the tender for a communications agency to design the campaign made the suggestion that young adults 'moderate' their expectations of a partner.
But I don't want to fall for anyone less than ideal.
When I was growing up, my girlfriends and I had a checklist of what we wanted our perfect man to be. We'd measure and evaluate each boyfriend against that list to see how they matched up.
We wanted our guy to be cute, tall and who participated in a cool co-curricular activity. Coming from a good school wouldn't hurt, either.
Of course, none of us managed to get that guy as it was probably an unrealistic, and, in retrospect, frivolous set of criteria.
The guys we dated all fell short of at least one or two standards. But we still went out with them anyway, because we could forgive bad dress sense as long as the guy had a cute smile and a voice that made us swoon.
Now that we are a bit older - and perhaps a bit wiser - we have adjusted our set of requirements to more practical ones. These include being committed, being able to hold a good conversation, being financially stable and sharing similar values.
This set of criteria is no less difficult to fulfil than my teenage one. But this time, it is non-bargainable.
Sure, if people 'moderate' - which is really to lower - their expectations of their partners, MCYS' plan to get more couples dating, and eventually, to marry, would work.
But perhaps doing so would make the relationships poorer for it.
At first, it might seem easy to compromise or overlook certain things. But in the long run, lowered expectations will come back to pose problems and create resentment.
When one or both parties settle for less, it is not really an acceptance of the perceived flaws of the other. It is merely a temporary compromise. One or both parties may still harbour hopes to fulfil that particular want and this creates a perfect set-up for discontentment.
With time, when they realise that nothing is going to change, the parties get disgruntled and are more likely to bolt.
If the MCYS campaign succeeds, marriage rates may well increase, but I'm less optimistic that couples will stay together. This leads to other social problems such as broken families, insecure children and a cynical approach to love.
Arguably, couples who see in each other their perfect Mr or Ms Right are also up against such threats. Yet, I feel they are better equipped to weather such storms, because there is no residual resentment from having to compromise or bury certain hopes.
Seeing some of my friends who, like me, are in their early 20s, go through their relationships has made me realise the importance of sticking to my ideals.
A good friend recently pulled out from a long, loving and committed relationship. It was a difficult decision for her - but one I presume was a long time in the making. She left him because he could not quit smoking, despite repeated promises and vows to try.
Right from the outset, she knew it was a habit she could not live with. But she had thought she would be able to change him.
She did not succeed. Four years and many promises later, it was goodbye.
One does not have to be bratty and unrealistic - learning to compromise is a good thing - but not when it comes to the really important things. The make-or-break criteria, in other words.
Often, when people settle for less, they think to themselves, this is as good as I can get, and shudder at the thought of losing hold of what they see as a safety net.
But when a relationship becomes that - a safety net - it does not serve its full purpose to be enriching or one that helps both parties grow.
Singles should not be afraid of holding out or waiting for the right one to come along. Good partners aren't in short supply, if we only bother to look around.
My friends who once feared that they would not find a better guy than the one they had previously, are now in stronger and more fulfilling relationships. This, after they dared to stick to their ideals in their search for a partner.
It might take a while, but I believe it is worth the wait.
When it comes to finding a partner, there is no such thing as the right time, only the right one.
The words 'ideal' and 'perfect' are loaded. Needless to say, she was criticised left and right for it.
Also, the word 'compromise' is so bad that even the mere mention of it suggests that your date/partner is sub-standard.
In the real world, there is no 'ideal'. Everyone has some flaws. We have to accept that. This is not compromising. Nor is it trading off. It is just accepting the bad with the good.
Update: there are two things you definitely give up. Time and freedom. :lol:
A young food blogger who demanded that he and his three companions be given free meals at an upscale restaurant in the Joo Chiat area has sparked a huge furore online.
The group of four had walked into Private Affairs, a small but exclusive eatery in Joo Chiat, for its Sunday champagne brunch promotion that costs S$68++ per person.
The blogger in question, Brad Lau, who runs a food blog called ladyironchef, had informed the management on Friday that he would be coming down to review the Sunday Brunch promotion.
On the day itself, he and his partner came down at about 130pm, followed by his two other companions, each of whom came down half an hour apart.
According to Private Affairs' operations director Ross Valentine, the four of them had brunch until 430pm, even when the restaurant's official brunch hours was from 1130 am to 330pm. Brad and his partner also enjoyed two glasses of champagne each.
When presented with the final bill of $435, the blogger initially refused to pay and repeatedly told the restaurant's chef, "I never pay for food in any restaurant."
The restaurant eventually offered to waive off the cost of the meal for him and his partner as well as the cost of the champagne out of goodwill, thus lowering the bill to $159.
Still upset but finally relenting to pay, the blogger then threw his credit card onto the bar counter in front of the cashier before storming out.
Valentine told Yahoo! Singapore, "This blogger looked very aggressive and was quite arrogant. The fact that he also walked in with his friends at staggered timings created quite a bit of problems for my chef de cuisine, who has to prepare and present his food at just the right times."
"We decided to waive off the meal and champagne cost for him and his partner out of goodwill. But when we asked him when the review of the meal would be coming out, he said he was not obliged to write anything if the food wasn't good enough," he added.
Yahoo! Singapore emailed Brad Lau for his reaction but he has yet to a reply.
The incident, however, has enraged the local food blogging community.
Glenn Lee, who runs popular food blog Hungryepicurean.com since late last year, posted an open letter criticising the blogger's behaviour for "tarnishing the good name of the community."
Lee, 22, told Yahoo! Singapore, "We are food bloggers and I'm pretty sure the intentions of all of us in the community is to share the love that we have for food and writing."
"But what this certain blogger has done is highly detrimental to the integrity of the community as a whole and I felt the need to stand up for what I strongly believe in," he said.
Kaelyn Ong, 22, who posted an entry entitled "STOP asking for free food" on her food blog, My Food Sirens II, also expressed her disgust.
"I'm surprised. It's beyond my understanding how someone can actually request for a free meal on the house just because he's a food blogger," she told Yahoo! Singapore.
"Anyone can be a food blogger these days, all it takes is a camera and a blog... does that mean restaurants have to sponsor everyone for their meals?" she added.
She also apologised to restaurants on behalf of the food blogging community and said "not all of us are such bad eggs".
Cheryl Chia, who has a food and baking blog, cocoabutterscotch, was also appalled.
"I find it shameful. Demanding for free food on account of your supposed "status" as a person who blogs about food is not acceptable," the 26-year-old said.
Renowned food expert KF Seetoh, who runs the popular makansutra.com, said the blogger in question lost his integrity by refusing to pay.
"The best position is to be invisible, pay for your own food. When you pay for your own food, you don't take any prisoners when you write," he said.
But what if the restaurant offers to give bloggers a free meal?
"Then I won't write about your restaurant. Even if they offer me 50% off the total bill, and if I write about it, they will take my review with a 50% pinch of salt. Some of them, after eating, they call the chef out and ask him to change this and that on the menu. Some would then say, let me do a consultancy role for you. You do what I say and I write nice things.
"My stand is, be neutral. I pay, I say and then I rate," he concluded.
Wah, I didn't know bloggers can eat for free. Hey, I'm a blogger too! :lol:
Update: the blogger has come out to present his side of the story. Still, I think the damage is done. From hero to zero just like that. I bet he thought only he could make or break other people through his reviews, and never thought he would be subjected to the same rules too.
I went to my sort-of regular workshop to change oil and to look at my window problem.
First, they charged me for servicing, even though I said up-front I only wanted to change oil and oil filter.
Okay, fine.
When I drove back, I found that a small plastic cover was gone from my arm- rest. (It covers a screw that opens the door panel.) I called to ask about it. The mechanic denied seeing/losing it.
Well, I am very sure the cover was there because I took the door panel apart just a few days ago and I put it back.
I'll be a fool if I go back.
I see this question posted with some regularity in the personals section, so I thought I'd take a minute to explain things to the ladies out there that haven't figured it out.
What happened to all the nice guys?
The answer is simple: you did.
See, if you think back, really hard, you might vaguely remember a Platonic guy pal who always seemed to want to spend time with you. He'd tag along with you when you went shopping, stop by your place for a movie when you were lonely but didn't feel like going out, or even sit there and hold you while you sobbed and told him about how horribly the (other) guy that you were ****ing treated you.
At the time, you probably joked with your girlfriends about how he was a little puppy dog, always following you around, trying to do things to get you to pay attention to him. They probably teased you because they thought he had a crush on you. Given that his behavior was, admittedly, a little pathetic, you vehemently denied having any romantic feelings for him, and buttressed your position by claiming that you were "just friends." Besides, he totally wasn't your type. I mean, he was a little too short, or too bald, or too fat, or too poor, or didn't know how to dress himself, or basically be or do any of the things that your tall, good-looking, fit, rich, stylish boyfriend at the time pulled off with such ease.
Eventually, your Platonic buddy drifted away, as your relationship with the boyfriend got more serious and spending time with this other guy was, admittedly, a little weird, if you werent dating him. More time passed, and the boyfriend eventually cheated on you, or became boring, or you realized that the things that attracted you to him weren't the kinds of things that make for a good, long-term relationship. So, now, you're single again, and after having tried the bar scene for several months having only encountered players and douche bags, you wonder, "What happened to all the nice guys?"
Well, once again, you did.
You ignored the nice guy. You used him for emotional intimacy without reciprocating, in kind, with physical intimacy. You laughed at his consideration and resented his devotion. You valued the aloof boyfriend more than the attentive "just-a-" friend. Eventually, he took the hint and moved on with his life. He probably came to realize, one day, that women aren't really attracted to guys who hold doors open; or make dinners just because; or buy you a Christmas gift that you mentioned, in passing, that you really wanted five months ago; or listen when you're upset; or hold you when you cry. He came to realize that, if he wanted a woman like you, he'd have to act more like the boyfriend that you had. He probably cleaned up his look, started making some money, and generally acted like more of an asshole than he ever wanted to be.
Fact is, now, he's probably getting laid, and in a way, your ultimate rejection of him is to thank for that. And I'm sorry that it took the complete absence of "nice guys" in your life for you to realize that you missed them and wanted them. Most women will only have a handful of nice guys stumble into their lives, if that.
So, if you're looking for a nice guy, here's what you do:
1.) Build a time machine.
2.) Go back a few years and pull your head out of your ass.
3.) Take a look at what's right in front of you and grab ahold of it.
I suppose the other possibility is that you STILL don't really want a nice guy, but you feel the social pressure to at least appear to have matured beyond your infantile taste in men. In which case, you might be in luck, because the nice guy you claim to want has, in reality, shed his nice guy mantle and is out there looking to unleash his cynicism and resentment onto someone just like you.
If you were five years younger.
So, please: either stop misrepresenting what you want, or own up to the fact that you've ****ed yourself over. You're getting older, after all. It's time to excise the bull**** and deal with reality. You didn't want a nice guy then, and he certainly doesn't ****ing want you, now.
Sincerely,
A Recovering Nice Guy
No idea whether it is true or not, but it makes a fairly good read. :-)
Oracle's Android lawsuit is just the first step in the long-awaited resurrection of the Java platform
The tech industry loves a good vendor slugfest, and the upcoming legal battle between Google and Oracle has all the makings of a truly spectacular one.
At issue is Dalvik, the unique, Java-based runtime at the heart of Google's Android smartphone OS. Oracle, which gained stewardship of the Java platform when it bought Sun Microsystems in 2009, claims Dalvik knowingly, willfully, and deliberately infringes on Java intellectual property. According to a complaint filed with the U.S. District Court in San Francisco last week, Oracle is seeking a halt to any further Android development, destruction of all infringing Android software, and for Google to pay damages, both actual and statutory.
Bloggers, pundits, and developers wasted no time decrying the suit. Farata Systems' Anatole Tartakovsky wrote, "Oracle managers are clearly out of their minds." PC World's Tony Bradley described Oracle as a patent troll, while others made unflattering comparisons to the SCO Group. InfoWorld's own editor in chief, Eric Knorr, compared Oracle to Darth Vader and to Batman's nemesis the Joker in the same column.
Such knee-jerk reactions are misguided. Google is no Luke Skywalker, and its handling of Java has been questionable at best. To suggest that Oracle is being heavy-handed ignores the larger truth, which is that in recent years Sun's governance of Java has been meek and ineffective. In the absence of strong leadership, the Java community has been saddled with a slow and burdensome development process that has left the future of the platform in serious doubt. The complaint against Google is proof that Oracle aims to change all that — and it could be just what the Java community needed.
Ironically, few companies have been as outspoken on the issue of Sun's failed leadership as Google. Speaking at the Red Hat Middleware 2020 virtual conference in April, Google chief Java architect Josh Bloch described the platform as "rudderless" and called on Oracle to take a lead role in steering its future direction. "Technical and licensing disputes over the last few years have been highly detrimental. They've sapped the energy of the community and caused plenty of bad press," Bloch said.
But talk is cheap. In practice, rather than wait for Oracle, Google has forged ahead with its own plans for Java. The result is Android, a platform that is Java in name only. The Dalvik virtual machine doesn't even execute Java bytecode; rather, Java class files must be recompiled into Google's own .dex format before they will run. And the Android development platform is neither Java SE nor Java ME, but a hodgepodge of classes drawn from stock Java, the Apache Foundation, and Google's own contributions.
This was no accident. In a blog post, Java creator James Gosling recalls Sun's early talks with Google and how the search giant was more interested in "disrupting Apple's trajectory" with Android than in upholding Java's core principle of interoperability — despite Sun's strong objections. How would Sun benefit from Android? It wouldn't: "Google did have a financial model that benefited themselves," Gosling writes, noting "they weren't about to share."
Nor is this the only example of Google's disregard for accepted Java standards. In 2009 Simon Phipps, Sun's then-chief open source officer, criticized Google for not supporting the full set of Java core classes in its App Engine cloud computing platform. "Creating subsets of the core classes in the Java platform was forbidden for a really good reason," Phipps wrote in a blog post, "and it's wanton and irresponsible to casually flaunt the rules."
Similarly, the Google Web Toolkit (GWT) is advertised as a tool to allow developers to write client-side Web applications in Java and deploy them as JavaScript, but Google itself admits GWT supports only "most of the core Java language syntax" and "a small subset" of the standard Java classes. It seems Google's fondness for Java extends only to its popularity as a language, not its cohesiveness as a platform.
But if the goal of creating Java was simply to invent a new language, Sun would never have bothered. Java borrowed much of its syntax from C, C++, and elsewhere. What made it new — and important — was the JVM, with its sandbox security model and its "write once, run anywhere" promise. Coupled with the Java class libraries, the JVM made Java a unique platform that freed developers from dependence on the underlying operating system. While Java has fallen short of its loftiest goals in various ways over the years, Sun has remained constant in its efforts to preserve that platform as a consistent, unified whole.
The greatest challenge to those efforts came in the late 1990s, when Microsoft tried to splinter the Java community by offering a Windows-only version of the language. Sun took the issue to the courts, arguing that Microsoft's implementation violated the Java license agreement. When the dust finally cleared in 2001, Microsoft had agreed to scupper its Java work and pay Sun $20 million in damages.
"Now if Microsoft wants to use Java, they will have to use the same Java everyone else does," Sun vice president Rich Green said at the time. Should not Google be held to the same standard? Oracle thinks so, and like Sun of old, it has chosen a legal remedy.
Java's licensing is more complex now that it's open source, which might explain why Oracle favored the patent route in its complaint against Google. Open source luminary Bruce Perens points out that the Java Language Specification includes language granting Java implementers free license to Sun's patents, but that doesn't apply here. That license is only valid for complete implementations of Java and its required packages, "without subsetting or supersetting," which the Android implementation clearly is not.
Oracle's complaint also mentions copyrights, but here the details are scant. Java and Android are both open source, but although Java uses the GPL, Google favors the more business-friendly Apache license. If Google included verbatim Java source in its code base, that license discrepancy could be sufficient grounds to establish infringement.
Google claims Oracle's actions are "an attack on the Java community," but that would only be true if Google were promoting Java. To the extent that Android and the Dalvik VM are a divergent implementation that flouts the established Java standards, however, Oracle is right in describing Android as a competitor to pure Java. And as the owner of the Java intellectual property, Oracle has the right — and, perhaps, the responsibility — to defend the platform against such a competitor.
But let's not kid ourselves. The comparison to Darth Vader is hyperbole, but nobody ever accused Oracle of being a white knight, and it's certainly not acting out of selfless motives here. At the end of the day, this is all about the money. With Android now a well-established platform, Google can little afford a protracted legal battle. Oracle expects Google to settle, and the end result will be a Java coffee-cup logo on every Android smartphone and a nice, new revenue stream for Oracle. What's more, the suit will further cement the idea that the path to Java lies through Oracle, and Java implementers avoid that path to their peril.
Still, is that so terrible? The Java community needs a leader. Sun's attempt to push Java governance into the loving arms of the community has proven to be like so many other ideas that came out of that failed company: academically sound, diplomatically prudent, but ultimately unworkable. Google's Bloch was right in calling for Oracle to take a firm hand on the reins. Maybe he should have been more careful what he wished for.
Mind you, a legal victory for Oracle is not assured. The specific patents named in its complaint have raised many eyebrows and much skepticism.
There's time yet for Google to dodge this bullet — and the easiest way might be to dodge Java itself. So don't be surprised to hear that a future iteration of Android will be the first platform based on Google Go.
The first reason is of course to get royalties. Oracle is very profit driven. Its products are large, slow, require massive hardware to run — and very expensive.
And this is the reason why you should own your core assets — no matter the cost — so that you are not held hostage by someone else.
Java is past its time. Its syntax is atrocious, it is slow and it never lived up to its promises. If it weren't for large expensive servers with too many cycles to burn, Java would have been long laughed out of town. As for client-side Java apps, when was the last time you saw them?
And with Android as its competitor, Java ME (Micro Edition) is essentially dead.
(You can probably tell I don't like Java. :lol:)
But what will replace it? Unlike the author, I believe Google will use JavaScript. Who uses Go outside of Google?
JavaScript may seem an unlikely choice, but it is not. Augmented JavaScript can be typed and compiled.
JavaScript is the dark horse everyone underestimates.
In what is said to be one of the biggest losses yet at a Singapore casino, a local businessman lost $26.3 million over three days of gambling in June. This included a staggering $18 million that he burned in one day alone, playing baccarat - a card game - at $400,000 a hand.
According to documents that Today has obtained, the businessman's tale of woe began in March, just weeks after Resorts World Sentosa (RWS) opened, when he was granted a credit line of $500,000 by the casino.
The Singaporean, who is consulting a top local law firm about possible legal action against the casino, claimed that the casino at no time performed any background checks on his credit-worthiness or his financial capacity. He had simply filled in an application form, deposited $100,000 and handed over a signed blank cheque, he claimed.
Subsequently, in April, the casino increased his credit line to $2 million, he told his lawyers. In his 50s, the businessman is a managing director of a multi-million-dollar company.
Over the weeks, he reportedly won or lost several hundred thousand dollars each time he visited the casino, with his losses running as high as $6 million in the course of a single session. To draw on his credit line, he said, he signed a form and was given the requisite amount of chips.
In early June, he made his biggest loss of $18 million yet in one session. Two days later, he went back to the casino and recouped some $3.7 million - but then two days after, he lost a further $11 million.
At one point during this third session when his losses crossed the $4-million mark, so the businessman claimed, his girlfriend started crying and pleaded with one of RWS' senior officers to stop providing him with more chips on credit.
The same officer, he claimed, had repeatedly assured him over the course of the gambling sessions that the casino was prepared to extend him further credit, even though his limit had long since been exceeded.
Of his $26.3 million loss, the businessman repaid $10 million almost immediately.
The businessman claims to have then met with RWS chief executive Tan Yee Teck, who offered him a "rolling figure" - which amounts to a discount - of $3.3 million.
According to the legal documents, dated July 22, the gambler owed RWS some $13 million at that point in time. It is unknown if the debt has since been settled.
When contacted, an RWS spokesperson said the group does not comment on its customers.
The businessman's lawyers have advised him to explore if an amicable resolution can be reached with the casino. But they also think he may have a case of negligence, breach of contract or breach of statutory duty against the casino.
Under the Casino Control (Credit) Regulations, an operator who enters into a credit agreement with a patron should, apart from specifying a credit limit, develop and implement criteria to assess the patron's creditworthiness. The operator must also have approval procedures for any increase in the credit limit.
In the lawyers' view, by substantially exceeding their client's earlier limits - by more than 60 times the original limit of $500,000, and 15 times the April limit of $2 million within a few hours to enable him to continue gambling "RWS had encouraged irresponsible gambling and had breached the duty of care owed to" the businessman.
RWS' conduct of continuing to pile on credit effectively rendered the concept of a credit limit meaningless, the lawyers argued. This was more so as the person in question was not in the proper frame of mind to decide on the increases, they said.
In other countries, there have been several instances of patrons suing casinos for their losses, cases which the courts have dismissed. Courts in other jurisdictions have noted among other things, that the casino was not bound to protect a gambler from his desire to wager his wealth.
Despite this, the Senior Counsel from the local law firm recommended writing to RWS. "In the letter, the issues concerning RWS' failure to promote responsible gambling ... can be raised. Hopefully, this may encourage RWS to offer a haircut that would be acceptable to you ..." he wrote.
Genting Singapore's turned in a sterling net profit of $397 million for the quarter ended June 30, compared to a loss of $50.7 million a year ago. Revenues rose to $979 million from $120 million a year ago.
According to DMG Research, at the current rate, Singapore is already the second largest casino market in Asia after Macau, and could overtake the Las Vegas strip as the second largest casino market in the world after Macau in the next two to three years. The firm estimates that the two casinos here rake in over $16 million a day.
Lose already sue. Win how? RWS sue him?
To burn $18 million at $400k a hand, it takes just 45 straight losses. I guess he played some 60 to 90 hands.
Latest news: Jay Chou lost $2 million when he came here for his concerts. I hope he didn't lose form.
Depending how you look at it, he'll be back more often or he won't come back again!
When Mark Hurd left the CEO chair of Hewlett-Packard (NYSE: HPQ) (or was forced out of it, depending on your sources), it was easy to panic. Hurd is, after all, widely credited with bringing fiscal responsibility and a new lease on life to the previously floundering tech giant.
You can go on and panic, but not over losing Hurd. The problems with HP run much deeper than that. The whole mess isn't Hurd's fault — but a lot of it is.
To me, Mark Hurd's alleged improprieties just form the slashing tip of a massive iceberg. If anything, this scandal forced a few of the company's other shortcomings back into the light.
The list goes on, but those are the top complaints. In the end, it all comes back to a decade of lacking leadership. Hurd is gone, but the damage is already done, and I blame the board of directors. Actually, scratch that — I blame Mark Hurd for the spineless board of directors he created.
Most of HP's board members joined the steering committee under Hurd, who served as chairman of the board in addition to his CEO duties. You have to assume that the chairman has a significant say in who does and doesn't get one of those cherished board seats.
The entire board now consists of members appointed under either Hurd or Fiorina, two leaders whose sense of grand strategy leaves a lot to be desired. The fact that Hurd's supposed buddies then turned on him unanimously says something about his ability to pick friends, as well. Oh, and then they turned around and gave the supposed miscreant a generous parting gift. I don't think we're talking about a great judge of character here.
In other words, the board is a legacy of two failed empires — the first in a business sense and the second in moral code. What are the chances that their appointee for the vacant CEO and chairman positions will be ready and able to fix the many cracks that have formed in HP's armor over the last decade? Not good. If I were a shareholder, I'd be calling for a brand-new board. And then the new crew gets to pick a new CEO.
So whoever gets the thankless job of running Hewlett-Packard next is facing a monumental task:
This sinking ship may be beyond repair. It would take a leader with truly epic credentials to get HP out of this mess, like John Chambers of Cisco Systems (Nasdaq: CSCO), Sam Palmisano from IBM (NYSE: IBM), or maybe Oracle (Nasdaq: ORCL) CEO Larry Ellison. But all of these people already have great jobs with companies they love, and they won't come to HP's rescue.
The best HP can hope for is some relatively unknown lower-level executive with grand career ambitions or another technology leader's unwanted leftovers. If Steve Jobs isn't going anywhere, perhaps Tim Cook would leave Apple (Nasdaq: AAPL) for a bigger job at a paradoxically smaller company. Or perhaps a merger with EMC (NYSE: EMC) would let HP raid the storage expert's rich locker of quality leadership.
Empires fall all the time. Barring a miracle, I think HP is the next one in line.
There will be a lot of pain in the path ahead.
Two comments: (i) HP is too big as a single company, (ii) it has not have a breakthrough product in years — if ever.
Some trackers require the client to maintain a decent upload/download ratio.
The problem is that there are usually many seeds and few leechers. (This is opposite of free-for-all trackers.)
This is very well when you want to download, but it is not so good if you want to maintain your ratio. (Or you'll find yourself banned after a while.)
Trick: find a torrent that has a good leechers-to-seed ratio, preferably with multiple files. Download just one file inside. When it is done, you'll switch to seed mode and people will start to download from you. You can maintain your ratio easily this way.
Do not confuse what is urgent with what is important.
A suitable quote for busy people who claim they are tied up 24/7.
A 24" LCD monitor costs $330, a 32" LCD TV $700 and a 42" TV can cost just $1,400.
A TV is more worth it, but the problem in Singapore is that you got to pay the annual TV license of $110. Is it a big deal?
Somehow, it just annoys the hell out of me.
(How much TV did I watch in the past three months? How about zero?)
With the Atom server up and running (although not 24/7 yet), I am now considering to build a separate media player.
This time, I will use a mini-ITX casing. :lol:
I also plan to run the PC entirely off the USB flash drive. It will be entirely diskless and get its files over the network.
A 4GB drive should be sufficient, but that is not what I'm worried about. Rather, I don't want to hit the flash write limit.
Some advice:
noatime
flag.vm.swappiness=30
in /etc/sysctl.conf.
Lower = prefer to keep code rather than data in cache.vm.vfs_cache_pressure=50
in /etc/sysctl.conf. Lower = prefer to keep inode/dentry in file
cache.It's that simple. Now, I just need a PC to give it a try. :-D
Atom D510 w/ ION2 | $200 |
2 GB RAM | $65 |
Mini-ITX casing | $80 |
4 GB USB drive | $13 |
$358. Time to save up!
The Atom D510 is dual core and both cores are hyper-threaded (HT). That means it appears as 4 CPUs to the OS.
Don't be fooled, though. It is still slow.
Also, HT is not a full processor, but around 20% of one. There are really only two main CPUs and two auxiliary ones.
When viewing the unified CPU usage, it is usual to see <20% CPU usage. However, the system is already starting to get loaded. It follows that 50% usage is really almost 100%.
What Atom D510 can do:
What Atom D510 cannot do:
Basically, the Atom D510 is good for low-powered apps, but it is extremely poor at CPU intensive apps.
I decided to run Ubuntu (server edition) on my Atom PC. Installation took a while, but was smooth all the way.
The server is pure CLI, but it is apparently easier to install the desktop on it than the other way round:
sudo apt-get update sudo apt-get install ubuntu-desktop
The Atom server boots up in 10s — from pressing the power button. This is the fastest boot time I have seen. Even my phone takes 30s to boot!
I allocated 20 GB to /, 2 GB each to /var and /tmp, 1 GB to swap and the rest (900+ GB) to /home.
20 GB seems an overkill for apps on a server, but who knows what I'll install in the future?
/home has quota enabled and has the atime flag turned off.
The apps I require are: SSH, VNC, Samba, Apache, PHP, MySQL and SVN.
I also installed Desktop, Transmission (a BitTorrent client; comes together with the desktop?) and Xchat (IRC client).
(I don't IRC, but I sometimes get files using DCC, so that's what the client is for.)
I added a script to start a VNC server on startup. SSH into the server to start it manually every time gets old pretty fast.
I have no sound.
After following online troubleshooting guides and troubleshooting for a couple of hours, I had a flash of inspiration: will root work? It does, so it is a matter of permission!
I'm very surprised I can't play audio by default.
I added myself to the audio group:
usermod -G audio myuserid
All is well, until I needed to run sudo
. I could not do it
anymore.
It dawned to me after a while: usermod
must have removed it!
The correct command to issue is,
usermod -G audio -a myuserid
(-a
indicates append.)
I have to add the original groups back.
The PC can't sleep nor hibernate. I know I made a mistake in the swap (swap partition must be >= memory), but the PC can't sleep too.
No big deal for now. I will figure it out eventually.
Surprisingly, no. Multiple SSH sessions work just as well, and they are much faster. VNC lags quite a lot. It is much slower than what I experience in office.
Atom CPUs, designed for small footprint PCs, are very suited for two things: as a file server and for media playback.
I looked at 3 common Atom configurations:
Atom by itself is too slow for MPEG-4 video playback, even for the newest Atom D510. Config #1 can only be used for server.
There are some M/Bs with a PCIe expansion slot that allows you to put in a dedicated graphics card. However, config #2 is a more sensible choice.
Do we need ION2 for media playback? No. The previous gen N330, when paired with the Nvidia ION graphics processor, can decode even 1080p videos.
The only downside is that ION M/B is a little more expensive and uses a bit more power — a concern in a server.
Initially, I wanted a combined server/media playback solution. However, later I realized they are somewhat at odds.
A server requires at least 2 HDs, so it needs a large power supply. A media playback device is small and can fetch its files remotely.
Thus, I decided to go for a pure server solution.
I got the MSI Win Board D510 which does not come with HDMI and DVI ports. I'm fine with VGA, but media playback usually wants HDMI. Note that Intel currently restricts HDMI to 720p.
Some mini-ITX M/Bs are fanless. Some are not. The MSI Win Board D510 has a CPU fan, but it is very silent. (I thought all Atom D510 M/Bs were fanless, but I was wrong.)
I am rapidly running out of backup storage. But rather than getting yet another external USB drive — I have too many of them — I want the storage to be on the network so that there are fewer restrictions how I can access it.
I want the server to be running 24/7, so I want something power efficient: Atom.
What I got:
MSI Wind Board D510 w/ Atom D510 (1.66 GHz) | $160 |
Kingston 2 GB RAM (800 MHz DDR2 CL5) | $65 |
Seagate Barracuda 1 TB HD (7200 RPM, 32 MB cache) | $101 |
In Win BK 644 Micro ATX tower (300W) | $100 |
SanDisk Cruzer Blade 4 GB | $14 |
For a total of $440.
Some notes:
The ATOM CPU+M/B advantage: it uses much less power than a C2D CPU, and it has a ultra compact 17x17 cm mini-ITX form factor.
I overlooked that mini-ITX boards are not very popular. There are only a few to choose from. The shop recommended by my colleague did not have the M/B I wanted. I asked around before I found the MSI Wind Board.
I overlooked the need to get a power supply!
I also overlooked that mini-ITX casings are hard to find, and that they are pretty big too — a generic mini-ITX casing is almost indistinguishable from a small micro-ATX casing.
Custom build casings (with a complete Atom-based PC) are much smaller. Imagine your router. That is how it should be.
How do they do it? By using something like a picoPSU, which adapts a 12V power adapter to the ATX power connector.
3 Mbps is around 375 kB/s. It may sound very slow, but it is a pretty decent rate. (In contrast, local network speed is ~5 MB/s and HD is ~20 MB/s.)
It is fast enough to play YouTube's 480p videos in real-time. (But not the 720p videos, though.)
A 7 GB 720p video can be downloaded in ~5.5 hours. However, I can't hit >350 kB/s all the time. Even 200 kB/s is a decent rate. It translates to 11 MB/min. A 7 GB file can be gotten in 10 hours (or overnight).
This is why I have opted for the 3 Mbps data plan for the past few years. It is one of the cheapest plans and it is good enough.
It reminds me of Windows GUI programming in early 90s before GUI RAD tools, such as Visual Basic and Delphi. There is a ton of boilerplate and glue code.
(And also X Windows and later Java Swing/AWT. History repeats itself every 10 years.)
The good news: App Inventor for Android is going to be released by Google, and that is apparently a drag-n-drop GUI app builder.
No one should need to create a GUI app using code.
A Singaporean by the name of Kelvin Leong has set up a Facebook to boycott the Youth Olympic Games hosted by the PAP regime. It has attracted more than 100 members so far.
According to Kelvin, it was founded to protest against the PAP's splurging of public monies on the YOG:
"We are Singaporeans who are disgusted with the YOG. The government initially allocated a budget of $120 million but it somehow shot to $387 million. At the same time, the government is not bothered at all to spend a single cent to fight the raging flood problems that has caused untold hardships on the people."
The PAP has spared no expenses in ensuring the success of the YOG including launching a public campaign to publicize the event in the HDB heartlands and designating YOG lanes to facilitate the travel of YOG delegates.
In contrast, it is unable or unwilling to do anything to prevent the spate of recent flooding which have inconvenienced ordinary Singaporeans.
PAP strongman Lee Kuan Yew even proclaimed that the floods were an "act of God" and no amount of engineering can prevent them. However, the YOG Committee is quick to draft up a contingency plan to ensure that the event is not disrupted by a flash flood, much to the chagrin of Singaporeans.
Despite the media frenzy, the response from Singaporeans on the ground has been lukewarm so far, prompting a panicky Minister of Community, Youth and Sports Dr Vivian Balakrishnan to urge Singaporeans to "rally" around it.
Many Singaporeans view the event as another vain attempt by the PAP to burnish its international image and want nothing to do with it, but are unable to express their sentiment explicitly out of fear of being "fixed' by the repressive regime.
Summer Olympic, Winter Olympic, Special Olympic. Now Youth Olympic?
To tell the truth, I've never heard of the Youth Olympic, so I googled it. It turned out this is the first ever Youth Olympic.
Will Youth Olympic work? I am skeptical.
Timing is everything, even in love. And when you are not ready to commit, you could end up regretting it
SOMETIMES, timing rather than love decides who we end up being with - or without.
Only some lucky people marry the loves of their lives. The rest marry the most suitable person who comes along when they are ready to settle down.
A friend in his 20s came to this conclusion after confiding in me that he had recently met a woman who is more attractive than his wife, and so occupies his thoughts more often than his wife does.
'If only I had met her before I got married,' he said wistfully.
But I think even if the love of one's life appears when one is single, one may not be in the right frame of mind to recognise him or her as such.
And then love passes by.
Life is littered with near misses and lost opportunities.
I attended my ex-boyfriend's wedding last month, which triggered many memories.
We met five years ago when I was 23 and he 31. It was love at first sight.
He had an established career, was down-to-earth and steadfastly religious.
I was then working as an air stewardess and my head was - literally and metaphorically - in the clouds.
I was also - well, let's put it this way - not religious.
Despite our differences, we were soulmates. We had the same quirky sense of humour and shared long, intense overnight conversations.
But human nature is perverse. When someone is excessively nice to us, we start taking things for granted, instead of appreciating them even more.
My ex sent me to the airport, fixed my PC, reminded me to take health supplements - and go to church.
He had everything I could want in a husband - except that I was not looking for one. A boyfriend was all I could cope with then.
I loved fast cars, danced wildly at Zouk and took off on shopping holidays at a whim. My life revolved around I, me and myself.
In the six months that we were together, he popped the question several times and talked ad nauseam about having children. He wanted us to enrol for a Christian marriage preparation course.
Yes, I did often fantasise about a Vera Wang wedding gown, but I was at that stage of my life when I was more interested in Guess than Baby Guess.
And where - dare I admit it? - I still wanted to meet other men.
So I was a 23-year-old with the emotional maturity of a 13-year-old. Responsibility? Wasn't that for adults?
In short, I met Mr Right at the wrong time.
The more he talked about marriage and religion, the more I felt pressured and the more pressured I felt, the more irritable I became.
I was too impatient to compromise. Every trivial matter blew up as a big deal. My mood obliterated the good in our relationship and reached a point where I just wanted out.
He was heartbroken; I was sad but relieved. He still called me regularly, beseeching me to change my mind.
The calls stopped finally after a year. Now and then, we say 'Hi' via e-mail.
I had a few painful relationships after that. Served me right, as those rude wake-up calls were necessary for me to realise the meaninglessness of my hedonistic high life.
I missed the tenderness of my ex and began having second thoughts.
Perhaps I also felt more urgency to find someone marriageable before my biological clock reached zero hour. It dawned on me that I am not a pixie like Peter Pan who can flit around forever. One day, I'd wake up sick and alone when my fair weather friends flit away.
But I was too proud and too unsure of my ex's reaction to call him until last year.
The first thing he told me excitedly was that he had found The One. My heart tumbled to my feet. So, that's Fate.
If only I could turn back time. If only I had met him later. If only... what feeble words.
These days, I am more circumspect. I have come to terms with my loss. There is nothing I can do about timing, but I can do everything about my choices.
Sometimes, when the nights get lonely, I toy with the idea of marrying a platonic friend of mine, who often assures me earnestly that, if the worst comes to the worst, he'd be willing to marry me.
But I always dismiss that. I have already made one mistake. I should not make another by settling for second best merely for the sake of getting hitched - only to regret it soon after, as the guy who confided in me did.
Hopefully, the best is not over but yet to be.
How many times has Mr/Ms Right come into your life, but at the wrong time?
Janice Wong (the article author) regretted her decision. However, I think she didn't make the wrong decision — it is hardpressed to ask someone to settle down at 23.
It was her misfortune not to meet anyone of the same calibre since...
But, she was just 28 when she wrote the article (5 years ago). That was not old enough to say she'll never meet a new Mr Right again.
Anyway, her article intrigued me enough to borrow her book, Single Picky Girl. (I was too cheap to buy her book for $15 :-P.)
Her articles work well enough as a newspaper column, but lack depth in a book.
The 2nd July COE bidding ended with Cat A at $36,162.
$36,162, what does it mean?
Per year: $3,616.20. Per day: $9.90.
Almost $10 a day to own the car, even before you use it.
HEAVY rains lashed Singapore early on Saturday morning, uprooting trees and causing flash floods in many area.
The affected areas included Braddell Road, Changi Road and Bukit Timah, where rising floodwaters stranded several drivers in their vehicles.
At the Tessarina Condo in Bukit Timah area, waters rose to knee-high, flooding the basement carpark. Some cars were almost submerged in water, prompting frantic residents to move them out to drier grounds.
Straitstimes.com reader Jerry Chan said the flooding was 'chaotic' and it was the third time in seven months, not 'once in 50 years as suggested'.
Singapore Civil Defence Force personnel also evacuated 60 people in 20 different places, including passengers who were stuck in an SBS bus along Upper Thomson Road.
There were also reports of a fallen tree along Dorset Road, which was causing traffic congestion.
Along Upper Thomson Road, shops were reported to be badly damaged, with huge fridges overturned and smashed.
There were also reports of a flooded carpark at the Delfi Orchard, which was hit by the worst flooding in 26 years in June just less than a month ago.
Parts of Kallang and Tanjong Katong were also flooded.
Ms Grace Loh, a resident of Tanjong Katong, sent pictures of her flooded home, which she called a 'shocking sight'.
Said Ms Loh: 'The flood today seems worse than what I experienced as a child in the 1980s!'
Nowadays, a prolonged heavy rain means flood. This has not happened since the early 90s. There is something wrong with Singapore's drainage system.
Key places: Old Thomson road, Bottle Tree Park, Yishun Dam, Seletar Airbase, Seng Kang, Punggol, Punggol jetty, TPE rain shelter, Pasir Ris Park.
Singapore changed to "distance fare" on 3 July 2010. It is fairer in theory. It is also supposed to be cheaper for 2/3 of the commuters. But there has only been one feedback since then: fares have gone up.
I could take a direct bus to office for $1.40. It now costs me $1.61. The website also cheerfully tells me I'm paying for 18.3 km.
What has gone up:
The new fare now favours commuters who take bus and MRT trip. A colleague told me his MRT trip is now $1.82 instead of $1.60. However, his bus trip is just $0.02!
I suspect LTA did this to encourage people to live further away from MRT stations. Previously, it is best to take only MRT or a direct bus.
STUDENTS in Singapore will be out in full force when the Youth Olympic Games (YOG) hits town in August.
The Education Ministry (MOE) is buying 80,000, or a quarter of the available tickets, for students from primary schools to junior colleges to watch both preliminary and final competitions during the Aug 14 - 26 event.
The ministry declined to say how much money would be spent on the tickets or whether there had been any concessions given.
Tickets - all general admission - are being sold to the public at $10 for the preliminary rounds and $30 for the final medal rounds.
MOE's bulk-buying of tickets has given a boost to overall YOG ticket sales, which, to date, have been sluggish.
Out of an overall 320,000 tickets put up for sale, only about 20,000 tickets have been taken up by the public since the launch on March 31.
Explaining the purchase, MOE's director for education programmes Sum Chee Wah said it had been done to ensure that students here have the opportunity to support local and foreign athletes while enjoying the spirit of sports competition.
All schools will be allotted tickets and, as far as possible, be matched to watch the preliminary competitions that involve their twinned National Olympic Committees (NOC).
This twinning initiative, known as Friends@YOG, was introduced in November 2008 and pairs Singapore schools with schools from the home countries of each of the 204 other participating NOCs.
Sixty per cent of ticket costs will be borne by MOE while the remainder will be paid by the schools.
It is, however, up to the schools to decide the ultimate cost borne by students, it added.
The ministry has been a huge supporter over the months in the lead-up to the games. For example, it rescheduled the school sports calendar this year so that most competitions in the National Schools Games will be held in the first half of the year.
This is to allow student athletes here more time to support and enjoy the YOG.
The ministry also said schools may make adjustments to school-based assessments or curriculum time so that they will not be held during the games.
One school, Qifa Primary in West Coast, will not be postponing classes but it will help those who attend the games to catch up with lessons.
Principal Debra Saw said that the school is also buying an extra 70 tickets - on top of those allotted by MOE - for the volleyball and basketball competitions.
While volleyball is the school's niche sport, Ms Saw said that the school also wants to develop its basketball team and feels that the exposure of watching the sport will be useful.
North Vista Secondary in Sengkang, however, will be postponing and rescheduling lessons and co-curricular activities if necessary for students to attend the YOG.
Apart from the tickets MOE will be allotting to the school, North Vista also plans to purchase another 1,500 tickets.
This is to ensure that every student and staff member has the opportunity to witness at least one YOG competition, said school principal Lim Lai Chuan.
IF YOU want tickets to catch the Youth Olympic Games, you will have to act fast.
Ticket sales to the first Youth Olympic Games have been brisk, with more than 100,000, or close to 50 per cent of tickets, having sold out.
Of the 158 competition sessions, tickets to the diving, fencing, handball and swimming events are no longer available, according to the Youth Olympic Games organising committee.
Also being snapped up are tickets to the athletics and gymnastics competitions. There are also less than 100 tickets available for all sessions of basketball, equestrian, modern pentathlon, shooting and taekwondo.
Tickets to the Youth Olympic Games closing ceremony went on public sale on Monday.
A proportion of tickets which were not transacted following the opening and closing ceremony ticket balloting exercise have been put up for public sale. This allows people who did not participate in, or were not familiar with, the balloting exercise an opportunity to buy tickets.
Unlike many people, I do believe the ST reports the truth. However, you have to pay attention, read between the lines and think for yourself.
Play down bad news: MOE bought 80,000 tickets. It is okay because that is just 25% of the total tickets.
Play up good news: more than 100,000 tickets, nearly 50%, sold.
When you compare the two figures, you'll quickly realize the true sales is just 20,000+ tickets! That is dismal.
THE widow of bridegroom Vernon Leong, who mysteriously fell to his death from the Hilton Hotel on the night of his wedding last November, died early Monday.
Ms Kerin Peh, 27, is believed to have jumped from the block where her family lives at Hougang Ave 8. Paramedics who arrived at the scene around 2am, pronounced her dead.
Last December, she also tried to take her life by slashing her wrists at the home of her parents-in-law in Balam Road.
Friends of the couple said then that Ms Peh had been an emotional wreck after her husband's death, and family and friends had had to keep close watch over her.
God give me the strength to go on in times like this.
(I am not a religious person, but in times like this, I do pray.)
This is a tragedy indeed.
A place in KL that transports you beyond KL.