Sunday, March 29, 2009

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."

Friday, March 27, 2009

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.

Thursday, March 26, 2009

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.

Wednesday, March 25, 2009

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.

Monday, March 23, 2009

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 <em>italics</em> 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 <file> and then start <file>.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 <FONT> 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 <tt>fixed width text</tt>), 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 <blink> and <marquee> 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.

Sunday, March 22, 2009

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.

Saturday, March 21, 2009

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.

Thursday, March 19, 2009

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.

Tuesday, March 17, 2009

Roll up the rim to lose

I buy a tea and bagel from Tim Horton's on my way to work every day. For the last couple of weeks, the Roll up the Rim to Win contest has been going on, and thus far I have won exactly nothing. Last year I won a couple of coffees teas and a couple of donuts — nothing much, but it's always nice to win something. But does my lack of winning make me get angry and not go to Timmy's anymore? No, it makes me want to go more because I know the chances of winning are pretty decent and the fact that I haven't won yet makes me more likely to win the next time. Yes, I know that is absolutely not true, but it sometimes feels true.

So if I win, I want to go back to Timmy's to win again and if I lose, I want to go back to Timmy's to try again. They can't lose. It's brilliant.

Update: A friend of mine pointed out on facebook that she wins more often when she buys a large. Last time they ran this contest, I bought a large tea every day, and I won a few times. These days I buy a medium every day and haven't won at all. Coincidence? Hmmmm...

Sunday, March 15, 2009

Telecommuting

I've worked as Sybase since August 1997, and have been a part-time telecommuter since January 2004. I already worked at home infrequently when the need arose (as did many others in our group), but at that time, my (old) car was around 275,000 km, and I wanted to reduce the mileage I was putting on it so that it would hopefully last a little longer. I asked my boss if I could regularly work at home one day a week (every Friday). He asked his boss who asked the President of the company (who to this day I have never met), and they all OK'ed it on a trial basis. Five years later, I'm still at home every Friday, and sometimes on other days as well. If there is a lot of snow in the forecast, I will generally work from home; in the past, I have had days where it took me two hours to get to work and the same to get home, and wasting that much time (and gas) seems really dumb if I can work at home and avoid it all. I've done this for a couple of years now, and I'm sure there have been days where the traffic would have been fine despite the snow, but one day a few weeks ago it was snowy but I didn't think it was that bad, so I figured I'd brave the weather. Stupid move. It took me a little over two hours to get to work, and then about an hour and a half to get home.

I've read a number of articles on telecommuting, and one of the pieces of advice I've seen the most often is that you should treat working at home as the same as going to work, meaning that you should sit down and work during your regular office hours, you should have a separate "office" space and not just sit at the kitchen table, things like that. I've even read about people who close the door to their "office" and force their family to either call or email if they need him, just as if he were at an external office. This seems a little extreme to me, but it does avoid persistent interruptions. I would love to have a dedicated place in the house where I could work more comfortably than the dining room. We do have an office upstairs, but the desk is so cluttered with stuff that there's no room for my laptop. If I were to clear off the desk and use that as my telecommuting "office", I think I'd have to invest in a new chair. Hmmmm.... I've thought about that idea in vague terms before but never really thought about it until now, and I'm starting to think that it's a really good idea.

Treating working at home like working in the office is particularly important if you telecommute 5 days a week, since you don't want to feel like you live in your office — you want a place that you can "walk out of" at 5:00 and feel like you're back home. For me, I only work at home one day a week most of the time, so I set my laptop up at the dining room table and sit there. Sometimes I used to sit at the kitchen table, since it's closer to the entertainment centre so I can plug my iPod in and listen to music while I work. I recently bought a speaker device for my iPod so I can listen in the dining room, so now I don't need to move. But generally, it's a normal working day. I get up at the same time, have a shower and get dressed, get the boys breakfast and make their lunches, just like any other day. It's just that when I'd normally kiss everyone goodbye and leave, I simply walk into the dining room and sit down.

