Saturday, October 25, 2008

Thursday, October 23, 2008

The hockey story that just won't die

Mats Sundin had a physical in Toronto the other day in preparation for his return to the NHL. Toronto apparently has cap room to sign Sundin, but why the hell would they? They're trying to rebuild and are letting the young kids play to see what they've got. Would Sundin make the team better? In the short term, yes, but at the expense of taking playing time away from the kids. They've already got veterans like Blake and Kaberle for the kids to learn from. News flash (via Ron Wilson): the Leafs are not going to contend for the Cup this year (or likely for at least the next couple), so what would be the point of signing Sundin?

Nobody from the Leafs organization will say this out loud, but you have to know they're thinking it: they also don't want to be too good this year, otherwise their chances of winning the John Tavares sweepstakes get lower and lower.

Sundin has said that if he plays this season, it will be his last season. But this is the same guy who refused to waive his no-trade clause last year (when the Leafs could have gotten something for him) because he didn't like the idea of being a rental player. He said that playing for the Stanley Cup is only meaningful if you've been playing with the team since the beginning of the season. And now, less than a year later, he's sitting out until two months into the season and is hoping to sign with a Cup contender, and then he'll retire after the season's over. In other words, he's sitting out specifically so that he can be a rental player.

I harbour no ill will towards Sundin; if he comes back with another team (even the Senators or Habs), best of luck to him. But part of me will remain angry with him for a while because of his refusal to waive his no-trade clause last season. He could have made the Leafs a better team in the long term by agreeing to a trade for draft picks and/or prospects, but he didn't want to do that because (he said) he didn't want to be a rental player and (he said) he wanted to remain a Maple Leaf. I accepted both of those statements at the time. But his actions since the end of last season conflict with both of them, and now I don't know what to think. It's kind of too bad that he won't get the retirement send-off that one of the best captains in Leaf history should have had. Rather than have the big celebration of his career in his last-ever game in Toronto like Jim Veltman had this past year, the Sundin era in Toronto just faded away.

A second team in Toronto? Puh-leeze.

Let's get one thing straight, OK? This rumour that the NHL is considering giving Toronto a second NHL franchise is complete hogwash. The NHL has gone to great lengths to make sure that Jim Balsillie cannot buy an existing NHL team and move it to Hamilton and the reason they've given for this is that it would infringe on Toronto and Buffalo territory. This is in itself mostly hogwash, since nothing is going to take money or fans away from the Leafs, though I suppose it could pull fans away from Buffalo. It could be argued that if that's the case, then maybe the Sabres should be moved. Anyway, after fighting Balsillie at every opportunity, they're not about to turn around and just give Toronto a second team.

Then there are the issues of where they'd play. The ACC already has three professional teams playing there during the winter, plus lots of concerts and other events; adding another team would cause no end of scheduling headaches. From a selfish point of view, this would likely mean that the Toronto Rock (who are the lowest team on the ACC totem pole) would be "evicted" from the ACC and have to play at Ricoh Colliseum, which would suck for us Rock fans.

Would a second team succeed in Toronto? Sure it would. First off, it would likely be possible to get tickets for the Toronto Whatevers, whereas getting Leafs tickets is an exercise in frustration. Plus, Toronto has a lot of people who have moved from other parts of Canada, and have hated the Leafs all their lives. Toronto loves its Leafs, make no mistake, but they're one of the most hated teams outside the GTA. A second team in Toronto would give them someone to root for.

If the owners of the new team are smart, they will keep ticket prices down, since MLS&E have not. Right now even if it's possible to get Leafs tickets, the prices are insanely high. Your average guy doesn't want to (or simply can't) spend the many hundreds of dollars required to take his family to a Leafs game. And if you want decent seats and a couple of drinks and hot dogs and to park your car within a mile of the ACC, you'd better be prepared to shell out half a grand for an evening of entertainment. (And the way the Leafs have been playing over the past few years, the "entertainment" part is questionable.) I've brought Ryan to a couple of Rock games and a Raptors game, and both my kids have been to Blue Jays games, but neither has ever seen a Leaf game live, since I simply can't justify the expense.

The whole idea seems very unlikely anyway, not only because the NHL keeps preventing Balsillie from joining the owner's club, but because they have consistently refused to investigate the possibility of moving one of their struggling franchises to Canada, whether to Hamilton or back to Winnipeg or Quebec City. In fact, the league seems reluctant to even acknowledge that they have any struggling franchises. From interviews I've heard with Gary Bettman, they won't even acknowledge that a Canadian dollar that goes from 65 cents US up to $1.05 and then back down to 79 cents has any effect on overall league revenue, despite the fact that the six Canadian teams are pulling well more than their weight. I've heard a number of times that the 6 Canadian franchises (20% of the teams in the league) bring in over 40% of the league's revenue. Bettman is determined to make the league a huge success in the US, despite the fact that every attempt to do so over the past however-many years has failed. It's big in the traditional hockey markets (Boston, Detroit, Chicago, New York), decent in some (San Jose, Minnesota, Dallas), but downright lousy in many others (Atlanta, Florida, Phoenix, Nashville). Kansas City or Oklahoma City may do OK, but they're not going to change the hockey landscape much or turn the US into a hockey-loving nation, and I think Las Vegas is a disaster waiting to happen.

Winnipeg and Quebec City would be great NHL markets. Each of them used to have an NHL team that moved, but that had nothing to do with support from the city or fans; in both cases it had to do with rising salaries and a weak Canadian dollar. With the right ownership, I think either of these two cities could flourish in the NHL. Of course, I live less than 12 km from Copps Coliseum, so I'd be perfectly happy with a team in Hamilton, but I don't see that happening anytime soon either. The NHL just won't allow it.

Monday, October 20, 2008

The Run

Yesterday was the "5K Your Way" run in Toronto for which I requested donations a little while ago. The run started at Queen's Park at 8:00am, so I stayed at my sister's place in downtown Toronto on Saturday night. We got to the start line around 7:30 and met the other members of our team. One of them had made custom (hot pink!) T-shirts for the rest of the team that said "Trudy and Jean 2008" on the front and "We acquire the strength we have overcome" on the back. The picture near the bottom of this post shows me wearing mine. BTW, Trudy is my sister and Jean is my mother, both of whom have been fought cancer within the past year. I will write more about that sometime later this week.

My parents were originally planning on walking as well, but my mom had an appointment at the hospital, so they were unable to. I was planning on walking with them while Trudy ran on ahead, so with the change of plans, I was going to walk alone. A couple of minutes before the race started, I told Trudy that I was going to start out running with her, and then when I was no longer able to run, I'd walk from there. I didn't have any kind of goal in mind at this point; I was hoping to make it more than just a couple of blocks. If I'd really thought about it, running half the race would have been quite optimistic, considering I don't run and didn't do any training for the race (since up until Friday afternoon, I figured I was walking it with my parents, and I can walk 5k without any problems).

The Race

The race started at the northwest corner of Queen's Park and looped around to University Ave. We ran southbound on University to Wellington Ave., then turned around and ran north on University back up to Queen's Park, and looped around it again to the finish line at the south end. We didn't start near the front of the pack, so the first few minutes was mostly walking since there were just too many people around to run. We passed underneath a large metal scaffold-like thing that I assumed was the sensor for the electronic timing chip that each of us was wearing. I assumed at this point that this was also the finish line, though that turned out to be wrong. Once the pack thinned out a bit, we started to run. There were a number of us running together for a while — me and Trudy and a bunch of her friends: Maria, Monica, Lindsay, and Jen (who has run full duathlons in the past, so this 5K was like a warm-up for her). We were between College and Gerrard when we saw the first guy coming back along the course approaching the finish line.

Trudy and I several years ago
Trudy and I several years ago

Before I knew it, I had run with the girls down to Dundas. I was feeling a little tired, but no big deal, so I figured I could keep going. Shortly thereafter we hit Queen St., and I realized that I only had a couple of blocks to go before we hit Wellington, where we would turn 180° and go back up University. I was excited about running half the race, so I made that my goal. I had kind of pulled away from Trudy and the other girls at this point without realizing it — it had ceased to be a social event at this point. I was simply trying to run as far as I possibly could.

Halfway there

After making the big turn, I got a bit of a second wind, and I started making smaller goals. I wanted to make it back up to King St. Once there, my next goal was Queen St., and then Dundas after that. It was when I passed Dundas that I realized that my "pipe dream" of running the whole thing just might really be possible. I mean, my legs were pretty sore, but Queen's Park was right there a few blocks in front of me, and the finish line was at the north end of that, so I was almost done! As I passed Gerrard, I saw Toronto General Hospital on my right, which is where Trudy had had her surgeries back in January and March. As corny as it sounds, that gave me a little more energy when I "remembered" (not that I ever really forgot) why I was doing this in the first place. Up until there, I was hoping that I would be able to run the entire race. Once I passed the hospital and College St. and realized that I just needed to get to the north end of Queen's Park and that was it, I decided that I was going to finish it. No more of this "hoping" crap, I'm going to do this.

I remember the very second that I first saw (what I thought was) the finish line; the song "I Kissed A Girl" was blasting from a loudspeaker, and I tried to concentrate on the song rather than my aching legs. It wasn't until I was maybe 50 feet from the finish that I realized that it wasn't the finish. There were no people standing around it, and people who were passing it ahead of me kept running without slowing down. Then I remembered that at the beginning of the race I had seen an actual finish line near the south end of Queen's Park, complete with a timer and everything. I'm kind of glad that my brain fooled me like that, since for most of the last quarter of the race, I was concentrating on the finish line at the north end, and didn't think once about running all the way around Queen's Park. By the time I realized my mistake, I was at the north end, and so all I had to do was loop around to the south end.

Beginning my recovery
Napping after the race

The Finish

About 50 feet from the finish line, there was a mat that went across the track, and as I passed over it, I heard my name being read out over a loudspeaker. A few seconds later I crossed the finish line (I didn't actually raise my arms in the air, though I felt like it), and immediately slowed down to a walk. This was almost a very bad idea, as my legs decided "Finally, he's finished the damn run and we can shut down now." Luckily my brain convinced them to hang on just a few minutes more and kept me from collapsing. Trudy and her friends finished a minute or two later and we celebrated our collective triumph.

Each runner was given a timing chip, which was a little RFID tag that you attached to your shoe. As you crossed the start and finish lines it recorded your start and finish times, thus giving you an accurate count of how long it took you, even if you were in the back of the pack and hit the start line long after the start of the race. It also allowed them to post the results of the race on the internet in real time. I ran 5 km in a time of 32 minutes 3.7 seconds. I finished 869th of 2071 participants, 406th of the 769 men in the race, and 48th of the 89 35-to-39-year-old men. The comparisons are rather meaningless, considering it wasn't a race where everybody was running; it could very well be that all 41 men in my age group that finished after me were walking, not running. I have no idea, and frankly, I don't care. I finished the race, and I considered it a race against myself. Next year, I plan on running it again, and the only time I'm interested in beating then is my time from this year.

More importantly, I raised $480 and Trudy's team raised almost $6,000 for cancer research at Princess Margaret Hospital. Our team raised more money for gynecological cancer than any other team. To my sponsors: a huge thank you to all of you, and I hope I can count your support again next year! (BTW it's still not too late to sponsor me!)

Hurts so good

After the race came the pain. We took a cab back to Trudy's place, got changed, and went over to the restaurant where the team was going to have brunch. My parents came too, as did Gail and the boys. My legs were a bit sore at this point, but I didn't really feel it until I had to take Nicky to the washroom, which was upstairs. Going up was bad enough, but coming back down was brutal. We spent the afternoon at Trudy's place and then came home, where I soaked my legs in a hot bath then took some more Tylenol and flaked on the couch for a while before going to bed. This morning I could barely walk, and I decided very quickly that there was no way I could sit in a car for an hour to get to work, so I worked from home. I made sure to get up every now and again and just walk around the house a little, and by dinner time I felt pretty good. It's now almost 8:00pm, and I haven't taken any Tylenol since early this morning. Stairs are still tough, but getting better.

I've never felt pain like this though. It doesn't actually feel any different from other times I've had pain from overexertion (for example after skiing or the baseball tournament), though maybe a little worse. I think the difference is that because I'm happy (OK, proud) that I ran the entire race, it's like I have really earned this pain, in a good way, and that makes it somehow different from the "I haven't been skiing in a year and now my legs hurt" pain. I plan on running again next year, though I will be training long and hard beforehand, and next time, the expectation will be that I run the entire thing, and beat my time from this year. I also expect to feel less pain after next year's race, but right now, I'm kind of enjoying it.

Sunday, October 12, 2008

Kicked in the Saku Koivu

I attended the first Leafs home game of the post-Kyle Wellwood era tonight. After the victory in Detroit on Thursday, Leafs fans were a little more (cautiously) optimistic about the Leafs team this year. Of course, there are the omnipresent Leafs fans who figure "This is the year" every year. They're the ones you see on TV all the time that give other more realistic Leafs fans a bad name and make people think that all Leafs fans are moronic sheep. Anyway, I hope tonight's game wasn't a more realistic indication of how the Leafs will do this year. Are they going to beat great teams like the Red Wings every time? Certainly not, but hopefully we won't see too many more 6-1 losses either.

The Good

Curtis Joseph played the third and didn't allow a single goal, much to the delight of the Joseph-loving Toronto fans. Strangely, one of the biggest ovations he got (with the crowd erupting into chants of "CuJo! CuJo! CuJo!") was after he was beaten by a shot that rang off of the goal post.

A total of one penalty for both teams in the first period.

Twenty of Canada's medal winners from the Beijing Olympics were there for the ceremonial faceoff. They got a well-deserved standing ovation, and then led the crowd of almost 20,000 in singing the national anthem a capella style. No matter what big musical star they could have gotten to sing the anthem, it couldn't have been any cooler than 20,000 people singing in unision. It was amazing.

Mike Van Ryn made a very nice defensive move in the first, stripping a Montreal player of the puck. It was a play that Bryan McCabe could never have made, but of course you knew that already — I did say it was a very nice defensive move.

The Bad

The Leafs were playing their second game of the season, and it showed. There were lots of missed passes and lots of shots that missed the net by a foot or more. It seemed that there were a lot of players just out of place all night. The Habs would take a shot and the rebound (whether off the goalie or the boards) would go straight to another Montreal player. The Leafs would take a shot and the rebound would either go straight to a Montreal defenseman or would coast all the way to the neutral zone because there were no Leafs players anywhere near it. The Habs played like it was their twentieth game of the season — less missed passes, less players out of place, less penalties... though it's possible that Montreal is simply a better team.

Penalty killing was awful. The Leafs had five penalties in the second period, leading to four Montreal power play goals. I suppose it improved in the third though, as the Leafs had four more penalties but no goals allowed.

In the second period, Carlo Colaiacovo (I spelled that right without even looking it up first! <proud>) tripped over a Montreal player who was knocked down by another Leaf and limped off the ice in obvious pain. I thought maybe Captain Glass was injured again and would be out for a few weeks, but he returned in the third period, so maybe this should have been listed under "The Good".

Toskala was shaky for the first two periods, though a few of the six goals he allowed weren't his fault at all.

Toronto only scored one goal, and it wasn't even that nice a goal. They had another one called back because Antropov directed it in with his arm. This was on Montreal's backup goaltender — they didn't want to waste Carey Price on Toronto.

The Ugly

Final score: Montreal 6 Toronto 1. 'Nuff said.

The Leafs could really have used the scoring touch from their former number one center — Kyle Wellwood. Or Darcy Tucker. Or that other guy, what's his name? You know, that Swedish guy? Anyway, the team is rebuilding and we all know that when a team is rebuilding, there are going to be some ugly games. But despite the final score, I don't think this was really one of them. A young rebuilding team was simply beaten by a more talented team. They put up a good fight and as Andy Frost mentioned in the post-game show on the radio, the Leafs did not mail it in in the third period, they came out and played hard. You gotta respect that.

Sunday, October 05, 2008

I'm Half the Man I Used To Be

Popular Mechanics has a list of 100 skills every man should know. I don't get why it's not a list of skills everyone should know, but whatever. There are certainly things that I think everyone should know that aren't on the list (change a tire, install a light fixture, barbecue a burger, and bake a pie using a recipe would all rank higher on my list than "fly a stunt kite"), but I guess that's a matter of opinion. I thought it might be fun to go through the list and see what I can do.

Bold means I can do it, italics means I can to some extent, and regular type means DYI FAIL.

Automotive

1. Handle a blowout
2. Drive in snow — Duh, I live in Canada
3. Check trouble codes
4. Replace fan belt — but I can change my air filter like nobody's business
5. Wax a car — I've done it, though I did a lousy job (you could still see circles on the hood of my dad's car months later)
6. Conquer an off-road obstacle
7. Use a stick welder
8. Hitch up a trailer
9. Jump start a car

