Recursion Is Fun Is Fun

So I’ve got an AWS Lambda function written in python designed to help auto-merge PRs that @dependabot has submitted. It queries all my github repositories, then auto-merges them based on particular configs. It’s done this way because then I don’t have to remember to configure each and every repository individually, and it does it in two stages:

  1. A scheduled execution.
    • This checks to see if it’s scheduled, then invokes the function with parameters specifying the repo to check.
  2. The subsequent “invoked” runs, which interact with the GitHub API to do the per-repo checks.

I’d recently made some changes and failed to test them properly - the “am I scheduled” was running, but ALSO the “run on a repository” check.

[Read More]

2022-03-13 Week in Review

Monday

Global Rest Day!

Assembling all the furniture things.

Tuesday

Hung out at the Mailroom and set up the internet, they nearly had to break down the little door in the wall where the infrastructure cable was hidden. Thankfully it all went well, and the speed’s good.

Later in the night I blocked myself from remote access to the router, awks. As the site-to-site VPN between sites still worked, I got back in through an SSH tunnel via an Access Point, which directed traffic to the router on port 22 from “inside” :success:.

[Read More]

2022-03-06 Week in Review

OK, I have to mention it. Fucking Russia. Seriously? Invading Ukraine? Get fucked. You insane pack of fucking morons. I don’t blame the boots on the ground - the’re clearly being treated like mushrooms.

πŸ‡ΊπŸ‡¦ > πŸ‡·πŸ‡Ί. I only hope as many people as possible get out of this alive.

Wednesday

I’ve been poking around at this idea in my head for a while, so I started yaleman/memes-api - basically shove images in an S3 bucket and it’ll make a little memes-library. I’ve got my own version at memes.yaleman.org and it works pretty well. CloudFlare’s in front of it, so it caches all the things, significantly reducing bandwidth required for the task.

[Read More]

2022-02-27 Week in Review

Uh, so it’s been a bit moist around here lately.

Monday

Um.. stuff? My NAS sync is finally working. Systemd services which can’t deal with usernames with the domain included are frustrating, but I worked around it by specifying the UID like an animal.

github_linter

  • Added a check for .github/CONTRIBUTING.md - creates a basic “here’s how to help” file
  • Ran mypy --strict and chased down a lot of issues. There were, and still are, many.

Tuesday

pyaussiebb

  • added the endpoints for get_orders() and get_order(int)
  • did a load of mypy yak shaving, --strict really kicking my arse, but it’s good.
  • hit bugs around running test_line_state against things that don’t support it, need to figure out if it’s worth checking for available tests before any invocation of a line test.

Traefik things

Someone mentioned traefik, I commiserated and quickly fell into the ADHD trap of “oh lordy a distraction and quickly had a config working for running the dashboard through the “normal” router. Something to document later, I still hate their docs/config style and lack of sensible examples. “Here is a full example” and then supplying snippets of code? No.

[Read More]

2022-02-20 Week in Review

Monday

After reading Casey’s post about ffmpeg, I finally got around to sorting out the install on my M1 macBook. Turns out, my homebrew install was all kinds of broken.

Tuesday

I picked up a Telstra Smart Modem Gen 2 (Technicolor DJA0231) for $20 from Facebook Marketplace, hoping to pick up some more speed on my terrible FTTN NBN connection. Alas, a waste of money and time, FTTN that is. What a criminal waste of our country’s time and money.

[Read More]

gobject-introspection building in Homebrew for ffmpeg 5.0

I haven’t been able to get ffmpeg (or a few other things) to build in Homebrew for a while, it’s been rather frustrating - especially when it fails with a message saying “do not contact Homebrew about this” … you packaged it! How else could I fix it?

Turns out, there’s a brew doctor command that can help sort things out.

➜ brew doctor
Please note that these warnings are just used to help the Homebrew maintainers
with debugging if you file an issue. If everything you use Homebrew for is
working fine: please don't worry or file an issue; just ignore this. Thanks!

Warning: You have unlinked kegs in your Cellar.
Leaving kegs unlinked can lead to build-trouble and cause formulae that depend on
those kegs to fail to run properly once built. Run `brew link` on these:
  unpaper
  ipython
  pango
  harfbuzz
  sdl2_ttf
  libraqm
  gobject-introspection
  pillow
  librsvg
  graphviz
  handbrake
  ocrmypdf
  libass

Copied the list of kegs above and ran this to force the update:

[Read More]

2022-02-13 Week in Review

Monday

  • Automagically tracked a weather balloon with my new kit.
  • Was bombarded with security updates from Github, updated my auto-merge bot to use pygithub while updating the list of packages to auto-merge.
  • Migrated the storage for my Splunk instance to Smartstore. Woo, minio!

Tuesday

  • Realised some cert renewals had gone wonky, because the acme package had just … disappeared?
  • Reissued a cert for my old fileserver, it’d been on a staging cert for… years?
  • Found the Home Assistant upgrade of doom was still plaguing me, the temp sensor in my server rack wasn’t being read, so fan control wasn’t turning on the exhaust fan. Eeek!
  • Changed from oh-my-zsh to starship.rs as a shell prompt automator. It’s different, but it’s faster and less broken.

Thursday

Friday

Fought with Fedex about a package they claim to have failed to deliver, left a card, then 8 minutes later recorded it as delivered to someone called “Olivia” - but couldn’t tell me where. The link between them and TNT is clearly a nightmare, this is the second international package that’s wasted hours of my time finding because they lose things.

[Read More]

asdf path completion fix

If your asdf completions or path aren’t working and you can’t figure out why, try re-shimming things:

asdf reshim python $(asdf current python | awk '{print $2}')
[Read More]

VueJS static site search and Pelican

I’m slightly chuffed by this, I was doing something and build Vue.js based search from a statically created index.

The fun part was storing/passing a “category” variable from the page’s HTML to the Vue app, and only slightly problematic by using Pelican to generate the site.

Pelican uses {{}} for tempalte variables, same as Vue, so I had to reconfigure Vue’s delimiters (hence the || around item.message)

Passing the category from the static HTML to Vue

  • The searchmeta app is defined in the div#searchmeta tag.
  • The data-category attribute of the div#searchmeta tag is generated by Pelican. It’s used on the categories pages, so that search only shows the in-category ports.
  • searchapp.getCategory() looks for the attribute and sets it to searchapp.category

Generating the search data

I generate a list of the pages, like [ "tcp/1", "udp/53" ] etc, and it’s stored as a static JSON file in the Pelican theme. In this case as /theme/searchdata.json.

[Read More]

First Sonde Tracking!

A tiny update on my post from yesterday - I had to restart it to get it back on the MQTT server, but … it successfully tracked a Sonde today!

And of course, because it’s data, I had to Splunk it…

Using the Location Tracker viz

Given I’m located in Tingalpa, about 7Km from the launch site, and the antenna’s sitting inside my house in the bathroom, I figure it did pretty good, tracking the thing until it was ~50KM away in Helensvale… that single red blip was from yesterday sometime. My software’s a bit better now :D

[Read More]