When Knitting Becomes a Full-Stack Problem: Adventures in Analog Programming
You know that feeling when you solve a complex problem and everything just works? That’s exactly how I felt completing my latest knitting marathon. As someone who spends her days wrangling cloud infrastructure, I’ve discovered that knitting scratches the same problem-solving itch in surprisingly similar ways. Over the past few years, I’ve been treating knitting patterns like code repositories - each project a new challenge to debug, optimize, and deploy. And just like my home lab projects, some turn out better than others. Let me walk you through my recent “releases” and what I learned along the way. ...
Automating Blog Posts with a Synology NAS and Claude AI
When I set up my home lab with a Synology DS420j NAS, I wanted a project that would let me explore Claude’s API capabilities in a practical, everyday context. The result is a Python pipeline that takes photos from my NAS, hands them to Claude, and automatically generates and publishes a fully formatted blog post to my Hugo static site on GitHub. Here’s how I built it. The Hardware The foundation of this project is straightforward: a Synology DS420j — a 4-bay NAS — connected to a home router via a network switch. The NAS serves as the central storage layer, holding photos in a dedicated shared folder (blog/photos/latest/) that the pipeline reads from. The DS420j runs Synology’s DSM operating system and is accessible at a reserved local IP address, which makes it a reliable and addressable part of the home network. ...
Automating My Blog With Claude Code
I’ve recently started using Claude — specifically the Claude Code CLI — and it’s already changed how I manage this blog. Instead of manually writing posts and running git commands, I can now just describe what I want and Claude handles the rest: writing the post, building the site, committing, and pushing to GitHub. It’s pretty wild. To get started I picked up a Claude Pro subscription, which is required to use Claude Code — the free tier doesn’t include it. Totally worth it. Here’s how to get it set up on a MacBook Air. ...
Rebuilding My Blog with Grok
After running a clean, minimal Ghostwriter theme for some time, I recently migrated this site to Hugo-PaperMod. The goal was better performance, built-in dark mode, improved mobile responsiveness, and easier customization while keeping the lightweight blogging feel. What is Hugo? Hugo is a fast, open-source static site generator written in Go. Unlike traditional CMS platforms (WordPress, Ghost, etc.), Hugo compiles Markdown content, templates, and assets into plain HTML, CSS, and JS files at build time—no database, no server-side runtime. This results in blazing-fast page loads, strong security (no attack surface), low hosting costs, and easy version control via Git. ...
GCP Load Balancers with Terraform
Networking in GCP, or any cloud environment, often requires a load balancer(LB). If you try to use Terraform to deploy a load balancer in GCP you’ll notice that there is not a single Terraform resource to create a GCP LB. GCP provides example Terraform scripts to create LBs in their documentation here. However, if you have an understanding of how load balancers work internally, and how to properly structure your Terraform code, creating your own LB modules in GCP using Terraform is possible. This can allow you to configure your LBs to do exactly what you need. ...
Getting Started with Ansible
In this post: What is Ansible Installing Ansible Authentication Inventories Playbooks Testing Ansible What is Ansible? Ansible is an open-source infrastructure as code tool provided by Red Hat. Instead of agents, Ansible relies on SSH to pass tasks defined in YAML to remote machines. To get familiar with Ansible, I created a simple scenario where a bash script needed to be uploaded to a remote machine and ran periodically. ...