The Astros are going to the World Series! What a crazy game!

The Astros beat the Yankees last night to win the ALCS 4 games to 2 and go to the World Series. And it was a pretty crazy game!

The Astros’ strength all season long has been their hitting and their starting pitching. Their defense is pretty good, and their relief pitching has been anywhere from OK to pretty good. The Yankees have also been great at hitting, but their bullpen is also great. (their defense is also pretty good and their starting pitching has been good but not great)

Knowing this, the fact that Game 6 was a “bullpen game” for both teams meant that the Yankees had an advantage on paper. See, the Astros have 2 amazing starting pitches (Verlander and Cole) and 1 very good one (Greinke). But in the postseason you need four starting pitchers, and the late season collapse of Wade Miley (very good until September; terrible thereafter) meant that the Astros didn’t have a great option, so they decided to use a bunch of relief pitchers in the game. Usually you hope for a starting pitcher to go 6 or 7 innings; tonight the Astros’ first pitcher went 1 2/3 innings. The Yankees have similar issues, but as I mentioned their relief pitching is better.

The Astros took a 3-0 lead in the first inning off a Yuli Gurriel home run (while I was putting a kid to bed so I couldn’t watch :-/ ), then the Yankees chipped away at the lead until going into the bottom of the 8th inning the Astros were up 4-2. At this point the best two pitchers the Yankees had left were Zack Britton, who is very good, and Aroldis Champan, who is their usual closer and very very good.

To me, it seemed obvious that Chapman should be pitching the bottom of the 8th. The Yankees needed to keep the game as close as possible because they only had one more inning to get back in it, so there doesn’t seem to be any point to “saving” Chapman for if the Yankees happened to tie or take the lead in the 9th. Also Chapman hasn’t pitched a lot this postseason and can go 2 innings. But they put Britton in, and he ended up in a bases-loaded situation with two outs before getting a pinch hitter out to escape the inning.

In the top of the 9th the Astros brought in their closer Roberto Osuna, who has been very good all season long. I swear I thought to myself that it would be ironic if Osuna had a problem here after the Astros doing well with using a bunch of less-good relievers in weird situations the rest of the game. And lo and behold, after a walk and a strikeout DJ LeMahieu hit a home run to tie the game. I was watching the game on my phone in bed, and the Hulu app lagged a bit and then reconnected just in time for the ball to go over the wall, and for a minute I wondered “did that really just happen?”. George Springer was in right field and came really really close to catching the ball, but no dice. (looking at the replay I don’t think he actually could have caught it, it was just inches past where he was reaching…)

Osuna managed to not meltdown and got out of the rest of the inning, so the Astros went to the bottom of the 9th tied with their 8-9-1 hitters coming up. (so their two worst hitters were up first and second) Because of the seemingly questionable decision earlier, now Aroldis Chapman could come in for the Yankees. Also, the Astros were down to only a few relief pitchers so the prospect of going to extra innings seemed grim. After two quick outs, Springer got a walk, and Jose Altuve came to the plate. Jake Marisnick was up after him, and he was put in as a defensive replacement because he’s not a good hitter. But Altuve hit a home run to left field, Astros win 6-4!

Baba is You: good but hard puzzle game

David and I are finished with (see below) Baba is You, which is a pretty neat puzzle game that is also quite hard and seems unfair at times, although it isn’t.

The gist of the game is that you’re on a two-dimensional game board and the rules of the current level are laid out as words that you can move around. WALL IS STOP is a common rule, for example, that means your character can’t move through walls, but if you break up that rule then you can. (BABA IS YOU is another common rule meaning that you control Baba 🙂 )

It’s a neat idea for a game, and while the metarules are pretty simple, the rules themselves quickly get complicated due to the number of words that are introduced. For example, the order that rules get applied in matters, and there are so many rules that I found it hard to keep track of. (this may be one disadvantage to playing through games slowly, which is something we have to do right now because of kids and whatnot) Moreover, on the more complicated levels it really feels like there’s only one way to solve the level, which is kinda disappointing.

There are also over 200 levels, and David and I did maybe 120 or so before we finally decided to call it quits because it felt more like work than fun. But there were definitely some levels that I felt very clever about having solved them.

It’s kind of neat – when I started playing the game I thought “that’s a neat gimmick but being able to change rules doesn’t seem too powerful”, then after a few levels I moved to “Baba is like a god among men, how can this game ever be hard”, and then the game quickly showed me how to do so 🙂

Also kudos to the developer for making it incredibly easy to undo moves!

The MVP Machine: How Baseball’s New Nonconformists Are Using Data to Build Better Players review

The MVP Machine: How Baseball's New Nonconformists Are Using Data to Build Better Players

The MVP Machine: How Baseball’s New Nonconformists Are Using Data to Build Better Players by Ben Lindbergh

My rating: 3 of 5 stars


This was a pretty interesting book about the data revolution in baseball. One of the main people it follows is Trevor Bauer, who as an Astros fan (and non-crazy person) I guess I’m obliged to dislike? But the stuff he’s done has been pretty interesting.

Honestly I should have liked this book more than I did – it covers a wide range of topics and it’s pretty well written – but I struggled to get through it. Maybe I’m getting tired of baseball books? But if you’re at all interested in modern baseball I’d recommend it.


View all my reviews

baseball win expectancy finder now has balls and strikes!

Here it is!

This wasn’t too much work, and like I mentioned last time it was nice to work on adding a new feature to something. Although I guess I did recreate the app’s shell with create-react-app, I didn’t port it to TypeScript 🙂

One annoying part is that there’s just not that much data so you can pretty easily get into situations where the stats are probably “wrong”. For example, in the top of the 8th inning, no outs or runners, home team up by 2, and a 2-0 count the home team has an 87.08% chance to win. But if the batter gets another ball to make the count 3-0 (good for the visiting team), now the home team has an 88.11% chance to win. I guess I should add a warning when the sample size gets too small or something. (although I don’t know what “too small” is)

I was a little worried that adding balls and strikes would bloat the size of the data files, which did happen. The worst-case is that it would increase the file size by 12x (4 choices for balls * 3 for strikes), but in practice it’s more like 9x. But it turns out that computers are fast so doing the lookups is only barely slower than before.

My original plan was to add the balls and strikes data to the mobile app (and make it an in-app purchase to unlock), but the increase in data size and corresponding memory usage make me less excited about it. Maybe at some point…

This whole Alabama hurricane map thing, sigh

In case you missed it, here’s an NPR article: Trump Displays Altered Map Of Hurricane Dorian’s Path To Include Alabama.

This whole thing is kinda similar to the inauguration crowd size thing from 2017 (which feels like a lifetime ago!), in that the original issue is utterly insignificant. Trump accidentally included Alabama in the list of 7ish states that would be affected by Dorian, but by that time it had already started to turn north so forecasters weren’t saying that anymore. Who cares?

But the total inability for Trump to ever admit he was wrong about anything, no matter how trivial, is such a terrible character trait, especially in a President. It’s not clear whether Trump drew the line on the map himself, or whether he told someone to, or (less likely?) some aide took it upon himself/herself to draw it to make Trump happy. None of these are good options!

The world is a complicated place, and everyone is wrong sometimes. Refusing to admit that just makes yourself look more foolish than the original error.

Marriage map now in React + TypeScript!

I ported my same-sex marriage map in React + TypeScript! It now uses the usStateMap component I wrote a while ago.

This was interesting because the original map was just vanilla JavaScript and jQuery, so the “port” was really more of a rewrite. It also meant I got to get rid of a ton of logic around state management and also some pretty hacky code around drawing the map itself.

I went ahead and published the code on GitHub (it was public before but in a less convenient way), too, mostly so the usStateMap component now shows that two projects use it 🙂

I ended up leaving out a few features because they didn’t make a ton of sense (flashing map colors, pending court cases), and I also decided to make the cartogram view the default because it’s a more accurate representation of the number of people that were under particular laws at a particular time.

Honestly, porting all of these projects to React + TypeScript is starting to feel tedious, so I’m going to take a break and start working on some new features for some stuff. Should be fun!

(and it still gives me a bit of a thrill to load the page and see an all-blue map!)