Tuesday, March 31, 2009


Natural Gas Rebates: It's About Time

On March 19 Alberta Energy Minister Mel Knight announced that the natural gas rebates will not be renewed past today. This will finally put an end to one of the government's most hypocritical programs.

For a government that espoused the necessity of non-intervention in the economy, the natural gas rebates were a blatant distortion of the market. The government would pick up part of the tab when natural gas became expensive. When somebody else is footing the bill, concerns about efficiency and consumption go out the window (sometimes literally). This defenestration distorts the market's demand for natural gas, a non-renewable resource.

Every time that the government claimed that its hands were tied with respect to rental housing or the pace of development, I'd just point to these rebates as a perfect counterexample. It was awful that the government would pick and choose when to interfere with the economy and yet preach laissez-faire at the same time. If you're going to try to be ideological, at least be consistent. These guys pander to the voters when it's convenient.

Wednesday, March 25, 2009


Coming back to earth

On March 18 an article entitled "Alberta comes back to earth" ran on the website for The Globe and Mail. The article itself was discussing the economic slowdown in Alberta following the insanity of the past few years -- nothing new.

One thing that did catch my eye when reading that article was one of the reader comments:

I blame Trudeau and the NEP...

I thought that the comment was very succinct, in a tongue-in-cheek sort of way. I don't know if that was written by an Albertan or not, but I agree with what the comment's author is trying to say. There is a point in time when Albertans need to stop blaming external foes from the past for our problems, and start looking at our enemies from within.

Sunday, March 22, 2009


Science Fair Judging Observations 2009

It's the conclusion of Science Fair Week on the OhmsBlog! Yesterday's post is available here.

Another science fair has come and gone. Much like last year, I've decided to write some general observations about what I saw.

  1. Originality - Unfortunately there were projects that lacked originality. When I say "originality," I don't mean "gee-whiz I've never thought of that before" originality. I'm referring to the creation of original content. Downloading a bunch of stuff off the internet does not make a science fair project. The best science fair projects have a core purpose, and everything that the student does to obtain conclusions to that purpose should be the student's own work. I saw lots of this last year, too.
  2. Methodology - There were lots of methodology holes, some more significant than others. As a student it's easy to overlook something. It's useful to have some additional pairs of eyes take a look at the project to identify oversights. Confounding variables sometimes work their way into projects and they can call the results into question. Another issue was that some projects strayed too far from the three allowed project types: experiment, innovation, and study. Notice the absence of the word "demonstration" from that list. Students can demonstrate something as part of their presentation, but it should be related to the experiment/innovation/study. A demonstration on its own is not a science fair project. As another recommendation, judges want to know why a student did something as much as they want to know what and how. Every decision that is made over the course of the project needs to be justified reasonably.
  3. Analysis - It is important to think carefully about what kind of analysis needs to be done on the data to make it applicable to the purpose. Sometimes taking an average isn't good enough.
  4. Bibliography - Again, Wikipedia citations appeared all over the place. Where are the advisers to teach students that this is not a credible source of information for scientific enquiry? As another recommendation, I'd suggest that any claims made in a project that are not proved via the project itself must be cited.

Saturday, March 21, 2009


What's the Big Deal?

It's Science Fair Week on the OhmsBlog! Yesterday's post is available here.

Today is the Kiwanis Regional Science Fair in Medicine Hat! Hatters, get your asses over to the College right now to check it out!

In case you haven't noticed, my science fair adventures are important to me. Even though my science fair career reached its pinnacle eleven years ago, I still consider it to be a vital contributor to who I am today. "So what?" you might be thinking. "It's just a kid or two standing there with a book and a backboard! How can that have any meaning a decade down the road?"

