Shallow Thoughts

Akkana's Musings on Open Source Computing and Technology, Science, and Nature.

Thu, 01 Jan 2026

Best Books I Read in 2025

Happy New Year!

Time for an annual "Best Books of the Year" list. As always, these aren't all new books this year; they're just new to me. (Or even a beloved re-read, but this year I'm not listing any of those.)

Read more ...

Tags:
[ 12:34 Jan 01, 2026    More misc | permalink to this entry | ]

Tue, 30 Dec 2025

Making a Place Names Overlay in QGIS

[Screenshot of QGIS showing features labeled in large font bold letters slanted to match canyons and mesas]

Flipping through Craig Martin's old book

, I noticed that in the maps at the beginning, he has a rough map of some of the topographic names for local canyons and mesas.

We were just talking about that on a hike last week — looking out at the canyons north of Rendija and trying to get the names straight. Most maps don't label canyons, mesas, or even watercourses, which is endlessly frustrating for hikers who like geography.

I wondered how hard it would be to make a place names layer in QGIS based on Craig's map (and, of course, other sources too) that I could export as an overlay for use in OsmAnd or PyTopo. And it's always good to learn a little more about how to use QGIS effectively.

Read more ...

Tags: , ,
[ 14:28 Dec 30, 2025    More mapping | permalink to this entry | ]

Fri, 19 Dec 2025

A Homebuilt CO2 Meter as a Virus Risk Proxy

[A sensor and small microcontroller, connected by a cable, sitting on pink anti-static bubblewrap. The microcontroller is also plugged in to a USB cable and a battery; it has a built-in display that reads: CO2: 470 ppm, Temp: 77F, Hum: 18%, BAT 65%] Despite most of the world deciding that COVID is over, I continue to be cautious about it. (My one bout of COVID resulted in congestive heart failure which I'm still dealing with, so I'm fairly anxious not to get it again.)

That means that I'm cautious about indoor gatherings. Some places say they've upgraded their ventilation, but can you believe them? I've long read about people using CO2 meters as a proxy, to tell you how well the air is circulating and how high the virus load might be in a crowd, and I've wanted to get one of my own.

You can buy CO2 meters, of course. But making a custom one sounds so much more fun! Reading Wired's story about New Zealand's Kawaiicon cybersecurity convention that provided CO2 trackers inspired me to finally order some parts.

Read more ...

Tags: , , ,
[ 18:06 Dec 19, 2025    More hardware | permalink to this entry | ]

Sun, 14 Dec 2025

Crimping JST PH Connectors

(With a cheap imperfect tool)

[a box with compartments for several sizes of small white connectors, plus one compartment filled with little metal pieces] I've written about the several neat boards I recently ordered from Adafruit.

But when I ordered, I was confused about which connectors were which, and didn't end up ordering all the connectors I needed.

Adafruit calls the connectors they use "Stemma", and (I realized too late) they have a helpful page called What is Stemma? explaining the different connectors. I had ordered several of the small ones, "Stemma QT", more technically a 4 Pin JST SH, which were perfect for connecting a Feather board to a CO2 meter. But I hadn't realized that the bigger board, the PyPortal, needs a larger connector also called Stemma, more technically a JST PH.

It turned out to be hard to find JST PH connectors with wires already attached ("pigtails") and what I found were impressively expensive in lots of two or three. I imagine I might want a fair number of JST PH, especially the 2-connector type used for batteries. So I ordered a boxed assortment of 2, 3 and 4-pin JST PH connectors and a crimp tool.

Read more ...

Tags: , ,
[ 13:34 Dec 14, 2025    More hardware | permalink to this entry | ]

Tue, 09 Dec 2025

Installing CircuitPython on a Gemma M0

(On Linux.)

[a microcontroller the size of a qyarter, plugged in to a light string wound through a blue knit cap] I wrote previously about my difficulties installing CircuitPython on an ESP32 Feather.

When I ordered the Feather, I ordered a bunch of other stuff too, including a tiny wearable microcontroller that's sold specifically for MicroPython: a Gemma M0.

Again, I had trouble getting MicroPython working, but the Gemma's problem was quite different.

Read more ...

Tags: , ,
[ 18:13 Dec 09, 2025    More hardware | permalink to this entry | ]

Thu, 04 Dec 2025

Installing CircuitPython on an ESP32 Reverse Feather TFT

[A small microcontroller with a built-in display reading CO2: 470ppm and some other stuff, plugged into a USB-C cable] (On Linux, natch.)

I've been wanting to play around with CircuitPython for ages. I like Python, I like microcontrollers, what's not to like? Quite a while back, I even ordered a Feather M0 for that — but I didn't do my research, ordered the wi-fi version and it turned out that's the one Feather M0 that can't run CircuitPython.

This time I checked more carefully before ordering, and got a processor that for sure claimed to run CircuitPython.

Read more ...

Tags: , , ,
[ 13:58 Dec 04, 2025    More hardware | permalink to this entry | ]

Mon, 24 Nov 2025

Sewing Project: Saving my Toes

[The wooden corner of a bed frame, easy to knock your toes against] I have a platform bed, which means the bottom part is made of wood with drawers in it (I'm not clear why this style is called "platform"). Having the drawer space is handy, but it has one big drawback: it means there's a wood corner right where I'm likely to kick it accidentally in the dark on a nocturnal get-up. I've done this enough times that I'm amazed I haven't broken a toe yet, and I've long been sure it's going to happen some day (especially as I get older and my bones get more brittle).

I've been having a lot of fun at the monthly Sewing Meetup at Los Alamos Makers, and really enjoying it. I've fixed up lots of too-large clothes from thrift shops and tech conferences, and made projects like a purse, padded phone cases, and a a cushion for an aging dining table chair.

So when Jodi, the meetup leader, mentioned that she was bringing a bag of stuffing and wanted to make some sofa pillows, I thought: I don't really need any more sofa pillows ... but I can think of a place where I need some cushions!

Read more ...

Tags: , ,
[ 13:15 Nov 24, 2025    More art | permalink to this entry | ]

Mon, 03 Nov 2025

Finding the Bounding Box of a Dataset

Yesterday I wrote about PyTopo's difficulty in displaying a large all-US dam dataset. I've finally fixed the bug ... though it's still very slow to display the whole dataset: you have to wait a minute or more to redrew if it's zoomed all the way out to show the whole world.

Wait, the whole world? I thought this dataset was for all dams in the US?

Yes, in theory. In practice, not so much.

(I'm going to cheat a little bit and call this 30 Day Map Challenge Day 3: Polygons, because a bounding box is a polygon and I've spent so much time on this that I definitely don't have time to do any other 30 day projects today.)

Read more ...

Tags: , , , ,
[ 16:21 Nov 03, 2025    More mapping | permalink to this entry | ]