So many levels


I’m making spaghetti squash for dinner. I cut the squash open and find that it smells like pumpkin inside, which is not surprising since they are from the same squash family. Ryan happens to be there, so I mention this fact to him. He takes a whiff and agrees that it smells like pumpkin. Ryan happens to be the biggest pumpkin pie fanatic on the planet, so I suggest “Hey, maybe I should make a spaghetti squash pie for dessert? Whaddaya think?” His response, after a couple of seconds of thought:

“That is freaky on so many levels.”

Judging a book by its cover


Down Goes Brown has written a scathing review of a book that he hasn’t read. In fact, the book won’t even be released for six months. But the cover tells you that the authors believe that the Toronto Maple Leafs suck, so how can it possibly be a good book? Now, I’m a Leafs fan, so what I’m going to say here might sound like heresy, but I’m gonna say it anyway. DGB, perhaps this is news to you, but here it is: The Leafs do suck, and have sucked for much of the past forty years. There. I said it.

Have they sucked every single year in that time? No, definitely not. They made the conference finals four times between 1993 and 2002. And are they the only team to not have won the Cup in that time? No, of course not. But every other original six team has at least made the Stanley Cup finals since 1967, and all but one have won the Cup in that time (in fact, Montreal has won it ten times (ouch, typing that was physically painful)). The Leafs have not made the finals since the Original Six were the only six. The Oilers and Islanders didn’t exist the last time the Leafs won it all, and they’ve won it nine times between them. Carolina, Anaheim, and Tampa freakin’ Bay have won Cups since then. The Leafs have had some good seasons, and even a few great ones, but they’ve also missed the playoffs fourteen times since 1967. Of the Original Six teams, only Detroit (17 times!) has missed the playoffs more, but they’ve also won four Stanley Cups in that time so they get a pass.

DGB’s article is a list of chapter titles for this book, many of which are unfair:

  • “An unshakable loyalty…”: the book isn’t about how Leafs fans suck
  • “The mysterious and spooky curse…”: for all we know, half the book is dedicated to the Harold Ballard years.
  • “Things we imagine Leafs fans would say…”: again, the book isn’t about the fans, it’s about the team. And what makes you think these guys aren’t Leafs fans? You can be a journalist and a Leafs fan. Just ask Damien Cox! OK, bad example.
  • “Why 1927 is more recent than 1967…”: DGB ignores the minor fact that the Senators didn’t exist for fifty-eight of those years. The current Senators have only existed for 15 years, and they’ve gotten closer to the Cup than the Leafs have in 40.
  • “Spilling into the streets…”: It is pathetic when Leafs fans do it because of a first round win. When Calgary and Edmonton did it, it was when they won the Cup or in the recent case of Edmonton, made the finals after barely making the playoffs at all.

DGB also makes a point about the fact that this is a hockey book written by two NBA reporters. But I listen to Prime Time Sports (via podcast) every day, and Grange has been a guest on that show many times. He may be paid to cover the NBA, but he seems knowledgeable enough about other sports. Similarly, Jim Kelley has covered hockey his whole career, and is even a member of the Hockey Hall of Fame. But when the topic shifts to basketball, baseball, or football, Kelley can more than hold his own. I imagine sportswriters in general get into the business because they love sports, so the fact that they have been assigned a particular sport to write about doesn’t mean they know nothing about other sports.

But even given all that, here’s the main point: there’s no indication that this is a history book. The cover of the book simply says “…why the Leafs STINK and how they can rise again”. And the Leafs do stink. They’ve missed the playoffs three years running, and are very likely to miss them again this year. Barring some incredible moves by Burke in the off-season, they will not be much better next year.

Will I buy this book? Eh, probably not. But I’m not sufficiently homer enough to think that because it says negative things about my team, it must be a terrible book.

Big British Brother


What is it about the British lawmakers that they are so stupid when it comes to security? They already have more CCTV cameras in public areas than anywhere else in the world, and in the last few weeks, I’ve read all kinds of stories about how London Police have put up posters asking people to report those who:

