Monday, 29 October 2007

Western Digital "click of death": nVidia's fault?!

After our nVidia chipset graphics card exploded a few weeks ago, we just suffered three live hard-drive failures. One was an old laptop drive and the other two were both 250Gb Western Digital Caviars in two separate machines (one Linux and one Windows) both hosted by nVidia nForce chipsets on Asus A8N-SLI S939 Premium motherboards.

Hard drive problems are always terrifying. In this case, we had several theories about what might have gone wrong. The symptoms in both cases were the drives starting to click. This problem is lovingly referred to as the "click of death", after the famous ZIP disk problem. The death of the HD in the Windows box gave us a heads-up about the imminent demise of the identical HD in the Linux box so we at least managed to get a totally fresh backup from that box. Of course, the major pain is actually reinstalling Windows and all of your software rather than getting the data copied off a backup (even if you do lose a couple of days work!). As my glass is half full, I see blitzing the Windows XP Professional install as an opportunity to address its utterly shameful reliability, which had gradually deteriorated over the period of 14 months to an average unladen up-time of only 3 hours compared to a laden up-time of 9 months for our identical Linux box!

Researching the hard-drive problem turned up several interesting leads. Like all HD manufacturers, Western Digital have a brand tarred by tales of doom. Interestingly, the IBM Deskstar series (since taken over by Hitachi) acquired such a bad reputation that it is referred to as the "Deathstar" series. In fact, we have reverted to using two old Deskstar drives here and both have worked much more reliably than the Western Digital, which makes me lean towards buying a Deskstar from Hitachi as a replacement and lean away from believing the negative reviews about them. Like any highly-competitive market, search results are inundated with suspicious reviews by "Bob" who gives one manufacturer five stars and all others only one.

Perhaps the most interesting lead turned up by our research is the fact that nVidia's SATA support for their nForce chipsets has remained broken since the nForce 3, rendering drives inoperable and even silently corrupting data, both under Linux and under Windows and on a variety of hard-drives from (at least) Western Digital, Maxtor and Hitachi. Coupled with the fact that their nForce chipset is temperature intolerant and their GeForce graphics chipset is cooking Asus' fanless nForce chipset on our motherboards, you've got yourself cause for concern. Even if we had opted for the higher-specification "Deluxe" model than includes a chipset fan, apparently these are notoriously unreliable.

So, after the failure of two identical Western Digital hard-drives in different machines, we find ourselves more disgruntled with nVidia than anyone else!

Saturday, 13 October 2007

First Impressions of Eclipse

Our move into the Scala market must begin with a survey of the existing tools used by Java programmers that Scala programmers can exploit. Eclipse is unquestionably one of the most highly ranked tools among Java programmers, so our journey starts there. This is a beast of an integrated development environment (IDE) that IBM allegedly spent $40M creating.

Under a Unix environment with apt (such as Debian, Ubuntu or Mac OS X), Eclipse and all of its dependencies may be installed from the command line with:

$ sudo apt-get install eclipse

However, the resulting install on our Debian Linux box was extremely unstable, with Eclipse often dying from null pointer exceptions. After much Googling, it transpires that the cause is that Eclipse is being executed in the default Java installation of this system which is GNU Java rather than Sun's JVM.

For Eclipse to run reliably, you must change the default Java to Sun's Java. The official solution is to run the following:

$ sudo update-alternatives --config java

and select Sun's Java. Now you have a working Eclipse installation under Unix.

We are also developing under Windows. On this platform, you download the Windows version of Eclipse, unpack the archive and run the eclipse.exe file that was inside it. There does not appear to be a Windows installer.

Eclipse has a 30 second startup time on these machines (dual core 2.2GHz 64-bit machines), after which you see an introductory page offering "Overview", "What's new", "Workbench", "Samples" and "Tutorials".

Installing Scala and its Eclipse plugin under Debian Linux is easy using apt and the software update feature of Eclipse. Under Windows, the software update feature fails due to dependencies.

As a brief test of Eclipse, we tried to write a few simple programs:

  1. Command-line "Hello World".
  2. GUI "Hello World".
  3. Minimal OpenGL program using JOGL.

The Java programming language is infamously verbose and it is interesting to note that the boiler-plate code required by the Java language is augmented by a lot of "boiler plate" mouse clicking with Eclipse.

