black hat sessions I have attended, translated into their wizarding equivalents

introductory OpenStreetMap politics

None of the following will be of much interest to people already familiar with OSM, except perhaps as an opportunity to take offense. The internet has plenty of those; I encourage you to trust me when I say that I mean no disrespect. I offer this both to satisfy my own commitment to write more and because I’ve recently been thinking that saying things that seem obvious can be important. Sometimes they turn out not to be that obvious after all.

Mike Migurski has a characteristically thoughtful post about OpenStreetMap and how he feels the community must adapt to be more welcoming of automated edits (“robot mappers”) and communities focused on improving the map for emergency response (“crisis mappers”). He characterizes the interests of these communities as being at odds with the original participants in OpenStreetMap, which he names “craft mappers”.

In comments, several OSM doyens object to this characterization even while betraying some of its truth: Frederik Ramm cops to the project’s import as a social mechanism, and Richard Fairhurst (who I hasten to add seems like he might be the most reasonable person ever to use the internet) extolls the project as a vehicle for personal expression and empowerment.

One has to admit that this is a bit of stacked deck. Crisis mapping is enormously important but it’s also a rhetorical atom bomb. Saving lives is always going to be more important than preserving the hobby of a few map obsessives.

So let me complicate Mike’s typology by adding one more constituency: passive users of OpenStreetMap data. Naturally I am thinking of Mapbox customers, but also people using MapQuest and Mapzen and Carto and Maps.me and countless other businesses. It’s not entirely clear to me how much the earliest mappers of OSM care about their efforts finding use, or whether they are content to build a beautiful scale model of the world. The project’s relative inattention to building consumer-friendly services has always seemed to me an intelligently-chosen strategy of allowing the competitive market to handle distributing the project’s achievements. But I suppose indifference is an equally plausible explanation.

Still, I don’t think there can be any doubt that an enormous number of people benefit from OSM as mediated by commercial entities like Mapbox. Anyone who owns a smartphone can understand the growing importance of geodata. Finding the nearest coffeeshop is a modest benefit compared to being pulled from a collapsed building by rescue workers, but it happens considerably more often. It’s reasonable to be wary of equating profit with good, but commerce generally does indicate that someone is having their needs or wants satisfied. And there’s plenty of money in maps.

This community has no meaningful franchise within OpenStreetMap, and is instead represented by the commercial actors who serve them (:waves:). Those actors command both the resources and resentment you might expect of profiteers in a volunteer community: valued for the contributions of effort, software and money that professionalization affords, but viewed with understandable suspicion as to motives. We can do a lot of things, but people are quick to assume that we are doing them for bad reasons.

It is not a very democratic circumstance, but no one claimed otherwise: OpenStreetMap is often referred to as a “do-ocracy”, implying that those who contribute work have outsize influence. Fair enough, but this means that when the work that must be done includes discussion, conflict that amounts to a veto is the overwhelmingly likely outcome.

And that means that stasis is the order of the day. A slowly growing map, best in places where people have enough time and money to support a particular type of eccentric hobbyist. Across from them, another group of professionals, this one anxious to build the map everywhere, and quickly, before the next earthquake or funding round.

Everyone involved is as earnest and passionate as you might imagine, but there are probably only a few hundred of us bothering to write heartfelt blog posts and send snarky tweets from conference sessions. Oblivious to all of this are the overwhelming majority of the tens of thousands of active mappers; the tens of millions of people using OSM data without knowing it; and the billions of people who could be safer, or richer, or freer if OpenStreetMap or a project like it became the understood commons where we map our shared world.

I think mapping is a great and interesting problem, but it’s my job, not my hobby. Perhaps this makes it too easy for me to follow my utilitarian open data beliefs and say that OSM should be built as quickly and unselfishly as possible. But there it is.

geocoding your way to a great vacation

