Brian Willis

The First Reckoning of Computer Science

Selected pieces of a twitter thread by Yonatan Zunger, posted verbatim here because Twitter is awful for long-form text:

I didn’t come up in computer science; I used to be a physicist. That transition gives me a rather specific perspective on this situation: that computer science is a field which hasn’t yet encountered consequences.

Chemistry had two reckonings, in the late 19th and early 20th centuries: first with dynamite, and then with chemical weapons. Physics had its reckoning with the Bomb. These events completely changed the fields, and the way people come up in them.

Before then, both fields were dominated by hope: the ways that science could be used to make the world a fundamentally better place. New dyes, new materials, new sources of energy, new modes of transport; everyone could see the beauty.

Afterwards, everyone became painfully, continuously aware of how things could be turned against everything they ever dreamed of.

I don’t know the stories from chemistry as well. In physics, I can tell you that everyone, from their first days as an undergrad (or often before), encounters this and wrestles with it. They talk about it in the halls or late at night, they worry about it.

For a long time, it frightened me that biology hadn’t yet had this moment of reckoning — that there hadn’t yet been an incident which seared the importance of ethics and consequences into the hearts of every young scientist. Today, it frightens me more about computer scientists.

Young engineers treat ethics as a speciality, something you don’t really need to worry about; you just need to learn to code, change the world, disrupt something. They’re like kids in a toy shop full of loaded AK-47’s.

The hard lesson which other fields had to learn was this: you can never ignore that for a minute. You can never stop thinking about the uses your work might be put to, the consequences which might follow, because the worst case is so much worse than you can imagine.

Short postscript: As several people have pointed out, many fields of biology have had these reckonings (thanks to eugenics and the like), and civil engineering did as well, with things like bridge collapses in the late 19th century.

Civil engineering responded to this by developing codes of ethics and systems of professional licensure which shape it to this day. I’ve been wondering about this a lot, recently: whether we should be doing the same in CS.

That is, ethical codes with teeth, and licensing boards with the real ability to throw someone out of the profession, the way boards can in engineering, medicine, or law.

The university I attended didn’t teach an ethics course as a part of the Computer Science program. I’ve heard others describe such classes as an easy way for people to bump up their GPAs while they should be off learning how to build compilers, or network infrastructure, or some other Hard Thing. I don’t know why we programmers are such suckers for technical self-flagellation, especially when there’s so much moral self-flagellation to be had.

Zunger is right—software developers are writing the script that the future will run on, and we’re doing so while asleep at the wheel. Between Equifax, Cambridge Analytica, and whatever major breach happens next1, we’ve set the world up to be taken advantage of by whichever player is willing to be the most malicious.

We can’t expect legislators to fix this, because they’ve shown that they don’t understand the technical side. We can’t rely on the market to fix this, because we’ve taught the world that software should be free, and so we desperately need advertising dollars (and all the associated tracking that comes along with that) to keep the industry afloat. We can’t rely on a professional standards body to fix this, because there’s no way to keep a motivated kid from learning to code—and let’s be honest here, most of us were that kid at some point.

So that leaves us. We’re going to have to fix this mess on our own.

  1. Notice that it isn’t controversial when someone suggests there are more serious breaches coming? 

CSS Grid Changes Everything

Here’s a great talk by Morten Rand-Hendriksen from this year’s WordCamp in Paris, entitled CSS Grid Changes Everything. The jokes are bit much, but stick with it because what he has to say is worth listening to.

I’ve lived through a few “generations” of CSS tech, from gif-spacers to tables to divs to flexbox. Every time we make one of these leaps forward, I feel like we’re rearranging our prejudices, enforcing new tradeoffs in an attempt to reinvent the wheel. I’ve been concerned about this lately, especially since last week’s announcement by Adobe that Flash will be end-of-lifed. I know Flash is a dumpster fire, but it enabled so much creativity back in the early days of the web, and a small part of me is sorry to see it go. More so than any other tool, Flash made me feel like I could turn my ideas into pixels. CSS has never felt like that, especially during the days of divs and floats. Instead CSS feels like one part rigid authoritarian and one part abusive spouse. I’m always one misstep away from having my defenceless HTML get scrambled for reasons that seem downright arbitrary.

My first impression of CSS grid is that it makes layout approximately as intuitive as flexbox, but in a more elegant way. There’s nothing inherently wrong with that, but I can tell you without even using it that there are some things it does badly. Want to stack one div atop another on the z-axis, creating a three dimensional effect with a sense of depth? Not going to happen. Want to have divs that change dimensions in response to mouse over events? Not without breaking your layout.

There’s definitely a particular set of use cases being optimised for here. Namely, static pages with little interactivity, little depth, and a rigid structure1. This, more than anything, is what makes CSS grid feel like the anti-Flash.

It might just be time to concede that there’s no way to create a general purpose layout model that covers the whole scope of what we do on the web. I’m disappointed that’s where we’ve ended up, but I guess it’s better than gif-spacers.

  1. You know, like this one. 

The AP Begins Allowing “They” as a Singular Pronoun

Lauren Easton, Director of Media Relations for the Associated Press, quoting the next edition of the AP Stylebook on their blog:

They, them, their — In most cases, a plural pronoun should agree in number with the antecedent: The children love the books their uncle gave them. They/them/their is acceptable in limited cases as a singular and-or gender-neutral pronoun, when alternative wording is overly awkward or clumsy.

Well it’s about time. English desperately needs a singular gender-neutral pronoun to fill the biggest functional gap in our language. Calling people “it” is offensive and crude; while “he or she” is unwieldy, and disregards the existence of people who don’t identify as either.

Predictions for 2017

A short one this year, as we live in uncertain times.

Once again, despite my repeated insistence, one of you went and launched another social service. I warned you all not to do this, but I suppose it was inevitable that eventually someone would try and open source Twitter. We’ve had paid twitter, charity twitter, and gnu twitter, so this really is the next logical step. This one is doomed to failure for the same reason as all the others—social services aren’t about features, they’re about people, and the people are all using Twitter.

I’m calling it now: the digital crown is coming to the iPhone. It’s such a natural interaction on the Apple Watch, would fit perfectly with where you already place your fingers, and could replace the volume up/down buttons in an obvious way.

In other news: Yahoo goes out of business; Google’s next Pixel phone becomes a meaningful threat to the iPhone; Apple demonstrates that they still care about the Mac by releasing exemplary Kaby Lake desktops; Microsoft flails in all directions, doing a better job of pleasing developers than paying customers; and you still won’t be able to edit a Tweet.

It’s traditional for me to wrap this up by predicting that Half Life 3 will come out this year. While I may have started this post calling these “uncertain times”, now that we’re ten years following the previous chapter’s release I think we can say with certainty that the Half Life franchise is well and truly dead.

Observations After a Week With an Apple Watch

I’d forgotten what a giant pain in the ass it is to have a chunk of metal strapped to your body all day. Your wrist’s centre of gravity shifts. Typing is harder. The watch catches door frames as you walk through them. I knew there was a reason that I gave up wearing a watch 10 years ago, and I’ve had to rediscover it the hard way.

Apple Pay is like something out of science fiction. It doesn’t feel like it should work. They let me leave the supermarket with my groceries, but I half expected them to chase me out the door.

The fitness tracking stuff is as compelling as promised. I find myself walking more to close the activity rings. It remains to be seen how long this will stick, but I think it’s more than a gimmick. In particular, heart rate tracking is way more frequent than I’d anticipated. I’m seeing readings every 5-10 minutes, with no meaningful hit to battery life.

Speaking of battery life, I took the watch off the charger this morning at 6:30, I’m typing this at noon, and I’m at 94%. Battery life like this is practically unheard of in the Apple ecosystem.

The wrist detection is unbelievably accurate. Taking the watch off immediately locks it, and raising my wrist to check the time has only failed once.

Third party apps are mostly useless. There’s nothing here that I’d use every day. This is a real concern for the future of the product. To succeed, the watch needs to be useful and necessary, and at the moment it’s just a fun toy for early adopters.