Dec 042010

I was trying to use the Knowledgetree automated installer on a fresh install of Ubuntu 10.04.01 64-bit server. While trying to install, I received an error about swftools, which I was able to install thanks to the directions here (in post 2):

However, I then received an error that read:
Failed to fetch Hash Sum mismatch
Followed by a few zend packages that couldn’t be installed.

After much purging and googling, I found that this worked well:

  1. Go to /var/lib/apt/lists/partial/ and delete the files that failed to download. (If you are curious, I looked at the file that was supposed to be correct in the partial directory, and noticed it was encoded still. I suspect an incorrectly expanded archive file that was causing the problem. Some people reported that simply deleting these files fixed the problem, but it did not help for me.)
  2. Using the root URL of the repo that had the hash problem….go to the site. So for me it is
    • Here I noticed that there were a number of files that had the packages. The file it failed on was the bz2 file, however, there is a plain text one available called Packages
    • I clicked on Packages and copied all of the text.
    • On the server, I created a new file in the /var/lib/apt/lists/ directory with the same name of the file that failed/was encoded in the partial directory (sudo vim repos.zend.com_zend-server_deb_dists_server_non-free_binary-amd64_Packages) and pasted all of the text in there.
  3. Then I ran apt-get update and it ran without errors.
  4. Finally, I ran the Knowledgetree install again, and it downloaded all of the required packages fine.

I imagine this would work on any repo that is having a similar problem with Hash Sum mismatch, but of course the URL you will visit, and the file name you will use will be different.

Dec 022010

Hello Internet Reader. You heard it here first; Failure is heavier than Success. I’m sure that this will turn out to have all sorts of implications in the fields of physics, politics, and athletics. Read on if you want to understand my train of thought that brought me to this exciting discovery.

Recently, there have been rumors that Rogers Communications may be buying shares in Maple Leaf Sports and Entertainment, the body that controls the Toronto Maple Leafs (hockey), Toronto FC (soccer), and Toronto Raptors (basketball). This would give them controlling interest in four major professional sports teams in Toronto (they currently own the Toronto Blue Jays (baseball)).

This got me thinking about Toronto sports teams in general. They haven’t had many good years recently:

  • Maple Leafs: Last Championship – 1967 / Last Playoff Appearance – 2004
  • Raptors: Last Championship – Never / Last Playoff Appearance – 2008 (Only once got past the first round)
  • Toronto FC: Last Championship – Never / Last Playoff Appearance – Never
  • Blue Jays: Last Championship – 1993 / Last Playoff Appearance – 1993

To the defence of Toronto FC and the Raptors, they are fairly new teams. However, they have seemed to have latched on to the Toronto sport team legacy of failure.

But this begs the question, why so much failure in Toronto?

Well you see, as any Canadian knows (especially Toronto-ains), Toronto is the centre of the universe. Like most things that are the centre of something, it tends to have the most mass and therefore attracts other things. Looking at the solar system, the Sun is the centre of mass, and other object gravitate towards and around it.

So, all things in the universe are pulled towards Toronto. Of course, this means that both success and failure are attracted to Toronto. However, failure seems to accumulate there faster, and in greater numbers then success. Proving once and for all that Failure is heavier than Success.

But what does this have to do with Rogers Communications? Well, anyone who has tried to get a cell phone signal on the Rogers Network in Newfoundland knows exactly what I’m talking about regarding failure.

Disclaimer: This post is in jest, and if you are offended, you should learn how to take a joke. And if that comment offended you, I’m sorry. Please refrain from fire bombing my car or home. Thank you for your consideration.

Oct 312010

Hello Folks,
Long time and no posting. I’ve been quite busy. So here are some updates:



I’m currently completing a Masters Certificate in Project Management. It is a four month course that prepares you to be a professional project manager. It has been an interesting experience. The skills I’ve learned so far have already been put to good use both at work, and with my business on the side.

Project Work