Handling Emergencies

10. Perform the Heimlich
11. Reverse hypothermia
12. Perform hands-only CPR — I'm sure I knew how to do this at one point; I did get a St. John's Ambulance badge when I was a Scout
13. Escape a sinking car — The very thought of this terrifies me.

Home

14. Carve a turkey
15. Use a sewing machine — I have done it, but only once or twice and not for many years
16. Put out a fire
17. Home brew beer
18. Remove bloodstains from fabric
19. Move heavy stuff
20. Grow food
21. Read an electric meter
22. Shovel the right way — Again, Canadian. Don't hafta like it though.
23. Solder wire
24. Tape drywall
25. Split firewood
26. Replace a faucet washer
27. Mix concrete
28. Paint a straight line
29. Use a French knife — I don't remember knives in France being all that different from those here
30. Prune bushes and small trees
31. Iron a shirt
32. Fix a toilet tank flapper
33. Change a single-pole switch
34. Fell a tree
35. Replace a broken windowpane
36. Set up a ladder, safely
37. Fix a faucet cartridge
38. Sweat copper tubing
39. Change a diaper
40. Grill with charcoal
41. Sew a button on a shirt
42. Fold a flag

Medical Myths

43. Treat frostbite — use warm water, not hot
44. Treat a burn — run it under cold water, and if you have an aloe plant, break off a leaf and rub it on the burn
45. Help a seizure victim — best I could do would be to scream "help!" and call 911
46. Treat a snakebite
47. Remove a tick — I've read about it, but never done it

