Wednesday, December 31, 2008

New Year's Eve

I'm celebrating New Year's Eve with some friends tonight. This will be the third year in a row we've had a get together. We are having a buffet dinner a Chinese restaurant, then returning to my friend Robert's place to usher in the New Year.

2008 will be one second longer to compensate for changes in the Earth's rotation speed. Apparently it is getting dizzy... ;-)

Tuesday, December 30, 2008

Back To Work Mood

I finally shrugged off the vacation mood I was in for the last few days. I even did some mundane chores like depositing payments and sending out invoices. I made a lot of progress on the DNS server I'm setting up. It is not difficult but there are always problems, like my notes for the previous installs are missing a few steps here and there. There are a few more things I want to tweak so it is not finished yet. I'm also using the new server to try a few improvements that I might not want to test on a production server. One more day like today, and I'll be able to finish this job and get paid. Yay!

Monday, December 29, 2008

More Car Repairs

I took the car in for service early this morning. I hoped the early start to the day would enable me to get more work done. It didn't. I was so tired for most of the morning that my productivity was hopeless. I'm just not a morning person.

During the inspection they found the clutch hydraulic assist cylinder is leaking. Not enough to be an immediate concern but they are certain it will fail eventually. The parts were not in stock so I decided to take care of it next year but I cannot put it off for too long. The joys of owning an older car.

But 9 1/2 years and almost 117800km is really not that old.

Sunday, December 28, 2008

Code Cleanup

I was a little more productive today and managed to do some code cleanup on a personal project, TomsProjectUtil, which I use to create my project management environments. Code cleanup is never fun but is always necessary, especially before adding new functionality. One of the new features will call the chown() function which requires root privileges. However running as root introduces other problems so I'm going slowly. I'm hoping that I'll think of another way to do this so I can avoid running as root, but so far it seems the easiest approach.

Saturday, December 27, 2008

Lazy Day

Today was a very lazy day. I slept in until about 11 AM which wasted a good chunk of the day. I did get few useful things done. I archived some older TV shows to data DVDs to free up space on my hard drive which was about 95% full. Once you start watching video on your computer you use disk space at an unbelievable rate. I need to look for a more permanent solution to my storage problem.

I finally found a Canadian Tire store that had their synthetic oil in stock. Their store brand synthetic was always a good deal, even at $8/liter (Mobil is $11, Amsoil is $15) but it is sign of the times that the price jumped from $6.50 the last three months. When I first started using it in 1989 it was about $4.50/liter.

I'm in a vacation mood when I really should not be. I hope tomorrow is a little less lazy.

Friday, December 26, 2008

Vim And Nose

Vim is probably not the most common editor amongst Python programmers, but I've been using Vim since the Amiga (about 15 years) and I have yet to find another editor I really like, notwithstanding the modal design inherited from vi, Vim's spiritual ancestor. I found an interesting plugin to integrate Vim and nose, a Python unit testing framework. Once the plugin (actually a pair of plugins, one for Vim, one for nose) is installed, you use ":make" to run your tests, and navigate through the errors with ":cc", ":cnext", and ":cprev". The system works great and shows that Vim is an effective editor for Python development.

Thursday, December 25, 2008

Christmas With Family

I'll be spending Christmas with my family. Given the events of the past few days, I'm sure the festivities will be livelier, louder and more chaotic than usual! Its all good fun and I'm looking forward to it.

Wednesday, December 24, 2008

Winter Driving

My sister, Pat, and brother-in-law, John, just walked away a wreck after they hit some black-ice and rolled their car. They were returning from their first visit to their new grand-son in Innisfil (near Barrie) when the accident happened. The car rolled three times before landing upside down in the ditch at the side of the road. Except for a some sore muscles, they are completely unhurt.

My friend Paul commutes between Toronto and Barrie everyday. On the Thursday before the Easter long weekend he was driving home on a back road to avoid the traffic on highway 400, when the back end just stepped out. He caught it. The truck swung the other way and he caught it again. The next thing he remembers is waking up, upside down, stunned, but otherwise unhurt. The truck had flipped end over end several times and landed on its roof. He had hit a stretch of black-ice 150 feet long. Paul is a an exceptional driver but there was no way he was driving out of that much ice.

Black-ice is the only winter driving hazard that I actually fear. In the best case you see cars ahead of you losing control on the ice, so you have a small chance to react. If there are other cars around you, it is unlikely you will escape without some damage. In worst case you don't see the ice and hit it unexpectedly, at full speed. The very best drivers might have some chance to control the skid, but the rest of us will just become passengers. The skid control rules are the same (don't panic, steer, don't brake) but on ice the skid does not scrub off much speed, so you have very little time to react.

