Thursday, December 31, 2009

New Year's Eve

I'm spending New Year's Eve with a few friends. We are having dinner at Chinese buffet restaurant then ring in the New Year at my friend Rob's house, which is just around the corner from the restaurant.

I for one will be glad to see the back 2009, the worst year I've ever had. Unfortunately, all I have to carry me into the new year is a somewhat deflated positive spirit. Lets here a big "Yay!" for 2010.

Wednesday, December 30, 2009

Too Much Bad News

It seems we are not going to get out of 2009 without even more bad news. There's still one day left. What more could possibly go wrong? Best not to think about it too much...

Tuesday, December 29, 2009

3D Woes

It looks like my plans for a New Year's Day BZFlag game are in trouble. I configured the server a few days ago and it works fine, no problems there. The client side is a different story. The client is crashing hard, like it takes down the whole computer. I can't even login remotely.

Since I don't run 3D applications very often, the problem may be BZFlag, a kernel problem, a library bug, or a zillion other things. And, since is is a hard crash, there's nothing running that can write a log message or any sort of a clue. I hate it when software gets this complicated.

Unless I can figure this out soon, I guess the game is off. Sniff. Wipes a tear.

Monday, December 28, 2009

Doctor Who: The End Of Time Part 1

Thoroughly enjoyed part one of The End Of Time. The cliff hanger ending was so unexpected that I'm still still reattaching my jaw. However, the cafe scene was by far the best in whole episode. I wish it could have been longer, but unfortunately the plot waits for no one. It was great to see Donna and Wilfred back but it is still not clear why they are so important. I guess we'll find out in part two which I have to wait a whole week to see... Damn!

Sunday, December 27, 2009

Too Relaxed?

Can one be too relaxed? If so that would be my current state. I'm at that point where I'll actively look for stuff to do, so that the relaxed mood doesn't turn into boredom. There's a fine line, though. If I dive into a project with too much gusto, suddenly I'm no longer relaxed and lately I have found that state is not so easy to achieve without the help of family and family.

As you may have noticed from the last couple of posts, there's not much going on around here. Yes folks, it's the mid-holiday doldrums. ^_^

Saturday, December 26, 2009

Slow Is Good

Took it easy today but still sorted through my projects, deciding which were interesting enough to continue and which could be retired. I also discovered the Firefox Java plugin is broken when I tried to run the AniDB applet to update my anime list. The plugin doesn't work on any of the test sites I tried, so I have no idea what might be wrong there. Mutter, mutter.

There were a lot of other things I probably should have done, but it was suppose to be a slow day. ^_^

Friday, December 25, 2009

Awesome Day!

Another Christmas is over and I had an awesome day with the family. If you walked into one of our gatherings, your first impression might be that a fight had broken out. It is chaotic and noisy, with too much going at the same time. It is oddly stimulating and relaxing at the same time.

All the memories of I have of parties in Cape Town, whether hosted by my parents, by relatives, or by friends, where like this. That's just how it is when South African's gather to have a good time.

Thursday, December 24, 2009

Where's That Holiday Feeling?

Damn! I'm just not getting that holiday feeling yet. After I finished baking the koeksisters, I found that I still had a long list of things that I needed to get done. I have such a happy-go-lucky bachelor lifestyle. Yeah, right!

Fortunately, I'm having Christmas dinner with my family, so tomorrow will be completely relaxing, in a chaotic, noisy, stuff-your-face, kind of way. If that doesn't put me in a holiday mood, nothing will.

Wednesday, December 23, 2009

Holiday Crunch

I'm not buying gifts this year. I know, I know, I'm a bad person, but there are extenuating circumstances. Anyway, I decided to bake some koeksisters so as not to show up completely empty handed. But Christmas is on a Friday which has made my schedule a blooming nightmare to get the baking done. Might have been easier to buy gifts... Or maybe not. Tough call.

Monday, December 21, 2009

Dates Start With One

Why is it that everyone seems to ignore the the fact that dates always count from one? There was no year zero. There was no century zero. Therefore the year 2000 was still the 20th century and 2010, not 2009, is the final year of the decade now dubbed "the noughties."

This is an example of how inaccurate information becomes accepted as a fact. Unfortunately, I see no way to correct this misinformation as long as everybody keeps spreading it around like a virus.

Sunday, December 20, 2009

Another Busy Weekend

My youngest grand-nephew was one year old today and that's as good a reason as any for a family get together. Not that South Africans really need a reason for a knees-up. It was kind of like a curtain raiser for the main event next Friday.

This is the third weekend in a row I attended a get together, making this the busiest December I've ever had. I'm getting a little worn out and there's still two more gatherings to go. Phew! Huff! Puff!

Eurostar Vs Winter

It seems Eurostar channel tunnel trains really don't like serious Winter weather. It wasn't so much the cold, snowy conditions but the melting that resulted after the trains entered the warmer tunnel. And as we all know, water and electrical equipment don't mix. It is amazing that nobody considered this possibility in the designs. Is this an example of fair weather thinking?

Friday, December 18, 2009

Stealing History

I'm stunned that anyone could steal from anything Auschwitz, let alone the infamous sign above the gates. This is like stealing history itself. Whether it is a random act of vandalism or a deliberate acquisition by a collector, it shows how some have no regard for history and the lessons we may learned from it.

Thursday, December 17, 2009

Dark Matter

So what happens if we confirm the existence of dark matter? Perhaps Douglas Adams already gave us the answer:
There is a theory which states that if ever anybody discovers exactly what the Universe is for and why it is here, it will instantly disappear and be replaced by something even more bizarre and inexplicable. There is another theory which states that this has already happened.
The man was a genius!

Aussie Internet Filters Again

It seems that some people just can't give up on dumb ideas. The Australian Government wants to filter the Internet. Wow, nice to know Western democracies have so much in common with Communist China. Of course all the usual bogeymen are mentioned to justify the censorship. Think of the children!

Wednesday, December 16, 2009

Functional Programming In Python

At this month's PyGTA meeting we attempted to write a trivial application in Python using functional programming concepts. First, lets be clear: Python is not a natural language for functional programming. For one thing, the Python interpreter does not support the parallelism that a proper functional programming language will offer. However, it is possible to write in a functional style in Python, just don't expect much in return for your efforts.

The real difficulty was not Python itself but the group's lack of experience with functional programming. When you are used to using variables everywhere, it is actually quite difficult to write code that uses none. We commonly use varibales to save state and since functional programming is stateless, variables are a big no-no. In the end only Mike Fletcher got something that worked using functional programming techniques, but it still used a couple state variables, and so the program was not completely correct.

So what was learned from the experience? Functional programming is a lot harder than anyone thought. Next time someone waxes about how great a paradigm functional programming is, ask him to you show a real application he has written. If he hesitates, you can safely ignore everything he says.

Monday, December 14, 2009

Schumacher Returning?

Michael Schumacher may be returning to Formula 1 to drive for the Mercedes (formerly Brawn GP) team. Since this is strictly for marketing reasons, I sincerely hope it does not happen.

Everyone one has their time. Micheal has had his time in the spotlight. Now it is time for that spotlight to shine on the up and coming talent. It would better for the sport if Schumacher nurtured the new drivers rather than hid them in his shadow.

Sunday, December 13, 2009

The Sarah Jane Adventures Series 3

I just finished watching the third season off The Sarah Jane Adventures. The highlight of the third series, was a full story featuring the outgoing Doctor, played by David Tennant. However, the other 5 stories were really good as well. Oh, and K9, the famous robot dog, now has a permanent part after the rights to use the character name were resolved. All-in-all, a very entertaining season.

Friday, December 11, 2009

The Competitor Returns

The Industry Minister has overruled the CRTC and given Globalive the green light to enter the Canada telecommunications market. That's great news for cell phone competition in Canada. Micheal Geist thinks it may even be a precursor to changes in the laws regarding foreign ownership.

I'll bet the incumbent telcos are fuming over all that lobbying money they wasted on the CRTC to get Globalive disqualified. Even now they must plotting their revenge, digging up dirt on Minister Tony Clement... What? You think they wouldn't? It's suicide for politicians to go against their corporate masters.

Thursday, December 10, 2009

BZFlag Again

I'm hoping to organize a BZFlag game for my friends on New Year's Day, similar to what I tried last time. The emphasis will be on "organizing" with an actual game time as opposed to just hoping people join in at the same time. That failed miserably which in hindsight should have been obvious. Everybody actually connected at least once but just never while some else was around. So everyone was interested but found they had nothing to do. Hopefully it will work out better this time.

Wednesday, December 9, 2009

It's Here!

Ah well, I guess there's no avoiding it. The snow, I mean. The torontoist blog made a time lapse video of our first snow storm last night. I hope they plan to do this for all the storms. This one wasn't very bad, but the snow turned to rain and made it really hard to shovel. Wet snow is heavy!

This is only the beginning... A sign of things to come... ominous silence.

Revision Control

This month's GTALUG meeting consisted of series of short talks on four different revision control systems. Aaron Bentley was first and talked about Bazaar. Aaron used to be a core developer for Bazaar so his knowledge runs much deeper than the user level talk he presented. Christopher Browne talked about Darcs, the only one out the four that I've never used. Drew Sullivan presented git, in a rather, um, unstructured fashion. Myles Braithwaite gave a rather frenetic talk on Mercurial as he was running out of time.