It does take discipline to work at home. It'd be very easy for me to sit with my laptop in front of the TV all day, but I know that I'd get much less (read: nothing) done, so the TV never goes on. Surfing the web is harder to avoid since the browser is right there, but I'm getting pretty good at not sitting on Facebook or writing blog entries all day. Most of the incentive to not do this comes from my work ethic — I know that if I'm goofing around when I'm supposed to be working I'm essentially ripping off the company, and so I feel guilty. I do have to admit that some comes from the fact that working from home is a privilege that Sybase has given me. If they decide I'm not getting as much done when I work from home, they might decide that they don't want me to do this anymore, and I don't want to lose the privilege. It's something like: I want to be able to work from home and goof off, so when I work from home, I don't goof off in case they don't let me work at home.

One of the huge advantages of my job, from the point of view of telecommuting, is that from a work perspective, there's not much I can do in the office that I can't do from home. (Obviously teachers, policemen, and anyone who works in retail or deals face-to-face with customers doesn't have this luxury.) Copying large files over the network is much slower (100 Gb line vs. VPN over wireless G). I do a lot of network-related projects, and sometimes that doesn't work very well. As I've mentioned before, the product I work on is a mobile database called SQL Anywhere (SA), and the clients use UDP broadcasts for locating the server. When I'm at home, my machine is essentially on its own private LAN separate from the work one (VPN does stand for Virtual Private Network after all), so any broadcasting stuff doesn't work properly since UDP packets don't span subnets. I have a couple of VMWare images running on our VMWare server in the office, so whenever I need to do network stuff, I can simply remote desktop into one of those. I used to do a lot of work on the NetWare version of our product, and I can't do NetWare stuff at home either. But we don't support NetWare in the latest version of SA, and we get very few bug reports from previous versions (that's obviously because my code is robust and efficient, not because we only have a handful of customers using NetWare). I have my NetWare development environment set up on a VM now so I can do that from home anyway.

The obvious advantage to telecommuting is the lack of travel time and effort — not only does it reduce the time spent travelling (on Fridays I generally spend the extra two hours working), but it also reduces the gasoline used and the extra mileage on the car. On days where the traffic or driving conditions are bad, it also eliminates the likelihood of accidents, and lowers my general stress level as well. It's also very nice to be able to schedule things like dentists appointments and visits from service people (the furnace guy, the guy who will hopefully fix our dishwasher next week so I don't have to wash a thousand dishes every night, etc.) on Fridays and not have to take vacation days.

Other than work stuff I can't do from home, the main downsides to telecommuting are things like participation in meetings, whether scheduled or impromptu (Aside: "impromptu" is a really weird word), and socializing. Some things are just more difficult over email or IM.

From the company's point of view, there are only one real advantage: keeping employees happy (and therefore keeping employees). I do love my job, but if Sybase didn't allow me to work from home, I might have grown tired of the commute by now and left to find a job closer to home. In terms of job perks, it costs the company nothing, and is a display of trust on their part, further enhancing my overall job satisfaction.

I've written before about IvanAnywhere, the telepresence robot in our office controlled by my colleague Ivan Bowman, who lives in Nova Scotia. Ivan used to live and work in Waterloo, and now travels here a few times a year. But I'm curious how Ivan's working relationship with colleagues that he has never worked with "in person" differs from those with whom he has.

Saturday, March 14, 2009

CD Review: Nine Inch Nails - The Slip

I downloaded the new Nine Inch Nails album a week or two ago (for free!). This was my introduction to NIN who are known as "industrial metal", but as with other labels, I'm not really sure what that means. Similarly, what does it mean for a band to say they are "alternative"? Alternative to what? R.E.M. was the quintessential alternative band for a while, then they sold zillions of CDs and had #1 hits and stuff, so are they still "alternative"? The best description I've heard for "alternative" was "Any band that I like that you've never heard of", which fits as well as any other description.

Anyway, back to industrial metal. Those readers familiar with NIN might be shaking their head, but I really have never heard any of their music, so I'm a NIN virgin, please be gentle. I have a couple of Rammstein albums (Feuer Frei! is such a great song), and a few Tool albums as well. NIN has a fair number of time signature changes, moreso than Rammstein though not as much as Tool, and both NIN and Rammstein have songs that have some electronica aspects while definitely having a basic metal sound. Both Rammstein and NIN have a couple of these type of upbeat almost-danceable songs (Discipline, Echoplex, Demon Seed), while the thought of dancing to a Tool song is just laughable.

One similarity among all three bands is that the vocals are frequently hard to decipher. I can safely say that I have no idea what any Tool or NIN songs are about — or Rammstein either for that matter, but that's because they sing in German. NIN and Tool also have songs with long instrumental stretches. With Tool, the instrumentals are mostly done with actual instruments, while the NIN songs 999,999, Lights In The Sky, Corona Radiata and The Four of Us Are Dying are mostly ambient sounds and minimal actual music. (Then again, the Tool songs Eon Blue Apocalypse and Faaip de Oiad (WTF?) are pretty much just noise too.)

One thing that differentiates NIN is the guitar sound. The guitar in NIN is much "fuzzier", while Tool and Rammstein use your standard distorted metal guitar. One album by The Tea Party, Transmission, has some songs that feature the same fuzzy distorted guitar sound as NIN, though I wouldn't generally call The Tea Party industrial or even metal. If you took Tool, swapped out the guitarist's distortion pedal for a more fuzzy one (or maybe added a few distortion pedals in series), mixed in some of the keyboard fills of Rammstein, and then somehow got the lead singer to cheer the fuck up a little, you'd get NIN.

To confirm what I said before about why free music is a good thing, I bought the older NIN album The Downward Spiral a few days ago, and I'm looking forward to receiving it this week. I just love listening to new music!

I just realized something else though — I bought The Downward Spiral used on eBay, so Trent won't actually be getting any money from me. But I can't confirm that the guy I bought it from didn't rip it and keep a copy on his computer or iPod. So why isn't Lars Ulrich fighting against the used CD industry?

Monday, March 09, 2009

Sure, but does it have Dolby Noise Reduction?

Gail got a new Walkman last weekend. She wants to do some more walking once the weather gets nicer, so she wanted a new MP3 player. We did some looking around and she decided on the Sony one. Note that the price on the Sony page is $119, but we found it at Future Shop for $79. Gail's main criteria were that it be small, have a display screen that showed you the song and artist name, and have the ability to use playlists. The playlist idea is so that she can set up a "warmup" playlist, consisting of songs of an appropriate speed for warming up, and then once she's warmed up and wants to pick up the pace, she can switch to another playlist consisting of faster songs.

The Walkman came with a CD of software, which I presumed was Sony's equivalent of iTunes. I installed it and it let me browse through the iTunes directory and select directories and files to copy to the Walkman. The docs say that non-MP3 files need to be converted to MP3 format first, but that their software will do that. Well, it seemed to want to convert MP3 files as well (to what, I don't know), and took forever to do the conversion and copy the files to the device. Then I read in some other part of the docs that you can use Windows Media Player (MP) to create playlists and transfer songs and such instead of the Sony software, so I gave that a try. Holy crap, what a difference. MP is miles faster (in terms of overall application performance), didn't do any MP3-to-MP3 "conversion", and lets you create playlists, which the Sony software doesn't do. Copying the files to the device was also very fast. MP doesn't handle podcasts (I don't think), but the Sony software does, so if you want to listen to podcasts, you might have to use the Sony software. But unless you need it, I wouldn't bother with the Sony software. It did say that it needs MP version 11, but that comes on the CD as well, so if you are not already running MP version 11, you'll need to upgrade. Vista comes with 11 so I didn't have to do anything.

As for the actual device itself, well, it ain't no iPod. While looking around at the store, Gail played with an iPod for a minute or two and said simply "Apple really does it right, don't they?" Yes, they do, but the iPods were double the price of the Walkman. Gail also liked the look of the Zune, but apparently Microsoft won't allow the store to use a display model, and we didn't want to buy it without giving it a try first, so the Zune was quickly dropped. Anyway, I'm very used to my iPod, so it took me a minute to realize that you have to actually press buttons rather than just drag your finger around. But I got used to it pretty quickly, and didn't have to keep looking down at the buttons to figure out what to do. They say that a good interface is one that "disappears" while you're using it, so this would have to qualify. The menus and such are similar to the iPod, so you can choose what to listen to based on artist, album, song, and genre (I think), or you can play from a playlist. It seems to have shuffle capability as well.

Now, we haven't really used the Walkman yet, just played with it a bit and started to get things configured, so time will tell. Maybe after using it for a week, Gail will hate it and we'll take it back. Or she'll love it and wonder how she ever lived without it (like I do with my iPod), but more likely, it'll just be fine. Gail's not one to fall in love with technology (unlike her husband and his goddamned beloved iPod), so as long as it does the job that it's supposed to do, everything will be peachy.

Aside: The image above is one that I found online with a google search, but I chose it because it happens to be the same model as the second Walkman I had in high school. That model was very cool because it had MEGA BASS. It also had Auto Reverse, which was also a very cool feature, but not as cool as MEGA BASS because the first Walkman I had also had auto reverse. MEGA BASS was new. Oddly, my boss has a cassette Walkman in his office, which is the same model as my first Walkman. He does have an iPod which he uses when walking to and from work, so I have no idea what he uses the cassette player for.

