Paul's page

Hacker, tech-entrepreneur

Molly Guard for Ansible

The Jargon File defines Molly Guard as: A shield to prevent tripping of some Big Red Switch by clumsy or ignorant hands. Originally used of the plexiglass covers improvised for the BRS on an IBM 4341 after a programmer’s toddler daughter (named Molly) frobbed it twice in one day. Later generalized to covers over stop/reset switches on disk drives and networking equipment. In hardware catalogues, you’ll see the much less interesting description “guarded button”.

Menu-driven Matrix Bot Interaction

I’m a huge fan of Matrix. A lot of the user value of modern chat platforms like Slack, Matrix and Discord (even IRC) comes from integrations to other services via bots. I had high hopes for MSC3006: Bot Interactions, but unfortunately it isn’t currently being pushed further. However, there exists an implementation of MSC3381: Polls.

Selectively running single role in Ansible

While I’ve been switching from Ansible to Nix lately, I still use Ansible and have written a fair share of Ansible YAML. A common trick I’ve used is to only run a specific Ansible role instead of the whole playbook. That can be achieved by using tags, but usually I haven’t tagged everything before I have the need.

Shorter wrapped error handling in Go

With Go 1.13 error wrapping was standardised with an interface in the standard library. When properly handling errors, you end up dealing with it a lot. The blog post suggests the following: var e *QueryError if errors.As(err, &e) { // err is a *QueryError, and e is set to the error's value }

Generic pointer of value with Go

I’ve been writing a decent amount of Go during the past 8 years. While I like many things about Go, some of the design choices result in repetitive or longer than necessary code.

GlitchTip on arm64

Why does everything have to be so hard on arm64? Well, maybe not directly hard, but a lot more work. And the reason is simple, we live almost in a amd64 monoculture. Mobile phones are changing that, as is Apple M1, but also arm64 servers.

Roborock S6 Pure Troubleshooting

We have a Roborock S6 Pure robotic vacuum cleaner. It’s very nice having a device that more or less cleans the floors by itself. When it works. Ours stopped working a week ago, after working well for months.

Matrix Bot for the reMarkable eInk Tablet

I own a reMarkable 2 (referral link) eInk tablet. It’s pretty nice (except lately the manufacturer has tacked on a subscription service). And it can send documents as PDFs via email. But unlike the Kindle, you cannot send documents to the tablet via email. Well, there exists a third party service. I saw someone post on reddit that they wrote a Telegram bot that can be used to upload documents to their reMarkable. That sounded interesting, but I’m partial to Matrix.

coturn for Ubuntu Jammy (22.04 LTS)

Today I had to install coturn on Ubuntu 22.04 (Jammy Jellyfish). It doesn’t have package available because of a bug. But there’s a solution on the bugtracker, so I decided to build my own package. It has been a while since I last did it, so here are the steps for reference:

Blog Comments with Matrix Using Cactus Comments

I’m not sure if comments improve blogs, but I’m willing to try. But my blog is a static site and I don’t like the idea of forcing Disquson readers of my blog. Luckily there exists a project built on matrix for adding comments to your site.