David Grant's blog

The Worst (or Best) Rod Black Quotes from the 2010 Olympics in Vancouver

Watching the short-track speed skating and figure skating at the Winter Olympics in Vancouver I was reminded of the sheer awesomeness that is Rod Black. Some love him, others want to strangle him (or maybe just hit the mute button). Throughout the Olympics I jotted down some of the most puke-worthy and groan-worthy things Rod Black said. Then I went to CTV's website and uncovered a few more gems. I'll leave the delivery up to you. Make sure to use lots of long pauses and think of Rod and his glorious mustache (which he unfortunately shaved off). Rod Black, if you see this, I hope you have a sense of humour!

Rod Black 2010 Olympics Quote
"Celebrate Ilderton. Celebrate Moirs. Celebrate Virtues. Celebrate Canada."
"Flawless. If there was a slip in their program, it was nary a slip."
"They just happen to be the best ice dancers on the planet."
"The Americans were perfect. The Canadians were perfect."
"We CAN believe!"
"Ohhhhhhhh Canada. Dream ride, golden quest. They've skated together since they've been kids. They are 4 minutes away from the ultimate goal."
"Is it enough!? Magic!!! 11,000 in here think so."
Marilyn: "It was an exquisite performance. Exquisite." Rod Black: "It melted this ice. It brought the crowd to its feet, and the house down."
"The theme has been 'believe.' Do you believe? <Virtue and Moir score announced> Yes!!!"
[Virtue and Moir] Friends, Virtue-aly forever. Born to skate together."
"We've got a couple of Americans, a couple of Koreans, and a couple of Hamelins"
"4 skaters. 5 laps. 3 medals. 2 Canadians. 1 Gold."
"The brothers Hamelin."
"You CAN believe Charles Hamelin, you CAN!"
"It is — Charles Hamelin. It is — Francois Louis Tremblay. It is — Canada. Gold and Bronze, here TO-night!"
"Pure. Canadian. Gold!"
"China, to the fore!"
"The golden boy, Charles Hamelin."
Absolute Gold here tonight!
And the brothers Hamelin are going to be on a podium together — their dream — here in Vancouver.
The Canadian men had been shut out. Couldn't crack the podium. They were saving the best — for last.

Idea for puke-ometer shamelessly stolen from the Christie Blatchford Hall of Shame

NoMachine NX is awesome

Use NX. VNC sucks.

