Category Archives: Tools

2 Web Performance Books

I recently read two books focused on website performance.

Designing for performance (weighing aesthetics and speed) by Lara Callender Hogan.

Responsible Responsive Design by Scott Jehl.

The first book is interesting and a very good primer for new developers or for folks that have never considered web performance based on design trade-offs. The second book was a very handy manual of sorts and was my favorite.

I would reccomend reading both if you haven’t had a chance. They should be available from your local library through inter-library loans.


Installing a new antennae on KK-Louise

Broken antennae
Broken antennae

Recently KK-Louise, my 1971 VW Bus met an automated car wash. The car wash ate the last of the original 44 year old antennae. The attendants at the car wash were able to grab the whip that broke off and it was full of rust. I was pretty happy with how this one worked so I ordered a replacement from the Bus Depot. They had a chrome replacement, just like on my bus for $20.00. The new antennae is a bit lighter than the old one but looks the same.

To do the job I needed a 3/4″ wrench for the big nut, an 11mm wrench for the old antennae base, an 8mm wrench for the new one and some pliers.

New antennae in package
New antennae in package

Removing the old antennae was straightforward. I’m lucky as my hand and arm were able to contort to reach the 3/4″ nut and the little 11mm bottom nut. I found I had to use pliers to loosen the wire that runs from the radio to the antennae.

Headlamp, pliers, 8mm and 11mm wrenches, and 3/4" crescent wrench.
Headlamp, pliers, 8mm and 11mm wrenches, and 3/4″ crescent wrench.
Back of antennae when installed.
Back of antennae when installed.


Watermark around the antennae mounting hole.
Watermark around the antennae mounting hole.








Once I took the old antennae off there was some watermarks around the old location. I used some cleaner wax to remove the watermark and then put the new antennae in place. The new one went right in but I did find it helpful to start the top nut first or it wanted to tumble out of the hole.

The only snafu was the antennae wire from my original antennae used an older style connector so I had to replace the wire. The new antennae came with a compatible wire so it was just a matter of reaching around in the back of the radio and unplugging the old one and putting in the new one in. I was happy to have my radio manual which helped as there was both the antennae and a sub plug area.

Overall the installation was straightforward and is now rust free so the next time I think an automatic car wash is a good idea, it just may not get ripped off. The reception is great with the new antennae.

The new antennae installed.
The new antennae installed.


Monitoring Drupal with Icinga


Monitoring one or two Drupal sites can be done by logging into the status report every few days and reviewing settings, looking at your watchdog log, and reading the emails the sites send you. However, as you run more and more sites that process becomes overwhelming and can take up a large amount of time. A few services exist to help monitor all of your sites in one place, Droptor, Drupal Monitor, and Acquia all provide really slick solutions. However, if you want to roll your own due to cost, corporate security, etc… the Drupal community has developed several tools leveraging Nagios.

I wanted to set this up to monitor the sites I manage and chose to use Icinga, a fork of Nagios and openSUSE 12.2 as that is consistent with our environment. Currently I am doing this as a proof of concept project and it is running inside of VirtualBox on an older Mac. The Drupal projects that I am using are the following:

These two modules first let us talk with our Nagios server but also provide most of the stats you can find in the paid services. On initial install the results are not all that pretty to look at but I believe there are ways to fix that and I would rather have comprehensive than pretty any day.

Installation was inspired by the post at awebfactory. There is currently no write-ups on how to do the install if you are using Icinga but since it is a fork of Nagios all of the steps are quite similar. I still know very little about Nagios so if you see a goofy config file please improve upon it. The readme file that accompanies the Nagios Monitoring module is fairly comprehensive and if using Icinga use the Nagios 3 style configuration options. Here are four tips that I wish I had known while setting this up.

