border-home1

Weekly Dev Update 9

Weekly Dev Update #9

Over the last week, most of my work has been contributing to my Project Muse, out of work, as well as hosting the first Golang meetup in my city, and giving a presentation on the Go programing language!

Project Muse | Docker Compose | Anthropic JSON Generation | Golang Meetup

Golang Meetup

In the last week, I finally hosted, and presented for the first Golang meetup in my city! Had a surprisingly good turnout, so I’m happy to announce that I’ll be hosting future meetups for Go in my city. Of course, that means I’ll need to improve on, and prepare for more presentations! So I did a little bit of prep on a ‘How to make an HTTP server in Go’ presentation. I think I want to break it into a 2-part presentation. The first one going through the absolute basics, and the following one is literally writing out the functions and host the app on the cloud so the audience can submit questions. Doing this all in real-time, while presenting is certainly a challenge, but one I’m totally here for! So looking forward to more from the meetups.

Docker Compose

Now my services in Project Muse are getting a little too complex. A simulator, pretending to be a security camera streaming can only run after the rtsp server is running, and then other services can run independently, not dependent or interracting much with these services at all. Sometimes my go-cache gets really bloated, and running Go can take a while. Simple solution is to clear my cache every now and then, but I’m lazy. So to solve both of these problems at once, I learned just enough YAML and Docker to use Docker compose to configure all of this for me, and get all the services running from one terminal with a single command. Docker Compose has been a fantastic tool, and I’ll certainly be thinking about it whenever it could be useful.

Anthropic JSON Generation

My ‘Parrot’ app now checks SQS for messages, if one exists, a new aws-Transcript file has been stored in S3 .json file. So now Parrot is getting the json file, getting the json, then parsing out the transcript. Once I have the transcript, I’m giving a specific request of Anthropic’s API to give me important information about the transcript. It’s a really cool thing to see that in action.

Video Streaming in Parralel

How to ingest multiple streams at the same time was a lot harder than I thought. Thankfully Claude.ai made itself useful for the first time ever and gave me some helpful pointers to get this working. Now, the RTSP server can handle, at the very least, multiple, video cameras streaming to it at the same time.

The second part of this was getting ‘Simulator’ to stream multiple videos at once. This was much easier, thankfully. Mostly just taking the original process, editing the config, adding it into a loop with an upper bounds, then performing the function in a goroutine with a new method for handling shutdowns. I was able to see my RTSP server ingesting multiple streams, and sending files to S3 at a much higher bounds, but I need to see just how many streams the RTSP server can actually handle at once, not just in theory.

Next steps are to get Parrot to check for messages in SQS not just once on startup, but periodically checking how many messages exist, and pulling them all down at once. Just checking S3 was 10x the cost, but we could radically reduce the cost if we handled things differently with an improved refactor. Not to mention that S3 transcript files aren’t being deleted, but that’s more of a post-production issue for the sake of testing.

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