Monthly Archives: June 2020

Pseudonymity Matters. I Stand With Slate Star Codex.

Slate Star Codex is one of the best blogs on the net. Written under the pseudonym Scott Alexander, the blog covers a wide variety of topics with a level of curiosity and humility that the rest of us bloggers can only aspire to.

Recently, this has all been jeopardized. A reporter at the New York Times, writing an otherwise positive article, told Scott he was going to reveal his real name publicly. In a last-ditch effort to stop this, Scott deleted his blog.

I trust Scott. When he says that revealing his identity would endanger his psychiatric practice, not to mention the safety of friends and loved ones, I believe him. What’s more, I think working under a pseudonym makes him a better blogger: some of his best insights have come from talking to people who don’t think of him as “the Slate Star Codex guy”.

I don’t know why the Times thinks revealing Scott’s name is a good idea. I do know that there are people out there who view anyone under a pseudonym with suspicion. Compared to Scott, my pseudonym is paper-thin: it’s very easy to find who I am. Still, I have met people who are irked just by that, by the bare fact that I don’t print my real name on this blog.

I think this might be a generational thing. My generation grew up alongside the internet. We’re used to the idea that very little is truly private, that anything made public somewhere risks becoming public everywhere. In that world, writing under a pseudonym is like putting curtains on a house. It doesn’t make us unaccountable: if you break the law behind your curtains the police can get a warrant, similarly Scott’s pseudonym wouldn’t stop a lawyer from tracking him down. All it is, is a filter: a way to have a life of our own, shielded just a little from the whirlwind of the web.

I know there are journalists who follow this blog. If you have contacts in the Times tech section, or know someone who does, please reach out. I want to hope that someone there is misunderstanding the situation, that when things are fully explained they will back down. We have to try.

The Citation Motivation Situation

Citations are the bread and butter of academia, or maybe its prison cigarettes. They link us together, somewhere between a map to show us the way and an informal currency. They’re part of how the world grades us, a measure more objective than letters from our peers but that’s not saying much. It’s clear why we we want to be cited, but why do we cite others?

For more reasons than you’d expect.

First, we cite to respect priority. Since the dawn of science, we’ve kept track not only of what we know, but of who figured it out first. If we use an idea in our paper, we cite its origin: the paper that discovered or invented it. We don’t do this for the oldest and most foundational ideas: nobody cites Einstein for relativity. But if the idea is at all unusual, we make sure to give credit where credit is due.

Second, we cite to substantiate our claims. Academic papers don’t stand on their own: they depend on older proofs and prior discoveries. If we make a claim that was demonstrated in older work, we don’t need to prove it again. By citing the older work, we let the reader know where to look. If they doubt our claim, they can look at the older paper and see what went wrong.

Those two are the most obvious uses of citations, but there are more. Another important use is to provide context. Academic work doesn’t stand alone: we choose what we work on in part based on how it relates to other work. As such, it’s important to cite that other work, to help readers understand our motivation. When we’re advancing the state of the art, we need to tell the reader what that state of the art is. When we’re answering a question or solving a problem, we can cite the paper that asked the question or posed the problem. When we’re introducing a new method or idea, we need to clearly say what’s new about it: how it improves on older, similar ideas.

Scientists are social creatures. While we often have a scientific purpose in mind, citations also follow social conventions. These vary from place to place, field to field, and sub-field to sub-field. Mention someone’s research program, and you might be expected to cite every paper in that program. Cite one of a pair of rivals, and you should probably cite the other one too. Some of these conventions are formalized in the form of “citeware“, software licenses that require citations, rather than payments, to use. Others come from unspoken cultural rules. Citations are a way to support each other, something that can slightly improve another’s job prospects at no real cost to your own. It’s not surprising that they ended up part of our culture, well beyond their pure academic use.

In Defense of Shitty Code

Scientific programming was in the news lately, when doubts were raised about a coronavirus simulation by researchers at Imperial College London. While the doubts appear to have been put to rest, doing so involved digging through some seriously messy code. The whole situation seems to have gotten a lot of people worried. If these people are that bad at coding, why should we trust their science?

I don’t know much about coronavirus simulations, my knowledge there begins and ends with a talk I saw last month. But I know a thing or two about bad scientific code, because I write it. My code is atrocious. And I’ve seen published code that’s worse.

Why do scientists write bad code?

In part, it’s a matter of training. Some scientists have formal coding training, but most don’t. I took two CS courses in college and that was it. Despite that lack of training, we’re expected and encouraged to code. Before I took those courses, I spent a summer working in a particle physics lab, where I was expected to pick up the C++-based interface pretty much on the fly. I don’t think there’s another community out there that has as much reason to code as scientists do, and as little training for it.