The World Baseball Whatever

The second World Baseball Classic is in progress and once again, I just cannot get into it. The idea is great; as a baseball fan, any way to promote baseball around the world is fine by me. But until I looked up the wikipedia entry, I couldn't remember who won the last one. Off the top of my head, I can't name more than three members of the Canadian team (Jason Bay and Justin Morneau because they're awesome and Stubby Clapp because I can't imagine anyone willingly going by the name "Stubby").

I did watch a bit of a game earlier today while folding laundry, but I didn't finish watching it, and did not later feel compelled to find out the final score like I did watching women's softball during the Olympics. Now maybe that's because the game I happened to be watching was the Cubans wiping out the South Africans 7-0 in the 5th; if the game had been close, I might have been more interested. Canada plays Italy tomorrow night with the winner advancing to the next round and the loser going home, so I may check that game out, but I wouldn't be too surprised if it slips my mind.

It would be different if this was a competition featuring the best baseball players in the world, but it's not. It's a competition featuring the best baseball players in the world who aren't injured, weren't injured last year, didn't have off-season surgery, whose teams allowed them to play, and who give a damn about this tournament. When players like Halladay, Pujols, Beltre, Santana, Papelbon, Lincecum, and Dempster are all skipping it so that they don't miss spring training, you can tell the level of interest in this tournament. I don't remember many American basketball players or Canadian hockey players who have passed on the Olympics for any reason other than they were physically unable to play.

It's pretty simple, really — if the best players in the game don't care about the tournament, why should I?

Next morning update: I totally forgot about this game last night. Turns out that this might have been a good idea since Canada lost.

Friday, March 06, 2009

Mid-season NLL report

We're halfway through the NLL season, and it's time to look over my pre-season predictions and celebrate the fact that I was 100% bang-on with all of my predictions. Well, almost.

East Division
 PredictedActual
 1 BuffaloBuffalo
2PhiladelphiaBoston
3New YorkNew York
4TorontoPhiladelphia
5RochesterRochester
6BostonToronto
West Division
 Predicted Actual
 1 MinnesotaCalgary
2CalgaryPortland
3ColoradoColorado
4San JoseMinnesota
5PortlandSan Jose
6EdmontonEdmonton

