random hacks and pointless shenanigans

Last Week In Baseball (2020-08-10)

Three weeks into this strange season, and I’ve already failed at watching every single Red Sox game. So it goes.


Boston’s finally winning games! Sure, it’s only against the lower half of the AL East, but a win is a win!

In all seriousness, it’s hard not to see this as the start of an upswing. Facing the Yankees immediately after series against Toronto and Tampa doesn’t have me feeling super optimistic, but I’ll take the wins I can get, and maybe it’s the morale boost that’s necessary going into the rest of the season.


Three weeks in, and I’m actually coming around on the cardboard cutout fans. There’s clearly an easter egg hunt going on with some of them, and my only regret is that I lack the resources or connections to plant elaborate pranks around various stadiums. Since I don’t, here are some free suggestions:

  • Recreate the Sgt. Pepper’s Lonely Hearts Club Band album cover behind home plate.
  • Put the entire House of Representatives in the bleachers. Senators get box seats.
  • TV show casts are an obvious choice, but still a fun one. All 13 Doctors, anyone who’s ever had a line in an episode of Seinfeld, things of that nature. Use this list of shows with large ensemble casts as your inspiration.
  • Hall of Presidents. That’s it, that’s the tweet.
  • There haven’t been enough presidents to fill an entire section at most ballparks, but there definitely have been enough popes.

I usually talk about baseball’s mediocre response to COVID-19 in the last part of the post, but there honestly isn’t that much that’s new to talk about there. Sure, some more games have been postponed now that some Cardinals tested positive, but MLB isn’t yet making any changes to address the situation. Much like the coutnry itself, we’ve just settled into an uncomfortable status quo. Instead, I’m going to come for another sacred cow and talk shit about the NCAA. At the time of writing1, no P5 (and only one D-1A to my knowledge) conferences have announced that they’re cancelling the football season for the fall, although the Big Ten is rumoured to be doing so as soon as tomorrow. The ACC “intends” to play, and word has it that the SEC is continuing their plot for media domination by inviting schools whose conferences aren’t playing to participate. If I had to guess, I’d suspect that once B1G and another P5 conference cancels, the others will follow suit. Maybe the SEC is actually that foolhardy, though! We won’t know until it happens.

I don’t see a moral, ethical, or healthy way to have college students travelling around the country even just for in-conference games, though. It’s simply not possible, and baseball is currently proving it. This time, it’s going to be combined with the slowly-unfolding hell of university life. The issue of rights and leverage that NCAA athletes have, and the gross imbalance of power that exists between them and their school (and also against the NCAA itself!) is definitely one of the issues at play here, and my hunch is that the prospect of college athletes attempting to form some sort of organisation or union scares athletic directors and NCAA lawyers more than any virus does. I wish them well.


There should be a swear jar for judicial-related puns and wordplay regarding Aaron Judge.

See you next week.

  1. It’s 20:49 on Monday night. I’m eating a leftover pork chop and some tortellini. 

Last Week in Baseball (2020-08-03*)

I totally meant to publish this a day late under the expectation that the season would’ve already been cancelled. That’s my excuse and I’m sticking to it. Either way, I’m writing this on Tuesday night while watching Boston at Tampa Bay and honestly, how are you supposed to tell the difference between a game at Tropicana Field now and when they actually let fans in?


The broadcast woes continue, although the situation is constantly improving.

On WEEI, it certainly has sounded like they’ve got a variety of feeds available, but not all of them are perfectly in sync. Joe Castiglione’s broadcast partner described his feed, being ahead of Joe’s by a few seconds, as being “Altuve in the booth”. NESN, meanwhile, keeps cutting to their hilariously-socially-distanced studio in Watertown.

For what it’s worth, I enjoy listening to the game on radio far more than do on TV. This isn’t anything against the casters, but there’s just something about listening to the games on radio. It’s a little romantic, especially if you’re out driving at night. Even if I’ve only got the game on in the background, I’m likely to pick radio over TV.


