Midnight in Chernobyl: The Untold Story of the World’s Greatest Nuclear Disaster review

Midnight in Chernobyl: The Untold Story of the World's Greatest Nuclear Disaster

Midnight in Chernobyl: The Untold Story of the World’s Greatest Nuclear Disaster by Adam Higginbotham

My rating: 4 of 5 stars


This was a really interesting book about the Chernobyl disaster. I was hoping for details about why it happened, and while the book does go into that the explosion happens around page 100 of the book. (of 360 or so) But what happened afterwards was really interesting, too!

The reactor design at Chernobyl was a major cause of the accident. Nuclear reactors in the West used water as a coolant and as a moderator – if the reactor gets too hot, that turned more of the water to steam, which is a less effective moderator, so that slows the chain reaction down and can even stop it. This is known as a “negative void coefficient”, and means that if things get out of control the reactor will shut itself down thanks to physics. But the Chernobyl had a “positive void coefficient”, meaning that if the reactor gets too hot the chain reaction speeds up, and if the operators of the plant don’t do something to stop it a meltdown or explosion would occur.

The Russian physicists didn’t discover this until late during the construction of their first nuclear reactor of this kind. They tried to tweak the design but couldn’t fix this problem easily.

Another problem was that the emergency shutdown protocol was to drop a bunch of control rods to absorb a bunch of neutrons and stop the chain reaction. But they thought the impact of instantly shutting off all power would be too harsh on the Soviet power grid, so by design it took around twenty seconds for the control rods to complete their descent into the core.

In fact, this reactor type had already had two major accidents (one partial meltdown and one explosion), so the Soviet agency in charge was supposed to develop new safety regulations and a better emergency shutdown protocol. But none of that was ever done, probably because of the political pressure to get more reactors up and running. And in fact every nuclear accident was treated as a state secret (presumably because it was politically embarrassing), so even operators of other reactors weren’t told what had happened!

Shoddy construction (due to unrealistic deadlines) was yet another problem.

I was curious about how much of the accident’s cause was due to the Soviet political system, and it turns out a lot of it was. Despite the things I mentioned above, the designers did write a manual that included detailed instructions that probably would have been good enough to avoid problems, if operators followed them perfectly and exactly (which is itself unrealistic). But operators were used to bending the rules to get things done to meet their production targets already. And because of the whole secrecy aspect the manual didn’t emphasize which rules were actually necessary for safety.

Another takeaway from the book is that the plant operators didn’t even realize there had been a (giant!) explosion for a while. Some of this, it seems, was due to the usual “fog of war” around major accidents (an explosion in the reactor was basically unthinkable), but there seems to be some incompetence as well, or something. The book goes into detail about people in the town going about their day (the explosion happened around 1 AM on Saturday morning) and I spent around 100 pages yelling “Get out of there!”.

Other odds and ends:
– The Soviet agency behind atomic weapons and nuclear reactors was named the “Ministry of Medium Machine Building” in order to to conceal its true work!
– Fallout (radioactive dust) is very very hard to clean up, because it’s, well, dust. Spraying down streets, etc. with water helps but every time the wind picked up it would just get picked up and moved around more.
– Gorbachev (the general secretary of the Communist Party at the time) wanted to come clean about what had happened to the world in line with his glasnost policy, but was overruled by the Party elders. In fact, people (Gorbachev included!) see the Chernobyl accident and ensuing coverup as a big factor in what brought down the Soviet Union down.
– Because the radioactivity had spread to Europe relatively quickly, the West knew that something was up but not what had happened or how bad it was. A United Press International reporter in Moscow at the time talked to a Russian woman who said that two thousand people had died as a result of the explosion, and this made headlines everywhere. This was not in fact true, and a different reporter thought that the UPI reporter’s Russian was so bad he mistranslated what the woman had said!
– One of the cleanup efforts involved helicopters dropping sand or clay on the now burning reactor to try to put out the fire. (this later turned out to be a Very Bad Idea(TM)) The helicopter pilots try to line their helicopter and seat with lead to protect themselves, and even had a catchy rhyme about it: “If you want to be a dad, cover your balls in lead”! (I’m assuming that rhymes in Russian or something)
– The China Syndrome (based on the 1979 movie) saying that a reactor could melt down through the floor and the ground, all the way to China, is not true. But the Chernobyl reactor could have melted down through the floor and get into the river nearby, which would have poisoned the water that thirty million people used(!) Thankfully, this did not happen.
– Another big worry was that all the material left in the reactor could have started a new nuclear chain reaction, emitting much more radiation. This also did not happen.
– There was a bunch of radioactive debris on the roof of the building (there were three more reactors as a part of the same complex!), and technicians tried to deploy robots designed to work with radioactive material to clean it up. But the environment was too hostile for the robots – the radiation and gamma fields killed their electronics. So they used “bio-robots” – soldiers would run out onto the roof (with some protective gear), throw some debris through the hole in the roof, and run off. This would hit them with the maximum allowed radiation dosage, so they’d get a handshake and get to go home, and the next soldier would go in. It took over 3800 soldiers, but they got the job done.
– 17.5 million people lived in the most seriously contaminated areas of Ukraine, and 696,000 had been examined by doctors, but the official death toll was 31. This was, of course, a gross understatement of the deaths the radiation caused.
– In the end, 1800 square miles of Ukraine and Belarus were declared “officially uninhabitable”.