It’s now illegal to take photographs of British police officers. The London bobbies are probably the most photographed policemen in the world, and now taking pictures of them is a crime. (Note to self: tell Gail and the boys this before we go to London this summer.) I fail to see how photographs of police officers would be of any use to a terrorist. I don’t know if this includes the Queen’s guards at Buckingham Palace, but that might be a good thing to know.

Reporting people who take pictures of policemen or CCTV cameras is just silly, but asking people to report “suspicious people” is particularly disturbing. Like it or not, there are an awful lot of people who are particularly suspicious of Arabs or people who “look Muslim”. Say I put my suitcase under my chair in the waiting area of an airport and then walk to the bathroom, leaving the suitcase under the chair. This is a stupid thing to do, but it likely wouldn’t cause much concern. If an Arab man were to do it, there would be people screaming “bomb!” all over the place. Arabs (and other visible minorities) already have to deal with enough racism (blatant or otherwise) in their everyday lives, and these posters are just going to make things worse, while doing exactly nothing to prevent actual terrorist attacks. (Though the posters don’t specifically say “be suspicious of Arabs”, you know that many people will interpret them that way.) If I were of Arab or middle eastern descent and living in London, I’d be seriously considering moving somewhere more friendly to visible minorities. Like rural Texas.

And all the while, the UK government thinks they’re doing their citizens a favour. This is nuts.

Porcupine Tree


I have recently been introduced to a progressive rock band from England called Porcupine Tree. Not only does the band have a cool name (very important), but they’re talented musicians (also very important). I now have three of their albums, and I’m really enjoying them. I’ll talk about the band itself in a minute, but I wanted to mention the way I discovered them, since it’s rather unusual.

While writing some internal documentation for some code I had written, I used a tool called doxygen, which reads specially formatted comments in source code and creates documentation from it. Very nice tool, and while perusing the acknowledgements on the web site, I came across this line:

[Thanks to] the band Porcupine Tree for providing hours of great music to listen to while coding.

I was intrigued by the name of the band, but never thought much about it. A little while later, I was on amazon.ca and looked at my personal recommendations (after having bought some Rush and Dream Theater CDs), and there was a Porcupine Tree album. I immediately remembered the name from the doxygen guy, and since amazon said that the album was recommended because of my interest in Rush and Dream Theater, I was even more intrigued. After looking at some CD reviews, I took a $10 leap of faith. Without ever having heard any of the band’s music, I downloaded their latest album, Fear of a Blank Planet, from puretracks.ca. After listening to that for a while, I went onto eBay and bought the two previous albums, Deadwing and In Absentia.

The boys in PT are big on eyes; of the three albums I have, two of them have covers that show someone with blank eyes – the Blank Planet one reminds me of the I Love It Loud video from Kiss, while the In Absentia one is so creepy that I don’t even like looking at it.

While researching the band, I saw a comparison to Queensrÿche, who I’m a fan of (well, the older stuff anyway). But Steve Wilson’s vocals and Geoff Tate’s are nothing like one another, so it’s kind of hard to hear the similarities. Musically, they’re not that far off, but Porcupine Tree is a little more… well, “psychadelic” isn’t the right word exactly, perhaps “ambient”. Having said that, they remind me a little more of Tool or Dream Theater than Queensrÿche. They all have frequent time signature and key changes and some heavy guitar work, though PT isn’t quite as heavy (well, usually – “The Creator Has A Mastertape” from In Absentia is pretty kick-ass). The vocals are quite different as well – PT’s Wilson, Tool’s Keenan, and DT’s LaBrie can sing cleanly and quietly at times and louder at others, though LaBrie and particularly Keenan can also scream with the best of them (listen to Ticks & Leeches from Lateralus for a good example) while Wilson doesn’t scream. However, PT and DT use a lot more acoustic guitar than Tool, and I’m pretty sure that neither Tool nor Dream Theater use a banjo on any of their recordings.

Amazon recommended PT to me because of both Rush and Dream Theater, but honestly, I don’t see a lot of similarities to Rush. Other than the frequent time signature changes, the music is quite different.  They’ve been compared to Pink Floyd as well, though their music is much heavier.