I intend to explain it.

  1. Science Fairs provide tremendous opportunities for personal growth. They bring out the best, and sometimes the worst, in students. Both aspects become positive in the long run. The positives are mostly self-explanatory -- students gain valuable experience in self-directed research, public speaking, making friends, and time management. Indeed, one does not need to win anything to reap these gains. Unfortunately science fair experiences occasionally cause students to learn about humility "the hard way." This is not a bad thing.
  2. Science Fairs take the training wheels off of learning. My school science experience involved experiments that were already designed for us. In the science fair, projects need to be designed from the ground up. I learned far more about scientific method from the science fair than I could ever have gained from a textbook experiment.
  3. Top Science Fair projects contribute to society. Many of the CWSF-calibre projects out there are conducting valuable, innovative research that makes a difference. These projects aren't your baking soda and vinegar volcanoes - some of the stuff being done is comparable to graduate-level research in universities and private R&D facilities.
In my opinion I was able to take advantage of all of these benefits. I worked very hard to reach the CWSF, and even harder to win gold. I had my fair share of second place finishes to get to that point. Even as a winner, I experienced bitterness and resentment from students who didn't fare as well, as they came up to me and attempted to belittle my project to make themselves feel better. I don't feel bad about that at all - it was just one more learning experience. I came out of it with a thicker skin than I had going in.

My science fair experience played a pivotal role in obtaining admissions to university undergraduate programs. There were certainly other important factors, but as far as extra-curricular activities were concerned, my CWSF experience was hard to beat.

One day when I was off at university, I saw a fellow riding a bike down the street. He was wearing a familiar-looking sweater - from CWSF '97 in Regina. On another day I was wearing my CWSF '98 t-shirt at my co-op workplace. Lo and behold, the student in the cubicle next to me recognized it because he was there. The resulting friendship ended up being one of my most important at university.

Once I had finished my degree, I went searching for full time software development work. As it turned out, somebody at my future employer had heard about my software development exploits at the science fair. I have no doubt that the resulting interview discussions contributed to my hiring.

I still consider winning gold at the 1998 Canada-Wide Science Fair to be one of the most fantastic moments of my life. It is now so many years later, yet my science fair odyssey is still paying dividends. It might seem like a bunch of reminiscing about standing at a booth with a backboard and a couple of duo-tangs, but it defines and haunts me still. I guess that's why I have been coming back.

Tomorrow: A review of today's activities.

Friday, March 20, 2009

ScienceFair storytime

Making My Mark

It's Science Fair Week on the OhmsBlog! Yesterday's post is available here.

This entry is adapted from a speech that I gave at the awards ceremony for the 2008 Kiwanis Regional Science Fair in Medicine Hat, Alberta. Don't be fooled by the humour; this anecdote is non-fiction.

When I was an exhibitor at the 1998 Canada Wide Science Fair in Timmins, Ontario, the CBC came to do a series of live broadcasts from the exhibition floor. Unfortunately they could only set up their equipment to broadcast from one particular aisle, so most of the exhibitors (myself included) would not be interviewed on TV.

Being curious and inquisitive science fair students, we were not content to let these CBC broadcasts proceed without seeing some of the action. I wondered over there with a couple of friends who were from British Columbia. We watched the interviews for a while, but I started to get bored and decided that I would walk back over to my project's booth. As I started to walk, I stumbled a bit and thought I felt somebody push me on my shoulders from behind. I didn't think anything more of it, and I sauntered back over to my project.

A few minutes later, one of my friends walked over to me, laughing. "Do you realize what you just did?" he asked.

Confused, I said, "No, what do you mean?"

It turned out that when I stumbled and was pushed, I tripped over the cables that were carrying the CBC's video feed from their camera out to the control van. "You just knocked out the CBC!" he exclaimed.

I might not have made it on TV, but I made my mark on TV.

Thursday, March 19, 2009

ScienceFair storytime

"Somebody should give those guys with the music a good -- !"

It's Science Fair Week on the OhmsBlog! Yesterday's post is available here.

You'd think after my previous anecdotes about the Canada-Wide Science Fair that I was always the victim of other people's shenanigans. Unfortunately that wasn't always the case.