Tuesday, December 23, 2008


The large corporations are always waving away government regulation and control. "Let the free market decide," is a common mantra. And yet, they are more than willing to ask the government for assistance when times get tough. Look at the banks in the US. The lack of regulation allowed them to make really bad deals, and when those turned sour, they ran to the government for help.

They have received the first half of the bailout money but there is apparently no accountability as to how they are spending it. In fact they are being downright evasive when they are questioned on the subject. Given that their greed created the current crisis, how can they be trusted to do the right thing now?

The US auto manufactures also got their bailout. These are among the most inefficient companies in the world and do not deserve a bailout. But, they employ a lot of people and that carries a lot of influence with the government. In the end, those people will be out of work anyway. The bailout is just delaying the inevitable.

Monday, December 22, 2008

Parking Lot Wars

On the weekend someone clipped the rear corner of my car and damaged the bumper cover. I was in a half-dozen different parking lots while doing Christmas shopping, and I didn't notice the damage until I got home, so I have no idea exactly where it happened. The plastic actually cracked but that was most likely due to being brittle in the cold temperature, than due to a heavy impact. The other driver might not have even noticed that he hit something.

I'm strange because I always get car body damage repaired. Either it is a pride of ownership thing, or maybe I just dumb. Most people are able to ignore the damage on their cars and it is easy to under understand why: repairs are expensive. This minor repair will cost about $700. If I put it through insurance, the repair will cost me the deductible, $300, but then my premium will go up, so I can't win.

Sunday, December 21, 2008

Why Copyright?

Why Copyright? is the name a documentary made by Michael Geist, one of the leading voices in the Canadian copyright debate. The movie explains why balancing the rights of copyright holders against the needs of ordinary citizens is so important. So many company's are using copyright (and other so called intellectual property rights) as a means to protect their failing business models to the detriment of the customer.

The entertainment industry's business is controlling distribution but the Internet makes distribution effortless. Instead of going with the flow, they decided to fight against it and are now paying the price. None of the major record labels will survive because the artists simply don't need the record companies any more. The musicians can use The Pirate Bay, Facebook, YouTube, and lots of other services to get themselves noticed. No more middle men required.

The movie is available online as a legal download from many sources. Just search for "whycopyright video".

Saturday, December 20, 2008

New Family Member

I have another great-nephew. The latest edition to the family, Ethan Bailey, was born today, just in time for Christmas. Great timing! Of course, he may not like it once he is old enough to realize that the fuss over Christmas is not for his benefit. }:-)

Friday, December 19, 2008

Christmas Parties

Every year my oldest customer invite me to their Christmas dinner party which is usually held an interesting restaurant. Last year the dinner was at a Moroccan restaurant complete with belly dancers! The previous year we went to a horse race track. This year's dinner was at a Spanish restaurant featuring flamenco dancing. The food was excellent.

The dinner group gets smaller every year. This was partly due to a major snow storm so four people were not able to make it. But the main reason is that several people have left the company in past few years, but none have have been replaced. I guess it is a sign of the times when businesses do not hire replacement staff. However, I think this has diminishing returns as the lack of skilled technical people will hurt them in the long run.

The company is not actively looking for new software projects so the only work I get from them lately is support and maintenance for existing systems. As I do less and less work for them, eventually there will come a time when I no longer get invited to their Christmas dinner. While I will miss their dinner parties, it can't be helped as I am already moving in a different direction, make new contacts, and trying new things.

Thursday, December 18, 2008

SSL Certificates

Firefox 3's policy on self-signed SSL certificates is very annoying. I understand why they did it but sometimes all we really want is the encryption and a self-signed certificate is fine. I was asked if there was a work-a-round and the answer is no. You can always add an exception for the certificate but for average non-technical users, it is a lot of extra work. The best answer is to get a certificate issued by a Certificate Authority (CA) but if you only operate a small site, you cannot justify the cost.

Until now I knew of one free CA,, but none of the browsers recognise them so it does help with this problem. I just visited their site and it looks like they are working hard to get themselves included in the mainstream browsers. While researching this problem I found They also provide free certificates and Firefox recognises them as a CA, so it looks like a good solution. Unfortunately, Internet Explorer does not, but it is lot easier to manually accept certificates in IE (or so I've been told, I haven't use IE in a long time). If remember correctly, it was easier in FF2 as well. Oh well, that's progress for you.

