Last Week or So of Programming: Python, CircuitPython, Scratch, Arduino, and MakeCode
Because I’ve been busy with programming and other tasks (including getting re-addicted to Cities: Skylines), I’ve got a roundup from about the last week or so in programming.
Python
Python Morsels
I got the mid-tier of the Pycharm Humble Bundle which came with a bit of a subscription to Python Morsels. Every week Trey Hunner, a Python trainer, sends subscribers a problem to solve along with a few bonus questions to deepen the learning. Here’s what I’ve loved so far:
Review: A Man On the Moon: The Voyages of the Apollo Astronauts
A Man On the Moon: The Voyages of the Apollo Astronauts by Andrew Chaikin
My rating: 4 of 5 stars
The book that was used by Ron Howard, et al to make the Apollo 13 movie!
I got this book as part of a space-themed Humble Audiobook Bundle. As I was choosing the next audiobook I’d listen to whenever I ran out of podcast, I decided to go for non-fiction book. And so I started my journey through a couple decades of NASA history. Once things get going (ie the men are on their way to the moon), Chaikin does an excellent job of switching POVs throughout the mission to give us some insight into each man’s thoughts, challenges, and even prank ideas. Since hacks/hackers originate with the MIT train team and the Stanford/Caltech student pranks, it’s no surprise that NASA missions had the same kinds of Easter Eggs one finds in video games (especially in the more wild-west era of video game development before everything became AAA multi-million dollar games in the late 90s; of course with the re-emergence of indie games you’re seeing them again). As examples, there were jokes embedded in their instruction manuals, various parts of the spaceships, or in coded messages back and forth with NASA HQ.
As someone born a generation too late, with the much less exciting Hubble, Spacelab, MIR, etc in my lifetime, Chaikin did a great job of both putting me into the mindset of America at the time and humanizing the astronauts. (Like the best historians do for the Founding Fathers we always learn about from a distance in school). If you’re interested in NASA history, I think it’s harder to find a better recommendation than this book.
Trying out the Code Syntax Block Plugin
I’m not a huge fan of plugins for key parts of the site. There are some blog posts that no longer make sense because they used, for example, the iframe plugin to embed Google Maps. That said, my previous solution for displaying code on the site - special CSS is also brittle because I lose it whenever I change themes. I think at some point I also lost it when I upgraded a theme. So, since Wordpress is all about blocks now, thanks to Gutenberg, I’ve decided to try out this Code Syntax plugin I heard about on Wordpress Tavern.
Review: Clarkesworld Magazine, Issue 133
Clarkesworld Magazine, Issue 133 by Neil Clarke
My rating: 4 of 5 stars
As usual, the per-story reviews are below this section. But first, a ranking of said stories.
The stories I REALLY liked: The Sum of Her Expectations, The Last Boast-Builder in Ballyvoloon, Intro to Prom, Shiomah’s Land
Great: Red Lights, And Rain
Good: The Psychology Game
Not a fan: The Nightingales in Platres
The per-story reviews:
The Sum of Her Expectations: First of all, I love what the title is a reference to within this story. I like the idea of the aliens and I also love the possible metaphor of what happens with the contruction bots in the planet they’ve left behind. In the end, the story is a metaphor for dealing with trauma and I really like how it came together.
The Nightingales in Platres: An alternate future story in which some Greeks get on a generation ship to try and emigrate to a new planet. I’m not a fan of how the story went, but they can’t all be something I love.
The Last Boat-Builder in Ballyvoloon: A future in which we created an AI “organism” to remove plastics from the sea and things got out of hand. I think more of the public needs to read stories like this before we try some hare-brained idea to deal with climate change or pollution.
The Psychology Game (translated): A future (except it takes place in 2020 ;) ) in which there’s a reality TV show where people get psychological help. The twist is that the psychologist might be an AI and neither the patient nor the audience knows. Turns out to almost be in the structure of some of the non-fiction in Clarkesworld where it’s exploring a non-fiction subject with some fictional examples. Also, never thought of this before:
“And to be honest, human therapists have feelings too. If you keep on unloading your emotional garbage onto them, wouldn’t they suffer too? Sometimes I think using human therapists is kind of inhumane.”
Intro to Prom: Oh, man - what an incredible story. A perfect tale of corporate greed and how it affects the little folks. I can 100% see something like this actually happening (which is sad and scary). WOW.
Shiomah’s Land: I correctly guessed what’s the twist would be in terms of the origins of this world. But that did not take away from how well-written it was and how it made me feel the emotions of the main character. I’d love to read another story in the same universe.
Red Lights, And Rain: The fallout from a time war. It takes a lot of good twists and turns and I was not expecting the ending.
I can't believe this blog is 15 Years Old!
I missed the 15 year anniversary this February because I was busy with family visiting and then COVID-19 happened and next thing I knew it was the end of July and I was realizing just how long this site has been around. The crazy thing is that in my first blog post on this blog, I wasn’t even sure I’d stick with it. Yet here I am, with a blog that’s essentially been with me for my entire post-college life. While I started off with the generic Wordpress theme, 15 years ago in July I had the following theme:
Opening Adabox 015 - Come to Your Sensors
I’ve been awaiting this Adabox forever because of the pandemic. It’s finally here. Celebrate my excitement at my first Adabox!
Today in Programming: MakeCode and Python
Python
A user of my Extra Life Donation Tracker program discovered that I had introduced a regression for brand new users who didn’t have a persistent setting. I thought about it overnight and it was exactly what I thought it would be - when I switched away from threading for the GUI, I forgot to add a way to tell participant.py to reload its settings values. I also decided to take a page from a programming podcast I heard recently and change the settings GUI to only have a “Save” button instead of a persistent save button AND a Save button. Especially when I wanted most people to hit persistent save, and that’s not what they’d most likely do by default. So I ended up making 5.2 release to fix both of those issues.
Last Few Days in Programming: Python and Arduino
Python
Spent the last few days finalizing the 5.0 release of my Extra Life Donation Tracker and then pushed ahead to get version 5.1 out. Here’s the PyPi page if you want to use it for your Extra Life live streams.
Arduino
I got back to my BBQ Themostat project and did some minor programming while trying to figure out how to run a computer case fan. So far I’m still working on the wiring aspect of this part of the project, but some folks on reddit did point out that part of my problem was getting a pair of my BJT connections mixed up.
Today in Programming: Microsoft MakeCode
With the twins, I messed around with a Neopixel strip. Not sure what I’d do with one in a future project, but at least I know how to program it in MakeCode now. Our project:
Messing around with the Neopixels Strip
Today in Programming: Microsoft MakeCode
Since I’ve been making a lot of great progress programming with the kids in Scratch, I bought some Circuit Playground Expresses to program with the kids. The Circuit Playground Express can program in Arduino’s C dialect, CircuitPython, or Microsoft MakeCode, which uses blocks like Scratch. Today Scarlett and I made our first useful bit of code, a digital spinner we called The Sibling Chooser. Here’s the code, and you can see that it is indeed like Scratch: