RSSAmplifier

Blog

updown.io

The official (mostly tech) blog from updown.io

updown.ioRSS feed ↗10 posts

Latest posts

Asynchronous render, but faster, and without XHR/AJAX/Turbo

I've been using a simple trick on updown.io since May 2015 to make pages feel faster without doing much work. And I extracted it as a gem so you can too. It's called render-later and I thought it deserved a quick write-up (better late than never). The problem You know that annoying moment when you're building a dashboard and there's one metric that takes 200ms to compute? Maybe it's a database…

Goodbye Canny

In 2024, I migrated from UserVoice to Canny for user feedback collection. This move followed the UserVoice turn to enterprise clients and their removal of free & small plans. UserVoice still offerred me a hidden plan for a small fee after discussion with the support (something like $39 or $49/month as I recall), but who knows when they were gonna kill it, it's never a good idea to rely long-term…

The performance improvements in Ruby 3.3 with YJIT

Ruby 3.1.2 vs 3.3.5+YJIT in production In the previous article I discussed about my upgrade process from Ruby 3.1 to ruby 3.3, discovered a potential regression in a specific scenario, and ended up with synthetic benchmark results looking pretty great: Basically much higher performance thanks to YJIT, with an even lower memory usage then before, it's looking good + good. After running it in…

Weird results comparing ruby 3.1, 3.2 & 3.3 with jemalloc and YJIT

updown.io has been running on ruby 3.1 since... git log -p .ruby-version ... August 2022 so for slighly over 2 years now. More specifically ruby 3.1.2 with jemalloc for better performance . Note: I am not using YJIT in production yet, as my benchmark in 3.1.2 for updown.io daemon code showed a mere 5-10% CPU time performance increase, but with more than 30% memory increase. And after a few days of…

My one man company stack and which services I recommend (in 2024)

A lot of people are wondering about the technical stack used by updown.io and more generaly by one-man tech companies. A while back (2016) I filled up this information on StackShare . I haven't kept it up-to-date and I don't like to have to maintain yet another third party documentation so it's unlikely I'll update it again. Though it changes very slowly so it's still rather accurate for the…

The funny rules of SpamAssassin in 2023 (deep dive)

This investigation was surprising to me so I thought it would be interesting to share my findings and I hope you'll like it. Some of my clients occasionally reported that the updown confirmation email (used to confirm a new email address, provided by Devise ) had been classified as spam, we're talking about this one: Doesn't look too spammy so far but sometimes mails servers running SpamAssassin…

Using `destroy_async` with Mongoid 8?

I wanted to improve the responsiveness of the Delete account action, which could be slow for bigger/older accounts due to the many associated records to be destroyed (downtimes, metrics) being sparsely distributed in the database. This sounded like a wonderfully perfect use-case for the recent dependent: :destroy_async option added in Rails 6.1. Except I'm not using ActiveRecord but Mongoid , and…

Welcome to the new updown.io blog 🎉

For a while I've been thinking of "starting a tech blog" . Well technically I already started one a while back on Medium , but I didn't like Medium because of the—let's say poor —reader experience so I didn't want to write on it nor to promote it. I saw many blog tech and hosting platform rise (and die) in the following years, everytime telling myself: "maybe I should just use this one?" and…

MongoDB SSD incident postmortem

Note: This article was initially published on Medium in 2019 and later moved to this official updown.io blog. All times will be given in UTC+2 (CEST) to match monitoring tools screenshots. April 3rd 2019 at 2:30 am : updown.io primary database (MongoDB) server starts to answer queries about 200 times slower than usual, causing an almost total outage of the website and the monitoring daemons 🔥…

Ruby + jemalloc: Results for updown.io

Note: This article was initially published on Medium in 2017 and later moved to this official updown.io blog. I recently read this great article about compiling ruby with jemalloc for slightly better performance and smaller memory usage and it got me intrigued. I mean I already knew jemalloc, but I though this kind of optimization (swapping allocation library) was reserved for some very specific…