Review: Prime Deceptions
Prime Deceptions by Valerie Valdes
My rating: 4 of 5 stars
Our favorite Cuban spaceship captain is back and I enjoyed it even more than the first book. Now that Eva is her new self and knows there isn’t any more lying to her crew, they can move on to more fun adventures. This book is essentially one long quest to find a specific person and Eva and crew’s attempts to figure out where that person is.
Review: The Black Tides of Heaven
The Black Tides of Heaven by Neon Yang
My rating: 5 of 5 stars
I would probably more accurately rate this book as 4.5, but I decided to round up.
Yang does a perfect job in this novella creating just enough history for the world that we feel as though it’s gone on forever. It’s mostly focused on the two main characters, Mokoyo and Akeha, and yet there is so much happening in the background that we learn just enough about. I see it almost as a template for what the time between Sanderson’s Mistborn Era 2 and Era 3 might be like. In this story the world, which seems like a second-world Indonesia (lots of Chinese and Indian infuence), runs on magic-based devices. Only the government Tensors can create these devices and from there comes some of the government’s source of power - the monopoly on technology. In this novella (which spans 35 or so years) a faction grows that begins to invent science-based machines. All of this is fascinating, yet in so many ways it has nothing to do with plot propelling our story.
Review: Save Yourself, Mammal!: A Saturday Morning Breakfast Cereal Collection
Save Yourself, Mammal!: A Saturday Morning Breakfast Cereal Collection by Zach Weinersmith
My rating: 3 of 5 stars
I’m not going to waste time looking it up, but I believe this was SMBC’s first collection. So Weinersmith (or whoever didn’t the formatting) hadn’t figured out the formatting. In order to save space, the comics are all over the place instead of one per page. This isn’t horrible, but it does mean there’s a little extra time to think about each page and see whether this is one large comic (as is sometimes the case) or a bunch of smaller ones.
Web Browsers: Vivaldi Features and Firefox News
This post continues a series on exploring new browsers (last few posts):
- Vivaldi Part 4, Brave Part 2, Qutebrowser Part 1
- Examining Web Browsers: Microsoft Edge on Windows; Linux Browser Update
- Web Browsers: Linux Update; Firefox mistakes
Vivaldi
About 4 years ago I decided to start exploring various web browsers. Eventually I settled on Vivaldi as my main browser both on Windows and Linux. When I first installed Vivaldi, I mentioned that vertical tabs are very helpful on a wide screen monitor. I also really like the ability to tile my tabs and to name my tab stacks (because other browsers like Chrome have also added tab stacks) While at PyConUS I posted to Mastodon:
The XZ Utils Backdoor has (finally?) penetrated the non-tech press
Those of us who are deep in the tech world remember about 6 weeks ago when all our social media and news feeds were talking about the XZ Utils backdoor. ( Here’s a great writeup from my favorite tech site, Ars Technica)
Really quick, bulleted recap:
- XZ Utils is a really awesome compression format. (In fact, earlier this month I got some Linux image files to run off an SD card that were compressed in xz
- SSH uses XZ Utils
- Only one guy was effectively maintaining it
- Someone or some group pretending to be one person social engineered the maintainer to giving them commit access
- they used that to put some backdoors
- Because it’s in SSH it would have made every computer on the net vulnerable
- LUCKILY it was found (by accident - see the Ars Technica story) before it made it out of most (all?) Linux distro test repositories
I was incredibly surprised to hear about it today on Planet Money’s episode: The hack that almost broke the Internet. It’s a really great episode to share with your non-techie friends who want to understand what you were stressed about and which it matters to everyone, not just techies. Of all the Linux distros, they start off interviewing someone from Red Hat! (My favorite Linux distro family) The episode then goes back to the 1980s to explain the origins of open source (not FLOSS, there’s no rms here - it’s Bruce Perens they interview) before bringing it back to the present and explaining the how the social engineering attack happened and what it affected. (Also a quick moment that explained how MS went from hating OSS to supporting it) I thought it was an incredibly well-produced episode that brings everything into context for those who aren’t neck-deep in Linux and/or open source. Give it a listen and pass it along!
Red Hat and Family Release 9.4 and a Rocky Linux Take Down
Red Hat released version 9.4 today. Lots of jargon (including a mention of AI), but one of the big deals considering how long Red Hat support contracts go is the addition of ARM64 as a supported architecture. 9to5Linux also had a summary of the new features.
I remember back before CentOS became CentOS Stream there would always be a long lag time from RHEL releases until CentOS. That’s why I was so surprised to learn that Alma Linux 9.4 is also available today. What I found neatest about Alma is the way they’re distinguishing their distro. Why just go for another RHEL clone? Well, in this case Alma Linux is decided to support hardware that had been deprecated by Red Hat. So now they get to position their disto as a useful alternative, not just a free offering - more important now that you can have up to 16 free RHEL licenses.
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.