Book Review: Pleading Out

I was only a few pages in when Pleading Out: How Plea Bargaining Creates a Permanent Criminal Class made me angry. It wasn’t because of how Dan Canon wrote. It was because of what he wrote. In Bordenkircher v. Hayes, the Supreme Court held that prosecutors could, in effect, punish a defendant for asserting their right to a trial. Potter Stewart wrote that this was part of “any legitimate system which tolerates and encourages the negotiation of pleas.”

While legal systems in the United States do tolerate and encourage plea deals, a reasonable person can question the legitimacy of the system. That Paul Hayes received a life sentence for forging a $88.30 check calls the legitimacy of the system into question.

Canon spends the rest of the book making the case that the plea bargain system as practiced in the United States is not legitimate. It does not serve the interests of justice, but of power. “The American legal system,” he writes, “was designed by people in power as a tool to keep them in power whatever the cost.”

American exceptionalism

Plea bargains are rare in other countries. In the United States, 97% of convictions come from guilty pleas. Most of those are bargained. Why is that? Prior to the 1830s, plea bargains were rare in America. Attitudes started shifting when labor solidarity developed in the early industrial factories. Plea bargaining hid prosecution from the public eye, preventing scrutiny and revolt.

The expansion of federal crimes after Prohibition led to a need to process cases more efficiently. “What we have inherited is an amoral system of criminal proceedings; it cannot be called criminal justice. Expediency, not fairness, is the principal concern.”

It’s no coincidence that the United States has the highest incarceration rate and also the highest plea bargain rate. As Michelle Alexander explores in greater depth in The New Jim Crow, the legal system creates a permanent criminal underclass that has long-lasting effects.

Liberty and justice for some

The high volume of cases means that lawyers can’t keep up. Prosecutors can’t screen cases to drop the obviously bad ones. Worse, defense attorneys can’t mount vigorous defenses. Canon notes that in 15% of exonerations, the defendant gave a false confession. Thousands of innocent people are sitting in jail today because the police or prosecutors railroaded them into confessing to a crime they didn’t commit.

Because plea bargains are secretive, there’s no accountability. Wealthy defendants can work themselves into a sweet deal. Poor and middle-class defendants have to take what the prosecution offers. If they dare insist on a trial, they face persecution, not prosecution. Ask Paul Hayes. This does not benefit society.

So what do we do?

It doesn’t have to be this way. Canon writes about the decade when Alaska eliminated plea bargaining. The system adjusted. Prosecutors dropped cases they couldn’t—or shouldn’t—prove. Police got more careful with their investigations, knowing they’d actually be accountable. It wasn’t perfect, but it was an improvement.

Our current system doesn’t have to be our system forever. But it won’t change on it’s own. The first step is an informed populace. That’s why I’d recommend Pleading Out to anyone who cares about justice.

Other writing: April 2022

What have I been writing when I haven’t been writing here?

Stuff I wrote


Stuff I curated


Twitter’s future

So Elon Musk is planning on buying Twitter. I say “planning” here because the deal hasn’t closed. But let’s assume it happens. What will it mean?

Not a Musk fan

I’ll be blunt: Elon Musk is a charlatan who gets a lot more credit than he deserves. I don’t doubt he’s a smart person, but being the richest person on the planet has allowed him to engage in unrestrained buffoonery. Whatever his areas of expertise, they clearly don’t extend to understanding tunnels. The best thing he could do would be to leave Twitter alone, but you don’t spend $44 billion to not play with you new toy.

But free speech!

No. Elon Musk doesn’t believe in free speech. He canceled someone’s Tesla order for saying mean things. “Free speech” arguments are almost never about anything other than “I should be allowed to say what I want without consequences.”

Free speech, as envisioned by absolutists, is only free for those with power. If your free speech is used to harass others into silence, the platform does not promote free speech. I’m fine with letting the Nazis and democracy subverters go off to any of the other Twitter-like sites they’ve set up.

So what next?

The key question is “to the degree they left, will the Nazis and democracy subverters come back to Twitter?” I can’t say. For now, I’m not planning to leave Twitter. If it becomes intolerable, I’ll go. To where? Good question! Mastodon holds no appeal to me for a variety of reasons, but maybe I’ll move there at some point. Maybe I’ll just drop that form of social media from my life.

It seems more likely to me that Musk will discover that running a social media site is less fun than criticizing a social media site and get bored. He does have two other companies to run already. Three if you take The Boring Company seriously. While he certainly could do damage, I hope that it remains the shitty hellsite we’ve come to hate. After all, Twitter has mostly succeeded in spite of itself.

Balancing advancement and legacy

Later today, I’ll submit a contentious Change proposal to the Fedora Engineering Steering Committee. Several contributors proposed deprecating support for legacy BIOS starting in Fedora Linux 37. The feedback on the mailing list thread and in social media is…let’s call it “mixed”.

The bulk of the objections distill down to: I have old hardware and it should still work. Indeed, when proprietary operating systems vendors (both in the PC and mobile spaces) embrace varying forms of planned obsolescence, open source operating systems can allow users to continue using the hardware they own. Why shouldn’t it continue to be supported?

