In 2024, I migrated from UserVoice (https://www.uservoice.com/) to Canny (https://canny.io/) 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 gon...
Ruby 3.1.2 vs 3.3.5+YJIT in production
In the previous article (https://updown.io/blog/weird-results-comparing-ruby-3-1-3-2-3-3-with-jemalloc-and-yjit) 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:
| /files/671d0e3dcd6850ba2f442c60.svg | ...
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 (https://updown.io/blog/ruby-jemalloc-results-for-updown-io).
_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 perf...
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 (https://stackshare.io/adrienjarthon/updown-io). 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...
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 (https://github.com/heartcombo/devise/blob/main/app/views/devise/mailer/confirmation_instructions.html.erb)) had been classified as spa...
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.](https://www.bigbinary.com/blog/rails-...
For a while I've been thinking of "starting a tech blog". Well technically I already started one a while back on Medium (https://medium.com/@adrienjarthon), 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: _"ma...
Note: This article was initially published on Medium (https://medium.com/@adrienjarthon/updown-io-incident-postmortem-f4707cd20091) 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 ...
Note: This article was initially published on Medium (https://medium.com/@adrienjarthon/ruby-jemalloc-results-for-updown-io-d3fb2d32f67f) in 2017 and later moved to this official updown.io blog.
I recently read this great article (https://www.levups.com/en/blog/2017/optimize_ruby_memory_usage_jemalloc_heroku_scalingo.html) about compiling ruby with jemalloc for slightly better performa...