Posts by Steve Brettschneider
Using Python Context Managers for Structured Logging in AWS
One of the most valuable debugging tools in a distributed or cloud-based microservices environment is structured logging. In AWS, where we rely on CloudWatch or similar tools to aggregate and search our logs, it’s especially important that our log entries are not only readable by humans, but also easily parsed and filterable by machines. When…
Read MoreGiving My DIY Home Alarm a Voice: How I Connected a Raspberry Pi Security System to an LLM-Powered SMS Agent
From drywalling over old alarm panels to chatting with my house like it’s a smart assistant A House We Built — Literally Roughly 24 years ago, my wife and I built our house — not metaphorically, but literally. We served as our own general contractors and managed every phase of the construction ourselves. During that…
Read MoreCreating a Digital Personal Assistant – Part 1
Overview Lately, I’ve been toying with the idea of building my own digital personal assistant, leveraging AI, LLMs, and agent-based technologies. The goal is to create a tool that can help with the types of one-off tasks that people like me often encounter. This blog series isn’t meant to be a step-by-step guide but rather…
Read MoreWriting a Vim Plugin with Llama 3.1 and ChatGPT: A Quick Journey
If you’ve ever felt daunted by the idea of writing Vim plugins, you’re not alone. Recently, I decided to create a Vim plugin that integrates with Ollama, leveraging the Llama 3.1 model. This allows me to send text and/or prompts to Llama without having to leave my vim window. What’s surprising is that it’s been…
Read MoreUnderstanding Python Descriptors: A Deep Dive into Reusable Getter/Setters
Python is a language that thrives on flexibility and dynamic behavior, and one of its more advanced features is the descriptor protocol. While not as commonly discussed as other Pythonic concepts, descriptors are a powerful tool for creating reusable getter and setter functionalities. In this blog post, we’ll explore what Python descriptors are, how they…
Read MoreFunction Composition In Python
Function Composition In Python The Single Responsibility Principle (SRP) emphasizes that a function, class, or module should focus on a single task or responsibility. By adhering to SRP, code becomes more modular and easier to understand, which in turn simplifies both maintenance and testing. When each component is responsible for just one function, it reduces…
Read More