Military Know-How

48. Shine shoes
49. Make a drum-tight bed
50. Drop and give the perfect pushup

Outdoors

51. Run rapids in a canoe — I can steer a canoe pretty well, but I've never done it in rapids
52. Hang food in the wild
53. Skipper a boat
54. Shoot straight
55. Tackle steep drops on a mountain bike
56. Escape a rip current

Primitive Skills

57. Build a fire in the wilderness
58. Build a shelter
59. Find potable water

Surviving Extremes

60. Floods
61. Tornados
62. Cold
63. Heat
64. Lightning

Teach Your Kids

65. Cast a line
66. Lend a hand — Lending a hand is a skill? I thought it was just not being a dick.
67. Change a tire
68. Throw a spiral
69. Fly a stunt kite
70. Drive a stick shift
71. Parallel park
72. Tie a bowline
73. Tie a necktie
74. Whittle
75. Ride a bike

Technology

76. Install a graphics card
77. Take the perfect portrait
78. Calibrate HDTV settings
79. Shoot a home movie
80. Ditch your hard drive — Given the events of the last couple of weeks, don't even go there.

Master Key Workshop Tools

81. Drill driver
82. Grease gun
83. Coolant hydrometer
84. Socket wrench
85. Test light
86. Brick trowel
87. Framing hammer
88. Wood chisel
89. Spade bit
90. Circular saw
91. Sledge hammer
92. Hacksaw
93. Torque wrench
94. Air wrench
95. Infrared thermometer
96. Sand blaster
97. Crosscut saw
98. Hand plane
99. Multimeter
100. Feeler gauges

