Critical Section

Archive: July 27, 2016


Archive: July 27, 2015

Le Tour 2015

Monday,  07/27/15  06:35 PM

Okay cycling fans, here's what you've been waiting for ... my galactic 2015 Tour de France post.

This year I restrained myself from posting about the Tour every day, but of course, I watched each stage with great interest.  And it was an exceptionally interesting Tour, with a great route featuring lots of interesting stages.  For the first time in many years all of the best stage racers in the world were present: 2012 champion Alberto Contador, 2013 champion Chris Froome, defending champion Vincenzo Nibali, and 2013 runner up Nairo Quintana.  And there were lots of promising dark horses too, like American Tejay Van Garderen and Alejandro Valverde, as well as a slew of great French hopes like last year's runner up JC Peraud and Thibaut Pinot.

I've made one giant review post here, briefly recapping each of the tour stages.  To enhance my enjoyment, I created Google Earth flybys of each stage - I've posted them here - and downloaded and edited each of the stages as broadcast on NBCsn - I've posted links to the torrents. 

It ended up being the best Tour ever - certainly since I became a cycling fan - with great racing by amazing riders on a beautiful course.  It seemed each day had an interesting storyline, whether it was the sprinters - Andrew Greipel vs Mark Cavendish vs Peter Sagan - or the potential breakaway winners - or the green jersey competition - or the huge GC battle.  And mercifully there were no doping controversies ... yay.  There was talk of doping when there were great performances, but no actual doping.  Maybe even the talk will end soon...  Onward!

Stage 1 - Utrecht to Utrecht, The Netherlands (13.8km) - ITT - flat
Stage 2 - Utrecht to Zeeland, The Netherlands (166km) - flat and windy
Stage 3 - Antwerp to Huy, Belgium (157km) - flat, uphill finish
Stage 4 - Seraing to Cambrai, France (221.5km) - flat, with cobblestones
Stage 5 - Arras to Amiens Métropole (189.5km) - flat
Stage 6 - Abbeville to Le Havre (191.5km) - bumpy, uphill finish
Stage 7 - Livarot to Fougeres (190.5KM) - flat
Stage 8 - Rennes to Mûr de Bretagne (181.5km) - flat, uphill finish
Stage 9 - Vannes to Plumelec (28km) - TTT - lumpy
Rest Day 1 - Pau

Stage 10 - Tarbes to La Pierre-Saint-Martin (167km) - mountain
Stage 11 - Pau to Cauteretes-Vallée de Saint-Savin (188km) - mountain
Stage 12 - Lannemezan to Plateau de Beille (195km) - mountain
Stage 13 - Muret to Rodez (198km) - transition
Stage 14 - Rodez to Mende (178.5km) - transition, uphill finish
Stage 15 - Mende to Valence (183km) - transition
Stage 16 - Bourg-de-Péage to Gap (201km) - transition
Rest Day 2 - Gap

Stage 17 - Digne-les-Bains to Pra-Loup (161km) - mountain
Stage 18 - Gap to Saint-Jean-de-Maurienne (186.5km) - mountain
Stage 19 - Saint-Jean-De-Maurienne to La Toussuire-Les Sybelles (138km) - mountain
Stage 20 - Modane Valfréjus to Alpe D’Huez (110.5km) - mountain
Stage 21 - Sèvres-Grand Paris Seine Ouest to Paris Champs-Élysées (109.5km) - flat
Final thoughts - Paris


(Velonews preview)


Stage 1 - Sat July 4, 2015
Utrecht to Utrecht, The Netherlands (13.8km)
 - ITT

So it begins ... stage 1, the Grand Depart.  This year it took place in Utrecht, in the Netherlands, and it was a short individual time trial, just a bit longer than a prologue.  The huge Dutch crowds watched Australian Rohan Dennis powered to an impressive victory, recording the fastest average time ever in a Tour de France time trial.  Favorites Tony Martin and Fabian Cancellara were close behind to get 2nd and 3rd.  The local favorite Tom Dumoulin finished a strong fourth, but the crowd and indeed the country was rooting for him to win.

Among the major GC favorites, defending champion Vincenzo Nibali (Astana) was the big winner, 43 seconds down on Dennis but seven seconds ahead of Chris Froome (Sky), 15 seconds ahead of Alberto Contador (Tinkoff-Saxo), and 18 seconds ahead of Nairo Quintana (Movistar).  American Tejay van Garderen (BMC Racing) put in a solid performance, finishing one second faster than Nibali.


(Google Earth flyover movie + kmz)

(NBCsn broadcast - torrent)

(Velonews preview)

Stage 2 - Sun July 5, 2015
Utrecht to Zeeland, The Netherlands (166km)

Stage 2 presented an interesting early challenge to the peloton; pan-flat, but with the prospect of wind and weather causing echelons along the Dutch seacoast, with a finish along Zeeland's Delta Project, a huge series of dams and artificial islands which hold the sea back.

The weather came in, but the wind did not, and in the end the result was a field sprint, with Andre Greipel triumphing.  Fabian Cancellara finished third to take the yellow jersey.  Mark Cavendish finished a disappointing fourth, especially so since his teammate Tony Martin stood to take yellow if Cancellera didn't win a time bonus.

Meanwhile, back in the field, the big news was a split in the field following a crash, which left Movistar and Astana nearly a minute and a half behind the peloton, costing favorites Vincenzo Nibali, Nairo Quintana, and Alejandro Valverde critical time relative to Alberto Contador, Chris Froome, and Tejay Van Garderen.  The old adage that you can't win the Tour in the first week, but you can lose it, was definitely proved once again.  Also caught out was Rohan Dennis, wearing yellow; his BMC team opted to press ahead for Van Garderen, abandoning Dennis and allowing Cancellara to take yellow.  This was the sixth time in his long and storied career that Cancellara found himself wearing the leaders jersey early in the Tour.

(Google Earth flyover movie + kmz)

(NBCsn broadcast - torrent)

(Velonews preview)

Stage 3 - Mon July 6, 2015
Antwerp to Huy, Belgium (157km)

Stage 3 was a flat stage in Belgium, but as all good Belgian stages with a killer little kick up at the end, the Mur de Hoy famous for being the finish of the Liege-Baston-Liege race.

As it turned out, the climb at the end was the least of the peloton's problems; a huge crash midway through the race took out several riders, injured yellow-jersey wearer Fabian Cancellara (who would drop out of the race after managing to finish), and forced an unprecedented neutralization of the entire race for 20 minutes at the bottom of the penultimate hill.

Once the race resumed the attacks were thick and furious.  Joachim Rodriguez led the charge up the final hill, a perfect finish for him.  Among the GC contenders Chris Froome led the way, finishing second on the stage and taking a little time from everyone else, as well as the yellow jersey away from Tony Martin, who sat second for the third consecutive day by only one second.

The best news of the day is that despite the horrific crash and the loss of Cancellara, the main contenders remained unscathed.


(Google Earth flyover movie + kmz)