View all my reviews

clue solver – now in TypeScript!

Here’s a new version of my Clue solver! It works exactly the same as the old version, but now it uses a more standard React build system (so maybe it’s a little faster?) and I ported it to TypeScript.

TypeScript is now my favorite way to write React apps. It’s really nice to have a real type system with compile-time errors, and it gives me much more confidence when I refactor things.

For a comparison, here’s the old code in plain JavaScript, and here’s the new code in TypeScript. One representative sample of how much nicer things are, in the History class’s render method:

Old code:

for (var i = 0; i < this.props.history.length; ++i)
{
    var event = this.props.history[i][0];
    var eventType = event[0];
    var description = '';
    if (eventType === "suggestion") {
        description = this.props.playerInfo[event[1]][0] + " suggested " + CARD_NAMES[0][event[2]].external + ", " + CARD_NAMES[1][event[3]].external + ", " + CARD_NAMES[2][event[4]].external + " ";
        if (event[5] == -1) {
            description += " - no one refuted";
        }
        else {
            description += " - refuted by " + this.props.playerInfo[event[5]][0] + " with card ";
            if (event[6][0] == -1 && event[6][1] == -1) {
                description += "Unknown";
            }
            else {
                description += CARD_NAMES[event[6][0]][event[6][1]].external;
            }
        }
    } else if (eventType === "whoOwns") {
        var player = "Solution (case file)";
        if (event[1] < this.props.playerInfo.length) {
            player = this.props.playerInfo[event[1]][0];
        }
        description = CARD_NAMES[event[2][0]][event[2][1]].external + " owned by " + player;
    }
    entries.push(<li key={i}>{description}</li>);
}

New code:

let entries = [];
for (let i = 0; i < this.props.history.length; ++i)
{
    let event = this.props.history[i].event;
    let description = '';
    switch (event.history_type) {
        case "suggestion":
            description = this.props.playerInfos[event.suggester_index].name + " suggested " +
                cardNameFromCardIndex({ card_type: CardType.Suspects, index: event.suspect_index }).external + ", " +
                cardNameFromCardIndex({ card_type: CardType.Weapons, index: event.weapon_index }).external + ", " +
                cardNameFromCardIndex({ card_type: CardType.Rooms, index: event.room_index }).external + " ";
            if (event.refuter_index == -1) {
                description += " - no one refuted";
            }
            else {
                description += " - refuted by " + this.props.playerInfos[event.refuter_index].name + " with card ";
                if (isNull(event.refuted_card_index) || isNone(event.refuted_card_index)) {
                    description += "Unknown";
                }
                else {
                    description += cardNameFromCardIndex(event.refuted_card_index).external;
                }
            }
            break;
        case "whoOwns":
            let player = "Solution (case file)";
            if (event.player_index < this.props.playerInfos.length) {
                player = this.props.playerInfos[event.player_index].name;
            }
            description = cardNameFromCardIndex(event.card_index).external + " owned by " + player;
            break;
    }
    entries.push(<li key={i}>{description}</li>);
}

The new code is so much more readable! To be fair, some of the refactoring I could have done in JavaScript to begin with, but TypeScript gives me much more confidence to do bigger refactors.

Also, Visual Studio gives me Intellisense and the ability to rename variables and whatnot. I really don’t want to go back to writing JavaScript in a non-IDE!

Breaking and Entering: The Extraordinary Story of a Hacker Called “Alien” review

Breaking and Entering: The Extraordinary Story of a Hacker Called

Breaking and Entering: The Extraordinary Story of a Hacker Called “Alien” by Jeremy N. Smith

My rating: 3 of 5 stars


This was…fine. The book spends a long time on Alien’s time at MIT, which was sorta interesting but not very compelling. Then it writes about her first few jobs before she became a security consultant/pentester. The last section was the most interesting, and there were little bits of interestingness throughout the rest, but I can’t really recommend it. It’s a cross between a biography and “here’s what security consultants do” (although it does reference the movie Sneakers; points for that!), and the biography stuff was just not that interesting.

I think that I just don’t like biographies in general (I couldn’t even get through the sample of Michelle Obama’s, which surprised me), so maybe you’d like this better if you do, or if you’re less familiar with computer security?


View all my reviews

linked list friday: high tech privacy for your kids, dentistry, same-sex couples getting mortgages

parenting is hard and that’s OK

I read this parenting article All parenting is hard. Don’t compare yourself with others. and it made me feel better.

I’ve always hated the idea that “someone has it worse than you so you’re not allowed to complain about anything”, but I’ve really fallen into this when it comes to parenting. We are incredibly lucky – we do parenting things pretty equally, we can afford good daycare, our kids are pretty well-behaved and have no major health issues – but some days are just so hard. Getting the kids off to daycare and then back home and in bed feels like a major accomplishment.