Anyway, they have six other studio albums and a couple of live albums as well, so perhaps I’ll peruse through the eBay listings again. I should probably take a break from eBay, though; I’ve bought 11 CDs (2 PT, one Nine Inch Nails, six Beatles, two Rammstein) through eBay in the last two months. I just love discovering new music.

Recommendations for you


I’ve only bought a couple of things on amazon.com, since I mainly use amazon.ca. When it gives me recommendations, they’re based only on a few things and are therefore rather diverse:

  • A book called Understanding IPv6
  • a couple of CCNA guides (I had to look up what CCNA meant – it’s some kind of networking certification)
  • 101 Dalmations DVD
  • Star Wars: The Clone Wars DVD (which I have, though amazon.com doesn’t know this)
  • Tool’s Ænima CD (which I also have)
  • Slayer’s Reign in Blood CD

I imagine that there aren’t many lists of anything that both Reign in Blood and 101 Dalmations are a part of.

Windows Live Writer


I recently upgraded my MSN Messenger to the latest version, and Microsoft was kind enough to ask me if I wanted to install a bunch of other crap applications with it! Well, it was kind of them to ask; not every company does (lookin’ at you, Real Player). Anyway, one of the apps it asked about (and the only one I installed) was Windows Live Writer, which is essentially a WYSIWYG editor for blog postings. It has all your standard Word-like buttons for formatting text and adding images, lists (numbered and bullet), hyperlinks, tables, etc. as well as undo/redo. It also allows you to keep drafts, preview what the posting will look like when published, spell-check the article, and even add categories. It knows about the blog software you use so it can (presumably) tailor itself to what you’re using. If you’re using WordPress rather than Blogger (which I use), some WordPress-specific options may show up while Blogger-specific options would not be shown. Once you’re done, you can even publish your article directly from Live Writer – just click a button, enter your password (if you haven’t saved it), and you’re done.

One of the coolest features is the preview pane. Live Writer will download your blog’s template, and use it to generate the preview so that while you’re writing your posting, you can see exactly what it will look like once published. Blogger has a preview option as well, but it sucks. I mean it really sucks. Really. It’s just hopelessly broken. It does basic HTML formatting so that italics shows up as italics, but the font it uses is different from the one that the blog uses, tables and images aren’t formatted the same way, the width of the text area is different, it just looks nothing like the final product. Google (which owns blogger) doesn’t get much wrong with their software, but this is one area where they’ve really dropped the ball. Live Writer, on the other hand, shows the preview exactly as it will show up on the blog, complete with the sidebar, previous posts, dates, labels, links, the blog title, everything. I’m very impressed.

Before using Live Writer, I would write my blog entries in emacs using markdown format, then run it through a perl script I wrote that called markdown and did some other formatting and wrote the output to an html file. I could then preview the html file in the browser for formatting and when it was done, copy-and-paste the contents of the html file into the blogger “Create Post” page. Going from the text I was editing to the html was a two-step process – I would switch from emacs to a command shell and run fix and then start .html which would launch Firefox. From then on, I would save my edits, then go to the command shell and run fix again, then switch to Firefox and hit CTRL-R to refresh the page. This was not that big a deal, but the WYSIWYG thing is much easier and I love the accurate preview window.

I’ve used it so far to write a few blog entries (including this one) and I’m really starting to like it. The preview thing is awesome, it does spell-checking which neither emacs nor markdown do (after pasting the html on the blogger page, Firefox will do it, though I’d have to remember to actually check it before publishing), and there are plug-ins you can get to add other capabilities. For example, if you post lots of pictures or video to your blog, there are plug-ins to make those easier. One thing I don’t particularly like is font support. If you choose a different font, it uses the html tag to specify it. I don’t like the font tag – I prefer using CSS – but I rarely change fonts anyway.

Interesting note: Over the past week, I have found a couple of interesting spelling suggestions for technical words from the spell checker:

  • “Unix” for “unix”
  • “Xbox” for “XBox”
  • “VMware” for “VMWare”
  • “Perl” for “perl”
  • It doesn’t know what “emacs” is (suggested “maces”)

