Programming Jan-April 2024
This year started off pretty light when it came to programming because I’ve been addicted to the video game Against the Storm since last winter. But I eventually started working again on various projects - some old and some new. I didn’t do any programming in January, so we’ll start in February.
February and March
Over these two months I worked on my replacement for web access to my Taskwarrior TODO list because Inthe.am had shut down. In February I got the podman containers set up - one to run the taskd server and one to run the website I’d coded up in Flask. In March I had to write some rudimentary Javascript to get the website to highlight the selected tab (Overdue, Today, This Month, etc). The rest of the interactivity on the site works using HTMX, letting me focus on Python instead of Javascript, but I just wasn’t able to get that part of the site to work without a tiny bit of Javascript. I also added some fixes because the date/time widget assumes UTC. Of course, now that I have it all working correctly and get lots of use for it (especially when I’m at work and I want to quickly get something out of my brain’s short-term buffer), Taskwarrior went to 3.0 which completely changes the way the program works, the API, and the way syncing works. I think in the end it’ll be for the best, but it’s annoying that I need to figure this out. That may involve finally learning how to use PyO3 to interact with Rust or re-writing part of my backend in Rust. We’ll have to see where that goes.
A sure way to know you're a Computer Geek
Last night I woke up in the middle of the night from a dream where I was at a programmer convention. A bunch of devs were arguing and they came to me to be the deciding factor for the future of the KDE Plasma 6 project. Each was very passionate about the direction they wanted to go. I woke up really stressed and glad it was a dream.
A few thoughts on Programming languages
Just a few thoughts on programming languages that have been rattling around in my head this week, but which don’t each merit a full blog post. The main theme is that the culture behind each programming language leads to some interesting choices, as is the case with spoken languages.
This week I started learning how to program in Rust. Even though I’m using the project-based Command-Line Rust to learn, the author still went with the traditional “Hello, world!” project for the first intro to the language. I was also working on a Go project last week and so it immediately stood out to me that (at least as taught by this author) Rust has the print! macro that allows you to succinctly print to the command line. By contrast, Go requires importing fmt before you can print. This was the first topic that was swirling around in my head this week. What makes language designers choose whether printing output (one of the most basic things a program can do) is built-in or requires an import. I even remember back when I was learning Java in undergrad (I think it was Java 1.8, but I don’t remember) we had to use the savitch library just to get program input (another very basic computer program concept). As I thought about it, I wondered if it has to do with thoughts around compilation and whether the language designers think you’re mostly making user-interactive programs or libraries? It makes sense to me that scripting languages like Python, Ruby, and Perl would have print built-in since you always have to have the interpreter along with you, so all the basics should be there. (The original Batteries Included Python promise, for example) But perhaps the Go developers thought you wouldn’t always be printing to the command line so a more efficient binary could be compiled by forcing you to import the functionality? I’m not entirely sure.
Review: If Hemingway Wrote Javascript
If Hemingway Wrote JavaScript by Angus Croll
My rating: 3 of 5 stars
The intro mentions the natural language nature of Javascript. I wonder if the book had been concieved a few years later if it would rather have been Python or Ruby - both of which are way more like human language than Javascript.
The book is fun and I mostly get it, but to truly get what the author is doing here, I think you would need to be a Javascript dev. The whole point is that the author is nerding out not only on the writing style of the authors they have chosen, but also converting that into Javascript coding styles. As someone who programmed in many languages, but hasn’t touched Javasscript in the the mid-90s, a lot of the elegance of this book is lost on me.
Review: Walkaway
My rating: 4 of 5 stars
Got this book for free from the Tor Ebook Club
This book is a refinement of many topics that Doctorow has broached in the past:
- uploading of consciounesses/backups and how that changes things
- living in Capitalism vs leaving capitalism behind
- the violence often used to maintain compliance, even in non-totalitarian countries
- contractors involved in the above-mentioned violence inherent in the system
Federation Test
I had to change my wordpress username as it contained characters that were fine back when I started this blog in 2005, but didn’t work for federation. So this is a test to see if the post will properly federate now that I’ve changed the username. Here’s hoping!
Fedora 40 is out today!
Back in 2013 when I started using Fedora Core 1, I had no idea I’d still be on Fedora when it reached its 40th release 11 years later. Congrats to the team and here’s the official announcement.
Review: Chilling Effect
Chilling Effect by Valerie Valdes
My rating: 4 of 5 stars
Description in one line? Cowboy Bebop meets Mass Effect with a Cuban protagonist.
I grew up in Miami, Florida so having a main character speak in “spanglish” brings me back to my childhood. The narrator also nails the voice of our main character, Eva. Overall, the narrator does a good job distinguishing the voices of all the main characters although a character we meet near the end - think this book’s version of the Ed character from Cowboy Bebop - doesn’t get an original enough of a voice to distinguish her in a few scenes.
Review: Maangchi's Real Korean Cooking
Maangchi’s Real Korean Cooking by Maangchi
My rating: 3 of 5 stars
This book is a companion to Maangchi’s youtube channel. It teaches you how to cook the way she cooks. So it’s authentic to her even if it’s not what you’re used to from Korean BBQ. The recipes are a good jumping off point to tweak the flavors to match what you prefer.
Review: RELIGION: Ruining Everything Since 4004 BC
RELIGION: Ruining Everything Since 4004 BC by Zach Weinersmith
My rating: 2 of 5 stars
I’m generally a fan of Saturday Morning Breakfast Cereal (the source of these comics) and even though I would identify myself as a Christian, I’m not one of those easily-offended, book-banning types. I found lots of the jokes in here funny, even the ones a more self-serious person would find blasphemous. But all collected together, some of the jokes get a bit repetitious. There are several “why do good things happen to bad people” comics, a few “are you in heaven or in hell?” comics, and at least 2 “do animals go to heaven” comics. Weinersmith does also find some humor in Zen Buddhism, but even some of those are repetitious in theme. I think, really, it’s more the case that there aren’t really enough jokes to tell about religion to create a whole book without repeating yourself. (Even my review is starting to repeat itself!)