Would it be useful for scientists to have more of the tools of a trained coder? Sometimes, yeah. Version control is a big one, I’ve collaborated on papers that used Git and papers that didn’t, and there’s a big difference. There are coding habits that would speed up our work and lead to fewer dead ends, and they’re worth picking up when we have the time.

But there’s a reason we don’t prioritize “proper coding”. It’s because the things we’re trying to do, from a coding perspective, are really easy.

What, code-wise, is a coronavirus simulation? A vector of “people”, really just simple labels, all randomly infecting each other and recovering, with a few parameters describing how likely they are to do so and how long it takes. What do I do, code-wise? Mostly, giant piles of linear algebra.

These are not some sort of cutting-edge programming tasks. These are things people have been able to do since the dawn of computers. These are things that, when you screw them up, become quite obvious quite quickly.

Compared to that, the everyday tasks of software developers, like making a reliable interface for users, or efficient graphics, are much more difficult. They’re tasks that really require good coding practices, that just can’t function without them.

For us, the important part is not the coding itself, but what we’re doing with it. Whatever bugs are in a coronavirus simulation, they will have much less impact than, for example, the way in which the simulation includes superspreaders. Bugs in my code give me obviously wrong answers, bad scientific assumptions are much harder for me to root out.

There’s an exception that proves the rule here, and it’s that, when the coding task is actually difficult, scientists step up and write better code. Scientists who want to run efficiently on supercomputers, who are afraid of numerical error or need to simulate on many scales at once, these people learn how to code properly. The code behind the LHC still might be jury-rigged by industry standards, but it’s light-years better than typical scientific code.

I get the furor around the Imperial group’s code. I get that, when a government makes a critical decision, you hope that their every input is as professional as possible. But without getting too political for this blog, let me just say that whatever your politics are, if any of it is based on science, it comes from code like this. Psychology studies, economic modeling, polling…they’re using code, and it’s jury-rigged to hell. Scientists just have more important things to worry about.

How the Higgs Is, and Is Not, Like an Eel

In the past, what did we know about eel reproduction? What do we know now?

The answer to both questions is, surprisingly little! For those who don’t know the story, I recommend this New Yorker article. Eels turn out to have a quite complicated life cycle, and can only reproduce in the very last stage. Different kinds of eels from all over Europe and the Americas spawn in just one place: the Sargasso Sea. But while researchers have been able to find newborn eels in those waters, and more recently track a few mature adults on their migration back, no-one has yet observed an eel in the act. Biologists may be able to infer quite a bit, but with no direct evidence yet the truth may be even more surprising than they expect. The details of eel reproduction are an ongoing mystery, the “eel question” one of the field’s most enduring.

But of course this isn’t an eel blog. I’m here to answer a different question.

In the past, what did we know about the Higgs boson? What do we know now?

Ask some physicists, and they’ll say that even before the LHC everyone knew the Higgs existed. While this isn’t quite true, it is certainly true that something like the Higgs boson had to exist. Observations of other particles, the W and Z bosons in particular, gave good evidence for some kind of “Higgs mechanism”, that gives other particles mass in a “Higgs-like-way”. A Higgs boson was in some sense the simplest option, but there could have been more than one, or a different sort of process instead. Some of these alternatives may have been sensible, others as silly as believing that eels come from horses’ tails. Until 2012, when the Higgs boson was observed, we really didn’t know.

We also didn’t know one other piece of information: the Higgs boson’s mass. That tells us, among other things, how much energy we need to make one. Physicists were pretty sure the LHC was capable of producing a Higgs boson, but they weren’t sure where or how they’d find it, or how much energy would ultimately be involved.

Now thanks to the LHC, we know the mass of the Higgs boson, and we can rule out some of the “alternative” theories. But there’s still quite a bit we haven’t observed. In particular, we haven’t observed many of the Higgs boson’s couplings.

The couplings of a quantum field are how it interacts, both with other quantum fields and with itself. In the case of the Higgs, interacting with other particles gives those particles mass, while interacting with itself is how it itself gains mass. Since we know the masses of these particles, we can infer what these couplings should be, at least for the simplest model. But, like the eels, the truth may yet surprise us. Nothing guarantees that the simplest model is the right one: what we call simplicity is a judgement based on aesthetics, on how we happen to write models down. Nature may well choose differently. All we can honestly do is parametrize our ignorance.

In the case of the eels, each failure to observe their reproduction deepens the mystery. What are they doing that is so elusive, so impossible to discover? In this, eels are different from the Higgs boson. We know why we haven’t observed the Higgs boson coupling to itself, at least according to our simplest models: we’d need a higher-energy collider, more powerful than the LHC, to see it. That’s an expensive proposition, much more expensive than using satellites to follow eels around the ocean. Because our failure to observe the Higgs self-coupling is itself no mystery, our simplest models could still be correct: as theorists, we probably have it easier than the biologists. But if we want to verify our models in the real world, we have it much harder.