RSSAmplifier

Blog

Ian Wootten’s Blog

Solving complex problems with simple solutions. Specialising in Python software and web applications.

ianwootten.co.ukRSS feed ↗362 posts

Latest posts

Updating My Astro v1.5.0 Blog to v7 with Opencode

My Astro blog had long been neglected, so I used Opencode to update it

Mapping Premium Bond Winners Across the UK

I coded a heatmap visualisation of high value Premium Bond winners around the UK

Ditching Claude for OpenCode and OpenRouter

For the entirety of June I ditched Claude Code and have been using open weight models with Opencode and openrouter.ai. Here's how things went.

Investing vs Saving Doubled My Returns on Company Cash

Here's a low stress way you can put your cash to work whilst not using it

Choose Your Pi-hole Hardware Carefully

A cursory tale about running DNS services from a Pi Zero

Fixing Payment Popups with Cross Origin Opener Policy in Django

A site I'm working on which uses Paddle/Paypal stopped working when I migrated it to Django. Here's how I resolved it.

How to Deploy a Next.js App to Cloudflare Workers

I recently tried to deploy a Next.js app to Cloudflare workers with full CI/CD and it was a frustrating experience. Here's a TLDR of everything I learned in the process.

Developer Deals I’ve Bought That You Might Like Too

There's tons of tools on offer at the moment, here's a collection I've bought in the past that you might be interested in too.

Deploying a FastAPI app to Hetzner with Kamal

Kamal is a tool for deploying web apps. I hit a few issues while using when trying to do so to Hetzner.

ell - An Elegant, Powerful Framework for Prompt Engineering

Experiment with LLM's using excellent developer tooling.

Using Instructor to Return Typed Data from Ollama

How to return data from a local llm structured how you want.

Using Ollama to Run LLMs on the Raspberry Pi 5

I show you how to run large language models on the 8GB version of the Raspberry Pi 5.

My 2023 Retrospective

It's 2024 already and time for reflection on my 2023 goals.

Publishing Dev Tips with Next.js, Supabase Auth and Notion

Let's build a webapp for publishing coding tips stored in Notion to a static blog.

Effortless Embeddings with vecs and Supabase

I explore how the vecs library from Supabase makes text embeddings simple whilst searching movie reviews.

Dead Simple Large Language Models with Ollama

For the last couple of months I've been really enjoying using Ollama to experiment with large language models on my Apple Silicon Macs.

Reflecting on 20 Years on the Web

Today marks the 20th Anniversary of my website ianwootten.co.uk. Here's a quick summary of the past 20 years with links to some of my most interesting posts.

5 Things ChatGPT is Better at than Claude 2

I recently held a comparison of features of Anthropic's new Claude 2 model against ChatGPT with Code Interpreter enabled. Here's 5 things I found that ChatGPT is better at.

ChatGPT Code Interpreter: The Best Use Cases for Developers

ChatGPT’s code interpreter plugin has just become available for all ChatGPT plus subscribers. I checked out what's possible and here I'll show you the best ways developers can use it.

Returning Complex Data for OpenAI Function Calling

OpenAI's new function calling updates are able to return more complex return types than you might think.

How to Launch Chrome Using a Profile from CLI

How a Python Virtual Environment Works

Virtual environments are what we use in Python to allow us to isolate project dependencies from one another. But how do they work?

Self Hosting Generative Open Graph Art on the Edge with Supabase

I show you how you can make unique, randomised open graph images using generative art and then self-host them using Supabase and Fly.io

How to Create a Python Virtual Environment By Hand

Learn how much your favourite venv manager automates away when it creates virtual environments by creating your own by hand.

Building a Link Curation API with Platformatic

I show you how simple creating an API can be using Platformatic. I create a link curation API for my newsletter and even get it deployed with very little effort.

One Does Not Simply 'pip install'

Find your favourite package and turn to the readme to get it installed - it seems dead simple just a ‘pip install’ away. Nothing could possibly go wrong. Right?

How to Add a Ghost Signup Form to Another Site

After migrating my newsletter from Revue to Ghost, I needed to modify my static Astro blog here to allow people to subscribe. It involved a couple of steps, here's how you can do it too.

The Peerless Assassin SE 120 is an Incredible $40 Cooler

I recently upgraded my Personal PC's CPU to a 5800x, requiring me to upgrade my cooler to something more substantial.

The 2022 Retrospective

We are into the final few days of 2022 and as any good dev should I wanted reflect on how I think it's gone for me.

Why You Probably Shouldn't Develop Your Own Digital Product Store

At first glance, building a store for your own digital products seems simple to a developer. Hook up a Stripe payment link for orders and get it a to ping a webhook. Capture order details, email, deliver product. Job done. But it can be a whole more complex than that....

Using ChatGPT to Create Spoiler-Free Advent of Code Hints

I don't find the 'hints' on the AoC subreddit that useful, so I decided to ask ChatGPT if it could generate them for me

Automatic Spotify Playlist Creation with Pipedream and Supabase

Every week I create a new version of my site mixes.it based on new DJ mixes that have been released. In this post I describe how I collect the data with Pipedream and Supabase to create Spotify Playlists from it.

How to Setup Distrobox on the Steam Deck

I tried out coding with Distrobox on the Steam Deck and discovered it fixes most of my problems with it.

How to Upgrade Your Steam Decks Storage

I recently upgraded my Valve Steam Deck from a paltry 64GB eMMC to a somewhat less paltry 256GB SSD, saving me about £120

How to Search Your Entire Twitter Archive With One Line of jq

How to Use Underscores with Github Pages

Coding on the Steam Deck

I got the Valve Steam Deck last month and have instantly become obsessed with it. I wanted to know if I could use it as a linux dev machine, knowing that it was essentially a full blown PC under the hood.

Python isn’t Used in Prod

I watched a video earlier this week by comedian and mathematician Matt Parker. It’s an entertaining walkthrough of some impressive optimisation of his own Python code by his community but there's a comment about Python that I thought warranted some pushback.

PyCon UK 2022

This past weekend I've been attending PyCon UK. I'm particularly lucky in that I live a 10 min train ride from where it is located in Cardiff meaning its incredibly convenient and economic for me. As a Python dev located here, there's literally no excuse not to attend.

Getting Poetry to use the active Pyenv to Create a Virtual Environment

I found with a new poetry install that it refused to use the pyenv version of Python.

Developing on the Framework Laptop

Earlier this year I bought the 11th gen Framework Laptop to develop on. I share what I liked and disliked and how I got on with it.

How to Set the Locale Used in Cypress Tests

When running some Cypress tests in Github Actions that were inspecting dates recently, I wanted to be able to set the locale of the browser

Should You Pay for Github Copilot?

Unless you’ve been hidden under a rock, you’re likely aware of Copilot - Github’s (or Microsofts) AI pair programmer. It allows you to get help on the code you’re writing by bringing up suggestions through an autocomplete snippets when you begin typing code in your editor.

How to Pass Vue Route Params as Component Props

Certified Refurbished

Buying Refurbished Just isn't the Same for the M1 Pro

With $15 in Sales, My First Digital Product is My Most Successful Ever

Investment Principles You Can Use for Blogging

How to use .env files with Poetry

How to Query the Product Hunt API Responsibly with Python