The road had descended steeply into the valley, and if there was a river anywhere near, it seemed like we would find it soon. There were even a few signs for a dock, but by that time we were suspicious. The people of Skradin would have you believe that their great civic passtime is standing on street corners, wearing t-shirts emblazoned with the letter P and proclaiming the availability of free parking for ferry passengers. It seemed suspicious. Besides, Google told us the ferry was over one more mountain. Nice try, Skradinze.

Our rented VW diesel leapt up the incline, no doubt leaving unimaginable pollutants in its wake. At the bottom of the hill a construction worker made a sort of :no_good: gesture but maybe he was communicating with a colleague behind us? We proceeded onward toward the pin. The road became one way, not too unusual for this part of the world. Some trees were growing into the road; I rolled up my window. Soon the gap became so small that we worried about our mirrors. But the pin urged us on.

Eventually we reached the end of the alley. The walls had closed in. There were a couple of driveways headed up to estates on the hill to our left, so steep that a scooter might tip backward. Backing out looked terrifying: to our right, footpaths ramped down from, then parallel along the road. With no guardrails in evidence, a misplaced wheel could fall into several feet of empty air.

I was panicking, but Steph got out of the car and eventually guided me through a many-, many-point turn (restarted three times). The owner of an adjacent house looked on disapprovingly, convinced with good reason that an idiot was about to crash into her house at low speed.

Obviously you should not ask me for advice about driving when abroad. But thanks to work I can tell you exactly why this happened, and how you can spot the circumstances that might produce similar predicaments for you.

We had geocoded the ferry, plopping its address into an app’s text field and relying on the location to which it was matched. Results from such a service can be divided into two levels of quality: address point and interpolated.

Point geocoding works the way you might imagine. If you put in “150 Main Street”, the system finds the coordinates associated with the building at that address and returns them. Exactly what that spot represents can vary. Sometimes it represents the land parcel, sometimes the building’s rooftop, sometimes even the entryway.

Point geocoding results are the best kind. But point geocoding datasets are never comprehensive. People build new structures all the time, and it’s hard to drop pins for them all in a prompt manner, particularly since address numbers aren’t visible from satellite imagery.

So virtually all geocoders fall back to interpolation when they can’t find a point to match a query. An interpolated dataset includes a map of road network line segments. Each segment record has the road’s name, a start and end number, and whether the odd-numbered addresses go on its right or left side. This lets the system make an informed guess about an address location when no point is available. If a segment named “Main Street” starts at 100 and ends at 200, then a query for “150 Main Street” will be placed at its middle.

This works well a lot of the time. But of course addresses are not spaced perfectly evenly along roads. Some buildings are wider or thinner than their neighbors. Some blocks have several buildings clustered at one end, followed by empty space.

Geocoding data like this is often collected by state or municipal authorities and stitched together into national and international datasets. Those authorities collect it for different reasons: taxes or emergency services or road maintenance, for instance. So it’s common to have the level of quality vary by location even within a single country or region.

And quality tends to be worse in rural areas. There are fewer government agencies managing and maybe-digitizing those places. Businesses can’t make as much profit from those areas, so there’s less money sloshing around to fix problems. And everything is spread out: a so-so interpolation result can be off by a few hundred feet on a city block, or several miles along a farm road.

The interpolation data for our Croatian ferry terminal just wasn’t very good. And there probably wasn’t any data at all for the small houses that I nearly drove into.

In the abstract, this might not be of much interest to people who don’t work on geocoders all day. But it’s worth keeping in mind for your next vacation: if you get a result that doesn’t land on a rooftop, it might pay to be suspicious of the next results, too. At the very least, I recommend paying close attention to any non-obscene gestures that you see construction workers making.

century

I rode my bicycle a hundred miles yesterday, and so yes, this is mostly an extended humble-brag. But it is also a mark of how much has changed since my first, ecstatic road bike experience.