4 Tips

  1. You must define a host in your .cfg file you create for monitoring the Drupal sites. The README assumes you have done this already but if you are creating a monitoring server from scratch this is news. Add the following at the top of the hostgroups.cfg file the instructions ask you to create.
    define host{
            use                     linux-server
            alias                   DevVM ; You will see what you put here in Icinga
  2. The unique string you generate for use in the module and within Icinga goes where the instructions have the words unique identifier.
  3. Initially my Drupal check was not returning any results. I got an error “Service Check Timed Out.” My dev server is a little pokey so I needed to edit the service_check_timeout line in icinga.cfg from 60 to 600. I chose 600 because this article uses it, very scientific, I know.
  4. The SUSE Icinga package places Icinga in /etc/icinga, /etc/init.d/icinga check_verbose checks your settings in the .cfg files you have edited/created and /etc/init.d/icinga restart restarts the service.

Installing Icinga

Thankfully there is a package for Icinga in the openSUSE repositories. I installed this using the GUI tools but if I move out of a proof of concept phase I would do this with an openSUSE box run level 3 so I will try to show the command line install options rather than how to use Yast. This generally just involves following the documentation at

Install the dependencies:

$ zypper install gd gd-devel libjpeg libjpeg-devel libpng libpng-devel
$ zypper install net-snmp net-snmp-devel perl-Net-SNMP

Create a user named icinga, please follow the instructions at the link above.

$ zypper install thttpd
$ sudo vi /etc/icinga/etc/objects/contacts.cfg

Change the email address associated with icingaadmin to one that you can receive email at. ESC : wq ENTER to exit.
Set the password for icingaadmin
$ htpasswd -c /usr/local/icinga/etc/htpasswd.users icingaadmin
$ sudo /etc/init.d/apache2 reload

Make sure Icinga starts when you boot.

$ chkconfig --add icinga
$ chkconfig icinga on
Verify everything is good with your initial configuration.
$ sudo /etc/init.d/icinga check_verbose

Start Icinga

$ sudo /etc/init.d/icinga start

Navigate to http://localhost/icinga/ and login with icingaadmin and the password you set earlier.

Install the Nagios Drupal Check service

The steps in the README file are correct for openSUSE. Just use the Nagios 3.x version of the commands and follow tip number 1 from above.

Final Result

Drupal Nagios Alert
A nagios alert showing issues with a site I have in dev.

I started monitoring a site I have on my devVM and it shows me a boatload of issues. Core is out of date, stuff is turned on that shouldn’t be for a production site, modules need to be updated, etc… The beauty of this is that I simply need to turn the module on for each site I want to monitor, update my hostgroup definition in hostgroups.cfg and I have instant monitoring. I hope to provide further details such as NRPE on the remote host, selective alerts, and a prettier interface.

Thank you to everyone I have linked to in this article and to the developers of the fantastic Icinga, Nagios, and Drupal modules. On a happy note, Acquia itself uses Nagios to monitor their sites in the Acquia cloud.

AMAHI CHOWN and backups

I just finished setting up an AMAHI server for our home office use. It was a fairly straight setup except for the backup folder creation. Supposedly it creates a folder called backups automatically upon installation, that did not occur for me.

AMAHI runs on Fedora 12 which I found out is a bit different than Ubuntu 7+. You cannot just create folders in the HDA directory because you do not login as root and cannot do so from the GNOME GUI. You must do it from the command line.

This is not all that bad, just a bit of an annoyance because of AMAHI stating that backups work with a clean install. Here is how you do it.

First you must open a terminal, Applications -> System Tools -> Terminal. Or I think you can use Alt-F2 and type gnome-terminal.

Then you login as root su - it will prompt you for the root password, enter that and press the enter/return key.

Now navigate to the HDA directory where backups is supposed to be cd /var/hda/files/

List the folders in the files directory ls go ahead and make the backups directory because it is not there. mkdir backups

Again list the folders but show the permissions ls -l

You will see that the folder backups is not accessible to the average user so you have to change the owner and group using CHOWN.
chown user:group backupswhere user is the Fedora user you are using with AMAHI and the group is what you also setup, most likely users.

Now you can navigate to the directory in Nautilus, right click on the backups folder and change permissions to allow read and write so that backups with Ubuntu Simple Backup and Windows 7 built in utility will work. I am sure you can do that on the command line with chmod as well but I am not the best with that command.

Backups setup this way are working wonderfully and I am very pleased thus far with AMAHI.

Personal Finance – KMyMoney

KMyMoney Logo

Recently I have been experimenting with personal finance software on Linux. The most popular program seems to be GnuCash. This would have been a good choice for me since I run Ubuntu with a Gnome desktop. I instead have chosen to use KMyMoney. It is packaged with the KDE desktop environment. Installation was fairly trouble free using the Synaptic package manager. Some features, such as help still give me issues, but I am slowly working them out.

The interface reminds me of Microsoft Money from the late 90’s. It is straightforward and besides the annoyance of double-entry bookkeeping, does a good job. I am sure I will end up liking double-entry the more I use it. KMyMoney does a good job of sugar coating the accounting, especially compared to GnuCash. I have been able to get most of my accounts into the program with little trouble. Online banking is not running smoothly with my institutions as of yet. This is not a big deal to me as I am trying to use the software to better see where my money is going. The reporting features of KMyMoney seem really great. After a few months of use I will share some of the reports it generates.

Compared to Money Manager Ex, another personal finance software application I have used, KMyMoney is superior. Though very similar in features, KMyMoney seems to work better and is more intuitive.

Besides my own wish to better examine how I spend my money I am hoping KMyMoney will fulfill my search for good software to use with students. Learning how to balance a check register is an important skill but with the abundance of debit cards not many students carry checkbooks or cash except for lunch money. Familiarizing students with software that allows them to track their spending, manage stock market research, and loans is a new skill-set that I believe will become vital for people in the new economy. New markets are emerging quickly allowing for people to put pockets of money in many different investment vehicles.

As a class project it would be interesting to provide a micro-loan and then track the repayments using software. The students will still learn the computations so they understand what is happening but it may provide additional engagement for students.

If you are running Linux and looking for personal finance software give KMyMoney a whirl.