Examples are not Normative

Once, when I still had the energy, I was reading an Open Geospatial Consortium specification document, and found an inconsistency between a directive stated in the text, and the examples provided to illustrate the directive. This seemed pretty important, since most “Humans” use the examples and ignore the text, so I raised it with the author, who replied to me:

“Examples are not normative”

To me, this seemed to summarize in four words everything there was to dislike about the standards community: dismissive, self-referential (“normative”? really?), and unconcerned with real-world practice. One of the reasons I no longer have the energy.

Cheap, Open and Innovative

Here’s a talk I gave on innovation and components at the National Association of Broadcasters this spring.

Download MP4.

Open Source and the Spatial Web

Just to balance out the politics, here’s a nice intro talk I did for GIS folks at URISA earlier this spring. What’s open source, how does it work on the web, who is using it? In 20 easy minutes.

Government & Broadcast Media vs BCTF & Facebook

British Columbia is currently in the midst of its every-five-years labour relations tilt-up between provincial government and the teachers union, the BCTF.

Leaving aside the merits of any particular side’s arguments, I’ve been struck recently between the quite different messages I’m receiving about the dispute via different communications paths.

Via the broadcast media (TV, radio, newspapers, all the organs with a single publisher) I’ve been getting a pretty standard he-said-she-said message, in which the official spokespeople of both sides give their say, and the focus tends on dry talk of fiscal matters. Pundits talk about the political interests of each side, and about who is “winning”, the sides themselves engage in rhetoric that tends towards the abstract and rhetorically overblown.

If they are looking only at the broadcast media, the government can probably tell themselves they are winning, mostly. The conversation tends towards “affordability” and wages, with a lot less focus on working conditions, class size, class room composition, the kinds of things your kids actually experience when you drop them off every day.

Now, look at Facebook.

Let me start this off by noting that I am not a big Facebooker. I got an account some time ago, added a few dozen high-school and college friends, a handful of current acquaintances: I have just 41 “friends”. But even that small pool includes two school teachers, and probably quite a few friends-of-school-teachers.

And so I have gotten,

Pictures of friendly teachers on the picket line,

Sandwich board preparation,

Event information.

I’ve also had the opportunity to read longer-form descriptions of what teachers feel about the dispute and the state of the classroom, written by teachers themselves, not by the press officers of the BCTF. (Due to the “walled garden” nature of Facebook, these deep links into Facebook content may not work for everyone, apologies in advance.)

There’s really no comparison. The teachers are getting personal, moving messages delivered directly to me in real time via my social media feeds. The government is getting dry, numeric messages delivered to me if I happen to have my radio or TV on.

Traditionally teachers have always gone into these disputes with a bit of an advantage – people know and have personal connections to their children’s teachers. With social media, that traditional person-to-person advantage is magnified ten-fold and more. Now even citizens without children in the system can get direct, personal messages from the teachers that they know, directly or indirectly. Even if you don’t know a teacher, you surely know several people who do.

The government picked a fight with teachers assuming they could win a wedge issue by smacking down a public sector union long typecast as “troublesome” and “militant”. I think they could end up getting a worse black eye than they ever imagined, via the social media feeds of the thousands of teachers they’ve made enemies of.

Postscript: This isn’t just about message, it’s about messengers and population size. There’s 41K BCTF members, that’s a lot of people in a province of just 4M. BCTF members can create a lot of social media signal, compared to the professional communicators in government. I’m sure the government would like to have a great social media presence on this issue, but there aren’t 41K government communicators spread out nice and uniformly through every community in the province. They just don’t stand a chance.

Postscript 2: As if to hammer home the point, this post, which yesterday received a couple hundred views after I posted it to twitter, has received 3 times the traffic today after a teacher shared it on Facebook.

Introspection Double-Shot

Davy Stevenson has a great post (everyone should write more, more often) on a small Twitter storm she precipitated and that I participated in. Like all sound-and-fury-signifying-nothing it was mostly about misunderstandings, so I’d like to add my own information about mental state to help clarify where I come from as a maintainer.

First, PostGIS is full of shortcomings. Have a look at the (never shrinking) ticket backlog. Sure, a lot of those are feature ideas and stuff in “future”, but there’s also lots of bugs. Fortunately, most of those bugs affect almost nobody, and are easily avoided (so people report them, then avoid them).

When we first come up an a “major” release (2.0 to 2.1 for example) I expect lots of bugs to shake out in the early days, as people try the new release in ways that are not anticipated by our regression tests. (It’s worth noting that the ever-growing collection of regression tests provides a huge safety net under our work, allowing us to add features and speed without breaking things… for cases we test.)

My expectation is that the relative severity of bugs reported decreases as the time from initial release increases. Basically, people will always be finding bugs, but they will be for narrower and narrower user cases, data situations that come up extremely infrequently.

The bug Davy’s team ran across broke my usual rules. It took quite a while for users to find and report, and yet was broad enough to affect moderately common use cases. However, is was also something the vast majority of PostGIS users would not run across:

  • If you were using the Geography type, and
  • If you were storing polygons in your Geography column, and
  • If you queried your column with another Polygon, and
  • If the query polygon was fully contained in one of the column polygons, then
  • The distance reported between the polygons would be non-zero (when it should be zero!)

It happens! It happened to Davy’s team, and it happened to other folks (the ones who originally filed #2556) — I was actually working on the bug on the plane a couple weeks before. It was a tricky one to both find and to diagnose, because it was related to caching behaviour: you could not reproduce it using a query that returned a single record, it had to return more than one record.

If I was prickly about the report from Davy:

And pricklier still about the less nuanced report of her colleague Jerry:

That prickliness arose because, on the basis of a very particular and narrow (but real!) use case, they were tarring the whole release, which had been out and functioning perfectly well for thousands and thousands of users for months.

Also, I was feeling guilty for not addressing it earlier. PostGIS has gotten a lot bigger than me, and I don’t even try to address raster or topology bugs, but in the vector space I take pride in knocking down real issues quickly. But this issue had dragged on for a couple months without resolution, despite the diligent sleuthing of Regina Obe, and a perfect reproduction case from “gekorob”, the original reporter.

That’s where I’m coming from.

I can also empathize with Jerry and others who ran across this issue. It’s slippery, it would eat up a non-trivial amount of time isolating. Having had the time eaten, a normal emotional response would be “goddamn it, PostGIS, you’ve screwed me, I won’t let you screw others!” Also, having eaten many of your personal hours, the bug would appear big not narrow, worthy of a broadcast condemnation, not a modest warning.

Anyways, that’s the tempest and teapot. I’m going to finish my morning by putting this case into the regression suite, so it’ll never recur again. That’s the best part of fixing a bug in PostGIS, locking the door behind you so it can never come out again.