This bash script creates a unique platform identifier string for linux (including cygwin) and solaris. It is useful for creating directory trees on network shared volumes that store data for different OS’s.
Continue reading Bash script for uniquely identifying linux and solaris platforms
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
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
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
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.
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
I released version 1.1 of change.py today. It has two fixes:
- When a file was renamed in in-place mode the file with the old name was not deleted.
- File permissions were not correctly set in some cases when changes were made.
The version is here: http://projects.joelinoff.com/change-1.0/change.py.
I simply replaced the 1.0 version.
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