While testing the font thing out, I found another cool feature: if you do want to do something that the editor doesn’t directly support (like fixed width text), you can just switch over to the Source window and enter the HTML directly. This also allows you to add other html stuff as well as custom styles, and even JavaScript (which actually runs in the preview window). Just for fun, I even tried the and tags – though I truly believe that anyone using either of those should be shot – and marquee worked but blink did not. I don’t care about that though, since I’ll never use either of those on a blog entry. If I did, according to what I said before, I’d have to shoot myself. And I would.

Anyway, if you have a blog, and you use Windows (I kind of doubt that there will be Linux or Mac versions anytime soon), you may want to check this out. And by the way, in case you think this is a paid endorsement or that I’m posting this because I have friends at Microsoft or something, it’s not and I don’t. I did work at Microsoft for a four-month work term over seventeen years ago (holy crap, I’m old), and I know the guy who created Xbox Live (though he doesn’t work for Microsoft anymore), and I listen to Scott Hanselman’s podcast, but that’s about the extent of my association with Microsoft. But if anyone at Microsoft wanted to pay me after the fact for writing such a glowing review, I’d gladly take an Xbox 360. Feel free to contact me for my address.

Telecommuting tools


I wrote earlier this week about my experiences telecommuting, and after reading a comment left on that posting, I wanted to write a little about the tools that I use to be more productive when working at home. But first, a bit of history.

Back when I started at Sybase in August of 1997, my friend and colleague Lisa suggested I ask the IT people for an extra monitor, keyboard, mouse, and power cable so that if I wanted to work from home, I’d just have to bring my desktop machine home and plug ‘er in. I did this, and this made things pretty easy for the one day every few months that I worked at home. My desktop machine, running Windows NT 4.0, had a modem installed, and when I wanted to check my email, I had to unplug the phone on the desk and plug the cable into the modem, dial into Sybase, and then synchronize Lotus Notes. I only did this about once an hour because it was a pain. If I wanted to check some files out of source code control, I had to write down the name of the file in my notebook, manually reset the read-only bit on the file, and make a copy of the file in case I needed to revert it. Many times I forgot the copy and was unable to revert if I needed to. When I got to the office the next day, I’d have to go through the list of files that I wrote down and check each one out.

After a few years of this, management sent an email around asking if anyone would be interested in having a laptop rather than a desktop the next time that machines were refreshed. I responded with something like “Yesyesyesyesyesyes” several milliseconds after reading the email, and a few months later, I had an IBM laptop. This made things orders of magnitude better — I brought the extra monitor and stuff back to the office, and was then able to sit at the kitchen table when working. I had broadband internet at home by this point but no router, so I still had to use the modem to get email. Another couple of years later, I bought a wireless router for home, as well as a wireless PCMCIA card that I could plug into my laptop. I installed the Sybase VPN software and nirvana was achieved. I could then simply run Notes like I normally would to send and receive email, and I could also use our source code control software directly. I subsequently tired of Notes so I moved to Outlook and then a few years later, Thunderbird.