Wednesday, December 17, 2008

Bugzilla Installation

After a long delay I finally completed the Bugzilla installation that I started more than a week ago. I had to wait for the MySQL administrator password, which I received last Saturday, and then I only found some time to work on it today. Now I have to wait for the users to try it and see if they need any more help with the setup. I have never used Bugzilla before and so far it looks a more feature complete than Trac, which is my preferred bug tracker. I've heard a few people complain about Bugzilla's interface, but I haven't noticed anything too annoying yet. Maybe the warts will become evident over time.

A commenter pointed out that Bugzilla is available in Fedora but I never thought of looking there. I'll have to remember to try that next time. Even if I had found the Fedora package, it was only Bugzilla 3.0.2 and the user explicitly wanted version 3.2, so I would have installed from source anyway. Sometimes you just go around in circles.

Tuesday, December 16, 2008

Programming Mantras

The topic of this month's PyGTA meeting was programming mantras. With some groups, this might be a serious discussion of various programming methodologies. But this group is more relaxed, so the discussion was actually fun and lively, maybe even a little silly. :)

It was interesting how many people use methods from XP without realizing it. Or more accurately, XP just uses the methods that programmers have been always used, but in a more formal framework. I know people who have used XP and agile development successfully, but it seems to be too heavy for the small one man projects that are my bread and butter.

The one aspect of XP that I really like, is unit testing. I'm still learning how to write good unit tests, but I already noticed that it increases my confidence that the code I just wrote actually does what I think it does. I found that to write good unit tests, you really need to structure your code so that it is actually testable in small sections. And that's a good thing for your overall design anyway.

Monday, December 15, 2008

Future Economies

I completed the code for the next goal of the on-site programming work, but the code is unlikely to be tested until the new year because the plant will be closed. With the entire automotive industry in a tail spin, there is also a chance the plant may not reopen at all. Ontario's economy has always depended on manufacturing but it has been in steady decline for many years. From my point of view, the more interesting automation and control projects became fewer and fewer.

I read an interesting but somewhat pie-in-the-sky article in the Toronto Star about an ambitious plan to transform Ontario's economy. I'm skeptical since it will require politicians to make difficult, unpopular choices and that kind of determination is just not evident in our current crop. Anyway, the article describes a society which consists of a creative class and a service class. My first thought was: sounds like the Eloi and Morlocks. To be fair, the article also recognises the potential danger if the transition is handled badly, but it just adds to my skepticism.

But I also wondered: where do programmers fit into those groups? Naturally I think programmers belong the creative group. But, using outsourcing as evidence, it seems that some people believe that programmers belong in the service group. Is this trend inevitable, or can it be reversed?

Sunday, December 14, 2008

Getting A Christmas Feeling

I actually did some Christmas shopping today. This is unusual because I haven't bought gifts for the past several years. I'm not sure what is different this year. Its not like I have any more money to spend than usual. The contrary is true as the budget is very limited.

My family makes me laugh. This was a great help during the summer when work was very slow. There were only two family gatherings during that time, the annual BBQ and Thanksgiving, but it was great to forget everything and just enjoy the commotion that happens when my family gets together.

So perhaps I feel like giving a little something back to thank them for helping me without realizing it.

Saturday, December 13, 2008

Ouch! Ouch!

I guess it is measure of my lack of fitness just how much pain I'm in after fighting with those blasted wheel nuts yesterday. I suppose how long I take to recover is a measure of my health. I have no idea what I'm talking about. :)

Once I finished my essential chores, I took it easy in the evening. I watched the final round of the WRC in Wales. It became somewhat anticlimactic after poor Mikko rolled his car and lost four minutes. Loeb got a jump start penalty (which was later rescinded) in the penultimate stage and he had to make an awesome charge in the final stage. Man, he is good!

And I watched a lot of anime. The Fall season has some really good shows. I should write more about them sometime. But not today. Yawn...

Friday, December 12, 2008

Strange Tire Deflation

I was about to leave my on-site work, when I notice the right rear tire is completely flat. Damn! First, getting the tire cover of the spare was a problem in the cold weather, but some hot water soften the material and I was able able to remove it. Removing the flat tire was a bigger problem. I've never seen such stubborn wheels nuts. All the usual tricks did not work: WD-40, metal tube to extend the tire wrench, using jack to apply force on the tire wrench. After an exhausting hour in the cold, I had to give up and call CAA. The service man had an compressor and an air wrench so he had the job done in under five minutes.