Now far the fun part. Which one is better? The only honest answer is none of them. For any typical project consisting of a few dozen developers, there is nothing to choose between the four systems. It is interesting that whenever a feature was held up as a reason why one system was better, it was fairly easy for one of other the presenters to shoot it down. It was all for fun of course, since nobody could hold the high ground for very long and any differences was just splitting hairs.

Monday, December 7, 2009

Now That Was Fun

I laughed myself hoarse yesterday at the get together with my friends. We ordered some Thai food and played a few different car racing video games, probably the only type of game at which I don't totally suck. Well, more like we all sucked the same. It was great fun but all too short.

Sunday, December 6, 2009

Boys Night Out

After the kerfuffle yesterday, I'm looking to forward to meeting with my friends this evening. One day I should write about how the group formed. It may surprise you but it wasn't for computers or anything technical at all.

Saturday, December 5, 2009

'Tis The Foolish Season

Good grief, that was some massive miscommunication! Jean's all day event is next week, on the 12th! I swear when she told me about it, she said the December 5th. It just proves the point: get everything in writing! Even Jean can't be sure of what she said.

The best part is, I showed up just as she was leaving with my other sister and brother-in-law in their car. I jumped in, hoping to find out what was going on, and we all had a good laugh over it. Ah, such foolishness!

The only remaining problem is, what am I going to do for the rest of the day...

'Tis The Season

Well, I guess it's the time of year for social gatherings. This weekend is going to be busy.

My sister Jean has her all day, drop-in-whenever-you-can event today for the first time in a few years. It's a pretty crazy idea if you ask me, which might explain why she hasn't had one in a while. Strangely I'm the only family member who actually goes, which tells you a lot about my family. Of course, I go for the "all day" part, and just hang out at Jean's for the day.

Tomorrow evening, my geek friends are having a get together, a retry of the one aborted last month. It is telling that we managed to arrange another date at this busy time of year.

Friday, December 4, 2009

Raikkonen Moves To WRC

It is awesome that Raikkonen will be driving in the WRC next year. First, he brings valuable media attention to a motor sport that generally doesn't get much coverage. Second, the WRC needs some fresh talent to shake things up a little. Third, and most importantly, he is very quick in a rally car, as he proved in Finland in last August. Now, he did crash out eventually but that was probably just inexperience. So, while he may not be a potential WRC champion, he could be on the podium a couple of times.

Raikkonen only has a one year deal with the Citroen Junior team, so he may return to Formula 1 in 2011, but who knows? If he does well next year, he could also remain in a WRC car. I wouldn't mind that at all.

Thursday, December 3, 2009

Messed Up Day

I overslept this morning. So what, you might say. While it is true I can't be late for work, I do try to keep something resembling normal work hours. If you don't do this when you work from home, it is easy to end up working all the time.

Anyway, I overslept by a seriously long time. I don't understand why. I went to bed earlier than usual. I slept right through the alarm. Even the noise from the upstairs neighbour didn't wake me up. It was all very strange. I hope it was a one off thing because it really messed up my day.

Wednesday, December 2, 2009

Missing Coding

None of my work projects currently involve any programming whatsoever, so I've turned to my personal projects to get my coding fix. Note that this not necessarily a good thing because it means that the paying projects are quite small. But, hopefully, they will lead to other, bigger projects. That's the plan anyway.

Tuesday, December 1, 2009

Snow Record

Toronto set a record! We made it into December without any snow for the first time in over 160 years. Then they tell you Toronto only gets 8% of its snow in October and November. Kind of puts the record in perspective, doesn't it?

Monday, November 30, 2009

Vitualenv And Pip

I'm adapting to virtualenv and pip as part of my Python development environment. You use virtualenv to convert your development tree into a virtual Python environment, sandboxed from the rest of the system. You still run the system Python interpreter, but it finds modules installed in the virtualenv first. Basically, pip is a package manager which allows you to add and remove Python modules. But pip has one feature that sold me on the idea.

I mostly write command line utilities in Python. For the more complex commands, I usually write functional tests which required hard coding the executable path to ensure that tests run the correct command. In addition, you have to fiddle with the Python module search path to ensure the command's library modules can be found. It's not hard, but it is inelegant and not very portable.

The key feature is that pip can convert your development tree into a Python egg inside the virtualenv. The process installs the command under test into the virtualenv /bin directory and makes it's modules available in the normal Python search path. The tests can now safely execute the command without any special setup.

Yes, it seems like a small thing. But anything that makes the code simpler, is a good thing.

Sunday, November 29, 2009

Time Flies

Time flies when you are having fun. Unfortunately, time flies even when you are not having fun. Time flies no matter what you do. Whoever coined such a pointless phrase should be hung. I'll bet he was, too. People didn't put up with fools like we have to these days.

Saturday, November 28, 2009

Redmine Vs Trac

I installed Redmine to take it for a spin and my first impression was generally favourable. I'm a long time Trac user, but lately development on Trac seems to have slowed. I decided it was time to check out other options.

The one area where Redmine beats Trac hands down is the admin interface. By comparison Trac's admin interface was until recently a third party plugin which has now been incorporated into Trac itself. Even so, you will still need to edit the configuration file for some things, which hasn't been necessary in Redmine at all so far.

The other significant difference is that Redmine is multiproject. This has been been a long standing feature request on Trac, but it never designed to work that way. Converting Trac to be multiproject is possible, but it had to be forked (DrProject) and took a lot of work. In fact, DrProject has already been supplanted by Basie, so there is limit to what can be done with the existing Trac code base.

Redmine's issue tracker has one notable feature. You can enter time estimates and actual duration of work on each ticket, and display the information on a Gantt chart. Personally, I have no use for Gantt charts but I know managers love 'em, so that feature alone maybe enough to convince your boss to try Redmine.

I started a project using Redmine so that I can get long term impression. So far I haven't seen anything that I make me not use it. Oh, except maybe that it is written in Ruby. Sorry, I had to find something negative say...

Friday, November 27, 2009

F1 Returns To Montreal

It is a sign of the times that Bernie Ecclestone got less than he was asking for the 2009 race last year. That alone would put a smile on my face. Ecclestone doesn't back down very often.

It is great to have a Canadian Grand Prix back on the calender for 2010 at least. Hopefully they'll make the five year deal as well. Now if only we had a Canadian driver as well, or maybe even a Canadian team! That would be cool. OK, maybe I'm getting too ambitious.

The only annoying thing is, I still won't see the race live. Oh well, you can't have everything.

Thursday, November 26, 2009

Did You Notice?

I somehow missed that I've been blogging continuously for over year. It's not very impressive compared most other people, but in my case it might just be a minor miracle, considering my previous efforts were always so short lived. Sometimes I never got past one post!

Writing isn't the problem as I actually enjoy doing that, although it would help if I could type more accurately. The problem is a lack of material. I don't exactly lead a very interesting life, but I'm not wishing for one either. I find writing about technology to be the hardest because I rarely learn anything to such depth that I could write about it authoritatively.

I will try and keep this going. Who knows, maybe I can make another year.

Wednesday, November 25, 2009

Wave! What Is It Good For?

Absolutely nothing! Yes, I know it's just sad that I'm referencing Springsteen.

After lurking on a few Wave RPGs, I finally decided to try playing in one. I suspect that makes me one of the few people that has found something to do on Wave. Note carefully however, I didn't say it was a useful something.

People who expect technology to do useful things, are out of luck on Wave. That means that a lot of people are activating their accounts, logging in once, poking around a bit, concluding Wave is useless, and never ever logging in again.

I've concluded that Wave requires you to imagine a use for it, before it becomes useful. Seriously. That's so stupidly counter-intuitive that I reached a second conclusion:

Google probably doesn't know what Wave is good for either.

(This post was sponsored by the makers of the italic font style.)

Tuesday, November 24, 2009

Heads In The Sand

One part of the fee-for-carriage demands by Canadian broadcasters requires cable companies to block the feed from a US broadcaster, instead just replacing the US feed with one from the Canadian broadcaster. This will enable the Canadian broadcaster to schedule the show a different time, while keeping at least the same advertising revenue. Are these folks nuts?

So let's see... People see black screens when they tune in to a US TV channel. They start asking around. They discover they can get the show on the Internet. Nobody watches the show on the Canadian broadcaster. The broadcaster loses advertising revenue and goes out of business. And good riddance!

The people who run these companies must their heads buried the sand. It is obvious they don't have a clue about the options are available to average people.

Monday, November 23, 2009

How Do They Do That?

It is actually impressive how copyright holders are able to influence politicians to draft bad laws. The UK's Digital Economy bill is a great example. If this thing passes as is, ISPs would be required to forward notices of infringement to their customers and retain an anonymous list of the customers that received notices.

But it gets better! The rights holders can demand to see the list at any time and use it to get a court order that will reveal the actual customer information. Now isn't the the most perfect setup you've ever seen. Lets declare open season on suing a lot of Britons for non-commercial infringement.

While the bill is a long way for becoming law, the fact that it got drafted in the first place is far more worrisome and even a little terrifying. This Ars Technica artical looks the bill in more depth.

Sunday, November 22, 2009

Doctor Who: The Waters Of Mars

