border-home1

Weekly Dev Update 10

Email Service | gRPC Round 2 | AWS SES

TLDR: In project Muse (security-camera project that uses AI to summarize and send alerts from conversations) I created a new service to send me emails based on video details.

Pigeons

I said it. Pigeons. Muse has a theme that each service is named after a species of bird. I really don’t know why. But here we are months after a snap decision, calling sections of my project pigeon. Parrot is the service that uses AI to summarize large transcripts. When a transcript comes back, we format the response into JSON. We are eventually going to log that JSON into a database. But for now, if the AI detects that a sensitive conversation happened from the list of ‘concerns’ we have, be they crimes, or kiwis, that’s right, the AI is smart enough to detect if people are discussing kiwis! Nevermind that. Now that we’ve detected kiwi-discussions, what are we going to do about that? Well, we need to be alerted of course! But how… I chose email. I’d prefer to manually review video || audio in an email format, as I can do that on my phone too. I chose to use aws SES (simple email service) for this. Tried a few alternatives, but chose SES because it’s cheap and honestly it was what I was what I had already implemented when I realized gmail has too many authentication bugs when using smtp or ses. Since ses was already configured, and working, and free for my needs, I’m going to keep on with it.

I set up Pigeon, got the Dockerfile and readme complete, and even the data type we’re going to convert gRPC messages from. The next step will be to turn this from a service that runs like a script, sending one email every time it runs, into something that waits for a gRPC message, and then formats & sends the email based on the alert.

Irritations

I’ve been a little frustrated by just how small this whole project feels. Compared to other projects, it’s just really dang simple. Several services can operate from 1-3 files, which just feels so dang tiny. But I guess that’s how adhd MVP development works. Just trying to get this thing to run as intended is the goal, style, complexity, those things would come if and when I decide to expand the project. Even logging, something I sometimes wish was working, I know there will be some refactoring required at the end of this to log all of this to a sqlite server at the end of this for each step along the way. I suspect that will either be a server that communicates between them all with http or gRPC. I haven’t decided that yet.

gRPC Round 2

I had some experience fighting with gRPC with the Pelican service a while back. I wanted to stream each byte of a file from pelican to another service that would have been responsible for communication to aws for each other app. I don’t think that was a good idea, so I gutted it in favor of communicating the file info to S3 from Pelican itself. Ended up being a lot simpler, but it means I never got gRPC working on its own from any service to another quite yet. I suspect by the time this post is viewable, this is the step I’ve completed or am working on. Wish me luck!

Tags:
recent-work

Ai-Generating Manga Is Tough

It’s been a while, my last post here was July 2025, and most of what I’ve been doing since is a manga generator that I’m honestly not sure I can finish.

The Manga Machine

The idea is you write a short plot, pick a length and some tags, and a pipeline outlines the story, splits it into pages, expands scenes into panels, and generates the art. You get a book you can read in the browser or export as PDF or CBZ. The software side went fine. It’s eight stages, each one writes a file before the next reads it so a job can resume anywhere without paying twice, and the lettering is drawn by my code as SVG instead of by the model, with two bubbles per page and 60 characters per bubble at most.

Read more →

The Go-Top Becomes a Homelab

The laptop

For years I carried a laptop covered in Golang stickers everywhere I went. The go-top. It was ancient, and it only kept working because I lived in Neovim on NixOS, which asks very little of a machine. It’s finally out of the backpack, and instead of recycling it I’m turning it into a homelab.

This is the first post in what I expect to be a long series, and I should say up front that there’s no finished system here. There’s a first commit, a mostly empty repo, and a list of things I want to learn.

Read more →
border-home1