This story is another one that occurred during project setup in '98. Since I had already been to a CWSF in '97, by that point I was more experienced as to how the fair worked. The previous year, some of the Computer Technology exhibitors had flashy animated demonstration videos and techno music playing loudly on their computers. I don't know if this was supposed to attract TV reporters or influence judges, but it annoyed me immensely. This was a science fair, not a trade show, and I thought that the eye candy distracted observers (and other exhibitors, for that matter) from the real reason that we were there: the science.

Fast-forward back to setup day in 1998. I was sitting at my project's designated booth. All of a sudden I heard loud music coming from a project that was a couple of aisles down. "Great," I thought, "More flashy eye candy this year." I turned to the kid who was setting up beside me and voiced my displeasure with the noise coming from that project.

The kid beside me was from Edmonton. As it turned out, the group project that was making all the racket was also from Edmonton. My comments subsequently sent my neighbour scurrying over to his fellow members of the Edmonton contingent to tell them what I had just said. Even worse, I found out later that the purpose of their project was to build an amplifier and that the music was a legitimate part of their demonstration.


Wednesday, March 18, 2009

ScienceFair storytime

I didn't call you a loser

It's Science Fair Week on the OhmsBlog! Yesterday's post is available here.

In 1997 I was an exhibitor at the Canada-Wide Science Fair in Regina. Since much of the science fair involves sitting at one's project, those of us in Computer Technology had the advantage of having our own computers on hand to alleviate some of the boredom.

I spent a few hours of my time playing a simple game that I had installed on my machine. The student sitting next to me took an interest in it, and asked him if I would mind giving him a copy. I copied the necessary binaries to a floppy that he had lent me. Justin, as I'll call him, took the floppy, copied the binaries onto his machine, and ran the game.

Since he had never played this game before, there were no high scores saved anywhere. He lost his first game quickly, but since the high scores were empty it prompted him to enter his name for the high scores list. Unfortunately the high scores dialog box came up looking like this:

Justin is a loser!

He looked over at me with an expression of incredulity and asked, "What's this?" The best answer I could give him was, "I don't know!" I didn't copy any configuration data over to that floppy, just binaries. That game was a 16-bit Windows executable, so it probably wrote its high scores data to an .ini file somewhere. Since that game was part of a package, I suspect that at some other time he played a different game from that package that saved its scores to the same file. Somebody entered that phrase as a high score for the other game, causing it to be the default when he played the game that he got from me.

I'm not quite sure that he understood that, though. He didn't say much to me for the rest of the fair. He just played "No Rain" by Blind Melon over and over.

Tuesday, March 17, 2009

ScienceFair storytime

"Now this project, this one's a joke."

It's Science Fair Week on the OhmsBlog! Yesterday's post is available here.

When I was an exhibitor at the 1998 Canada-Wide Science Fair in Timmins, Ontario, we were allocated several hours in our busy schedule for setting up our projects. Most people don't need too much time to get their project going, but sometimes shit happens and people need extra time to get organized. I recall one group whose computer project ended up in limbo because their computer was left sitting out on the tarmac at Pearson International Airport for a few days. In heavy rain.

For most of us, setting up was not quite so hectic. I unpacked my backboard for Advanced Windows 95 Security Techniques, the title spanning across the top in bright red. I removed my computer from its box, plugged everything in, and made sure that everything ran properly. I was mostly content to sit at my project and observe the commotion from my chair. Some competitors that had finished setting up decided to wander around, taking a look at some of the other projects.

One moment I was standing up and was doing some kind of maintenance on my setup, so my back was turned toward the aisle. Suddenly I hear a young man's voice behind me declare, "Now this project, this one's a joke."

I turned around to see what he was talking about, and behold, one of the senior level (grades 11-13) exhibitors is standing in front of my project and is critiquing it with his friend! I couldn't believe that anybody, much less another exhibitor, would have the nerve to walk right up to somebody's work and start talking trash in front of him.

I was incredulous. "Excuse me?" I said.

"It's a joke. You can't add security features to Windows 95, it's inherently insecure. It's impossible."