A down pedalstroke no longer seems to make the ground leap past me, and my legs no longer feel like springs ready to launch. In retrospect, I got what I wished for in that post, a melding of body and bicycle: a fall two years ago means my collarbone is now built with lightweight, precisely-machined titanium (alas, my bike frame is still mere aluminum). Having wishes granted is fraught.

But I still love being on a bike, and I understand it a bit better than I did. Certainly I understand my limitations better: I am not built to be a great cyclist. Too many college days in the gym, adding muscle to protect myself for an awkward but already-concluded adolescence. These days too much mass, period. The great cyclists are hugely tall and nearly skeletal, save for the enormous engines of muscle between their knees and hips. I’m not built like that.

More interesting than that is the revelation of a body’s limits. This is Charles’ insight, really. But a bicycle makes it easy to understand yourself as a machine, to deplete your metabolism before breaking your body in a away that’s hard to achieve when running or doing most other athletic things. The air cools you and there’s little stress on your joints. You can adjust gearing to manipulate the difficulty of the task. Really, you can just keep going until you run out of fuel. If you forget to feed yourself every 20 miles or so, you will fall to pieces, but the brief delay of digestion makes it hard to remember this. Which is why I bonked around mile 60, shortly after we had climbed Sugarloaf Mountain.

Well, no matter. Matt and Charles were patient with me as we stopped in the shade near a park, and a few miles later we sat down to lunch at a restaurant in Poolesville. I consumed a digusting amount of Coca-Cola at a pace exceeded only by my heart rate, which refused to slow down. I ate my club sandwich so fast that my throat still hurts today. Afterward I felt a lot better.

The last 40 miles were not pleasant, exactly–the human butt is not meant to sit on a saddle for that length of time, and a pinched nerve in my neck meant that the skin at the top of my back was numb until this morning. But I took better, steadier care of myself after lunch, and arrived home with an odometer showing a distressing 94.5 miles.

Steph had gotten me some century-related birthday gifts two years before, but schedules and injury had made it impossible. This was a long-deferred goal. Matt had promised an 85 mile ride, which we had (accidentally) exceeded. And Charles had headed down to Hanes point when we reached 15th Street to put in the necessary laps to hit three digits.

So I trundled up and down the Met Branch Trail a few times, watched my bike computer font get the smallest it’ll ever be, then laid down on my living room floor for an hour. Today I feel fine, though I can’t tell if it’s good or bad that the impact on my knees, butt and neck seem to be the same for a 40 mile ride and a 100 mile trip.

fortress: shed

I am already failing badly at Iron Blogger. Should I hit publish on that post in drafts that I wrote months ago but which might upset my family? Is that valuable self-expression or just narcissism?

Well, we’re going to ignore that question for another week, because it turns out I haven’t introduced you to my shed.

Some of you may not realize this, but when you get close to completing the process of purchasing a house your realtor will prompt you to issue some ridiculous demands to the seller, as if you have encountered an unusually boring genie. Typically your request will be for a novelty appliance the seller secretly regrets purchasing, or maybe some furniture. It’s considered impolite to ask for pets, and requests for children should only be attempted when buying from particularly large families.

Well, Steph and I asked to build a shed. The place came with a parking spot, but we don’t have a car or much desire to haul our bikes up a flight of stairs every day. The building is a duplex, so we had to get the neighbors’ okay to build a hulking bike receptable. They are kind people and, better still, maybe did not quite realize what they were agreeing to.

We built a mighty shed, thanks in large part to help from Charles, Kriston and Ben. And yes, we used a kit. But that was just the beginning.

First, the physical security layer. Some steel pipe, threadlock, wood screws and creative reuse of the “SOLD” sign our realtor repeatedly failed to pick up produced a serviceable indoor bike rack.

bike rack

But obviously my heart lies with the electronics.

led strips and infrared sensor

LED strips are affordable and already have resistors and adhesive backing in place. All you need to do is supply twelve volts. That happens to be the voltage of most automotive and marine electrical systems, and consequently also a lot of battery technology. But more on that in a second.