The best part of The Waters Of Mars wasn't the story, which was rather average Doctor Who fare, but watching the Doctor start down the slippery slope of megalomania. He has always been arrogant and self-righteous, but at the end you always knew that he had done the right thing. That was definitely not the case in The Waters Of Mars. The story ends with the ominous sound of the cloister bell, but this time the danger may be The Doctor himself.

Saturday, November 21, 2009

Sci-Fi And Technology

This article discusses the feedback between sci-fi and computer technology. The connection between near future sci-fi and computers actually seems valid, but in other areas of technology, not so much. Most sci-fi about space travel has been way off, for example. And this is only interplanetary, not interstellar travel that I'm talking about!

Look at 2001: A Space Odyssey. Large permanent space stations orbit the earth. Travel to and from the stations is routine. There is a fairly realistic long term deep space mission to Jupiter using a ship specially build for the project. Compare that to the proposed Mars mission which, even if it does happen, will be 30 years later and probably be less technologically advanced. The computer might be right though. ^_^

Of course the difference in complexity between computer technology and space travel is huge. But there is another more subtle difference. Computer technology is created by private companies that are motivated by profit. Space technology is still largely funded by governments motivated by... what? That is changing of course, but those private companies involved in space tech are still very young, and in some cases are using 60 year old technology.

Friday, November 20, 2009

Chrome OS

No, I'm not going to gush about how wonderful Chrome OS is. One, there is more than enough being written about it already. Two, I haven't tried it. Three, I don't really care enough to try it.

I believe that computers became truly powerful with the advent of with microcomputers. I don't mean powerful in terms of performance. The microcomputer gave individuals the power to use computers as they pleased and in the complete privacy of their homes. Before the microcomputer, what you were allowed to do on a computer was determined by the policies of the institution that owned the computers.

Chrome OS is leading us back to that world, and it make me a little sad. Yeah, I know I'm being overly dramatic, but I don't think that I am wrong either.

Thursday, November 19, 2009

Email Challenge

I'm trying to help a programmer remotely using only email. Whether this will work remains to be seen. In theory, it should work since I am only supposed to help him understand some high level concepts. He has already written most of the application but controlling hardware is proving a bit too much of a challenge, but I can tell he gets some of it. Just need to figure what he is not getting.

To be clear, I am hoping to avoid getting into his code at all, unless I absolutely have to. Looking at someone's code, in an unfamiliar language, on Windows no less, just doesn't seem very appealing for some reason. So, if the email help doesn't work I'll definitely try other channels first, before looking at his code. Yeah, I'm being very optimistic.

Wednesday, November 18, 2009

Personal Wave

My main problem with Wave is not technical, but social. When I finally got some Wave invites to hand out, I naturally gave one to all my close friends. They are all geeks so one would think that they would be playing with the new shiny thing at least a little bit. But life away from the keyboard takes priority, so they really haven't been visiting Wave very much. Today was actually the first time I had a real time conversation on Wave with someone I know well. Weird that it took so long.

Tuesday, November 17, 2009


The topic for this month's PyGTA meeting was Cython. However, instead of a presentation we had a coding dojo session in which we tried to solve a problem using Cython. We certainly had fun, which is one goal of a coding dojo session, but we lost the plot at some point and didn't achieve most of the other goals.

Python has a peculiarity that doesn't occur in most other languages: there are often several competing libraries or frameworks that accomplish the same thing. Look at all the Python web frameworks, for example. Cython is another example of this phenomenon. Cython is similar to SWIG, ctypes, Boost.Python, and maybe even a few others. Each of these allows you write (or generate) wrappers for low level C/C++ functions in Python.

Python's mantra, "There is only one way to do it," applies only to the language itself and not to stuff written in Python. Now you know. ^_^

Monday, November 16, 2009


I've been using the Google Chrome browser as a dedicated Wave client for about a week and have been very impressed. Chrome easily beats Firefox in memory usage and performance, which is most useful when using an oinker application like Wave.

However, I won't be switching to Chrome completely for my daily browsing needs, until essential functionality like NoScript are available. Once that happens, Firefox's days are numbered as the main web browser on Linux.

Sunday, November 15, 2009

Hey, What Can You Do?

This evening I was supposed to have a get together with some long time friends from my college days. Last night Dean, the one who was hosting the event, announced that a small customer project was taking loner that expected, and he may have to cancel the get together. Oh no! Sure enough at around noon today, we all got phone calls with the bad news that it was off. Sob! Well that was that, but what can you do? (I think Dean forgot to multiply by π. ^_^)

Obviously, we'll try an arrange it for another time. However, it is that time of year where schedules tend to get crunched by family commitments, etc., so I won't be surprised if we can't pull off.

Saturday, November 14, 2009


07-Ghost is an interesting sci-fi anime that may not be to everyone's taste. First the main character, Teito Klein, is deeply introspective to the point of being annoying at times. During the early part of the series, Teito wears these slave chains which (I suppose) symbolize that he is enslaved by his own doubts and fears. At a crucial point in the story he breaks the chains, setting himself free. There is more like that, but you get the idea. ^_^

Despite all that, I enjoyed 07-Ghost. The story starts slow but the pace progressively quickens as more of Teito's past is revealed. There is one let down though, because even with 26 episodes, the story isn't finished yet. Although Teito has broken some of his chains, he is not completely free yet, and there is still much of his past that he doesn't remember.

Friday, November 13, 2009


I am usually not interested in sports anime, so I surprised myself by watching Basquash! all the way to the end. I guess if you mix in some sci-fi, I'll watch anything!

Basquash was actually better than I expected, despite the oversized product placement by the main sponsor, a well known sports footwear company. Basquash is actually three-on-three basketball that is played using giant mecha called bigfoots. The mecha needs shoes to maintain its footing so you can guess how the sponsor was convinced to climb aboard.

The story kept me interested because it changes from a basic sports tournament story into a "save the world from annihilation" story about half way through. It would be easy to botch such a radical transition but it was handled rather well. The other selling point is the main character, Dan JD, who undergoes a change in personality from angry and reckless to calm and thoughtful. As I mentioned before, the series is surprisingly better than you might expect.

Thursday, November 12, 2009

Intellectual Poppycock

This is old news but I decided to write about it after Remembrance Day.

The Royal Canadian Legion claims that the poppy symbol is its Intellectual Property. How is that possible? The symbol of the poppy existed before the Legion did? And of course, as is so common with IP rights, the Legion has taken a very heavy handed approach to enforcement. With all due respect to the Legion for all the good work they done, I think they are out to lunch on this matter.

Read this story about a bakery making a special order of poppy shaped cookies and tell me if it was not a worthy use of the poppy. Or this story about a peace movement using white versions of the poppy. Or this use of the poppy symbol. Instead of a "cease and desist," a letter noting that the symbol is trademarked, would have been sufficient. None of these activities were disrespecting the symbol at all.

It seems that corporate culture has infiltrated the Legion. Someone needs to mount a rescue mission to save the Legion from itself.

Wednesday, November 11, 2009

Remembrance Day

I wonder how many people actually pause and reflect on the significance of Remembrance Day. I'm sure most do not. The sacrifice of all soldiers, from the major conflicts of the twentieth century to the more recent loses in Afghanistan, must be remembered, not to glorify war but to encourage us to avoid it. It is a sad reality that we are no closer to this goal than we were a hundred years ago, and every soldier lost today serves to remind us of our failure.

Tuesday, November 10, 2009

BASH Programming

At the this month's GTALUG meeting, Chris F. A. Johnson gave a talk on BASH programming. Chris is one of our shell programming experts and is the author of Pro Bash Programming, so I knew the talk would be informative. While most of us write simple shell scripts for automate everyday tasks, Chris uses BASH for all his application development whether trivial or complex.

BASH never appealed to me as a general programming language for one reason only: it use too many special characters as syntactic sugar. It is the same reason I never took to Perl, TCL, and even Ruby. But that's just aesthetics and has nothing to do with the capabilities of the language. And, as Chris showed us tonight, BASH is plenty capable of doing everything that you might need for writing real world applications.

Monday, November 9, 2009

True Mazinger 26

I just watched the final episode of True Mazinger and it is the best mecha anime I've seen. The series is almost non-stop action but it is all tied together with a great story. The ending is simultaneously surprising, a little anti-climactic, and a damned good setup for the sequel. Don't you just hate it when when they do that. ^_^ But don't let that stop you. Even if you are not a mecha fan (and I don't count myself as one) this anime is worth a look.

Sunday, November 8, 2009

Fun With Alpha Waves

I'm starting to enjoy myself on Wave now. At first I couldn't find anything to do that kept me interested for very long, but finding the roleplaying waves gave me something to explore further. And, a few friends are finding their way on the system, and everything is better with good friends. But, this is alpha (maybe pre-alpha ^_^) software, so there are a few humorous quirks. Well, maybe not so humorous...

For example, once you add a person to a wave, you are stuck with them. That's right, you can't delete them. I discovered this after I accidentally added someone to a wave. Fortunately it was a scratch wave, and I know the person well, because any wave member can change that wave, including adding new members. Wave has no access control yet. After a while I decided to add others the wave and just turn it into a sandbox for all my friends to play in.

I decided to do that because of another funny flaw: you can't empty the trashcan so you can't delete a wave. It gets even more strange because waves in the trashcan are still "active" so bots can find and act on the junk waves. I discovered this little quirk when the DiceLink bot seemed have difficulty finding the correct character record sheet. I remembered I had stuck an older record sheet the trash, and when I tried to empty the trash: oops, there's no option to do that yet.

