glee 的部落格

  • user warning: Can't open file: 'sessions.MYI'. (errno: 145) query: SELECT COUNT(sid) AS count FROM sessions WHERE timestamp >= 1508390345 AND uid = 0 in /var/www/drupal-5.23/includes/ on line 174.
  • user warning: Can't open file: 'sessions.MYI'. (errno: 145) query: SELECT DISTINCT u.uid,, s.timestamp FROM users u INNER JOIN sessions s ON u.uid = s.uid WHERE s.timestamp >= 1508390345 AND s.uid > 0 ORDER BY s.timestamp DESC in /var/www/drupal-5.23/includes/ on line 174.

Flash ads, please make it stop

I really fricking hate Flash. Not that you needed to be told this. It kind of looks nice when it works, except when it crashes your browser. It eats your CPU time and is buggy, there's a word we use to refer to software like that, it's 4 letters, starts in an s and ends in a t.

How NOT to write software

The embedded routers available on the market these days are truly wonderful things. You buy one, it just works, you leave it there until there is a compelling reason to get a new one. Everybody is happy.

Oops! Just kidding! That's the way things ought to work, but it never days. Getting a router that works these days (perhaps with the exception of an Apple router, I guess) is largely a game of chance. Even doing due diligence by reading online reviews will not save you.

AsiaMiles, you suck

So I wanted to contact AsiaMiles (which I haven't touched in a while, admittedly) to put some points back on for a recent flight. Lost my membership number my email's gone stale so I can't retrieve it online, no problem ... ring them up and all you get is a automated response. They won't put you through to a human operator until you have a membership number, apparently.

Personal information

What's up with companies asking for personal information that they don't really need, but they ask for it anyways?

Apparently to top up your prepaid mobile phone, you need to provide them with your email address. What's up with that? I left it out, which they promptly went, "wah! we really need it!" ... so when you fill it in, they provide this information on the next webpage anyways. Thanks guys, for letting me know what frigging retards you are, because you just told me you don't really need it.

Rate limiting

It never fails to amaze me at the shoddy way that some Australian telcos decide to implement rate-limiting on Internet connections. The way that this is done is, send as fast as you can, then drop everything. Rinse, repeat, so that over a period of time, you get the rate that is advertised by the ISP. This is broken, because it means that you cannot properly share an Internet connection, even just for one person. For example, one could be legitimately uploading a bunch of photos online, and web-surfing at the same time.

Router troubles

Before I used to do NAT on a Linux, but nowadays I have (as have others) gotten lazy and just got a cheap ADSL/Cable router that does the NAT. The one I was using died recently, I had to replace it.

Advertising calls

So, I haven't written for ... how long? I lost count. Yes, busy with boring work, instead choosing to write about the boring daily drivel, I just choose not to.

So .. .contrary to reports, I have not been run over by a bus, I am NOT dead yet. I am alive and well.

So, how desperate is HK Broadband for IDD business? Consider this. Today, I got a call from a "private number" (my mother, usually). "Hi, I am calling from Hong Kong Broadband in Hong Kong. We've got a special deal for IDD HK <->Australia". On my mobile.

Debian upgrade

I upgraded a -stable box to -testing. Mostly went well, but in one or two cases ... well, not so well.

Random starting of daemons: Yes, this has been the case in Debian for a long time, however, it gets worse when a dependency pulls in a new daemon and restarts *that*, and suddenly you are left with a nice, blank page. Actually, it didn't do that, but gave you a directory listing of what it *thinks* is the root www directory. You're left wondering, why? (the culprit, by the way, is Apache2)

Stuff that does not work out of the box: I could not get Exim4 and mailman to play nicely. First: Exim4 does not handle pipe transport out of the box, so none of the aliases stuck into /etc/aliases for mailman actually work until you uncomment it out. Mailman does not play nicely because Exim starts with Debian-exim group, and mailman will whine because that's not what the default gid is configured to at compile-time. The README files does contain some information on how to make it work .... but it was more like "Oh, just enable some random crap in your configuration file to make it work" ... hmm, nice work, considering the popularity of mailman as a mailing list software and exim as a MTA.

Google code

How long haven't I written something? Probably too long, but why? Well, nothing really interesting has happened...

So what's been happening? I guess the major thing was that I was fortunate enough to be in SF, CA (WWDC2006), though it was rather unfortunate that I could not fit attending LinuxWorld also, which was on at around the same time. Speaking of Linux, LCA 2007 is just across the road, so that will be some extra incentive to attend.

Anyway, Google came out with a new search called Google Code ... in case you have not tried already, it searches through the Internet for code matching some particular pattern (yes, even if it is in a tarball gzipped/bz2).

Hey gcc, you stink

I've just hit into a bug in gcc 4.x, it sucks to have a bug in your toolchain when that's probably the last thing you would ever suspect.

The code goes like this:


struct d {
unsigned int lo, hi;

static inline unsigned long long r(struct d x)
return *(unsigned long long *)&x;

g(unsigned long long x)
printf("%llx\n", x);

struct d c;
c.lo = 0xdeadbeef;
c.hi = 0x2;


Compile with gcc -O2 -m32 ...

You'd expect to see 0x2deadbeef on a 32-bit little-endian machine, right? No ... the top 32 bits get garbled.


WebCT is a tool for E learning. UNSW has one set up. Unfortunately, I have the dubious honor of having to be put through it one last time for summer courses.

Is WebCT designed to:

(a) enhance user experience by presenting the user unusable interfaces,
(b) help the university dispose of its money acquired via means of international students,
(c) Promote new advances in foolproof interfaces by telling people, for example, not to resize windows during a test as they could "disappear",
(d) What kind of moronic fuck wrote this pile of shit.


My powerbook requires an expensive trip back to Apple.

Just kill me now.

laptop disk is dead..

Great, just not long after the warranty on the laptop runso out, the disk I think is going to die soon. Fuck, thanks Apple.

It's another 200 dollars if I install it myself, not to mention the trouble of backing all that shit up and restoring it.

The disk made a very bad clunking noise some weeks ago. I turned it off and turned it back on, seemed ok. Now, it's happening again ...

Though I know a guy who had his disk fail when the cable went loose. Maybe I should just take it apart (CAREFULLY so as not to void the warranty ...)

Symbian phones, and what's for dinner?

What is it with these Symbian phones? Or is it just mine? It's clunky, it's slow, it's got a crappy interface ... I do not know just _where_ to start. Oh and buggy too ... Last night I put my phone through the battery charger ... OK ... when I wake up ... it's still charging...!! Low battery!! WTF?!

Ok ... fine. I need to head off to the office so I take my uncharged phone (supposedly) and the charger with me. Subject it to several more hours of charging. WTF??!! Same!

OK. In frustration I reset the phone. Full battery. WTF?!
Look: can we have a phone that just does _NOT_ suck?


I left Sydney just when the race riots were on. Am I supposed to feel good that I'm not missing out on any fun because the WTO riots are just as interesting to watch?

Hrm, we live in interesting times.

(Yes, I am back in HK, for 2 weeks. I don't think I mentioned it anywhere before, the arrangements were rather, er, adhoc, and it wasn't finalized until the very last minute).