It's time to get serious about returning to my permanent home in Fort Collins,
Colorado. We've got our tickets and have begun to pack some bags. Once again,
me and the kids are flying on one itinerary and Ruth and our dog are flying on
another. The latter is a bit dicey because the airlines may refuse to load our
doggy in cargo if the forecasted arrival temperatures are over 80 degrees. We
have picked flights to minimize the probability, but some luck would be nice.
A couple weeks ago I finally met the owner of the house that we've rented in
Montpellier. A scientist, like Ruth, who has connections with other scientists
we know. It's a small world, evolutionary biology, and full of interesting
and earnest folks. I wouldn't be surprised if we keep in touch.
I've told people at Coswos, the coworking I've joined in Montpellier, and some
of my favorite vendors and shopkeepers – basically anybody who has ever asked
where I'm from and what my plans are – that we're leaving. We threw ourselves
a party last Sunday night with friends from Ruth's lab and ate Franco-American
sliders and drank champagne, cheaper bubbly from Limoux, and margaritas.
The next four weeks will be busy. We've planned a four day hut-to-hut trip in
the Alpes. I'm hoping to do some other opportunistic trips to nearby cities.
Why I haven't been able to make it to Toulouse or Lyon, I do not know, but
I will try to do something about this. We've got a number of boxes of clothes
and other personal effects (books and bandes dessinées, aka graphic novels,
mostly) to ship. I must drink or give away the bottles of my wine collection
that we can't bring back in our luggage. There are a ton of arts and music
festivals in the region in July, too, it's really a bad time to be moving.
Friday, the 21st of July, I plan to be writing tests on the deck of my house
in Fort Collins and then switching over to grilling burgers, drinking IPAs,
watching kids play in the sprinklers, and feeling more than a little bit
sentimental about my year in France.
On the weekend of the second round of the French presidential election I, Ruth,
and our kids took a three night cruise with another family of friends on the
Canal du Midi. It was much more interesting than I expected.
The Canal du Midi connects
the city of Toulouse and the Garonne River (and thus the Atlantic Ocean) to the
Étang de Thau and the Mediterranean Sea. It was constructed between 1666 and
1681 under the direction of Pierre-Paul Riquet. By a series of 91 locks the canal steps
up from 130 meters above sea level in Toulouse to a 190 meter high divide at
the Seuil de Naurouze before stepping down to sea level in Sète. There are 57
kilometers of canal on the Atlantic side and 189 kilometers of canal on the
Mediterranean side. How to supply such a canal with water was a problem that
stumped engineers for many years. Riquet and his team found an overlooked
source in the montagne Noire and built a reservoir, the second largest in
Europe, by damming the Laudot river, a tributary of the Tarn and the Garonne,
about 20 kilometers from the summit at Seuil de Naurouze.
The canal has been expensive to maintain and was never much of a trade route,
but has found a second life as a tourist attraction. Boat rental companies,
restaurants, and boutiques are found in many of the villages traversed by the
canal. I've made a dataset with 36 points of interest along our cruise and used
it as a layer in the map below. We put in at Argens, in the Minervois region,
and cruised past some of the largest expanses of grape vines in France.
The vines on the left bank of the canal (generally north) are of Minervois,
those of the right bank, Corbières.
Plane trees were planted along the
canal in the early 1800s to stabilize the banks and reduce evaporation by
shading the water. Today the trees are dying from a fungal (Ceratocystis
platani) disease. VNP, the Voies Navigables de France, intends to cut down
every diseased tree (and this may eventually be all of them) and replace them
with resistant varieties of plane and other shade trees. We saw signs
explaining the replantation project at every long
treeless bank. Since 2006, a third of the canal's 42,000 plane trees have been
cut down and removed.
Mapbox's imagery of Capestang, a village on the canal, is out of date. We (I
work on the team that makes the satellite basemap) will update it, but until we
do it affords a look at the way things used to be on the canal. Below you see
that the canal in the village was bordered by huge shade trees. You can also
see that some of them to the right of Capestang's newer metal bridge are
We moored in a different very different Capestang from the one in the map. The
trees that lined the banks of the canal have been removed, every one. Saplings
have been planted between the stumps of the plane trees, but it will be many
years before the canal is completely shaded again.
We were a party of 10: 4 adults, 5 kids, and a dog. Our large pénichette had
4 cabins and slept 12. It was a tight squeeze at a few bridges and windy
conditions made the passages extra challenging. The canal is only 2 meters deep
at the most, thus these recreational barges displace very little water and blow
around easily. I failed at Capestang's narrow and angled old bridge on the
second day and we had to get some help from a friendly local boater. Our boat
had many patches around the edges, so apparently we weren't the only ones
having difficulty at the bridges. If I were to do this again, I'd go for
a shorter and less wide boat, especially if the group were smaller.
We were on the canal for 3 days and nights and covered a lot of distance. It's
94 kilometers from Argens to Colombiers and back and we probably did 5+ hours
of boating on each of the second and third days. This meant passing by some
villages and chateaux that would have been fun to visit. 2 hours of cruising
per day and 3 hours of walking would be more my speed.
Doing a lot of cruising did let us see a lot of interesting places on and along
the canal such as the pont-canals of Répudre
The pont-canal over the Répudre river was the first of its kind in Europe.
Traversing it was the first time I'd ever been on a bridge in a boat.
Another sight that you really have to see from on deck is the Tunnel de Malpas.
160 meters long, it was the first canal tunnel ever constructed. The Roman Via
Domitia came over the hill at this same spot once upon a time and an SNCF
tunnel for trains between Béziers and Narbonne passes underneath. I've now
passed under this hill by both train (on my family's trip to Barcelona) and by boat.
On the return trip, I got off the boat at Malpas and ran the 12 kilometers
to Capestang. The canal-side trails are well maintained and we saw many
cyclists, some of them with loaded paniers.
Le Somail is a cute little village with several nice restaurants, an ice cream
shop, and a remarkable used book store, le Trouve Tout du Livre. The old stone
bridge is typical and a tight squeeze. I had to duck to get under while
piloting and we had only a foot or so of clearance on either side.
There's only one lock between the villages of Argens and Colombiers: the 2.4
meter high Argens lock. On the downstream side of it is the canal's longest
pound. There's not another lock until Béziers. We went through this lock once
on the way out and once on the way back. It took about 15 minutes to go
through. I found the process captivating.
Boating is fun and piloting a barge was a new experience for me. There are
dozens of new skills to learn and even though I didn't master any of them, it
was fun to try. The scenery was great. The canal itself is a fascinating
artifact. If you've ever wanted to do this kind of trip, do it in May while
the weather is warm but not too hot, and do it before all the plane trees are
I'm inclined to believe the author of Python, but I decided to check. It's been
a long time since I dug into Python bytecode and I thought I could use a refresher.
Here's a small program that contains a script in a triple-quoted string. It
compiles the script to bytecode and then uses dis, the Python
disassembler, to show the
instructions in the script's bytecode. I've never done dis before!
The first anonymous string is stored as the module's __doc__ (this goes for
functions, classes, and methods as well). The unused anonymous string beginning
with "Unused" does't make it into the bytecode, confirming Guido Van Rossum's
tweet. The anonymous string beginning with "But" that is used in the string
concatenation does make it into the bytecode.
I didn't know that unused anonymous strings were ignored like this. I assumed
they hung around briefly until garbage collection got them, but Python
optimizes them away. Note: you can even optimize the __doc__ away with
There are limits to this kind of block comment. They can't be used within
brackets, for one thing.
I did another trail race today. The Festa Trail starts and finishes in
Saint-Matthieu-de-Tréviers, a town in the Pic-Saint-Loup vineyard region north
of Montpellier. It's a 3-day multi-race event. I ran the 18 km Tour de Pic
Saint-Loup with 875 meters of elevation gain in 2:36:10 (unofficially).
The French word pic is related to the English peak. According to Roger
Brunet in Trésor du terroir: les noms de lieux de la France,
pic does not, despite common characters, have the same origin as the French
puy, Catalan puig, or Occitan puech, all of which derive from the Latin
The Château de Montferrand
seems to have its origins as a Roman fort and was mentioned for the first time
in 1132 as a property of the Count of Toulouse (who I've mentioned before). It
passed into the hands of the French crown and remainded a royal fort until
Louis XIV authorised its demolition in the 17th century. We stormed the castle
during km 4 of the run.
I felt good most of the way, made it through some mild calf cramps around km
15, and managed a bit of a kick at the end. There was one steep kilometer of
going up (200 meters) to the ruined castle on the way out and one steep
kilometer coming down from the peak on the way back (190 meters), but nothing
so sustained as at the Trail Quillan. The trail was completely dry and very
rocky (caillouteux, we say here), treacherously so in several spots. There's
a layer of limestone that has splintered crazily and traversing it was like
running on the threads of a giant screw.
Festa Trail is a fun race and I highly recommend it. With time running out on
our séjour, it might have been my last trail run in France this year.
RFC 8142 is the second and final
deliverable of the IETF's GeoJSON working group. It standardizes sequences of
GeoJSON texts and and a media type you can use to tell receivers "here comes
a sequence of GeoJSON Feature objects, not a GeoJSON FeatureCollection." This
is useful because a GeoJSON feature collections must be read in its entirety
before it can be parsed . It's a blob. A text – not binary – blob, but
a blob nonetheless. A FeatureCollection becomes unwieldy as the number of
features increases. Dynamic feed-like streams of features (consider a stream of
OSM edits or stream of features extracted in real time from imagery) also need
a different kind of representation from a static array of Feature objects.
Newline-delimited sequences of GeoJSON objects are being employed by some
projects, including a few at Mapbox. In a newline-delimited sequence the
individual features must use a compact form. No pretty-printed features are
permitted. If you're aggregating features produced by other services, you must
parse them and reserialize them in compact form.
RFC 8142 describes a format for sequences of features that may be compact or
pretty-printed. Mixed sequences are also possible. The trick is that every
sequence item must begin with an ASCII Record Seperator (RS), 0x1E, and end
with a newline. Two delimiters. The first allows formatted, pretty-printed
texts within a sequence, the latter guards against truncated sequence records.
That's it. There's not a lot to RFC 8142 other than this and the definition of
a new internet media type to mark this kind of data stream.
Sprinkling RS in your file sort of turns it into a binary file. Python's
open() function, for example, does not accept newline=u'\x1e' and can
not provide you an iterator over RS-delimited records. You may have to write
your own readLine() type of function to get individual items from the
stream. It's not the end of the world, but does add some friction. Vladimir
There is already support for GeoJSON text sequences in programs that I use
often like GNU Parallel, jq, and fio. In parallel's --pipe mode, the
--recstart option will split records on RS and --rrs will remove the RS
from the output.
The current version of jq, 1.5, will read and write RS-delimited sequences if
you pass the --seq option.
jq --seq -c '.' data.jsonseq
Fiona's fio-cat will emit RS if
you use its --rs option. This is required if you want pretty-printed
features. Otherwise fio-cat writes compact GeoJSON delimited only by newlines.
The complementary fio-collect and fio-load commands accept either
newline-delimited sequences or GeoJSON text sequences.
Note that there's no recommended file extension for GeoJSON text sequences.
The format is intended for network protocols and not for files. If you do save
them to files it would be best not to use .json or .geojson as an extension
because a delimited sequence of GeoJSON (RS or not) isn't valid JSON.
Note also that while the format technically allows mixed sequences containing
GeoJSON FeatureCollection, Feature, and Geometry objects, the semantics of
these kinds of mixed sequences is unlikely to be understood by consumers.
Streams of features seems to me like the best application for this format right
Thanks to the following people and organizations: Eric Wilde and Martin
Thomson, the WG chairs; Alissa Cooper, Area Director; the RFC Editor and IETF
reviewers; Mark Baker, Sean Leonard, and Ned Freed for comments on the media
type; WG participants Martin Daly, Stephan Drees, Kevin Wurster, Matthew Perry,
,Allan Doyle, Carl Reed, Jerry Sievert, Peter Vretanos, and Howard Butler; and
Mapbox, my employer, for allowing me time to edit the doc.
The Trail Quillan, a 28 kilometer run up
and down the hills above Quillan in the Pays Cathares, was the focal point of
my winter training. It looked like it would be hard and I ran a lot of stairs
and hills to get ready, but it kicked my butt anyway.
After visiting nearby Mas Amiel and the Château de Quéribus my
family and I spent Saturday night at a hotel near the starting line in Quillan.
I hopped out of bed before dawn to eat breakfast and went to the town's rec
center for my dossard (the bib with my number) and coffee. I was pleasantly
surprised to find two large, American-style, tanks of hot coffee!
The weather was crisp, 2°C just before the 8am start, but clear and calm after
nearly a week of wind and rain. Unlike last year's Fort Collins Marathon, it
warmed up nicely during the race and I was never cold.
The course was tough. We found ourselves hiking and running in snow at the top
and in mud of all kinds below the snow line. Frozen mud, snowy mud, sticky mud,
slippery mud, mud mixed with running water. There was one short stretch of pine
needle-strewn singletrack, but the rest was mud, snow, or rock.
The course was steep! According to my tracker we climbed 200 meters during km
8 and descended the same amount during km 13. There were 6 kilometers with more
than 100 meters of elevation gain and 5 kilometers with more than 100 meters of
elevation loss. All together there was 1500 meters of cumulative elevation
gain, and since we finished at the starting point, the same amount of
descending. 5000 feet is more than twice what I've done in the Black Squirrel
or Trail des Calades.
The penultimate descent down the rocky gorges de la Pierre-Lys was a lot of
fun. The height and exposure were exciting and tribal beats from a local drum
line in Belvianes-et-Cavirac, the town below, kicked it up another notch.
I've never tried to run at race pace in this kind of mud before. It sucked a
lot of energy of out my legs. I think that I did not do quite enough hill
training this winter, either. My legs were completely spent at the end and I
was sore all the next week.
Trail Quillan was a fun race, well organized, and attracted a number of very
competitive runners. Surviving it makes me think seriously about registering
for the Blue Sky Marathon in October,
a longer but flatter and (I expect) drier trail that I already know well.
On March 25, I and my family loaded up our little car for an overnight trip to
Quillan in the Aude (11) Départment. Much of the drive retraced our route to
February. This time, however, we actually pulled off the highway near Maury and
drove to the Mas Amiel vineyards and
winery. Mas Amiel is well known for its sweet wines and also makes a bunch of
table wines that I've enjoyed.
Sadly, we found the winery exceptionally closed when we arrived. We weren't
entirely disappointed because the grounds were interesting and we were well
received by the vineyard's free-ranging mascot, a friendly Australian Cattle
After being subjected to the treatment depicted above these sweet wines are
practically immortal, remaining delicious for 40 years or more.
After leaving Mas Amiel, we made a trip to that bump on the ridge above it that
I mentioned above: the Château de Quéribus. The parking
lot and the entrance to the site are only about 25 minutes from Mas Amiel.
We arrived just before closing; the sole staffer left as we hiked in and we
were alone in this 1000 year-old Cathar fortress.
My family and I have been reading and listening to a lot of high fantasy
stories on this trip to France and we love trips to these old castles. It's
easy to imagine the gold and red flags and the cross of Toulouse up here and
the banners of France below. The limestone cliffs remind me so much of Logan
Canyon, where I hiked and camped when I was the same age as my kids, it's
Before dark we headed down from the ruined castle and paused in Maury to visit
the local wine cooperative. We found a fairly raging party in the tasting room.
Ruth and I picked up a carton of Maury schist-based syrahs and some sweet wines
and then we continued up the road to the Gorges de la Pierre-Lys and Quillan. The
next morning I would be heading to the starting line of the Trail de Quillan.
At the end of last week I read that there was an interesting Roman site being
uncovered in Uzès (pronounced "Oo-zez"), once called Ucetia, and that impressivemosaics
would be shown to the public this weekend before they were dismantled and boxed
up to be archived or displayed elsewhere. I left Montpellier this morning to
see the ancient site of Ucetia. Uzès is 85 kilometers, or about 75 minutes,
from Montpellier. I was alone on this trip, because Ruth and our kids are in
Paris for the weekend.
Along the way I stopped at Ambrussum, a site I visited in 2009. There's a new museum at
the Ambrussum site. It was closed for lunch when I arrived, which I expected
because lunch, epecially on the weekend, is a big deal in France.
According to signs at the site and Wikipedia the Romans
standardized the construction of rest stops every 20-30 kilometers on roads
such as the Via Domitia. The foundations of such a stop have been excavated
at Ambrussum. It was halfway between Nemasus (now Nîmes) and Sextantio (now
Castelnau-le-Lez, the village across the Lez from Montpellier).
First century AD truckers bound for Narbonensis or Hispania who stayed at this
station would have crossed the Vidourle on an impressive 9-arch bridge. In
1740, there were 3 arches. When Gustave Courbet painted it in 1857, there were 2. Only one arch
I forgot to take pictures at the modern Ambrussum rest stop on the Via Domitia
when I pulled off to fill up the tank of my car (€1.45 per liter). It's the
first weekend of Spring Break for families with kids in Zone C (including
Montpellier, Paris, and Toulouse) and the rest stop was very busy.
After leaving Ambrussum I kept going past the usual Nîmes exit and got off
the A9 at Nîmes Est. I took the D127 to Poulx and then the D135 and D979 to the
gorge of the Gardon and the Pont Saint-Nicolas, a 13th
century bridge over the Gardon upstream from Pont-du-Gard. Beyond this bridge,
it was a only a few kilometers through the vineyards to Uzès.
I found parking just outside the center of Uzès and
hustled to the archaeological site to find a bunch of disappointed French
folks and this sign. Mince!
Happily, Uzès lives up to its reputation as a town with much to see and do.
I tasted a couple white wines at Domaine Saint-Firmin, right around the corner
from the site, and bought a carton of bottles. After this I found my way to the
The Duché was an interesting site and there are great views from the tower.
The stairway to the tower had 125 steps and I shared them with a gaggle of
older French tourists. It was funny listening to them heckle each other on
The town's market square, the Place aux Herbes, was quieter than usual on
account of the rainy weather, but I still enjoyed exploring it.
All around the edge of the square were arcades occupied by shops and cafes.
I've seen these kinds of arcades in Torino, Italy. There's nothing quite like
them in Montpellier.
There are definitely no public spaces like this in Fort Collins, Colorado.
I failed to find Ucetia on this trip but I did discover that I'm a fan of Uzès.
I would love to bring my family here if there are other public tours of the
archaeological site this spring.
Sunday, 26 February, we went hiking with friends at the Ravin des Arcs near
This narrow canyon has been carved in Jurassic limestone by the Lamalou, a short (16 kilometer) tributary of the Hérault River.
The Lamalou has formed a short series of lovely falls, slides, and plunge
pools. Like the nearby Hérault and Lez rivers, the Lamalou is greenish.
This canyon is called the Ravin des Arcs because of this large natural arch
spanning the channel and other smaller arches in the adjacent cliffs.
These pools look like the ideal place to spend a hot summer afternoon, do
they not? Sadly, because of its short course and the lack of rain in the
summer months, the Lamalou dries up in May or June. You can see in the
following photo that the water level has already been dropping quickly in
February. We had no trouble crossing with bare feet.
On the way back to our cars at the end of the afternoon, we had a very nice
view of the Pic Saint-Loup, the 2000 foot promentory that overlooks
Montpellier, from the northwest. The source of the Lamalou is at the base
of the mountain.
I found the Ravin des Arcs to be one of the more interesting natural sights
We spent the first week of winter break with friends in Bessède-de-Sault,
a little village of 50 people on a small plateau in the foothills of the
Pyrénées. There's not much going on in the village other than a couple dairy
cow operations, sheep herding, and vacation homes. There's not even a tabac or
boulangerie. The closest stores are in Axat, 15 km down the Aude River gorge,
or Mijanès, 15 km up at the head of the valley. Our friends restored a old
house 40 years ago and have been spending summers and winter vacations here
I went for several long runs in the snow. The forest here at 900-1500 meters
elevation is a mix of evergreen and deciduous trees. Empty chestnut husks still
cling to the trees, giving the mountainsides a distinct ruddy color.
Spring is yet a few months away in the Pays de Sault. The brightest colors
I saw in the woods were these abundant yellow-green lichen.
This was largely a ski trip and we skied 3 days at Mijanès-Donezan, a tiny ski
station on the east side of the Col de Pailhères. It was like going back in
time: Donezan has only surface lifts and a 3-day adult pass costs only €50.
A glass of beer is only €2.50. The mountain and its trails is about the same
size as the front of Eldora (Challenge Mountain). One short surface lift, what
French skiers call a tire-fesse, and then a longer one take skiers from the
base at 1500 meters to 2000 meters on a shoulder of Pic de Canrusc (2133 m).
Our first attempt to ski was denied due to rain, not unusual in the Pyrénées.
Conditions soon improved: 8" of fresh snow fell on Wednesday, followed by
3 straight days of sunny and mild weather.
On every trip to the station, we passed beneath the ruined Château d'Usson. The region is dotted
with 11th and 12th century fortresses, remnants of the region's struggles
against the Pope and France. This part of France might be Catalan or Spanish
today if not for the defeat of the Count of Toulouse and the King of Aragon in
1213 during the Albigensian Crusade. The red and gold of
the royal arms of Aragon can still be seen today in emblems of southwestern
The Albigensian Crusade was a five decade program of Catharist Christian
extermination carried out by the Roman Catholic Church and its military allies,
eventually including the King of France. Hundreds of thousands of people were
condemned as heretics and murdered in this corner of France. 20,000 were
massacred on 22 July 1209 during the Sack of Béziers.
Bessède-de-Sault is two hours south of Carcassone, two and a half hours
southwest of Béziers. Both the D117 and D118 routes pass by and through
spectactular limestone badlands. I took photos of the Gorges de St Georges, but
its essence mostly evaded my G4's camera. The Gorges de Galamus
is another that's popular with canyoneers and vacationers looking for a place
to cool off in the summer. The Gorges de Joucou
is the closest to Bessède-de-Sault and one I'm eager to see. That web page
about it is a work of love.
Many things about this part of France remind me of my favorite places in the
Intermountain West of the United States: the wildness, the rock formations, the
mixed grazing-forestry-tourism economy. Towns like Axat and Quillan have plenty
in common with Salida, Colorado or Dubois, Wyoming.
I'm coming back to the region at the end of March to run in a race at Quillan.
The course goes up and over and around bluffs like these ones outside Maury.
I'm hoping to do a little bit of wine tasting and shopping at Mas Amiel and
other Maury vineyards on the way.