Although these are serious problems, I'm making light of them because Wave is still alpha software, so some things just won't work properly yet. Now if this had a 1.0 sticker on it, I'd be slightly less forgiving.

The astute reader will have realized that the problems are linked. You cannot delete the wave unless you can also delete a user from the wave. And deleting a user from a wave raises whole bunch of other questions. What do you do with all their blips in the wave? Do you just remove the wave from the user's inbox as well? And so on. Isn't software development wonderful?

Saturday, November 7, 2009

RPGs On Wave

Role playing games were an obvious choice for a bunch of geeks looking for something interesting to do on Google Wave. Out of necessity game play must use a text based narrative style since graphical extensions suitable for a tactical style game, are not available yet. I expect that will be one the first type of Wave extension to emerge once developers get into their stride.

The narrative style is interesting because you end up with complete story written collaboratively by the players. This is something you never got when playing around a table, unless someone recorded and transcribed the conversation. I've never met anyone who would volunteer for that job!

One method for formatting the narrative is described here, but even that is likely to change as everyone gains experience with medium. Hopefully the narrative style will continue after the graphical tools become available.

If you are on Wave, then this wave will get you started. If you do not have a Wave account, this Ars Technica article explains some of the difficulties.

Friday, November 6, 2009

CPU Usage

I miss not having a multiprocessor (multicore these days) system.

While tracking down why a 720p video suddenly started losing audio sync, I discovered that Firefox was using excessive amounts of CPU. I had a Google Wave tab open so I closed that first since it is only beta (alpha?) software. Firefox's CPU usage dropped noticeably but it was still excessive. Next I closed the tab with the Google I/O conference key note videos. That did the trick. So lesson for the day is: don't open a page with ten embedded flash videos, watch one video, and then leave the tab open all day.

Unless you have multiprocessor system of course, then you want to keep all the CPUs busy. ^_^

Thursday, November 5, 2009

UPS Failure

During a brief power outage today, I discovered the hard way that one UPS was no longer working. Only after a self test did it reveal that the battery needs to be replaced. This strikes me a being a poor design for a UPS. Well, it is a cheap UPS so I suppose, "You get what you paid for it." I guess I should have been testing each UPS regularly and not assumed they would indicate a problem automatically. Assuming is bad.

Wednesday, November 4, 2009


The negotiations for the Anti-Counterfeiting Trade Agreement (ACTA) have resumed at a meeting in Seoul, and is being covered here, here, here, and a boatload of other places. It is hard to get accurate information since the negotiations are not public and the physical documents are all water marked and traceable. That's just for trade negotiations, I remind you.

However, there are always some leaks and, if accurate, the power this agreement would give to corporations is terrifying. Any country that agrees to this treaty would be giving up all control over their internal copyright policy. The negotiations include wonderful provisions to criminalize non-commercial infringement, to disconnect Internet service of infringers, and other nasty, nasty stuff. Yeah, ACTA is getting real scary now.

I don't understand why Canada is still participating this clusterfuck pretending to be trade negotiations. We just completed public consultations on copyright reform and Industry Minister Tony Clement has stated that Canadian copyright laws satisfy all our international commitments. If he can acknowledge that, why is Canada is still involved in ACTA? Something stinks dear reader, and it has the fetid aroma of lying politicians.

Tuesday, November 3, 2009


There's a new site,, that is trying to get artists and fans talking to each other without the middle men, who have an agenda that is not in the best interests of either artists or fans. The founders of are well known and credible: Billy Bragg and Jon Newton of is very new but the most interesting discussion so far is here.

The main problem will be is getting other signed artists to join the debate because they may not be able go against the record company. Bragg is the only well known artist who is posting under his own name, so I wonder how bridges he has set on fire with this. The success of depends on getting more artists involved, but it won't be easy. The fans are already well represented and Bragg could use some help!

Monday, November 2, 2009

F1 Abu Dhabi

Thank you Mark Webber and Jenson Button for giving us a thrilling end to the season. The last couple of laps were just brilliant. I bet Bernie Ecclestone wishes he could arrange every race to end like that!

The Webber-Button duel made the race worth watching. It always seemed like potential fights would develop but they would peter out one reason or another. Vettel looked like he might have to fight Hamilton for the lead, but then Hamilton retired with a brake problem which handed Vettel the lead. On the other hand, if Hamilton had had a trouble free race, he might well have been untouchable anyway; his qualifying performance was awesome!

I don't have an opinion of the new Abu Dhabi circuit yet but the drivers seem to like it, which is the only opinion that really matters. The pit lane exit tunnel is interesting but a bridge would have been better, as spectators would be able to see the cars from the grandstands. And the poor marshals stuck in the tunnel would have seen more racing!

Well, it was an amazing season but I'm already wondering about next year. Several teams seemed poised to start next season well, which means we may have much closer racing that ever before. We can only hope! I haven't been this fired up over Formula 1 in maybe 10 years. The 2009 season was a real game changer for a sport which had become a little too predictable.

Sunday, November 1, 2009

Not Keeping Up

Obviously I am not keeping up with the electronics hobby scene when an item such as the Arduino passes me by. <sigh> It is ancient too, dating way back to 2005. I wish that I could claim senility or some other medical condition, but it is more likely that I simply had a brain fart when the Arduino first appeared. Read the executive summary on Wikipedia.

Saturday, October 31, 2009

Happy Halloween

Halloween is one North American tradition that never grabbed me when I moved to Canada as a teen. I guess you could say that I was just never able to get into the spirit of the thing.

These days when I want to see something really scary, I just check my financial statements.

Friday, October 30, 2009

Honour Roll

Another Canadian soldier died in Afghanistan today, the second in as many days. The complete list puts faces on all the Canadian soldiers that have been lost. We must never forget.

Thursday, October 29, 2009

One Less Competitor

Our beloved CRTC is in the news yet again, this time for blocking one of the new wireless competitors, Globalive, from entering the Canadian market, because of the foreign ownership rules for telecommunications companies. Considering that Industry Canada accepted Globalive's bid during the spectrum auction, the ownership question must have been settled before that.

Naturally, the incumbents complained and the CRTC agreed with them, which looks like a classic example of government department's not following the same playbook. Industry Canada wants more competition while the CRTC is following the letter of the law.

The incumbents have had a strangle hold on the Canadian telecommunications market for far too long. The only way to shake things up is to change the rules. If means that means allowing more foreign ownership so be it. I'm sure that later there will consequences for loosening the rules, but we need the competition so badly in this country.

I wonder if Globalalive can get a refund for the spectrum they bought but now cannot use? No doubt their lawyers are already salivating at the fees they will earn from this debacle.

Wednesday, October 28, 2009

WRC Great Britain

Loeb scores his sixth driver's title and in the process demonstrates why he has six to his name and his nearest rival is still just a contender.

Hirvonen's rally started well but by the end of day one, Loeb had already taken a 4 second lead. Hirvonen's day two was very troubling. He was way off the pace which left him 30 seconds behind Loeb. Hirvonen was back in form on day three, but he was pushing too hard and damaged the bonnet on a jump. Forced to slow down, and then eventually to stop and remove the bonnet, Hirvonen lost 1 minute which destroyed any chance of the win and the title. But Loeb also had problems on day three. A failing turbo caused him to slow dramatically but Hirvonen was no longer close enough to capitalized on it.

At the beginning of the season I predicted that Loeb would run away with championship. And he would have done so if he, and the Citroen team, hadn't made a few mistakes which presented Hirvonen and Ford an opportunity. However, before that opportunity arose, Hirvonen was not driving well at all. Hirvonen only started driving like the championship contender that he is, after Loeb showed that he is also fallible.

Unfortunately, the Hirvonen from the beginning of the season returned on day two of the rally. And it was day two that actually cost Hirvonen the win and the title. The team changed everything on car that they could, looking for a problem and found... nothing. Which means the lack of speed was only in Hirvonen's head. There is no doubt that he is has the skills to be champion, but mentally he is not quite ready yet. He is very, very close though, so maybe next year.

Tuesday, October 27, 2009

Interview With CRTC Chairman

After listening to the Search Engine interview with CRTC Chairman Konrad von Finckenstein, it is clear why the CRTC needs to be dissolved. If the Chairman is so completely out of touch with reality, the Commission in its current form will never be able to serve the interests of the Canadian public. If you are Canadian please take a minute to sign the petition at

And you can count me as one of Finckenstein's "Internet Hogs." I use my 3Mb/s to its maximum potential!

Monday, October 26, 2009

MPlayer Bleeding Edge

I've been using mplayer from the git repository because it provided the best solution to the problem of Matroska order chapters (linked segments, linked chapters, whatever) in fansubbed anime. But development moved off the master branch and my earlier attempts to compile the tmp_build branch didn't work because mplayer's configure script could not find FFmpeg.

The requirement that FFmpeg be embedded in the mplayer source tree, has been removed, so you either have to build and install FFmpeg from source, or install whatever binary packages are available for your distribution. I choose the latter because I am using Debian/unstable and the packages in the multimedia repository are usually recent repository checkouts anyway.

The following packages from Debian multimedia satisfy all mplayer's FFmpeg requirements: libavcodec-dev libavformat-dev libpostproc-dev libswscale-dev.

