2017 (old posts, page 1)

Festa Trail

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).


Pic Saint-Loup on the left and the Château de Montferrand on the right

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 podium.

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: GeoJSON Text Sequences

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 [1]. 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 Agafonkin tells me that this is the way to do it in JavaScript:

var split = require('binary-split');

.on('data', function (buf) {
    var geojson = JSON.parse(buf.toString());

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.

parallel --pipe --rrs --recstart '\x1E' cat < data.jsonseq

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 now.

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.

[1] Streaming JSON parsers are rare and difficult to use. The author of a popular one says so here: https://github.com/lloyd/yajl.

Trail Quillan

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!


Sunrise on the course above Quillan.

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.


View from the top.

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.


Belvedere du Diable and gorges de la Pierre-Lys.

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.

Mas Amiel and Château de Quéribus

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 Bessède-de-Sault in 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.


Vineyard crossroad near Mas Amiel. Note the bump on the left horizon.

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 Dog.


Sweet wines oxidyzing in the Languedoc sun for up to a year in these demijohns before they go into a bottle.

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.


Below the keep, looking south.

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 quite uncanny.


Canigou, the easternmost major peak of the Pyrénées.

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.

In search of Ucetia

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 impressive mosaics 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.


Roman milestone. If it was from the Ambrussum site, I think there'd be a note about that.

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).


Remains of the ancient rest stop on the Via Domitia.

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 remains today.


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!


"Because of bad weather we are obliged to cancel the visits to the site Saturday and Sunday."

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 historical center.


An entrance to the pedestrian center of Uzès.

The Duché was an interesting site and there are great views from the tower.


Tour groups arriving at the Ducal Palace.

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 climb.


View to the North and the Cévennes from the Ducal Palace tower.

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.


Market square in Uzès.

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.


Cafe and shop in an arcade at Place aux Herbes.

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.

Ravin des Arcs

Sunday, 26 February, we went hiking with friends at the Ravin des Arcs near Saint-Martin-de-Londres.

This narrow canyon has been carved in Jurassic limestone by the Lamalou, a short (16 kilometer) tributary of the Hérault River.


Large pool of the Lamalou

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.


Smaller pools and narrows downstream

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.


Natural arch

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.


Fording the Lamalou

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.


Pic Saint-Loup

I found the Ravin des Arcs to be one of the more interesting natural sights near Montpellier.

Pays de Sault

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 ever since.




Bessède-de-Sault from above

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.


Road to Aunat and Rodome


View toward Col de Pailhères and Col de Trabesses

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.


Xanthoria parietina

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 France.

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.


Gorges de St Georges

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.


Dormant vineyards of Mas Amiel and the Château de Quéribus


On August 8, 2016, I blogged about arriving in Montpellier with my family and the start of our 12 month séjour. Today we're a little more than halfway through.

Thursday I picked up my Titre de Séjour from the Prefecture. The Titre de Séjour (formerly Carte de Séjour, or just CD) is a residence permit required by French law for non-European Union citizens staying in France for a longer than three months. I can now travel around the EU like any other French citizen until August 1, 2017. This is good since I'm planning to visit a few places outside France this spring like Bologna and Berlin.

Our previous séjour in 2009 opened my eyes to what less-privileged, poorly-connected people are going through when they try to establish residence in France. We stood in the same lines and waited in the same waiting rooms as African families. In 2016, immigration is much more segregated. Visiting scientists and their families get to deposit their dossiers at a much more welcoming Office Français Immigration Intégration (OFFI) annex at the university. We're presumed healthy and there are no medical exams or scans. My only time spent with other immigrants was waiting to pick up my card at the Prefecture. Immigration to France (short term, at least) is easier today for well-connected white folks. I suspect it's more difficult for others.

And now our return to the US in August is beginning to rear its head. We're signing our oldest up for her new school. Discussions with our tax preparer are starting. We have a family reunion in California to arrange. Orthodontia appointments to schedule. House repairs.

12 months is too short for a trip like this; just when we're finally settled in it's time to start planning to leave.


Chien de traineau, Mijanès-Donezan

GeoJSON-LD Context and Vocabulary Publication

The work of defining a JSON-LD context and RDF vocabulary for GeoJSON is done. Documentation on version 1.0 of the context and context, including links to the JSON-LD and RDF docs, is published at http://geojson.org/geojson-ld/.

This work has no impact on most GeoJSON applications. For JSON-LD applications it provides a default context, allowing ordinary GeoJSON to be parsed (for the most part; see the outstanding issues noted at the end of the documentation) as though it were JSON-LD in a standard way, and helps make GeoJSON elements useful in other JSON-LD contexts.

Thanks to everyone who participated in the discussions on GitHub: Chaz6, ManoMarks, Roselin, adoyle, ajturner, akuckartz, azaroth42, calvinmetcalf, cappelaere, danbri, dinizime, dlongley, dr-shorthair, dret, ekansa, elf-pavlik, emeeks, erictheise, fils, gkellogg, hobu, jasnell, jyutzler, kgeographer, kgjenkins, ktk, lanthaler, letmaik, mitar, mpdaly, msporny, p3dr0, peterisb, pietercolpaert, retog, rtroncy, rybesh, sdrees, sfsheath, sgillies, thijsbrentjens, tschaub, and tstone. Because I drastically reduced the scope of the work toward the end, some of these contributions aren't reflected in the final products.

A vocabulary for describing the temporal extent of event-like features is one of the things that I cut from GeoJSON-LD. It lives on as a proposed extension for RFC 7946 GeoJSON, with no JSON-LD requirements, at https://sgillies.github.io/geojson-events/.

Work on resolving the mismatch between GeoJSON's nested coordinates array and JSON-LD could be part of the JSON-LD 1.1 discussion. Make sure to subscribe to public-linked-json@w3.org and https://github.com/json-ld/json-ld.org if you're interested in this issue.

Port de Sète

Sète is southwest of Montpellier, at the foot of Mont St Clair, between the Étang de Thau (our largest coastal lagoon) and the Mediterranean Sea. It has an active fishing, recreation, and container port, France's second largest (after Marseille) on the Mediterranean. Montpellerians are very fond of Sète and laud its authentic character. It's a tourist destination that doesn't feel overrun by tourists. Certainly not on the day after Christmas, when we stopped in.


On the Quai Général Durand

Construction of the Port of Sète began in 1666 with funding and an edict from Louis XIV. The port was to be the southern terminus of the Canal du Midi, which gave France river and canal transport route between the Atlantic and Mediterranean, an interior route that didn't have to pass Spain. In a way it was a massive pipeline project, but for wheat, not oil. I hope that the Canal du Midi will be one of our future day trips. One can bike it using tow paths converted to paved or upaved cycling and hiking trails or go by commercial or personal boat. We passed it on the outskirts of Béziers on our train trip to Barcelona and, I read, it crosses the Orb river on a viaduct. Seeing a boat cross a river via bridge will be worth the trip. Maybe we'll be in the boat.


Plans des ports de France (1777)

Boat tours of the Port de Sète depart from the original central quai shown in the map from 1777 above, just to the lower left of the bridge. These run regularly in warmer weather and the crew and boat come out of hibernation for a few runs during the Christmas break. Ruth called and found out that whether the tours are on or off depends on weather and the number of passengers. As it turned out, the weather was fine, the boat sold out, and the tour was on. We scored good seats on the top deck of the Aquarius, a bright red and yellow catamaran with underwater windows in each of its hulls.

The 17th century civil engineers who built the port did not make allowances for automobile parking garages, but one has been installed under the canal north of the quai. It boggled my land-lubber brain a bit to be parking under the water, but of course the canal itself is a rather shallow channel dug in the solid ground between the sea and the lagoon to the north. The parking is operated by Indigo, of course, an enterprise intent on monopolizing parking stations in France and running them fairly well with decent lighting and fresh paint and seasonal music.


On board the Aquarius

The Aquarius slipped past the fishing fleet on the quai and then down the coast to the southwest, past the maritime cemetary, the amphitheatre, and to a rocky bank in shallow water where we were all invited to go below deck to peer out the underwater ports. We saw fish, though Dorade (Sea Bream) is the only species I remember. When the water is warmer, tourists sometimes see octopus on these tours.

On the way back from the rocks, the crew gave all the kids on board a tour of the wheelhouse. Bea blew the ship's horn and Arabelle got to handle the wheel. Meanwhile, the first mate entertained the adults with a variety of off-color nautical jokes.

The cruise finished with a very detailed tour of the most empty (Boxing Day, remember) port. There was one livestock freighter recently arrived from North Africa, and a wine tanker from Tangiers. We saw where the tugs and pilot boats were parked and then headed back to the quai with some jaunty song about cigales (cicadas) on the loudspeakers. We went to the nearest place, Les 2 Ramiers, for cafés and crêpes so loaded with Nutella that even Bea and Arabelle cried for mercy.

Too full to get in the car, we wandered a couple blocks to Place Léon Blum to see the famous octopus fountain. It's big and sprawling and I failed to capture it well with my phone's camera.


Octopus at the Fountain in Place Léon Blum

I'm looking forward to visiting Séte again before we leave France. Meanwhile, I've given myself a little homework: 1) figure out why Georges Brassens is such a big deal around here, and 2) watch Pépé le Moko, a prototypical film noir set in Sète.