Automate the Boring Stuff with Python

Sometimes it’s fun to read easy books, and this was an easy, fun book. It didn’t go into as much depth about Python as the Python Tutorial on the Python website, but it covered the basics, then went on a romping overview of using all sorts of libraries to perform tasks you might need to perform. Some of the tasks were pretty relevant, like loading an Excel file, working with JSON, or sending yourself an email; others were cool and could be put to creative uses, like driving a web browser with Playwright or working with a SQLite database; and some were kind of niche topics that I’d look back up if I ever needed to deal with them, like working with XML, OCR, or speech recognition. They were all kind of fun to play with, so I enjoyed reading this book. ...

September 19, 2026 · 1 min · 145 words · Lewis Cawthorne

Powerful Command-Line Applications in Go

This was a good way to see a number of non-trivial applications in Go. It tackled real projects like a Markdown Previewer and a Port Scanner and used production-grade libraries like Cobra for command-line arguments and Viper for configuration settings. The Markdown Previewer was probably good enough for me to consider using it. Honestly, Cobra and Viper were good enough libraries that it makes me start looking at what my options are for command-line parsing libraries early when studying a new language now. A lot of the examples were big to type, but that is good since it made me feel more comfortable with the language. They were also complicated enough that I made mistakes and got to deal with error messages from the compiler. I will say I was disappointed multiple times that Go’s compiler points out the first error it finds and then stops, so when you fix it you might just be greeted by another error. It’s not like Java or Kotlin where the compiler spits out 10 errors and 5 are probably caused by the earlier errors but the other 5 need to be corrected. The pomodoro app was actually quite usable after I got past the fact that it wouldn’t display correctly in tmux. That was a hard debugging session wondering what was wrong with my output from typing up the code before I finally pinned the blame on running it in a tmux session though, since having a tmux session is just getting so normal to me. Not only did I learn a lot about using Go for small to intermediate-sized projects, but I learned a lot about writing good command-line apps that I can take with me to other languages. ...

August 28, 2026 · 2 min · 290 words · Lewis Cawthorne

Head First Go

Overall, it’s what I expect from a Head First book. It was a perfectly serviceable introduction to the Go programming language. Although it’s a Head First book, I feel like it treated me like an experienced programmer and didn’t waste a lot of time explaining how an if expression worked. Unlike Head First Kotlin which never got to a lot of things that it had to toss into Ten Brief Topics in the Appendix, it felt like it covered all the main topics that needed to be covered to understand Go. It even includes coverage of automated testing and a couple of chapters on web apps. ...

August 11, 2026 · 1 min · 109 words · Lewis Cawthorne