I love Remote Desktop for connecting to Windows machines remotely. I worked from home many times while at Kodak and if it weren't for Remote Desktop, it would have been impossible to enjoy a full-screen connection to my work desktop while at home. I didn't think there was anything for Linux besides VNC until now (I had used remote X a long time ago though, to connect to the Solaris machines at UBC). Then I discovered NoMachine NX (NoMachine is the company's name and NX is the product name). I downloaded the Free Edition for Linux and then grabbed the Windows Client (which apparently is also free?). It's ridiculously fast, as fast as Remote Desktop. Google is also working on neatx an open-source NX server implementation and there is the freenx project, a GPL-licensed implementation of the server and client components. If you are trying to connect to a Linux desktop remotely, don't even think about using any of the VNC derivatives. Use NX.

Dell External Wi-Fi Switch

So the other day the WiFi stopped working on my Dell Inspiron 1720 laptop so after a little bit of troubleshooting and assumed the mini-PCI express wireless card was fried and ordered a new one from Dell's website. The new one didn't work either. Then I suddenly remembered that there was some sort of WiFi switch on the side of the laptop. I felt the switch and moved it moved it in the direction of "On" and it clicked! So it had been turned off! We move our laptop around a lot and somehow the switch had been switched to the off position accidentally.

I'm still glad I ordered the wireless card though, as it is a Wireless-N card so now if I upgrade my router to a Wireless-N router I might get faster speeds!
[img_assist|nid=373|title=Dell External WI-FI switch|desc=Mine looks something like this, but not exactly.|link=node|align=left|width=373|height=271]


Windows and 64-bit

Doing development, or more specifically deployment in a Windows 64-bit environment can be a frustrating experience. Let's start with a simple example from MSDN about the File System Redirector:

The %windir%\System32 directory is reserved for 64-bit applications . . . Whenever a 32-bit application attempts to access %windir%\System32, the access is redirected to a new directory, %windir%\SysWOW64

That's right, the System32 folder is used by 64-bit applications and the SysWOW64 folder is used for 32-bit applications. It's so obvious.

8 Things That Piss Me Off About Windows on a Daily Basis

  1. The fact that notepad.exe is still shipped with the product. I don't use notepad. I use gvim. But everytime I log on to a customer's machine or log on to another machine at work what editors are installed? None. Just Wordpad and Notepad. If I'm lucky, Notepad++ or something like that might be installed.
  2. When I copy something to my clipboard from the cmd.exe command line I can't copy and paste across multiple-lines in a nice wrap-around fashion. It only supports a "column mode" style highlighting.
  3. The cmd.exe window is fixed width and can't be widened by clicking and dragging the corners of the window, except by going to the windows's properties and making it wider.
  4. No nice equivalents for *Nix tools like find, grep, du, rsync, locate, etc... I could go on forever here.
  5. Symlinks and hardlinks are possible but totally unsupported by the rest of the OS. Technically NTFS supports symlinks and hardlinks but it is virtually undocumented. There are some third-party tools that can create and manage symlinks. As far as I know there is no way to create a symlink or hardlink from Microsoft's default File Explorer, Windows Explorer, or from the command line, although there is an "ln" utility available online. I did create one in Vista once, using junction.exe.
  6. I have to run bloated virus-scanners. Currently at work we have McAfee which takes up 100M of RAM and who knows how many CPU cycles.
  7. Lagging 64-bit support. The standard developer boxes we used at my last company were nice powerful Dell workstations with 2GB of RAM and Windows XP. Most of us upgrade to 4GB but only 3.3GB of RAM is available to the OS. This get used up quickly when you're running VMWare, Visual Studio, Firefox, Outlook, P4V Perforce client, and a Desktop Search application. I'd blame my former employer more than Microsoft for this. IT should be supporting Windows XP 64-bit by now, but the fact that Microsoft didn't release it until 2005 means that many companies still have yet to adopt it, and most are probably now thinking of skipping Windows XP 64-bit and going straight to Vista.
  8. No package management. I have to go to a website to download an application. Some applications have their own updater tools. Microsoft Windows has it's own updater tool, but otherwise, installing and removing software in Windows is much 10x more of a pain in Windows than it is in Linux.


Ticketmaster fees

Just bought some tickets on Ticketmaster and couldn't believe all the little fees that they add on. Why can't they just bundle these charges in to the ticket price? The "order processing fee", although it is added on to the "order" not the ticket, could also be bundled in to their overall costs. Make it a fixed cost per ticket rather than a cost per order. The "order processing fee" was especially annoying because when I was asked to select how I wanted my tickets (standard mail, express mail, pick-up, etc...) I chose standard mail because it said "Free." What is the "convenience charge" anyways? Just put everything together in to one fee and tell what it is up front. Break-it down later if you want.

Open Windows Explorer (explorer.exe) in a different folder, not in Documents folder

I use 32-bit explorer in 64-bit Vista because of a few problems that use 32-bit explorer extensions and therefore don't work in the default 64-bit explorer. So I call the explorer.exe in the SysWOW64 directory (confusingly, the apps in the SysWOW64 directory are 32-bit apps).

%systemroot%\SysWOW64\explorer.exe /separate /n,/select,%HOME%

%HOME% doesn't seem to exist prior to Vista/2008. Just replace that with whatever directory you want explorer.exe to start in. Of course if you're not using 32-bit explorer on a 64-bit system or if you are on a 32-bit system, you need something like:

%systemroot\explorer.exe /separate /n,/select,%HOME%

I also use this shortcut to launch the 64-bit Explorer (there are a few explorer extensions on my machine that are 64-bit only!)


Accidently hosed a post last night

I accidentally hosed a post last night. I was trying to delete an attachment to a post but instead deleted the entire post. Luckily I have nightly backups, so restore was quick and easy. It was the first time in a LONG time that I've had to restore the database, but I am extremely relieved that my backup system is working perfectly. I also rsync the backups to my home computer they are stored in two different places.,

South is amazing

I just started using South and it is awesome. I tried django-evolution and dmigrations before but they just didn't cut it. I'm just working on a project by myself but I have it running on a slicehost server and I do development on my desktop computer or laptop computer and South has made doing data and schema migrations so much easier. I love being able to create migrations on my dev box and then try them out, make sure they worked, check-in the changed code and the migration files, sync the server's code and run ./manage.py migrate and I'm done. I used to do manual SQL operations on both databases, or just overwrite the older with the newer (if possible). I just did two quick model changes (first was adding a new field that I wanted to seed with the data from another field, and the other was just adding a new blank=True CharField) and I felt like it was an order of magnitude faster than before.


Some Reddit Comments/Post Titles I am Getting Sick of

  • "I see what you did there." - overused and now totally unoriginal.
  • "Best. Comment. Ever." or anything similar
  • "Win." Like this: "Old School Dancing + Daft Punk = Win" or "You win" or "X wins" or "epic win".
  • "Epic".
  • Using "sir" to address another commenter.
  • Stupid equations, like "Old School Dancing + Daft Punk = Win"
  • "FAIL." - annoying
  • "FTW." When it's funny/clever it's ok, otherwise it's getting annoying.
  • "Downvoted for vote up if you...' title." - just down vote it, don't tell us about it.


Diapers Naturally Diaper Service in Vancouver

Update (2013-10-29): as of November 1st , 2013 Diapers Naturally has retired and Happy Baby Cheeks will be servicing all Diapers Naturally customers

Update (2009-07-08): Diapers Naturally now has a website!

Diapers Naturally is a Vancouver-based diaper service that has had absolutely no web presence. I found them in the Yellow Pages (the old-fashioned print one) and read an article about Diapers Naturally at mamatang.ca which I found by searching Google. The only other service I know of in Vancouver is Happy Nappy, which is considerably more expensive.

We have been using Diapers Naturally for just over one week now with our newborn since May 2009 and so far we love it. We started with 70 diapers per week (we only had 2 days of this before the next delivery) but we found we were using more than 10 diapers per day so we increased it to 80 diapers per day. After almost one full week we are on target to use about 85 so we have just upped it to 90 diapers per week. That costs $20.00/week for the deluxe contoured diapers (no folding required) + $8 for 100 cotton wipes (we use just over 1 per diaper change). The pail rental is free since we ordered 4 weeks of service. We started with 2 Bummi Original velcro covers and 1 Bummi Super Whsiper but we found they get dirty once in a while so we are ordering 3 more velcro covers. Diapers Naturally sells used velcro covers for $2-$5 or new ones for $10.95 or $11.50 for the Bummi Original or Bummi Super Whisper, respectively.

I've scanned all the material we got from Diapers Naturally in the mail and created a PDF document. Thanks to Louise for rotating some of the pages for me.

Diapers Naturally diaper service information (PDF)

If you sign up with Diapers Naturally mention my name and I'll get $10 (the account is actually under my wife's name, but I'm sure they don't have a ton of Grants in their system).


