European Space Agency ETV-5 approaches the ISS va7unx.space

Hugh Brown, VA7UNX

What happened in 2023 -- year end review calendar Jan 4, 2024

What happened in 2023?

  • I got less regular about writing here semi-regularly. 😑

  • A bunch of work on climate change – 82 paper letters, 12 emails, 2 protests, phone calls, in-person meetings with local politicians, and submissions against LNG expansion in BC. I didn’t meet my target of 110 letters; however, I’m starting to have second thoughts about those kinds of targets for personal goals.

  • Two new hardware hacking projects: tree tomography and the one-pixel camera. Finished up the weather vane; no nesting from the chickadees this year. Seismometer set up. Lots of small random things.

  • A year of working at Wyvern! I think the infrastructure codebase is in good shape.

  • Health was a mix: nothing terribly serious, but COVID plus two sinus infections. Bleah.

  • Walking: 6.8 km/day average for the year. Down from 7.0 last year. Obviously this is the end times.

  • Gave up on hosting my own email and delegated it to EasyDNS.ca. Recommended.

  • Started learning Italian. È molto divertentimento!

  • Nature: 475 checklists for eBird (vs target of 450); 1671 observations for iNaturalist (vs target of 1300) and 3730 identifications (vs target of 900).

  • Added a few Wikipedia pages and updated more, mainly for species I’d observed for iNaturalist.

  • I read 53 books. Of these, “The Good War” by Studs Terkel was the most mind-blowing; it’s an utterly compelling oral history, mainly from the American point of view, of people’s involvement in World War II. I had never thought that moral ambiguity about a war, or deep suspicion about the US government’s action in a war, was anything but a recent development. Highly recommended.

What Happened in September - December 2023 calendar Jan 4, 2024

A quick summary before I work on the year-end post.

Hardware hacking

  • More work on the tree tomography project, including much writeup on Hackaday.io:

    • Hammer of Science: a da Vinci hammer first done in cardboard and then wood.
    • Code for microsecond-level time-of-flight measurements.
    • Initial analysis & graphing.
    • A prototype board for the Pi Pico, with connections for the piezo sensors, that doesn’t suck.
  • Side note: I wanted to see what it was like to document things on Hackaday.io, so I added the project & was curious to see how I’d like it. While the site has a few little hiccups, it’s pretty good. What stood out to me, though, was how much I wrote there as opposed to here. I think there are a few reasons for that: the different audience (and, honestly, the chance for a nice dopamine attention hit); the novelty of writing on a different website; and the ease of adding images.

    That last point is pretty big: I’d never thought before about what a difference that makes. I work with Emacs, and as a text editor I love it – but the process I have for adding pictures is clumsy. This needs some thought; I know there are graphical markdown editors, but I’d hate the idea of giving up the sheer flexibility I have with Emacs.

  • Not exactly hardware hacking, but: I got a Keychron Q8 programmable mechanical keyboard, and OMFG I love it. The switches are Gateron G Pro Reds, so it’s fairly quiet. I’d never understood the appeal of mechanical keyboards before, but I get it now. But the programmable part is even bigger; I’m able to set this up with the keyboard shortcuts I’d always wanted.

  • Began working on replicating a project written up on Hackaday.com in 2016: a one-pixel camera. There was an episode of the Hackaday podcast where one of the hosts called for people to trawl through that site’s vast archive and look for fun projects; that seemed like a great idea, and in short order I tripped over the one-pixel camera. This was a great excuse to order a bunch of servos, so I did. Current status:

    • I was able to get an X-Y setup with two servos and an Arduino controlling them directly, and have it scan a field of view successfully.
      • I’m now working on duplicating that by controlling (and powering) them through a PCA9685 module.
    • I was able to set up a single photoresistor & get measurements from it.
    • I’ve got Python code to graph those measurements.

    So far, the results aren’t great, but I’m plugging away on it.

Nature

  • More observations for iNaturalist, of course.

  • I’ve taken a couple of freshwater samples from local streams to keep at home, so that I can examine the organisms in there a bit closer. I’ve found Eucyclops, copepods, pocopods, and pea clams. Terribly fun!

Climate emergency

Learning

What Happened in June, July, and August 2023 calendar Sep 22, 2023

Home sysadmin

  • Migrated mail server to EasyDNS.ca. Quite happy with their service so far.

  • Set up new home server on a NUC when the old, silent PC started having recurring hardware problems.

  • Set up monit to monitor more stuff at home.

  • New laptop: off-least T490s from Amazon. Great price for 16GB/512GB; just wish I liked the keyboard more.

Hardware & software hacking

  • Got a random LCD display working with an ESP32…surprisingly hard.

  • More playing with the seismometer. Daily reports now being generated.

  • Got tree-sitter working in Emacs. This is wonderful.

  • Got nodered, MQTT set up; three ESP32 thermometers set up (see Climate Emergency section ahead).

  • Repair work on tipping bucket rain meter at weather station.

  • Start work on tree tomography project.

  • Start graphing data for air quality in Sault Ste Marie, where my parents live. It’s not great. ☹️

Climate emergency

  • Continuing to send letters to provincial and federal government asking for faster action.

  • Continuing to pester my MLA for meetings.

  • Got a portable AC just in time for the heat wave this summer. Internal temps in our home office went over 30.5 C, but our 3rd floor (where the kids sleep) stayed reasonably comfortable:

Graph of inside temperatures

Seismometer revisit calendar Jul 23, 2023

I’ve found much better ways of examining earthquake data received by my station. Thanks to Alan Sheehan, who was kind enough to post his excellent report generation tool, I’ve now got some actual data we can use. I’ve updated his code a bit and changed it to better match my workflow; my repo is here. Like Alan’s, my code is under the MIT License. Share and enjoy!

Here’s a sample of what we’ve been able to see:

7000k7iz-all_phases.png

This is the result of a magnitude 6.2 earthquake that struck off the coast of El Salvador. Fortunately, no damage, injuries or fatalities were reported.

Here’s a sample of what I’m pretty sure is a freight train going by:

RAF36.EHZ-1690133398000.png

