Posts for: #Software

Testing Antenna Quality

With a Meshtastic antenna the advice is to put it as high as you can with as few obstructions as you can manage. For my home setup that meant a few physical iterations as it went from inside my office, to inside the attic, to outside the attic below the roofline, and finally outside the attic and higher than the roofline.

As an engineer I want baseline quality data before I make a change, so I know if my change helped, did nothing, or actually made things worse. I don’t have the knowledge or the tools to really measure the quality of my antenna setups, and I want real-world connectivity metrics more than I want a gain measurement.

[Read more]

Pushing Data From Meshtastic to Home Assistant

I mentioned previously that I was playing around with Meshtastic stuff, but here’s more detail on the software side of those projects. I’ll show the hardware side and what Meshtastic does in a later post, but here I talk about three ways I’m getting information from my Meshtastic node into Home Assistant:

  1. Using the MQTT pub/sub protocol
  2. Polling a telemetry REST API on the node
  3. Using the Meshtastic python API to poll the node

All of these offer a different subset of the same info and none of them offer everything. Years of operating long lived systems has me really reluctant to modify more than I have to to get what I want – every customization is a maintenance task when you upgrade. For all of these I’ve avoided integrations that aren’t built-in and Add-Ons/Apps that aren’t bog standard.

[Read more]

Home Automation Part 2

Back in October I talked about my growing, local Home Assistant setup, including some of my favorite custom automations. Three months on I’m still having fun with it. Recent automations include:

I’m particularly happy with how that undercabinet lighting synchronization worked out. We have a galley kitchen and wall-switched undercabinet lights on both sides. We always use the ones on the south side with a conveniently located switch and seldom use the ones on the north side with the awkwardly placed switch. Now when we turn on one, the other turns on. That could have been done when it was wired 20 years ago, but now one Sonoff switch module in each switch, and it’s done over radio in a way no one has to think about.

[Read more]

New SRE Job Hunting Advice

An acquaintance asked me about entering tech in today’s job market with a SRE, operations, or “devops” type role, and here’s the best response I could come up with:

The tricky bit about SRE and devops is that in any company we’re on the cost-side of the books, not the revenue side. Companies that are growing fast learn quickly that they need us to keep services available and to keep developer velocity high. Companies that are shrinking start by pulling back from cost-side groups like SRE, operations, and even security while they push resources toward feature development and sales. That’s short term thinking, and they end up with quality, reliability, and security tech-debt that they eventually need to pay down. If they survive they’ll come to understand that accutely, but it still might have been the right move at the time.

[Read more]

Home Automation Part 1

I’ve been futzing with home automation projects for longer than I’ve had a home, but it sure has gotten easier lately. Twenty years ago I was cobbling together individual hardware sensor and actuator pairs for automations with no central coordinating system and no logging. Ten years ago I was buying third party automation sets where everything was controlled by a cloud service and everything worked well until that company lost interest in the product they’d sold you and then everything stopped working suddenly. Now there are great local control options, with open sensors, open acutators, open controller software, and great history keeping. I’m buying parts from many companies, but the continued working of my setup doesn’t require any of them being around next year.

[Read more]

Unblog Generation Four

I’ve been blogging, unreliably, at ry4an.org since 2003, and just changed the software powering it for the third time. Up until today I was using blohg. It worked great, but hadn’t had a release in seven year and still required python 2.7, which is annoying to install cleanly these days.

A quick look around showed that the static site generator space has exploded since last I checked. Hugo is mature and doesn’t require a javascript runtime, which was good enough for me.

[Read more]

Outcome Probability for One Handed Solitaire

Back in 1994 my circle of high school friends spent a lot of time sitting around talking (there were no cell phones) and for about a week we were all playing one handed solitaire. In suburban St. Louis we called it idiot's delight solitaire (which turns out to be an entirely different game), because there is absolutely no human input after the shuffle. As soon as you've started playing it's already determined whether you've won -- you just spend five minutes learning if you did.

[Read more]

A Gamebook Report with Graphviz, Google Sheets, Python, and Juypter/Colab

An 11 year old in our house needed to do a book report for school in the form of a board game and selected a gamebook, apparently the generic name for the trademarked Choose Your Own Adventure books. The non-linear narrative made the choice of board layout easy -- just use the graph of pages-transitions ("Turn to page 110").

The graphviz library is always my first choice when I want to visualize nodes and edges, and the python graphviz module provides a convenient way to get data into a renderable graph structure.

[Read more]

Apache To CloudFront With Lambda At Edge

I've been running my (this) vanity website and mail server on Linux machines I administer myself since 1998 or so, but it's time to rebuild the machine and hosting static HTTPS no longer makes sense in a world where GitHub or AWS can handle it flexibly and reliably for effectively free. I did want to keep running my own mail server, but centralization in email has made delivery iffy and everyone I'm communicating with is on gmail, so the data is going there anyway.

[Read more]

Ry4an in Title Case

Python has a uniquely bad title case function which turns my already silly name into Ry4An, capitalizing the 'a' because it follows a non-letter character. I can't be sure that all the bulk email I get that's sent to Ry4An Brase has passed through Python's .title() function, but I've not found another language or framework with so bad an implementation.

At least Python warns you that their version is terrible right in the docstring for title and provides a slightly better one they suggest you paste directly into your code. There are, of course, better versions available in libraries like titlecase which handle things like not capitalizing articles.

[Read more]