Getting a command-line "Hello World" program working is quite easy, although much more laborious than using the command line. Finding a GUI "Hello World" program is harder that expected. The HelloWorldSWT program given in Eclipse's own tutorials requires libraries to be manually downloaded and installed. In fact, Googling turned up several Swing-based "Hello World" programs and, although many of them are no longer valid due to library and namespace changes, the following program currently works:

import javax.swing.JFrame;
import javax.swing.JLabel;

public class HelloWorld {
* @param args
public static void main(String[] args) {
JFrame frame = new JFrame("HelloWorldSwing");
final JLabel label = new JLabel("Hello World");


At the time of writing, we have been unable to build any OpenGL programs in Eclipse. So the first impressions of Eclipse are that it is cumbersome to install and use, both under Linux and under Windows. This is a surprising result given that an IDE is intended to simplify development but shall focus on using command-line tools in future simply because they are at least as easy to use.

Monday, 1 October 2007

Exploding Gainward graphics cards

Despite the excellent work by XenSource, here at Flying Frog Consultancy we still perceive virtualization as a technology for girly men. As a consequence, we have two main development machines with identical hardware, one running Linux and the other running Windows XP Pro with a button that switches a monitor between the two. This may seem archaic but it actually turned out to be quite useful when the Gainward 7900GT 512Mb PCI-E graphics card in the Windows machine exploded spectacularly on Saturday. Thankfully the rest of the machine is fine and we were able to test it by swapping the graphics card with one from the sister Linux box. When we bought them, those were cheap 512Mb nVidia cards at £280 from Dabs. We only use nVidia here because of their solid reputation for Linux drivers.

Unfortunately for us, the exploded card is 1 month out of warranty. Looking for a replacement, we were pleased to find a BFG 7900GT 256Mb OC card on the shelf in PC World for only £110. Timing was critical in this case because we just landed a source deal for our .NET FFT code and had to get the latest sources tidied up and off that machine.

We were tempted to opt for an nVidia 8 series card but we're not going to develop any DirectX 10 software this year and the nVidia 9 series are apparently scheduled for this Christmas, which will knock down the price of the 8 series. Next year, we'll be examining several different avenues of research including the use of F# in games programming for the XBox using XNA and, consequently, we may well invest in a top-notch 9 series.

Naturally, it was essential that the new graphics card be tested using tools such as Quake 4. Sure enough, the new BFG card kicks ass with high quality 1900x1200 running at 80fps. On a more serious note, the FSAA capabilities of this card are already enough to provide high-fidelity animations from our Smoke Vector Graphics and F# for Visualization libraries.

Looking at the two cards, the new BFG is clearly better built than the old Gainward. In particular, the cooling system on the gainward was a rather inefficient centripetal fan with a heatsink that only had a copper base. In contrast, the BFG has a slimmer cooling unit with no gaps around the fan and a solid copper heatsink. This is reflected in the GPU temperature readings, which showed the Gainward card equilibrating at 80C and the BFG card settling at under 50C.

I think we'll go straight for the BFG next time...

Review: Hewlett Packard Color LaserJet 3800dn

Following our damning review of the Lexmark C530dn duplex color laser printer, we're going back to our original view that Hewlett Packard offer far and away the best printers in this range. PC World kindly gave us a refund on our awful Lexmark machine because it was blatantly not fit for purpose of sale (it failed to reach most of the specifications claimed by Lexmark). We then chose to invest in an HP Color LaserJet 3800dn instead.

Now that we've printed 25,000 pages with it, we can review its performance: this HP printer is simply awesome!

In contrast with the Lexmark, the HP is smaller, quieter, produces higher-quality prints, is more reliable and running costs are vastly lower. That last point has become particularly important for us thanks to record sales of the OCaml for Scientists book.

Lexmark claimed their black toner cartridges did 4,000 pages when, in fact, they only did 3,000 pages. As it happens, Hewlett Packard claim that their cartridges all do 6,000 pages when, in fact, their color cartridges are doing 13,000 pages! By our reckoning, a copy of OCaml for Scientists was costing around £30 to print with the Lexmark but only £8.52 with the HP.

Better yet, the Lexmark only had rudimentary support for Linux whereas the HP Color LaserJet works flawlessly from both Linux and Windows XP via its own LAN connection. In fact, the printer was easier to setup in Linux than in Windows XP.

So if you're looking for a good mid-range color laser printer with low running costs, look no further than the Hewett Packard Color LaserJet 3800 series!