The white dome zip-tied to the cross bar is a passive infrared motion sensor. For $3, it works surprisingly well. The cable running up from there goes to a photoresistor. The apex of the shed’s roof is made of translucent plastic to provide illumination during the day. The photoresistor and motion sensor ensure that the lighting system only activates when someone is in the shed and it’s dark out.

arduino/solar controller

This gadgetry runs down to an Arduino and associated hardware like a MOSFET, a comparator, a trim pot. The Arduino spends most of its life asleep, consuming as little power as possible. But it wakes up a few times a second to see if there’s any business it needs to attend to.

Above it is the solar charge controller. That’s the gadget that sits between the solar panel and battery and the things you’re powering with both. This is a particularly cheap and crappy controller, but it seems to work fine. It’s connected to a sealed lead acid battery on the floor and, on the roof:

shed roof

This guy. My eBay history says I paid $50 for a 20 watt panel back in 2014. Honestly, it’s hard to find units rated for so little power these days. But this is about enough to keep the battery topped up. The arrangement works well, though on the coldest days of winter I’ve learned I need to take the battery inside to keep it from freezing and suffering permanent damage.

The final ingredient is an underwhelming electronic door lock. It wouldn’t survive an intruder’s boot heel for more than a stomp or two, but it might make enough ear-splitting noise before then to alert us. I have an old fire alarm bell from Community Forklift and an RFID module waiting to be installed. But not every project can be a shed project.

If only it could! But they aren’t all winners. Shed telemetry, in particular, has proven tricky:

temp sensor

The obvious need for real-time shed temperature readings, published to the internet, can no longer be ignored. But doing this without draining the battery turns out to be tricky. I’ve got some new ESP8266 Arduino clones in hand. If shed telemetry proves to be viable, you’ll be among the first to hear about it.

universal basic income

UBI is getting a ton of attention these days, and on the whole I’m glad. Smart people I know who care deeply about social welfare have been quietly nursing this dream for a long time, and I respect the depth of their thought and commitment. One friend is even writing a book about UBI! I would like to see a greater share of society’s wealth go to the poor, and this seems like a mechanism for achieving that goal that is worth investigating.

This is not to say that I’m a believer. Untested ideas for social improvement generally look pretty good compared to the ones we’ve actually implemented, which have somehow all turned out to be complicated and horrible. And I’ve known enough people with serious problems to call myself a paternalist without discomfort. The dignity of financial self-determination sounds great on paper, and saying that some people can’t handle it does not. Alas, personal experience has made the latter conclusion inescapable to me.

But I don’t want to talk about that today. Really, I want to talk about the deeply silly people from my own culture who are driving this policy moment. The nerds have discovered UBI.

There’s no better spot to observe this phenomenon than Hacker News, a site that shares Reddit’s basic worldview but is more brainy, shy, and — thank goodness — ashamed of its sexuality. HN is great because threads about, say, astrophotometry fill up with people whose PhD theses were about a _similar_ kind of laser, and they think the way these researchers cooled the dielectric here is really quite clever. It’s terrible because basically everything else is about Soylent or Bitcoin or buying Soylent with Bitcoin.

(Okay, that’s a cheap shot. These days it’s about how you could write Ethereum blockchain contracts to distribute Soylent.)

HN is populated with smart people who work at software startups, most of whom live in the Bay area. Many of them are very excited about UBI. There are nineteen pages of results for the first relevant phrase I tried. It has become a subject of sufficient fascination in the community that Y Combinator, the incubator that birthed and maintains Hacker News, is investing in a series of experiments to evaluate UBI’s viability. They just announced their first UBI director and pilot program, in fact.

This is all to the good. Wealthy people are going to give some money to poorer people to see if it helps them. I bet it will! Good for them.

But at the risk of ruining a good thing, I can’t help wondering why my fellow software developers find this idea so interesting. From that post:

One reason we think it may work is that technological improvements should generate an abundance of resources. Although basic income seems fiscally challenging today, in a world where technology replaces existing jobs and basic income becomes necessary, technological improvements should generate an abundance of resources and the cost of living should fall dramatically.

When Sam says “technological improvements”, I don’t think he means better cookstoves in rural China. I suspect he means the kind of stuff that Y Combinator is funding. Software stuff, mostly — probably a bunch of machine learning projects that promise to finally invent a machine that does more than rotate, plus maybe one or two discount-rate materials science startups (I hear you can make quantum dots in room temperature water these days).

He might be right! But even if he’s not, what glorious hubris.


Imagine meeting a child running a lemonade stand. She’s proud of her lemonade, and why not?

“In fact,” she says, “I think there’s a pretty good chance that this lemonade is going to be the only thing that people drink from now on. I mean try it.”

You do. You have to admit it’s pretty good.

“On the whole I’m excited and humbled to have finally solved the beverage problem. But it won’t be an easy transition for everyone! I mean, for me it will be, I’ll be fabulously wealthy, ha ha.”

It seems polite to join in the laughter so you do.

“So I’ve been thinking,” she continues, “That the responsible thing to do is to invest a portion of my profits into researching how to remediate those negative effects. If I don’t, I think it’s pretty likely that the children of soda manufacturers, for example, will wind up dying in the streets. And before they die, they could riot. It would be hugely disruptive.”

You remark that that sounds like it would be bad for business. She locks eyes with you with a sudden intensity, in way that inescapably says: I knew you would understand.


Imagine thinking you and your buddies are so smart that your efforts are going to make most other human endeavor pointless. It must be sort of overwhelming. I’d probably feel compelled to hire a postdoc to do something about it, too.

Obviously this is not the only reason people support UBI. It’s not even the only reason people in the software industry support UBI! But, knowing human nature and my industry’s hilarious track record at introspection, I do think it’s possible — juuuust possible — that some programmers have been driven by self-regard into a historical materialist analysis under which their superior intelligence transforms society and creates a permanent, pitiable underclass. UBI is both a compassionate response to this sad calculus and, coincidentally enough, a mechanism by which the vast majority of our fortunes and lifestyles can escape disruption.

Well, I wish us all luck. At the moment there is no reason to believe that any of this is happening whatsoever. But it does seem like the robot car thing might work out.

Still, if you’re worried about the technology industry further immiserating the poor, I would pay less attention to Uber ordering LIDAR units and more to them inviting their drivers to finance their vehicles instead of spending capital on a fleet. I agree that autonomous applications driven by deep learning models written in TensorFlow are much more exciting, but if you really want to avoid screwing over the little guy, Excel spreadsheets are probably the first place to look.

iron blogger

My friend and former colleague Paultag has challenged me to participate in a scheme he calls Iron Blogger, which nudges people to blog by fining them $5 per week if they don’t. More posts than usual should follow! And no, this one doesn’t count.

be gentle to their servers and mean to their lawyers

I didn’t like this article about ethical screen scraping very much, and said so on Twitter.

Well, you asked for it.

Screen scraping is the automated collection of information from the web. For our purposes, let’s assume it’s public information. Stuff you can load in your web browser, using an incognito window and a pasted URL. Stuff meant for ungated human consumption.

When might it be unethical to systematically collect this information, which is being published freely? I can think of a few scenarios that might qualify. If your use of the resource makes it unavailable to others, that might be unethical. This could happen if you hammer the server, but it could also happen if you mirror and resell a database that someone has spent money amassing and maintaining, undercutting them and destroying the model that sustains the resource for others.

What if the owner simply doesn’t like the way in which you use their information? Some people think this is a workable way of limiting how information is used. For example, they feel that public tweets shouldn’t be quoted by journalists if the tweets weren’t written with widespread distribution in mind. In a screen scraping context, a realtor site might be fine with you shopping for a home but less excited about your collecting price data to power an analysis of gentrification.