OK, not almost. I got a few right, but in some cases, I'm not even close. In the East, it's hard to get Buffalo wrong, I had New York contending, and Rochester near the bottom, but that's about it. Philly didn't weather the loss of Iannucci very well at all, and my fairly dire prediction for Toronto turned out to be really optimistic. I didn't have high hopes for Boston, but they've turned out to be much stronger than I thought. I did say in my original prediction that they would be stronger than your average expansion team, but for some reason that didn't get reflected in how I viewed the standings.

In the West, Minnesota hasn't been the powerhouse I thought they might be, and Portland is not sucking. I got Calgary and Colorado pretty much right, and Edmonton is no surprise.

But in the East, if you swap Boston and Philadelphia in the standings, you get something very close to my prediction. In the West, if you swap Minnesota and Portland, same thing.

Note for the record that I made end-of-season predictions, not mid-season. There's lots of lacrosse still to be played.

Thursday, March 05, 2009

What if we give it away?

Hot on the heels of Harvey Danger making their album available for free download (which I've blogged about a couple of times), Nine Inch Nails have done the same thing. OK, well maybe not "hot on the heels", since Harvey Danger did it over three years ago, but this is another example of a band (or person actually, since NIN is Trent Reznor) that actually gets it when it comes to downloading music.

A lot of people and bands (Lars Ulrich of Metallica comes screaming to mind here) seem to think that downloading music is the scourge of society, and allows people to essentially pull money from their pockets. What they have to consider is that many of the people downloading their music illegally wouldn't have bought it in the first place. Would I have gone out and bought a Harvey Danger CD? No, because I'd never heard of the band, but I'm willing to download it and listen for free. If it sucks, I've lost nothing. But if I like it, I'm more likely to go back and buy it or some previous album (both of which I did for Harvey Danger), which is money that the band made that they wouldn't have otherwise.

Are there people who will download music instead of buying it? Absolutely. Back in high school, my friends and I would all negotiate who was going to buy the latest album from Kim Mitchell or Van Halen or whoever, and everyone else would give that person a blank tape and he'd tape it for the rest of us. So yes, we were pirating music. But at the time, I was a high school kid and didn't have much money anyway, so I was unlikely to buy 90% of the albums I taped, meaning that nobody was losing money by me doing this. On the contrary — while I may not have bought Akimbo Alogo at the time, I did listen to it and became a Kim Mitchell fan. Years later I did buy Akimbo Alogo on CD, along with a couple of other Kim Mitchell albums as well as all of the Max Webster albums, so Kim did end up benefitting from my piracy.

Similarly, I've been interested in hearing NIN for a while, but since I'd never actually heard any of their music, I was hesitant to just go out and buy something. Downloading the album gives me the chance to hear it and decide if I like it, and so far I do. So perhaps I'll buy some of their older stuff — once I do that, NIN will profit from my downloading their album. If they never released it for download, I wouldn't have bought it, and they'd have made nothing from me. Thus far, since I haven't bought any NIN stuff, they still haven't made anything from me, but now the potential's there.

Let me be clear: I may have done it in the past and even tried to justify it above, but I'm not advocating piracy, so chill out, Lars. I do have a handful of albums that I downloaded illegally a couple of years ago (none of which are Metallica, so chill out, Lars), and I feel a little guilty every time I listen to them. But I have bought copies of several of the ones I listen to often (I just bid on a copy of Abbey Road and two Rammstein CDs on eBay), and I've also deleted some that I don't. I haven't downloaded any music or videos (other than the odd TV show that I missed, none of which feature Metallica, so chill... OK, that joke's getting old) in a couple of years. I'm really not talking about stealing music, I'm talking more about the bands that choose to make their music available for download, most of which are indie bands like Harvey Danger. But it's nice to see some big-name bands like NIN doing the same thing.

Wednesday, March 04, 2009

Steve Gibson needs a blog

Steve Gibson needs a blog. Seriously. I've been listening to his Security Now (SN) podcast for over a year, and I do enjoy it, but it seems to be getting longer and longer every week, mainly because of things that Steve and Leo start talking about that are not security-related.

I'm in the middle of episode 184 now, which is a Q&A episode. This is where Steve picks twelve questions from listeners and answers them. This episode is about an hour and fifty seven minutes long. The first question isn't even begun until forty two minutes into the podcast. Some of the topics discussed before the first question:

  • a minute of advertising for the TWiT network.
  • seven minutes of introduction and talking about Steve's appearance on another TWiT podcast next week regarding historical computers (PDP-8, PDP-11, and such)
  • two minute commercial
  • ten minutes of recent security news. He mentioned the Pirate Bay trial as well as an authentication problem he had with Paypal. Definitely security-relevant.
  • seven minutes of talking about a couple of computer utilities he uses, his favourite sci-fi TV shows (Fringe is his current favourite, if you're wondering), more on historical computers, and how he maps his Caps Lock key to Ctrl because Caps Lock is not very useful. Can't disagree there.
  • a seven-minute Spinrite "testimonial", i.e. commercial. He does one of these every week, and I'm sure this is one of the reasons he does SN — it lets him plug his software. Again, no big deal since I skip it anyway, other than the fact that it was very long.
  • four minutes on how Steve's computer plays a "Yabba Dabba Doo!" sound whenever someone buys a copy of Spinrite, and how the number of times he hears this sound is inexplicably higher during the recording of SN than at other times. The only explanation that he and Leo have come up with is that some people like to buy Spinrite while SN is being recorded so that they can hear the sound bite for their purchase (you can listen to the podcast being recorded live at twit.tv on Thursday afternoons). This was kind of funny, actually.
  • two minute commercial
  • two more minutes on the Yabba Dabba Doo thing and other sound bites that Steve's computers play

The twelve questions take an hour and 15 minutes or so to read and answer, with at least one more two-minute commercial in there. This seems pretty long too, but this is the actual meat of the show, so I can't complain too much about that. There are some questions that could be answered a little more succinctly though.

Leo starts to read the first question at the 42:00 mark. Some of that 42 minutes was commercials, evil but necessary. Twelve minutes seems a little long though — the Spinrite commercial testimonial should be kept to three minutes. The security news section is part of why I listen to this podcast, so that's definitely fine. I get that Steve and Leo have interests outside of security, but there's twenty minutes of just general banter. If you guys want to shoot the shit, do it before recording.

If Steve had a blog, he could ramble on all he wanted about Fringe and sci-fi in general, and old computers, and his Yabba Dabba Doo sound bite, and his network setup, and his Kindle, and his favourite kind of coffee that he drinks seven times a day, and the fact that he gets his first coffee at Starbucks at 5:30 in the morning, and how he writes everything in assembly language, and so on. He could spend thirty seconds per episode plugging his blog and spend the rest of the podcast on actual security stuff. stevegibson.com seems to be taken by an organic farm in Texas, but perhaps he could pull a Dvorak and get gibson dot org slash blog.

Update: For some reason, this particular article has gotten a lot of comment spam, so I have had to disable comments on it. Apologies for the inconvenience.

Monday, March 02, 2009

Sushi IS for dummies?

We were in a bookstore yesterday, when I saw a book in the ubiquitous "... for Dummies" series called "Sushi for Dummies". Ryan saw it and said that a friend of his liked sushi. I asked "You know who else likes sushi?", expecting him to say "who?", at which point I'd say "me", but his response made me laugh:

"Dummies, I suppose."

Sunday, March 01, 2009

Technical Debt

Jeff Attwood wrote an article on his blog Coding Horror yesterday all about paying down your technical debt. This is when you do something "the quick and dirty way", which then costs you "interest" in the future in terms of bug fixes, workarounds when new functionality is needed, and just extra time for developers unfamiliar with the code to understand why something was done the way it was. There are certainly times in every developer's life when you have a choice between doing something "the right way", which might take weeks to design and implement properly, or you could do it the easy way, which gets the job done for now, but may have consequences later. If you're under a tight deadline, often the easy way wins out — that's your debt.

People often complain about Microsoft Windows being bloated, and that's largely because of technical debt that they can't easily pay off. When they released Windows NT in 1993, they made sure that all existing Windows and DOS programs would still run. That decision saved them — who's going to upgrade to a brand new OS when there are no programs and drivers for it, and none of your existing stuff will work? — but they incurred a huge debt because of it. Backwards compatibility has always been a huge issue for Microsoft — it's only recently (2007) that they released an OS (Vista) that won't run 16-bit DOS software from the 80's. I cannot imagine how much of the Windows source code is dedicated to running legacy software.

I love this "technical debt" metaphor, as we've gone through it a couple of times on our mobile database product, SQL Anywhere, most notably a few years ago on SQL Anywhere version 10.

One of the advantages of SQL Anywhere is the way we save data in the database file. We do it in such a way that a database created on any supported platform can be copied and used on any other supported platform. Also, if you create your database with one version of our product, you can continue to use it when we release updates for that version, or even completely new versions. Version 9.0.2 of our server, released in 2005, can still run databases created with Watcom SQL 3.2, released in 1992. I remember my time as an Oracle DBA - every time we upgraded Oracle, we had to "fix" the database, and by "fix" I mean we had to rebuild it or upgrade it or something. I don't remember what we had to do, but we had to do something. We also had Oracle on our test server, which was a different platform than the production server, which means that we couldn't just copy the production database to our debug server for testing or debugging purposes, which was quite a pain.

Anyway, while this was a very convenient feature, we did accrue some "technical debt". This is not quite the same as described above, in that we never took the "quick and dirty way", but we still had to have code in the server to support features that had been removed from the product and very old bugs that had long been fixed. After six major versions and thirteen years, there was a lot of these. After much discussion, we decided to take the big plunge with the 10.0 release (known internally as "Jasper" — the last few releases have all had code names from ski resorts, "Aspen", "Vail", "Banff", "Panorama", and the next one is "Innsbruck"), since we were adding a ton of other new functionality with that release. The decision: version 10 servers would not run databases created with version 9 or earlier servers. Everyone would have to do a full unload of all their data and reload it into a new database when upgrading to version 10, and they'd have to do this for all their databases. This would allow us to remove thousands of lines of code from the product, making it smaller, and since we have far less cases of "what capabilities does this database have?", the code can be more efficient. As a simple example, we now know every database that the server can run supports strong encryption, checksums, clustered indexes, and compressed strings, among others, so we don't need to check for those capabilities before using them. There are a lot more assumptions we can make about the layout of the database that makes the code simpler, smaller, and more efficient. We can also add new features that might have clashed with old databases. We knew that the rebuild itself might be inconvenient, and upgrading to version 10 wouldn't be nearly as seamless as previous upgrades, but we also knew that once the initial pain of the rebuild was over with, life would be much better for everyone. We even put a lot of work into streamlining the rebuild process so that it was as fast and simple as possible.

As you can imagine, there was some resistance to this, and I'm sure product management had to handle more than one call from a customer asking "I have to do what with my multi-terabyte database?", but to their credit, they stuck to their guns and told the customers that yes, we know it's inconvenient, but it's really for the best, and you'll appreciate it once the rebuild is done. Or perhaps they blamed it on us, telling the customers "We know it's a pain, but engineering won't budge. They're determined to do this." Either way, it happened, and we did get some more bug reports because of problems with the rebuilds, but for the most part, things went pretty well. That pain paid off the technical debt that we'd accumulated over the previous decade.

Of course, we've since released version 11, which added new stuff to the database file, and we're working on version 12 which adds even more, so now some of those "if the database file has this capability, then do something, otherwise do something else" conditions are creeping back into the product. So far, there aren't a ton of them, so our current interest payments are pretty low, but perhaps in five or six more versions we'll have accumulated enough technical debt that we'll have to bite the bullet and pay it off again.