(NBCsn broadcast - torrent)

(Velonews preview)

Stage 4 - Tue July 7, 2015
Seraing to Cambrai, France (221.5km)

Since the Tour found itself in Belgium, what better than a stage with cobblestones, a la Paris-Roubaix?  And indeed stage 4 delivered, with seven sections of pavé.  Unlike last year there was little rain and few crashes, but it was a flat-out blast through the countryside, with clouds of dust everywhere and desperate chasing across gaps.

Tony Martin survived the bumps and a late flat + bike change, and powered to victory, finally taking a yellow jersey too.  Nearly everyone felt happy for him, as it was his first leaders jersey after many years of coming oh so close.

There was considerable GC action with Vincenzo Nibali pressing attacks in the late going, but in the end all the GC contenders finished safely together.  The main effect was a general soreness in everyone's legs.

There's an ongoing debate about whether cobbles belong in the Tour, and I'm firmly in the "yes they do" camp.  It's a true test of bike riding, a major part of the sport, and it makes for great spectating.  I hope they include a stage with pavé every year.

(Google Earth flyover movie + kmz)

(NBCsn broadcast - torrent)

(Velonews preview)

Stage 5 - Wed July 8, 2015
Arras to Amiens Métropole (189.5km)

And so finally the Tour found itself in France, and there was a flat stage which ended in a field sprint, and it was good.

The stage rode through the parts of Northern France where huge battles took place during World War I, and many of the graveyards and memorials were visited or ridden by, as various commemorative events took place.

Andre Greipel blasted to his second stage victory, increasing his tenuous lead over Peter Sagan in the green jersey points competition.  The GC contenders called a truce for the day, recovering from a hard series of opening stages, and getting ready for more to come.


(Google Earth flyover movie + kmz)

(NBCsn broadcast - torrent)

(Velonews preview)

Stage 6 - Thu July 9, 2015
Abbeville to Le Havre (191.5km)

Stage 6 of the 2105 Tour was mostly flat, through rolling countryside and along the Breton shore, ending with a steep final ascent into Le Havre which promised to break up a field sprint.

Etixx-Quickstep's Zdenek Stybar survived last-minute crashes amid the final attacks to bring home the victory, while his teammate Tony Martin crashed heavily, finishing the stage but later dropping out of the Tour.

The day's feel-good story game via Eritrean Daniel Teklehaimenot, riding for first-time Tour invitees MTN-Qhubeka, who rode in the break all day scooping up mountain points to end the day as King of the Mountains, the first black African to wear a leaders jersey in a grand tour.

The GC contenders had another quiet day and there were no changes in the overall classifications.


(Google Earth flyover movie + kmz)

(NBCsn broadcast - torrent)

(Velonews preview)

Stage 7 - Fri July 10, 2015
Livarot to Fougeres (190.5KM)

Another flat transition stage, and another bunch sprint; but this time a different winner, Mark Cavendish broke his dry spell and came out on top.  This was just about his last chance until Paris, as the remainder of the "flat" stages in this year's Tour are pretty bumpy and/or have uphill finishes.

The remainder of the peloton relaxed and followed, with no changes on GC.  The green jersey remained on Andre Greipel's shoulders, with Peter Sagan lurking close behind and a good battle on that front looming.

(Google Earth flyover movie +kmz)

(NBCsn broadcast - torrent)

(Velonews preview)

Stage 8 - Sat July 11, 2015
Rennes to Mûr de Bretagne (181.5km)

Today's stage 8 was one of those lumpy stages you figure might go to a breakaway,especially because of a stinger at the end, the steep Mûr de Bretagne.  But the field came together and then Alexis Vuillermoz attacked to take the win, barely holding off a hard-charging Dan Martin.  It was the first French victory of the Tour.

Once again there was little GC racing, although Peter Sagan moved up into second with another close finish, this time fourth.  Peter now sits second in both the yellow and green jersey competitions, how often do you see that?  The final climb was steep enough to shed the pure sprinters, but a little too steep to enable Sagan to push through.  His ongoing stage win drought is now becoming a side story to the tour, that's how well he's racing in every stage.

Man of the teams took the stage off, resting up for the pivotal long team time trial tomorrow.

(Google Earth flyover movie +kmz)

(NBCsn broadcast - torrent)

(Velonews preview)

Stage 9 - Sun July 12, 2015
Vannes to Plumelec (28km)
 - TTT

The relatively long and bumpy team time trial of stage 9 was predicted to be crucial for the overall GC battle, and in the event it was pretty exciting, although it produced few changes overall.

Team BMC had hopes of repeating their recent victory in the Criterium du Dauphine, and putting Tejay Van Garderen in yellow.  As it turned out they did win, but barely, and didn't quite gain enough time on Team Sky to dislodge Chris Froome from yellow.

A key surprise was the relatively strong performance of Team Movistar, which kept Nairo Quintana and Alejandro Valverde in the GC mix, and the somewhat disappointing time turned in by Team Astana, which had looked extremely strong in this year's Giro d'Italia, but which lost Vincenzo Nibali a little more time to his competition.

(Google Earth flyover movie +kmz)

(NBCsn broadcast - torrent)

(NBCsn broadcast - torrent)

Rest Day 1 - Mon July 13, 2015

And so the first week of the Tour draws to a close, with nine tough stages including the tour's only ITT and TTT done.  Ahead lie three tough mountain stages in the Pyrenees, four transition stages through the South of France, and then four concluding stages in the Alps, before the final parade to Paris.

Some conclusions from the first week:

  • Chris Froome is looking solid in yellow, as is his Team Sky.
  • Tejay Van Garderen is the GC surprise, and his Team BMC have done everything right including winning the team time trial.
  • Vincenzo Nibali most definitely does not look like the dominant champion he was last year, and Team Astana have lost something since their strong Giro showing.
  • Alberto Contador looks tired from his winning Giro campaign.  Team Tinkoff have done well, but he has merely hung in there.
  • Peter Sagan is the rider of the tour, despite not having won anything yet.  He's close on GC and close in the points competition, and has been right with the winners in every stage.
  • Andre Greipel is this year's top sprinter, having eclipsed Mark Cavendish.  Of course Marcel Kittel is not here.
  • The French are not as strong or as fortunate as they were last year, when they took 2nd and 3rd, and will likely have to settle for trying to make the top ten.
  • It has been a great parcours so far.  The ASO are to be congratulated on a great course!
  • Phil Liggett and Paul Sherwen, deans of cycling announcersPhil Liggett and Paul Sherwen remain on top of their game (pictured at right), and the NBCsn supporting team of Todd Harris, Bob Roll, Christian Vande Velde (pictured above), along with the inimitable Jens Voigt are excellent.
  • Onward!
(Velonews preview)

Stage 10 - Tue July 14, 2015
Tarbes to La Pierre-Saint-Martin (167km)

So finally the Tour reached the mountains ... the first decisive stage in the Pyrenees, where the true contenders would be revealed and the pretenders would be exposed.  A long flat prelude to get everyone warmed up, followed by a difficult mountaintop finish atop the HC climb to La Pierre-Saint-Martin.

