Debugging performance issues in your Rails app can be a tough challenge. To get more detailed insights consider using the...
Note Using rem only ever makes sense when the root font size is dynamic, i.e. you leave control to the...
Developing or debugging SAML functionality can be a hassle, especially when you need to go back and forth with someone...
10.0.0 2024-03-07 Compatible changes console command: You can now globally disable the IRB multiline feature by setting irb...
You can chain multiple Capybara matchers on the page or any element: expect(page) .to have_content('Example Course')
A common cause of non-accessible web pages are elements that were made interactive via JavaScript but cannot be focused...
These are the top ten accessibility errors as researched by TPGi, a company focusing on accessibility. See the linked article...
Today I stumbled across a pretty harmless-looking query in our application which turned out to be pretty harmful and...
All browsers implement an event named beforeunload. It is fired when the active window is closed and can be used...
I recently noticed a new kind of flaky tests on the slow free tier GitHub Action runners: Integration tests were...
Sometimes you have a file that is related to a project, while not actually being part of it. You'd...
A Rails script lives in lib/scripts and is run with bin/rails runner lib/scripts/.... They are a simple tool to perform...
There are a few tools to combat the dreaded n+1 queries. The bullet gem notifies you of missing eager...
Version 3.7.0 broke some things in complex forms. Sorry for that. Concurrent user input is hard. 3.7.1 This change fixes...
The linked article suggests an interesting way to speed up tests of Rails + Postgres apps: PostgreSQL allows the creation of...
You can use pg_repack to do a VACUUM FULL without holding an exclusive lock during processing. There is still...
A general overview about why and how we migrate can be found under Migrating from Elasticsearch to Opensearch
In Capistrano 3, your Capfile requires 'capistrano/rails/migrations', which brings two Capistrano tasks: deploy:migrate and deploy:migrating. The former checks...
#pluck is commonly used as a performant way to retain single database values from an ActiveRecord::Relation Book.pluck(:title, :price...
If you ever need to restore exact records from one database to another, Marshal might come in handy. Marshal.dump is...
The sprintf method has a reference by name format option: sprintf("% d : % f", { :foo => 1, :bar => 2 }) # => 1 : 2.000000
Creating Nagios Config with puppet Let's have a look at the classic way of managing Nagios configuration with exported...
For some reason you have to pass the password hash if you want to create a role in postgres. To...
While upgrading CarrierWave from version 0.11.x to 3.x, we encountered some very nasty fails. Below are the basic...