Router Replaces Firewall
I’ve been behind a router for 4 months, and have been using Norton Firewall and Antivirus for 2 years. Since my last re-install of Windows XP, I haven’t bothered to install a dedicated firewall or antivirus. Initially, it was due to my lack of patience for Windows to start up. Now it is because I know my router is a very effective firewall.
The mechanism of this is attributed to how a router works. A router returns a request back to your computer after you’ve connected to a server, if and only if that request is made by the computer (the main idea is to route different requests to different computers connected to the router). Therefore, all unrequested attempts (hackers) will not be forwarded to the computer at all. While it is potentially harmful not to have an anti-virus since viruses can be attached to HTTP requests and thus forwarded to the computer, anonymous attempts and connections are almost guaranteed to be blocked.
I’ve been safe and sound since March 9. I’m curious to how long I can go before I disprove my theory.
A Few Search Engine Trophies
This is a summary of the search engine keywords that I noticed in the stats of my site. A few of these are quite surprising.
Google: Live Messenger Invite — First page.
Google: Adblock for Opera — First page.
Google: Site Structure — First page.
Google: osCommerce Sucks — First result.
Google: MSN 7 Sucks — First page.
Google: Adobe Sucks — First page.
Every Product Needs Screenshots
I recently went through this list of replacements for Windows shells and explorer, looking through each product page trying to find an attractive shell. Since there were a lot of these, I opened them all in tabs and went through each one quickly. I quickly came to the realization that what I was looking for was screenshots, nothing else. If the product page did not have screenshots of the shell, I closed it.
Then I realized that not only graphical and theme programs need screenshots, but every product needs screenshots. Essentially, the graphical interface is what the user will be looking at and interacting with. The point is not to necessarily have an attractive interface, but if there are no screenshots for a product at all, the user fails to establish an initial impression of the product, and thus moves on.
I know I’ve missed out on a lot of good products that do not include screenshots on their product pages (e.g. 7-Zip, Winamp, Thunderbird, etc) until recently. It’s all about marketing, and if there is no marketing at all, then the user will never see it.
class CanadianFamilyDoctor extends Doctor
I am not fond Canadian family doctors at all. Because Canada wants to provide public health care for everyone and private health care for the (slightly) rich, the entire system is screwed up. As a result, regular family doctors perform very poorly as professionals. Here is a generic class of a doctor and a Canadian family doctor, in pseudo OOP language.
Not all doctors are like this, but some unfortunate ones I’ve met are.
Doctor
class Doctor {
var degreeOfEducation;
function Doctor (determination) {
if(determination == "strong") {
degreeOfEducation = 1;
startBusiness();
} else {
degreeOfEducation = 0;
exit();
}
}
private function startBusiness () {}
}
So far so good.
Canadian Family Doctor
class CanadianFamilyDoctor extends Doctor {
var fund;
var salary;
function CanadianFamilyDoctor () {
super();
degreeOfEducation = 0;
}
function startBusiness () {
fund = Government.borrowMoney(INFINITY);
City.openBusiness(this, fund);
while (1) {
salary = Government.borrowMoney(9999999);
Sleep("one year");
}
}
function bookAppointment (dayOfWeek) {
if ((dayOfWeek >= 1) && (dayOfWeek <= 7)) {
if (isSummer) {
this.onVacation();
} else {
this.currentlyFull();
}
return 0;
} else if (dayOfWeek == null) {
return (date() + rand() * 30 + 5);
}
}
function appointment (symptom) (
if ((symptom == "running nose")) {
informPatient("You have a cold, here.");
chickenScratch("Tylenol");
} else {
informPatient("Here.");
chickenScratch("L$d7@doFD#");
}
if (symptom == complaint || symptom == nonstop) {
referToSpecialist();
}
collectMoney();
}
function referToSpecialist () (
printf("Phone number: %s-%s",
floor(rand()*999),
floor(rand()*9999));
}
}
And if you noticed, srand() is nowhere found in the code.
Discovering FeedBurner
I’ve known FeedBurner for a long time, but never bothered looking into it. I knew about its advantages:
-
Just one URL for all RSS, RSS2, Atom feeds. It’s automatically parsed as the aggregator requests it.
-
Statistics of feeds — number of subscribers and click through rate. I love stats.
Despite these features, I still liked hosting the feed on my own server, until today. After seeing that the feed can be automatically redirected to FeedBurner with a WordPress plugin, I tried it. I can’t believe how simple the process is.
- Sign up for FeedBurner
- Upload and activate the plugin.
That was it. Now no one has to write any PHP or HTML code, or change the feed URL’s, as the RSS feed for this site is automatically redirected to FeedBurner. The best part is the feed url (http://mtsix.com/feed/) will stay as long as this site exists, and no subscriber has to alter a thing.
Officially Web 2.0 Contact Form
I’ve always wanted to do this and here it is — The Web 2.0 Contact Form.
Now you can send any worries, suggestions, or flying monkeys to my email inbox. The best part is, it automatically sends the email when you click submit, without refreshing the page! Not that I encourage random “asdfasdf” emails, but feel free to try it out. I’ll probably be releasing the code for it soon, which is surprisingly simple.
Blade vs Spiderman
My friend and I were pondering over this for about half a day. Who do you think would win in a one-on-one fight with Blade and Spiderman?

Blade
- has all the strengths of vampires: physical strengths, regeneration (immune to bullets), ability to suck blood, etc.
- has all the strengths of humans: walk in daylight, immune to silver and garlic, etc.
- looks cool with shades
-
has awesome gadgets: the sword, cool guns, knives and stakes, and also the spinner thing:

- has Whistler (although he died in Blade Trinity, which sucked so much I will never mention it again unless my intention is to diss it)
- has a cool name
Spiderman
- has a dorky looking suit
- is strong
- has the sixth sense
- has great agility and flexibility
- spins webs
- has a great reputation
- is underfunded
Take your pick!
Kevin Spacey is My Hero
I had the pleasure to watch Se7en (1995) last weekend. I cannot believe I missed out on this amazing movie 11 years ago. Kevin Spacey’s acting is simply stunning, like that in The Usual Suspects. It wasn’t until yesterday that I realized he also played the teacher in Pay It Forward.
Kevin Spacey plays those highly intelligent, dark, and narcissistic defects. The reason I say defects is because his role always has some incredible yet out-of-the-ordinary characteristics.
This guy is going to play Lex Luthor in Superman Returns — one movie I will not miss.
Having Trouble with Feeds
My feeds (RSS2, RSS, Atom) do not validate because there are two extra blank lines on top of the feed content, which no feed reader accepts as a valid feed.
Can you help me out? The feed is generated by WordPress 2.0.1. I disabled all plugins and it’s still the same. I even tried to buffer the feed output with PHP, and getting rid of the two lines with substr, but it only got rid of the <?.
There must be some code that’s generating blank lines — What could be the problem?
Update! I Fixed it. It turns out that it was Mint’s auto.php that was creating the extra lines. It took me 2 WordPress upgrades, 2 complete database comparisons, and a fresh install one WordPress to find out what’s really wrong. And it was that fresh install that I realized it was Mint that had to be it.
So I guess since I started using the Mint’s auto feature (3-4 months ago?), the feed stopped working, for some feed readers anyway. But now it is, finally!
Azureus Downloads Faster Than uTorrent
uTorrent is a very light BitTorrent program compared to Azureus. It loads fast, responds to user interaction quickly, and has a pretty attractive UI. But it is undeniably slow when it comes to downloading.
When downloading the same torrent on the same two computers connected to the same Internet connection, Azureus races to connect to as many peers as possible, while uTorrent seems to be in a rehab of some kind. I’ve tested this with 5 torrents just to make sure. The result — Azureus is definitely faster.
uTorrent doesn’t seem to be very aggressive when it connects to peers. Only a few connections are made and those peers often put uTorrent on the bottom of their priority list.
In the programming perspective, uTorrent does not connect to as many peers as possible. While this may or may not be considered a bug, uTorrent seems to only connect to a fraction of the total number of peers, set by an algorithm related to share ratio. There is some kind of faulty logic that prevents uTorrent from connecting to many peers, which reinforces the algorithm.
After I finish downloading the couple of torrents in uTorrent, I’m switching to Azureus completely.