And Chris Froome dominated the field, powering away to victory, decisively gaining time on all his rivals.  It might be that this one climb determines the winner of the Tour.

Robert Gesink of Team Lotto Jumbo attacked first, signaling his recovery from injuries and return to the front of the GC field, but he was quickly reeled in.  His effort did have the effect of shedding Vincenzo Nibali, who just hasn't looked at all like he did last year.  Next came Alejandro Valverde, and the resulting increase in pace shed Alberto Contador and then Tejay Van Garderen, to the surprise of many.

As the climb continued inexorably on only Nairo Quintana was able to stay with Froome, and soon he too was dropped, leaving Froome to ride on alone to victory.  It may be too early to declare Froome the overall winner, but it's clear that Nibali and Contador just don't have what it will take this year.  Meanwhile Tejay can hope for a podium, if not the overall victory, and Quintana seems like Froome's main competition.

(Google Earth flyover movie +kmz)

(NBCsn broadcast - torrent)

(Velonews preview)

Stage 11 - Wed July 15, 2015
Pau to Cauteretes-Vallée de Saint-Savin (188km)

Stage 11 featured an HC climb up the legendary Col du Tourmalet and a mountaintop finish to Cauterets, but even so it felt a bit of an anticlimax after yesterday.  There would be fireworks on the last climb, but perhaps a chance for a break.  And so it was.

It seems in every Tour there is a decisive moment when the GC battle is shaped, and almost every stage after that features two races, one for the win, and one for GC.  Stage 10 of this year's Tour was that moment, and sure enough there was a lot of energy expended on getting in a possibly-winning breakaway. 

Rafael Majka got in the early break with two options, first, to help Albert Contador later should he attack on GC, and second, to hunt for the win.  After a while the first option faded, and he powered on to take the stage, in fine fashion reminiscent of his KOM-winning form from last year, when he also won two mountain stages.  Also in the mix was Dan Martin, who finished a strong second.

Among the GC contenders Vincenzo Nibali was again dropped on the final climb, but the rest of the favorites finished together.  There was speculation that Valverde and Quintana might try a two-pronged attack on the final climb, but it fizzled.  It could be that they try to hang in there tomorrow, and then reserve their real attacks to try to take back time for the Alps.

(Google Earth flyover movie +kmz)

(NBCsn broadcast - torrent)

(Velonews preview)

Stage 12 - Thu July 16, 2015
Lannemezan to Plateau de Beille (195km)

The mighty stage 12 of the 2015 Tour featured four big climbs, including two Cat 1 trips up the Col de la Core and the Port de Lers, before finishing on the HC Plateau de Beille.  Adding to the fun, most of the stage was raced in a continuous downpour.

Sensing the possibility of victory, a 22-man break formed early, and broke and reformed several times before decanting down to seven strong riders.  With 11Km left on the final climb Joachim Rodriguez attacked and rode away to a strong victory, his second of the tour.

Further back, the GC contenders attacked Froome but could not gain any ground, and they all finished together.  Alberto Contador and Vincenzo Nibali both showed signs of life, attacking to move to the front before being nailed back, adding to the entertainment.

Meanwhile man-about-the-peloton Peter Sagan once again took maximum points at the intermediate sprint to secure his hold on the green jersey.  It seems clear now that he's going to win his fourth consecutive green jersey if he makes it to Paris, as he's able to score points every day, regardless of the course profile.

And so now the peloton head off across Southern France for four transition stages, which are each lumpy enough with enough variation to make it difficult for pure sprinters to win.

(Google Earth flyover movie +kmz)

(NBCsn broadcast - torrent)

(Velonews preview)

Stage 13 - Fri July 17, 2015
Muret to Rodez (198km)

Stage 13 looked like possibly it could end up in a field sprint, or possibly a breakaway could survive.

In the event, the peloton kept an early break close all day, and eventually reeled them in, having however shed many of the pure sprinters on the lumps leading into the finish.

BMC's Greg Von Avermat powered up to the front and held on for victory on a finish that was steeper than the profile would indicate.  Peter Sagan narrowly finished second, his fourth 2nd of the Tour.  It seemed he would power past Van Avermat to win, but his timing was off and he couldn't do it.

The GC contenders were content to ride along in the peloton and finished together without incident or any changes to the overall standings.


(Google Earth flyover movie +kmz)

(NBCsn broadcast - torrent)

(Velonews preview)

Stage 14 - Sat July 18, 2015
Rodez to Mende (178.5km)

With a rather unusual profile, stage 14 seemed like a perfect opportunity for an intrepid breakaway to stay clear, packing a considerable punch however in the final uphill finish.

The peloton seemed to relax right away and a large breakaway pulled clear.  Peter Sagan took maximum points at the intermediate sprint, after which there was a decanting and a smaller break pressed on.

On the final climb it seemed Romain Bardet had the winning move, only to be caught by Thibaut Pinot with 2km left.  The two played cat-and-mouse, and suddenly were caught and passed by Steve Cummings of MTN Qhubeka, who outlasted them to win.  It was a great victory for the wild card African team, a perfect way to celebrate Nelson Mandela Day.

Long after the win, the GC group reached the final climb and we were treated to another great race to the finish, with Nairo Quintana attacking at the end, only to be caught by Chris Froome.  The pair gained further time on the rest of the competition, especially Tejay Van Garderen who was inexplicably dropped early on the climb.

(Google Earth flyover movie +kmz)

(NBCsn broadcast - torrent)

(Velonews preview)

Stage 15 - Sun July 19, 2015
Mende to Valence (183km)

Stage 15 looked like it might feature yet another breakaway, but the finished turned out to be too flat and hence too tempting for the sprint teams, and they kept things well in hand.

After a largely uneventful if pretty fast chase, the field came together into the finish at Valence, and Andre Greipel out sprinted the field once again to take his third victory of the Tour.  Peter Sagan tried gamely but came up short, finishing fourth and holding onto the green jersey.

The stage was a quiet one for the GC contenders, who followed in the peloton all day, with no overall changes.


(Google Earth flyover movie +kmz)

(NBCsn broadcast - torrent)

(Velonews preview)

Stage 16 - Mon July 20, 2015
Bourg-de-Péage to Gap (201km)

The last of the four transition stages looked set to be perfect for a breakaway, and indeed the last chance for opportunists in this year's Tour.

Two large breakaways escaped, with Peter Sagan once again animating the front in search of more green jersey points.  Eventually the breakaways merged, leading to a series of attacks which were each pulled back.

At the final climb Reuben Plaza attacked the leaders, including Sagan, who seemingly let him go.  It proved a bad decision as Plaza held on throughout the dangerous descent into Gap for a solo victory.  Sagan chased hard but had to settle for his incredible fifth 2nd of the Tour.

That brings everyone to the second rest day.  And then fireworks in the Alps!


(Google Earth flyover movie +kmz)

(NBCsn broadcast - torrent)

