Installing a CUPS printer via the command line under Ubuntu

I try to script everything I can on Linux.  When I install something on my desktop, I like to be able to run a script to install the same thing on my laptop.  When a computer breaks, I like to be able to run all the scripts to have it set up again just the way that it was. Here is how I scripted the installation of my printer.


Resetting Wireless Networking on Ubuntu without Rebooting

The wireless network on my laptop has always been unreliable.  When I open the lid of the laptop and the computer wakes up from sleep, there is a 10% chance that the wireless network won’t be able to connect.   In the past, the only thing that works in this situation is a full reboot of the laptop.


Ubuntu Global Keybindings for Gnome (Quantal)

I recently re-installed Ubuntu on my desktop computer.  It was about 8 years since the previous full install.  I’d kept it up to date with latest Ubuntu upgrades.   I wanted to change the hard drive configuration and put most of the os on a solid state drive.  There was also a lot of cruft that I had installed over the years and a clean slate would get rid of tons of software I no longer use.

The re-install worked very well.   The most noticeable improvement was boot time.  Partly from the solid state drive and partly from the removal of all the extra software.  I didn’t lose much in the process.  I have a script that installs software that I use that isn’t included by default.  The script also tweaks a bunch of settings.  But, the one thing that I lost was my global key bindings.


Nedit – A Text Editor for Linux with Some Killer Features

I’ve been using Nedit for at least 10 years as my primary text editor.     It has standard features for a programmer’s text editor:

  • Syntax highlighting
  • Line numbering
  • Brace matching

There are a few areas in which the authors put in a lot of attention to detail.  It outshines every other text editor that I’ve ever used in these areas.


TripAdvisor’s Hotel Availability Comparison

Since I spent about six months of my professional life working on TripAdvisor’s hotel availability comparison feature, I thought a little writeup about it here would be appropriate. If you fill in the form over on the right you will be taken to a page on TripAdvisor that shows hotels that are available for the dates that you chose.


Opening .jar Files

The jar file format is common for distributing programs and libraries that are written in Java. Jar stands for Java Archive. Your browser may download Java applets in a .jar file or you may get a .jar file that contains a Java application that needs to be run. The file format is also by Mozilla and Firefox as the format for XUL applications, plugins, and skins.

The jar file format is a container and compression file format. Each jar file compresses and contains other files. Jar files are very easy to open. There are many programs that will act as an opener for jar files. In fact, any program that can open zip files can open jar files. The jar format is identical to the zip file format.


Efficiently Implementing Dilate and Erode Image Functions

Dilate by One



Dilate is a function that accepts a black and white image. It is also known by the names “grow”, “bolden”, and “expand”. It turns on pixels which were near pixels that were on originally, thereby thickening the items in the image.


Finding a Loop in a Singly Linked List


A singly linked list is a common data structure familiar to all computer scientists. A singly linked list is made of nodes where each node has a pointer to the next node (or null to end the list). A singly linked list is often used as a stack (or last in first out queue (LIFO)) because adding a new first element, removing the existing first element, and examining the first element are very fast O(1) operations.

When working with singly linked list, you are typically given a link to the first node. Common operations on a singly linked list are iterating through all the nodes, adding to the list, or deleting from the list. Algorithms for these operations generally require a well formed linked list. That is a linked list without loops or cycles in it.


SoundSpectrum releases G-Force 3.0

A good friend of mine from college, Andy, has been programming music visualization software for many years now. He started SoundSpectrum, a company based on his work. Recently another friend of mine, Anton, joined him. They just released their newest version of G-Force on June 8, 2005.