Other packages I found useful for codecs: libx264-dev, libxvidcore4-dev; and for audio and video: libasound2-dev, libxv-dev; and for ASS substitles: libfreetype6-dev, libfontconfig1-dev, libass-dev. This list is incomplete since I haven't tracked every library I have installed. Just install what you need, when you need it.

To build the tmp_build branch:
$ git clone git://
$ cd mplayer
$ git checkout -b tmp_build origin/tmp_build
$ ./configure
$ make
$ make install
For bleeding edge software, it works great! The little glitches in the Matroska ordered chapter support are all gone which is a great improvement.

Which leads to the question: why are these improvements not being merged into the master branch? Master hasn't been updated in about four months. Even an unofficial project needs to make it clear what people should be using, otherwise someone like me will just tell the world how to use the bleeding edge development branch. That might not be what you wanted.

Sunday, October 25, 2009

What Is Luck?

I've been in a philosophical mood lately (not a good sign, really) and started thinking about the nature of luck. How do you measure luck? If you can't, then how can someone be luckier than another? If you make your own luck, is that really luck or just your hard work paying off? If you buy a lottery ticket are you making luck or just wasting a few dollars?

As with most philosophical musings, I got more questions than answers.

Saturday, October 24, 2009

Android Scripting Environment

When Google first announced Android, I was initially very excited, but that soon turned to disappointment when I realized that Java was the only supported language. It got even worse when I discovered that Android does not even use the standard JVM, which prevents projects like Jython (and JRuby) from being used. This article discusses the issue and mentions Scala as the only non-Java language that works on Android.

However, today I stumbled upon the Android Scripting Environment which offers some hope for those us who are not enamoured of Java. Damn, I'd already written off Android as a platform of interest so I stopped paying much attention to it. I will definitely be reevaluating that decision.

Friday, October 23, 2009

Google Wave And NoScript

One nuisance that I've encountered with Google Wave preview, is that some extensions and NoScript Firefox addon don't get along too well. The extensions are not hosted on Google's servers which triggers NoScript's cross site scripting blocker, unless you add that server to NoScript's whitelist.

Wave's developers will need to address this. While it is only a nuisance now, as more extensions become available, it will become a security problem. Having to whitelist every third party extension site is an opportunity just begging to be exploited.

Thursday, October 22, 2009

Playing With Google Wave

Thanks to Myles Braithwaite I got an invite to Google Wave. I'm really interested in Wave but as with all new things, I'll be playing more than doing anything productive. One annoyance is I don't know any else on Wave at the moment...

Wednesday, October 21, 2009

CRTC Calls This A Decision

Today the CRTC released their "decision" on net neutrality and usage based billing. And it was utter drivel! All they have decided is that they can't decide yet. Meanwhile the deep packet inspection continues, the throttling continues, and economic methods (UBB and caps) should be the preferred method of controlling congestion. The latter is accepted as fact even though has been disproved.

And what do we get in return for having to put up with this crap? Usage based billing will be delayed but has not been ruled out (see above). Consumers and wholesale ISPs can now complain to the CRTC about throttling. Wow, really? If we had gotten any more, we would have difficulty sitting down for a while.

If you are Canadian please head over to and sign the petition to ditch current CRTC. Here are a few others talking about this travesty disguised as a decision.

Tuesday, October 20, 2009


The topic at this month's PyGTA meeting was a roundtable discussion on RESTful APIs. Since I am not a web services developer, I wasn't able to contribute much to this discussion, but it was informative. It was a useful reminder that HTTP has many more commands than just GET and POST, and the World Wide Web as we know it does not fully utilize HTTP the way its designers intended.

Monday, October 19, 2009

F1 Brazil

The Brazilian Grand Prix lived up to its reputation for deciding championships once again as Button and Brawn GP clinched their respective titles. Button turned an awful grid position into a truly world championship drive with some of the best passing manoeuvres of this season. Brawn GP topped off a fairy tale season as the constructor's champions.

An incessant downpour made a mess of qualifying but Barrichello somehow managed to get poll position at his home race. He was in a perfect position to continue the championship fight with Button only in fourteenth. However in the race, Barrichello chances were dashed by bad luck, by poor strategy, and ultimately by Button's better performance. Button gained nine place over the course of the race while Barrichello lost seven. That says it all really.

Webber showed us his talent once again by qualifying second place on the grid under the atrocious conditions, and then by driving a perfect race for his second career win. Here's hoping we hear more of the Australian anthem in 2010.

I'm talking like the season is over when of course there is still one more race. After such an exciting season, it feels strange now that everything has been decided. Hopefully, Abu Dhabi won't be too anticlimactic.

Sunday, October 18, 2009

Tokyo Magnitude 8.0

As you can guess from the title, Tokyo Magnitude 8.0 is an anime series about the aftermath of massive earthquake. The Japanese earthquake scale only goes up to 7.0, so an 8.0 seismic event is unprecedented. The earthquake and aftershock scenes are genuinely frightening, even though it is only an animation. There was only one sequence that didn't feel right because it seemed that escape would be impossible, but I'll allow the producers some dramatic license.

The story begins when Onosawa Mirai, a somewhat bratty preteen, reluctantly agrees to take her younger brother, Yuuki, to see a robotics exhibition on Odaiba Island in Central Tokyo. The earthquake hits just as they are leaving the exhibition and, after a harrowing escape by boat from the cut off island, they slowly make their way back home on foot. They have help from Kusakabe Mari, a young woman who is heading in same direction.

Mirai's behaviour in the early part of the story is very irritating, but the journey home is also a story about her coming of age. It was wonderful to watch Mirai mature as she slowly realizes what is truly important. With no way to communication with their families, it is a very stressful time for everyone, even Mari who has a young daughter. Yuuki actually is the strongest character of all, despite his young age.

However, the story has a tragic end. The last three episodes are the saddest anime I've ever seen: you are going to need some tissues to get through this. There are clues about what is to come, but I kept hoping it was a red herring. But there is no fairy tale ending in this anime. It is excellent story telling to the very end.

Saturday, October 17, 2009


The Worldforge Project has been around since at least 1998 (when it was known as Altima) and has an ambitious goal: to develop free tools and multimedia that will enable anybody to create a massively multiplayer online game. Every few years I discover they have are still around and are actually making progress. The project is amazingly resilient.

I was going to try the Worldforge Ember 3D client on my Debian sid system, but the package is currently uninstallable due to an unmet dependency. I'm filing the bug report right after this. I might try compiling Ember if an updated package doesn't appear soon.

Friday, October 16, 2009

Linux Desktop Saga

If I see another pointless, stupid article about why the Linux desktop is not taking off, I'm going to scream. Wait, this is an article about why the Linux desktop isn't taking off... NOOOOOOoooooooo......!!

Thursday, October 15, 2009

Dependency Based Booting

I have had the sysv-rc package on hold on my Debian sid desktop system for several weeks now. If I upgrade sysv-rc, it will install the insserv package which will setup a dependency based boot sequence. So far I haven't had the nerve to take that step yet. At the moment, there are no critical bugs reported against either package so the upgrade should just work.

And yet I am still hesitant. Just call it intuition.

Wednesday, October 14, 2009


SABnzbd+ is another Usenet .nzb download tool, very similar to hellanzb which I've been using for a while now. Both are written in Python, both can run as daemons, and both are suitable for use on a server. However, it is the differences that are more interesting.

First, SABnzbd+ has a built in web user interface whereas hellanazb requires you to install additional software to get more than a command line interface. When started from a terminal, by default SABnzbd+ starts lynx, a text web browser, as the user interface. For some reason this didn't work consistently for me, but I'm not sure why. Accessing the web interface from Firefox has worked perfectly, so I've been using that instead. I haven't checked but maybe the web interface needs JavaScript.

The second difference is that SABnzbd+ is a threaded design while hellanzb depends on Twisted to handle multiple connections. Neither threads nor Twisted provides any advantage, so that is not the issue here! But, the threaded design allows (or forces?) SABnzbd+ to use the Python socket library which, of course, is fully IPv6 capable. Tada! Unlike hellanzb, SABnzbd+ can directly access all the free IPv6 Usenet servers (assuming you have access to the IPv6 internet, of course).

And, finally, SABnzbd+ is still under active development while hellanzb is not. In the long run this is likely the most important difference. Consequently, I've switch to SABnzbd+ completely, since I can't see any reason to continue with hellanzb any more.

Tuesday, October 13, 2009

GTALUG Short Talks

The October meeting is also the GTALUG's AGM which usually makes a full presentation impossible. This time we had series of short talks that were quite interesting. A late room change caused two speakers to go astray so the remaining speakers perhaps got a little more time that they were expecting.

Myles Braithwaite answered the question "So you want a personal web site?" with a quick tour of the well known tools but he showed his Python leanings and included PyBlosxom, which is hardly mainstream. Christopher Browne introduced the screen utility. I use screen everyday and it is one of the most useful utilities I ever found. Seneca Cunningham covered exiftool which she uses as part of her work in image processing. The number of distinct tags that exiftool understands is truly mind bending.

Monday, October 12, 2009

IPv6 Router Complete

My IPv6 router is complete. I ignored radvd for now and just used a static setup since my network is so simple. I should probably learn to configure radvd later since it is useful for more complex network arrangements. For now, I'm just playing.

Once I decided on a static configuration, I needed a sensible way to subnet the 264 addresses. I quickly discovered that there are as many different ways to subnet the address space as there are addresses. Once I realized there was no magic formula, I just made up my own system.