Nothing comes for free. Maintaining legacy support requires work. Bugs need fixes. Existing code can hamper the addition of new features. Even in a community-driven project, time is not unlimited. It’s hard to ask people to keep supporting software that they’re no longer interested in.

I think some distros should strive to provide indefinite support for older hardware. I don’t think all distros need to. In particular, Fedora does not need to. That’s not what Fedora is. “First” is one of our Four Foundations for a reason. Other distros focus on long-term support and less on integrating the latest from upstreams. That’s good. We want different distros to focus on different benefits.

That’s not to say that we should abandon old hardware willy-nilly. It’s a balance between legacy support and advancing innovation. The balance isn’t always easy to find, but it’s there somewhere. There are always tradeoffs.

I don’t have a strong opinion on this specific case because I don’t know enough about it. We have to make this decision at some point. Is that now? Maybe, or maybe not.

Sidebar: it’s hard to know

One of the benefits of (most) open source operating systems also makes these kinds of decisions harder. We don’t collect detailed data about installations. This is a boon for user privacy, but it means we’re generally left guessing about the hardware that runs Fedora Linux. Some educated guesses can be made from the architecture of bug reports or from opt-in hardware surveys. But they’re not necessarily representative. So we’re largely left with hunches and anecdata.

Other writing: March 2022

What have I been writing when I haven’t been writing here?

Stuff I wrote

Program Management for open Source Projects

The Pragmatic Programmers


Stuff I curated


Other writing: February 2022

What have I been writing when I haven’t been writing here?

Stuff I wrote

Program Management for Open Source Projects

Duck Alignment Academy


Other writing: January 2022

What have I been writing when I haven’t been writing here?

Stuff I wrote

The Pragmatic Programmers

Duck Alignment Academy


Stuff I curated


On Jono Bacon’s discussion of Reddit karma

Last week, Jono Bacon published a YouTube video discussing the karma system used by Reddit. It’s worth 28 minutes of your time if you’re thinking about a reputation system for your community. I don’t have any disagreements, but there are a few “yes, and”s that popped up as I watched it.

What’s karma for?

A fundamental problem with karma is that it applies to posts/comments, not to accounts. Yes, Reddit displays a net karma score on account profiles, but it doesn’t do anything with it. A large number of upvotes will move a post or comment toward the top. A large number of downvotes will hide a comment behind a “wow, do you really want to see this crap?” (my words) link. But apart from removing a posting frequency speedbump for new accounts, the account’s karma doesn’t actually mean much.

Karma is non-specific

Another big issue with Reddit karma is that it’s the same across the entire site. Jono talked about using karma as a metric of credibility. If you narrowly define “credibility” as “knows what the community likes”, then that works. But I might earn a bazillion points for my insightful open source posts. When I go to post in an small engine repair subreddit, my karma comes along with me.

Just because I can successfully participate in one subreddit, that doesn’t mean I can in another. And it’s certainly not a measure of expertise on a topic. Jono alludes to this by talking about how karma doesn’t distinguish between funny and helpful, for example.


You can’t buy karma. That’s one of the benefits of Reddit karma. But you can buy accounts to apply karma. Whether you pay money to a bot farm or just wield your influence on another platform, you can drive upvotes or downvotes to an account of your choosing. Since karma is mostly meaningless at the account level, the direct harm of this is fairly small. But brigading is always a concern in online communities.

Okay, so then what?

Reddit karma has its downsides. But it is very simple, which is a huge benefit. I tend to favor the more account-centric systems like Discourse trust levels and StackExchange reputation. Sites like ArsTechnica have an up/down vote systems with an optional tag to explain why you’re giving the vote. If Reddit’s karma was per-subreddit, it would be more useful as a measure of credibility.

Hunga Tonga-Hunga Ha’apai eruption pressure wave in Indiana

Over the weekend, the volcanic island of Hunga Tonga-Hunga Ha’apai erupted in the south Pacific. People as far away as Alaska heard the sound. Here in Indiana, we did not. But we were able to detect the shock wave from the explosion as a rapid pressure change.

Graph of barometric pressure at my house showing an abrupt rise and fall in pressure as the shock wave passed on Saturday morning.

In fact, you can watch it cross the continental US by plotting the pressure changes, as Daryl Herzmann did.

A little after midnight, the pressure wave came around from the other side of the globe. Alerted to this possibility by Daniel Dawson, I grabbed the graph from my weather station again.

Graph of barometric pressure at my house showing an slight rise and dramatic fall in pressure as the shock wave passed again on Sunday morning.

I don’t have much to add. It’s just a neat example of how our planet works. Some of the satellite imagery is absolutely mesmerizing. Unfortunately, it sounds like the damage to nearby islands may be catastrophic. The BBC reported that some islands may have been completely covered by seawater. Tonga is already gravely threatened by rising sea levels, and disasters like this can only make the situation worse.

Edited 17 January 2022 at 3pm EST to say the pressure wave came from the other direction, not around again. Thanks to Shelley Melchior for the correction.

Indiana COVID-19 update: 15 January 2022