Right now, I’m of the opinion that Eovaldi is the best pitcher on the Sox roster. More annoyingly, he might be the only good pitcher on the roster. There’s some issues offensively as well, but I have higher hopes that the Sox can get back in the swing of things1 on that side of things in the remaining 50 games. Even the best batting and fielding in the world won’t help when the pitchers keep letting the other team score, though.

The weekend’s rivalry series with the Yankees proved the point out. In a lot of ways, the series played out like every other Sox/Yanks series: lots of runs, long-running games2, and even the feeling that maybe, just maybe, any of the games were winnable. Unfortunately, there may not be enough games left in the season to climb out of the AL East basement.


COVID-19 continues to loom over the whole league, and professional sports at large. Several members of the Cardinals have now tested positive, and I still don’t know why the league hasn’t shut down. I’m legitimately shocked that MLB didn’t decide to halt the season at this point. This week has seen the start of school in some regions and things are already not looking good. There isn’t a safe or effective way to continue to run professional (or amateur, for that matter) sports right now unless the league sets up a bubble. Consider the Mariners a preview for when college football starts up in September. My bitter prediction is that the D2 and D3 leagues that have decided to not play this season will be able to claim a moral victory, if there’s anyone left at the NCAA to record it. There are already enough legitimate concerns about colleges and universities opening back up for students even before you get into playing sports, and even before you get into travelling to play those sports. The fact that college sports haven’t been cancelled across the board is a moral failing of anyone and everyone with decision-making authority in the matter.


Sam Adams, your beer’s pretty good, but I want to throw Your Cousin From Boston into a wood chipper. See you next week, hopefully.

  1. Your humble author cannot resist a bad pun. 

  2. Do we know what games Manfred watches most often? I would actually understand his strange obsession with making the game “more exciting” and shortening average game length if he only ever watches BOS/NYY games. 

Last Week in Baseball (2020-07-27)

I said I was going to watch every Red Sox game this season. Fate may make that task easier than expected.

This is going to be a bit of an experiment. I said in an earlier post that I was going to watch every Sox game and write about it – I don’t plan on writing about every game, though. I’ve decided to do a weekly summary instead, and hoenstly, a lot of might end up being longer versions of thoughts I’ve already tweeted. Let’s get on with it:


I was glad to see so many players choosing to support the Black Lives Matter movement. Even if there’s an element of sanitised corporate posturing to it all, so far the MLB at large seems to be allowing for more personal expression and encouraging shows of support more than other leagues I could mention.


The fake fan situation is extremely fucking weird. Cardboard cutouts are one thing, and the Phillie Phanatic is certainly having fun with all the new comedy props littered around the stadium. Fox’s CGI crowd is too inconsistent to work – you see it in some shots but not others. Why bother?

Fake crowd noise is also bugging me, although as the games progress they do seem to be working on making it sound a little more naturalistic. I’m still not convinced, though. Baseball casters are having a hard time getting used to not having a crowd too. I’m watching the Mets play the Sox at Fenway right now, and every so often they’ll say something like “and the crowd goes…. quiet.” Casters calling the game from off-site is a little weird, but in general it doesn’t seem to be an issue. A couple of exceptions:

  • ESPN shouldn’t even have an MLB contract at all this point. I’ve gone on record as saying positive things about A-Rod as a colour commentator in the past, but the national-broadcast games with him so far have just been brutal slogs of everything I dislike about ESPN broadcasts. I don’t think calling the game from Bristol is hurting matters, but it probably isn’t helping either.
  • West Coast games seem to be more of a mixed bag for them, with casters in various locations instead of socially-distant in one studio. It’s like being on a Zoom meeting – there’s lag between speakers, there’s crosstalk, it’s just not good. Maybe it’ll get better as the season goes on.

One often feels like the Red Sox have only been successful during recent seasons in spite of not having a fleshed-out pitching staff. Three games in, and I’m already having the same dark thoughts.


