Archive for the ‘News’ Category

Review of Asus Eee PC 901

Friday, September 5th, 2008

I finally took the plunge and purchased a Japanese version of the Asus Eee PC 901. it has been a full month and In short, I must say that I really am very satisfied with my purchase. At 59,800 yen (approximately $570), I can’t exactly say that the 901 is inexpensive, but it has been worth its price. It should also be noted that the prices for the Eee PC 4G-X (the 700 series model in Japan) has come down in price, going under the 40,000 yen mark.


The system is fairly powerful for its size. It is powered by an Intel Atom N270 processor running at 1.6 GHz, 1 GB of DDR2 SDRAM, and two solid-state drives (SSD), one with a capacity of 4GB which has the Windows XP operating system installed and the second 8 GB SSD which can be used to store data and applications. The screen is a 8.9 inch TFT LCD with a native resolution of 1024 x 600. According to the specs, the system weighs in at about 1.1 kg or about 2.4 pounds. The weight and size of the 901 truly makes it a portable system.

Operating System and Storage

The Eee PC 901-X model that I purchased came with the Japanese version of the Microsoft Windows XP operating system with Service Pack 3 installed. In the factory installed condition, the primary SSD had 1.4 GB of free space, while the secondary had about 7 GB free.  It should be noted that the system comes in a fairly “stripped down” configuration compared to laptops and desktops that are available from other manufacturers, so it is somewhat difficult to try to increase available disk space by uninstalling unnecessary applications. Disk swapping has been disabled by default for the system, so there is no way to increase available disk space by removing the page file. (This should not be a big problem as the system comes with 1 GB of RAM; so far I have had enough free memory to run all the programs that I usually run — No problems running Eclipse Ganymede which likes to gobble up 200 MB of memory.)


At first the 8.9 inch screen seemed fairly small, but after using it for a few hours, it has been more than adequate. In fact, because the screen is small but has a high resolution, the text appears very crisp and clear, making it very easy to read. The resolution can be adjusted to 800 x 600, 1024 x 600, 1024 x 768 with scrolling and 1024 x 768 with vertical compression of the screen. I have been using the native resolution of 1024 x 600, and the horizontal resolution is more than good enough to view most websites and for editing documents. Even when running Eclipse, there is enough screen real estate to comfortably write programs with some minor modifications to the layout to allow maximum display of the code editing area.

Battery Life / Power

In terms of battery life, I must say that it does run for a good length of time. The Eee PC 901 comes with a power management software called the “Super Hybrid Engine” which allows the user to pick a power mode from one of four choices: Super Performance Mode, High Performance Mode, Power Saving Mode and Auto Mode. When the setting is on the Auto Mode, the power management software will choose either to use the High Performance Mode when the AC adapter is connected or the Power Saving Mode when running off of battery power.

The system is advertised to run for over 8 hours on one charge, it should be noted that under real conditions, the numbers will probably a bit lower. For example, when using the system on battery power with Wi-Fi or Bluetooth wireless turned off, and using the Power Saving Mode, I could run the system for a few hours before the batteries would drop too low to make the system go automatically into standby. When at full charge, Windows generally reports that the run time of  the system is about 7 hours, although I haven’t used the system for that long in one sitting to be able to tell if that estimate is accurate or not.

The only downside is that charging the battery seems to take a very long time. I remember the first time I charged the system up, it took at least 2 to 3 hours before the battery was fully charged. Also, the power adaptor becomes very, very hot from use. This is especially true while the battery is charging. It becomes less hot when the battery is not charging and the system is running off of AC power.

Keyboard and Mice

The keyboard can be a little bit difficult to get used to. However, I did get used to using it after about a day of use. The bigger problem is with the touchpad. As the touchpad is located directly in front of the keyboard, and also lacks a recession into the case, it is very easy to mistakenly tap it while typing on the keyboard. This of course leads to the annoying effect of suddenly having the cursor jump to a new location and you’ll end up typing something where you don’t want to, which already has happened a few times while typing up this post. However, overcoming this problem isn’t too difficult, as all it takes is to keep your hand well clear of the touchpad.

The Japanese model of the Eee PC 901 is bundled with an optical mouse, probably to compensate for the touchpad. I haven’t used the optical mouse much, but it seems to be good enough considering it’s a goodie that came with the computer. I must say that it may be a little small for some, but it probably is fitting when comparing it with the size of the system.

It’s difficult to insert and remove cards into the SDHC slot. The good part is that the SD card is flush to the case, however, that flushness makes it difficult to insert the card into the slot and even more difficult to remove the card.