Back to the present. Here is a list of tools I use to make telecommuting easier:

  • Firefox for web, Thunderbird for email, MSN Messenger for IM (this is true in the office as well as at home)
  • A lot of people seem to use Skype for phone, but I don’t really use the phone all that often. My regular phone works just fine. It does have a speakerphone, which makes things easier, especially for long conversations. Our old phone had a headset that worked pretty well too. That allowed me to walk around while talking on the phone which I always tend to do when not typing.
  • Broadband internet (absolutely required!) and wireless network, though wired would work fine if the router was handy or there were drops available.
  • VPN software is obviously a must. I won’t say which VPN product Sybase uses for security reasons (security through obscurity, dontcha know!), but one of the “features” is that it automatically drops the VPN connection every 12 or 24 hours or something, even if the connection is in use, and with no way to cancel it. When the connection has been idle for a while, I can understand it but every now and again I’m in the middle of copying some large file to or from work and I get a popup saying something like “The VPN connection will be dropped in 2 minutes“. Since there’s no way to cancel it, the message may as well say “The VPN connection will be dropped in 2 minutes. I hope you’re not actually using it, but if you are, well, it sucks to be you.” I just have to hope the file copy finishes in that time, or that I can re-connect the VPN fast enough that the copy just continues. If not and the copy fails, I have to reconnect the VPN and start the copy all over again. My description makes it sound like a huge problem, but it’s actually only bitten me once or twice in however-many years. It’s just annoying that I have to reconnect, especially since the VPN software is buggy and sometimes crashes while connecting.
  • Remote Desktop when connecting to Windows machines if possible. Some of our older (Windows 2000) test machines don’t support this, so we use VNC for those. But Remote Desktop is preferable because it’s faster and replicates the user experience more closely. If you maximize the Remote Desktop screen and the machine you’re connected to isn’t heavily loaded, you can almost forget that you’re connected to a remote machine. This is not the case with VNC.
  • When doing Unix stuff, I use VNC to connect to a Unix machine in the office and then use that to rlogin to other Unix machines. This works quite nicely, except that every now and again, I’ll be in the middle of typing some stuff and a character will get repeated for no apparent reason. I’ll be typing and something like cd /tmp/grrrrrrraeme will show up. Very irritating. I’m sure it’s a problem with the VNC client software, because I occasionally see it in the process of repeating – like it thinks I’m holding the key down when I’m not – but when I hit that key again, it stops. I suspect this is because it got a KEYDOWN message but missed the corresponding KEYUP message. I have never seen this when VNC’ing into a Windows machine.
  • I have a couple of VMware VM’s set up on our VMware server so I can do stuff on a machine that’s in our engineering subnet when I’m at home. Another VM has all the NetWare development stuff installed on it, though I rarely need that anymore.
  • Apple iPod (5G, 80 GB) along with a Logitech Pure-Fi Express Plus dock for music. Another absolute must.

Nice Rock win!


The Rock won only their second home game of the year tonight, 16-10 over the Rochester Knighthawks. Watson played a great game in net, the D was solid, and most importantly, the boys played well for 60 minutes. There have been a number of games this year where they played great in the first half, or even the first three quarters, and then mailed in the rest and lost. Nice to see them play the whole game. Some other notes:

  • Rochester’s Mac Allen should have been sent to the penalty box just for that moustache.
  • Pat O’Toole did not have his best game ever. His brother was sitting a couple of rows in front of us and didn’t look too happy. He left at half-time and didn’t come back.
  • Note to Rock shooters: We’re all really impressed with your accuracy, but hitting the goalie square in the middle of the chest does not help your team win games. In actual fact, you don’t want to hit the goalie at all.
  • The Rock scored two shorthanded goals on the same penalty.
  • One fight, Bonterre vs. Campbell. The look on Campbell’s face throughout the fight was “Oh crap, why the hell did I do this?” and with good reason – that Bonterre is one big fella. Only two punches were thrown in the fight, both by Bonterre, and it looked like he either broke or knocked out one of Campbell’s teeth with one of them.
  • Seriously though, that moustache. Damn.
  • What’s with Steve Dietrich leaving the field before the victory lap? I would have thought that was the first thing they told you when you became a Rock player.
  • There was one goal called back after a review, but the review shouldn’t have been necessary. The shooter’s foot was definitely in the crease before the shot. Perhaps the ref was at a bad angle and couldn’t see that, but I could see it quite clearly from my seat. The review only took a minute, so it must have been pretty obvious to the ref as well after watching the replay.

Let’s not get too excited though, Toronto is now 4-7 and still in last place in the East. They have five games left to play, including one against league leaders Calgary and one against Boston who are second in the east. But the other three are all against teams with equal or worse records than the Rock (Edmonton, Philadelphia and San Jose), so we should be able to win at least two of those. The Rock beat Boston in OT a couple of weeks ago, so 3-2 or even 4-1 over the last 5 games is not out of the question. Rochester has played much better over the last few weeks than the first few (though that’s not hard – over the first few weeks they looked terrible), and Philadelphia has Iannucci back now, so things, as always, will be tight in the east.