Welcome to the new year, where we’re still dealing with COVID-19. The stats are a little muddy, both because of the holidays throwing a wrench into the reporting and also because I’m seeing some things I don’t quite expect. More on that below.

The recent past

In my last update just before Christmas, I noted that we had reached a peak in cases and hospitalizations. Possibly deaths as well, although that remained unclear. The cases and hospitalizations continued to slowly decline over the next few days, until beginning to rise again Christmas weekend.

Current state

Last month, I wrote “With vaccines available, we should see hospitalization and death rates far below [winter 2020–1]. On the other hand, indoor masking is nearly non-existent and the Omicron variant presents a rather significant unknown.” Omicron is no longer an unknown.


As Micah Pollak predicted, Indiana is seeing record levels of new cases. His “optimistic” (my word) scenario had 7,800 new cases today. His “pessimistic” scenario had us at 8,200 ten days ago. The pessimistic scenario was close: the 7-day moving average of new cases crossed 8,200 on January 3. As of yesterday’s update, the average is 13,935—79% higher than the optimistic scenario.

There’s some indication that we’re approaching the peak for new infections. Week-over-week and week-over-two-week changes in new cases are trending downward, as is the difference in weekly cumulative cases. While still higher than almost any other time during the pandemic, the slowing is a good sign. However, there are a few caveats:

  • Test availability, particularly for rapid tests, is pretty limited anecdotally
  • At-home tests are not included in the state’s data
  • Omicron has a higher percentage of asymptomatic infections (source, p1), which could plausibly mean a smaller percentage of infections are being detected.
Week-over-week (blue) and week-over-two-week (red) changes in COVID-19 cases

So we’re maybe peaking, maybe not. Some states have already peaked, which lends some credence to the “actually peaking” scenario. From what I’ve seen, case rates drop dramatically after the peak. Presumably because there’s just no one left to infect? 42.5% (and climbing!) of people reporting test data to the state are testing positive right now. At this point, there’s basically nothing we can do about it.

Our models suggest that transmission is so intense, and the wave is cresting so fast, that policy interventions such as mask mandates, increased third-dose vaccination coverage, and increased vaccination of the hesitant will have no real impact on this wave. … Given that transmission cannot be controlled, the toolkit used during previous waves of the pandemic will not work. In our models, testing strategies will not curtail the rapid Omicron wave, nor will increased mask use.

Insitute For Health Metrics and Evaluation, January 13, 2022 US policy report


COVID-19 is overwhelming hospitals. The nine-country district that includes Lafayette has 0–3 available ICU beds most days. Statewide, we have set several new hospitalization counts in the last week. This is a little misleading: the Institute for Health Metrics and Evaluation (IHME) estimates roughly half of COVID-19 nationwide are hospitalized with COVID, not for COVID. Nonetheless, they’re still occupying beds, which are increasingly harder to come by. COVID ventilator usage remains at a higher percentage of total capacity than in last winter’s surge.

Daily (blue) and weekly (red) changes in COVID-19 hospitalizations.

What encourages me is that the increase in hospitalizations is rising more slowly than the increase in cases. This was not the case in previous waves. It suggests we’re seeing what others have reported: Omicron is individually less severe. From a public health perspective, of course, it’s still a huge problem. Don’t get in a car accident or have a heart attack for a while.


This is where I get confused. Weekly cumulative deaths continue to decrease. Weekly cumulative deaths (the total of deaths in the last 7 days minus the total of deaths in the 7 days before that) have been decreasing since about December 20. Given that hospitalizations began to rise around Christmas, I’d expect to see an increase in the deaths by now. We’re not seeing that yet. I’m glad if that pattern holds, but it confuses me. With hospitalizations still on the rise, we’ll have to wait and see.

Daily COVID-19 deaths

I want to take a moment to note that over 30% of Indiana’s COVID-19 deaths have occurred since July 1, 2021. This represents almost 6,000 Hoosiers who didn’t have to die. The vaccines are lifesavers and anyone who claims otherwise is morally responsible for these deaths.

Looking ahead

IHME’s latest model run shows that we peaked in estimated infections earlier this week. Reported infections will peak in about 10 days. By mid-March, infections will be back down to about 1,200 per day. That’s a rate we haven’t seen since the beginning of the Delta wave in early August. Hospitalizations will peak at the beginning of February. The model predicts both all-bed and ICU usage will be nearly twice the December 2020 peak.

The near-term historical death data on IHME’s page does not match reality, so I won’t incorporate it into my dashboard or give it any credence here. I suspect it may be that the historical data is based on day-of-report, not day-of-death. However, that theory has a lot of holes.

Instead, I’ll talk about the previous run, which matched reality much better. And it turns out it’s the first model run I’ve added to my dashboard since the end of September. Oops.

Currently, the January 8 model is under counting daily deaths by about eight per day. The model shows a minimum on the 8th, with a rise to 60 by the end of the month. This is about half of last winter’s peak day, or about the same as we were in the week before Christmas 2021.

Observed and projected COVID-19 deaths.

This model run forecasts a return to single digit daily deaths the second week of March. The last time we were in single digits was August 7, 2021.