David Eisinger

Journal > Dispatch #7 (September 2023)

Posted 2023-09-08 under #dispatch

We were down at Lake Norman for the long weekend, and as I was pulling up the kayaks this morning, I couldn’t help but feel like I was also sort of putting away the summer – what a summer though. The last few weeks of August were pretty wall-to-wall. I went up to the Eastern Shore in Virginia to spend a long weekend with some old friends. Our rental was right on an inlet off the Chesapeake, and they had a stand-up paddleboard I was able to take out.

The following weekend, we headed up to Rehoboth Beach in Delaware to spend the week with my family. It’s different than the North Carolina beaches we’re used to as there’s a lot to do around the town (boardwalk, parks & playgrounds, indoor amusement park). We brought our bikes and took a ride on the Gordons Pond Trail, which was rad.

We also recorded this little jam featuring my 3.5-year-old niece on the melodica:

From there, we drove 400 miles to Greensboro, and then onto Lake Norman to spend Labor Day weekend with Claire’s family, a relaxing way to cap off an eventful summer.

As one might imagine, this involved a lot of driving, and to pass the hours and miles, I tried something new: listening to audio books. My local library has a good selection which integrates with the Libby app. I listened to:

I also started a low-brow thriller and was surprised that it was the same narrator as Left Hand; I guess this guy records a lot of audio books.

We got hit with a nasty storm in the middle of August. It was wild – hot, sunny day during my scoot home, then 5 minutes later, hard rain/thunder/80mph winds. We were without power from 4pm until 8pm the following day, and the damage through the city was intense. Phones weren’t working very well, traffic lights were out, and even places that had power were cash-only as the credit card systems were down. Fortunately, we have a good set of camping equipment which doubles as disaster preparedness gear, but it made plain the fragility of modern society.

I did a couple projects in Go this month:

The first, the fantasy draft TUI app I mentioned last month, came together well and quickly. It was straightforward to set up TOML for configuration, SQLite for data persistence, and Bubble Tea for the UI. Bubble Tea’s super cool – you pull in your widgets (two in my case, for a table view and a search box), and you can respond to keypresses or let the widgets handle them. As a result, my UI has Vim keybindings without me doing anything, which was super handy during the draft.

I played around with ChatGPT while I was working on it, asking it to make my code more idiomatic. This worked super well, and some of the refactorings were really clever. This seems like a sweet spot of LLMs – I already had working code and wasn’t asking it to solve complex problems, just to make my code look more like the other code it knows about. I also used it to come up with a name for the project, and it came back with golong, which is just 🍒.

The second was for work – we needed to crunch some data coming out of Forecast and the nature of the data (forward-looking, ever-changing) makes it a poor fit for our usual tech. I decided to write a command-line program that reads two CSVs and outputs a third, which we can then import into a Google Sheet. Then I set up an AWS Lambda + API Gateway that serves a very simple web frontend so other folks can run it. This was fun and useful, though it was really low-level programming – parsing multi-part form bodies, reading and writing basic auth headers, etc. If I were to do something like this again, I’d look for a library that adds additional functionality on top of the basic AWS Lambda request/response stuff. I was able to do some testing with Testify and learned a lot about structuring slightly larger Go codebases.

Working with a typed language, a good language server (gopls), and an editor that supports it well (Helix) is a joy – I can see why people are excited about languages like TypeScript. I’ll get golong cleaned up and up on GitHub, then write a more detailed post about it.

Final thought: someone (my father-in-law, I think) asked if we thought Nev would remember all these adventures we’re having with her, and I said, no, but that’s OK and not really the point. Even if she’s not yet capable of forming lasting memories, these experiences are forming who she is. We want the first international flight she remembers into adulthood to feel like a familiar thing in the moment. Plus she’s such a delight that experiencing new things with her and sharing her with the world is a source of deep joy for us.

This month: