Archive for March, 2008

Status update

Saturday, March 1st, 2008

It’s been a while between blog posts partly because I’ve been busy; partly because I have been lazy.

I will discuses 3 topics here so if one doesn’t interest you don’t read it.

Firstly I want to talk about my new laptop and Windows Vista.
My old Compaq P3 laptop died a few months back (closer to a year back) I was surprised how much mistreatment it actually survived through but it eventually chocked with my wrong doing so I its death is on my shoulders.
Ever after that tragic day I have been looking for a new one, even my pc was getting close to being due for an upgrade with slower compile times, Flash videos using nearly 100% CPU and barely only being able to play 4 year old games at low frames.

So I bought a Asus M51SN, the version I purchased has a Core Duo 2.5Ghz CPU 6MB cache(L2), 2 GB ram, 200GB HDD, 512MB 9500M GS GFX (Geforce 9), TV Tuner and Vista Ultimate. It also came with a free wireless router.
The hardware is very capable and the CPU and GFX architecture were only released last month.

Setting up my free Asus wireless router was kind of tricky. It came with very basic lame instructions which required you to run a setup cd on Windows and press a button on the device to put it into a ‘find me setup’ mode. I can see why there is so many un-secured wireless networks when these things are designed to be easy to setup but this makes them defautly un-secure.

Using some assumptions and guessing I was able to setup the router the right way without having to use the crappy 2 step instructions in the manual. Knowing that routers by default have the class C IP address of 192.168.1.1 I was able to hit the router setup page from my browser. After a few attempts I was then able to guess the default administrator username and password (which was ‘admin’ and ‘admin’) and login to configure the wireless encryption password and some other junk. The default username and password wasn’t even documented in the manual.

I was having some initial problems accessing the rest of the network and the internet because the setup was….
MyWirelesssRouter—-MainRouter—-Internet/RestOfHomeNetwork

After trying allot of settings I realised its probably because MyWirelesssRouter and MainRouter probably have the same IP address. This was the case, upon changing MyWirelesssRouter’s IP from 192.168.1.1 everything worked. The thing I hate about networking compared to programming is that there is no debug mode. You usually have to use some kind of logic to work your problems out. Obviously things like ping, traceroute and nmap work in allot of situations but not all.

The most surprising thing about my laptop is I actually like Vista. This may be because I had such low expectations with everything I had heard. From a general users point of view I would say it’s better than XP! From an technical point of view I will tell you it’s memory foot print is allot larger and its install size is fucking huge. Vista Ultimate also comes with Windows media Center which I really like also.
Speaking of Media Center, At the moment I’m Writing this in Word 2007 (which at the moment my opinion is simply ‘its different’ ) while watching Gyroscope on JTV on ABC2. Which I can pause and rewind. Im also told ABC2 has Red Dwarf which I can’t wait to watch also.

The only 2 issues I have run across so far is there is no port of Nvidias Nview application for Vista which isn’t MS’s fault. The other main issue is there is a bug where my DVD drive will stop working some times. Once I reboot all is fine with it.

The main thing I don’t like about Vista is well… its Windows :p

Need antivirus, endless OS updates, proprietary, inferior kernel design and basically everything else detailed in the OS comparison section of Eric Raymond’s book ‘The Art of Unix programming’

Next Im going to talk about a bug that I came across on code I maintain but didn’t write.

The bug only ever happens on one day every 4 years. Yes that’s right it’s a leap year bug! The code was essentially doing age validation, it would take the current day, month and year then minus x amount of years from the current year. It would then check to see if your age was less than the max age limit (current date – x years).

Well you see the date on this particular day was the 29th of February 2008 (last Friday).
So the code was something like

DateTime.parse(29,02,2008 - x);

Where x is 2. The problem is 29th of February 2006 (2008-2) doesn’t exist! So when it goes to parse the date it throws an invalid date exception! Making problems even worse is this genius of a programmer put this code in a try catch block and would handle the exception of a invalid date with the error message along the lines off ‘you are too old’ which was also the error you got if in fact you were to old.

This is only one error which plagues the whole project. How could of this been easily avoided? Use the DateTime library to do the hard work, library writers are always nearly 1000 times smarter than you and their code has been tested that many times better also. A much more logical way to write this would have been

DateTime.parse(29,02, 2008).minusYears(2);

Lessons to learn: Do not use incorrect error messages and generic exceptions, use library’s when they are available and most importantly from my quotes page ’Always program as if the person who will be maintaining your program is a violent psychopath that knows where you live’

Finally, A quick review on games I’ve been playing.

Hitman Blood money PC, nice graphics and physic. Doesn’t really bring much new to the game play from the previous Hitman titles.

Pokemon Perl (DS), Dosnt offer much new game play from previous Pokemon games, graphics are quite bad for a DS game, allot of the sound is still taken from the original gameboy game, doesn’t make use of touch pad much. I look forward to playing it online though.

Final Fantasy 3 remake (DS), great game in all aspects. Starts of a little slow but gets allot better. Only downside is it lacks mini games which would have been made so totally awesome with the features of DS (duel screen, touch pad and microphone).