# Wednesday, May 31, 2006

Once upon a time, there was a highway called Highway 35. It ran north from a major east-west highway and got less and less important until it kind of trickled to a stop in the semi-wilderness near Algonquin Park. The southernmost sections of this highway were twinned with Highway 115, with a concrete median, exit and entrance ramps, and a speed limit of 90 km/hr. From what's known as the 35/115 split, it ran north, one lane each way, with gravel roads crossing it and driveways opening on to it, with only a handful of traffic lights to control traffic flow every twenty or thirty miles.

Update: here's a map of the area.

Now there was a bit of a problem with this highway. People get killed on it. The section between the 115 split and Lindsay is hilly, and it gets a lot more traffic than it used to. There are trucks delivering Important Stuff, people dragging trailers and boats up to cottage country, tractors going from one place to another, and Toronto folks in a hurry. From time to time, impatient people pass when they shouldn't, like going up hill, and there's a head on collision and people die. It's not the most dangerous stretch of road in Ontario, but it is bad and there started to be noises made that Something Should Be Done.

Well just about any idiot can see that the head on collisions are caused by dangerous passing, and the survivors can tell you that the passing happened because one vehicle was really slow and another really impatient. So an obvious solution would be passing lanes on the steeper hills. So in 1999 a study was commissioned to decide where to put the passing lanes. They discovered that in one 22 km stretch of highway, about 13 km -- over half -- of the road would be three laned, and parts of that four laned, with passing lanes coming up both sides of a hill and needing four lanes at the top. Now passing lanes do reduce head on collisions from unsafe passing, but they open up the possibilities for accidents wherever people are changing lanes, and without a median these accidents can involve traffic coming in the other direction, so you can't assume that building all these passing lanes would actually reduce the accident rate.

They decided in this 1999 study:

Implementing spot improvements on an as-needed basis represents the low cost solution but is cost-effective only if it conforms to a future plan. In the absence of a plan for the ultimate design of Highway 35, the planning and design process for extensive [passing lanes and truck climbing lanes] becomes difficult. Road improvements proposed as part of the ultimate plan may even eliminate the need for [passing lanes and truck climbing lanes].

So what does that mean? Time for another study, this one on four-laning the whole highway or at least from the split to Lindsay. This one would also deal with the possibility that highway 407 would be extended out to the 35/115 split. This study started in 2000.

Here's the first problem when you four-lane a highway that has cross-roads and gravel roads meeting it. Imagine someone coming out of a cross road or a driveway and wanting to turn left. They are going to need to cross two lanes of traffic, and they'll be turning into the fast lane of the highway. That's not good. And then imagine someone who is on the highway and wants to turn left into their own driveway, but has to stop to let oncoming traffic go by. They are going to be stopped in the fast lane. Over time these two kinds of left turners are going to cause more accidents than the inappropriate passing you were trying to solve in the first place. So you need to implement some sort of controlled access to the highway, as they did on the 115. Typically you let people turn right onto and off of the highway, and you have some overpasses and underpasses so you can go past your target then turn around and come back to make a right turn. You also have a median of some kind so that people cannot turn left or make U turns.

Well, boy oh boy did that need studying. Should the median be a wide grassy strip between the north and southbound sections? That consumes a ton of land and would wipe out dozens of houses currently located along the highway. While that might seem to solve the pesky problem of driveways, it's not really a popular approach. Perhaps it should be a concrete wall? And those exits, should there be one at every corner with a sideroad? If it's only every other corner or so, how do you decide who gets them? And you know the corners tend to have houses on them. Maybe the exits should be between the roads? Study, study, study. Measure the traffic on the road now on a variety of different days over the years. Read the official plans of municipalities in the area to see where growth is planned, and guess what traffic will be some day. Count fatal accidents, which continue to occur.

Meanwhile the rural areas the highway goes through were amalgamated into the City of Kawartha Lakes. Meanwhile the Oak Ridges Moraine was defined and protected in law, which dramatically restricted some construction options. Meanwhile plans for the 407 were batted around that involved bringing it all the way out to the 35/115 split. (Update: the folks doing the 407 study have their web site up to date now.) So they kept having to adjust their study to cope with the world changing around them.