(NBCsn broadcast - torrent)

Rest Day 2 - Tue July 21, 2015

The peloton reached the second rest day after a tough second week.  A lot of tired legs gratefully took the day off.  (But not too "off"; most riders still rode for a few hours to keep their bodies in race mode.)

Immediately ahead lie four mountain stages in the Alps, including the queen stage and a mountaintop finish at Alpe d'Huez, and then the ceremonial final day's sprint in Paris.

Some conclusions from the second week:

  • Chris Froome is going to win.  He was too strong in the Pyrenees and his Team Sky have controlled everything.
  • Nairo Quintana is going to finish second.  He is the only one with a chance to win, but he'll have to find that extra climbing gear he has shown in the past.  His Movistar team have ridden well and he has Alejandro Valverde, the strongest teammate of any of the contenders, sitting in third and a contender himself.
  • Valverde is riding his best Tour ever and might finish on the podium.
  • Tejay Van Garderen remains strong.  If he shows strength in the Alps he might even be able to move up onto the podium.
  • Alberto Contador still looks tired.  You can tell he wants to attack, but can't.  Still you can't count him out, he could come up with a big surprise in the Alps.  
  • Vincenzo Nibali has fallen back further, and Astana have been non-combatants.  It's doubtful he can doing anything.
  • Peter Sagan has locked up the green jersey with spectacular riding every day.  Too bad a stage win has eluded him. 
  • I honestly think this is the best route ever.  It has something for everyone and each day has been interesting and beautiful.  I can't wait for the Alps to come!
  • Jens Voigt, cycling announcer rookie of the yearIn the announcing peloton, Jens Voigt is rookie of the year.  So often he makes an observation about the racing and you say "yeah, of course, that's obvious".  But at first it was only obvious to him :)
  • Onward!
(Velonews preview)

Stage 17 - Wed July 22, 2015
Digne-les-Bains to Pra-Loup (161km)

As predicted the first of four serious Alpine stages produced excitement and drama.  A huge break of 31 riders took off early, hoping to be left alone, but there was a gradual shuffling and decanting that reduced the group to a small number of strong climbers.

Further back the GC attacks came fast and furious, as Alberto Contador, Vincenzo Nibali, and Nairo Quintana each tried to take time on Chris Froome.  And further back yet, in the days saddest story, Tejay Van Garderen suffered from a chest cold acquired on the rest day and was dropped immediately, before he finally withdrew from the Tour.

On the huge Col d'Alois Simon Geschke attacked the leading break and pulled a gap, which he held all the way down the perilous descent and defended on the final climb into Pra-loup.  Andrew Talansky chased hard and passed Thibaut Pinot downhill to finish second.

In the GC battle further down the hill the contenders tried everything to put pressure on Team Sky.  In the end Quintana was able to beat Froome to the line, but didn't pull any time.  Nibali gave up more time and Contador suffered an untimely crash at the foot of the final climb which cost him over two minutes, virtually ending any chance he might have at winning.

It was a great day of racing with incredible views of the mountains as a backdrop; can't wait for tomorrow!

(Google Earth flyover movie +kmz)

(NBCsn broadcast - torrent)

(Velonews preview)

Stage 18 - Thu July 23, 2015
Gap to Saint-Jean-de-Maurienne (186.5km)

A long stage with seven categorized climbs including the massive HC Col du Glandon led to more great racing in the 2015 Tour's stage 18.  Another large break of 29 riders got clear early, and it seemed any one of them might survive to the end, with the peloton mostly interested in the GC battle.

There were two great races on the huge Glandon, the race for the stage, won by Romain Bardet as he slipped off and opened up a lead on the long long downhill, and the race for GC, featuring multiple attacks by all the usual suspects.

Vincenzo Nibali showed signs of life, attacking several times, and Albert Contador had the most active stage of his Tour.  Ultimately they were reeled in by the relentless pace of Team Sky and Chris Froome, and in the end all the contenders finished together, with no changes to the overall standings.

The race for King of the Mountains also heated up - finally! - with Joachim Rodriguez and Romain Bardet in a pitched battle.  Sadly for both of them it's likely that the overall winner will have to do well in both of the final mountain stages to stay in front, and will probably win the KOM as well.  Such is this year's course ... too much climbing and too many mountaintop finishes for there to be a separate King of the Mountains.

It was great to see all the contenders animated and attacking, and it bodes well for tomorrow's queen stage of the Tour.  

(Google Earth flyover movie +kmz)

(NBCsn broadcast - torrent)

(Velonews preview)

Stage 19 - Fri July 24, 2015
Saint-Jean-De-Maurienne to La Toussuire-Les Sybelles (138km)

When the 2015 Tour route was announced Stage 19 looked to be decisive, and so it was, featuring an early Cat 1 climb right out of the gate up the Col du Chaussy, and then a huge HC climb up the Col de la Croix de Fer (the other side of the Col du Glandon from yesterday), a short climb up the steep Col du Mollard, a steep descent, and then finally a Cat 1 climb up to the finish at La Toussuire.  It turned out to be one of the most eventful races of a colorful Tour.

Unexpectedly Alberto Contador attacked right on the first climb, bringing along Alejandro Valverde and Team Sky's Geraint Thomas, and blowing up the peloton right from the start.  Chris Froome soon found himself isolated for the first time all Tour, and for the first time seemed a bit vulnerable.  On the long ascent of the Col de la Croix de Fer it seemed Astana and Vincenzo Nibali were massing for an attack.  With about 5km to go Chris Froome had a slight mechanical and poof, Nibali picked that exact moment to attack.

It definitely seemed he was going to attack anyway, but it also didn't seem quite quite the thing, to attack the yellow jersey during a mechanical, and there was a lot of heated discussion afterward. 

Anyway Nibali pressed his attack and held it, winning the stage to gain back over a minute on Froome, and move solidly back into the top five.  It was the first time all Tour that he seemed to have the resolve and power he had last year, and it makes one wonder what might have been, and what could happen tomorrow.

Meanwhile on the final climb Nairo Quintana also attacked, and was also able to bring back time on Froome, about 30s.  He moved to within a plausible attacking range of the overall lead, given the climbing on tap tomorrow.  Too bad he and Valverde weren't able to sustain this type of one-two punch back in the Pyrenees.

So it all sets up a great penultimate stage tomorrow, finishing atop Alpe d'Huez.  Should be a perfect end to a great Tour!   

(Google Earth flyover movie +kmz)

(NBCsn broadcast - torrent)

(Velonews preview)

Stage 20 - Sat July 25, 2015
Modane Valfréjus to Alpe D’Huez (110.5km)

Which brings us to stage 20, the final Alpine stage and the final "real" race of the 2015 Tour.  This stage was originally supposed to pass over the Col du Galibier, but a tunnel blockage forced a re-route, and now the peloton passes over the Col de la Croix de Fer again, this time from the other side, before finishing atop the iconic Alpe d'Huez.