I was enraged. Who the hell did this guy think he was? What gave him the right to go around and pass judgements on everybody else's stuff? I figured that getting into an altercation at a national science fair would be headline news in all the wrong ways, so I bit my tongue a bit.

I looked him right in the eyes and stammered, "You know, I think that you very naïve." This guy had no right to dispense such comments, especially without reading anything beyond the title.

He and his friend wandered away, presumably to tear down somebody else's project. At this point, I was angry enough that I had to go and check out his work. I figured that I should go over and find out how credible this guy was, or at least find out what it was about his project that made him feel so superior to everybody else. I skimmed through the writing on his backboard, when suddenly I stopped and saw this sentence:

"C++ is not an object-oriented programming language."

I smiled. Things were unfolding exactly as they should. It suffices to say that in the end my project scored very well. Even though I know otherwise, I'd like to imagine that it was karma.

Monday, March 16, 2009

ScienceFair storytime

The Captain Hook Story

Since this Saturday is the 2009 Kiwanis Regional Science Fair in Medicine Hat, I thought that I'd declare this week to be "Science Fair Week" on the OhmsBlog. I'm starting on a Monday because I'd like to conclude the week next Sunday with a post-mortem of Saturday's events.

I've been programming computers for a long time, and I've been using computers for even longer. When I started writing code I was about seven years old. By the time I was thirteen years old I had switched from BASIC to C and C++. I had a desire to learn how to write software with a GUI, and I wanted to use a "grown up" language to do it. Our home computer in 1995 was a 486 box that was running MS-DOS 6.0 and Windows 3.1, so I decided to write Windows programs in C and C++. As time progressed the technology changed as fast as I grew. I soon found myself hacking away at a Pentium 120 running Windows 95. My mind absorbed books by Windows spelunkers Andrew Schulman and Matt Pietrek.

As a student in high school in the spring of 1997, I had observed my peers cleverly discovering ways to bypass the system policies on our school computer systems. For example, there was a system policy in Windows 95 that would block the "display settings" control panel applet, thus preventing students from being able to modify the desktop wallpaper.

Or so the teachers thought...

It turns out that, right around that time, web browsers started shipping with a little feature that, when invoked, would set the desktop wallpaper to an image that the user selected from a web page. The system policies blocked the control panel applet, but not the underlying API function, which I knew by that time to be SystemParametersInfo(). "Would it be possible to intercept and block API calls?" I asked myself. That sounded hardcore to me. I had been doing science fair projects since the seventh grade, and I decided to make that question the focus of my 1998 science fair entry.

My favourite time of the year has always been the span of time from the last week of June to the third week of July. I'd relax and enjoy my summer for that duration, but I had made it a habit of commencing my science fair projects after that final week had concluded. I would do research and take plenty of notes over the summer, but I still had plenty of time for golf, cycling, Slurpees, and whatever shenanigans I could take part in.

The summer of 1997 was slightly different. I would be spending two weeks at a summer computer camp offered by the University of Calgary to brush up on my C++ skills. When I wasn't in class, I spent quite a bit of time researching. I studied in the university library. I spent countless hours browsing the aisles in computer book stores. I scoured software shops looking to score an educational pricing deal on a new 32-bit C++ compiler for Windows.

I spent several months searching for the best way to implement my elusive goal: To globally intercept calls to Windows API functions and block them if they did not conform to an administrator's security policy.

