One of my favourite aspect of being a dungeon master is building my own tools. I do this with a single goal in mind: improving the immersion by removing much of the in-game friction. This article will walk you through these tools and provide you with the resources you need should you want to use them as well.
Over the years, I've developed a mix of appreciation and frustration for make
. While it's conveniently ubiquitous across UNIX systems and widely used, its syntax often feels perplexing and unwieldy, posing debugging challenges. In this article, I share best practices I've embraced to make working with make
a more satisfying experience.
This article discusses the challenges of maintaining consistent versions of the SQLite library in different environments for a project that relies heavily on it. Unlike traditional databases, where server versions can be easily pinned, SQLite is embedded in applications, leading to potential feature mismatches due to what version is made available by each environment's system package manager.
In this article, I share the challenges I faced when trying to profile requests in an asynchronous FastAPI server. The traditional profiler, cProfile
, provided inaccurate results due to the nature of asynchronous functions, which resulted in misleading statistics. To overcome this, I explored pyinstrument
, a statistical profiler with built-in support for asynchronous Python code.
Sometimes, a pull request is ready to go, but shouldn't be merged before some other changes are merged first. While the patch is valid on its own, it might depend on other changes, and could even break the application if merged before the other. I'll demonstrate a simple technique relying on Github Actions and pull request labels to block a pull request from being merged, until deemed safe to do so.
I have created a small Neapolitan pizza dough recipe calculator so I don't have to figure out the recipe from scratch everytime I'm making pizza.
A quick walkthough of how to convert multiple mp3 files into a fully-fledged audiobook m4b file, with chapters and metadata.
I have been toying with the idea of generating visually pleasing maps centered on a given address, to have them printed and framed. The way I see it, it would make an original and personalised gift for the person living there. So when Marcelo de Oliveira Rosa Prates' prettymaps
blew up on Reddit, I decided to try it.
I have recently acquired two solar panels from Sunology advertising a cumulated instantaneous production of up to 810W. The panels come with a smart plug emitting the data to Tuya, in order to retain and graph historical data. However, the only available granuarity for that data is daily kWh production. In order to optimize the orientation and placement of the panels, as well as measure the production efficiency (power produced / 810 * 100), I needed a much finer granularity than that. I decided to query the data myself and send it to Datadog.
In this article published on the Alan tech blog, we explain how my team has reduced the runtime of our longest nightly job from 21h to about 8 minutes, by using simple profiling and SQLAlchemy optimizations.