Thursday, December 27, 2007

Dell Laptop NVIDIA Driver

I bought a Dell laptop with an NVIDIA graphics card. The vido game Bioshock would crash on it so I tried to update the display driver. When I attempted to do so, I got this error message:

The NVIDIA Setup program could not locate any drivers that are compatible with your current hardware. Setup will now exit.

It turns out that NVIDIA supports installation for the 8800, but not the 8800M. If you dig around on the NVIDIA website, you can find this hint:

Dell requires that you download the driver for your GPU from their support site.

You can find more information at:

The GeForce M series and GeForce Go series notebook GPUs use drivers that have been customized by the notebook manufacturers to support hot key functions, power management functions, lid close and suspend/resume behavior. NVIDIA has worked with some notebook manufacturers to provide notebook-specific driver updates, however, most notebook driver updates must come from the notebook manufacturer. Additionally, the desktop GeForce graphics drivers will not install on Geforce M series and Quadro M series notebook GPU's.

Unfortunately the customized driver that Dell provides is the outdated version I needed to replace in order to get Bioshock working. I was stuck with a new laptop with a new video card that could not run the new video games.

After many hours of searching the Web, I finally found a solution at They provide a customized installation configuration file of a recent version of the NVIDIA display drivers for your laptop. Now I have had problems with the suspend/resume function since I installed the driver but at least I can play my new games now. Until Dell or NVIDIA start providing installation configuration files for the latest NVIDIA display drivers for the Dell laptop, LaptopVideo2Go might be your only solution.

Speaking of video games, I love the Orange Box.

Friday, November 30, 2007

Source Code Release

I finished my Open Source software project CroftSoft Infant. My collaborator was able to use the software successfully to collect research data.

She wanted a new software feature added for a new type of experiment. She recruited a programmer to add the feature but he had some problems checking out the latest version of my code from the source code repository using CVS. I then realized it had been four years since I exported my code to a zip file for easy download so I did that tonight. You can get it by downloading the latest file release of the CroftSoft Code Library.

Tuesday, October 30, 2007

Development PC Setup

Ever since I wrote my first computer program back in 1980, I have had to recreate and customize my software development environment to my liking on new computers at home, work, and school at least once a year. Tonight I uploaded my Development PC Setup checklist to speed me through this process of configuring a new Windows computer and installing my preferred free and Open Source software development tools. Please save a link to this webpage in your online bookmarks as I plan to update it each time I use it.

Sunday, September 30, 2007

Retirement Calculator

I updated and installed a Retirement Calculator servlet that I wrote back in 1999. The source code is available.

Friday, August 31, 2007

Switched to LGPLv3

The Free Software Foundation (FSF) recently published version 3 of the GNU Lesser General Public License (LGPLv3). This update to the popular non-viral Open Source license covers patent usage, implied but not explicit in previous versions. It also blocks "tivoization" which is described in the FSF release announcement.

Today I switched the Open Source license for the CroftSoft Code Library over to the LGPLv3 since I think preventing tivoization is a good idea. I can foresee that in the near future it will become more common to have code running in devices within or permanently attached to our bodies, especially as neuroprosthetics technology advances. Having the option to modify this code seems like it should be a basic right.

Saturday, July 28, 2007

CroftSoft Skipper

Today I published CroftSoft Skipper. Like the previously released CroftSoft Slideshow, CroftSoft Skipper will display a slideshow of the photos on your computer. The feature that makes CroftSoft Skipper smart is "skip weighting": when you skip a photo you do not like, that photo is less likely to be randomly selected for display in the future.

Thursday, June 28, 2007

Enumerated Accessors

As an update to the "Persistent Data" chapter in my book Advanced Java Game Programming, I have written a new tutorial, Enumerated Accessors. Data management and persistence are simplified by using new features that have been added to the Java programming language such as enumerated types and JAXB.

Monday, May 28, 2007


I recently used the Open Source packet sniffer Wireshark to decode a custom client-server protocol for relaying telemetry data. Without the use of the packet sniffer, I might have been stuck with no way to progress. I have added Wireshark to my list of Links to useful free and Open Source software development tools.

Sunday, April 29, 2007

Interface Seq

I wrote a tutorial for Inteface Seq, a Java interface I created to provide read-only access to a sequence such as an object array or a List.

Saturday, March 31, 2007

World Community Grid

My new development desktop has two quad-core processors. I was feeling a little inefficient with all of this computing power sitting around mostly unused so I decided to revisit distributed computing projects. In particular, I was interested in contributing my idle CPU cycles to biomedical research. I settled on the World Community Grid with the Open Source BOINC client.

Wednesday, February 28, 2007

Mozilla Firefox 2

The web browser Mozilla Firefox 2 was released last week. It is included in my list of useful Open Source software on the CroftSoft Links webpage.

Get Firefox

Sunday, January 28, 2007

Interface Slot

I wrote a Java programming tutorial on Interface Slot, a new interface class to be used as a mail slot for receiving messages to be processed, stored, or relayed.