Since I already have IPv4 subnets configured, I decided to map those into the /64 address space, so 10.x.y.z/16 became 2001:470:1c:137:xx::yyzz/80, with x, y, and z simply converted to hexadecimal. It is a bit wasteful of addresses but I can live with that. Although the mapping is logical, I will never be able to remember something that long, so the the next job is IPv6 DNS entries for the hosts on my network.

The best part is that IPv6 does not require Network Address Translation (NAT) any more. Every address is routable so you have 264 static IPs! NAT just sucked and I will not mourn its passing for a femtosecond.

Sunday, October 11, 2009

Thanksgiving With Family

I'm looking forward to some spending time with my family for Thanksgiving dinner. Why? It means that I'm guaranteed to get at least one good belly laugh today! Considering I spend most of my life under stress, the therapeutic condition of relaxing with my family cannot be underestimated.

Saturday, October 10, 2009

Done For The Day

Finally done with the baking for the day. Things didn't quite go as planned. Last night I discovered that I had underestimated the amount of sugar I had on hand. I decide to get more in the morning. This morning I remembered that the amounts required by the recipe make too much syrup, so the sugar I had might be enough anyway. I wish I had remembered that last night. Since the syrup has to be chilled, preparing it in the morning delays the whole process by a few hours. That's why I'm winding down the operation so late in the evening.

Although the koeksister recipe is simple on paper, it is actually very time consuming. Since I first attempted it in 2001, I've done it maybe about a dozen times, and each time my appreciation increases for how easy my mother made this look. It is not.

Friday, October 9, 2009

Busy Weekend Ahead

I have a busy Thanksgiving weekend ahead. On Saturday I'm baking some koeksisters to share with my family on Sunday, so I had to shuffle part of my usual Saturday schedule to Friday evening. Well, it sounded like a good idea at the time... I got it all done but I'm knackered. I still have to prepare the syrup for the koeksisters but that only takes ten minutes so I'm going to relax for a bit first.

Thursday, October 8, 2009

Trying Git Again

The last time I tried git I had a really difficult with time with it, compared to bazaar and mercurial. That was a several years ago so I decided it was time to revisit git. I was surprised that I actually got a lot further with it this time. I'm not sure why. Maybe the documentation has improved or maybe I just understand it little better. At least I got the point where I am comfortable using the common everyday functions. Don't ask me about the more advanced commands; that will take a little longer to understand.

Wednesday, October 7, 2009

WRC Spain

What we learned in Spain is that Hirvonen is no match for Loeb on sealed surfaces. Not even close. In fact Hirvonen was a little concerned for his third position, as a very racy Petter Solberg, driving a 2008 C4, kept up the pressure until the end. Hirvonen's third place reduced his lead in the championship to only one point so he has to score more points than Loeb in Britain to win the title. Ha! Easier said than done!

Sordo drove impressively all weekend and it was such a pity that he had to concede the lead to help with Loeb's championship fight. Sordo looks ready for his first WRC win but with driver's championship so tight that opportunity will likely have to wait until next year.

Petter Solberg was in a really feisty mood and racked up a string of stage wins, almost like he had something to prove. He even gave a defiant "Up yours!" to all who doubted he still has the speed. He had the biggest grin on his face when he said it, so he was having a great time. I think he may have another championship in him if given a competitive car, which sadly he never had at Subaru.

Looking forward to rally GB, it going to be awesome!

Tuesday, October 6, 2009

PCs And Automation

I was helping an automation engineer confirm that the components he had chosen, were suitable for his project. The reason he needed a second opinion was because the controller for the project was a PC, not the usual PLC to which he was accustomed. The components he had chosen were fine so his experience was enough to carry him through, even though he was outside his comfort zone. I wonder if the PC programmer, who doesn't have any experience controlling hardware, will do nearly as well. Depending on whether I get a call to help out or not, I'll have my answer.

This was a reminder of how uncommon my automation experience is. The majority of the automation projects that I've done, used a PC as the controller. Many people might recognise the small form factor SBCs as a PC, but except for the size, it had exactly the same functionality as a regular PC. These projects all had a significant data processing component, which is the main reason to switch to a PC. However, automation people are endeared their PLCs so the manufacturers have come up with many ways to push the data processing onto a PC via a network. Frankly these solutions start to look just as complex and risky as the PC only system.

Monday, October 5, 2009

F1 Japan

It is great that F1 has returned to Suzuka, a track that is a serious test of driver skill. With the Friday practise sessions washed out, Saturday qualifying was an even greater challenge as drivers were still struggling to find the right set up. Webber crashed in Saturday practice and couldn't even take part in qualifying which was a total mess, with two red flags in session two and a double waved yellow in session three. The latter had a knock on effect as the drivers who did not slow down where penalized and given grid place penalties on Sunday.

Vettel completely dominated the weekend with a poll and then by leading the entire race for the win, which suddenly puts him back in contention for the driver's championship. However, it may not be a serious threat. The Redbull isn't been very consistent and Vettel has used up all of his eight engines, which could become a factor in the remaining races. But, like everything else this season, you just never know...

Button managed to score one point which was great considering how poorly he started. Barrichello was not happy with his setup and was actually threatened by Button after the safety car bunched everyone together. I assume Barrichello's troubles started on Friday with the wet practice sessions.

Button and Barrichello have consistently finished together in the points scoring positions in the last few races, which suggests that Brawn GP is giving equal equipment to both their drivers. Unfortunately, that works against Barrichallo since he needs a significant advantage to out score Button by seven points per race. I think DNFs are the only way Button can lose the championship now.

Sunday, October 4, 2009

IPv6 Setup Delayed

Yesterday was wonderfully productive. Today was the exact opposite. I felt tired all day and only picked half-heartedly at setting up IPv6 routing on the firewall. I did learn about radvd but couldn't motivated myself to actually install and configure it.

I'm totally in awe at how many IPv6 addresses my free account gives me. 264 addresses is just ridiculous! And they are giving it away too. I mean, I know the number of available IPv6 addresses is huge (an understatement, if ever there was one) but it seems like giving /64 prefixes to hobbyists and experimenters like me is just overkill.

I wonder how much a permanent IPv6 /64 assignment costs and where can I get it?

Saturday, October 3, 2009

New Firewall Running

I was up early this morning to finish my long outstanding project to setup a new firewall server. The server has been (mostly) ready for a while now but I've been putting off finishing the job, because I knew the final setup would require a lot messy configuration changes on all the computers on my network.

As I expected it took a few hours to get back to normal Internet access after all the minor details were cleared away. But it all works now and I'm happy with the results. I'm sure it is my imagination but web pages seem to be loading a little faster with the new firewall. The new server is slightly faster but I doubt that it would make a noticeable difference.

There is one remaining issue: IPv6. The first problem was the version of Shorewall in Debian Lenny/stable does not support IPv6, but I found a back port of the newer Shorewall on the package maintainers web site, so that obstacle has been cleared. I've never set up an IPv6 network before, so I'm sure there will be other head scratching moments.

Friday, October 2, 2009

Autumn's Finer Points

Autumn isn't being very subtle this year. Day time high temperatures are already in the mid teens. The wind is chilly and blustery. The rain is a miserable fine mist.

By the way, did I mention that Autumn is my favourite season? Honest, it is. Really.

Thursday, October 1, 2009

Using Debian Sid Safely

Running Debian Sid on your desktop system is somewhat intimidating. After all, it is named after the unstable Toy Story character for good reason. I have three defensive strategies which has save me endless grief. As a result, I haven't been locked out of my desktop since the time the bash package scripts blew up and left the system with any functional shell. (Can't find any bug report about that one, it only gets mentioned in the changelog for package version 2.02.1-1.7 when the preinstall became a C program in August 1999.)

Here's what I do to keep Sid calm.

First, I get my packages from a secondary Debian mirror. This buys a couple of days grace before I see the buggy package. By that time the news has hit the debian-user mailing list, so I get advanced warning of the impending problem. When I eventually see the dangerous package, it a simple matter of putting it on hold and waiting for the fixed version.

Second, I use apt-listbugs. Nobody should be using Sid without this utility installed. From the package description:
apt-listbugs is a tool which retrieves bug reports from the Debian Bug
Tracking System and lists them. Especially, it is intended to be invoked
before each upgrade/installation by apt in order to check whether the
upgrade/installation is safe.
Specifically, apt-listbugs displays any critical bugs for the packages to be upgraded and allows you to abort the upgrade if you see something that makes you nervous. I've lost track of how many times apt-listbugs has saved me.

Third, I keep a few older versions of packages. I do this with apt-cacher which actually maintains a local mirror of all packages I've installed, but it doesn't really matter how how you keep the packages. The important point is to have some way to downgrade the package if the previous lines of defence fail, and I end up installing a broken package.

The above procedures seem to cover most cases. A recent problem with cups (Common Unix Print System) and USB printers was never mentioned on the mailing list, and was not reported as a critical bug, so I installed the broken package. Of course, I only discovered the problem when I had to print something... But downgrading the cups packages temporarily was still an option, so I was able to continue until I found a permanent fix. Another example is an recent X server upgrade started crashing, but I avoided the mess because apt-listbugs showed me the bug report before it was mentioned on the mailing list.