I think that these kinds of implicit rules about how information is used are at best impractical. Well, okay, that’s my diplomatic framing. I really think the sentiment is prudish, illiberal and ludicrous. The transfer of knowledge is not zero-sum and we should err on the side of preserving that miraculous quality. But some people do think along opposing lines.

And although there is very little legal support for their idea that such limitations should be the default way that our society works, it’s certainly possible to impose arbitrary limits on what people do with information you give to them if you can get them to agree to a contract.

This brings us to screen scraping.

You have a right to use information you’ve been told

Liberal society works because facts belong to everyone. Unless you have a very good reason not to, you need to believe in your right to use published information. You need to believe in your right to think and speak freely about the things you have perceived. This is how our civilization works; it’s how our minds work; it’s how reality works. Don’t give up this belief without a fight.

Fuck their contracts

Nearly every website has a terms of service document. These are typically contracts of adhesion that say you can’t use the site at all unless you agree to a ton of fine print, which will often include a prohibition on automated data collection and probably other things you will do in the normal course of using the web and sustaining belief in a modicum of personal rights. They’re also sometimes called “clickwrap” licenses, a rough category of legal agreements that people mindlessly agree to through implicit action when they use software (or when they broke a seal during unwrapping, back when software came in boxes).

This is fundamentally outrageous. You do not enter a contract when you walk into a store or open a book. But the law around websites was born in a later and worse age, when we let them get away with this kind of shenanigan. To a point.

Just because a company puts something in a TOS doesn’t mean it’s legally enforceable. Google probably can’t require you to murder a stranger as a condition of accessing your email, for example. They may not even be able to force Gmail users to permanently forego their right to sue if a self-driving car runs over Fluffy (though Google’s lawyers will certainly try). When the fight lands in front of a judge, who will determine which outrageous overreaches are allowable, Google’s case will be stronger if its lawyers can prove you read and understood the contract terms prior to violating them. I am not a lawyer, and you should consult a real one rather than relying on my advice. But reading the TOS may not do you any favors.

The CFAA is bullshit

Outside of any contracts you mistakenly agree to, the Computer Fraud and Abuse Act is the primary vehicle by which scraping might get you into trouble. Let’s let the EFF explain:

The CFAA is the federal anti-hacking law. Among other things, this law makes it illegal to intentionally access a computer without authorization or in excess of authorization; however, the law does not explain what “without authorization” actually means. The statute does attempt to define “exceeds authorized access,” but the meaning of that phrase has been subject to considerable dispute. While the CFAA is primarily a criminal law intended to reduce the instances of malicious hacking, a 1994 amendment to the bill allows for civil actions to be brought under the staute.

This is a stupid, arbitrary law, and you are potentially violating it every time you use the internet. You should be aware that it exists in the same way that you are aware sharks exist. But you shouldn’t let them stop you from going in the ocean.

Not asking questions is a great way to avoid dumb answers

This is tricky, I know. If a site operator might be excited about your project, getting their permission might unlock better data, save you time, and avoid subsequent fights. But if they’re antagonistic or even just *surprised*, they will instead ask their lawyers how they should respond to your request and their lawyers will (eventually) tell them to say “no”. Then you will have no plausible way to claim that you didn’t know you shouldn’t collect the information. Worse, the publishers will be on their guard.

If you think the site operator might want to work with you, you should ask for their help. If you’re not sure, you should instead ask yourself if you have an ethical claim to the data. The site operator is not necessarily the appropriate arbiter of that question. At Sunlight we encountered endless situations where the site operator was not the information’s rightful owner. Government sites, hosting public information, with robots.txt files forbidding automated collection? To hell with that. It’s wrong.

The stakes matter