Reading too far into the temporary rule changes for this year is a bit of a fool’s errand. I’m an AL fan primarily, and although I do enjoy how the NL hasn’t got the designated hitter, I do think the universal DH is inevitable at this point. I’ll be a little sad to see it change.

Allowing pitchers a wet rag to wet their fingers is a smart and sanitary move that would be completely unremarkable if it weren’t for this comment from a Dodgers broadcast:

They’re trying to avoid a lot of mouth-to-ball contact.


What is Rob Manfred smoking, and why isn’t he sharing? I was originally going to write this Sunday night, but I’m glad I waited until Monday evening instead. This morning, we learned that numerous members of the Marlins organisation tested positive for COVID-19. This has serious ramifications for last weekend’s opponents, the Phillies, but it also throws a serious wrench in the works for the games they were going to play with the Yankees at the start of this week. With a 30-player roster, nine players being out of commission on the COVID IL is a serious chunk of your starting lineup.

More importantly, it raises serious questions about how the commissioner’s office plans to let the rest of the season play out. Letting games continue at this point feels reckless, and in any sane world it would mark a complete loss of confidence in Manfred. Away missions to Atlanta aside, the NBA’s Reedy Creek Bubble District has (so far) been an effective way to play out the remainder of the season. I’m far more optimistic about the NHL’s “focus city” Canadian Bubble Plan than MLB’s approach. At this point, the only thing I’m less optimistic about is whatever ridiculous scheme the NFL will inevitably attempt. Having sports teams travel around the country proved itself to be a bad idea within 72 hours, and that’s before we consider having to temporarily relocate the Toronto Buffalo Blue Jays & Weck.

I was desperate for the baseball season to start back up, but it’s becoming apparent that they shouldn’t have started in the first place. Every damn sportswriter and think piece out there has already dropped this quote, but I’m going to quote Sean Doolitle too:

… We’re trying to bring baseball back during a pandemic that’s killed 130,000 people. We’re way worse off as a country than we were in March when we shut this thing down. Look at where other developed countries are in their response to this. We haven’t done any of the things that other countries have done to bring sports back. Sports are like the reward of a functioning society. And we’re trying to just bring it back, even though we’ve taken none of the steps to flatten the curve, whatever you want to say. We did flatten the curve a little bit, but we didn’t use that time to do anything productive. We just opened back up for Memorial Day. We decided we’re done with it.

Baseball is, to me, a more representative sport of America than any other. This is true for the highs, and it’s especially true for the lows.


If any bookies are taking prop bets on whether any games actually get played beyond 1 August, let me know. To close this post out, here’s the box score I posted on Discord a few innings into Thursday’s Dodgers game, where ESPN had some technical difficulties coming back from commercial breaks:

     R H E
SFG  0 2 0
LAD  0 0 1
ESPN 0 0 2

See you next week.

Tracking Airplanes with a Raspberry Pi On The Cheap

This is one of those projects I’ve wanted to get off the ground1 for a while and never got around to doing. I’ve got lots of time on my hands nowadays, so let’s get right down to it:

Using just about any Linux computer (a Raspberry Pi works great) and a $30 USB TV receiver, you can track the airplanes that are flying near your house.

An Extremely Brief Explanation of RTL-SDR

DVB-T is a standard that defines the method of digitally broadcasting TV signals used in Europe, much of Africa, and several other countries not named America.2 Due to an extremely happy accident, one particular chipset used in some small USB-based DVB-T tuners can also be used to pick up signals from across a wide number of frequencies, and output the data in a raw stream that a computer can make sense of easily. As of writing, using an RTL-SDR USB stick is the cheapest way to start tinkering around with Software-Defined Radio, or indeed any kind of advanced radio tinkering. Since these dongles are so cheap, if you don’t already have a Pi lying around, this whole project can be completed for under $100.

An Equally Brief Explanation of ADS-B

