Rambling I attended an event hosted by some government body recently, and it featured Google's Jolly Good Fellow. He seemed a pretty cool guy, humble and unassuming but probably terribly smart, as they all probably are at Google. During the event, he talked about how everyone in Google wants to change the world.So, towards the end of the event, someone asked him what he was doing to change the world. He replied that he was trying to (and don't take this as a quote, because I do not have a perfect memory) promote mental fitness. If I remember correctly, he said that the key to this was meditation and that he hopes someday it will be as prevalent as physically working out to stay healthy. Like if you asked someone if they meditate, they would reply with "Well, of course. Duh." Then he said that this would holistically heal a lot of the world's existing problems. Like war would no longer exist if everyone just wanted peace.Now, I just want to state for the record that I have nothing but respect for the first Singaporean to make it into Google, but I couldn't help but think of this Deep Thought by Jack Handey.I can picture in my mind a world without war, a world without hate. And I can picture us attacking that world, because they'd never expect it.Because I am easily sidetracked, I started reading more quotes while looking for that quote and this one by James Arthur Baldwin struck me in particular. Here's to all of you out there who like lecturing younger people but never do anything noteworthy or noble.Children have never been very good at listening to their elders, but they have never failed to imitate them.Today I went to eat at a restaurant and I saw that they were hiring "Customer Service Representatives". Wow. Cool title. I almost applied for the job. Then I looked at the picture underneath it. Oh. They meant "waiter".I think the world could do with less of this sort of crap. 小 Beng is quick I was chatting with Zhe Bin just now, and he said something funny.(01:32:37 SGT) *one Nate (tzb): Hey I will be changing my msn address to (gmail.com).: is your gf back in sg?(01:32:41 SGT) Don AQ®: Oh, would that I could touch your brilliance. Hedy Lamarr: yep(01:33:01 SGT) Don AQ®: Oh, would that I could touch your brilliance. Hedy Lamarr: she's been back for quite some time now(01:33:06 SGT) Don AQ®: Oh, would that I could touch your brilliance. Hedy Lamarr: one year plus(01:33:11 SGT) *one Nate (tzb): Hey I will be changing my msn address to (@gmail.com).: omg(01:33:15 SGT) *one Nate (tzb): Hey I will be changing my msn address to (@gmail.com).: so sorry(01:33:17 SGT) *one Nate (tzb): Hey I will be changing my msn address to (@gmail.com).: hahaha(01:33:22 SGT) *one Nate (tzb): Hey I will be changing my msn address to (@gmail.com).: very outta touch(01:33:24 SGT) Don AQ®: Oh, would that I could touch your brilliance. Hedy Lamarr: haha(01:33:27 SGT) Don AQ®: Oh, would that I could touch your brilliance. Hedy Lamarr: no problem man(01:33:44 SGT) Don AQ®: Oh, would that I could touch your brilliance. Hedy Lamarr: why should u be in touch with the location of my gf(01:34:14 SGT) *one Nate (tzb): Hey I will be changing my msn address to (@gmail.com).: well that's between me and her man(01:34:18 SGT) *one Nate (tzb): Hey I will be changing my msn address to (@gmail.com).: although you have every right to know(01:34:40 SGT) Don AQ®: Oh, would that I could touch your brilliance. Hedy Lamarr: haha good one(01:34:59 SGT) *one Nate (tzb): Hey I will be changing my msn address to (@gmail.com).: so she's working also now lah(01:35:06 SGT) Don AQ®: Oh, would that I could touch your brilliance. Hedy Lamarr: shit i gotta post that Cuil who? So it seems there's a new kid on the search engine block. One created by former employees of the incumbent champion, no less. They claim to rank results based on content. They also claim to have indexed more pages than Google. That's like saying that you have escaped your shadow or caught up with the horizon, isn't it? Nevertheless, I decided to put them to a vanity-based test. I searched for "laditudinarians", "donaq", and "i rock you suck", all of which I place on the first page of results for Google.None of them found yours truly on Cuil. Searching for "donaq" turned up my old comments on Popagandhi. Searching for "laditudinarians" turned up some page on sgblogs.com mirroring this blog. Can you claim to produce more relevant results if searching for "donaq" doesn't produce donaq.blogspot.com before producing a link to donaq.blogspot.com as a comment on someone else's blog? I think not. Also, how can you rank a mirror above the actual site (which is not one of the results returned)?Google: 3Cuil: 0They say "cuil" is an Irish word for knowledge. Unfortunately, this would-be new giant seems to be a leprechaun with an illusory pot of gold instead. Google FTW! Not to diss on my countryman, but... This bugger is just plain stupid.* sawfish__ (n=Sawfish@62-47-184-188.adsl.highway.telekom.at) has joined #gcj* Sawfish has quit (Read error: 104 (Connection reset by peer))* sawfish_ has quit (Read error: 104 (Connection reset by peer))* Sawfish (n=sawfish@62-47-184-188.adsl.highway.telekom.at) has joined #gcj* adi112358 has quit (Read error: 131 (Connection reset by peer))* forest has quit ()* prekageo (n=a@nes2.nessos.ondsl.gr) has joined #gcj* prekageo (n=a@nes2.nessos.ondsl.gr) has left #gcj* AntiMage (n=jaxkhor1@121.120.177.204) has left #gcjI think most Singaporeans should be able to tell that he's one. My only question is, how the fuck did he find freenode? Shouldn't he be in galaxynet? Neo FreeRunner I wonder... how many geeks in Singapore are interested in this? Let's find 9 other buggers and get the 10-pack!Aw, come on, no one?Damn.[Update] Sold out! OMG. Why Google is cooler than Ebay Hacker cool, that is. Google organizes a programming competition, and Ebay does one too. Before I even get started, note how the Google Code Jam page is written entirely in HTML, CSS and Javascript. All open standards. Then note how the Ebay page (unnecessarily) uses what has been dubbed "the cancer of the web" by some. Even though I wouldn't go that far, (you can always not go to Flash sites) I do think that its use should be minimized. I will not go into the reasons here, but if you're curious, shoot me a comment. Furthermore, clicking on their "Register Now" button brings up a popup which Firefox promptly blocks.Anyway, the point is this:The Ebay competition is very obviously the brainchild of suits and not hackers. At the event where they launched the competition, I did not see a single techie there who represented Ebay. Furthermore, although I can no longer recall the exact figures, implementation comprised a mere 20% or so of their judging criteria. To put this in context, minutiae like business plan or some crap like that was worth 30%. I suppose it makes sense if you're trying to attract talented suits, but then why hold a Developer Challenge? Why not hold a Suit's Biz-Off and just give the winner some money so he can hire hackers to implement his business plans?Google, on the other hand, doesn't give a flying fuck about your business plan. What you have to do instead, is solve algorithmic problems. As swiftly and accurately as possible. That is the attitude that ensures Google always has the brightest engineers.p.s. A friend of mine who attended the aforementioned event with me said that we should just interrupt the speakers with this:I propose that we forgo the competition and split the $25K among all those present here (a coupla hundred for each person, more or less). All those in favour, say "yea"...My friends are funny. It never rains but pours Well, after months of not clubbing, I suddenly had the urge to, so I beamed the Bat Signal into the night skies on Friday, and DiDa suddenly decided to go. It's a testament to how much both of us like to dance that in spite of the fact that we've never met before and couldn't get any other friends of ours to go, we still went. Then again, maybe I have a tendency to do stuff like that anyway, since I almost always go clubbing with people I don't know. Anyway, I've known her online for ages, but for some reason, we've never met, and I've been really curious about what she's like in the flesh.She wasn't quite what I'd expected. I'd expected her to be altogether more aloof and, well, grownup. As it turned out, she was quite the tiny chilli padi. Ok, maybe it's a little irrational of me, but for some reason, diminutive people tend to give me the impression of extreme youth. DiDa looked like she was 16 or 18. She looked so young I'm surprised they let her into the club without checking her ID. Also, she was quite unexpectedly really pretty. See, a lot of bloggers put up pretty pictures of themselves on their blogs, but when you actually meet them, they turn out to be total dogs or at least merely average. DiDa, I must say, is probably the cutest blogger I've ever met.If you've been reading her blog, some of you might have wondered if she exaggerates her clubbing posts. Well, speaking as a primary witness, I'm going to have to say on oath that she hasn't been exaggerating, Your Honour. She does dance on the podium (even though her friend XY wasn't there), and she does attract a lot of attention when she does. I sort of faded into the shadows so I could watch her do her thang, and I could see most of the guys in the room, even those who were with chicks, giving her The Look. And, of course, bitches being bitches, not a few of the chicks there were also giving her The Other Look. You know, that look that says "wtf is this slut doing omfg she's such a horse and who does she think she is and i hope the bloody couch gets sucked into her gaping vagina and i-hate-her-i-hate-her-i-hate-her-i-hate-her".Girls. What are you gonna do with them, huh?All in all, it was a good night for me, even though the clubbing experience wasn't terrific because it was too crowded to dance and the music sucked. Why did it suck? Because I didn't like it, of course. Anything that I dislike sucks, you see. But hey, I got to meet a hot chick, and that's always good. Crab People return Dr. Fletcher doesn't often do long posts, but when he does, it is worth reading. Be warned. The blog post you are about to read reveals disturbing facts that you might want to let your children know about right now in order to give them an advantage in survival. One of those facts is, namely, the existence, and resulting threat to the human race thereof, of Crab People. It's like trying to patent breathing Winners of the Biggest Douchebags of the Year award. Courtesy of Simply Jean. This is another example of a company behaving like a gangster putting his finger in his pocket and pointing it at people to extort money. Chocolate! This movie has me all psyched. It has me so psyched, I'm going to rush out after dinner and watch it alone. I have watched both Ong Bak and Tom Yum Goong, and, while the plots left a lot to be desired, the action sequences were without parallel. Even better, in some respects, than those in Chinese martial arts flicks.Ok ok, I'm just a sucker for movies. Scramble or hacking? Some time ago, I was arguing with my colleagues about which required more intelligence: writing a program that could cheat at Scramble? Or winning at Scramble? Naturally, I took the stand that writing programs requires way more intelligence than playing some word-finding game. My friend, being a rather contentious guy, told me that I was biased because I am a programmer and that he respected the top scramble players because we couldn't do what they did, blah blah.I said that all that scramble required was memory and basic pattern recognition coupled with the digital dexterity required to type words fast, while writing programs required a higher level of intelligence and the ability to understand what was required to solve that problem (i.e. problem abstraction). I told him that the skill set required to play scramble wasn't that much different from that required to play minesweeper, and that since I could hit timings of 80+ seconds on minesweeper, I could probably also play scramble well with practice. He didn't buy it, even though he's also a programmer. Well, I've written a program that could cheat at scramble. I've also been playing scramble and I've improved to the point where I can get to the top 10 positions.To sidetrack a little bit, the main game in scramble has at least 300+ players playing on the same board at any one time, so it is really not that easy to own at the game.However, I can actually prove my point with a simple observation. Let's take the intelligence quotient required to play well at scramble as X. So if you play well at scramble, all we can conclude is that you have at least an intelligence quotient of X. Now, let's posit that the intelligence quotient required to write a program that cheats at scramble is Y, as yet an unknown quantity. However, we observe that, since the program is able to attain better results than a human player (my program is able to get all the answers on the board within 1 second, while the average good human player plays a 3 minutes game and usually attains sub-perfect results, but let's forget the obvious disparity for now), the program itself has at least an intelligence quotient of X. If an entity with an intelligence quotient of Y is able to create an entity with an intelligence quotient of X, does it not logically follow that the creator is smarter than the creation?I end this post with a challenge illustrating the above for those programmers who still disagree. You're probably smart enough to write a scramble solver. But are you smart enough to write a program that can write a scramble solver? (QED)p.s. Note that I'm not saying that people who are good at scramble are less intelligent than me (though they probably are, heh heh). I'm just saying that of the two tasks, writing a scramble solver and solving scramble, writing a scramble solver requires higher intelligence.p.p.s. If you come to me with a program that prints the source code for a scramble solver, I... would really not know what to say to you.[Update]I spoke with the aforementioned colleague again and he pointed out a flaw in my previous reasoning, namely that it takes an entity with a higher level of intelligence to create an entity of a certain level of intelligence. Basically, if one believes, as I do, that humans will someday birth artificial intelligences greater than themselves, then one must believe that an inferior intelligence should be capable of creating a superior one. My bad.I still think the second illustration is valid, i.e. the fact that one can write a scramble solver but cannot write a scramble solver writer implies that the former task is less complex and hence, requires less intelligence to accomplish. Demonoid is back! The #1 purveyor of old, old, torrents. The only tracker site at which you can be almost absolutely assured of the availability of seeds. Fuck you, CRIA![Update]Even Wikipedia is glad that Demonoid is back. :) Outburst After struggling for 2 days to make some Javascript and CSS display code work on all versions of Internet Explorer ("overflow: hidden", anyone?), I had gotten increasingly frustrated. Today, in the office, after IE 8 refused to acknowledge what Javascript was trying to tell it*, I finally blurted out something that precipitated some merriment among the colleagues:"Firefox is open-source! Go copy their code, for gods' sake!"This goes out to all the engineers and programmers working on IE 8, who I know (hope?) are probably trying hard to address these issues.In other news, I recently met with the ThinkingPHP.org guy, Felix Geisendörfer. If you're a PHP geek, you should know the name. Cool guy.*IE 8 was listening to his Zune and whistling while Javascript spoke till she was blue in the face. Hacking Scramble in C Recently, I've been playing this game on facebook called Scramble. It's basically an online version of Boggle. I noticed that there were a group of players who consistently had way, way higher scores than the rest of the players. Naturally, there were accusations of cheating, but how would you determine whether someone was cheating?Well, the easiest way in this case was to also attempt cheating and see what the limits of it are. So I googled around for a cheat and found this solution implemented in Ruby. I ran it and thought it was rather slow, so I decided to implement my own cheat in the fastest language of them all.C! I've had precious little opportunity to hack in C since graduating anyway, so I thought this would be a good opportunity to get in some practice. So anyway, it runs quite a bit faster than the Ruby solution (less than 1 second for a dictionary with 151000~ words), but it doesn't calculate the total score and it doesn't output stuff like "found word:". On the plus side, though, you don't need to run it everytime the board refreshes and thus suffer the overhead of loading the dictionary everytime.Of course, it was relatively easy to win using the program against non-cheaters, but like that Ruby hacker said, it takes all the fun out of the game. Anyway, my verdict is that the players I was talking about were definitely cheating. Some of them could almost keep up with me despite the fact that I did not even have to look for the words on the board. No way there are more than one in a million people capable of beating a computer for speed at finding words on the board.I don't grok Ruby, so I can't really tell why there's a difference in speed, but my guess would be that it's because Boggler.rb solves the board by doing a board traversal while scramblecheat.c tries to match words to the board. One last point before the code itself. I did not provide for the "Qu" tile, but since this is a proof of concept, I don't care to provide an edge case for it. Interested parties can solve that for themselves. The code was compiled on Linux using gcc-4.1.2 and no, I'm not providing binaries. Oh, and you can do whatever you like with the code, including stripping it for spare parts and selling it. :)#include #include #include #define BS 4#define MAXLEN 8void resetuse(int usearray[BS][BS]);void startboard(char boardin[(BS*BS)+2], char board[BS][BS]);int findword(char *word, char board[BS][BS], int usearray[BS][BS], int wlen);int findrest(char *word, char board[BS][BS], int usearray[BS][BS], int wlen, int pos, int x, int y);int main(int argv, char *argc[]){ int c,lines=0,maxchars=0,currentlen=0,wlen; int i,j,k,l; char **dictionary; char board[BS][BS]; char boardin[(BS*BS)+2]; int bcount=0,getout=0; int sa=(int)'a'; int sz=(int)'z'; int usearray[BS][BS]; FILE *fp=NULL; if(argv!=2){ printf("Usage: scramblecheat return 0; } if(!(fp=fopen(argc[1],"r"))){ printf("Could not open %s.\n",argc[1]); return 0; } printf("Finding maximum word length and number of words..."); /*find the number of lines and maximum string length*/ while((c=fgetc(fp))!=EOF){ if((unsigned char)c=='\n'){ lines++; currentlen=0; continue; } currentlen++; if(currentlen>maxchars) maxchars=currentlen; } maxchars+=2; printf("Done.\n"); printf("Maximum word length = %i\nNumber of words = %i\n",maxchars-2,lines); rewind(fp); /*preparing dictionary*/ printf("Preparing dictionary..."); if(!(dictionary=(char **)malloc((size_t)(lines*sizeof(char *))))){ printf("\nFailed to allocate memory for dictionary. Exiting.\n"); return 0; } for(i=0;i if(!(dictionary[i]=(char *)malloc((size_t)(maxchars*sizeof(char))))){ for(j=i-1;j>=0;j--) free(dictionary[j]); free(dictionary); printf("\nFailed to allocate memory for dictionary words. Exiting program.\n"); fclose(fp); return 0; } if(!fgets(dictionary[i],maxchars,fp)){ for(j=i;j>=0;j--) free(dictionary[j]); free(dictionary); printf("\nFailed to form dictionary at line %i. Exiting program.\n",i+1); fclose(fp); return 0; } /*get rid of newline*/ for(j=0;j if(j==maxchars-2) dictionary[i][j]='\0'; if(dictionary[i][j]=='\0') break; if(dictionary[i][j]=='\n'){ dictionary[i][j]='\0'; break; } } } fclose(fp); printf("Done.\n"); /*get board*/ while(1){ printf("Enter board letters in small caps in the order left to right followed by top to bottom or enter an empty board to quit: "); fgets(boardin,(BS*BS)+2,stdin); /*get rid of newline, make sure length of string is correct*/ for(i=0;i if(i==(BS*BS)+1) boardin[i]='\0'; if(boardin[i]=='\0') break; if(boardin[i]=='\n'){ boardin[i]='\0'; break; } } if((int)strlen(boardin)==0){ printf("Thanks for using the scramble cheat, you disgusting creature.\n"); break; } else if((int)strlen(boardin)!=BS*BS){ printf("Wrong board size! Please try again! Cheat with intelligence!\n"); continue; } for(i=0;i for(j=0;j /*check for invalid chars*/ if(!((int)boardin[bcount]>=sa && (int)boardin[bcount] printf("Invalid characters in board! Try again! Cheat with intelligence!\n"); getout=1; bcount=0; break; } board[i][j]=boardin[bcount]; bcount++; } if(getout){ break; } } bcount=0; if(getout){ getout=0; for(i=0;i for(j=0;j board[i][j]='0'; } /*generate words*/ /*for each word in dictionary, try to find it in the board*/ for(i=0;i resetuse(usearray); wlen = strlen(dictionary[i]); if(wlen>MAXLEN) continue; if(findword(dictionary[i],board,usearray,wlen)) printf("%s\n",dictionary[i]); } } /*cleaning up. always clean up after a good job*/ for(i=0;i free(dictionary[i]); free(dictionary); return 0;}/* reset usearray */void resetuse(int usearray[BS][BS]){ int i,j; for(i=0;i for(j=0;j usearray[i][j]=0;}/*tries to find specified word on board*/int findword(char *word, char board[BS][BS], int usearray[BS][BS], int wlen){ int i,j,found=0; for(i=0;i for(j=0;j if(board[i][j]==word[0]){ usearray[i][j]=1; if((found=findrest(word,board,usearray,wlen,1,i,j))) return found; usearray[i][j]=0; } } } return found;}/*tries to find the rest of the word*/int findrest(char *word, char board[BS][BS], int usearray[BS][BS], int wlen, int pos, int x, int y){ int found=0; /*word found*/ if(pos==wlen) return 1; /*try x-1,y-1*/ if(x-1>=0 && y-1>=0){ if(!usearray[x-1][y-1] && board[x-1][y-1]==word[pos]){ usearray[x-1][y-1]=1; if((found=findrest(word,board,usearray,wlen,pos+1,x-1,y-1))) return found; usearray[x-1][y-1]=0; } } /*try x,y-1*/ if(y-1>=0){ if(!usearray[x][y-1] && board[x][y-1]==word[pos]){ usearray[x][y-1]=1; if((found=findrest(word,board,usearray,wlen,pos+1,x,y-1))) return found; usearray[x][y-1]=0; } } /*try x+1,y-1*/ if(x+1 if(!usearray[x+1][y-1] && board[x+1][y-1]==word[pos]){ usearray[x+1][y-1]=1; if((found=findrest(word,board,usearray,wlen,pos+1,x+1,y-1))) return found; usearray[x+1][y-1]=0; } } /*try x-1,y*/ if(x-1>=0){ if(!usearray[x-1][y] && board[x-1][y]==word[pos]){ usearray[x-1][y]=1; if((found=findrest(word,board,usearray,wlen,pos+1,x-1,y))) return found; usearray[x-1][y]=0; } } /*try x+1,y*/ if(x+1 if(!usearray[x+1][y] && board[x+1][y]==word[pos]){ usearray[x+1][y]=1; if((found=findrest(word,board,usearray,wlen,pos+1,x+1,y))) return found; usearray[x+1][y]=0; } } /*try x-1,y+1*/ if(x-1>=0 && y+1 if(!usearray[x-1][y+1] && board[x-1][y+1]==word[pos]){ usearray[x-1][y+1]=1; if((found=findrest(word,board,usearray,wlen,pos+1,x-1,y+1))) return found; usearray[x-1][y+1]=0; } } /*try x,y+1*/ if(y+1 if(!usearray[x][y+1] && board[x][y+1]==word[pos]){ usearray[x][y+1]=1; if((found=findrest(word,board,usearray,wlen,pos+1,x,y+1))) return found; usearray[x][y+1]=0; } } /*try x+1,y+1*/ if(x+1 if(!usearray[x+1][y+1] && board[x+1][y+1]==word[pos]){ usearray[x+1][y+1]=1; if((found=findrest(word,board,usearray,wlen,pos+1,x+1,y+1))) return found; usearray[x+1][y+1]=0; } } return found;}Blogged with the Flock Browser Kissing lessons I can't believe one of them said it felt good.Blogged with the Flock Browser Blazing fast mirror from Taiwan I got amazing speed while downloading Ubuntu 8.04 from Taiwan. Woohoo!Blogged with the Flock Browser 黃美珍 Yesterday, my friend directed me to this YouTube video. I've heard the original before and wasn't much impressed with it, but this chick was something else. Her voice has a majestic* quality which was absent in the original singer's voice but essential for this song. You see, the title of this song is 女爵, which approximately means "Female Lord", though Marquis would probably be a closer literal translation. Surprisingly, she did not win the contest, which means either that the other contestants were from the angelic or demonic choir, or that the judges were a bunch of morons who have no taste whatsoever.In case you were wondering, yes, I define people who have taste as people who like exactly what I like. Obviously.Contrast this with the original.*I actually meant 霸气, but I'm not sure how one translates that.Blogged with the Flock Browser Flock this shit I've started using the Flock browswer and, being a geek and a man, I'm naturally curious about the vital question: How fast can it go before it breaks? So let's wait and see.Anyway, here's some interesting stuff about Flock.It's based on the Firefox code base. If you're not a geek, that means that it's a modified version of Firefox.It is capable of integrating almost all your social site accounts with itself. You know, the usual Web 2.0 suspects (Facebook, Blogger, WordPress, YouTube, Flickr, del.icio.us, digg, etc).Related to point (2), the integration is pretty nifty. For example, if you integrate your Facebook account with Flock, you get a feed of all your "friends" in what they call a People Sidebar. This presumably makes you all feel really informed and up to date, because you're a bunch of lonely people. However, I digress.If you integrate your Flickr and/or YouTube account with Flock, it can show you streams of media from those sites in your Media Bar. This helps to fill up that gaping emptiness you feel inside.If you integrate any of your blogging accounts (even Xanga and LiveJournal), you can blog anytime by right-clicking in whatever site you happen to be visiting. Flock even adds the link to that site for you. This has a two-fold purpose.It aids untalented and overly enthusiastic bloggers in filling up the internet with boring, ungrammatical posts about whatever inane thoughts or boring sites they happen to be entertaining or visiting at the moment.It helps to lower the productivity of the aforementioned untalented but enthusiastic bloggers. I am writing this post on Flock (screenshot below). :)I posted the screenshots to Flickr using Flock. (screenshot below). :)If you close the sidebar and the Flock toolbar, you're pretty much left with Firefox.Verdict so far:It's convenient, if you're like, still in school and have tons of time for social networking sites and blogging or if you're running a startup and thus have tons of time for social networking sites and blogging. Otherwise, it's mostly just eye-candy on good ol' Firefox. It's been fun so far, though.And now, here are the screenshots.Blogged with the Flock Browser DiDa is irritating and stupid For an otherwise intelligent lass, she seems to turn into a raving 'tard when she's with her boyfriend (like many other chicks). I am at a loss to explain this phenomenon. If you are reading this, DiDa, would you and your pilot bloke care to participate in a scientific investigation of this anomaly? *snigger*Blogged with the Flock Browser xkcd is funny As above. The water's just fine! Recently, I've had many people on my MSN Messenger contact list sending me disguised links that lead to http://msnstatus.net/. This website claims to be able to tell you who blocked you on Messenger... but you have to give them your username and password, of course. This, as any initiated member of the Geek Council will probably agree, practically reeks of phishing. As a public service, I Rock, You Suck investigated their claims and, as it turns out, they weren't lying. They really can tell you who blocked you on Messenger.You see, after you give them your Messenger username and password, they will access your account and repeatedly send their website's URL to all the people on your contact list. This will almost certainly have the effect of annoying your friends, who will soon stop being your friends and block you. The good folk at msnstatus.net will thus be able to tell you quite truthfully that you have been blocked by everyone on your contact list.Just in case anyone was unable to detect the overwhelming sarcasm, well, of course it's a phishing site. Duh. I like breasts My colleague told me today that the search for the exact quote "I like breasts" had only 600+ results. This is clearly an injustice to all the beautiful mammaries bouncing around out there. It is absolutely preposterous!Hence, here and now, I Rock, You Suck pledges its undrying undying love for boobs, knockers, jugs, titties of all colours and denominations. I strongly urge that all self-respecting male bloggers out there post an entry with this title, because the fate of the relationship between mankind and hooters hangs precariously in the balance. We must unite in this noble cause and cry out in one voice and no uncertain terms that we, the True Men of Earth, love and adore breasts. We must not falter, we must not rest, until the internet is literally, liberally, littered with results for the search for the quote "I like breasts".[Updated] Take comfort, brethren, in the fact that there are women out there who want us to nestle in their boobies because it's "so comfortable".Sweet. Fat is a valid reason to break up Yesterday I was reading the local rag, and there was this article written by some journo, let's call her L. In a nutshell, the article was about one of her friends getting dumped by her boyfriend because she was fat. L then throws a neurotic hissyfit about how looks shouldn't be that important and about how superficial men are.Now, this is a perfect example of why I don't read the local rag much. Firstly, come on, you know you're scraping the bottom of the barrel if you start writing about your friend's relationship woes in the leading newspaper in the country, even if it is in the entertainment section. I mean, her friend isn't even a celebrity, so whatever, you know?Secondly, isn't a romantic relationship by definition a very subjective thing? People are attracted to and repelled by all sorts of things that were either hardwired into them or the result of their experiences in life. Whatever the reason, they probably can't help their reactions to these things, and even if they could change, why should they do so? Because you think they "should"? Grow the fuck up and get the fuck over yourself, L. What everyone "should" have is the right to select or reject partners based on their own sets of preferences. If you think that's unfair, well, get used to it, honey, because that's the way it is, and there's no "should" or "shouldn't" about it. If you can't jive with that, then maybe you "shouldn't" read so many fluffy romance novels where unconditional love is the norm rather than the exception.What's this bullshit I keep hearing about unconditional love anyway? There's no such thing. You can go on and on about how some chick's boyfriend got into an accident and became a vegetable but she still stuck by him, but that's still not unconditional love. That's probably just obligation and responsibility, or residual love at best. The chick loves the memory of the man, not an inert organism who can't even converse with her. Unconditional love would be falling in love with a vegetable, which would immediately suggest to me that the chick is in need of help.Thirdly, the single most tangible characteristic that distinguishes a romantic relationship from a platonic one is - let's face it - sex. So what happens to a romantic relationship if one party no longer desires the other? It becomes a non-romantic relationship. It may not be exactly platonic, but it's definitely not romantic. So why "shouldn't" they both go looking for partners who are more ideal?L goes on to mention that one of her male friends said that looks are to men what money is to women. In other words, women go for men with money in much the same way that men go for women with looks, and therefore, women are just as superficial as men. This is pretty much true, especially in Singapore. L, after mentioning that her friend said that, then goes on and on about how women are less superficial than men because they are more forgiving than men where looks are concerned. This made me wonder if L did not understand her male friend or if she was just stupid. Hello? Shouldn't she be arguing that women do not go for money to make her point that women aren't superficial instead of arguing that women do not go for looks, which we've pretty much established?Finally, L says that she has dated men of all shapes and sizes and that she knows of many other women who would do the same, and cites this as evidence of the generosity of women. I could make the same point for men by saying that I would go for broke, dumb hot chicks and that I know of many men who have done the same and proceed to lament the fact that women don't love us as we are because they always want us to be intelligent and at least financially stable. However, since I'm not a journalist in Singapore's leading newspaper, I shall not use such an "intelligent" argument. I shall instead make the point that you can't expect others to have low expectations just because you do. Otherwise, you're going to be one sorely disappointed motherfucker.In conclusion, fat is not only a valid reason for breaking up, it is as good (or as "bad") as any other reason for doing so.P.S. There are of course exceptions to the rules. My girlfriend, for example, is definitely not with me for the money. That should be rather obvious because I have none. Entrails? My friend sent me this clip of some random carnage. Erm, thanks I guess. Edison Chen is a dick I suppose everyone has heard about the sex scandal and his subsequent statement. I guess we now know what's behind that pretty face of his. Absolutely nothing.I mean, seriously, I don't care if he screws all the chicks in the industry, but why the fuck did he have to document the process? Admittedly, the chicks had to allow him to do it, so that's not all his fault. But why the hell did he have to keep them in his computer and then send it for repairs? Jeez. And what the fuck were those chicks smoking? Remember, if you have daughters, give them this simple advice.1) Don't fuck around.2) If you must fuck around, don't take pictures or videos of it.And what's with asking people to delete the pictures if they have them? That's just hypocrisy, isn't it? I mean, if he's the sort of person who takes amateur pr0n pictures or videos of chicks who liked him enough to fuck him, he's probably the sort of person who'd have been the first to look for downloads of such pictures upon hearing the news that they're available.Furthermore, I doubt that statement would have one iota of effect on the situation. The people who aren't the sort to download such pictures wouldn't have done so anyway. The people who have downloaded the pictures but are basically decent people will probably keep them but not pass them on. The rest of the people who aren't so decent aren't the sort to heed his moralistic pleas in the first place. The people who haven't downloaded the pictures but want to download them can find them easily enough with a few Google searches. One of the gossip sites hosting the pictures (based in the US, incidentally) taunted Edison after his statement was released. And I do admire one of the celebrities involved, so no, I shall not exacerbate the problem by posting the link to that site.And that is the thing about the Internet Age. You cannot scare people or even prosecute them for hosting content disadvantageous to yourself, because even if you have legal grounds in your country, your legal system has no jurisdiction in other countries. This is generally a good thing, because god forbid that there should be an international body with enough power to prosecute across borders, since absolute power corrupts absolutely, (haha, the irony) but in this case...About all that one can do these days to ensure that no bad publicity falls upon oneself is to not do anything that would give grounds for bad publicity. That is unless, of course, one owns all the ISPs. Ah well, poor Cecilia. Congratulations, Edison, you dick, you've most likely destroyed the careers of all those chicks you've boned. RIP Heath Ledger Sad. I really liked him in 10 Things I Hate About You, my favourite teen movie of all time. And I heard his poor family still has to deal with fucking idiots picketing his funeral. They are the ones who should be dead. Messed up world. Cloverfield is a shit movie Yes, you heard me. In spite of the fact that the local rag's movie critic hack (you know, the one who writes cringe-inducing puns) gave it a rating of 4 stars out of 5 and in spite of the megabucks that were poured into the production, that movie sucked ass. Why? I could write about it, but here's some evidence. Yes, someone actually took the trouble to post an ad on a classifieds site to tell everyone how shit the movie was. Someone not on a payroll, who has nothing to gain, watched the movie and felt outraged enough by it to take out an ad telling everyone else not to watch it.That's one of the funniest things I've ever seen. Ascii Animation This is just too totally fucking cool for words. Why? Look closely. It's not an animated gif. It's Javascript and CSS.http://procool.ru/interesting/funny_kitten.htm List for stupid people. Someone sent me a list of naive, feel-good crap and this was my reply. The stuff in square braces was written by me.This should probably be taped to your bathroom mirror where one could read it every day. You may not realize it, but it's 100% true.[no, it's not] 1. There are at least two people in this world that you would die for. [not true, but there are some i would kill for]2. At least 15 people in this world love you in some way. [i can't see why. i hate them all.]3. The only reason anyone would ever hate you is because they want to be just like you.[that's bullshit designed to make people like steven lim feel better. sometimes, people hate you just because you're a jackass.] 4. A smile from you can bring happiness to anyone, even if they don't like you.[nope. the only expression i want to see on the faces of those i dislike is utter, hopeless, abject misery.] 5. Every night, SOMEONE thinks about you before they go to sleep.[that's kind of creepy. unless she's hot, in which case it's kind of a turn on - in a creepy way.] 6. You mean the world to someone. [the more fool him/her]7. You are special and unique. [...just like everybody else] 8. Someone that you don't even know exists loves you. [like... God? or a stalker?]9. When you make the biggest mistake ever, something good comes from it. [yes, for other people.]10. When you think the world has turned its back on you take another look.[*looks* yep, the bastard still has its back turned] 11. Always remember the compliments you received. Forget about the rude remarks.[because they want to be just like me, eh? time to wake up and smell the funk of reality, buddy] So...........If you are a loving friend, send this to everyone, including the one that sent it to you. If you get it back, then they really do love you. And always remember....when life hands you Lemons, ask for tequila and salt and call me over! Good friends are like stars you don't always see them, But you know they are always there. Truth is what you make of it I read this post on Dr. Fletcher's blog and snorted in a politically apathetic way. Then, since I was blog-surfing anyway (for the first time in weeks), I surfed on to Agagooga and saw this post. For those of you too lazy to click on the links, here's the gist of it.The post on Dr. Fletcher's blog was a reproduction of a letter to a leading newspaper in Singapore that seemed to be expressing the author's approval of a pay increment for civil servants. The post on Agagooga was a reproduction of said author's comment on a blog post clarifying that his letter to the newspaper was meant to be satirical and that the paper had actually edited his letter to make it seem as if he approved of the pay increment.As I have stated time and again, I suffer from acute political apathy, so my motive, such as it is, for writing this post is solely for the lulz. Far be it from me to suggest that either party is lying through their teeth, but one of them (assuming of course that the author of the letter did actually post the clarifying comment) obviously is. I leave it to you, dear reader, to draw your own conclusions about the Truth, if such a spectacular animal ever existed.

sgBlogs

Direct Link