I say all of the above blithely and confidently, and I think it’s good advice for the audience to which the original talk was aimed: journalists. It is decidedly not how I approach these questions in my professional life, at least not these days. I work for a private, for-profit enterprise. We’re trying to make money. We have the resources to be careful, to buy licenses, to read contracts, and to be worth suing.

And while I’m proud of how much work our company does to add to the public good, we are not investigative reporters or nonprofit activists. Perhaps more to the point: if we callously take someone else’s information and they come after us with a decent argument about it, no one will shed tears for us.

If you are acting on behalf of a corporation, talk to your counsel, then talk to their counsel, then work out an agreement. Take it from Gawker, getting deposed isn’t as fun as it sounds.

If you are a journalist, a hobbyist, an activist, or really anyone seeking knowledge rather than wealth: scrape that site. Teach us something. Try not to be a jerk about it. It will probably be fine.

Star Wars

I think Ezra’s right about the commercial mechanics of comic book movies (though I think this is partly due to origin stories being the only filmable comic book stories). But this is not what the new Star Wars movie is doing. Or I hope it’s not.

Retelling a story is one thing, but quoting it is another. The Force Awakens isn’t taking the timbers of the original franchise and building a new house around them. It’s self-consciously constructing a scale model.

There are two ways to interpret this choice. One is that Disney has cynically decided that the things that fans love and will pay for are incredibly specific moments: lightsabers Force-flying out of snowbanks, father-son showdowns on perilous catwalk bridges, precision bombing runs to disable shield generators. The evidence for this perspective is the numerous otherwise-pointless fanservice notes that movie invokes (the holographic chess game on the Millennium Falcon comes to mind) and the colossal amounts of money at stake.

The other interpretation is that the series’ new architects are reestablishing the franchise’s structure, rebuilding a framework badly damaged by the careless renovations in the prequels. The only creative advantage to having such structures — cumbersome, constraining sets of rules and obligations — is that you can subvert them. The evidence for this is pretty thin, and basically boils down to JJ Abrams not being a hack and everyone involved being smart and rich enough to want to play the long game.

Wishful thinking means I’m leaning toward the second option, hoping for a Rey dark side turn and subversion of the franchise’s focus on a small royal family by making Finn the new trilogy’s (Force-less) hero. But who knows. As Yglesias says, we won’t know if this new movie was good or bad for some time. Sure was fun, though.

Paris

We had been feeling cross about Uber. This is, by far, the subject about which Steph and I fight the most, as the service’s admittedly poor routing prompts different and conflicting reactions from us. She cannot resist reaching across gaping chasms of culture, language and basic navigational competence to put our drivers on the right path. I prefer, in characteristically nonconfrontational style, to quietly abandon myself to fate, gladly surrendering a few hundred meters or cents if it saves everyone some embarrassment.

This was the first Uber we had taken in Paris–hoofing it from Île Saint-Louis to Canal Saint-Martin seemed unappealing, especially since we’d dawdled longer than we’d planned. Mostly the ride was great. Our driver Radhouan spoke no English but was impeccable at piloting a black sedan while wearing a suit and bald head, in exactly the way that people in movies often do before being beaten up by Jason Statham.

Our plan had been to start at the south end of the canal and pick a restaurant as we walked north. Instead, Uber’s geocoding dropped us closer to the Porte Sainte-Martin.

