"Link in bio" is a smoker's cough

Anil Dash wrote yesterday that "Link in Bio" is a slow knife. I'd call it a smoker's cough, a nagging reminder that you're using a toxic product.

Jamie Zawinski has been blogging about this problem for years. It's in that post that I saw the perversity of Instagram giving us all exactly one link. One single hyperlink per user.

I found both those posts via links, using RSS.

Speaking of jwz.org, read the site content for 10 minutes and then look out your window at the snow or sky. You'll see some strong purple after-images.

Rasterio wheels for Python 3.8

Rasterio wheels for Python 3.8 were less straightforward than those for Fiona, where we only had to update a git submodule. The Rasterio wheels include HDF5 and NetCDF libraries that had to be rebuilt for Python 3.8 and OS X with a newer version of XCode. I recently asked the Travis CI team for a build timeout extension and was granted it – it's more than enough to build Rasterio's dependencies for each job, now – and this came in very handy: all the Rasterio wheel-building jobs on OS X finish in less than 75 minutes. Thank you, Travis CI.

Once again, I'd like to point out that I'd be rather lost if I couldn't follow the example of https://github.com/MacPython/scipy-wheels. Thank you, Matthew Brett, et al.

School open house night part 2

Whew! Another long school open house evening in the books. Bea and I spent 2 hours at one of the middle schools we're considering. It's her first choice because of friends. I know two teachers there, but I'd never been in the building before.

There's an LGBTQIA+ organization at the school and a very fun and smart group of kids representing it with a table and poster in the school gym right next to Science Olympiad and Chess Club. Fully supported by the staff as far as I could tell. Fort Collins is a bit behind the curve, but seems to be catching up.

The 6th grade Language Arts (English, we used to say) teachers are trying some new stuff that seems cool and very likely to engage my daughter. They are teaching as a team in a combined classroom. Lectures are out. Discussion and role-playing are in.

I was ambivalent about this school going in, but the staff impressed me. I'm glad I went.

Another highlight is that dinner was made for us while we were out. One of our family's standard easy dinners is pasta with a vegetable like cauliflower, potatoes, or green beans – blanched in the same pot – tossed with pesto. Arabelle nailed it.

Fiona wheels for Python 3.8

Despite being busy with family stuff, I'm bringing blogging back tonight, and I'm also updating the https://github.com/sgillies/fiona-wheels project so that I can build manylinux1 and macosx wheels for Python 3.8. It's working great and there will be a Fiona 1.8.12 release on PyPI this morning. I'm going to regret this tomorrow when I have to get up at the crack of dawn to get kids to school, I'm sure, but it feels good to think about unblocking folks who want to try Fiona on 3.8.


Ruth is traveling this week and the second half of next week. Between these trips I've got two weekends of birthday parties and other stuff to cover as a single dad. I'm hosting Beatrice's 11th birthday on the December 14 at a neighborhood pool. Ruth did most of the groundwork, but I'll be the one supervising kids and coordinating with parents. And eating leftover cupcakes.

Both of my kids are changing schools next year. Arabelle is headed to high school and Bea to middle school. This week, all the local schools are having evening open houses and promo nights for prospective students and I'm attending these, too. Not for every school, but one for each of my kids, and that's adding to the busyness. Tonight we went to Poudre High School and got a tour from one of Poudre's senior school ambassadors. Poudre is the local International Baccalaureate high school and also educates kids from the most rural parts of Fort Collins. It's an interesting mix, probably more like my own Intermountain West high school experience than what most Fort Collins kids get these days. We saw classrooms and labs, met teachers, saw the indoor archery range, learned about key hallway landmarks. "Meet me by Yoda after 2nd period" is a thing. Bea has this ambassador role at her elementary school and really enjoyed tagging along. I ran into parents and kids that I'd met when coaching Arabelle's U9 soccer team, which was fun.

Tomorrow, Bea and I are headed to a middle school open house. I'm curious to hear from the principal and meet the teachers. Immediately before the open house is the winter choir concert at Bea's elementary school. Did I mention that I'm busy this week?

Fiona 1.8.9 and GDAL 3

GDAL 3.0.0 was released in May. It has been adopted more quickly than I anticipated and lack of support for it in the Rasterio and Fiona packages was becoming a point of pain for users. Rasterio 1.0.25 added support for GDAL 3.0 in August and now Fiona 1.8.9 has similar basic support. We can build the extension modules in these packages with GDAL 3.0 and they will run almost exactly as they did with GDAL 2.4. No new spatial referencing features of GDAL 3.0 and PROJ 6 are exposed by Fiona 1.8.9.

What changes were required to the code? Everywhere an extension module calls one of the OSRImport* functions we now need to call a new OSRSetAxisMappingStrategy function to preserve the "traditional" open source GIS order of coordinates: longitude first, latitude second in common cases. This change was made in core modules and in the three existing shim modules. We had to add a new shim module to go with GDAL 3.0 to make a facade for a function that was removed from GDAL in 3.0. We try to avoid branching on the version of GDAL in Fiona and instead use the shims at build time. This binds installations of the packages to a specific version of GDAL.

Why did it take so long to make the changes? The changes required us to add builds of GDAL 3 and PROJ 6 to our CI server, which takes some iterations and time. Also the cultural knowledge of the project required to change the shim modules is scarce. There are only a few of us who understanding what's going on in there. This is certainly a problem to be overcome in the future.

The shims make the source distribution of the package fragile. There was a bug in 1.8.9 that prevented the fiona/_shim3.c file from being copied to fiona/_shim.c during installation. In 1.8.9.post1 we created a new bug that messed up copy of the fiona/_shim2.c file. These are all fixed and now users can build and install a version of Fiona on Linux or OS X that compiles with and links and existing GDAL 3.0 installation by running GDAL_CONFIG=/gdal3prefix/bin/gdal-config pip install --no-binary fiona -U fiona.

Thanks for your help and patience, everyone.

October 19, 2018: Golden Gate Bridge

I'm headed to San Francisco for work almost exactly a year after going on a family trip on which my kids and I made our first walk onto the Golden Gate Bridge. Among the photos we took are these by Arabelle, who was enjoying playing with depth of field out in the unique space of the bridge and bay and sky.



I spent last weekend in Minneapolis, my family flew to Seattle today, I'm flying to San Francisco on Sunday, and I'm planning to cross paths with Ruth, Arabelle, and Beatrice in DEN as they return. I think it goes without saying that it's unsustainable for a family to be flying around all the time. We're trying to reduce our trips and make up for them as much as we can, but this is a period of fairly intense stratospheric presence for my clan.

Arabelle is flying to LA for a week on Catalina Island with a school group in November, her first trip in a plane without me or Ruth. There is at least one kid on the trip who will be flying for their first time at age 13. My kids, who have been flying all their lives, to France multiple times, almost get it, but that first-time plane traveler is a lot like me. When I was a kid, my parents could barely afford to fly us around at all. I boarded my first domestic flight at 15 (Salt Lake City -> Dallas -> Detroit) and didn't make my first international flight (Miami to Caracas, Venezuela) until I was 25.

Air travel is both amazing (the speed, the views out the window!) and terrible (the pollution, the lines). I'm certain that it is going to be more limited in the future. Make the most of it, and give back as much as you can.


Landing at sunset in Denver