Simple C++ text file parser class

This class defines a very simple line oriented parser that tokenizes the data on each line while discarding comments. I created it because the need for parsing very simple files with comments came up over and over again but the traditional istream and fscanf approaches would not allow me to handle comments.
Continue reading Simple C++ text file parser class

How to fix stale NFS mounts on linux without rebooting

I have often noticed that some folks reboot systems to fix stale NFS mount problems which can be disruptive.

Fortunately, that often isn’t necessary. All you have to do is restart nfs and autofs services. However that sometimes fails because user processes have files open on the stale partition or users are cd’ed to the stale partition.

Both conditions are easy to fix. The steps to fix stale mounts by addressing the previously described conditions are described below.
Continue reading How to fix stale NFS mounts on linux without rebooting

How to change the firefox address line (urlbar) font size

I have always found the default font size for the address bar in firefox to be too small but, unlike almost all other aspects of firefox, it was a bit of a challenge to change. You had to manually edit a file called userChrome.css that lived under your home directory tree in a firefox configuration directory. That directory was named ~/.mozilla/firefox/*.default/chrome under linux. On windows it was in the user AppData directory tree.

Each time a new version of firefox was released I would go to that directory and edit the file to describe the font characteristics that I liked.

Unfortunately, when I installed firefox 10, the chrome part of subdirectory was not present.
Continue reading How to change the firefox address line (urlbar) font size

Added a table that presents the same commands in bash and tcsh

I put together a table that presents the same commands in bash and tcsh because I sometimes have to switch between shells and needed a handy reference. It was built up over time by as I came across tidbits that I wanted to remember.

In some cases there are different ways of doing the same thing so I simply chose my preferred approach (such as [[]] expressions rather than [] in the if statements).

I hope that you find it useful.

NX password scrambling and unscrambling algorithms in python 2.7

The NX web page entitled “The password scrambling algorithm in NX client” describes their password scrambling algorithm in C++ and perl but it does not describe it in python. Nor does it describe how to unscramble the data.

This blog describes how I implemented both algorithms in python. I was surprised that NX didn’t use a standard symmetrical key algorithm like blowfish or DES for storing the keys but they must have some good reason.
Continue reading NX password scrambling and unscrambling algorithms in python 2.7

Bash script to download, build and install gcc 4.6.2 and boost 1.48

I recently had to build gcc 4.6.2 on CentOS 5.5 and found it to be quite painful so I put together this script to do all of the work: http://projects.joelinoff.com/gcc-4.6.2/bld.sh.txt. I am releasing it in text mode so that you can cut-n-paste it from the web page.

The shell version is also available: http://projects.joelinoff.com/gcc-4.6.2/bld.sh if you want to download it directly using something like wget.
Continue reading Bash script to download, build and install gcc 4.6.2 and boost 1.48