By December 1997 I had found something that almost worked. Several programs crashed, but at least I could successfully intercept an API call that was made by any 32-bit process that was running on the system. 16-bit processes in particular did not fare so well (there's another story about that, but that one will have to wait).

Science Fair Tip:
Sometimes things don't work as expected. That's OK if you can figure out why. If you can use this knowledge to find a solution to the problem, that's even better.
Unfortunately the very program that seeded my idea did not work. Netscape would crash when I ran my software. It turns out that several of the Netscape executable's sections were marked read-only, causing a general protection fault when my software tried to intercept its API calls. Fortunately my diagnosis allowed me to add some additional code to fix the permissions so that my program could run properly.

By the time I presented Advanced Windows 95 Security Techniques at the Southeast Alberta Regional Science Fair, my program worked but it had a very simple user interface. It had a one line static text field that displayed the program's status and a single button to toggle its enabling. This rudimentary GUI was good enough for the regional science fair, but it needed beefing up to look good at the Canada-Wide Science Fair.

In the months between the regional and national science fairs, I completed a fully-featured GUI that placed an icon in the taskbar notification area. Selecting that icon would prompt the user for an administrative password. A successful password entry would cause a configuration screen to be displayed that would allow for fine-grained control over which API calls would be intercepted under which conditions. I called this program "Captain Hook."

The 1998 Canada-Wide Science Fair in Timmins, Ontario had its ups and downs (there'll be more blogging to come about those), but my week peaked when I won the gold medal for Intermediate (grades 9-10) Computer Technology. One of the other highlights was when I met the Governor-General. I also met several interesting people during the day that the fair was open to the public. The people that came to talk to me about my work included a school district IT manager and an employee of the Communications Security Establishment.

The schedule for the week at the CWSF was very busy, to say the least. Even worse was the travelling involved to get to Timmins from Medicine Hat. I got back in the early hours of Monday morning (Victoria Day 1998), and I had to return to school on the Tuesday. Unfortunately the sleep that I needed so badly was denied: my family's phone started ringing off the hook at 9:00 AM. The culprits? Media organizations. Needless to say, I was more or less incoherent for the next week at school.

Thursday, March 12, 2009


"Smart Debt" is really smart

Have you ever wondered why it seems like the Government of Alberta is always in infrastructure catch-up mode?

Part of the problem is that their capital budget over the past 15-20 years has been bouncing like a yo-yo. When the economy is hot and the government is running surpluses, they increase capital spending. When the economy is slowing down, they cut the capital budget to avoid posting a deficit.

This leaves us with a problem. When the capital budget is cut, there isn't enough money to build needed infrastructure. When the capital budget is high during a boom, cost escalations make the projects so bloody expensive that, surprise surprise, there still isn't enough money to build needed infrastructure. Clearly something has to change if we intend to be able to afford the capital projects that we absolutely need to get done.

When somebody buys a house, he or she generally takes out a mortgage. That person can't afford to buy the whole house at once, so he or she uses debt to facilitate the purchase. The same thing is needed with governments and capital projects. They can't afford to pay for an entire freeway within one year's budget, so the construction needs to be broken into chunks. If funding isn't consistent the results are these piecemeal, half-assed infrastructure projects that never quite get done. Would you build your house one room at a time, year after year? That's the kind of constraint that the government has been working under.

One thing that the government has done to try to alleviate this problem is to use public-private partnerships (P3s). The government signs a long-term (30 year) contract with a company whose job it is to design, build, and maintain a piece of infrastructure all in one shot. This has worked quite well for the ring roads in Calgary and Edmonton. The roads are built to full freeway specifications immediately, instead of being stuck with substandard roads with "temporary" traffic lights at intersections that need interchanges. This is only possible because the P3 company borrows the money that is necessary to build out the entire project at once. Guess what: it's debt! The P3 projects involve debt -- they are just a clever way of keeping the debt off the government's books.

Imagine my surprise when I read Ed Stelmach's proposal for a second alternative that is being referred to as "Smart Debt."

The name "Smart Debt" is suggesting a couple of things. First, the debt should be dedicated only toward capital projects that produce assets. Second, the premier's musings suggest that the government's AAA credit rating would give the government's capital account a higher interest rate than the locked-in interest rate on any new debt. This means that the government could make enough money from its cash to pay off the debt's interest and still have some left over. Once the economy heats up, that infrastructure will already be in place and the government can use its surplus dollars to further pay down the principal.

Nobody would dispute that it's a bad idea to borrow money for operational expenses. Perhaps it buys time, but in the end you've got nothing to show for it except for more debt. On the other hand, using debt for capital spending leaves you with an asset that has value. A loan on something with high depreciation isn't a good idea because you end up paying principal plus interest on an item whose actual value is plummeting. For "Smart Debt," this means that items like cars and computers need not apply.

This policy would help the economy in several ways. First, it would provide jobs during a recession. Second, the government would avoid the pain of any cost escalations that occur during a boom. Finally, completing projects during a recession frees up labour to work in the private sector during a boom, helping to alleviate those cost escalations. In summary, if the government's numbers are correct and they only borrow for capital projects resulting in assets that depreciate slowly, I think that this policy is a slam dunk.

Many ideologues abhor deficits under any conditions. The question that I ask is this: Who is more fiscally conservative, the premier who borrows money, locks it in while it's cheap and builds a project while costs are stable, or the premier who only builds during booms and ends up with the project doubling or tripling in cost?

One of those scenarios would help pay off our infrastructure debt without being detrimental to Alberta's fiscal health. The other scenario maintains zero debt, but it wastes money and leaves us playing catch-up in perpetuity.

Some days I feel like I'm in the Twilight Zone. Only recently I was ripping into Stelmach for some stupid remarks that he made about the Heritage Fund. Now I'm lauding him for the economic foresight that this "Smart Debt" plan reveals. Wow. Speaking of yo-yos...

Monday, March 02, 2009


Bye-bye to Big Box

A certain national big-box electronics chain has annoyed the hell out of me once again. Having already been responsible for botching the installation of my car alarm, I have since had limited patience with their service.

I purchased an item off of their website last week, only to find that they offered the same item on sale a few days later. "No problem," I thought, "I'll just call them and wield the price guarantee."

Not so fast.

Apparently since this sale was a limited-time offer, they wouldn't guarantee my price -- even though my order, despite its "shipped" status, hadn't left the warehouse yet.* I went and looked up their policy and, sure enough, it's in the fine print. That hasn't stopped their sales personnel from price matching during sales in the past - I know at least one friend who has been able to take advantage of the price guarantee during a limited-time event.

I find that these guys always have an escape route. They guarantee prices, but only with the asterisk and the accompanying fine print. They offer a lifetime warranty on their car installs, just as long as they don't have to fix anything.

I've decided to let my wallet do the talking. I'm going to avoid these guys whenever possible unless it benefits me at their expense. I'll try only to buy something from them if it's a loss leader. Have a nice day.

* [Huh-huh, I used an asterisk!] Yes, I could have purchased the sale item and returned the other one unopened. Unfortunately I did the math and the discount for the sale item wasn't large enough for such a strategy to be economical in this case.

Sunday, March 01, 2009


How to discredit an entire industry

In 2003 my car was broken into twice within a matter of months. In an effort to provide deterrence, I decided to have an alarm installed. Aside from needing to choose a preferred make and model of alarm system, I also needed to figure out who seemed to be the most competent at doing the installation.

Almost every business that I spoke to emphasized that their installation was the best and all of their competitors were incompetent. Unfortunately, since everybody else was saying the same thing, they effectively all looked incompetent.

I ended up choosing a national chain because I was anticipating a long-distance move and I wanted the assurance that I could have my installation warranty honoured across the country. Unfortunately their "installation" involved disabling one of the sensors on the alarm without my knowledge or consent. Given that this action was essentially tampering with my alarm, I demanded that the sensor be re-enabled.

Their response? They said that I should pay $25 to get them to undo whatever it was that I never wanted them to do in the first place. I guess that lifetime installation warranty isn't worth the paper that it's written on.

At the same time, they had the nerve to comment that nobody else in town had the "expertise" to disable that sensor the way that they did. Given that everybody is supposedly incompetent, and their "expertise" messed up my alarm system, it appears that everybody managed to mutually discredit each other.

I'm thinking that the next time I purchase an after market car alarm, I'll install it myself.

Release 7.0; Copyright © 1996-2012 Aaron Klotz. All Rights Reserved.