Now here's the strange part. The CAA service man re-inflates the tire after removing it, and it holds pressure! There's no obvious leak. I had that tire repaired just a week ago, so I took it back to same shop for inspection. I don't believe the techniques that the tire shop's use, are prone to failure, but just in case... Guess what, they couldn't any leaks, not even a tiny one! It would require a severe leak for the tire to completely deflate in about 16 hours, so what happened?

The theory of the tire shop's manager is that the problem was low temperatures and different rates of contraction between the tire and alloy wheel. It's plausible, but it is strange that it has never happened before? My theory is vandalism. But it takes many minutes to completely deflate a tire via the valve. Would someone sit in the freezing cold just for a prank?

It is a mystery.

Thursday, December 11, 2008


I've been using the Bazaar version control system for all my projects for a while now. I'm not sure why I chose Bazaar. It is not the best one by any standard but it feels like it is the right one. Not a very technical reason, I know. I think the clincher was that Bazaar versions directories, whereas the competition (Mercurial, Git) did not the last time I checked. Its funny how that simple capability seemed to be important.

I want to create a Bazaar repository from a utility I wrote, called TomsProjectUtil. (It is hard to come up with good names!) The utility creates project environments based on Trac, Bazaar, and PostreSQL, and Apache. Currently the Bazaar repository must be created manually and I would like to to automate that step. The obvious method is to run the bzr program in a sub-process but, since both programs are written in Python, I can hopefully call hooks inside Bazaar and avoid starting another interpreter. I've only just started investigating how to do this, so it is still a work in progress.

Wednesday, December 10, 2008

Life Without Cable TV

It has been 16 months since I ditched cable TV and yet I watch more "TV" now. Why? Because I can get more shows that I really want to watch with bittorrent, than was possible on cable. Once the non-technical masses can use this easily, cable TV is dead. Bittorrent requires some effort from the user so, by itself, it is not a direct replacement for cable. But more friendly front ends like Miro might just change that.

I have not tried Miro because it depends on xine which seems to use much more resources than mplayer. Anyway, I looked at Miro because it uses RSS feeds to find new episodes of a show. I do this manually now and it is very tedious and error prone. I need something like Miro as a simpler, command line only, application that could automate some of the work. So far, I haven't found anything that might to the job, so it looks like I'll have to write my own.

Tuesday, December 9, 2008


This month's TLUG meeting had a talk on CouchDB, a free form database system that you access via HTTP. Your database query is an URL. We have entered a strange time where technologies traditionally used for web development, are being used outside the browser. Most of it seems to be flavour-of-the-day and anything you use in a project could be obsolete in a few months. One would hope that the better technologies would have some longevity, but I'm not really seeing that happening. CouchDB uses HTTP which was created 20-odd years ago. Will CouchDB be around in 20 years? I am doubtful.

Monday, December 8, 2008

More On-site Work

Oh, joy! The on-site work I mentioned before just got extended. A higher priority project came up and I was asked to help with that instead. We will be updating a system that I helped develop in early 2007. The system performs data acquisition and analysis for a robot that tests an automotive part. Currently only the results of the analysis is transmitted to another system. This change will send more detailed data for one of the tests. This is not a trivial change and there only way to test our changes, is on the actual robot. Oh, joy!

With the current state of the automotive industry in Canada, I'm amazed that projects like this are actually getting approval.

Sunday, December 7, 2008

Why Debian?

I was installing Bugzilla on CentOS today and it reaffirmed my preference for the Debian distribution. Debian has an official Bugzilla package. CentOS does not. If there are unofficial ones, I haven't found them yet. Bugzilla is a well known application so it is not unreasonable to expect there to be an official package, and yet there is not. Perhaps one reason is a lack of resources. It takes man-hours to package an application and that effort might be needed elsewhere on more critical packages.