If the Rock want to see the playoffs, they will have to keep up their strong play (for four quarters per game) and keep their fate in their own hands, rather than playing badly and just hoping that someone else plays worse.

Inquiring minds want to know


A while ago, I posted a habit that programming has given me, and here’s another. I don’t think it’s really a bad habit, as the original Stack Overflow question asked, but in a nutshell, I want to know algorithms for everything. The thing is, I’m not as interested in how software running on the space shuttle works, or running the machine that goes “bing” at the hospital. I’m interested in algorithms for relatively simple everyday things. I’d love to take a look at the source code for software running a car stereo, a bank machine, the fountains at the Bellagio in Vegas (I once saw a TV show on the guy who wrote that – very cool), or even a digital watch. One of the coolest projects I’ve ever worked on was a CD player application while I was at Microsoft in the fall of 1991. There was an app in Windows 3.x called Musicbox, which I suppose was the precursor to Windows Media Player. My job at Microsoft was to write a clone of that application. I never really figured out why they wanted me to do this – they had Musicbox which worked nicely – but I loved the project. I had buttons for play, stop, pause, fast-forward, rewind, and eject (which I labelled “spit” as in “spit out the CD” – it was funny when I was 22), a horizontal scroll bar that allowed you to seek to anywhere within a song, and other cool things like the ability to “bookmark” any part of a song (eg. “Awesome guitar solo!!!1!“) and then immediately seek to it again later. MP3 didn’t exist at the time, or at least I didn’t know about it, so we were solely dealing with actual physical CDs.

Anyway… enough reminiscing, let’s get back on topic.

I know how a GPS generally works – there are satellites in orbit that send out signals, and the GPS unit receives the signals from several satellites and somehow uses them to determine its exact position. I don’t know exactly how, but I get the general idea. And I can guess how turn-by-turn navigation works – that’s just graph theory. But what I want to know is how the information about roads and addresses and stuff is encoded in the graph. Sometimes you get a turn direction like “turn left at Dundas St.” and other times it’s “keep left onto Hwy 403″. Somehow it knows that to get onto the 403, you stay to the left side of the road, rather than actually making a turn. How does it know that? How does it know that 222 Jarvis St. is between Dundas and Gerrard and not south of Queen?

All of the one-way streets and on- and off-ramps must be marked as such, as well as intersections where certain turns are not allowed, and other weird things like when there are two sets of lanes on a highway and you are in a set that doesn’t have access to a particular exit. Every address must be encoded in there somehow indicating where on the street it is, including what side of the street and how far it is from the nearest cross street. How is that all encoded? I want the database schema.

Another example would be elevators. They’re very simple to use, but how does the software controlling everything work? Say there’s only one elevator which is at the ground floor. Someone on the 5th floor presses the “down” button, so you send the elevator up to 5. As they’re getting in, someone on the 8th floor presses down, and then the person on 5 presses “2”. Do you go down and drop off the person on 2 and then go up to 8? Probably. But while you’re going down to 2, what if someone on 4 presses “up” – do you pick him up on the way back up to 8? What if he wants to go to 12 – do you take him up to 12 and then go back down to 8? That means that the guy at 4 got serviced before the guy at 8 although the guy at 8 arrived first. Are you trying to make things fair (i.e. first-come first-served), or reduce average waiting time, or reduce elevator movement, knowing that the occasional “customer” may have to wait a long time? Do people that have been waiting longer gradually become higher priority? Having multiple elevators servicing the same floors should reduce waiting times, but would make the algorithm more complicated. If there are three elevators and one is “out of service”, does the software compensate for that by simply ignoring that elevator or does it change the algorithm somehow?

I’m sure some software developers dream of writing software to run in the most complex and important computer systems in the world – air traffic control systems, nuclear power plants, an automobile assembly plant. Me? I would love to write the software controlling a DVD player.