uber trip in paris :-(

We walked a few blocks past tiny, packed restaurants, many featuring diners sitting outside under heaters. The neighborhood was clearly cooler and younger than the tourist-filled center of the city where we’d been spending our time.

Soon we reached the canal. I thought it was obvious that most of the restaurants would be south of us, but Steph wanted to go left and I was already in hot water for my poor piloting of the Uber app. So left it was. As we walked, a police car’s blaring siren tore past us, headed south, and I made a lame joke about it not being very romantic.

The restaurants were indeed more sparse to the north, so when we found Les Enfants Perdus we quickly went in.

Five minutes, we were told. No problem: the bartender looked like he knew what he was doing. I ordered a Sazerac. Not-particularly-soon-after we were seated uncomfortably close to an older couple, just past the bulk of the bar.

When did it stop being a regular meal? I’m not entirely sure. The wait staff locked the doors at some point, but I thought perhaps dinner service was ending. Waves of additional emergency vehicles sped south, but this was a city, after all. Snippets of English kept reaching us from across the room, containing increasingly alarming words. With growing frequency, the sound system erupted in booming, buzzy hums as the staff swapped out iPhones to take calls and send urgent texts. Bit by bit, we all stopped looking at our companions and food and began staring into our smartphones.

Les Enfants Perdu

I’d drunk enough to want to make off-color jokes on Twitter, so I set about doing that. Steph and I didn’t think there was much to be done but to wait out the emergency, so we ordered more drinks and more dishes, which were slower and slower to arrive.

The rumors in the room and online intensified. We soon heard about the siege at the Bataclan, though not yet the full extent of that horror. But people were saying this was not all, that drive-by shootings were still occurring, that a new attack was unfolding at Les Halles, far from our restaurant but quite close to our apartment. No one denied that gunmen were still at large.

It did not seem safe to go outside. Soon, the staff acknowledged what was occurring: a blonde waiter without much English did some comic capering to lighten the mood, and his colleagues assured us that the restaurant’s large glass windows were bulletproof, which seemed unlikely. The neighborhood was now cordoned from traffic, they said; there would be no taxis. The owner announced that everyone was welcome to stay, but the staff would call the hotel a block away on our behalf if we’d like.

We stayed. Many diners left for nearby cars or short, furtive walks home. Eventually only four or five parties remained. The staff asked us to assemble at one table and assured us again that there was no need to leave. They opened some bottles of champagne, they put on the Beatles’ White Album. The doors were declared to be definitively locked, and cigarettes appeared as if by sleight of hand. The blonde waiter sat down with us, said he had given away his tickets to that evening’s show at the Bataclan, and began weeping. I watched as Steph comforted him. I continued to check my phone.

By two AM, I was thinking seriously about sleep and how glad I was that the restaurant’s back room decor featured padded benches and implausibly fluffy pillows. But our fellow diners were restless. Group by group, they decided to walk. We checked the hashtag that the media had been writing about, the one by which Parisians were offering refuge to those stranded on the street. Useless. Steph called some of the nearby hotels, but they couldn’t help.

So: bikeshare. There is a Velibe station in front of Les Enfants Perdus, but not one that takes credit cards. Our maître d’ led us through a block and a half of empty streets, and then several pages of inscrutable French bikeshare menus. We looked with fear into every car that passed.

I hope I will never see Paris that empty again. Police cars prowled the streets, activating their sirens every other block. And there were people, more than I expected, but all walking in the same direction or huddled in doorways, speaking urgently into their phones.

The Velibe top gear is much better-considered than D.C. bikeshare’s, and we plunged through the streets. Outside a nightclub people were massing, piling into cars. I remember desperately wanting to get away from them, from any group of people, any crowd. But otherwise the ride felt quiet, urgent, unpanicked.

A wrong turn dropped us too far west, in front of a police station across from Notre Dame. Men in police jackets were milling around on the corner, looking unsure of what to do, as if the real cops, headed to Saint-Martin, had told their little brothers to put on ill-fitting departmental jackets and do their best. We biked past the cathedral, finding more police guarding the monument–some sitting near-invisibly in nondescript cars. Ever since landing our Americanness had been reliably detected from hundreds of meters away, and this was no exception. The cops saw us, but melted from our path.

We dropped our bikes at a station next to the Seine and crossed to Île Saint-Louis, immediately feeling safer for no good reason. Soon we were in our apartment.

I kept thinking about what I’d read: that people in the Bataclan had sent messages begging the police to come, that they were being executed one by one. That was the thought that horrified me more than any other. But soon sleep came. I woke up feeling no wiser than the morning before.