The peloton pretty much held together over the first climb, but a small group of attackers got away on the descent including Thibaut Pinot and Ryder Hesjedal.  Pinot ended up hanging on to win, gamely fighting his way through the massive crowds on the Alpe.

Just behind a battle royal was brewing among the GC contenders, with first Alberto Contador and then Alejandro Valverde getting clear.  Vincenzo Nibali suffered an untimely flat at the base of the final climb which kept him out of the action.  Then the danger level rose to 11 as Nairo Quintana attacked, pulling a gap on Chris Froome and riding together with his teammate Valverde.  Quintana nearly won the stage, grinding Pinot all the way up, and ended up gaining over a minute on Froome.  But it was not enough, and Froome will be wearing yellow in Paris.

The final GC overall looks almost exactly as you might have predicted, with the "big four" of Froome, Quintana, Nibali, and Contador all in the top five, joined by Valverde.  (Too bad Tejay Van Garderen dropped out, he had a real chance to break into that group.)  The top ten was rounded out by more usual suspects, Robert Gesink, who had a great Tour, Bauke Mollema, Matthias Frank, Romain Bardet (the top French rider), and Pierre Roland.

Whew.  What a great day of racing, capping a great three weeks.  And so tomorrow we have the final ceremonial stage to Paris, which will feature the final non-ceremonial and hotly contested sprint for the final win.

(Google Earth flyover movie +kmz)

(NBCsn broadcast - torrent)

(Velonews preview)

Stage 21 - Sun July 25, 2015
Sèvres-Grand Paris Seine Ouest to Paris Champs-Élysées (109.5km)

The final stage of the 2015 Tour was reached after an air transfer from Grenoble, and featured the usual picture opportunities and champagne toasts on the way into town, before the usual 13 increasingly furious circumlocutions of the Champs-Élysées.  On this day the rain came, and the organizers chose to take the final times on the first pass through the finish line, neutralizing the race and avoiding any last minute mishaps.

The road did dry a bit for the final, and the sun poked through, and Andre Greipel once again dominated his sprint compatriots to take his fourth stage win.

The final GC standings were Chris Froome, Nairo Quintana, Alejandro Valverde, Vincenzo Nibali, and Alberto Contador.  Peter Sagan won the green jersey going away, Froome also won the polka dot KOM jersey, and Quintana also won the white jersey for best young rider.  The most aggressive rider of the Tour was Romain Bardet, giving the French something to cheer about.  And the top team was Movistar.

So ends another great Tour.  Wow.  As usual I can't quite believe it's over, and that I'll have to wait nearly a whole year for the next one.

I would be remiss if I didn't mention the extreme lameness of NBCsn, who kept cutting away from the final stage to show some NASCAR race.  They nearly missed the final podiums altogether, and there were no post-podium interviews or final thoughts from Phil and Paul, etc.  Completely stupid and horrible planning to break away from the finale of a three week event, blech.

(Google Earth flyover movie +kmz)

(NBCsn broadcast - torrent)

Chris Froome and Team Sky showed fine style to win the toughest Tour in yearsFinal Thoughts - Mon July 27, 2015

So the 2015 Tour de France is over.  Yay and boo, it was great, and I'm sad it's over.

Some final thoughts:

  • Chris Froome and Team Sky showed fine style winning the best and toughest Tour in a long time.  And he's only 30, he'll be back.
  • Nairo Quintana is the best climber in the world, and nearly caught Froome in the end.  He's only 24, he'll be back, too.
  • Alejandro Valverde had his best Tour ever.  Would be great to see him as a team leader again, but most likely he'll continue to support Quintana and stay with Movistar.
  • Vincenzo Nibali recovered with a great win on stage 19 and showed flashes of the greatness from last year.  Look forward to seeing him back in form again.
  • Alberto Contador just never had it this year.  It's not clear whether it was the fact he had already won a tough Giro earlier this year, or ... something else.  But he'll be back...
  • Tejay Van Garderen looked great until he looked terrible.  He's still one big win away from being in the top tier.
  • Peter Sagan was amazing.  Hard to believe he's so young, I think he can win the green jersey another ten years in a row.  Too bad he didn't win a stage, but five 2nds is pretty impressive, especially given the diversity of stages in which he was competitive.
  • Andre Greipel was this year's sprinter, but of course Marcel Kittel was missing. 
  • Mark Cavendish was good but has clearly lost his dominance.  Not clear if that's temporary.  We'll see.
  • There's a class of great rider who just don't quite make their mark in a grand tour, like Alexander Kristoff, John Degankolb, and current world champion Michal Kwiatkowski.  They were there but they weren't really a factor.  Shows the difference between one-day racing and multi-day stage racing.
  • I have to mention Adam Hanson, who finished his twelfth grand tour in a row.  Despite having a separated shoulder, too.  Wow.  That's a new record, and it's incredible.
  • I think I enjoyed the announcing more than any Tour in recent memory.  Phil and Paul were great as always, but they were well complimented by the NBCsn team of Todd Harris, Bob Roll, Christian Vande Velde, and Jens Voigt.  That's a lot of people but they did not get in each other's way, and they each bring something.  I particularly like Vande Velde and now Voigt because they know the current riders and have critical insights.
  • Vive Le Tour!The on-screen graphics are getting better but the tech still lags way behind what could be done.  In particular showing the gradient during climbs (as they do in the Giro and Vuelta) would be great, and showing the speed differential between the breakaway and the peloton.  Each year they get a little better...
  • Onward!


Archive: July 27, 2014

Le Tour 2014, stage 21: Kittel wins final sprint (again); Nibali golden in yellow

Sunday,  07/27/14  10:53 PM

the peleton rides down the banks of the Seine on their way to the final straight over the Champs d'ElyseeTo nobody's surprise Marcel Kittel won the final bunch sprint down the Champs d'Elysee in Paris, after the usual flurries of attacks on the cobbles in front of millions of screaming Frenchman.  It was an amazing pageant, as always, to see 200 brightly clad riders flying down the boulevard at 40mph.

The final jerseys of the 2014 Tour; Vincenzo Nibali (yellow), Peter Sagan (green), Rafael Majka (polka dot), and Thibot Pinot (white)And so ends the remarkable 2014 tour; with Vincenzo Nibali in firm possession of the overall leader's yellow jersey, Peter Sagan equally secure in the sprinter's green jersey, Rafael Majka in the king of the mountain's polka dots, and Thibot Pinot as the best young rider in white.

It was a great three weeks of great racing, with a little bit of everything, and after looking forward to each day's racing I'm sorry it's all over.  I guess I'll have my little period of mourning and then we can look forward to the 2014 Vuelta a Espana.  (Will Chris Horner be able to defend against Chris Froome and Alberto Contador?)

[ Le Tour 2014: all posts | index ]


Archive: July 27, 2013


Archive: July 27, 2012


Archive: July 24, 2011

TDF stage 20 / ITT - Martin powers to victory, Evans blasts by Schlecks to take yellow (and we are there!)

Sunday,  07/24/11  09:35 AM

