Getting an RTSP Stream from a Mac Camera

2025-07-02

I’ve been working on a certain project which I am not ready to share yet, but which involves reading from RTP streams. Before I ordered myself some RTSP compatible cameras, I needed a quick way to get an RTP stream to test out the general idea. The only cameras I have on hand are my iPhone, my MacBook and an old IP camera from which I’ve so far failed to extract an RTP stream.

Continue reading 


Building a Golang Protoc Plugin to SQL Scan+Value Enums

2025-06-30 | #code-generation #golang #protobuf

At Sentiance (where I work as a Software Engineer), we use gRPC and protobuf to communicate between services in a typesafe manner. Here’s a recent problem I faced. I had several enums in protobuf files that I wanted to save as database columns. But instead of their integer representation, I wanted to store their string representations. Let’s say this is the enum I wanted to store. package userama; enum UserType { UNSPECIFIED = 0; SUPER = 1; COMMON = 2; } The generated Golang code for our enum looks like this.

Continue reading 


Alexa, when did baby last pee?

2025-04-04 | #alexa #overengineering

People have complicated feelings about AI Coding assistants. I won’t wade into that debate. For me, personally, while I enjoy learning about and playing with software, I also enjoy achieving end-goals. For this particular project, Claude has been a boon. The reality of being the father to a nearly one-year old is that I no longer get a lot of time for my hobbies. But with Claude, I was able to do in days what might have taken me weeks.

Continue reading 


Exploring How Protobuf OneOfs Are Represented

2024-12-05 | #golang #protobug

This is a short exploration of how Protobuf3 OneOf fields are represented using Golang as our exploration medium. OneOf types, aka Tagged Unions are data structures that are used to hold one of a finite list of distinct types. A variable of a tagged union type can hold a value of one of several types defined for that tagged union type. This might be easier to understand with an example via pseudocode.

Continue reading 


Scraping VRT News Journaal with Puppeteer and Github Actions

2024-10-21 | #automation #github-actions #puppeteer #web-scraping

My girlfriend works in the field of language and education research and sometimes makes lessons for the online Dutch language learning platform Nedbox. The lessons are often based around real world events and having a way to _gather interesting real world events is invaluable. She asked me for help listing news events from the show VRT NWS journaal on VRT Max. Their page looks like this. Each day there are two episodes, one for the 13h news and another for the 19h news.

Continue reading 


Protopath Problems in Go

2024-09-11 | #golang #grpc #protobuf

Failed to compute set of methods to expose - Symbol not found This cryptic error has reared its ugly head a few times in the past when working with grpc in Golang. I can’t remember how I’ve solved it before. Probably with some combination of stackoverflow answers and random github gists with advice that I have now forgotten. When it happened most recently, I decided to try to actually understand what was going on under the hood.

Continue reading 


Setting up DSMR Meter Readings via a Raspberry Pi

2024-05-23 | #dsmr #electricity #home-assistant #raspberry-pi

The internet is probably full of tutorials on how to do this right, but I had to struggle a bit to figure it out for myself. My Pi randomly crashed, the other day, and I’m having to do some of the setup again and having done this for the first time months ago (and having now mostly forgotten what I did), I decided I should blog about it as I retread my steps and recreate my setup.

Continue reading 


Is it Dry Yet?

2024-04-08 | #home-assistant #home-automation #smart-plugs

Clarification: This is literally about my laundry. I am not being metaphorical. I am not talking about my feelings or my secrets. I am talking about my clothes. Intro Our washing machine is a Samsung something-something that sends me a notification on the SmartThings app when it completes a wash cycle. This is useful since we almost always need to follow up a washing cycle with a drying one and maybe even another load of laundry.

Continue reading 


Alerting on Process Completion

2024-04-04 | #home-assistant #shell-scripting #webhooks

Most of my technical endeavours have something to do with enabling me to work as little as possible for as much reward as possible. And yet, paradoxically, in a pursuit of doing less I often end up doing more. I have this idea that in the long term this will eventually lead me to doing much less. I’m not sure if that’s true, but it’s a nice thought and keeps me going.

Continue reading 


Short Tale of Intel -> Apple Silicon Migration

2024-03-13 | #apple #shell-scripting

Note: I will be using the terms amd64, x86_64, and Intel interchangeably in this post. They all refer to the same architecture. Similarly arm64 and Apple Silicon are used interchangeably. I recently got handed a new MacBook at work. It’s a MacBook Pro with an M3 chip and my first encounter with Apple Silicon. I have been hearing many good things about Apple Silicon and having experienced it for myself for the past day I must say that my old Intel MacBook can’t compare.

Continue reading 