I made a small command line tool to quickly switch between recent branches.
Blog (38)
Long-form. Ideas, dev notes, the occasional rant.
I noticed a larger CDN bill than normal, and the cause was AI Crawlers, so I blocked them with Bunny.net Edge Rules.
I keep forgetting how to use Rust Enums with Diesel, so I wrote it down for future self.
This post details how I use IntoResponse for my AppError to render proper error pages and status codes for all my Error types, including Diesel::error::NotFound.
How tho handle trailing slashes for Axum routes
Moving from Pocketbase to Rust and removing a whole lot of moving parts in the process.
Moving from a static site with markdown to a personal API with structured (JSON) content.
Convert tiptap marks to svelte HTML components with a self-nested component.
Let's see if we can go node-less with Yew.
For a simple side-project, I needed to serve static JSON, with proper CORS headers.
I have rewritten my middleman site to Svelte/SvelteKit, here's what I encountered.
Or, make sure your headers match, otherwise you'll get a lot of strange errors.
Or, how something so simple cost me so much time.
My hope with this project is that with less friction to write and publish a note/article, I'll do it more.
In today's article, we’ll cover performance from a different angle: The choices we made in our stack for AppSignal.
If you like to use Mailgun's Europe region you need some undocumented settings in the ActionMailer integration to get emails out.
After getting back from a 3-week trip my plants were not in a good mood, there was a heatwave when I was gone and not all plants survived. Time to think of a solution.
In this post, I'll tell you how we used AppSignal to detect and resolve an issue we had last week with our Kafka brokers.
Extend default behavior of code with Traits and default implementations. In this case we add new functionality to generated Protobuf code.
My site contains a lot of images and resizing them for different devices (mobile phone, tabled, desktop etc.) takes a lot of time and (upload) bandwidth. This is especially annoying on Hotel Wi-Fi in a far-away country. With the help of AWS Lambda and Rust I made this into a smooth process.
Markdown is great, but not so much when you have dozens of images in a file and don't know what is what. This little app helps me sort through the images.
In this post, I'll explain why we got really excited last week using Custom Metrics and Anomaly Detection to monitor MongoDB in our own (AppSignal) infrastructure.
Moving (again) from Rails API + React to a static Middleman
A post about the statistics we use at AppSignal and how they work.
Share code with yourself or others by utilizing the RubyGems ecosystem.
Almost everything in Ruby is an object and errors are no exception.
Query batching is a way to speed up your application. Instead of waiting on multiple client-server roundtrips to load data, everything is loaded at once.
After cleaning my Sony RX100 Mk1, the "Turn camera off then on" appeared on my screen and I had to replace a certain ribbon cable to fix it.
Track how well your caching is optimized by using custom metrics.
Sometimes standard instrumentation isn't enough to track the root cause of a performance issue. Custom metrics help us track the missing pieces.
We recently upgraded our database driver from moped/mongoid4 tot mongo-ruby-driver/mongoid5 and these are a few things we encountered along the way.
How to keep your API, client tests and documentation in sync.
We've been using the combination of Mongodb, Mongoid (3.x.x) and Sidekiq for a while now and we noticed that lately our queue's were filling up, but we could not pin-point any bottlenecks in our system.
In AppSignal, we process a ton of data: between 60 to 100 million entries per day. We aggregate this data with only few seconds delay. Let's see how we did this.
Not so long ago we noticed that our MongoDB servers were running out of disk space at an alarming rate. Because we host our database on SSD enabled servers at DigitalOcean, scaling up could cost us a lot of money.
Recently we noticed that our database was doing a lot of queries while processing our queue. Lets see if we can fix that.
Siri tells you your upcoming tv shows for the night.
I thought it would be fun to control an RC car with an arduino.