Progress report for week 38

Another week with bad news: My laptop broke down this weekend and the warranty has expired. It’s a Dell XPS/Inspiron M170 with a juicy nVidia GeForce Go 7800 GTX card. Let me give you a few words of advice.

You know you have a broken video card when:

  1. A short horizontal line appears on the screen while you are happily coding the n-queens transform for DECS.
  2. You ignore it.
  3. Another short horizontal line appears.
  4. You continue to ignore it.
  5. The two horizontal lines start some kind of mating ritual and they start reproducing all over the screen.
  6. You “ignore” the defects by slamming your fists into the keyboard.
  7. The defects are still present after having uninstalled the unofficial graphics card driver (which you had to install to keep up with the latest version from nVidia, because Dell will at best release new versions of their GeForce Go card drivers once a year) and installed the official one.
  8. You boot up Ubuntu Linux hoping to be able to blame Windows XP for the screen corruption, only to find out that a bit of Beryl action reproduces the problem there as well.
  9. You figure out that Ubuntu is better than Windows because in Ubuntu the problem only slows the OS down instead of both slowing it down, crashing the display drivers and continuously flashing the screen on and off, all at the same time.
  10. The defects are still present after you have rebooted more than 24 times in an effort to flush them out of the system.
  11. Half the time you reboot the screen turns black, but you can see that the LCD back light is on and the hard disk activity light is flashing.
  12. You hook up an external monitor, but even that doesn’t exorcise the evil horizontal line spirits.
  13. The external monitor also experiences the black screen on reboot sometimes.
  14. You open the cover above the keyboard, pull out the monitor cable and reattach it just because the Dell support personnel said so.
  15. You run the Dell Hardware Diagnostics program, choose the video corruption symptom and get a bunch of messages like this: “Error Code 5300:0119 Detected a failure while writing and reading video memory. Address SOMEHEXh, expected to read 0h, but read FFFFFFFFh instead.”.
  16. You run the Dell Pre-boot System Assessment program and the color bars are full of defects.
  17. After having told the Pre-boot System Assessment program that the color bars had defects, you are thrown into an infinite loop of full screen frenzy of white, black, red, green, blue and a beeping system speaker without ANY defects showing up whatsoever.

If most of the above apply to you, you have the same laptop as me and your warranty has expired then you should contact the English XPS Premium Technical Support line and have a chat with on of their people from India. They are nice and will get a Dell sales rep to contact you so that you can get your warranty extended and a technician to replace the faulty video card. Unfortunately every third word they say will be unintelligible and every fourth word you say to them will be misunderstood.

My laptop is unfortunately the only computer in the house which has all the applications I need to work on DECS. I’ve hijacked one of the desktop machines at home and started installing the applications I need. So far MiKTeX, TeXnicCenter and TortoiseSVN is ready, but the whole Eclipse C/C++ development environment will take me a bit more time.

Now to the good news: I’ve specified the file format I intend to use for storage and transfer of the DLX matrices. I’ve not taken a stand in the byte order war yet, as I’m uncertain which will be best for the Grid middleware I’m going to use. I’ll cross that bridge when it comes. Currently the memory contents is written to the file without any modification, which works fine for the time being. I remember seeing the byte order debate for the network protocol in the OpenTTD project a while back. Maybe I can take a peek at how they did it since their code is GPL and all?

In other news: I also started on the n-queens forward transform before disaster struck. It requires the generalized form of the DLX algorithm with primary and secondary columns. The modifications to generalize my code to support secondary columns doesn’t appear to be overly dramatic. Just a touch there, a touch there and a computer free of hardware defects would just about do it. I’ve still got some catching up to do according to the project plan, but I’ll make it.

NOTE: This post has been imported from my old it’s learning ePortfolio DECS blog.



I’ve been trying to setup AWStats in Windows, but it was a real pain in the butt. A lot of packages had to be fetched manually to get the functionality I wanted. I also needed a way to automate the updating of the statistics website by periodically downloading an Apache log file from an FTP server, append it to the main log and run the AWStats update procedure. And let’s not forget the need to publish the webpages created by AWStats. Ironically enough the easiest way I know how to do this is by bringing Linux to the Windows platform by installing Cygwin (a Linux emulation layer).

At this point I was well aware of the amount of unnecessary complexity this system would have. It would be a pain to ensure it’s long term reliability, and a house of cards like this would likely crumble under the lack of maintainability. If somebody had to recreate the entire setup there would be way too many steps where things could go wrong.

My final solution was to take a few steps back and install VMWare Server and create a new virtual machine with Ubuntu Server 7.04 with the LAMP (Linux, Apache, MySQL, PHP) option. After the Ubuntu Server installation was complete I ran “apt-get update”, “apt-get install awstats”, “apt-get install libnet-ip-perl” and edited the awstats.conf file. Then I wrote a simple cron script where wget will fetch the log from the remote server and the AWStats web pages will be updated automatically.

With Ubuntu Server and VMWare already downloaded it took me about one hour to install and configure the whole thing. If the entire system needs to be moved to another machine this can easily be accomplished. Simply install VMWare Player on the other machine and move the virtual machine folder and you’re done. It’s fast and simple, and with the successful Debian package management system used by Ubuntu we have built one sexy package.

NOTE: This post has been imported from my old it’s learning ePortfolio blog.