My company has been awarded a contract to develop a Document Management System, as well as install servers and software to support this system. Work will be starting next week, and I will have very little free time to work on anything else during this. 🙁 But, it will be a great experience and our first big project!

Server Hosting

In the last month or so, the company I had a VPS with (BBB Rating: C – 121 Complaints) was constantly attacked and hacked by outsiders. No matter what lengths I go to, somehow, someone was on the server sending mail and doing bad things. It seems that the company does very little intrusion detection, and the way in which the server was compromised, I suspect that the virtual hosts were actually the source. After 12 hour downtime with no answer from their 24/7 support, I decided to return to my former web host ( BBB Rating: A+ – 0 complaints). Although more expensive, their support has been fantastic, and quality/value of service is good.

Software Plans

That last piece is a great segue into my software plan section. During my migration, I had to move my database (obviously). That experience has pushed me to develop a script that dumps commands to recreate all of your users and all of your grants in the event that you have to migrate your mysql database. By running this script, you will get all of the code you need to recreate all of your users and grants. Coupled with a mysql dump, you should be able to quickly copy an entire database! Hopefully I will find some time in the next few months to write the code.

I’m also planning to write a simple script that will aggregate our logwatch reports from our 15 servers into a single daily report. Instead of the default function, which is to email, the logwatch report will be scp’ed to a central server, and then a script will go over all of the reports, and put something together for all of the servers. I’ll make this available once it is written.


I’ve been playing a bit of Civilization 5 lately. It is an ok game, but I find it is still very rough around the edges. Lots of bugs, incomplete features, and terrible AI. Although I really do enjoy the new combat engine.

I’ve also been playing a bit of Urban Terror. A free realistic FPS available for Linux.


I’ve also run across a few nice software packages that I’d like to recommend:
Adminer: A great PHP script that you can upload to your site, and gain phpmyadmin type access to your databases. Supports a number of database types. Allows you to execute queries, create databases, backup databases and just browse your tables. It is a single file, so there is no installation, and I intend to use it for some light DB admin work.

Firewall Builder: I was looking for a program to help me manage iptables on linux. I’ve run firestarter in the past, but that is a gui app, and I wanted to configure the firewall for a server with no gui. I ran across Firewall Builder and gave it a try. It is dually licensed as commercial for Windows and Mac users and free for Linux users. Being a Linux user, I jumped at it to give it a try.

The interface is a bit daunting for the first time user, I strongly recommend you watch the intro video (and hopefully you already know what a firewall does. ;)) This program lets you use drag and drop to configure rules for your firewall. It creates the rules in a custom format, and then compiles them into a number of different formats for various firewall programs and devices. It even goes a step further and lets you remotely install the firewall on the remote servers. A very nice touch.

I’ve only tried iptables configuration so far, but it ran very well. I intend to use it for all of our servers, and put the configuration files under revision management. So I can manage all versions of our firewall configs from a single box.

That’s all for now.

Aug 172010

Well, today I completed my first harvest of my garden. There were a few dead/dying potato plans that I figured should be picked before the potatoes go rotten. Here is the harvest:

Oh, and one carrot.

Here are more pictures of the potatoes:

Aug 112010

It is tough living in a duplex, with no lawn. My dream of a garden seemed to die with the purchase of the house. But never fear, where there is a will, there is a way.

I got six fish trays filled with dirt. Then added the veggies, two with carrots and four with potatoes. I placed these on the second tier of rock wall in our back yard. This allows the veggies to get reliable sun throughout the day. The height makes weeding and watering quite easy.

Take a look at the pictures below taken last month. Notice the potatoes on the far right. It was the first potatoes I planted, and by far grew the fastest (the other trays had a 1 day disadvantage). However, it was pure top/potting soil, while the other 5 trays also contained a mixture of peat moss. Over the summer, all of the other trays over took the potatoes planted first. There was a 2 to 3 week period before the other 5 trays even started growing. The 5 trays did end up with a lot of weeds, but once the veggies took hold, they really took off.

