Review: Summer Knight

Summer Knight (The Dresden Files, #4)Summer Knight by Jim Butcher
My rating: 4 of 5 stars

Things continue to evolve in Dresden’s Chicago. By this point it’s become obvious to me that the main series (as opposed to short stories) requires the reader to read them all in order rather than just jumping in to any particular case. Like a season of Buffy the Vampire Slayer, each story builds upon the previous one. This one contains characters from Fool Moon playing a huge part, a deal that Dresden made in Grave Peril forcing a big part of the plot, and both women in his life only have resonance if you’ve been reading since the first book.

As far as the case, I think it proceeds on a good pace. While, as usual, I couldn’t solve it ahead of time, all the clues are there for you to trace back and see that Jim Butcher isn’t cheating. This one involves The Fae and so it’s a good thing that over the past 3 years of fantasy humble bundle books, I’ve been learning about faerie rules. They do a decent job explaining stuff, but knowing that there are Summer and Winter Sidhe Courts ahead of time allowed me to just focus on the story.

As I was recommending this book to a fellow SF fan, I realized that this book (and the series so far up to this book) is VERY male-gaze-y. It doesn’t bother me, but knowing about that (and this book was – SURPRISINGLY – written almost TWENTY years ago), does make me think twice before recommending it if the person might take that the wrong way.

Anyway, I’m definitely enjoying the series and it’s on to book 5 whenever that shows up in my To-Read list.

View all my reviews

New Dishes I cooked in May 2020 and June 2020

May was Cuban food month. I’d received a new cookbook of recipes from the Miami diaspora and back in Cuba. So I tried my hand at a few new recipes. Technically, I’d done the breaded steak (usually called Chicken Fried Steak in the USA) and pork shoulder Cuban style before, but this was the first time doing it with these recipes. I was very happy with all the results, although I learned a few things along the way for the next time I make these dishes.

I’ve got a few different recipes for arroz con pollo (rice with chicken), so this dish will probably appear a few more times. This one was from the same book as the May recipes. It came out great, although I was worried the whole time that it might come out too soggy compared to versions I’ve eaten before. Danielel loved it, and that was the greatest praise. She was originally against the blueberry cornbread, but came around once I went ahead and baked it. Brussels sprouts are the mini-cabbage I’ve learned to love in adulthood. This was yet another recipe for roasting them in the oven.

Review: Stronger Than a Bronze Dragon

Stronger Than a Bronze DragonStronger Than a Bronze Dragon by Mary Fan
My rating: 4 of 5 stars

This is the second book I added to my to-read list after meeting Ms. Fan at Farpoint 2019. Even though both Starswept and this one are rated 4 stars, that’s more a consequence of only have 5 stars to choose from, because I enjoyed this book more than Starswept. STaBD had two things going for it steampunk and immediate action. Taking the last one first, as I noted in my Starswept review, the early, slow chapters are key in providing a base from which to deviate in later chapters. But there’s just something so exciting about a book opening up with a bunch of warrior women fighting demons that makes you want to keep going. (By the way, I’ll admit to my unconscious bias – until specifically called out, I’d assuming our main character was a man)

So … Steampunk. I’m not the type of person who cosplays Steampunk or anything, but as a genre it always starts things at a higher level when I find myself in a Steampunk world. Ms. Fan, however, has given me something new and fun here. Most Steampunk takes place in England, The Commonwealth, and occasionally, on The Continent. But this story takes place in Victorian China. And it has demons and ghosts and stuff and my ignorance over Chinese mythology leaves me unsure how much is made up by Ms. Fan and how much is known mythology.

The story turns out to be part mystery, part unwanted arranged marriage, part Mulan, and part romance. And it works! Sure, Anlie is a bit of a Tsundere character and that can get a little tiresome, but she does eventually learn some character growth. If you like Steampunk, but are tired of the same old stuff, check this out and you may find yourself pleasantly surprised.

View all my reviews

Laptop Lid Stickers

Because of my age relative to the era of computer, for a good portion of my life computers were Serious Things used for work and school. They also belonged to the family and there’s no way we could have gotten away with putting stickers on them without getting in trouble. So back in 2006 when I went to Blackhat and Defcon, for the first time I saw people’s laptops covered in stickers. The EEE PC (new at the time) had a meetup session where I saw others who’d painted their machines various colors. I’d ended up with a bunch of stickers after Blackhat and Defcon, so I decorated my first-ever laptop, an Acer.

Acer Laptop

The Acer is still in the family. It was my daughter’s laptop until she got a new one from my mom, right in time for COVID-19 to hit and necessitate a modern laptop for her to use in her schoolwork. As you can see, most of my stickers there are from that first Blackhat/Defcon trip. The others are from the Free Software Foundation, of which I was a member at the time. The Parker Solar Probe sticker is relatively new. For now the Acer remains powered off except when I occasionally pull it out to update Debian. This may end up being for the twins when they start kindergarten.

Acer Aspire Netbook Lid

The Acer Aspire was my travel netbook for a long time. It’s mostly got stickers from bands I’ve seen in concert recently as well as some Red Hat stickers from from local Red Hat events I’ve been to.

Dell Laptop

This is my current main laptop. Once again, there are lots of stickers from Red Hat, including one that declares my love of both Fedora and Python. I got both NASA stickers on a recent trip to the Johns Hopkins Applied Physics Lab. And, of course, anyone who has followed me long enough knows how important Extra Life is to me. We’ll see how this one continues to evolve as I get more stickers (once COVID is done and we’re going to conferences again).

Review: Soleil

Soleil (The Illumination Paradox, #3)Soleil by Jacqueline Garlick
My rating: 1 of 5 stars

It is a real bummer for me to give this book 1 star. I really enjoyed the first book in the trilogy. The second book was fun. But this book… kind of just felt like perhaps this series should have been a duology instead of a trilogy. While the first third or so was a good bit of fan service, it could have maybe just been a post-script novella? The rest of the book was just full of the introduction of all sorts of new rules and technology to the way the world worked that I didn’t think made sense in the third book of a trilogy. On top of that, the last chunk – from when our main characters end up in a canyon until the end just didn’t make any god forsaken sense. (view spoiler)

This book might be great for you. And that’s OK. I don’t want to “yuck” anyone’s “yum”. But it did not work for me. This is why there was such a gap between updates towards the end. This is why I read more than one book at once. So if one isn’t motivating me, I’ve got others to still be excited about. Anyway, a real bummer because I believe Ms. Garlick had a blast creating this series and really seems to love the characters. I enjoyed interacting with her on twitter while reading the first book and going through all the fun twists and turns there. Anyway, I’m rambling…

View all my reviews

Review: Serious Python: Black-Belt Advice on Deployment, Scalability, Testing, and More

Serious Python: Black-Belt Advice on Deployment, Scalability, Testing, and MoreSerious Python: Black-Belt Advice on Deployment, Scalability, Testing, and More by Julien Danjou
My rating: 5 of 5 stars

This is an AWESOME book that has completely transformed the way I code in Python. That might sound like the opening to a parody review, but I’m being sincere. One of the best things about Python is that it has a low barrier to entry and it’s easy to get started programming. One of the worst things about Python is that it has a low barrier to entry and it’s easy to get started programming. I’ve been going through the past 15ish years with just a surface-level understanding of my favorite programming language.

On my biggest, most used (by others) Python program, I’ve gone from code to looks like this (https://github.com/djotaku/ELDonation…) to a package that’s published on PyPi (https://pypi.org/project/eldonationtr…) and auto-generated documentation(https://eldonationtracker.readthedocs…), pulling from my Python docstrings (https://eldonationtracker.readthedocs…) with even more ways I’m going to fix/optimize my code and make it more Pythonic. I think this is the best book I’ve read on Python programming since the Mark Pilgrim book that got me into Python that decade and a half ago.

Seriously, if you are self-taught on Python and want to go to the next level, you NEED to read this book.

View all my reviews

Review: Over the Wine-Dark Sea

Over the Wine-Dark Sea (Hellenic Traders, #1)Over the Wine-Dark Sea by H.N. Turteltaub
My rating: 3 of 5 stars

This is the second time I’ve read this book, the first time being nearly 20 years ago when it first came out. A few key bits had stuck with me, like Menedemos’ womanizing and a battle at sea. But after 20 years, most of the details had faded, so it was almost like reading it anew.

As a history geek, I found it a lot of fun to read historical fiction that isn’t set in one of the traditional time periods like Victorian England or Napolean’s Reign. The two characters also make great foils for each other, impulsive Menedemos and his philosopher/wannabe-historian cousin Sostratos. While it’s obviously a work of fiction, it was neat to see what things are the same about humans no matter how far back you go (haggling, superstitions, balancing desire with prudence) while other things are so different (how they viewed meals, technology, gender relations).

Perhaps obviously, since the main characters are sea traders and the majority of the book takes place during the trading season, it’s structured almost as a series of episodes, each taking place in a new city. There isn’t a truly overarching plot and it’s both metaphorically and literally about the journey, not the destination(s). The biggest narrative momentum comes from Sostratos’ character growth, but even that is relatively minimal.

Overall, I think it’s a pretty fun read, particularly if you’re interested in ancient Greece.

View all my reviews

Review: Clarkesworld Magazine, Issue 134

Clarkesworld Magazine, Issue 134 (Clarkesworld Magazine, #134)Clarkesworld Magazine, Issue 134 by Neil Clarke
My rating: 3 of 5 stars

I wasn’t quite into this one as much as some other recent issues. Here are my reviews per story:

Prasetyo Plastics – Less of a traditional story and more of a meditation on unbridled capitalism that does not descend into a libertarian dystopia. Rather, it’s another that asks if we truly realize what we’re doing to this planet on a scale that we believe has never been attempted before.

Retrieval: Fantasy with some sci-fi elements. Kinda Ghostbusters in space.

Dead Heroes: A weird and very sad meditation on technology, the environment, and dementia metaphors.

Who won the battle of Arsia Mons: Told as a news story about a robot competition that quickly gets more and more complex. I really enjoyed both the story and the tone.

The Catalog of Virgins (translated): A weird retelling of the Bluebeard fairy tale that I found didn’t really make any sense (to me) and I didn’t really get it.

Second Person, Present Tense: A really neat story about the nature of consciousness revolving around a drug that removes some of the consciousness. I wonder if the author was inspired by the sleeping pill stuff that was going on in the early 2000s where folks would do all sorts of things without any memory of it (story originally published in 2005). I think it works really well and also touches lots of little interesting areas about life, the pressures put on us and the pressures we put on ourselves.

Martian Blood: An alternate universe where there were Martians on Mars somewhat similar to the Edgar Rice Bouroughs stories. A good story and written in an older pulp style.

Non Fiction:

Science Fiction and the Fall of the Evil Empire: I thought this was going to be about changing tropes, but it turned out to be a survey of SF movies in the USSR. Pretty neat seeing how the subversion worked.

Huskey Genes…Paul McAuley: Interview about new book.

Another Word: Listen UP!: A look at how audiobooks have been transformed by technology and a theory on why their sales continue to rise.

Editor’s Desk: The Voice in the Shadows: About overcoming both impostor symdrome and public speaking fears.

View all my reviews

Review: Starswept

Starswept (Starswept, #1)Starswept by Mary Fan
My rating: 4 of 5 stars

I met Ms. Fan at Farpoint 2019 at her booth after seeing some of the panels she was on. We started talking about her books and I was intrigued and put this book and Stronger Than a Bronze Dragon on my To Read list. I also started following Ms. Fan on Twitter, and from getting to know her via tweet, she has put a lot of herself into this book: She went to college for music and has original compositions on her site: https://www.maryfan.com/songs.html. There are silks performances in the book and Ms. Fan is currently attending classes to get better at performing silk (Cirque de Soliel type stuff) routines.

As for the book itself, let me start off with non-spoilery stuff. First off, as you can see, I gave it 4 stars. So if you like YA science fiction and are willing to stretch your definition of what can be in SF, you will probably enjoy this book. This book is very focused on the performing arts aspect of our protagonist, Iris Lei, with mostly backgrounded science fiction elements until the latter parts of the book. And it never becomes hard SF. Again, if you’re OK with that, I think you’re in for a real treat.

The book has a slow start, which can be tough for some, but I think it’s important for many reasons: it really drives home how dedicated to the craft Iris Lei and her fellow students at Papilio are; it serves to really highlight Iris’ relationships, which is a KEY plot point in the second 60% of the book; and it really makes us crave the inevitable scene change, allowing Ms. Fan to really make that an emotional hit.

The only thing that was a bit of a miss for me was Iris’ love story plot points. I don’t have any problems reading YA, but the further I get away from it, the less I can truly relate to the relationship woes of the main characters. Intellectually, I know it feels like it’s the most important thing when you’re that age. But knowing how much it’s not just takes me out of it.

I think the novel comes together well. It was clearly written as a trilogy (almost nothing is resolved at the end of this book), so we’ll have to see how it all works as a narrative, but I liked the story.

OK, Spoiler time now. The rest of this’ll be spoiler-filled so I can better talk about the plot. You should have everything you need to know above about whether to read the book if you can’t stand any spoilers.

The plot has a lot of similarities to A Planet for Rent by Yoss, but with a different set of metaphors. A Planet for Rent was, obviously, a metaphor for a post-Cold War Cuba with the Aliens serving as the First World and the way they treat the Cubans. Starswept felt to me like it contained two separate metaphors. Part 1 of the book clearly seemed like a metaphor for college debt when doing a degree in the arts. The Papilians LIVE for their performances. Some may have more or less intense feelings than Iris Lei, but they seem to all be doing it for a love of performance. Yet, just like in real life, most people who are awesome musicians are not going to be in the London Philharmonic (assuming there’s good pay that comes with that prestige). Some will end up in orchestras where they need a spouse to support them. Many will end up teaching the next generation. And nearly all will end up with crushing debt they don’t have the ability to pay back. But, as long as they’re not starving, the joy of performance may outweigh the financial issues.

Starting in Part 2 of Starswept, the narrative changes to a slavery metaphor. I was a little torn about what the best real-world analogue was. On the one hand, we eventually discover an Abolitionist movement and the characters are treated as little more than objects by the Adryil. So that would seem to point to African slavery of the 1600-1800s. But then there’s the aspect that the Earthling performers are being told they’re getting a better life and their government is complicit in understanding that they’re being sold into slavery. This points to a couple potential sources. The simplest, of course, is modern slavery. There are people right now who were told they should go to the USA, Japan, or the UAE to get better jobs. Once they get there their passports are confiscated and they become slaves and/or sex workers. There may also be a tie to how the Chinese workers who came to the Americas were lied to. They were shipped over to work here and then told they needed to pay their way back, but were paid such a low wage that they were stuck here. This leads to many Chinese populations in the Americas, including the Chinese population in Cuba. Either way, while we have lots of foreshadowing that things are not what they seem (especially once Damiul starts teaching Iris how to not be mind-controlled), I think Ms. Fan does a good job of portraying how bad things can go for those who are unknowingly sold into slavery.

View all my reviews

Review: Salt, Fat, Acid, Heat: Mastering the Elements of Good Cooking

Salt, Fat, Acid, Heat: Mastering the Elements of Good CookingSalt, Fat, Acid, Heat: Mastering the Elements of Good Cooking by Samin Nosrat
My rating: 4 of 5 stars

I’ve been really improving my cooking by leaps and bounds thanks to America’s Test Kitchen’s books. They make sure recipes are perfect (or as near as can be) in terms of directions, ingredients, etc. They have truly spoiled me to the point that I often hate other cookbooks. But, as my wife says, you’re not truly cooking until you can just look at the ingredients in the house and come up with food on the fly. Or know how much salt the food needs by tasting it. So, after seeing Samin Nosrat’s Netflix show (which shares its name with this book), I added the book to my wishlist.

I received it as a gift and I’m very glad that I did. While it’ll definitely take me a few times of re-reading the first half of the book (the part that talks about how to use salt, fat, acid, and heat in cooking without presenting any recipes) to absorb all the ideas, I’ve already been able to use some of the ideas (particularly around salt) to improve my ability to improvise in the kitchen as well as finally be able to do that enigmatic part that ends most ATK recipes – “salt to taste”.

If you’ve a 100% beginner cook, I still recommend America’s Test Kitchen as the best training wheels you can find. I’m still planning on using my ATK books and getting more because when you’re doing an unfamiliar recipe (say, from another region of the USA or another country) it’s pretty hard to improvise because you don’t know what the platonic ideal tastes like. But if you want to move to the next level, I’d put this near the top of your list by Kenji Lopez-Alt’s The Food Lab (I haven’t read it, but EVERYONE loves it) or McGee’s “red book”.

View all my reviews

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:

  • Trey provides a unit test file that I run against my code (he also has a Python interpreter built into his website that will do this for the user, but I save that for the end). If I get stuck, I can examine the tests to see what it’s looking for
  • I’ve set my problem set to “Mixed” which is a combination of Beginner and Advanced. While I’ve been programming in Python for almost 15 years, it’s all been at a self-taught amatuer level, so I’m missing some of the special Pythonic knowledge
  • Speaking of that! This site teaches you to write Pythonic code and so I’ve learned quite a few things after only 3 exercises – features of the language I didn’t know were there!
  • What I love most about the way that Trey has set up this site is that he provides a series of hints at the bottom that are links to documentation and talks about the concepts the problem is trying to get you to solve. Based on the way I program, this is an awesome way to build up your skills for your own coding. When you’re trying to figure something out – being able to read through documentation or talks can really help you learn the concept you’re struggling with.

I’ve set up a repo at https://github.com/djotaku/pythonmorsels where I’m keeping track of my solutions to the problems as well as what I learned from each section of the problem. I’m hoping this leads to retaining the knowledge a little better and providing a resource that I can go back if I want to remember just how “zip” worked. 

Enviro

I did a bit of extra tinkering with my enviropi bonnet to have it only display if I tell it to and to only push to MQTT every 10 seconds. The former is to try and extend the life of the LCD (99% of the time – almost literally – no one is in there to see the screen). The latter is because Home Assistant doesn’t have any (I forget the proper term) data trimming, so pushing data every time the enviropi looped was creating a situation where Home Assistant would choke on graphs that contained the data.

CircuitPython

Simon

My first foray into the CircuitPython dialect was to create a clone of the game Simon that I’d had as a kid. I worked on the project with Sam and one of the kids’ Circuit Playgrounds. Since Sam isn’t quite ready to read code syntax, he typed in the numbers. 

import random
import time
from adafruit_circuitplayground.express import cpx

cpx.pixels.brightness = 0.1

REGION_LEDS = (
    (5, 6, 7), # yellow region
    (2, 3, 4), # blue region
    (7, 8, 9), # red region
    (0, 1, 2)) # green region

REGION_COLOR = (
    (255, 255, 0), # yellow
    (0, 0, 255), # blue
    (255, 0, 0), # red
    (0, 255, 0) # green
    )

REGION_TONE = (
    252, #yellow sound
    209, # blue sound
    310, # red sound
    415 # green sound
    )

PAD_REGION = {
    'A1': 0, # yellow
    'A2': 2, # red region
    'A3': 2, # red region
    'A4': 3, # green region
    'A5': 3, # green region
    'A6': 1, # blue region
    'A7': 1 # blue region
    }

def light_region(region, duration=1):
    # turn the LEDs for the selected region on
    for led in REGION_LEDS[region]:
        cpx.pixels[led] = REGION_COLOR[region]

    # play a tone for the selected region (plays tone frequency in Hertz
    cpx.start_tone(REGION_TONE[region])

    # wait the requested amount of time
    time.sleep(duration)

    #stop the tone
    cpx.stop_tone()

    # turn the LEDs for the selected region off
    for led in REGION_LEDS[region]:
        cpx.pixels[led] = (0, 0, 0)

def read_region(timeout=30):
    val = 0
    start_time = time.time()
    while time.time() - start_time < timeout:
        if cpx.touch_A1:
            return PAD_REGION['A1']
        elif cpx.touch_A2:
            return PAD_REGION['A2']
        elif cpx.touch_A3:
            return PAD_REGION['A3']
        elif cpx.touch_A4:
            return PAD_REGION['A4']
        elif cpx.touch_A5:
            return PAD_REGION['A5']
        elif cpx.touch_A6:
            return PAD_REGION['A6']
        elif cpx.touch_A7:
            return PAD_REGION['A7']
    return val

def play_sequence(sequence):
    # play back a sequence of lights/tones input as a list
    duration = 1 - len(sequence) * 0.05
    if duration < 0.1:
        duration = 0.1
    for region in sequence:
        light_region(region, duration)

def read_sequence(sequence):
    # read the player's inputs and compares against the sequence
    for region in sequence:
        if read_region() != region:
            # the player made a mistake!
            return False
        light_region(region, 0.25)
    return True

def play_error():
    # play error tone if the user messes up
    cpx.start_tone(160)
    time.sleep(1)
    cpx.stop_tone()

def play_game():
    sequence = []
    while True:
        sequence.append(random.randint(0,3))
        play_sequence(sequence)
        if not read_sequence(sequence):
            # game over!
            play_error()
            break
        time.sleep(1)


while True:
    play_game()

Scratch

Scarlett’s Gravity Simulator

Two weeks ago, the Raspberry Pi foundation’s create at home theme was Space. I decided the best project for Scarlett would be the gravity simulator so that we could make it into a science lesson as well. I’m not sure she internalized all the concepts, but I know for my own learning, the more often I come across a topic, the more I can pick up each time because I’m not so overwhelmed by all the concepts. This Scratch project was slightly more challenging than others I’d done with the kids because the tutorial was written for an older version of Scratch and not in their new format where they show the blocks and have checkmarks per step. So we had to slightly convert the concepts over to Scratch 3. Here’s the code:

And here’s a video of it in action:

Scarlett’s Asteroids Game

If you’ve been watching my programming YouTube videos, you know that I’d like to make an Asteroids clone. Scarlett beat me to it with this week’s Raspberry Pi Foundation focus on retro games. Unlike their usual setup, there weren’t text instructions, just a YouTube video. I’d pause it before they pulled blocks out and ask Scarlett what she thought should go in. She seems to be starting to get a feel for things. That said, what she loves most is the artistic aspect of creating the games. Here’s the code:

And here’s a video of it in action:

Sam’s Flappy Parrot Game

Continuing on with the Raspberry Pi Foundation’s retro games week was a clone of Flappy Bird. Sam and I worked on this one. Just like the Asteroids clone, this one made use of the clone block which was new to me this week. Here’s the code:

And here’s a video of it in action:

Sam’s Reaction Timer

This time Sam helped me make a reaction timer in Scratch. I had him type each letter in the “say” blocks so he could practice letter identification as well as keyboard position.

And here’s the video:

Arduino

Temperature Monitoring in Scarlett’s room

After taking it for granted that Scarlett’s room was hotter than the rest of the house (from what others had said), I decided to try and confirm with another temp probe. That, coupled with putting it in the bathroom with the Pimoroni and some research that suggested for many people it reported temps as much as 5 C hotter than reality, led me to change the programming for the Arduino MKR WIFI 1010 and ENV shield in her room to subtract 9 degrees F. That led it to be within 1 degree of the Pimoroni in the bathroom. At this level of hobby electronics I don’t expect all sensors to line up exactly (even if they are from the same manufacturer (and I’d have to look to see if these are both BMEs)), so within a degree or two is a good enough sign that I’ve properly set things up. 

MakeCode

Snake Charmer

I had Stella drag the MakeCode blocks and add in the numbers. This was my first motor project with a dev board and I followed the instructions from the Adafruit Snake Charmer tutorial. Unfortunately, somehow I seem to have busted the audio chip on one of our Circuit Playground Expresses. I’m not sure if it’s because I originally tried it with the 3xAAA battery holder and that didn’t provide enough voltages causing…something to happen. Or maybe somehow the way I connected the alligator clip to wire wires led to a short? The wire end of the wires has an exposed metal part – maybe two of those somehow touched? I know I checked my connections a ton before operating it. The other thing I realized after things weren’t working correctly was that I had accidentally written to the A2 pad without changing to pulse first. Maybe that caused some kind of something along the wires. I’m just too far away from my undergrad classes to remember enough electrical theory to understand what happened. Anyway, it’s a huge bummer, but at least other than sound I don’t seem to have destroyed anything else on the board. (I loaded Scarlett’s Sibling Chooser and Sam’s Simon game and those worked fine other than not producing sound) That said, at least the sound output could be routed to external speakers!

Stella had a blast with it and she was dancing to the music, but I couldn’t capture a good angle of that. Still, I’m excited to do some more involved Circuit Playground Express projects with her over the next couple weeks.

Review: A Man On the Moon: The Voyages of the Apollo Astronauts

A Man On the Moon: The Voyages of the Apollo AstronautsA 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.

View all my reviews

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.

Here’s some Adafruit Python code I had loaded in the other tab:

import time
import board
import adafruit_ahtx0

# Create the sensor object using I2C
sensor = adafruit_ahtx0.AHTx0(board.I2C())

while True:
    print("\nTemperature: %0.1f C" % sensor.temperature)
    print("Humidity: %0.1f %%" % sensor.relative_humidity)
    time.sleep(2)

I think it looks GREAT. I’d like to maybe have it be able to show line numbers (edit later that day: I found the line numbers option!) as well as have an ability to copy it (which helps sometimes with formatting when copying from a website). But it’s orders of magnitude better than anything I’ve ever used or configured before and I think I’ll be going back to old posts to retrofit this. I think the best part is that it’s just an extension on the built-in code block (which I’m surprised doesn’t have something like this built-in) so I think if the plugin stopped working it could fail gracefully.

Here’s a screenshot in case this changes in the future so you could know what I was referring to at the time:

Review: Clarkesworld Magazine, Issue 133

Clarkesworld Magazine, Issue 133 (Clarkesworld Magazine, #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.

Non-Fiction:
An optimist and Pessimist tackle the Fermi paradox: Exactly as the title suggests – looking at both positive and negative reasons for why we haven’t found life out there.
Automatons, Wyrms, and Dead Men: A Conversation with Elizabeth Bear: A discussion about Elizabeth Bear’s book (A Sword in the Skull), her writing process, how her anthropology backgrounnd affects her writing, and advice for writers.
Another Word: Grains of Salt, Lumps of Gold: A contemplation on advice-giving, followed by some advice on how to move from short story authorship to novel-writing.
Editor’s Desk: About a new issue 5 years after Neil’s heart attack.

View all my reviews