In addition to using radar to track airplanes, many national aviation authorities are now using Automatic dependent surveillance-broadcast to improve navigational/control services. An ADS-B equipped plane broadcasts its own position and speed (derived from onboard instruments and an onboard GPS tracker), in addition to its callsign and registration number. This data is received by air traffic controllers, but can also be received by other airplanes (to show local traffic on a cockpit display), or by enthusiasts who don’t mind setting an antenna and receiver up.

ADS-B transmissions are broadcast at 1090 MHz around the world by most planes as of 2020. In the United States, general aviation aircraft can alternately broadcast at 978 MHz. RTL-SDR receivers can also pick these transmissions up, although not simultaneously on the same receiver – if you want to pick up GA planes on 978 MHz, it’ll require another tuner and some slightly different configuration. This post only covers 1090 MHz operation.

Many countries around the world require aircraft to be ADS-B equipped, so no matter where you live, you should be able to pick broadcasts up from nearby planes.

Hardware Requirements

There’s only two things to buy here:

  • A Raspberry Pi (or any Linux-capable computer you can leave running 24/7)
  • An RTL-SDR compatible DVB-T tuner and antenna

Which Pi?

Running the software needed for ADS-B isn’t resource-intensive, so a Raspberry Pi 3B (or even the 1GB 4B) is more than sufficient. I’m using a 3B and it typically peaks at using 25% of CPU, while RAM usage rarely breaks over 130MB.

If you’ve never used a Raspberry Pi before, there is some assembly required. At minimum, “buying a Pi” really means buying the following:

  • Raspberry Pi board itself ($35)
  • Power supply ($5 or so)
  • MicroSD card
  • A case (optional, $5 to $20 depending on how fancy)3

What Tuner?

The RTL-SDR site sells compatible DVB-T USB sticks, including a bundle with a small antenna to get started with. There are others available, like this one that I bought. This isn’t an endorsement of either one, and you should see similar results no matter what RTL-SDR tuner you end up with. You can also start going down the radio rabbit hole of improved tuners, building an antenna, filtering the signal in some way if necessary, etc. – although extremely fun, it’s not at all required to get started. You may also be interested in the other ways you can use an RTL-SDR – if you’re thinking about leaving the ADS-B receiver running full time, consider buying another tuner for that purpose so you can leave the ADS-B one running undisturbed.4

How To Start

Okay, that’s enough background, it’s time for the fun part.

Preparing the Pi

The Raspberry Pi should be running Raspbian, a special version of Debian Linux made specifically for a Pi. I’d recommend using the lite/headless version, since the Pi will be running 24/7 without a monitor attached. All of the configuration can be done over SSH. To that end, after writing Raspbian, follow these official guides to enable SSH from the start and let it connect directly to a wireless5 network:

After the Pi is set up and ready to go, SSH in and connect the RTL-SDR tuner.

Installing Software

There are quite a few guides out there for setting an ADS-B recevier up, and I made heavy use of this particular one to get started. There’ve been a few changes since that one was written, though.

The most important program involved in this process is dump1090, which receives the output from an RTL-SDR device on 1090 MHz and decodes the ADS-B transmissions. All the other software simply reads the data output from dump1090. As of publication, the most up-to-date version is maintained by FlightAware.

1: Install librtlsdr0

The RTL-SDR drivers are available from Debian repositories by default:

sudo apt-get isntall librtlsdr0

After this, download these udev rules so non-root users can access the tuner:

sudo wget -O /etc/udev/rules.d/99-rtl-sdr.rules https://raw.githubusercontent.com/osmocom/rtl-sdr/master/rtl-sdr.rules

2: Install dump1090

Grab the latest release of dump1090-fa from FlightAware’s GitHub repo and extract it. Follow the build instructions, reproduced here:

# Install required packages for build
sudo apt-get install build-essential debhelper librtlsdr-dev pkg-config dh-systemd libncurses5-dev libbladerf-dev lighttpd
# Package the program for installation
dpkg-buildpackage -b
# Install the newly-made package and reboot
dpkg -i ../dpkg -i dump1090-fa_3.8.1_armhf.deb
sudo reboot

Confirm that dump1090 is working:

  • Check the systemd service: systemctl status dump1090-fa
  • View the raw SBS-format output: nc localhost 30003

The package installer should have also configured lighttpd to display a web interface – if it doesn’t, move the configuration files from dump1090-xxx/debian/lighttpd to /etc/lighttpd/conf-available and enable them. We’ll check in on that web interface later.

3: Install Feeders

Once dump1090 is up and running, we can install the software needed to feed the data into other online services. I’m feeding the following sites (links to install instructions):

Both flightradar24 and FlightAware offer a free premium membership for as long as you continue to feed ADS-B data, which is a nice little perk. You should also be able to see a local view of your receiver’s data by opening a web browser and going to http://<ip_address>:8080 from another computer on the same network. The FlightAware fork of dump1090 features a web interface branded by them, but functions otherwise identically to older dump1090 installations.

Wrapping Things Up

What’s the point of all this? If you live somewhere without heavy ADS-B coverage, it can help improve tracking data. Even if your area is well-covered, it’s a fun way to dip your toes into software-defined radio. You may need to experiment with antenna placement for best results – generally speaking, an antenna placed in a window is going to fare better than one placed far inside the house.

Look out for another post soon, where I’ll be talking about some extra modifications to the basic setup here, and some of the other ways you can view the received data.

  1. Pun intended. 

  2. North America uses ATSC, because the United States is bad at just using international standards and we prefer to invent our own. As such, you won’t be able to use the DVB-T stick to actually receive TV signals if you’re in North America. 

  3. I like to use a case, it makes the whole thing look nicer and there’s less risk of damaging the Pi in some way. 

  4. Naturally, this is exactly what I did. 

  5. Using WiFi instead of a wired connection may cause radio interference. If you have the ability to connect the Pi using an Ethernet cable, it is usually the recommended option. Having said that, I’ve been running mine over WiFi for a couple of months now without any issues. 

Baseball in the Time of Corona

Today was supposed to be Opening Day.

I have it marked on my calendar, like I do every year. There’s a countdown on my phone, just like every year. Opening Day might be the best day of the year for me – so much so that I actually bother to use capital letters for the proper noun. Moreso than the first day of spring (it’s usually still cold anyway), Opening Day marks the end of winter, the beginning of a new season (both ecologically and in terms of sport), the beginning of a fresh start. The first couple weeks are still cold, sometimes even snowy, but by the time April comes around, it’s the kind of weather where you can drive around with the windows down and listen to the game on the radio. Maybe, just maybe, you can sit on the balcony and enjoy a game as the sun sets behind the trees.

That is, of course, if the season was actually starting today. It’s impossible to list all the things that’ve changed in the past couple of months, The mass cancellation of major sporting events, and the delay of Opening Day, aren’t even all that important. They pale in comparison to the incredible and daunting efforts to save lives and protect the health of those of us who are lucky enough to not (yet) catch the coronavirus. Merely writing this post is an act of extreme privilege, coming from someone who is healthy, able to work from home, and still has a job that pays the rent. Today will come and go without a single inning of baseball, and it’s for the best that it does. Packing 40,000 people into a stadium is a terrible idea when gatherings of 10 people are now considered dangerously large.

Rationally, this all makes sense. Emotionally, I’m still sad about it. For the past few years I’ve watched most of the 162 games that the Red Sox play, and a fairly significant number of Dodgers games too.1 This year, I was going to try and watch every single Sox game, whether live or a recording the next day. I was going to write about it, too. This little blag has been painfully neglected for its entire existence, and I thought writing about the games I’ve watched on a regular basis would be a good creative outlet.

I hope that baseball starts back up this year. If it does, I’m going to watch every game. Until then, wash your fucking hands.

  1. Why the Dodgers? I used to work second shift. Watching a west-coast night game is a great way to pass the time during a boring shift – at the time, listening to Vin Scully call a game was truly one of the best ways to spend an evening.