I’ll let the pictures speak for themselves. I’ll post more pictures toward harvest time.

Jul 312010

I’ve ported my popular (that means more than one person is using it. ;)) hacks from version 2.1 of Hesk to the new 2.2. You can read the whole tutorial on my wiki:

For those upgrading, you will need to reapply the hack to the new files. The differences were pretty minor between 2.1 and 2.2. I’ll outline the differences here:

  • The line numbers are different for the files
  • The function print_add_ticket_start that you need to add needs a few additional lines to bring in the global stylesheets. This was not required in 2.1
  • I also made a small tweak to this function so that there is no category selected by default, allowing you to select the default category via the dropdown box. Previously, this would have been unselectable.

I’m working on a screencast of applying this hack for those who are more visual learners. So stay tuned for that.

To take a look back at my previous post, and learn more about Hesk, click here.

Jul 292010

I recently decided to get back into desktop applications. Since about 2000 I’ve focused on developing for the web using Perl and PHP (mostly PHP). But sometimes it is nice to write a desktop app, instead of having to write a web app for everything. I’ve written some applications using the PHP CLI option, but that isn’t quite the same as a gui. My motivation was to write a GUI that controlled ffmpeg and would allow me to capture screen casts for tutorials I needed to make.

I started my adventure looking at a GUI frontend for PHP. And ran across PHP-GTK+. I installed it, and looked at some tutorials on it, but the more I looked, the more it looked like the community was inactive and stale. I also couldn’t find any way to package my application to share with others. They would need to install PHP, compile GTK+ (which wasn’t all that easy), reconfigure PHP and then run my application. Although most of the programs would be for my eyes only, it would be nice to have the option to share from time to time. So that was the end of the road for my PHP adventure.

I then decided to look at other languages for developing the application. I considered some of the options out there, Java, C, Ruby, Python, but decided to give Python a try. I’ve coded Java before, and I wasn’t a fan. Always seemed like overkill for everything I wanted to do. I’ve heard lots of good stuff about Python, and it is usually installed with most Linux installations, so this was my language of choice.

I then began looking for a good IDE for Python. Being a big fan of Eclipse, I ran across pydev for Ecplise. A simple install into the software manager in Eclipse, and I was off to the races. You will need to configure the location to your python binary, which for me (Ubuntu 9.10) was in /usr/bin/python2.6 Enabling this, gives you all the fancy code completion which I love so much. If you need to set it up, you need to visit (In Eclipse) Window -> Preferences -> Pydev -> Interpreter – Python -> New… and browse to your python binary. (If you do not have python available, you may need to install it first using apt-get or Synaptic Package Manager. Just search for python, and it should install everything you need to get started.) Here are some tutorials for getting started with Python:

I’ve used Glade once before, very briefly just to figure out what it was. It is a GUI drawer. Similar to the GUI drawer in Visual Basic, it allows you to layout your interface without using code. It creates XML files which can be imported by your application (and it has bindings for many languages) that create your interface. You just need to connect your code to the signals in the GUI, and you can make magic happen. You will need to install Glade via Synaptic Package Manager. The current version is the 3.6 series. Here are some great tutorials to get you started with Glade:

So, my first dabble in GUI desktop programming in a decade, and my first taste of python. About 5 hours later I had written the application I wanted. It is an 84 line python script binding to one glade file for the interface. It allows me to select a window, and using a pre-set configuration, launch ffmpeg and record a screencast. Still a lot of work to do before it is ready to be shared, but it is a great start. Using pydev via Eclipse for the Python coding, and Glade for the interface design, you should be able to turn out some simple desktop apps in a matter of hours.

This is probably just the beginning of my python coding, so you may see more here on that in the future.

Jun 292010


At long last, The Director! is complete. This is the URL redirection php/apache script that I mentioned early last month. Had a few minor things to fix up, which I finally did last night, and now it is available to all.