And that is where Debian is different. There is a Bugzilla package in Debian because someone volunteered to do it. Perhaps the person needs it for some project, or his business depends on it, or maybe she just likes the application. Whatever the reason, the Debian developers maintain the packages on their own time. The result is there are almost 24,000 (I don't have an exact count for lenny) official packages in Debian. This is a phenomenal resource. When I need an application or library for a project there is a excellent chance I can just install it with aptitude, and get on with solving the problem.

Debian would have to change radically for me to switch to another distribution. There is no chance of that happening soon.

Saturday, December 6, 2008


It seems that most of my family has been bitten by Skype. I'm chatting frequently with my brother in Australia. My sister Jean just signed up. Apparently, my other sister Pat and John have been yakking for a while already. The only person left out is Marie, my third sister who lives in England. I don't believe that she would try to install Skype by herself. She has a friend who used to help her with computer stuff, and I'm hoping she is still around. I sent a email to started the ball rolling, let's see what happens.

Friday, December 5, 2008

Canada Is Pierogi

Sorry, I just couldn't resist. I heard someone say it on the radio and thought it was funny. That's prorogued for those who haven't heard, and it means that parliament is suspended. Canada is without a government for 2 months. Gee, I hope we don't have a major crisis like maybe, oh I don't know, a looming recession. Well, I think its just a conspiracy so the politicians can get a longer Christmas holiday. I mean, really, who would believe the Liberal, NDP, and Bloc could agree on anything? Don't believe anything they say. Its lies, all lies, I tell you. Where's my tinfoil hat?

Pierogi anyone? Hmm, tasty...

Thursday, December 4, 2008

When Programming Was Fun

I'm a self-taught programmer. My first program was written on a TI-59 calculator. I hand assembled 6502 machine code on a SYM-1 single board computer before I wrote anything in a high level language. I never thought about the process much. I had an idea, thought for a while, and started coding. If the idea and thinking were good, the code would work, otherwise you started over. Designing software and coding were intricately connected and I never even considered separating the two.

When I started programming professionally, not much changed. I worked with people who had similar experience to mine. Except for the addition of a customer who set the broad requirements, the process we used was still the same. The programmer's always designed the software. It worked. We delivered working systems to customers and the programmer's had fun.

Then I started working with people who had more formal training in programming. Suddenly, design and coding were expected to be separate activities. My mind never really accepted that this was possible to solve a software problem by just talking and thinking about it. Programming became much harder and much less fun than it was before.

Lately I've been thinking about if it is possible to regain that old feeling of fun. Certainly, when I program for myself, it is fun. But is it possible to get the feeling back on paying projects?

Wednesday, December 3, 2008

New Prospect

I built several Linux servers for a small web hosting company over the past year, and that has now led to a new prospect. Its a small job, just to setup Bugzilla on a CentOS server, but it should be interesting. It could lead to some sysadmin work too.

I'm doing a lot of sysadmin work lately and I find it is not really an area that interests me too much. But I need to diversify the business while I reevaluate the application development side.

Tuesday, December 2, 2008

Relaxing Day

After the hectic pace of last week it was good to slow down a little. I did some planning for another Linux server installation but did not push myself to actually get started. I also looked at my own network plans which have been stalled for some time now. My main server is a little overloaded with too many functions. It runs Postfix, Apache, BIND (for internal use only), several lesser services, and the firewall. In addition, the server started life as my desktop system and has never been reinstalled so it has accumulated some cruft over the years. It has been running the same Debian sid install for exactly 10 years, dutifully updated on a daily basis.

I'd really like to split up the server functions. For one thing, it will give a chance to configure things better from the start. For another, it will remove the eggs from the same basket. For example, I need a master DNS server for my own domains but I would prefer to have the DNS on a separate system in case BIND is comprised. I'm not sure how far to go with separating the services since more hardware requires more space, makes more noise, and of course uses more electricity. Since I will likely be using old PIIs and PIIIs, they do not have the performance to run virtual servers. Why use such old systems? Because I can get them for free.

Monday, December 1, 2008

Man's Got To Know His Limitations

There was no way I was going to get the TomsGiftList project into a usable state any time soon. I decided to try and setup GiftWeb again and guess what? It worked! The reason for it breaking 18 months ago seems to have disappeared. I did not even have to change the include path for the ADODB library which I had the last time I tried GiftWeb.

I still don't like GiftWeb even though it saved the day. It is an old PHP application. When I tried the "recommended" PHP configuration for production use, GiftWeb crashed. This worries me a little. I hope that I have not exposed my server to an exploit. GiftWeb was the first and only PHP application that I ever played with, and the experience made me like Python even more. Of course at that time (2003) the Python web frameworks were a little less mature than they are now, so CGI was really the only option for writing Python web applications. No thanks.

I'm glad I was able to get the wish list back online. Nevertheless, it is only three weeks to Christmas so I don't how much help it will be to everyone.

(It was a toss up between Clint Eastwood and Kenny Rogers. :)