So yesterday was amazing; Shirley and I were in Grenoble watching stage 20 of the Tour de France.  I took a bunch of pictures - how great is it that you can just walk up to a Tour stage and watch it close up? - and we enjoyed ourselves thoroughly; everything from the TGV down from Paris (600km in 2 1/2 hours!) to the beautiful city of Grenoble itself to the pageantry and of course the excitement of the ITT as the Tour was decided.

Some pictures, in chronological order to tell the story: (how cool is it to use my pictures, instead of Velonews' :)

Grenoble, gateway to the alps and scene of stage 20 of the 2011 TDF, the individual time trial

on the finishing straight, ready for action

the start house is right there; here Chris Anker Sorensen takes off

Tony Martin powered to the stage win, repeating his victory in the Dauphine Liberte on the same course
(and upsetting favorite Fabian Cancellara!)

Levi Leipheimer had a disappointing tour, as did Radio Shack; they'll be back

Robert Gesink suffered, as did Rabobank; they'll be back

Tom Danielson had a great tour (9th!), and Garmen Cervelo won the team classification

Pierre Rolland, white jersey for best young rider and winner of yesterday's stage up to l'Alpe d'Huez

Ivan Basso had a great tour, 8th overall

Samuel Sanchez, resplendent in polka dots, 7th overall

with the 3rd best time on the day, Alberto Contador passed Damiano Cunigo to finish 5th overall
somehow he gained more by finishing 5th this year than by winning last year

Cunigo had a great tour, ended up 6th overall

Thomas Voeckler was the French hero, 10 days in yellow, and finished 4th overall

Cadel Evans blasted to a close 2nd to pick up over two minutes on the Schlecks
and win yellow!

tick tick tick took Frank Schleck nearly six minutes to show up after Evans
(they started three minutes apart)
he did have a great tour and finished 3rd overall

Andy Schleck enjoyed yellow for the day but had to give it up to Evans in the end
so now he finished 2nd for the third year in a row
look for him to come back strong next year!

they say every road in Grenoble ends in a mountain; it is surrounded by beauty

celebrating our TDF swag at a cafe

Just an awesome day.  And later today we're off to the Champs d'Elysee to see stage 21 and the final finish.  Stay tuned!

[ Tour de France 2011:  all postsindex ]


TDF stage 21 / parade - Cavendish wins! and takes green (and we are there!)

Sunday,  07/24/11  09:34 PM

What can I say?  To be on the Champs d'Elysee for the finale to the Tour de France was awesome!  It was a boring race even by last-stage-of-the-Tour standards - hardly any breakaways, easily chased down, and a bunch sprint ending in a runaway victory for Mark Cavendish - but it was great to be in the huge crowd, sense the atmosphere, and see the peloton flashing by.

A few pictures for your viewing pleasure:

the scene: Paris!

the Arc d'Triomphe punctuates one end of the Champs d'Elysee

the Champs d'Elysee, perhaps the most famous shopping street in the world
converted on the third Sunday in July into the most famous velodrome :)

looking straight down the 3 mile racetrack

one kazillion people were on hand, wow

the intermediate sprint point

giant monitors relay the action for the crowd

there they are!  Cadel Evans looking good in yellow

the peloton whooshes by

it's a break! - but reeled in quickly

Mark Cavendish wins!
his fifth stage win, wrapping up the green jersey

the final podium: Andy Schleck (2nd for the 3rd year in a row), Cadel Evans, Frank Schleck

winning team: Garmin Cervelo
Thor Hushovd (world champion's rainbow at left) won two stages and wore yellow all the first week
note cardboard cutout of Dave Zabriske who crashed out

And so ends a great Tour, which had a little of everything.  More than anything else it had drama, the end was in doubt 'till the last, many great attacks, many crashes, many heroes, many victims, and a number of interesting subplots.  (And blessedly no doping scandals!)  I will post some summary thoughts when I get back - stay tuned...

[ Tour de France 2011:  all postsindex ]


Archive: July 27, 2010


Tuesday,  07/27/10  11:57 PM

Well I'm fine.  But my poor little car is not :( 

Heading home on the 405 tonight, about 30mph, two lanes closed due to construction.  Suddenly the car in front of me hits the car in front of him who had hit the car in front of him.  Bam bam.  I slam on my brakes and try to swerve into the other lane but there is a car there.  Bam bam.

Wow.  Did that actually just happen?

I'm ... okay.  Wearing my seat belt, air bag didn't deploy.  Car seems ... okay.  It can drive.  Turn on flashers.  I move over to the right gingerly, there is no shoulder due to construction, nowhere to go.  Head for the next exit, there it is, I creep off the freeway and into a nearby gas station.  Inspect the damage.


My poor little car is hurt.  Badly.  Cannot open the driver's door, so climb out on the right.  Left front side smashed, headlight gone, wheel well collapsed.  Right front side all scraped up too.

I call 911.  Report a collision.  I was involved, I'm okay.  No, I have no idea who else was involved, or what happened to them.  Yes, I will wait for the highway patrol.

I wait.

The patrolmen show up in force; three cars six people.  I answer many questions, they take many notes, they leave.  Apparently no other cars stopped, nobody else reported the accident.  Huh.

I drive my car slowly to the repair shop.  My daughter picks me up, takes me home.

Well I'm fine.  But my poor little car is not :(


Archive: July 27, 2009

TDF redux

Monday,  07/27/09  09:09 PM

TDF 09 - goodbye until next year!One more Tour post (if you're sick of these, you can say "yay", and if you're a tour fan you can join me in saying "boo" :).  A few little day after observations and links:

  • How great was it that all the news was the cyclists and the races, and no doping?  It was great.
  • To nobody's surprise Alberto and Lance are sparring already.  It should be a great showdown next year.  And where will Alberto land?  Perhaps, as Lance has suggested, he will discover there is no "I" in team :)
  • Nice to see Thor Hushovd and Mark Cavendish have buried the hatchet.  Mark is going to learn from this experience, and will be competing for the green next year you can be sure.  He won Milan San Remo remember, he is not "just" a sprinter.  Thor did show us all he isn't either.
  • Welcome back!  Michael Rasmussen finishes second upon his return from a two year suspension.  Excellent, I want to see him back in the Tour.  We need someone who can climb with Contador.
  • Welcome back II!  Robbie McEwen finishes second upon his return from injury.  Excellent, I want to see him back in the Tour, too.  We need someone who can sprint with Cavendish.
  • George Hincapie did break his collarbone in stage 17; he declined to have it X-rayed so he could finish.  Think cyclists aren't tough?  Wow.
  • Finally, this was really cool, as Tour de France chief Christian Prudhomme credited Lance Armstrong for adding interest to this year's race.  Lance won more friends in France finishing third than he ever did by winning.

And so now it is wait 'till next year!

[ Tour de France 2009: all postsindex ]


Monday,  07/27/09  09:58 PM

iTunes rocksA busy day of work work work after a wonderful weekend of messing around.  I guess that's just the way it goes.  I made a major [re]discovery today: I love working to music.  I periodically fall out of the habit of working with music in the background (I think when I'm spending lots of time on the 'phone) and then when I try it again I'm like "wow, I love working to music" :)