It is a very rough looking piece of software, true to my views that admins shouldn’t care what the software looks like, provided it works correctly, and it looks pretty to the public. Since I suck at UI, AND The Director! has no public face, this is the perfect project for me!

So what does The Director! do?

The Director! is a URL shortening/redirection service similar to tinyurl and others that allow you to point one web address to another (presumably a short one to a longer one). Currently it does some simple stat tracking (if you want) on the URLs, and allows you to manage your redirects. More information and a download can be found here: (this shows The Director! in action as I have it installed on my site now).

Requirements and Cost

The Director! is a free download, available under an undetermined licence at this time. You are free to use it, just don’t take the code and sell it. If you make any modifications, feel free to share them back to us (submit an issue to the bug tracker and attach your code). We provide no support or guarantees/warranty for the code, if you choose to use it, you are on your own. Later, I’ll enumerate that into some sort of formal licence.

In order to make use of The Director! you will need:

  • A webserver
  • PHP running on the webserver
  • A domain name of some sort
  • A rewrite module for fancy redirects (instructions provided for apache and mod_rewrite)

You will need access to edit your webserver config, or .htaccess file if you are on shared hosting.

If you run into any issues, make a note below and I’ll do my best to help. But again, no formal guarantees or warranty come with the application.


Certainly nothing to be proud of…but here are some screenshots of The Director! in all of it’s ugly orange glory:


Other then me, many thanks to Pat for his help in writing The Director!. As well as credit to Mark James for the Silk Icons which I don’t think I’ve actually put to use yet, but when I redesign the GUI, I will.

Jun 282010

This past weekend, me and a few friends played in the National CBC Play On street hockey tournament. It is a 3-on-3 tournament with a goalie. We played in the Adult Beginner division, and we had a pretty good go of it. Ended up finishing in second place, losing the championship game after a tough string of games to get that far.

I played defence most of the time as did Stefan, while Pat and Matt played forward and Chris played goal.

In the round robin we finished in 3rd place, tops of the teams who suffered a defeat:
Game 1: Hawk’s Heroes vs Doom’s Crew: 2 – 1 win. (8 AM)
Game 2: Hawk’s Heroes vs Johnsons: 8 – 5 loss. (Noon)
Game 3: Hawk’s Heroes vs GFW Shockers: 14 – 6 win. (6:40 PM)

In game 3, we only had 3 players, so we had no substitution. Stefan played goal in Chris’ absence. We played an exhausted Shockers team and ended up doing quite well (I even scored 2 goals).

Sunday was a different story. Starting at around 11 (they were late starting the usual), we had a rematch with sixth seeded Doom’s Crew. Another hard fought 2-1 victory.

This win saw us playing at 12:40 against the undefeated Dark Park Destroyers. This was our hardest game yet. The game was tied at ones after the first half. The second half of the game, we could hardly get the ball out of our end. We had no solid chances to score, and defencively we were scrambling to stay alive. Late in the second half, Matt took a nasty fall on his chest as he went hard to the net and got tangled up with the goalie. Chris played awesome in goal, and managed to get us to a shootout. Pat, Stefan and Matt were our three shooters, and Matt managed to score on our final shot, and Chris shut the door to preserve the win. So we punched our ticket to the championship game at 2:40.

By this time we were all starting to get pretty beat up, and very exhausted. We were facing the number one seeded team who had only played one other game that day. This game started on time, and we managed to make it out of the first half with a 2 – 1 lead, but that is when the wheels fell off. It started to rain, and the street got very slippery, especially where the buses stop, as that pavement was full of oil. Our earlier games caught up with us, and we didn’t have much run left in us. They racked up a few quick goals with some great passing and ended up 6 – 2. We got one back, at 6 – 3, but they finished off 7 – 3.

So we ended up in second place. It was a great weekend, and we did better then we all thought we would, especially since most of us only play once a month or so. Hopefully we will be able to play again next year, and win it all. Attached is the playoff bracket.

Did you play in one of these events across the country? If so, leave a post below.