Commentful and cocomment.com Review

Since co.mments.com shut down I've had to find a new site to track comments to blog article that I have commented on. It turns out that the two alternatives both suck, for different reasons.

Cocomment requires a firefox add-on that is fairly broken. It wants to track every comment page and the only way to not have it track a page is to right click on the cocomment icon in Firefox and disable it, then refresh the page. Annoying. The other problem is that it doesn't work on Drupal sites. When you try to submit a comment on a drupal site it will not work and you will be taken back to the submit comment page. Luckily Firefox won't clear the comment text box so your comment won't disappear. The only solution is to disable Cocomment on that page and refresh. The bigger downside is that my comment won't be tracked. The only upside to Cocomment is that the RSS feed does work. I don't particularly like the web interface though, it's too messy and overly complicated with little icons whose use I always have trouble remembering.

Commentful is nicer and works more like co.mments.com. You're essentially just submitting a URL to a web service that will then notify you when more comments are added. The problem is that the RSS notification feed doesn't work. Not only that, but when you go to your watchlist, you have to click on the little "Check" icon for each item in your watchlist. That's right, Commentful doesn't even check the websites for new comments unless you ask it to. I suspect they didn't have enough resources to be checking remote sites every 15 minutes so they disabled that altogether.

I'm really tempted to write a Django application to do this. The only challenging part is determining how many comments there are in a blog article, and being able to do that across many different blogging platforms (wordpress, blogger, drupal, custom sites, etc...)

Gentoo gcc upgrade...again?

I just upgraded my mythtv backend's gcc from 3.4.6 to 4.1.2. It's still compiling all of world now and will be have been about 24 hours when it's all done. Then I did an emerge --sync and now there is a gcc 4.3! Arghh.

I've always touted gentoo's advantage of allowed me to run a mixed system. For a long time I was running an old version of mysql, and old kernel, and old glibc, and finally an old gcc. I would pull the odd update of certain packages if I felt like it. But the shear magnitude of the output when I would run emerge -uva world got on my nerves. I eventually caved and decided to go back to keeping an updated system. I had originally stopped updating most packages because I wanted my system to be as stable as possible (because it my MythTV machine and it records TV shows for me). At that time I was using it as a backend and as a frontend, but now I'm just using it as a backend which is a bit simpler (less room for breakage) and I'm a bit more careful now when doing upgrades. If any important packages are being updated I make sure to update them then reboot to make sure my system still boots. I also try not to fiddle with anything else. Anyways, in the case of my MythTV box I'm not longer taking advantage of Gentoo's biggest advantage, running system with mixed packages.