In terms of performance, it has been above my expectations. (Then again, I didn’t expect a whole lot to begin with.) From the time the system is turned on until the Windows desktop appearing is less than 30 seconds. In terms of the processor speed, it definitely is not blazing fast, but it does seem powerful enough to browser the web, watch some video clips, and do light software development work.

However, there is one thing that will bring the system to its knees: heavy disk access. This is probably due to the very slow write speeds of the solid-state drive in the Eee PC. As with other flash memory based storage such as USB flash drives, read speeds are much faster than write speeds. From sources on the web, the primary 4 GB SSD is a single-layer cell (SLC) SSD which is high performance, allowing for fast read/write speeds, while the secondary 8 GB SSD is a multi-layer cell SSD which is slower than SLC SSDs. This means that read/write access to the D: makes it a little bit slower than accessing the C:, resulting in slow downs.

This has particularly been a problem when using Firefox, where the browser will come to a halt and the disk access indicator will be constantly on. This may in fact be an issue with Firefox, as it has been noted that since Firefox 3, the newly introduced database system has been accessing the hard disk more intensively than the previous methods.


Overall, I have been quite satisfied with my Eee PC 901. Asus has more or less introduced the “netbook” category, as it is called now, and they’re second generation model seems to be pretty good. With new netbooks being introduced from Acer, MSI, Dell and others, this category of PCs are going to become more interesting in the times to come.

Cannons 2000 Revisited

Saturday, May 10th, 2008

Cannons 2000 imageAs a Saturday morning project, I took the first serious look at Coobird’s Cannons 2000 for the first time since 2003. The program is listed as one of the programs I’ve worked on in the past in the Past Programs page at

Cannons 2000 was originally written back in 2000, as the title may suggest (and also is a testament to how “2000” was really a suggestive of how futuristic something is, at least back in the 20th century.) and it was written in QuickBASIC 4.5.

This morning and the early afternoon (a total of about 3 hours) was a session in cleaning up the source code a little bit. Looking back at work written back several years ago, it was quite embarrassing. It was plagued with:

  1. Unindented code — The entire codebase (only a thousand lines or so?) was unindented and very difficult to read.
  2. Lots of GOTOs and GOSUBs — although it appears that I was using subroutines and functions for certain aspects, it didn’t really look like I really knew what the heck I was doing. Although some parts used functions and their returns in meaningful ways and subroutines were written where they were called without using GOSUBs, some parts were littered with GOTOs and GOSUBs. Spaghetti code at its best.
  3. Poorly names variables (and functions and subroutines) — Variables like py%, setd, inv1, inv2 were all over the place. The functions and subroutines were just as bad with very descriptive names such as boom, boom2, splode, etc.
  4. No understanding of multi-dimensional arrays — There were some arrays being used, but when they required have two dimensions (e.g. a situation where each player requiring their own array for their inventory), they were using the variables inv1 and inv2, where it would have been best using a two-dimensional array.
  5. GOTOs being used for loops — Loops where keyboard input from the user is being polled were in GOTO loops, where a DO loop would suffice. Although there were some cases where I did notice how BASIC has its deficiencies. If BASIC had a facility to skip one iteration of a FOR loop, like the continue keyword in Java, it wouldn’t require a jump to a label next to the NEXT statement of a FOR loop.
  6. Copy-and-paste redundancy — Sections of code were copy-and-pasted in different parts of the program. One example was a section where two players buys weapons to use in the game. Each player had their own menu display along with keyboard input code. One of them was removed and one was kept with a FOR loop around it to run through each player. And subroutines with essentially the same content, but different magic numbers…

Although not all of the problems has been addressed through the code clean up, such as poor variable names and some of the redundant code (especially the subroutines which were part of what I would describe as “spaghetti logic” due to the logic being designed like spaghetti), the code was indented and the subroutine and function names have been cleaned up. However, the GOTO and GOSUB spaghetti remains, as it would require quite a bit of effort (reorganizing the code) to clean up.

Overall, taking a look at work from the past made myself realize how awful I was writing code back a several years ago. But it’s also been a good refresher on BASIC and a good reflection on how I have been able to write better code today. (But then again, when I look at code from a year ago, there are quite a few places where I’d go “why the heck did I do that?” so programming definitely is a subject where growth happens everyday.)

Coobird’s Cannons 2000 is available for download for free, released under the terms of the open source, Modified BSD license. It should be noted that it is not a robust program and reflects how a beginner would write poor code, so it should not be used as a tool to learn programming.

Welcome to the devblog

Tuesday, April 22nd, 2008

Welcome to Coobird’s devblog. This blog will be focusing on recent events during software development. (Hence the name “devblog”)