RSSAmplifier

Blog

Luke Merrett

Software Engineer, Gamer, Music Nut.

lukemerrett.comRSS feed ↗15 posts

Latest posts

PyCon UK 2023 Raw Notes

Notes on this year's PyCon UK conference held in Cardiff: talk highlights, quotes & thoughts.

Building C4 Diagrams in Mermaid

Using MermaidJS to render C4 Diagrams in Markdown

Mermaid Diagrams as Code in Notion

How to display lovely diagrams in Notion using Mermaid syntax

When a Flask DB Upgrade Fails on a Batch of Scripts

What happens when 1 script in a "flask db upgrade" batch fails, how does the roll back behave?

A Dive into Python Type Hints

An overview of typing hinting in Python, including Optional, Union, Protocol, TypeVar and Callable types.

Different Merge Types in Git

Demystifying the difference between "Merge", "Fast Forward Merge", "Squash and Merge" and "Rebase and Merge" on Git

C4, Diagrams as Code & Architectural Joy

This is a long form article showing the journey of how we gained value in using C4 diagrams combined with Diagrams as Code when representing our team's architecture. I wanted to go into detail about where we were coming from and the issues we saw in that approach,

Record Types in C# 9.0

What are Record Types? Record Types are a popular feature of F# , also commonly found in other functional languages, that have recently been introduced to C# in version 9.0 (released alongside .Net 5). On the face of it they provide a shorthand for creating classes, often used for basic

Getting Things Done in Notion Using Tables

One of the key draws of Notion is the flexibility its Table functionality brings, acting as a combination of Trello, MS Access & a To-Do-List all in one. Using this tool you can set up relatively complex workflows across multiple views. To show off this feature in greater

Building a Personal Highlights Tracker in Notion

Notion is a relatively new wiki tool that's been gaining a lot of traction lately, especially with task management geeks like myself. You can think of it initially like a web-based wiki (with desktop & mobile apps), it has a hierarchy of pages you can fill with

Automating Pilot Health Checks with Holt-Winters & Graphite

Recently Netflix announced the release of Kayenta ; an open source tool for automating canary analysis they use to ensure their pilot deployments are healthy. This post outlines how you can achieve something similar with built-in Graphite functionality; we will set up a test server in Docker, populate it with

Deploying Docker Containers with Azure Container Instances

For one of my upcoming blogposts I have been exploring options for hosting Docker containers in the cloud. Along the way I found that Azure Container Instances is a relatively straight foward, no nonsense approach if you're after rapidly hosting an image without having to deal with the

Timing a Function in F#

This can be useful for capturing how long an operation takes to execute, it also nicely demonstrates how generics operate in F#. Modified from the original version found in the F# Programming Wikibook open System.Diagnostics type TimedOperation<&apos;T> = {millisecondsTaken:int64; returnedValue:&apos;T} let timeOperation<

Environment Specific Configuration in DotNet Core

It&apos;s common to have different application configurations per environment (e.g: Dev, QA, Production) allowing us to switch between them at each stage. In older Web Applications this was usually done with Web Config Transformations or Razor files, however the new ConfigurationBuilder available in DotNet Core makes it

F# Data Type Providers in .Net Core

As one of F#&apos;s killer features; type providers have the ability to make rooms full of developers gasp when shown for the first time. Support has recently been added to the FSharp.Data library for .Net Standard 2.0, allowing us to use type providers for a range