Blogs

Install the Azure CLI on a Raspberry Pi
Install the Azure CLI on a Raspberry Pi

I do a lot with Raspberry Pis, and sometimes I want all my tools installed in one place so I can use my Pi for everything, rather than flipping back to my Mac. One thing I use a lot is Azure - funny really as I work for Microsoft! I often use the Azure portal as I prefer UIs to CLIs, but when …

Run Appwrite on a Raspberry Pi
Run Appwrite on a Raspberry Pi

TL;DR - use Raspberry Pi OS 64-bit if you want to run Appwrite on a Pi I’ve started working on a personal project, so thought it might be fun to give Appwrite a spin. Appwrite is an open-source app backend for web and mobile projects, you can think of it as a competitor to Firebase. Rather …

Control Microsoft Teams with a Stream Deck
Control Microsoft Teams with a Stream Deck

Already have a Stream Deck and just want to get it working with Teams? Jump to the instructions to set this up Like a lot of folks, I spend time in Microsoft Teams. It’s where I chat to my team and others at Microsoft, and it’s where I take most of my meetings. Although Teams has a lot …

Format Rust code with cargo format
Format Rust code with cargo format

This blog post was a fun one to write - cos I didn’t! I actually learned about cargo fmt on a recent Crack the code interview with Rust live stream and decided a quick blog post would be fun. So I launched ChatGPT and asked it to write this post! This is one of 2 posts written this way, so you …

Lint Rust code with cargo clippy
Lint Rust code with cargo clippy

This blog post was a fun one to write - cos I didn’t! I actually learned about cargo clippy on a recent Crack the code interview with Rust live stream and decided a quick blog post would be fun. So I launched ChatGPT and asked it to write this post! This is one of 2 posts written this way, so …

Run an Ubuntu VM on your Mac with a single command
Run an Ubuntu VM on your Mac with a single command

I recently needed to run Linux so I could test out what Python version was installed, and how to upgrade it for some documentation I’m creating. I don’t have a spare machine to set up as a Linux box, and didn’t want to use a Raspberry Pi, I wanted a clean Ubuntu install. My …

Subscribe to messages from an iRobot Create3 using ROS
Subscribe to messages from an iRobot Create3 using ROS

In my last post I showed how I connected a Raspberry Pi to an iRobot Crete3 robot. In this post I show how to subscribe to messages sent by the robot to the Pi using rclpy, the ROS Python library. One downside to ROS is that the documentation needs some love. It covers in great detail how to do …

Connect a Raspberry Pi to an iRobot Create 3
Connect a Raspberry Pi to an iRobot Create 3

iRobot, the makers of robotic vacuum cleaners also make educational robots designed for learning how to do robotics programming. I recently managed to get my hands on one of their new Create3 robots as part of the Microsoft Global Hackathon, one of the cool perks of working for Microsoft. These …

Led Ticker Tape
Led Ticker Tape

Anyone who knows me knows I’m a big fan of IoT and LEDs. I love using IoT devices to control lights, from the LEDs behind my desk to smart pumpkins! I’ve been giving the .NET IoT libraries a spin for an upcoming project using a Raspberry Pi Zero W 2. I’m usually a Python person …

Auto-posting to dev.to using a GitHub action
Auto-posting to dev.to using a GitHub action

I’ve been wanting to build a tool to post markdown automatically to blogging platforms. That way I (or anyone else) can write a blog post in markdown, save it in a GitHub repo, and have it automatically posted to a blogging platform of their choice. I’ve created a small Python app to do …

Getting started with GitHub Codespaces
Getting started with GitHub Codespaces

The bane of every new developers life is getting your environment set up to be productive. And when I say new developer - I don’t just mean a dev who is new to a team, but every developer who needs to work on a project they haven’t worked on before. Each project has it’s own …

New year - new me!
New year - new me!

Jim’s got a new job as a Regional Cloud Advocate in Redmond, Washington.