Vancouver Needs Real Street Food

Travel to many cities in the world and you will find street food all over the place. Delicious street food. Walk in Vancouver and there is almost no street food. I can only think of 2 hot dog vendors on West 4th or West Broadway west of Granville St. The one near Future Shop just west of Burrard and the one at the corner of Graville and Broadway in front of the Chapters. You can walk a long time downtown before stumbling across any street food, and it's mostly just hot dogs or Crepes. Toronto just announced some new street food offerings downtown. I really hope it is a hit, that the vendors make back their investment and more and I hope that no ones gets sick from the food. Then, this idea just might make it to Vancouver. How awesome would it be to be able to eat some Pad Thai on the street? Or some jerk chicken? or a souvlaki skewer? This is one area of our society where I think we need less regulation.
[img_assist|nid=341|title=Eating street pineapple in Seoul, Korea|desc=|link=none|align=left|width=200|height=150]
[img_assist|nid=343|title=Eating street food in Peru|desc=|link=none|align=left|width=200|height=150]


Django Applications at Work

Today someone at my work just released a simple Django app, the second one now running at my company. Here are the two Django apps running so far:

Server scanner

This is the first Django application that we use. It started out as a script that would scan all the computers on our network and determine what version of our software they were running by inspecting a special file in one of the publicly available SMB shares. The script took about half an hour to run and generated static html that was then served up by Apache. This became cumbersome for a number of reasons. For one, it took about an hour to scan the entire network. There was no persistence whatsoever so my script had no memory of which servers had our software installed on it. These servers are quick to check. The ones that are slow to check are the ones that are actually no longer on the network, or do not have the publicly available share that we are expecting. When the project manager emailed me one day and said "the servers on this page are often out of date" I sprung in to action and converted it to a Django application. There is a script that scans the network and saves Server instances to an sqlite db. I also used a couple generic views to display a list of servers and to edit a server (to provide a description). Converting to Django from my static html generator gave me a few new features right away: 1) full scans were much quicker because I could scan the servers that actually have the software installed with a higher priority. In another thread, I can look for new servers on the network with a lower priority. There's also the "timesince" filter which is awesome, and the automatically filled DateTime fields for "created" and "updated" when I update a model instance. Not to mention ModelForms and generic views which allowed me to get this up and running quickly. The best part is that each server entry has a description entry, where people can put a note like "DO NOT TOUCH THIS SERVER" or "Dave's server, please feel free to play around on it".

Task tracker

This web app is for the software developers to keep track and inform other of what they are working on. Up until we haven't really had anything of the kind, save for e-mail and a bug tracker. Typically software developers send weekly reports to team members. This involves typing one up or constantly opening up an email draft. Either way, other team members can't see what the person is working on in real-time. So one of the members of our Python Club got interested in Django and wrote this up very quickly. He used YUI which is awesome and he just released it to a wider audience today.

Build website - in progress

This is a new one that is in progress. Currently, each build generates a folder structure containing the result of the build along with a bunch of log files and a bunch of other junk. A perl script scans these folders periodically and generates static HTML (at least I think that's how it works, I don't work on it so I don't know the details). My boss is in the process of creating some Django models. The main table is a table called Build. Then his HTML will be generated from Django templates. That is the biggest advantage of moving to Django here, in my opinion, is that he can use templates rather than HTML generation by a perl script. Having the information in a database is nice but not required. He will get some advantages from having the database though. He'll have some other tables, such as BuildServer, Release, and Product that the Build server will contain ForeignKeys to to allow filtering the builds based on these ForeignKeys. Also the build manager (someone other than my boss who is designing the Django part) will be able to use the admin interface to add new Releases, BuildServers, etc...


This apps were implemented extremely quickly and are far better than all the crappy SAP and SharePoint-based web applications used at work and the other simpler web pages around that I think are mostly static HTML or ASP. It will be interesting to see if it catches on. I had this master to plan to re-implement our entire employee performance review site (which is a particularly crappy SAP app) in Django but there are too many hurdles. We'd need to hook in to the existing SAP user tables somehow and also use the existing authentication mechanisms. But a demonstration app using the basic functionality wouldn't be that hard, and then we could worry about the hard bits later after it got approval. The existing employee performance review site is REALLY bad.

Anyways, I just thought it was cool how quickly Django has been adopted for a few simple projects at a company that is for the most part a Microsoft shop. People do use OSS here but there is a bit of a tendency to use Microsoft solutions and a bit of Not-Invented-Here syndrome as well.


Subscribe to RSS - David Grant's blog