# Saturday, June 03, 2006

Steve Teixeira has linked to the webcasts from a C++ day held in Paris in May. These were done in English, but if you want to download the WMVs you're going to need a tiny bit of French, or to have gone through the downloading-a-webcast-from-MSDN process often enough that you don't really need the prompts. I qualify on both counts, and since the French for video is video, it's not too terribly difficult. Well actually Herb's talk starts with a French introduction, but having heard myself introduced in French a time or two I can tell you it's OK if you can't follow that bit. (Most of the time you can't tell that Herb and I did our undergrad at the same place, but we did, and occasional sesquilingualism is a clue. The difference is that while Herb remains a little nervous about engineers, I became one.)


These are good talks with demos and they cover a lot of ground for C++ programming today and in the future. Go get them.


Saturday, June 03, 2006 6:53:59 AM (Eastern Daylight Time, UTC-04:00)  #    
# Friday, June 02, 2006

What at blast I had yesterday speaking at realDEVELOPMENT 06! We had over a thousand people to hear about Atlas, Ajax, Infocard, and security for web developers. Already I am getting emails from attendees asking for the powerpoint decks. Here's the deal: the session notes are online already, and the powerpoints will be there when everyone is back home from the tour and has time to upload them -- some time after the middle of June.

Thankyou all for coming and if you have questions you didn't get to ask, you can leave a comment on this post or drop me an email.


Friday, June 02, 2006 1:00:36 PM (Eastern Daylight Time, UTC-04:00)  #    
# Thursday, June 01, 2006

This one is with Louis Lafreniere about the C++ backend compiler. What can I tell you, go there and watch it!

Thursday, June 01, 2006 12:06:13 PM (Eastern Daylight Time, UTC-04:00)  #    
# 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)  #