At some point somebody noticed that a big piece of the traffic on 35 was folks who were really on 7A. 7A coming East from Toronto meets 35, goes south a very short distance along 35, and then carries on east again. All those people have to turn left across 35 and that's part of the problem. So the highway study scope expands again, to include rerouting 7A to eliminate the jog. Half the population wants them to reroute it away from the school and arena so as not to worry about traffic for the kids, and half wants to be sure they don't cut the school off so we have to drive further to reach it or the kids have to get on the bus sooner for a longer bus ride. More studying. Roughly 20 different ways you could solve that particular problem.

Along the way they produce a TON of arial photographs all marked up with pink and yellow and white and green. Each suggested approach gets more and more complicated. They hold public information centres where people come and tell them "you can't do that, it will ruin this pond" or "you can't close that, we all use that road to get to the arena" and so they make even more complicated plans.

And now what has it become? You won't believe it unless you see it (and the website isn't up to date, so you could have only seen it by going to the public meeting.) It's going to cost a fortune, several houses will actually have to be bulldozed, and many many people will be losing stripes of their land, not only to the wider highway but to the "access roads" that will be built parallel to the highway so that we locals can drive from a road that doesn't get an exit north or south to some road that does get an exit so we can get on the highway. (These access roads don't particularly connect to each other though, which is probably deliberate to reduce traffic and to let them run the roads wherever happens to be convenient.) Countless roads closed, neighbours cut off from each other, even farmers cut off from their own land and needing a three or four mile detour to go to the other side of the highway.There were some very sad faces at the public information centre all right.

My opinion? This is a good time for someone to step back from the huge pile of coloured pictures and say "what is the problem we were trying to solve again?" It has grown out of control and needs to be made simple once again. My only consolation is that it will probably be 20 years till they build it and I hope to be even further from the big city by the time all that rolls around. Yet each step and decision along the way was logical and grew from the current circumstances. This is how projects spiral into huge and unmanageable monsters that end up not helping anyone. It's as true for software as for anything else.


Wednesday, May 31, 2006 7:58:42 AM (Eastern Daylight Time, UTC-04:00)  #    
# Tuesday, May 30, 2006

Microsoft has a team of people who concern themselves with non-professional programmers. This includes students, hobbyists, and anyone who isn't primarily paid to write code, but finds themselves writing it anyway, typically at home and on their own nickel. (Apparently they outnumber professional developers four to one.) John Montgomery, of that team, says that non-professional programmers use HTML and Javascript the most, followed by (believe it or not) C++. While I suppose the presence of CS students who are taking C++ courses must skew the numbers, I still find it surprising. There are a lot of languages that are easier to pick up and noodle with in your free time than C++. I think it shows that people will move towards a tool that does what they need.


Tuesday, May 30, 2006 10:50:18 AM (Eastern Daylight Time, UTC-04:00)  #    
# Monday, May 29, 2006

It's time again for an update to the TIOBE Programming Community Index. I blogged about this a while back, and it's time to notice it again. This index measures only how often a programming language is mentioned by name - in people's resumes, in job ads, in tutorials, even in explanations of other languages or comparisons between languages. It is an interesting measure of which languages people consider relevant in conversation or in describing themselves.

C++ has moved up from 4th overall to 3rd (still behind Java and C, pulling ahead of Perl) but if you look back over the last five years, it's clear less people are bringing C++ into their conversations than they once did:

What I find most confusing is the tiny numbers for C#. Oh sure, I know this is just a graph of the top ten, and things like Ruby aren't even here, but to be neck and neck with Delphi over all this time? That's kind of strange. There are obviously large swaths of the internet where I don't normally go, where people talk about Delphi a lot.

I wonder what's the uptick of Java talk over the last year? Could it be all the "Java is over" articles? :-) By the way the steep drop for C++ and Java in April 2004 is an artifact as a result of a Google cleanup-clearout, and since then the index includes more search engines.


Monday, May 29, 2006 10:33:51 AM (Eastern Daylight Time, UTC-04:00)  #    
# Sunday, May 28, 2006

A little bird shared with me the snack highlights for Tech Ed 2006:

1,250,000 pieces of "Mikes & Ikes" will be consumed over the course of a week at Tech Ed 2006
18,750 pounds of salad will be prepared and offered at meals
83,700 ice cream novelty/ fruit and yogurt bars have been ordered for this function
60,000 eggs will be eaten by attendees at breakfast (this is equal to 4,800 dozen cartons of eggs)
It will take 4 semis to transport the 150,000 bottles of water consumed on this show
The total amount of fruit ordered will fill 3/4 of full size tractor-trailer
1.6 million ounces of coffee will be poured and consumed (conservative estimate)
More than 50,000 pounds of carbohydrates will be consumed at Tech*Ed (Atkins who?)
1,500 table cloths will be used and re-set on a daily basis:  (7,500 for the week)
A minimum of 2,000 antacid tablets are likely to be consumed at this event

Now it just so happens that after my very first Tech Ed (Dallas, 1999, as an attendee on a press pass) I got some stats on snacks that year:

183,000 Bottles of Logo Water
14,000 Gallons of Coffee
8, 000 Gallon of Iced Tea
38,000 pints of Milk
37,500 link sausages = 337,500 inches 28,125 feet, 9,375 yards or 5.32 miles.
27,000 Granola Bars
69, 000 Lemon wedges or 11,500 lemons... 275 Trees worth.
200,000 creamers for coffee
333,000 packets of Sugar
27,000 apples
36,000 bananas
3500 pounds of scrambled eggs
7700 Omelets
110,000 Soft Drinks

Anyone care to compare and contrast?


Sunday, May 28, 2006 7:57:27 AM (Eastern Daylight Time, UTC-04:00)  #    
# Saturday, May 27, 2006

I'm surely not the only one who's noticed that most of the blogs by members of the Visual C++ team have one thing in common: they're not updated terribly often. Typically there's one team member (maybe someone with insomnia?) updating one while the others languish. So now it seems they've decided to make a group go of it with the Visual C++ Team Blog. It appeared yesterday and has had two entries so far. I hope it gets lots of updates!


Saturday, May 27, 2006 6:14:19 PM (Eastern Daylight Time, UTC-04:00)  #    
# Friday, May 26, 2006

Our free "what is SharePoint" seminar went off without a hitch on a grey cool Peterborough afternoon. The recurring theme from attendees, as well as some contacts I invited who couldn't make it, was "is it really free? How can that be?" Windows SharePoint Services really is free with Windows Server 2003. Here's a quote from the Microsoft site:

Now shipping as part of Windows Server 2003 R2 or available for download at no additional charge, Microsoft Windows SharePoint Services technology in Windows Server 2003 is an integrated portfolio of collaboration and communication services designed to connect people, information, processes, and systems both within and beyond the organizational firewall.

It really is free. Tell your friends!

We got a few inquiries from folks who lived a little too far away to attend and they asked about a webcast or another location. Please leave a comment if you or someone you know would like to attend one of these, either real or virtual. We just spent an hour and a half putting WSS through its paces and showing what it does out of the box.


Friday, May 26, 2006 4:37:49 PM (Eastern Daylight Time, UTC-04:00)  #    
# Thursday, May 25, 2006

I came across a page full of pictures that play with perspective and scale:

The artist's page gives you thumbnails that don't always show the cool part of the picture. This fan page has a whole pile of them all one after another to get you started seeing how they work. There are more at the artist's page though, plus instructions on how you can buy prints, so even if you start at the fan page, you should end up at the artist's page. According to Wikipedia and another article I found recently, he's a Canadian who illustrates children's books and wins awards for it. That explains all the snow, moonlight, and autumn leaves, I guess :-).


Thursday, May 25, 2006 11:37:17 AM (Eastern Daylight Time, UTC-04:00)  #    
# Wednesday, May 24, 2006

While helping a client with the mechanics of localization recently, I came across a very thoughtful blog entry. It goes beyond what properties you set on a form or what method you call to look up a resource, and instead talks about some of the project management aspects of localization. If you have any chance that you'll need alternate language support, you should read this post. He talks to timing (too soon and translators will translate buttons that later go away or have a name change, but don't wait too long because it's hard to estimate how long translating and testing will take), QA, reuse, and context. Excellent things to consider before you start building those satellite assemblies.


Wednesday, May 24, 2006 10:54:06 AM (Eastern Daylight Time, UTC-04:00)  #