Wednesday, December 9, 2009

Google Chrome comes to Linux (and other browser comparisons)

Just in time to save my Fedora experience from buggy plugin support and bad font rendering, along comes Google Chrome in its first public beta for Linux. First impression: this browser is so impressive I will probably leave Firefox for it.

I've used Chrome on Windows since the first public betas, and while it has been fast, simple and powerful, I never saw a compelling reason to switch from Firefox, of which I have been a faithful user and proponent since early betas as well. Until I decided to eat my own dog food and switch to Linux (specifically Fedora 12).

A picture is worth 1000 words, so without further ado check out the differences in rendering (click images to see full size). I'll update this post at some point with a full review of Linux browser options.

Google Chrome rendering Blogger

Firefox 3.5 rendering Blogger

Of course, the standard developer tools are present and accounted for:

For the fun of it, I took screenshots of some other Linux browsers. They look a lot like Firefox even though two use different rendering engines. Epiphany (bottom) and perhaps WebKit in general seems to do a little better at subpixel hinting.

Galeon, a good Gecko-based (like Firefox) browser for gnome

Konqueror, a full-featured KDE browser using KHTML

Epiphany, a Webkit-based (like Safari and Chrome) browser

Monday, December 7, 2009

NVidia Drivers on Fedora 12

I'm not the only one who had problems installing the proprietary NVidia drivers on Fedora 12, so I thought I'd post the surprisingly simple solution here. The color profile options and OpenGL support are well worth it:

  1. To save a lot of headaches, install the standard VESA video driver first. On a fresh install, select the second option for installation ("Install with a basic video driver" or something like that). This will allow the NVidia driver setup to load its kernel module without interference from other loaded modules such as the "nv" or "nouveau" drivers. Most errors during installation are a result of other modules being loaded. You can edit grub.conf and blacklist the loaded driver as suggested here, but starting with the VESA driver is much easier.
  2. There has been some confusion surrounding the Supported Hardware lists for different driver versions on the NVidia site. These lists comprise the latest chipsets supported by the driver version; in almost all cases the unified drivers continue to support legacy GPUs. In my case, an NVidia Quadro NVS 135M in a Dell laptop, version 190.53 works fine. Download the latest driver for your platform.
  3. Switch to a console session (e.g., Ctrl+Alt+F2) and shut down X. "init 3" should suffice.
  4. Run the driver setup (sh ./ It should automatically compile the correct kernel module and configure your xorg.conf or equivalent.
  5. Reboot. You should see the NVidia logo when the screen mode switches.
  6. The driver also installs a .desktop launcher for the X Server Settings interface shown above. If you don't see it on your app menu or anywhere else, the utility is called nvidia-settings and can be launched from a terminal window.
  7. Enjoy.

  • To automatically apply any changes made in nvidia-settings when you start X, place the following in your .xinitrc or other startup script:
    nvidia-settings --load-config-only
  • There appeared to be a bug in KDE causing a huge delay in menu response when the proprietary NVidia driver is used. My solution was to use GNOME.
  • Fedora kernel updates may cause the video driver (and therefore X) not to load; if this happens simply reinstall the driver and it should recompile the kernel module.
  • I have since tried 190.52 and 190.53 on this laptop and found that the Fedora updates were slightly behind the driver releases. If you try a new driver version and it causes performance problems such as the smallest apps showing a "Starting " window for several seconds, wait for another system update then try the driver again.

Other Resources:

Monday, November 30, 2009


Welcome to Code#. This blog will evolve into a series of HOWTOs, critical articles, implementation examples, and so on gleaned from my career in IT, especially software development and using open source software. Hopefully this will become a useful resource for others and myself in the future.

I have tinkered with electronics, computers and code for as long as I can remember. Since starting out at a small local computer shop in 1998, I have worked for Expression Networks, LLC in various roles including CTO, did a short stint as a contractor at Capital One, and landed at IOTA Solutions, LLC in 2012, where I am developing the next generation of MyClassEvaluation (online course evaluation software).

I am also President and CEO of Overlord Industries LLC, an entertainment production startup (website coming soon).

These days, I use a lot of open source software to build applications and have been running Linux on my personal laptops since 2005. I still write apps in C#/ASP.NET and I think .NET is an excellent platform, but the past few years of working with FOSS have really been a pleasant experience and have informed my worldview. I now believe that open source software is a viable and exciting business model for the future, for reasons which I'll detail in a future article.

My free software kick really began years ago I decided to install an inbound SMTP gateway to take load (traffic, spam scanning, etc.) off of Expression Networks' struggling Windows-based POP3/IMAP mail servers. These servers hosted about 25000 users on many domains and the volume of spam was an effective DoS at certain times. I settled on Exim for an MTA and FreeBSD for the OS. I soon discovered that the industrial-strength configurability of every aspect of Exim makes an incredibly powerful gateway, and I was hooked. Nothing other than open source software gives the user such complete control over configuration and execution.