Punished by Rewards: The Trouble with Gold Stars, Incentive Plans, A’s, Praise and Other Bribes review

Punished by Rewards: The Trouble with Gold Stars, Incentive Plans, A's, Praise and Other Bribes

Punished by Rewards: The Trouble with Gold Stars, Incentive Plans, A’s, Praise and Other Bribes by Alfie Kohn

My rating: 4 of 5 stars


This is a book whose thesis is basically: rewards don’t work and are bad for people. It’s pretty interesting, and I’d recommend it with some caveats. (see below)

Saying “if you do this, you get that” makes you think of the “this” as just a means to get the “that”. It saps your intrinsic motivation for “this”, so once the reward is taken away (or you get used to the reward) you want to do “this” less. In fact, if “this” is any sort of creative task it can make you do a worse job at “this”!

He also discusses how rewards are generally controlling (and/or condescending), which I somewhat buy.

Odds and ends:
– Unexpected rewards are much less destructive than rewards that people expect; of course this is hard to maintain because people will start expecting them!
– The author points out that grades in school act as rewards, so we should try to get rid of them. Of course, that’s a bit ambitious, so at least parents can focus on what their kids are learning at school instead of what grades they’re making.
– One common objection is “if you don’t reward people, they’ll just be lazy and won’t do anything”. But people are generally inclined to try to succeed at something moderately difficult. (not too easy, not too hard)
– The author cites numerous studies where promising money for completing puzzles, playing games, etc. works initially, but once the reward is withdrawn people get less interested in the puzzle, etc. than people who never got a reward to begin with.
– There’s a whole section about praise and how it’s basically just like a reward (i.e. bad). This makes sense in a work setting, and I’ve been trying to apply it at home with the kids by showing them unconditional love and showing interest when they accomplish something. But it’s sooooo hard not to just say “Good job!” like a thousand times a day!
– The demotivating effect of rewards happens even if you reward yourself for something! Yikes.
– If you’re talking about an activity that you don’t care if your child has an intrinsic motivation for, rewards are pretty OK. (the money quote here is: “a regimen of positive reinforcement for potty-training a toddler is not likely to do lasting harm…Why? Because we are not terrible concerned to instill a lifelong love of defecation.” Hah!)
– Instead of using reward to get someone to do an uninteresting task, the recommendation is to acknowledge that the task doesn’t seem interesting, offer a meaningful reason that it needs to be done anyway, and give the person as much control as possible about how to do the task.
– Giving out a reward for a competition is especially bad, because the winner will lose intrinsic motivation, and everyone else, well, didn’t win.
– Praising someone for a result is especially bad, but praising for effort, while less bad, still has all the problems listed above. But if you are going to praise, he recommends:
– Don’t praise people (“you’re so good!”), only what they do
– Make praise as specific as possible
– Avoid phony praise
– Avoid praise that sets up a competition
– The author is also not a fan of “natural consequences” because he sees them as controlling. Which, I can kind of get (the examples he gave were not great examples of natural consequences, to be honest), but parenting is hard and while he does offer some suggestions I’m not sold on how realistic they are.
– Instead, if you’re having a discipline problem with your child, he recommends looking at the content of your request (are you asking your child to do something that’s really necessary, or just to do something because it’s convenient for you?), try to collaborate with your child to mutually problem solve (or if it’s something you can’t budge on like a safety issue, at least explain why they can’t run out into traffic), and give the child as much choice as possible.
– Praising a child when they achieve something is a problem not only for the reasons above but also because it signals conditional acceptance – they may think they’re only valued because of their accomplishments. Children need unconditional love!

Now, the bad news. I found the content of the book interesting, but it was a real slog to get through. One reason is the usual tiredness from having two kids; hopefully this doesn’t apply to you 🙂 Another problem for me was the way the book is structured. It talks about how rewards don’t work in the workplace, at school, and for raising children, and the last few chapters are about what does work in these situations. By the time I got to these last few chapters I had kinda given up hope on ever doing anything right (at least in regards to raising children) because it seemed like anything I did would mess up my kids. Reading the last few chapters did help, to be fair.

My main problem, though, is that the book is really long – the paperback version is 430 pages, although there are a lot of footnotes. I’ve run into this problem before with books that are trying to build an unconventional case for something and the book gets very repetitive citing study after study after study. I understand why the author did this, but I almost wish there were two versions of the book; one that includes all the studies, and one that summarizes and gets to the point a bit faster. I don’t know what a reasonable solution to this problem is, but it does make me a little hesitant to recommend the book without adding “but feel free to skip to the next section when you get bored”.

Also, this is not a good book to read right before you have to set goals for performance evaluations at work 🙂


View all my reviews

linked list thursday: how luck affects your life, the disease of more, how to fight a medical bill

In theory it sounds like a noble idea to let everyone in the world post whatever they want and have it be connected and amplified to like-minded individuals.

In practice, it’s a disaster.