Sid will break; that is guaranteed. But if you plan for it, Sid is safe for everyday use, and you get to play with the very latest software. Not a bad bargain.

Wednesday, September 30, 2009

PHP Timezones In Lenny

When I previously talked about having PHP timezone problems in Debian Lenny, I thought that I might have to compile a custom version PHP without the patch which created this mess. Thankfully, I found another solution.

When I got a chance to examine the patch, I discovered that it actually loaded the PHP timezone database from the OS database in /usr/shared/zoneinfo. The user chroots on the shared LAMP server are stripped of (usually) unnecessary files such as the ones found in /usr/shared/zoneinfo. I copied those files into the chroot and the PHP timezone database worked again! There was much rejoicing!

I'm glad I found another way to fix this as I was not looking forward to maintaining a custom PHP package until the next Debian release, which would be at least a year away. No thanks, I have better things to do than compile PHP every time there is a security update.

Tuesday, September 29, 2009

Easynews Search

Oh no, Easynews got a fancy new home page! Well, it is nowhere near as garish as some of their competition's. Hopefully they won't ever go that far. Easynews is the epitome of minimalist and I hope that never changes.

When my friend Paul recommended them in 2007, he had already been using them since around 1998 which is pretty strong endorsement. When I found that I wasn't using the service that much, I cancelled it in May 2008. At the time I was informed that if I re-activated the account within a year, I could get my username and unused Gigabytes back. I sign up again 15 months later and still got my username and unused Gigabytes back! I guess they forgot to delete me. I had accumulated ~240GB, so this was a really nice surprise.

It took a while to get used the search engine, which actually takes regular expressions in the search terms. How geeky! I know my regex-fu isn't that strong, but I was getting some odd results. I re-read the very terse help page and realized the search terms could also be key words, which were of course separated by spaces. So if you want to match a space in the regex, you have to enclose the entire expression in quotes. Intuitive, yes?

The search results have a lot of links to tools with no explanation of what they do. Today I found out the "parViewer" link is actually very useful. It shows a page which indicates if you need the parity files to reconstruct the file. On a big file this can save a lot unnecessary downloading. This doesn't work for .nzb files, though, but that makes sense as they are less reliable.

Yes, Easynews is the epitome of minimalist but is a useful minimalist. ^_^

Monday, September 28, 2009

F1 Singapore

Street circuits are all about the location but it is difficult to build an exciting race track on city streets. Singapore at night is certainly a spectacular location, but the race itself was one of the most boring I've seen all season.

Hamilton and McLaren were untouchable. They qualified on poll, had a perfect strategy, and ran a faultless race for the win. Meanwhile, everyone else floundered. The Redbulls looked threatening in qualifying but then couldn't make the same impression in the race for various reasons. Rosberg also looked like he might challenge Hamilton at one point but a drive through penalty sent him to the back of the field. The Brawn GP team did not qualify well, but got lucky in the race and scored some points as other teams had their problems.

Button put in a few great laps to pass Barrichello in the pits. This means Button actually increased his championship lead, which will boost his confidence nicely. I'm still hoping Barrichello wins the championship as it would be a perfect fairy tale ending for this amazing season. But, unless Button has problems, Barrichello's chance slipped further way after this race.

Sunday, September 27, 2009

Late Night Creativity

I've been staying up way too late for the last few nights. I resolved to be in bed at a reasonable hour tonight. Now if I can just define "reasonable." ^_^

The problem is my creativity increases later in the day, so by the time midnight strikes I am on a roll and not paying much attention to the clock. It is very easy for a few hours to fly by and suddenly it is 4AM. I'm actually getting a lot done but in the long run, I know it is not a healthy lifestyle.

And, I not a spring chicken any more, you know! -_^

Saturday, September 26, 2009

MPlayer And Mkv Linked Chapters VII

