Switching Python environments using the cs function

Zsh Conda Environment Selector Function

Managing Python environments can sometimes feel like navigating a jungle 🌴🐍, especially when dealing with dependency conflicts. To streamline this process, I created a handy Zsh function to add to your dotfile for switching Conda environments quickly and efficiently. 🚀 Let me walk you through it! Why I Needed This Function 🛠️ After months of using Conda to manage Python environments on my macOS machines, I realized I had built up quite a collection. Switching between them manually became tedious. So, I decided to create a quick, interactive function to simplify the process. 🎯 ...

November 17, 2024 Âˇ 2 min Âˇ Russ McKendrick

Vinyl Scrobbling macOS App

Like many techies on their day off, I completely abandoned my planned tasks and embarked on an entirely unplanned project: creating a macOS application. Well, to be more precise, I decided to prompt one using Claude 3.5 Sonnet↗ . With Anthropic’s recent updates to their AI model, I figured it was the perfect opportunity to test its capabilities while solving a personal need. The Catalyst: My New Tuneshine Device Recently, I acquired a Tuneshine↗ - a clever device that arrived last week. It works wonderfully with my streaming services of choice, including Apple Music↗ and Spotify↗ , and offers integration with LastFM↗ . ...

October 28, 2024 Âˇ 7 min Âˇ Russ McKendrick

Dynamic Network Config in Ansible: Local to Azure VNet

If like me you have been guilty of hard coding all of your network configuration in Ansible variables like this … Hard Code Values Lines: 12 Charaters: 359 Language: YAML 1 2 3 4 5 6 7 8 9 10 11 12 vars: network: full_range: "10.0.0.0/24" subnets: - name: "subnet1" address_range: "10.0.0.0/27" - name: "subnet2" address_range: "10.0.0.32/27" - name: "subnet3" address_range: "10.0.0.64/27" - name: "subnet4" address_range: "10.0.0.96/27" ...

September 21, 2024 Âˇ 13 min Âˇ Russ McKendrick
Ansible logo on a Mac background

How to Install Ansible on a Mac: A Modern Approach

As the DevOps landscape evolves, so do our methods for managing tools like Ansible. This post outlines my current preferred approach to installing and managing Ansible on macOS. The Traditional Homebrew Approach For years, many macOS users, including myself, relied on Homebrew to install and maintain Ansible. The process was straightforward: Installing Ansible using Homebrew brew install ansible While this method effectively managed the core Ansible installation, it became problematic as Ansible’s ecosystem grew more complex. ...

September 15, 2024 Âˇ 3 min Âˇ Russ McKendrick
Explore the world of AI image generation using Flux, fal.ai, and OpenAI. Learn how to build a Streamlit app that leverages GPT-4o for prompt tuning and Flux models for creating stunning visuals. Compare outputs with Midjourney and discover the potential of these cutting-edge tools.

Unlocking Image Creation with Flux and GPT-4o

This week I decided to see how many buzzwords I could get into one post, given the recent release of Flux by Black Forest Labs I had originally intended on trying to get it up and running locally - however it quickly became clear that my M3 MacBook Pro with its 36GB of RAM wasn’t going to cut it. Because of this, I decided to look at one of the many online services that offer access to the various Flux models via their APIs which led me to Fal.AI which in turn gave me the idea for this post. ...

August 11, 2024 Âˇ 14 min Âˇ Russ McKendrick
A wall of vinyl records in a home office setting

Behind the Scenes; More than just a background

If you’ve ever joined me on a Teams call from my home office, you’ve likely noticed the wall of vinyl records behind me. This post aims to answer the most common questions I get on calls, offering a glimpse into my music collection and the technology used to play it. The Collection My vinyl collection is more than just a backdrop; let me give you a tour: The Main Attraction The wall you see behind me during video calls is just the beginning: ...

August 4, 2024 Âˇ 3 min Âˇ Russ McKendrick
Learn how to generate an Azure Storage Account SAS token from a Logic App using an Azure Function. This step-by-step guide covers deploying a PowerShell-based Function App, creating the SAS token generation function, and integrating it into your Logic App workflow. Overcome common challenges and enhance your Azure development skills with this practical tutorial.

Generating an Azure Storage Account SAS token using Azure Logic and Function apps

Don’t you just love it when you open your laptop first thing on a Monday morning, a fresh cup of coffee at the ready and you think to yourself … This should be a straight-forward five-minute job to start the week with … and it turns out to be anything but? That is exactly what happened to me this week, I won’t go into too much detail, but I was working on an Azure Logic App that had to interact with an external service and pass it a a fully signed SAS URL for an Azure Storage Account so that it could send some quite large files there. You would assume that the Azure Blob connector↗ would be able to do this, and you would be correct as there is a “Create SAS URI by path (V2)” action: ...

July 27, 2024 Âˇ 10 min Âˇ Russ McKendrick
Explore a powerful KQL query for Azure Firewall logs. Learn how to analyze network traffic, filter by source and destination IP, and gain insights into your Azure Firewall's performance and security.

Azure Firewall KQL Query

This is a quick post to share a useful KQL query for Azure Firewalls that I’ve been using. It’s based on the default Firewall query from Microsoft, but with some added variables to allow for a more focused analysis of source and destination traffic. I’m putting it here for my future reference and in case it’s helpful for anyone else. Azure Firewall Query with Variables This query allows you to analyze Azure Firewall logs, focusing on specific source and destination IP addresses within a defined time range. It’s particularly useful for troubleshooting and security analysis. ...

July 20, 2024 Âˇ 5 min Âˇ Russ McKendrick