This happened about 15 minutes after I saw the train go by another crossing about 10km west of where the seismometer lives. The equidistant lines in the spectrum sure seem like the ones reported in this study, “Equidistant Spectral Lines in Train Vibrations” by Florian Fuchs, Götz Bokelmann, and the AlpArray Working Group (https://doi.org/10.1785/0220170092 …but see the previous link for the actual paper).

What Happened in April and May 2023 calendar Jun 19, 2023

Let’s catch up!

Hardware hacking

  • Weathervane: FINALLY IN PLACE. It only took a year.

    • Incidentally, the last bit of this was trying to get a [Coral dev board0 to work with a USB serial device. Turns out the kernel doesn’t include the driver, which (╯°□°)╯︵ ┻━┻. And after two weekends of trying, I gave up trying to rebuild the image; all of the instructions I found were out-of-date, including the ones from Google. What a crock.
  • Not exactly hardware hacking, since there was very little hardware to think about – but orderinga Raspberry Shake 1D has turned out to be enormously fun. See https://github.com/sheeny72/RPiSandB for amazingly great examples of the kind of info you can get out of them.

Webby

  • Tried building a local web app to play random everynoise.com playlists, inspired by this article. It turned out to be reasonably straightforward in the end, though my Flask code is going to make baby Jesus cry.

  • Started scraping pollen forecasts (late-onset allergies are fun). Discovered that the requests module has a super-helpful sessions object, which lets you (say) persist cookies across requests. Recommended if you’re, uh, doing research on how to scrape APIs for fun.

Home sysadmin

  • Migrated from LastPass to 1Password. Very happy.

Emacs

Seismometer First Look calendar Jun 10, 2023

Hello, world! A couple weeks ago, I took delivery of a Raspberry Shake 1D. It’s pretty sweet. Right now it’s set up at my inlaws' house, and I wanted to see how it’s doing by looking at whether it can detect recent larger earthquakes.

Macquarie Island Region: Mag 5.9, June 9 2023, 21:21:42 UTC

I’m starting with the USGS map of recent earthquakes:

Screenshot of latest earthquakes

From there I can drill down to individual earthquakes – such as that first one, 5.9 in the Macquarie Islands. Going to Waveforms takes me to this page, which lets me find stations that recorded data from it. Looks like there’s one in Corvallis, Oregon:

IRIS station map

Clicking on that gets me the data:

screenshot of data

Side note: this is narrowed down to VH channels. V means a sample rate of ~ 0.1 HZ; H is a High Gain seismometer; and Z means vertical orientation. From there I can see when the phases arrived. The original earthquake, according to the USGS, happened at 2023-06-09 21:21:42 (UTC); the P phase arrived 15 & a half minutes after that, and other phases past that. The P is barely noticeable, but the PP and S waves definitely show up.

It’s interesting to compare this with the heliplot:

Corvallis heliplot

So – how does this compare to my seismometer? The Corvallis station is 13,550 km away; mine is 13,990 km. The arrival time should be a little later – by simple/stupid math, about 30 seconds later.

I’ll be honest: for this one, I’m not sure I see anything. The spike around 21:52 seems like a candidate for the S wave.

screenshot of shake data

Fiji Islands Region: Mag 5.8, June 10 2023, 09:12:50 UTC

Here’s the USGS page for this one, and the IRIS page. Here’s the Corvallis data:

Corvalis us700k7m3

I’m curious to know that that 09:50 spike is about…but let’s keep going. The S and SKS waves showed up pretty strongly at 09:35 or so. Here’s what I saw:

screenshot of shake data

Don’t know that that 09:28 data is, but there’s bupkiss at 09:35. Hm.

Anderson Springs, California - Mag 2.6, June 10 2023, 09:43:04 UTC

The peak at 09:50 caught my eye, so I tried looking for anything around that time. I found a small one near Anderson, California. Here’s the IRIS data:

IRIS data, nc73899481

That doesn’t seem a good fit either…but: Corvallis is 652 km away from the epicentre, and it took 90 to 170 seconds for the waves to arrive. I’m 1164km, about 1.8x further. Again, stupid math: 90-170 seconds becomes 160 to 306 seconds, or about 2.5 - 3 minutes. And look at what I recorded 3 minutes after that quake:

shake data

Here it is really zoomed in:

shake data

This seems like a good candidate to me!

So what next?

All this is just a first pass through the data (and a very manual one at that).

  • I’d like to do more digging. Finding some way to automate at least the collection of links & data would be wonderful.

  • I’d also like to compare my data against this station in Queen Elizabeth Park in Vancouver, run by Natural Resources Canada. I do wish it had a little better data view.

What Happened in February and March 2023 calendar Apr 9, 2023

February and March got away from me…but fair enough, because I started my new job at a 🌠SPACE🌠COMPANY 🛰📡🤯. I’m pretty excited. Also, though, I got COVID and then a sinus infection in March, which sapped my energy. I got over it, but man, that was not pleasant.

So what did I do?

Hardware hacking

  • Continued to work on firmware for weather vane.

Climate letters

  • Three sets, rather than the 8 that should have been. But COVID.

Work

  • So much Terraform work. I’ve got the luxury of setting up the codebase from scratch, and so far (🤞) I think I’m doing a decent job of it.

  • Travelled to Edmonton for an offsite, and actually met my team in person for the first time. I talked to almost everyone in the company. Such an amazing bunch of people. And hey, our first satellite is due to launch real soon now…

What Happened in January 2023 calendar Feb 11, 2023

Hardware hacking

  • More progress on the weathervane. Designed a sort of skirt for the whole assembly in FreeCAD, thanks to the FreeCAD for Makers book by Jo Hinchcliffe, aka Concretedog (who I met at the 2017 Opensource Cubesat Workshop). Printed out a rough version which seems like it should work; next up is a nicer version, which looks like it should take 36 hours (!).

  • Tried repairing a coffeemaker that had a blown thermal fuse. Replaced the fuse and tested it out…whereupon it promptly blew again. 😑

  • Opened up the chickadee birdhouse at my in-laws’ for the season. We’ve had some interest, which surprised me – I thought they wouldn’t be checking out nesting spots in January.

Web stuff

Climate emergency

  • More letters to the federal and provincial governments. Took a while to get back into this after the holidays.

Space

  • Actually started at Wyvern! OMG so much to learn. There is a chance I may get to hold hardware that goes to space, which is a bucket list item for me.
What happened in 2022 -- year end review calendar Jan 2, 2023

What happened in 2022?

  • Continued writing here semi-regularly. 💪

  • I entered the Data Driven Cloud Cover Competition. My score was terrible, but I learned a ton.

  • Much writing to politicians about climate change – by my count, 96 paper letters, plus emails, phones, faxes and petitions. Target for this year: 110.

  • Met with my MLA, the Honourable Jennifer Whiteside, about climate change twice; I thank her and her staff for their time. I definitely want to continue this.

  • Drove to Ontario with my family in our EV: 6 days driving there, 2 weeks to visit my parents, then about 7 days back. It all went quite well.

  • A fair amount of hardware hacking: a birdhouse camera, fixing the tipping bucket rain-o-meter in our weather station, getting sorta-maybe-reliable CO2 readings with an MQ135 sensor, and finally getting into ESP32s…man, those are fun; MicroPython is right up my alley.

  • A lot of natural history: participated in a bioblitz; submitted 432 eBird checklists; made 1271 observations, and 876 identifications, for iNaturalist. Goals for next year:

    • eBird: 450 checklists
    • iNaturalist: 1300 observations, 900 identifications. That’s not a whole lot more than last year, but I did a lot of observing during the trip to Ontario.
  • Continued work on my Emacs dotfiles, which has been going since 2009. Wow.

  • I read 46 books.

  • I walked an average of 7km a day, for a total of 2,573 km. This isn’t as much as 2021 (7.2 km/d, 2629km) – but is not bad at all for getting COVID (Jan/Feb) and flu (November).

  • Began teaching myself web development.

  • Resigned as a core contributor for the Libre Space Foundation and Polaris, but got a job at Wyvern Space.

What Happened in December 2022 calendar Jan 2, 2023

First thing to mention, which doesn’t really have a category: I walked from my home in New Westminster to UBC in one day; it was about 32km, which is the longest walk I’ve done in one day. I am mulling the possibility of walking across the US when I’m 60, and this is the kind of daily distance I’d want to maintain. I got some good blisters and was sore the next day, but not crippled; I think I could have done that again. It’s a good sign.

Webby

Hardware hacking

  • More work on the weather vane; got it mounted on a peanut butter jar lid. If that sounds silly, then in my defense it turns out to be very handy to have a standalone mount for a project.

  • Made an HTML page to display readings from the weather vane, using javascript to rotate an arrow graphic to reflect the direction it was measuring. Surprisingly handy.

  • Bought an Ikea Vindriktning, aiming to read its measurements directly with an ESP32. Took a while to figure out how to get it working – turns out that a common ground between the ESP32 and the sensor board was necessary to get the UART working – but I think it’s coming along.

  • Took apart a coffee maker that died on us to figure out what was wrong, and it turns out to be a thermal fuse that blew – apparently this is quite common. Will be picking up a replacement and seeing if I can get it going again.

ML/AI/Earth Observation

Space

  • After nearly 5 years of searching, I have finally got a job in the space industry: beginning January 9th 2023, I’ll be working for Wyvern Space. They are building satellites to do high-resolution hyperspectral imaging; my position is senior devops software developer, helping to build and operate their image processing pipeline. I couldn’t be more thrilled. 😁
What Happened in November 2022 calendar Dec 18, 2022

Webby

  • More work on refactoring The Floating Head of Ayn Rand so it’s in modern, standards-compliant HTML. Coming along nicely!

  • More work on the UMich/Coursera Web Design for Everybody course. Continues to be excellent.

  • Tried getting habit working under mod_wsgi in Apache on my home server. Man, this was surprisingly hard: the documentation isn’t great, I couldn’t figure out to adjust URLs properly (serve under /habit rather than just /), and also I suspect I’m doing things sub-optimally. Called it quits after a while, and continued running the Flask development server on my local network (no, not exposed to the Internet); this is good enough for now.

Hardware hacking

  • Tried out using an inexpensive flow meter as an alternative design to measure precipitation. It turns out this sort of works. Precision is good – about four pulses per mL of water – but it takes a fair amount of water column height to get the meter to turn. I was able to accomplish that by using a funnel, and maybe 18" of 1/4" vinyl tubing…but if I didn’t hold it just right, the water would just flow through the meter without actually turning the internal vane.

    On top of that, the original tipping bucket meter seems to be behaving a lot better now that I have tightened up the screws holding the wires that connect the meter and the rest of the equipment.

    I may try this design at home, but for now I’m setting it aside.

What Happened in October 2022 calendar Nov 3, 2022

Trying to get back to doing these things on a regular basis.

Hardware hacking

  • More work on an electronic weather vane, following these instructions. Lots of figuring out what size of bearings I should order.

  • Some soldering to make a battery holder for some ESP32 camera modules I’ve got.

  • Weather station:

    • Try to get the tipping bucket rain meter working; there’s a loose connection somewhere, and periodically I see that Burnaby had 5 metres of rain in the last 24 hours. I never realized just how much you have to pay attention to loose wires.

    • Sketch out a new rain meter based on inexpensive flow meters, then order some. We’ll see how this works.

Webby

  • Going through a number of online courses/resources:

    • Coursera UMich Web Design for Everybody course: excellent, though aimed at people quite new to development of any sort. One thing: I’m lucky enough to have my employer pay for this, but the lecturer, Colleen van Lent, writes:

      My motivation for creating this course content was to spread the mission of free education to everyone. Unfortunately, many of the platform changes has put the material behind paywells. I highly encourage students to take the courses individually (rather than as a specialization) to access them for free. Even then, some of the assignments may be hidden. I am hoping to launch a new more open version in Fall 2018.

    • Shay Howe’s HTML & CSS course; also excellent

    • Javascript.info: awesome walkthrough of JavaScript

  • Trying to get the basics down, then look into React or some other front-end framework.

  • Gotta say, I’m really fascinated by the tie-in between JavaScript and DOM manipulation, which I had not really grokked before.

  • Project-in-progress is a refactoring (not a redesign, as I want the look to remain about the same) of The Floating Head of Ayn Rand, which has been more or less untouched for HOLY CRAP twenty-one years. (State of the art at the time was table-based layout, which I adopted enthusiastically 😬).

  • Changed the CSS for this site to have the post titles be a bit more prominent:

    .posts-list-item-title {
        font-size: xx-large;
    }
    

Data

  • But also web: begin taking up work on the New West Trees page again.
    • Newest feature: adding links to the Wikipedia page for a tree species!
    • Coming soon: adding common names for species (eg: English Oak instead of Quercus robur)…which turns out to be surprisingly tricky.
      • Tried pytaxize, which was a yakshave to get an NCBI API token, then gave me problems re: rate limiting
      • Tried pygbif; better results, but still not great for trees. Example: Quercus palustris is resolved to just “Oak”, but Wikipedia clearly resolves it to “Pin Oak”.
      • But this gave me the idea of trying wikidata or wikispecies; this is up next.
What Happened in September 2022 calendar Oct 6, 2022

Web development:

  • I’ve become interested in web development recently, and have begun working on a habit-tracking project called, unoriginally, Habit. Currently it’s a good exercise for becoming familiar with Javascript, Jquery, Bootstrap, Flask and SQLAlchemy.

Hardware hacking:

  • I ordered a bunch of AI-Thinker ESP32 camera modules from Universal Solder (Canadian vendor of Arduino, ESP32, electronic components, etc; I’m a happy customer & recommend them thoroughly). Started digging into how to make it into a timelapse camera.

Random:

  • I signed up for a free account with [The SDF Public Access UNIX System][3]. I’ve got a totes-real homepage at [http://saintaardvark.unixcab.org][4], just like the old days.

[2]: The SDF Public Access UNIX System [3]: http://sdf.org [4]: http://saintaardvark.unixcab.org

What Happened in August 2022 calendar Sep 9, 2022

Hardware hacking:

  • I ordered a bunch of AI-Thinker ESP32 camera modules from Universal Solder (Canadian vendor of Arduino, ESP32, electronic components, etc; I’m a happy customer & recommend them thoroughly). Started playing around with them.

  • Some work on the electronic windvane.

  • Add a photocell to the office weather station so I could begin to track light levels.

Climate emergency:

Data science/mapping:

Other:

  • I resigned as a Core Contributor of the Libre Space Foundation and the Polaris project. It’s been wonderful to work with these folks, and I wish everyone the best, but it’s time for me to move on.
What Happened in July 2022 calendar Aug 2, 2022

Road trip to Ontario in an EV with my family to visit my parents. Wonderful time.

What Happened in June 2022 calendar Jul 1, 2022

Hardware hacking:

  • Play with EdgeImpulse, an esp32 and an mpu6050; collect gesture data.

  • Got idea to use the mpu6050 for a seismometer; tried logging with MicroPython, and managed to get surprisingly interesting data.

  • Began working on an Arduino-powered weather vane project; fired up 3D printer for first time in a while.

  • Played with ThunderSense and got Bluetooth packets captured with Python.

What Happened in May 2022 calendar Jun 1, 2022

Hardware hacking:

  • More playing with ESP32. Try making an open-window detector with the built-in Hall effect sensor, and sending a Grafana annotation when it’s open.

Programming:

  • Refactor my .emacs files to use a lisp directory, and switch to use-package rather than Cask. This is easily the longest-running project I’ve been working on:
commit 85b1d148afdc135d725498c0384d58e7baa0866d
Author: Hugh Brown <hugh@chibi-laptop-01.(none)>
Date:   Tue Mar 3 21:13:57 2009 -0800

    New repo.

…and that commit came after declaring bankruptcy in the last one.

Data science:

What Happened in April 2022 calendar May 1, 2022

Machine learning

  • Tried out vgg16 as a feature finder for the birdhouse camera, and xgboost as a classifier; 86% accuracy, which isn’t bad.

  • Set up BirdNET-Pi at home – very interesting project

Hardware hacking

  • Try setting up an MQ135 sensor prototype board and hooking it up to a Pi. Mixed results; seemed to show 403PPM, which is at least in the general neighbourhood. But it seems fussy, and takes a lot of warmup time.

  • Ordered some ESP32 chips to play with – Lolin32 Lite from Universal Solder (I’m a very happy customer of theirs). Took a while to get going, but this was mainly because I didn’t realize the USB cables I was trying it with were charging-only – or even that that was a thing. Got MicroPythong going, and wow – wifi set up right away, and with a decent range on it too. Amazing. Played with MicroDot, a web framework in MicroPython that works on ESP32. 🤯🤯🤯

Natural history

What Happened in March 2022 calendar Apr 3, 2022

No ML/DS work this month. But I am beginning to get interested in microscopy, so…

Hardware hacking

What Happened in February 2022 calendar Apr 3, 2022

I turned 50 in February. Two months later, I’m still confused by this. Was still recovering from COVID.

Hardware hacking

  • Started work on a birdhouse camera with my father-in-law. He built the birdhouse in December; this month we finally started working on putting together the camera part. There are two in here: an infrared camera and an endoscope for visual light. I put together a little circuit board with 6 500mW IR LEDs to act as illumination.

Home sysadmin

  • My little home machine is a Zotac ZBOX CI320 nano purchased in 2015. It’s great – small, unobtrusive, passively cooled and enough for everything I need…except that the 4GB of memory it has, which felt so decadent, is starting to be a constraint. I blame InfluxDB. Anyhow, ordered some more RAM only to realize I’d ordered the wrong size. Made up for it by adding a swap file. Ask your parents, kids.

Climate emergency

  • Met with my MLA, Judy Darcy, again about climate change; she got us some time with MLA George Heyman, BC’s Minister of the Environment as well. I’m grateful to both for their time.
What Happened in January 2022 calendar Apr 3, 2022

Welp…this took a long time to write up. In my defense, I got COVID in January and that sort of threw me off for a couple months. But it’s also just taken me a while to get back to it. Anyhow, onward!

Machine learning/data science

  • I submitted my entry to the Data Driven Cloud Cover Competition! Aaaaand…my score was terrible. However, I got a lot of practice out of this, and it was valuable for that. I intended to go back and figure out exactly why my scores were so abysmal, but got derailed (see first paragraph). But I think that for whatever reason, my GAN was just not working at all. I need to get more practice with this technique.

  • Some volunteer work for a local environmental society to demonstrate how to use Pandas for graphing.

Climate emergency

  • More letters to politicians. Did not make every week, but I’m cutting myself some slack here.
What Happened in 2021: Year End Review Edition calendar Apr 3, 2022

What happened in 2021? Time to look back.

  • We got an EV! It’s a Kia Soul, and I love it.

  • Started writing in here semi-regularly. 💪

  • Expanded the weather station: precipitation meter, anemometer, soil temp, particulate matter sensors.

  • Recorded a talk for PyCascades!

  • Much work on machine learning and data science: the dishwasher loading critic, some Kaggle courses, mapping New Westminster trees.

  • A lot of work on Polaris: telemetry analyses, supervising our third co-op student, and a proposal to run code on an ESA satellite (sadly, denied).

  • Radio took a bit of a backseat by the end of the year.

  • I was asked to be an advisor for ALEASAT, and that was wonderful.

  • The heat wave scared me, and I turned that into a focus on climate activism. Small steps, but I’m taking them. Met with my MLA in November to discuss climate change. I think of this as being the start of about 30 years of work.

  • Total distance walked since getting my latest phone in January 2018: 8,664 km. Daily average distance in 2021 was 7.2 km, up from last year (6.4 km).

  • Got more into birdwatching, phenology and natural history. Lots of data taking, which I enjoy.

  • Bird feeder camera with ML to recognize the birds. Does a fairly crappy job of picking out species but a good job of detecting birds.

  • Entered a couple of ML contests – no wins, but that’s expected; it’s the practice I’m after.

  • At work: joined a new team which has a definite data science focus. Learning a lot.

I’m leaving out all the incredibly important time with my family; this isn’t the venue I choose to record that in.

What Happened in December 2021 calendar Jan 18, 2022

A bit sidelined by Xmas, but still:

Machine learning

  • Much work on the DrivenData Cloud Cover Competition. I got the benchmark solution implemented, then looked around for a better approach. I decided to try implementing Weakly-Supervised Cloud Detection with Fixed-Point GANs by Joachim Nyborg and Ira Assent, which is a paper with code (https://github.com/jnyborg/fcd). I’ve been slowly plugging away at it, and recently finished a first full training run on a very small subset of training data, though I still need to get a working submission going.

    There were a lot of things I had to change (because the code was designed for the author’s problem, not mine) and fix (because the code did not always work as described); I plan on submitting the fixes back to the author, or at least letting them know about them.

    This was done on two different machines. The first is a Fedora server I have at home, an Intel NUC with 16 GB of memory. It doesn’t have a GPU or a GUI (all text Emacs on this one), but it works pretty well. It’s got more memory free than my laptop (which also has 16GB but also runs browsers), and enough disk space that I don’t need to think about it too much. This worked well for…let’s call it minute-to-minute development: working in my editor, banging on bugs and adding the features I wanted, committing to git and pushing to the remote repo.

    The training was all done on Microsoft’s Planetary Computer platform, which gives me access to JupyterLab and a GPU. It has a lot less disk space (~40GB or so, compared to ~500GB at home), no Emacs 🤯 and no make, but it does have git and vim. My workflow was usually to commit at home, push to git, then pull in Jupyterlab. This was almost all in the shell, btw; the code I’m working with was all regular Python modules, not Jupyter notebooks. There were some times when a notebook would have been handy, but so far I’m finding it hard to switch easily between the two – figuring out easy ways to duplicate the parts of main() I want seems non-trivial. Overall, this workflow worked pretty well for me.

    As for Planetary Computer: it’s had some hiccups, but overall I’ve been quite satisfied. This is a free trial, given because they’re sponsoring this competition. Disk space is a constraint, but for a free account I can’t really complain. And it continues to be wonderful – and shocking – to see Microsoft embrace Free Software in this way. No, they haven’t open-sourced Windows, but this still feels like pigs flying.

    With Xmas and family being the focus of the month, this took up most of my hobby time.

Home sysadmin

  • Upgrade servers to Debian 12. A bit tedious, but painless. Bless Debian and all who work on it.

Hardware hacking

  • The endoscopes I ordered last month came in, so I played with those a bit. I think they should do for the birdhouse project, though low light may be a problem. Set up a burner Android phone to get the streaming application working, which was fine if still sketchy-looking AF. It also works well enough over USB, though with an interesting lag that kicks in if there’s too much change in the picture – for example, if you wave it around a lot, rather than just keeping it focused on a smaller area.

Climate emergency

  • More climate letters.
What Happened in November 2021 calendar Dec 18, 2021

Climate emergency:

Hardware hacking:

  • First graph for the birbcam! We’re posting data to InfluxDB, so I get to play with it in Grafana (see below). Lots more to do, but this is a good start.

1

  • Ordered a couple wifi endoscopes for the next project: a birdhouse camera.

  • The tipping bucket precipitation meter that’s part of the weather station will sometimes record a lot of tips in a very short time…like, a ridiculous number. I’ve tried various things to filter out spurious signals, but we still see them from time to time. This time, I tried setting a threshold in the graph – exclude measurements with more than 5 tips in a 30 second period. This brings things down to a sane level. Thing is, after experimentation it is possible to have about a tip per second or so – but that requires literally pouring water into the funnel constantly to keep it full, and even in the midst of this I don’t think we were getting that much rain.

Machine learning/data science:

  • Worked on the Kaggle Time Series course. Left some feedback. Still not done.

  • Worked on visualizing data for Russet, a project I’ve let languish for a while. The goal was to take pictures out my office window, which faces a lot of trees (mix of deciduous & conifers), and try to see if I could track changes in the average colour over time. The result – just a first pass – is a half-hour animated bar chart. It’s definitely interesting to see the change over the course of hours, days and months. But it is also a half hour bar chart. Lots of room for improvement.

Natural History

  • Observations & IDs for iNaturalist, observations for Nature’s Notebook. I’m still managing to find new things to look at.
What Happened in October 2021 calendar Nov 6, 2021

That was October. Of 2021. Time is weird, yo.

Climate Emergency

  • More letters each week, but now with a reply from the BC environment minister now that the update to BC’s climate plan has come out. Lots of reading through that and figuring out how I feel about it.

  • More asking my MLA (who’s the education minister) for a meeting to talk about fracking. No response.

  • Attended a protest for the first time since university. Felt awkward…but if that’s the worst, I’ll keep doing this.

Hardware hacking

  • Playing with a TM1638 module I ordered.

  • BIRBCAM! Set up cheap binoculars so that they’re focused on a bird feeder at my in-laws’ house; set up a webcam behind them; get the Coral dev board connected to their wifi; get Motion running on it; and get Motion taking pictures, then getting an example script to analyze the pictures post-hoc. The identification is a little all over the map, but as a bird detector it works great. Pic can be found here.

  • I ordered a handheld anemometer a while back; it arrived, and I realized it did Bluetooth. That led me down the path of trying to decode the packets, rather than install the dodgy-looking app that I’m sure is totally fine, not even a problem Still not figured out

Data science/ML/GIS

River Flow Guestimates and Hard Data calendar Oct 23, 2021

My wife and I were out at the Coquitlam River Park today, walking along the trails. We hadn’t been there before, and it was amazing to see the river flow. It was fast, and it was easy to imagine the bad things that would happen if it flooded.

On our way back, we crossed Patricia Bridge, a small footbridge that took us back to where we’d parked. For fun, I decided to try guestimating the river flow, and then see if I could find actual data on it once we got home. I figured I probably wouldn’t be terribly accurate, but it would be interesting to see how wrong I was – and maybe why.

By dropping a stick in the river & watching it go, I estimated that the water speed was something like 2 metres/second (at least, near the bank). By pacing out the footbridge, I estimated the width to be 30 metres. I had no clue about the depth of the water, so I decided to call it 5 metres; similarly, to simplify things I decided to assume an oblique triangular profile for the river bottom. That gave me a surface area of 75 m^2 (that is, of the face of water from the bottom of the river to the top); assuming 2m/s, that gave me a volume of 150 m^3/s.

Is there real data on this? You damn betcha! Station 08MH002 is maybe a kilometer from Patricia Bridge, and even has a graph:

Station 08MH002

The damn tooltip doesn’t show up in the screenshot, but it read 62.3 m^3/s at 2:15 PM PDT – right about when I was pacing off the breadth of the river. That puts me off by about 2.5X. I was hoping to be closer than that!

So what did I have wrong? Well, the depth – which the same graph shows as 8.871 metres at the same time. That doesn’t help my model any…that would make my volume about 266 m^3/s.

What about flow? My model assumes that water flow is the same from top to bottom; is that correct? Probably not! (Incidentally, I didn’t know that ResearchGate had its own StackExchange-like Q&A feature…) The linked paper has this graph:

Velocity River Profile

which came from this USGS publication.

At this point, I fell down another rabbit hole around modelling velocity distribution in rivers, other papers giving empirical results on velocity distribution, and so on. This article gave Manning’s Equation, which I was excited about until I realized this doesn’t really apply here. But it was interesting reading about Manning himself.

I was hoping to get a rough-and-ready formula to figure out the average velocity distribution, but that didn’t come up in my very quick, not terribly attentive reading. I wonder if I could just use a multiplier of 0.4 (my estimate vs what the readings were) as an empirical heuristic?

Also…as far as the big surge in data goes, my assumption is that the dam that’s upstream released a bunch of water, given the very sharp rise that occurred right at midnight. Still digging into that.

What Happened in September 2021 calendar Oct 17, 2021

Machine learning:

  • Entered the STAC Overflow (get it?) contest. I managed to go through three iterations of my model, and improve a bit over the baseline model they had as a tutorial. I finished in 71st place out of 664 – not bad! However, my final score (0.5314) was nowhere near the winners; the top four were all over 0.8. Still, this was a good exercise.

Mapping/GIS:

Hardware hacking:

  • More fan runtime experiments. It’s interesting to see the different battery behaviours.

  • Got the anemometer hooked up to the weather station and working at last! 🎉 The one thing it’s not is calibrated – so I’ve got RPM, but I don’t know what that translates to in wind speed. Yes, you can calculate the circumference of one rotation & figure it out from there, but…well, it’s complicated.

  • This also required rejigging the cable on the tipping bucket rain meter to use the same cat6 cable I used for the anemometer. Twisted pair cabling, people, it’s the bomb.

  • Big refactoring of the Arduino code for the weather station; it’s a lot more readable now. And I’m reasonably confident that my floating point math is probably okay.

  • Begin plans for a bird feeder camera. I’ve got some Coral dev boards, and it turns out the example code for it includes a bird species recognition model based on iNaturalist data. Bought a cheap pair of binoculars to try using as a telephoto lens for a webcam.

Nature/science:

  • Continuing phenology measurements for Nature’s Notebook.

  • Lots of observations for iNaturalist and eBird, including submitting some historical bird counts from the past year.

  • After a lot of looking around, I bought two big hardcover sketch books to use as phenology/nature journals: one page per day, and observations from each year on that page.

Climate emergency:

What Happened in August 2021 calendar Sep 11, 2021

What did I do this month? Let’s see.

Machine learning/data science

  • More work on MLHub’s Earth observation & machine learning bootcamp

  • Participated in Kaggle’s 30 Days of Machine Learning course/contest. Some of it was stuff I already knew, but it was a good prod to do a bit of ML (nearly) every day.

  • Automated importing walking data from my phone. Since I’ve got an iPhone (sigh) and Linux, this means exporting data from the Health app, emailing it to myself, then processing it with Python to add it to InfluxDB with the help of this repo. Since I got my phone in 2018, I’ve walked about 7,650 km – here to St John’s, Newfoundland is only 6,800 km.

  • Also automated importing air quality data downloaded from the BC government.

Polaris

Hardware hacking

  • As I mentioned last month, I began some experiments to track the running time of some battery-powered fans – some with batteries built in, some that rely on external batteries through USB connections. I got one of the ubiquitous USB voltage meters, and it’s perfect for this.

  • Began monitoring sound levels in my office with a Raspberry Pi and the Seeed ReSpeaker 2-mic hat. It would have been really good to get this working before the pandemic hit, because I think it would have demonstrated the change in traffic noise due to the pandemic…but better late than never.

  • Finally added soil temperature probes to my father-in-law’s garden. We’ve got three at different depths: 1 foot down, 2 feet, and 3 feet. The trends so far have been pretty cool:

Grafana temperature graph for August 2021

Note the dual scales – air temp (green shaded line) on the left, soil temp (yellow/blue/orange) on the right. Fascinating to see how the change in temperature is buffered at different depths.

Mapping/GIS

  • More GIS podcasts/courses.

  • I made a dirt-simple Arduino GPS logger that used a small GPS module I got as a gift from my father, and managed to map the results.

  • I fired up a long-dormant account on OpenStreetMap.org and added a bunch of little free libraries (“public bookshelves” is the tag OSM uses). Fun to do.

Nature/science

Climate emergency

  • Letters every Sunday to government – mostly provincial, because of the Federal election in progress right now.

  • Submitted a letter against the Tilbury LNG port expansion, which is right near me.

  • Joined Follow This, an organization dedicated to shareholder activism in energy companies – Shell, BP, Chevron and Total.

What Happened in July calendar Aug 24, 2021

So late! Let’s catch up.

Hardware hacking

  • More work on the weather station to accommodate the one-wire sensors intended for the ground, and to prepare for the anemometer that’s been built. I think we’re going to skip calibrating the anemometer, and just record RPM.

  • Set up (finally!) a sound card hat for the Pi to catch ambient noise levels in my home office; we’re right by a major road, so my hope is that this will let me track traffic levels by proxy. I’d thought about this when COVID hit, but didn’t get on this for a long time.

Polaris

  • Helping out Ayush Bansal, our Google Summer of Code student; his final report will be coming out any moment, and I’ll mention that in (checks watch) 7 days.

  • ESA turned down our proposal to run code on OPS-SAT :-(, but another Libre Space Foundation project got accepted. :-)

Mapping

  • More listening to GIS podcasts and courses.

  • More work on the tree map, including trying to get Bootstrap working. I think this was a bit ambitious for me, though – I need a much better foundation in the basics of web development.

Machine learning/data science

EV

  • First road trip, to see what it’s like to drive longer distances. This was only about 270km round trip, but it was illuminating. Props to the fast charging station in Chilliwack at City Hall.

Climate Emergency

  • We went through the big heat wave; outside temperatures hit 45.1 C in the sun at my inlaws’ pace, and 32.8 C indoors at my place; as for the max overnight temperature, it was 24.9 C at my inlaws, and 29.1 C at my place:

Grafana temperature graph for August 2021 heat wave

This scared the shit out of me. A number of things have come out of that.

  • For a start, my wife & I have begun talking about emergency cooling. We’re in a townhouse and have no AC; we coped by staying indoors, and taking us all out to malls & other places with cooling. If there had been a widespread power outage, we would have been in serous trouble. We’ve decided to start trying to prepare for that, much as we try to prepare for an earthquake.

  • I’ve signed up for an energy efficiency assessment for our house, which is something I’ve been meaning to do for the longest time. Hopefully we can find some cooling options that are energy-efficient.

  • I’ve started with some battery-powered fans, and am running some experiments to see how long they can run on simple battery banks (like for charging phones). This is partly to get a bit of experience, partly to make sure I don’t run out and spend a bunch of money on something useless, and partly to – honestly – give myself a sense of control by having some experiments to do. It’s not the only thing we’ll do, but it’s a start. I’ll write this up later.

  • Another thing that came out of this is a commitment to writing my local, provincial and federal governments every week for a year on the climate emergency. This month: writing my provincial government to end old-growth logging in BC.

  • Patrick Johnstone, one of my city’s councillors, wrote a heartbreaking blog post about the heat wave and how New Westminster responded:

    It was a cascading failure, a demonstration we were simply not ready, as a City and as a Province. People died, leaving behind families and neighbours traumatized by the lack of response. I am afraid first responders were equally traumatized, as they had to operate in a broken and failing system that didn’t allow them to do the work they are trained for and dedicated to doing – protect and comfort the residents they serve. Instead, they spent three days in the stifling heat surrounded by the suffering and death of people they wanted to help. I cannot imagine, but once again, they deserve not just our recognition and gratitude, but a response – a way to fix this so they don’t have to go through it again.

What Happened in June calendar Jul 5, 2021

June: sick or whack? Let’s crunch the numbers.

Polaris

  • Lots of work mentoring our GSOC student, who’s doing amazing work.

  • Work on a presentation about analysis of QUBIK data with Polaris.

  • A lot of work with another Polaris member digging into dependency problems; written up here, MR merged in July.

  • Submitted our proposal for running code on OPS-SAT. I’m incredibly excited about this. 🤞

Space

  • More Aleasat meetings and helping them out as I can.

Data science

  • Start graphing EV efficiency data for our Kia Soul: cookiecutter repo, import into InfluxDB, graph in Grafana.

  • More work on New West Trees. Signed up for a free account on Carto, thanks to this tutorial; I’ll look at hosting this on PostGIS locally, but for now this gets me started. Current state:

    • Able to search for 5 nearest trees
    • Able to display just a particular species of tree
    • Able to mark all the unknown trees with a separate icon
    • Able to display this on my phone without crashing, thanks to Leaflet.markercluster

    Still lots to do, but I’m happy.

Hardware hacking

  • Got ethernet breakout boards for the weather station, which allow me to use cat6 cable to take readings from Dallas 1-wire temperature sensors. These will get buried in the soil at my inlaws’ garden. A lot of soldering work to get this done, and then rebuilding the Arduino software for the first time in years. Oh, and setting up udev rules to create static rules for /dev/weatherstation and /dev/sds011. …which I haven’t mentioned yet!

  • Bought a couple SDS011 particulate matter sensors; I’ve added one to the weather station, and one at home. Interesting to see how they’re doing.

Radio

  • Outing to local park; one QSO, truly awful signal reports from RBN. Not sure what’s going on.
What Happened in May calendar Jun 5, 2021

What happened in May? Let’s see.

Polaris

  • Initial analyses for OPS-SAT, BOBCAT-1, and QUBIK
  • PRs to resolve a few small issues
  • Help review abstracts for conference presentations
  • Lead preparation of a proposal to run code on OPS-SAT. I’m super excited about this.
  • Played a bit with the nanosat-mo-framework in preparation for that proposal.
  • We’ve got a Google Summer of Code student, Ayush Bansal! 🎉 Very much looking forward to working with him.

Space

  • I’ve been asked to be an advisor for ALEASAT, a cubesat project being built by UBC and SFU students. I’m incredibly thrilled about this.

Data science

Hardware hacking

  • Replaced rain sensor on weather station at my in-laws

  • Tested running 3 Dallas 1-wire sensors over a 25 foot / 7.5 metre ethernet cable: one twisted pair element each for positive, ground and signal. Worked a treat! These are going to be buried in the garden there to get soil temperatures at different depths

Radio

  • First POTA activation: Ve-3300, Cariboo Hill Park. 21 contacts, including 2 park-to-park. Closest I’ve come yet to a pileup.

  • Power went out at my house for a few hours, so I used the time to make contacts on my homebrew magloop on 20m while it was dead quiet. Made England, plus one with KD6JUI/MM, who was kayaking (!) with a homebrew magloop (!!).

  • CQ WPX contest: 55 contacts over 3 days. I’ll be honest, it was a bit of a chore by the end. But I managed to make New Zealand on 5W, and Australia on 5W on 40m (!).

What Happened in April calendar May 21, 2021

A little late (hah!), but still trying to keep the habit.

Polaris

  • A lot of work getting ready for Google Summer of Code – our third year participating.

  • Initial analyses for a couple different satellites: QUBIK-1 and -2 (using data from integration testing), OPSSAT (see below for why).

  • Documentation improvements, always important.

  • Begin working (with a crapton of other people!) on a proposal to run our software on OPSSAT. This has been a lot of fun.

Machine learning / data science

  • More work on the dishwasher loading critic; not as much as I would have liked, though. But I did pay my son to annotate ~ 100 images. 🤘

  • Got my tree map page put up on this website.

Sysadmin

  • Replace failing hard drive for Zombie, the home server that does it all.

Hardware hacking

  • More work on the anemometer. My father-in-law built a shelter for this to keep the rain off, and we’ve now got the sensors/magnets permanently (*with crazy glue) mounted on the arms.

Radio

  • First attempt at POTA, at a local park. Unfortunately, I only got four QSOs, so no good. I think part of that is probably due to the location: it was in a lower part of the park, and it seemed to affect propagation.
Exploring RBN Data calendar Apr 17, 2021

A while back I started exploring data from the Reverse Beacon Network. My initial goal had been to come up with an ML model to predict how many DX stations the local skimmer would receive – but there was a lot of exploration of the data as well. I captured that exploration in a series of notebooks, and set aside the project after a while.

One of the things I never accomplished was a satisfying display of where stations were being received from. I was aiming for something that would show changes over time, as well as location. Yesterday I was browsing through this Kaggle notebook for the BirdCLEF 2021 competition when I saw a cool map being generated from something called a shape file. A bit of browsing through the Internet found some great tutorials, and I think I have a better sense of what I can do.

Animation

First off, a choropleth map seems like a good first step – not exactly what I want, but with Plotly it seems like the initial animated view should be pretty simple. It can be exported as a gif, or even as an MP4.

This tutorial gets into the weeds with matplotlib to do the animation.

Maps

This tutorial also shows using matplotlib to draw the map, which is another way to get that done.

There’s jupyter-gmaps, a library for displaying Google Maps in a notebook.

For OpenStreetMap, there’s this tutorial from ArcGIS and IPyLeaflet. (God, I wish I’d known about that…) IPyLeaflet also has an amazing series of notebooks for experimenting. And this article has a lot of great demos.

Github supports rendering GeoJSON.

This article goes over timestamped GeoJSON files – brilliant! This article is probably closest to what I had in mind.

Libraries

What Happened in March 2021 calendar Apr 10, 2021

Hello world. March felt busy.

Polaris

  • The Libre Space Foundation (and thus Polaris) was accepted for the Google Summer of Code, and we had bunch of awesome students show up in our chat room. A lot of work came out of that: coaching students, evaluating their MRs, giving early feedback on proposals, and helping them find their way through the codebase and the problems. But these are definitely good problems to have!

  • I prepared an initial analysis of data from the QUBIK satellites; the data was from integration testing, and we’re hoping to compare it with what we receive afterward. You can see the graphs for QUBIK-1 and QUBIK-2. Next up will be adding info to our documentationto show how we did this.

  • A short blurb about Polaris will be going out in the IAF newsletter, which is cool!

Machine learning

  • Finished up tracking down a bug in Detecto, a wrapper around PyTorch for object detection.

  • Dig into more options for image augmentation, including Albumentation

  • Came up with a rough prototype for the Dishwasher Loading Critic: a (poorly) trained model, sitting behind an API written in Fast, with a copied bootstrap template. I was able to post pictures to it from my phone & get some (poor) bounding boxes around things. Progress!

  • Still trying to figure out where I want to go with this project: stick with Detecto, or move to PyTorch? I’d like to do the latter, but I have a lot of learning to do there.

  • Got LSP-mode enabled for Emacs. Interesting, and I suspect this will be a way forward for Emacs.

  • Tried Paperspace again after their upgrade, and WOW: it’s blazingly fast to start up. I’m going to re-open my account with them again.

Sysadmin

  • Finally got Fedora 33 installed on an Intel NUC. The problem had been that wifi did not work after installation, even though it worked during installation. Turns out there’s a bug where wpa-supplicant is not installed during installation; installing it afterward by hand did the trick.

  • Learned about nftables…huh.

Hardware hacking

  • First prototype of anemometer working – I’m now able to get RPM read and displayed in Grafana. Apparently, the best option open to me for calibrating this thing is to use a car: hold it out the window, go at a set speed, and take measurements.

(Drafted with the help of x-hugh-blog-what-happened-last-month!)

Set Projectile Project Type to Golang calendar Mar 26, 2021

Memo to myself: to set projectile’s project type to golang, create a .dir-locals.el file that looks like this:

((nil . ((projectile-project-type . go)))

Shortcut for editing a projects .dir-locals.el file: C-c p E and select projectile-project-type.

What happened in February calendar Mar 1, 2021

Here’s what I got up to in February 2021:

Polaris

Machine learning/data science

  • Began Chapter 9 of the FastAI book. This is on tabular learning, which is really interesting; I think this is the sort of approach I’d want to take for loostmap, my attempt to predict HF propagation by looking at data from the Reverse Beacon Network (I picked that project name from a random name generator…I really need something that makes more sense.)

  • Began playing with the New Westminster tree inventory, an open data file from my city. I’ve tried mapping that https://va7unx.space/trees, and the code can be found here.

  • Played with Roboflow, an online service that augments image data for machine learning. Also came across imgaug, a Python library that covers much the same ground.

  • Some work on the dishwasher loading critic, including beginning to work with PyTorch directly rather than using Detecto.

  • Dig into what may (or may not) be a bug in Detecto with bounding boxes.

  • Began feature engineering course on Kaggle.

  • Talked to my manager about the possibility of looking for DS/ML projects at work. Apparently there’s one team he knows of that’s looking into a project in this area, and the possibility exists to work with them for a bit. 🤞

Hardware hacking

  • My father-in-law finished a prototype of our anemometer; he’s a retired millwright, so he actually knows what he’s doing. (puts popsicle sticks and yarn away)

Radio

  • A few contests entered. Closer to getting my WAS – only missing Maine and Nebraska, and state contests for those are coming up in the next few months.

  • Reached Japan (7550 km) via CW on one watt!

  • Sysadmin work for the club.

Home sysadmin

Birding

  • Backyard bird count, plus started doing counts in local parks on weekend; submitted through Audobon app, which goes to ebird.org.

Gardening

  • Began growing wildflower seedlings at home under a grow lamp and promptly got mildew. There are a couple that have survived; I plan on transplanting those & trying again.
Fixing Apache and UTF8 calendar Feb 10, 2021

A while back, I started having problems with the output of Venus, a planet-like aggregator I use to read a bunch of things. The symptoms were broken characters for things like apostrophes, quotes and so on – which rendered the output nearly unusable. I dug into it, but couldn’t resolve the problem…so I resorted to a bletcherous hack (cron job to copy the file to my laptop, and view it with file:///...) and blamed Python 2.

Today I came across the same problem but manifested in another set of files. This time I managed to find the answer:

AddCharset UTF-8           .htm .html .js .css

To be clear, I already:

  • had made sure that the headers for the file included Content-Type: text/html;charset=utf-8
  • had made sure the html file had <meta charset="utf=8">

Weirdly enough, changing that meta tag to:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" >

worked…the apostrophes and such were displayed correctly. But they never showed up in the output when I ran a curl on the URL. Does Apache filter this stuff on the fly?

Anyhow…that’s enough encoding debugging for one day. Or possibly a year.

What Happened in January calendar Feb 5, 2021

Here’s a quick list, for my own reference, of what I got up to in January. It’s heartening to see everything laid out, and realize that I’ve actually managed to get a fair bit done!

Hardware hacking

  • My father-in-law and I worked on getting the precipitation meter going for our weather station. It took a while, but we finally got it working. 🎉

  • Some one-wire temperature sensors came in, and I was able to whip up a quick demo to make sure they worked.

  • Talked to my father-in-law about building a Lehmann seismograph. Early days, but I think he’s in.

Polaris

Machine learning

  • Some progress, though slow, on going through the FastAI book.

  • Tripped over Roboflow, which generates synthetic data for ML; very interesting, and I may give this a try for the dishwasher loading critic.

  • Some initial experiments with detecto, a simple wrapper for PyTorch object detection.

Radio

  • Not a whole lot of trips out, but some…and managing to reach D4Z Cape Verde on 10W. 9,155 km!

  • Totalled up my contacts toward SKCC Centurion…42/100. Normally I’m not big on this sort of thing, but it’s a number to reach for, and that’s no bad thing right now.

Urban Trail Cam calendar Jan 9, 2021

Last year, my father-in-law got a trail cam at my suggestion – mainly to get pictures of the rats that were eating his compost. It worked:

Rat trail cam picture

I borrowed it a while back, and finally set it up today under our bird feeder to see what we could get. Not a bad haul! We got:

  • Spotted towhees:

Junco and spotted towhee

  • Dark-eyed juncos:

Junco close up

  • Black and grey squirrels:

Black squirrel

Grey squirrel

  • A chickadee:

Chickadee

Not bad!

Out for radio as well: 12 QSOs from the North American QSO contest, including D4Z from Cape Verde – about 9150km on 10W. Nice!

Dishwasher Loading Critic calendar Jan 7, 2021

My project: critiquing your dishwasher loading technique using machine learning. A work in progress. You can find the repo here.

Fast Ai and Pytorch calendar Oct 25, 2020

I’ve been interested in machine learning for a while now. Like a lot of things, my approach has been a bit scattered. I’m slowly learning how to get better at that, but I still tend to veer around.

A couple of months ago, I decided to take the Fast.ai course again. I had done a couple of lessons a year ago, but had not followed it up. This time around, I saw that they not only had a new version of the course, but a book as well. I ordered the book (and another book as well), and got started on the Jupyter notebooks that the book is based on.

Let’s see where this goes!