Palm Pre side viewMade a new coolular discovery about the Pre today: it feels very comfortable in the hand holding it against your head while talking.  Because I use my Plantronics Bluetooth headset all the time I really hadn't done this, but I let the battery in the headset run down and had to use the phone itself, and with the keyboard slid out the back of the phone gives your fingers a nice ledge to rest on...

itsy-bitsy teeny-weeny: shopping for bikiniAn important subject: Itsy-Bitsy Teeny-Weeny (shopping for bikinis), from this week's New Yorker.  I particularly like this definition: a bikini is any swimsuit which can fit through a wedding ring.

Recently saw an email from CNet extolling the virtues of Netflix downloads.  Yeah, but... now that I have Netflix downloads on my Tivo, I never ever use them.  Know why?  Because you have to wait for the whole movie to download before you can watch it.  Meanwhile my AppleTV is just one remote control away and has the same movies at the same prices, and they stream.  No contest.

Speaking of Netflix and contests, the Netflix $1M contest is over!  And we have two winners!  Both of which have improved Netflix's suggestion effectiveness by over 10%.  So either way their customers will win.

Josh Newman's Next Chapter: "Earlier today, I updated my bio (both above, and on the about page) to reflect my having turned 30... and changed the front-page quote to the Wall St. Journal's 'an Internet elder statesmen'."  Good grief!  He turns 30 and he's over the hill?  Elder statesman?  Wow… what’s next, blog posts that begin with "I remember when…"?

[Update: Josh responds: "I was going to ask you what it was like to hunt for woolly mammoths"]

Current first class 44¢ stamps: The Simpsons!I remember when... stamps were 10¢.  Really.  Do you know what they are now?  (Many people don't, like me; I had to look it up because I never buy stamps anymore, and the price changes constantly.)  And so now the USPS are thinking of raising rates from 44¢ to 50¢.  "The more they raise the price of stamps, the lower their volume.  This union driven worker model is too pricey for a declining market."  D'ya think?

BTW in case you didn't know this is not a joke; the current first class stamps really do feature The Simpsons.  Once again Real Life is stranger than The Onion.

Apropos: Scott "Dilbert" Adams on the Extra Legal age.  "Our laws recognize a number of legal ages for various activities.  You need to be 16-years old to get a driver's license, 18-years old to enlist in the armed forces, and 21-years old to drink.  I think we need to extend that concept.  Once you reach the age of 80, a new set of legal rights should kick in."  80?  How about new rights at 50?  Like the right to start posts with "I remember when" :)

Red red wine - boosts a woman's sexual desire?Important work: The Telegraph reports on research that shows red wine increases women's sexual desire.  I have been conducting experiments of my own in this area that suggest the same :)

{I must note that this is being posted to The Who's Teenage Wasteland.  Probably should switch to UB40's Red Red Wine :}



Archive: July 27, 2008

Megan Wins!

Sunday,  07/27/08  11:41 PM

Some parental chest-beating... today Megan sailed in her first C-15 regatta, and won!  I was a very proud crew, along with Megan’s friend Madison who was on the trapeze.  Meg has been sailing sabots all summer and made the transition to the bigger C-15 easily, even yelling at her dad to sheet the jib faster coming out of tacks.  Can’t wait to get her out in the ocean!

Of note: this is "It's the Water"'s 29th season of winning races; the old lady can still show some leg...

To the victors go the smiles :)

And once again we see that There is nothing, absolutely nothing, half so much worth doing as simply messing about in boats...



Sunday,  07/27/08  11:52 PM

Great day today, watched the final parade of Le Tour this morning (congratulations again to Carlos Sastre, and Oscar Friere, and to today's victor Gert Steegmans), and then crewed for Meg in her first C-15 race, which she won, and tonight ended with a nice dinner with friends.  Oh, and it was a beautiful day, too.  Can't get much better than that!

A friend who sails and reads my blog came up to me this morning and said, "first the death ride, then climbing Whitney, and now racing a C-15 with two 11-year-olds".  Hard to say which was more demanding :)

Last night Shirley and I celebrated our sixteenth anniversary (yay!) with a wonderful dinner at Tuscany, our favorite restaurant here in Westlake Village.  A nice gazpatcho accompanied by a crisp Viognier, followed by an amazing trio of filets, rare, each prepared with a different sauce and vegetable, and a perfect '95 Cask 23 which we'd been saving for a special occasion.  Wrapped up with a chocolate hazelnut torte and a '60 Croft port.  Wow.

Quote of the day: "The trouble with socialism is that you eventually run out of other people's money" --Margaret Thatcher.  [ via Instapundit ]

From the inimitable Scrappleface: McCain backs timeline to get Obama out of Iraq.  I love it!

This is so bogus: California to ban trans fats at restaurants.  WTF?  Since when is it the government's job to protect us from trans fats, (or anything else for that matter)?  Talk about a nanny state, what a waste of taxpayer money.  This is even worse than the ban on driving while holding a cellphone to your ear.  Meanwhile our public education sucks.  Help!

cutest momentGerard Vanderleun: cutest moment in the history of the world.  Pretty hard to argue :)

Aptera Typ-1 electric carFuturePundit notes Aptera typ-1 electric car nears production.  Looks cool, but of course "nears production" is pretty different from "is in production".  And it is projected to have only a 120 mile range.

And so we have a new entry in the search engine sweepstakes: Cuil.  I've been trying it (changed Firefox to use it as my default search engine) and I have to say, it's pretty cuil.  Overall I'm not sure it is better than Google, and I'm not sure it is sufficiently different either, but time will tell.  The key feature seems to be "grouping by category", which I must admit would be really useful if it works.   TechCrunch has more.



Archive: July 27, 2007


Archive: July 27, 2006


Archive: July 27, 2005


Archive: July 27, 2004


Archive: July 27, 2003

Sunday,  07/27/03  10:51 AM

happy anniversary!Happy Anniversary - to me!  And to my wonderful wife Shirley.  We celebrated our 11th anniversary yesterday.  Wow, eleven years.  A lot has happened in that time, to us, and to the world!  Eleven years ago nobody had heard of the Internet, it was not a thing.  And now it is an indispensable part of many lives.  Amazing to contemplate, and to think what the next eleven years might bring...

Lots of catching up to do, it's all happening...Lance wins!

Well, Lance has done it again.  Five straight Tour de France victories.  Absolutely unbelieveable!  This was his toughest one, and in many ways his best.  The time trial yesterday was great; too bad Jan Ullrich fell in the wet conditions, it made for a bit of anticlimax.  But that's bike racing... sometimes you have to survive first, then win.  I think the key point of this Tour was stage 15 in the Pyrenees, when Lance fell hard, and then incredibly got up and powered to a stage win.  He just seems to have an extra gear when he needs it :)

Remember we were talking about Mitochondrial Eve, and how humans were first found about 160,000 years ago in Africa?  Well, turns out humans came to North America much later, only about 18,000 years ago...  There is evidence from Y chromosome studies that the first Americans came over a land bridge from Asia.

handsome manpretty womanHere's an interesting post on what makes faces attractive.  [ via GNXP ]  This is an especially interesting discussion considering the natural selection considerations; somehow there must have been selective pressure for "attractive" faces, or we wouldn't find them important in choosing a mate.

Also in GNXP: Genes, Medicine, and the New Race Debate.  [ Originally from Technology Review, but behind a paywall ]  Researchers are using the data from the human genome project to construct a "haploid map", which defines the boundaries of each haplotype block, a kind of grouping of genes along a chromosome.  "The most immediate impact of the HapMap is likely to be the prediction of how a patient will respond to a drug."  One of the holiest grails in biotech right now.

More on RFID; Salon says everything is watching you.  Not yet, but soon...

Recent reports from AOL and SBC seems to suggest DSL is gaining on Cable, in the neck-and-neck race to bring broadband to the U.S.  Interesting.  I've had both, and I can honestly say cable is better.  Faster, anyway, and at least as reliable.  With cable you get 300K+ downloads all the time, whereas with DSL you only get about 100K.  Uploads are slower - and you can't host a server on cable - so that's the downside, but for the average couch surfer that doesn't matter.

CNet report Microsoft considering Music Store.  Excellent, welcome to the party.  Yet another case where MS would follow Apple into a new market / technology, and perhaps yet another case where they'd be more successful over the long haul.

Anil Dash writes about Microsoft: many years of sucking.  He picks on the font installation dialog, which has sucked for ten years.  There are these little backwaters of Windows which never seem to get any attention.  That funky dialog box you get when you first use a help file (which Joel likes so much) comes to mind.  It is probably unfair to judge the entire company, or Windows, by one anachronism, but it is fun...

bulge illusion

Check out these amazing optical illusions.  The one at left is my favorite; no matter how hard my brain tries to tell my eyes the lines are straight, they want to say they're curved.  Cool.

wave illusion spiral illusion motion illusion


Third-Party C++ Children

Sunday,  07/27/03  06:09 PM

The problem

Suppose you have an application which provides "core" functionality for other developers.  Suppose you want to expose functionality as C++ classes, rather than via APIs.  Suppose you want to enable extension of those classes by third-parties.  What are the pitfalls?  How do you avoid them?


Let's say you expose functionality via a class cBase.  This class can be used "as is", but is really intended to be used as a base class for other classes (created by third-parties):

class cNew : public cBase {...}

The third-party code is going to create cNew objects (your code doesn't know about them), and when your code interacts with these objects you can only treat them as cBase objects, not cNew objects (because, again, you don't know about cNew).

Therefore you have to make any methods you intend to make overrideable as virtual methods:

class cBase {
    virtual ~cBase();         // make destructor virtual
    virtual void myMethod();  // a virtual method

Now in your code you deal with cBase pointers, which are really pointing to cNew objects:

cBase *pObj;                  // pointer to cBase / cNew

pObj->myMethod();             // could call cNew's method

Virtual methods are called indirectly through a vector table in the object; if the pObj pointer was pointing to a cNew object, then the myMethod() pointer would have been initialized to point to cNew's myMethod by the cNew constructor.

This is the intent of virtual functions, and it works great.  So...

Back to the problem

Now suppose you've released cBase into the field, and a bunch of third-party developers have created various cNew classes based upon it.  You cannot change the interface to cBase in any way!  Nope, not even if you're careful to keep all the old methods backward-compatible.  The problem is that if you add a new virtual method to cBase, its vector table is going to get bigger.  The vector table in objects made by existing third-party code will be incorrect (because it won't have the correct number of vectors for cBase).

It is really unlikely that you'll never want to enhance cBase.  Furthermore, it is even more unlikely that you'll be able to distribute an updated cBase header to each third-party developer, and it is astronomically unlikely that they'll update their code and successfully distribute it to each of their users.  In other word, backward-compatibility with "old" third-party code is essential.  What do you do?

The solution

The solution is simple - you extend cBase by deriving from it.  You create a new class for your code's use:

class cBase2 : public cBase {...}

In your code, anywhere you can you should assume you have a cBase object, as in the example above.  If you have code which must "know" whether you have a cBase2 object, then you have to ask the object what it is.  For this you need a getVersion() method.  And you have to build this into cBase:

class cBase {
    virtual int getVersion(return 1);  // returns cBase version

Note that getVersion() is virtual.  Later, when you create a cBase2, you can do it like this:

class cBase2 : public cBase {
    virtual int getVersion(return 2);  // returns cBase version
    virtual void newMethod();          // method only in cBase2

Later there may be a cBase3, and a cBase4, and they will all return different versions.

Now that we have getVersion(), we can write intelligent code to behave appropriately with both "old" and "new" objects:

cBase *pObj;                           // object pointer

if (pObj->getVersion() == 1) {         // if object based on cBase
     // do something intelligent with "old" object
else {
     cBase2 pObj2 = (cBase2*) pObj;    // cBase2 pointer

     pObj2->newMethod();               // now can call new method

This way you will always provide support for those "old" third-party objects that may be out there.  And you can enhance the support for the "new" objects.  Having created cBase2, what do you do with your third-party developers?

Simple: you distribute the cBase2 header (which includes the cBase header) to all third-party developers.  Any developer who wants can take advantage of the new capabilities by deriving from cBase2:

class cNew : public cBase2 {...}

And the old school developers who don't want or need the new functionality can continue to derive from cBase, with no loss of support.

This technique benefits your developers, too; they might well have modules which need to detect "old" modules at customer sites, and can use the getVersion()method to do it.

That's it - please let me know if you have questions or suggestions.



flight   About Me

Greatest Hits
Correlation vs. Causality
The Tyranny of Email
Unnatural Selection
Aperio's Mission = Automating Pathology
On Blame
Try, or Try Not
Books and Wine
Emergent Properties
God and Beauty
Moving Mount Fuji The Nest Rock 'n Roll
IQ and Populations
Are You a Bright?
Adding Value
The Joy of Craftsmanship
The Emperor's New Code
Toy Story
The Return of the King
Religion vs IQ
In the Wet
the big day
solving bongard problems
visiting Titan
unintelligent design
the nuclear option
estimating in meatspace
second gear
On the Persistence of Bad Design...
Texas chili cookoff
almost famous design and stochastic debugging
may I take your order?
universal healthcare
triple double
New Yorker covers
Death Rider! (da da dum)
how did I get here (Mt.Whitney)?
the Law of Significance
Holiday Inn
Daniel Jacoby's photographs
the first bird
Gödel Escher Bach: Birthday Cantatatata
Father's Day (in pictures)
your cat for my car
Jobsnotes of note
world population map
no joy in Baker
vote smart
exact nonsense
introducing eyesFinder
to space
where are the desktop apps?