Results: I can do 54 out of the 100 things on the list, plus a few maybes. I'm just over ½ of a real man. Sorry, gotta go; I've got a quiche in the oven.

Friday, October 03, 2008

Review: StackOverflow

StackOverflow is a new programming Q&A web site created by Jeff Attwood and Joel Spolsky. (Well, I think Joel just helped fund and promote it, he didn't do any of the actual creation — that was Jeff and his team). It is still in beta, and things are still in flux, but the changes are calming down somewhat. It's not a discussion board (though some would like to use it that way), it's specifically designed for programming questions and answers. The questions can be as detailed as you need them to be (here's one on writing XML files using a particular tool in a particular encoding scheme using C#), but there are lots of more generic ones too. One seemingly popular question is "what are some of your favourite "hidden" features of <language>" — there are such questions on C, C++, C#, Java, python, perl, and others. I've found a couple of helpful tips in those ones.

The site was meant to be an amalgam of Yahoo! Answers (though only for programming questions), digg, and a wiki. You can ask and answer questions (and make comments on both), and each question can have one "accepted" answer. For each question and answer, you can "upvote" if you like it (i.e. it's correct, partially correct, or at least helpful) or "downvote" if you don't (if it's wrong or not helpful at all). You can also mark a question or answer as "offensive" if it's hate speech or spam or something like that. If an question or answer gets enough offensive votes, it vanishes entirely. With the speed at which things get voted on, this can happen very quickly, so if someone posts some spam "question", it will likely vanish within a couple of minutes. You can also tag each question with up to five categories, similar to gmail labels, so if you want to search for all questions on C#, you can just click the C# tag. (There's even a sqlanywhere tag, though there's only been one SQL Anywhere question so far.) The idea of the site is that if you have a programming question, even if you don't know about SO, google searches will hit the SO site and you'll find your answer quickly and easily.

I think the idea of this site originated in part with experts-exchange.com (which used to be expertsexchange.com but they added the dash because it looked like ExpertSexChange.com (snicker)). A number of times in the past, I have done Google searches looking for information, and came across a question on that site that was similar to the information I was looking for. But when I went to the site to look at the conversation, it said that I had to become a member (i.e. pay) to see the answers. I immediately thought "bite me" and went to the next Google entry. I'm sure Jeff did the same thing, and then decided that having such a site for programmers that was free would be a good thing.

On a related note, there is advertising on the SO site, but it's only one unobtrusive ad down the right side of each page. Maybe I'm naïve when it comes to internet advertising (actually, there's no maybe about it), but I can't imagine that even with several thousand users, that one ad is bringing in enough money to pay Jeff a living wage (he is working on this full-time) plus pay the other three or four part-time employees.

SO uses the concept of "reputation" to (a) give users some "credibility" (though that's artificial; I'll get to that in a bit) and (b) to allow users to gain limited "moderator" abilities. The more upvotes your questions and answers get, the more you gain reputation, and obviously you lose rep points for downvotes. There are also badges for certain milestones (eg. you get a "good answer" badge for each of your answers with a net upvote of 25), but they're essentially just for fun. Once you have enough rep points, you can start doing extra things; you can't leave comments until you have 50 points, you can retag other people's questions when you get to 500, and you can edit other people's posts and delete comments when you get to 2000.

Anyway, enough about what the site is, and onto my impressions of it.

Moderation in moderation

SO was a private beta for several weeks before it went public. While it was private, everything was wonderful. Once it went public, I didn't notice a significant drop in the quality of questions or answers, but there was an (expected) increase in the amount of junk added — people asking silly or subjective questions ("Should the open brace of an if be on the same line as the if or on the next line?"). One question contained the subject line "Why do birds..." and the rest of the question was "...suddenly appear, every time you are near?". The user who posed the question was "The Carpenters". The question was down-voted so fast that within two minutes of the question being posted, I couldn't find it anymore. I was one of those who down-voted it, mainly because it forced that horrible song into in my head, and it's still there. Now that I've mentioned it, it's probably in your head too — sorry 'bout that.

However, the moderation is having its problems too. I've seen lots of questions closed by one user and then re-opened by a different one. I saw one question that was an exact duplicate of another one posted a couple of minutes earlier by the same guy (it looked like he posted a question and didn't think it worked, so he did it again). One of them received five or six answers and was then closed as a duplicate, while the other one (that remained open) had no answers. Part of this problem is the speed at which answers show up, which is the next topic.

For the most part, the moderation is done automatically by the community as a whole — if a question or answer is stupid, meaningless, or an obvious troll, it's downvoted or marked as offensive and disappears. There is no provision for voting on users, but at least one has been deleted because of useless postings (this was "Consultant Barbie" who answered a bunch of questions with "<topic of question> is hard. Let's go shopping!"). This is odd because in one of the SO podcasts, Jeff mentioned that he did not want to delete users who did this, because it would basically make them mad and they'd just keep creating new accounts or finding other ways to be a pest. If you just ignore them and downvote their inane answers, they will either get bored and stop, or they wouldn't, but you would rarely see their downvoted answers anyway.

I'm not sure I'm sold on the idea of closing threads, other than for questions that are duplicates of previous questions. It won't be long until there are hundreds of users with enough rep to close questions, and then there will be edit wars where one user will continuously close a thread and another will continuously re-open it. At that point a real moderator will need to step in, and then the whole self-moderation thing goes out the window.

The Fastest Gun in the West

One problem that's come up a number of times was summarized in a question and given the name The Fastest Gun in the West problem. You see a question that you know the answer to, and you take the time to write a well thought-out and researched answer. Once you click "Post your answer", you find that eight other people have answered in the meantime, and some of those answers have even been upvoted. Those answers are frequently quick and dirty ("I dunno, maybe try this"), and may even be wrong. In the long run, you'd think that your longer and better answer would get more upvotes, but it doesn't always seem to work that way. In the end, you see a question that you know the answer to, and immediately starting writing the fastest, shortest answer possible. You post pseudocode rather than actually make sure your code compiles. You say "there may be issues on Mac" rather than taking two minutes to look up what the issues are and post them. All in all, the quality of answers tends to go down.

In the long run, I think this will be less of an issue, as people's reputation gets high enough that they don't worry so much about the numbers. If you write the best answer to a question but people vote up an earlier answer more than yours, oh well. You can always leave a comment explaining why your answer is better or more complete or whatever.

Reputation is everything — or not

Your abilities on SO are based solely on your reputation score. The more people upvote your questions or answers, the more reputation you get. You also gain rep by having lots of people respond to (or even view) your questions. The idea is that if you ask smart questions and give helpful answers, you'll get a high rep score, and people will be able to trust your answers. This is meaningless for (at least) three reasons:

  1. A very knowledgable user who just joined SO last week will have a much lower rep score that someone who joined a few months ago (and this will get worse the longer the site is around).
  2. There are rep whores out there who post questions and answers willy-nilly in the hopes of gaining rep points. One upvote is worth five downvotes, so as long as you don't post utter garbage, you're bound to gain more than you lose, even if your answers aren't always that helpful. I've seen answers that were wrong but voted up anyway that began "I don't know but maybe..." Why would you upvote that kind of answer?
  3. Some questions are not programming-related, but still count towards your reputation. I am a prime example of this. As of today (Sept. 30, 2008), I have a reputation score of 1939. I have asked three questions and given 65 answers. My top answer to an actual programming question is 18, but I have five answers that are much higher than that:
    • two answers to one question ("What is your favourite programmer cartoon?") that combine for 102 upvotes
    • two more for another question ("Great programming quotes") that combine for 107, and
    • one answer at an unbelievable 123 (and still growing daily). That one is an answer to the question "Confessions of your worst WTF Moment" where I tell the story of the time I accidentally got my colleague's fingerprints inserted into the FBI database. (I blogged about that a couple of years ago.)
    The majority of my reputation (1090 points out of 1939) has come from those five non-programming questions. So most of my reputation on this question-and-answer site comes from two quotes I didn't make, two comics I didn't draw, and a story (though admittedly a pretty funny one). Less than half actually comes from questions or answers. I'm sure that I'm not the only one in this situation, though I suppose in five years, assuming I actually ask some more good questions and give some more helpful answers, it will all even out.

What's a programming question?

One of the biggest problems right now is questions that involve programmers but don't actually involve programming. There have been questions on interview tips (both from the interviewer and interviewee points of view), writing a resume, salaries, certification, and that kind of thing. There are lots of very subjective questions that don't have real answers (or at least, not a single answer), like "Should programmers have laptops or desktops?" or "What's the most influential book every programmer should read?" There have also been some other questions that might be tangentially related to programming, like questions on hardware setups or networking problems. Those ones are sometimes "justified" by things like "As a programmer, I need to have my network properly configured or I can't do my job". This may be true, but it's true for many other non-programmer jobs too. You shouldn't be able to just prefix any question with "As a programmer, ..." and automatically have it apply. As a programmer, I need to eat healthy foods, but asking about whether asparagus is better for you than broccoli isn't a valid question for SO.

When such questions appear, some folks just answer them, others downvote and complain, and sometimes a moderator will just close the question as not being a programming question. If that's the case, why is the "programming cartoons" thread still open? The guidelines (in the faq) aren't clear. Well, they try to be clear, stating "Avoid asking questions that are subjective, argumentative, or require extended discussion" and "try to refrain from asking questions about Stack Overflow itself unless you absolutely, positively have to". But searching the "subjective" tag gives you 583 questions, the vast majority of which are not closed. One question asks "How do you vent stress as a programmer?" Is that a programming question? No, and it's subjective and could require (or incite) extended discussion. So it should be avoided, according to the faq, right? But this question has received 34 (net) upvotes and 133 answers and has not been closed. There are no negative comments or answers saying that it's not a programming question. So are these kind of questions allowed, or not?

What the site really needs is forums.stackoverflow.com or something like that — a message board where you can go and discuss things. I suppose you could use the comments for that, but it would be nice to have a place to discuss things that's separate from the Q&A part of the site.

Community-owned posts

One idea that I didn't get at first was community-owned posts. When you ask a question, you can mark it as "Community-owned", and then you get no reputation points for that question. Every answer is also marked as community-owned, and so people who answer get no rep either. I get that — if you're asking a subjective question (i.e. one that might have many answers), you might mark it as community-owned so that people know you're not just trying to bump your rep score by asking such a question. In that case, it's your choice as to whether to mark the question as community-owned. The thing that I didn't get about it was that there are a few rules that will automatically turn a regular question into a community-owned question, which means that the person who asked will get no further reputation score from that question. This happens if:

  1. the asker edits the question more than five times
  2. if more than four different people edit the question, or
  3. if the question receives more than 30 answers.

I didn't like the idea that other people had control over whether I received reputation score from my own question. However, I heard Jeff talk on the podcast about the reasons behind these decisions, and now I think it's kind of clever. Here is the reasoning behind each of these rules:

  1. This is to prevent someone from continually editing their own question just so that it stays on the home page.
  2. Any question that has been edited by lots of different people was more than likely not very clear to begin with, and so rewarding the asker with rep points after others have cleaned up the question doesn't make sense.
  3. A question that has more than 30 answers is more than likely a subjective one or a poll or something similar, not a specific programming question that the site was designed for. In that case, you should not be rewarded for asking such a question.

Conclusion

Overall I'm pretty psyched about StackOverflow. I think it could be a really useful resource for every programmer. It's also a lot of fun (which is why some have begun calling it "CrackOverflow"), though it's still very new, so we'll see if the novelty wears off after a while. There's are still some kinks to work out, but once people figure out (and get comfortable with) the community moderation thing, and realize that the reputation scores don't tell you how much creedence to give an answer, I can see this site becoming one of the most popular programming sites anywhere.

Wednesday, October 01, 2008

A Case of the Duh's

And I call myself a computer guy. First I installed a hard drive that my BIOS can't handle, eventually causing the drive to fail. (The worst thing about that is that I tried to run Spinrite on the drive a number of months ago, long before it failed, and Spinrite told me that the drive size was different than what the BIOS thought it was. I remember thinking at that time that if Windows could see the correct size, this didn't matter. Duh #1.)

Then I bought a new card for the computer so that it would be able to recognize the larger drive, and installing it killed the machine. (Duh #2.) The card is also not returnable, so if I can't use it, it's $30 down the toilet. So Gail and I decided to buy a new computer so we could install the disk in that one. We found a brand new PC at Tiger Direct — Intel Celeron Dual Core 1.6 GHz, 2 GB RAM, 320 GB disk, DVDRW, keyboard, mouse, various memory card readers, on sale for $299. So we bought it last weekend, and I've spent the last few days setting it up — installing the wireless card from the other machine, reinstalling applications and drivers, setting up email and user accounts, and so on.

I must mention CopyTrans once again — when I paved and rebuilt my system back in the spring, I used CopyTrans to recreate my iTunes library from my iPod and it worked flawlessly. This past weekend, I used it again to do the same thing and once again, it worked flawlessly. This time, with the faster USB 2.0 ports on the new machine, the whole thing took maybe two hours. More snaps for CopyTrans. <snap> <snap> <snap>

The new machine came preloaded with Windows Vista Home Premium. I've used Vista a few times at work, but I never really played with anything other than what I needed to do my job, so there's lots that I had never seen.. It looks nice, has performed very well so far, and has some very nice features, like parental controls for user accounts and the ability to resize a disk partition without formatting the disk, or even shutting down the computer. I'll write more about Vista in a few weeks after I've been able to play with it a little more.

Anyway, last night I decided to install the old system disk into the new machine and copy the data off of that. There isn't that much data on it, but we did store some stuff on it after the bigger disk died. I took the cover off the machine and looked for the empty disk bay. That's when I realized Duh #3.

The new computer does not support the old EIDE disks. There isn't even a power adapter that fits the disk. So now we have these two old disks that cannot be installed in the new computer and I have to buy an external disk enclosure and access the disks via USB. I already bought an external enclosure when the disk died, hoping that I could access it that way, but I couldn't. When we decided to buy a new computer, I figured I wouldn't need the enclosure so (Duh #4) I returned it. Now I have to go and buy it again. Sigh.

Hopefully we're done with the Duh's... for now at least.

IvanAnywhere on Space TV

Space TV interviewed my co-workers Glenn Paulley, Ian McHardy, and Ivan Bowman about IvanAnywhere a few weeks ago, and the results aired last Friday night on their show "The Circuit". The piece is online: go here and click the link at the top that says "Ivan Anywhere, the robot telecommuter". There is also a direct link to the video, but note that the link resizes your browser window. The bit about Ivan is about four minutes long, and starts a minute or so into the video.

I PVR'ed the show, but I'll be damned if I can figure out how to copy it to my computer. I thought I could record it straight to my digital video camera, but the camera doesn't have inputs, so I'd have to play the video and then actually record the TV screen with the camera. Video and audio quality would both suck, so I didn't bother. Of course, even if I could get it in digital format, I couldn't post it to YouTube or anything, since it's copyrighted.