Mad Fish The One tried using this post to compile mplayer with Matroska linked chapter support and found that the compile failed. After some investigation I realized that I had already discovered that problem in July, which was also the last time I compiled mplayer. Unfortunately, I neglected to tell anyone else about it! Bad me! (-_-;

Development on the mplayer git repository has moved off the master branch, perhaps prompted by a bunch of yahoos suddenly taking an interest in the work... Anyway, the mplayer master branch hasn't changed at all since early July while the ffmpeg master branch is changing very rapidly, with result that mplayer no longer compiles against a recent ffmpeg checkout.

Mad Fish posted another solution here. The disadvantage of this one is that it depends on a third party patch, but it uses a newer ffmpeg which is a huge plus compared to what I did.

My solution back in July was to compile against a specific version (svn r19395) of ffmpeg. That version is now very old so it may be missing bugs fixes and other improvements. I've been using the same mplayer I compiled in July and I haven't noticed any problems. YMMV
git clone git://
cd mplayer.git
git clone git://
cd ffmpeg
git checkout 4477ec66b # git commit matching svn r19395
cd ..
I tried building the mplayer git development branch and I haven't gotten past the configure step yet. There have been many changes and it is not clear to me how it is detecting ffmpeg any more.

Finally, what is the official name of this Matroska feature anyway? I perused the Matroska site and it is not at all obvious what the spec calls it. I've been using "linked chapters", but others use "linked segments" and "order chapters." None of these strings appear anywhere in the spec.

Friday, September 25, 2009

HellaNZB No Longer Developed!

While investigating why an error in my hellanzb logs, I discovered this ticket that declares hellanzb is no longer being developed. Damn! I really liked this program. There is a long list of other applications (mainly GUI front ends) that depend on hellanzb, so hopefully someone will resume development.

Yeah, yeah, it is open source so why don't I take up the challenge? That is an option but I suspect that there are a few people who are already more familiar with the code base than I.

Thursday, September 24, 2009

CRTC Really Riles People

The latest effort to counter the CRTC's brain damaged decisions is which managed to get 20,000(!) emails sent on their first day of operation. The goal of is 10,000 signatures on a petition to be delivered to the Industry Minister. The number of signatures has been increasing steadily.

Those numbers are significant enough that some politicians will actually take notice, but getting them to act is another matter. In any event, Canadians have become too complacent about their Internet access, so it good to see these kinds on grass roots efforts gathering momentum.

Wednesday, September 23, 2009

Dymaxion Car

I never associated cars with the name R. Buckminster Fuller. But that was before I learned about the Dymaxion Car, which is a interesting bit of trivia for the historical car enthusiast.

Only three working prototypes were produced and each was actually driven by several owners. The cars were even involved a two accidents, one of which resulted in a fatality. Although no fault was found with the car, the negative publicity put the brakes on any further development.

There is a project underway to fully restore the only remaining example, which on display at a museum. A lack of accurate engineering information appears to be the main stumbling block.

Tuesday, September 22, 2009

The Walk Across Toronto

I accidentally found an old series of articles by reporter Peter Kuitenbrouwer of the National Post as he walks through Toronto's suburbs. It offers a different perspective on Toronto that you won't find in the travel brochures. The series also reaffirms that the only way to explore a city is on foot.

It is a long read so allow yourself about 20 minutes for the whole series. Oh, and the link points to the end of the series. The first article is at the end of the second page of the list.

Monday, September 21, 2009

Renault Sanctioned

In a season of highs and lows for F1, thankfully the latest scandal was resolved quickly. I'm still dumbstruck that someone could actually instruct a driver to crash on purpose, and that any driver would agree to that level of insanity. That is just way beyond being told to let your team mate pass.

Given that Renault is contemplating leaving F1 anyway, suspending Renault's disqualification until the end of the 2011 season, is not that harsh given the severity of what occurred. I suspect that this guarantees that Renault will leave F1 at end of the 2009 season. There just isn't any compelling reason for them to stay any more.

And you know what? If Nelson Piguet Jr hadn't been fired, none of this might ever have come to light. Which makes me wonder, has anything this severe ever happened before? We may never know. Until now, I never thought anyone in F1 could stoop this low.

Sunday, September 20, 2009

Hand Writing On The Wall

Does cursive hand writing matter any more? I just wrote a few words in cursive and, while it was still legible, it is definitely not as good as it once was. It would never get past the strict teachers that I had back in primary school!

But in these days of electronic communication, hand writing is being used less and less as an everyday skill. As a consequence some school districts are putting less emphasis on hand writing skills. There are similar stories here and here. Is this a good thing?

I really don't know. And I doubt anyone will have an answer until a few generations have gone without hand writing skills.

Saturday, September 19, 2009


I was using to post to Twitter and Identica simultaneously. worked most of the time but occasionally it would suddenly became very unreliable for a few days. I decided that it was time to try a command line utility call Twidge, which has been on my play-with-this-cool-toy list for a while.

Twidge can post to both Twitter and Identica but can't do it with a single invocation. That's easily solved with a simple three line shell script taken from the Twidge web site. Or you can use the slightly more fancy script which gives a text length marker so you don't exceed the 140 character limit.

Of course, it was hard to resist "improving" things. ^_^ Here is my current script:
trap "rm ${tmpfile}" EXIT
vim ${tmpfile}
if [ ! -s "${tmpfile}" ]; then
echo "No text, aborting update."
exit 1
text=$(cat "${tmpfile}")
twidge -c "$HOME/.twidge/identica" update "${text}"
text=$(echo "${text}"|sed 's/\(^\| \)!\([[:alnum:]]\)/\1#\2/g')
twidge -c "$HOME/.twidge/twitter" update "${text}"
There basically two additions over the original script. First, the text for the post is created in the vim editor, which is a more comfortable writing enviroment and, more importantly, has a spell checker! The second addition is to convert Identica groups, which are specified as "!tag", into a Twitter "#tag", since Twitter doesn't have groups.

Hah, I hear you say! Why did my script become so complicated? But it is not really complicated once you realize these scripts are able to duplicate the basic functionality of, a complex web service, in a few lines of shell code. And so far, the script has proven to be more reliable that The script is only as complicated as it needs to be, but no more.

Long live the command line!

Friday, September 18, 2009

Kemono no Souja Erin - 29

The anime series Kemono no Souja Erin keeps getting better. The mature story telling in this series continues to impress as Erin faced a number of crises since I last mention the series.

Her foster father, Jone, died and she had a difficult time dealing with it. Erin never knew her real father so Jone easily filled that role after her mother died. But it was only after Jone passed away that Erin realized she actually thought of him has her father. The regret that she had never told him this, made his passing all the more difficult.

Erin was also forced to question her beliefs about the relationship between animals and humans. She has become unbelievably close to Lilan, the Beastlord that she looks after. While brushing Lilan, Erin accidentally brushes the wrong way and causes Lilan to react and attack her. It was an extremely painful reminder of the risk she is taking in getting so close a powerful animal, and it was not easy for Erin to continue the work she has started with Lilan.

When Erin learned that Lilan was a gift to the Queen and would never be returned to the wild, Erin became very depressed. It was a surprising change for her normally upbeat character. Erin works through problems by drawing upon the wisdom of her mother, Soyon, and Jone, the two most significant influences in her life. However, this means she is dealing with problems alone, when she could ask others for help.

The series has been licensed and can be streamed from The SD video doesn't require a sign up as far as I can tell but I don't know if is available outside the US and Canada, and you have to put up with advertisements.

Thursday, September 17, 2009

Generation Gyrations

Baby Boomers, Generation X, Generation Y: these terms are so wonderfully vague that nobody can actually pin down who belongs in each group. It allows a sort of shell game to shuffle age groups around for convenience, especially for the Gen-X and -Y groups.

I started thinking about this after reading this press release which gives different age ranges for the three groups than I am familiar with, and even states that Generation X are the parents of Generation Y. I always assumed the following ranges: Boomers - 1947 to 1967, Generation X - 1967 to 1977, and Generation Y - 1977 to 1987. I also assumed that the Boomers are the parents of both Gen X and Gen Y.

But what do I know? After reading the Wikipedia pages for Baby Boomer, Generation X, and Generation Y, it is far more confusing than I ever thought possible. And now, I notice that there is even a Generation Z! We sure like making up labels for everything, don't we?

Wednesday, September 16, 2009

PHP In Lenny

The Debian PHP maintainers included a patch in the package for Lenny which is causing me some grief. This guy is a lot less restrained in showing his annoyance. ^_^

The patch makes a default timezone "System/Localtime" which, when it is detected, forces PHP to use the OS configured timezone. That part is OK. The problem is the patch also prevents you from getting the real timezone from PHP. The PHP timezone always looks like the hard coded default.

Now this probably won't affect many PHP scripts but I'm not that lucky. A developer using the shared hosting server that I admin, unfortunately does need the the real timezone for his application. Marvelous!

The obvious solution is to compile the Debian PHP package without the patch and I plan to do that tomorrow. Oh Joy!

Tuesday, September 15, 2009

Concurrency In Python

The topic at this month's PyGTA meeting was Parallelization in Python: Code Samples, Experiences and Advocacy. It was a round table discussion which I usually enjoy more than a presentation, but this subject is too broad. There are so many options for concurrency in Python that I started to feel overloaded after a while.

None of my own Python code uses any concurrency, so I decided to mention MyHDL which applies the same principles that I've used in various C embedded projects. The technique is known by various names in Python circles: green-threads, continuations, coroutines, and a few others. It is essentially co-operative multitasking. Although this doesn't always have positive connotations, I found it to be very effect for writing machine control software.

I had hoped that MyHDL would be something new to the group, but two people had already heard of it. Darn! But I should have expected it of course. Some of these guys have invested a lot more into Python than I have.

Monday, September 14, 2009

F1 Italy

It was a good race but it was won on strategy, so there was not much on track action. Both Barrichello and Button delivered on their end by driving faultlessly. Hamilton made an error which cost him third place. I get that he is a racer but did he really think that he had a chance to catch and pass Button? Force India qualified second which once again showed how good their car is, but again ended up stuck behind a Ferrari to much of the race, much like what happened at Spa.

Redbull had a terrible weekend which has all but killed Vettel's and Webber's championship aspirations. Redbull still have a mathematical chance of winning the constructor's title but only if Brawn GP scores no points, which is not very likely. Ross Brawn is feeling confident enough that he is willing to let Button and Barrichello have a straight fight for the driver's championship.

The bad news for Barrichello is that Button seems to be back on form. Barrichello has a mathematical chance to win the championship, but that requires Button to have problems in the final races. Barrichello is going to need some luck to pull this off.

Sunday, September 13, 2009


I seriously need to get back to my personal projects. I haven't touched any of them in a long while. It is always annoying when that happens. An even greater annoyance is deciding which project to resume. Do you return to the one that is the most advanced or the one that is most interesting? I usually go with the latter since it offers greater motivation to get started. Of course, the worst case is something completely new has come along in the mean time and I jump on that because simply because it is new and shiny.

Having hobbies is both a blessing and a curse. ^_^

Saturday, September 12, 2009

The Sarah Jane Adventures

I just finished watching the second series of The Sarah Jane Adventures, another Doctor Who spin off. Although The Sarah Jane Adventures (SJA) is targeted at a younger audience, I enjoyed it very much. Sarah Jane is easily my favourite companion, even though she travelled with the Doctor for only a short time.

A few stories in the SJA series are connected to events in the current Doctor Who series but most stories are original and separate. My favourite from series two was The Temptation Of Sarah Jane Smith which showed that she is not without weaknesses.

There is a third series airing in the Autumn and David Tennant will appear as the Doctor in one story. Awesome! There no air date yet so I'll definitely have to keep an eye on that.

Friday, September 11, 2009

Vampire Knight Guilty

Vampire Knight Guilty is the sequel to Vampire Knight and as such you need to watch both to understand the story. Now, it is a great story, but there is so much angst, introspection, and hand wringing, it feels like a classic Swedish film at times.

The story centers on Cross Yuki, a student at Cross Academy, a boarding school run by her adopted father. The school is unusual because it has special night classes for a group of vampire students. The school is an experiment to see if vampires and humans can coexist. Yuki is a guardian and is supposed to keep the day class and night class from interacting but this isn't so easy. The vampires have that supernatural charm which the day students find irresistible. ^_^

Yuki has no memory before ten years ago when she attacked by a vampire. She was saved by another vampire, Kaname Kuran, who brought her to Cross Academy. Yuki is troubled by the memory loss and always feels that there some dark secret in her past. She is right. But the truth was such a complete surprise to me that it made the whole series worthwhile.

Interwoven with Yuki's story is a complex back story about the vampire hierarchy and an organization of vampire hunters. All of this comes crashing together in a mostly satisfying ending. I say "mostly" because there is at least one major loose end, which suggests a possible third season.

Thursday, September 10, 2009

Veteran's Stories

There is new web site, The Memory Project, which will maintain an audio archive of Canadian WWII veterans' stories. This is important as that time fades further into history. I only wish this effort had started earlier so that it could have captured some the memories of the WWI veterans, who are now almost all gone.

Wednesday, September 9, 2009

WRC Australia

If I ignore Citroen's technical irregularities, this was a really good rally. Loeb was was definitely back on form and Sordo seemed to be driving better than Hirvonen. Wait, that doesn't sound right.

Several times during the rally, I wondered how come Hirvonen was suddenly fighting with Sordo for second place. And he was working really hard for it too, with several scary moments which, I must say, he recovered in an almost Loeb-esque style.

While the Citroen insist that the different part had no effect on the performance, it might explain how Sordo could suddenly becoming Hirvonen's equal. However, I doubt that they would have done it intentionally and then expected it to pass the scrutineers. So it was more likely a mistake but one that could very well cost Loeb the championship. At the beginning of the season, I predicted Loeb would run away with it. I couldn't have been more wrong.

Henning Solberg was asked, how difficult is it driving without a windscreen? It's easier with the windscreen, he deadpans. But at least there was no snow this time. It's the third time he has lost the windscreen this season, so he has been getting a lot of practice driving without one.

And finally, Petter Solberg is back for the final two rallies in a 2008 C4! This is going to be great!

Tuesday, September 8, 2009

Software Maintenance

The full title of David Collier-Brown's talk at this month's GTALUG meeting is "You don't know jack about Software Maintenance." To the typical manager (aka PHB) software maintenance is something you do after the project is in production. As any experienced programmer will tell you, this is completely and utterly false. Maintenance starts during development. The XP crowd even explicitly say that development is maintenance.

David shared some of his experience of how you design your software to be maintainable from the beginning. He used a real world example of a versioned structure from when he was developing Multics. Yes, he goes back that far. ^_^ David's final piece of advice was: don't tell the PHB that you are doing maintenance during development.

It was interesting have a programming oriented talk at GTALUG for a change.