makandra dev

10.0.0 2024-03-07 Compatible changes console command: You can now globally disable the IRB multiline feature by setting irb...

developer.mozilla.org

A common cause of non-accessible web pages are elements that were made interactive via JavaScript but cannot be focused...

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...

makandra dev

Usually our code lives on GitLab, therefore our documentation for CI testing is extensive in this environment. If you are...

Sometimes you have a file that is related to a project, while not actually being part of it. You'd...

whattrainisitnow.com

The linked table shows the support lifecycle for Firefox Extended Support Releases (ESR) which we sometimes need to support for...

A Rails script lives in lib/scripts and is run with bin/rails runner lib/scripts/.... They are a simple tool to perform...

github.com

There are a few tools to combat the dreaded n+1 queries. The bullet gem notifies you of missing eager...

developer.mozilla.org

Today I learned that you can animate HTML elements using the Web Animation API's method .animate(keyframes, options) (which...

unpoly.com

Version 3.7.0 broke some things in complex forms. Sorry for that. Concurrent user input is hard. 3.7.1 This change fixes...

edgeapi.rubyonrails.org

The linked article suggests an interesting way to speed up tests of Rails + Postgres apps: PostgreSQL allows the creation of...

makandracards.com

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...

docs.ruby-lang.org

The sprintf method has a reference by name format option: sprintf("% d : % f", { :foo => 1, :bar => 2 }) # => 1 : 2.000000

While upgrading CarrierWave from version 0.11.x to 3.x, we encountered some very nasty fails. Below are the basic...

TLDR Using .includes or .eager_load with 1-n associations is dangerous. Always use .preload instead. Consider the following ActiveRecord...

Given you have an array column like this: create_table "users", force: :cascade do |t| t.integer "movie_ids", default: [], array...

thegnar.com

View specs are a powerful tool to test several rendering paths by their cases instead of using a more costing...

We regularly have tasks that need to be performed around a deploy. Be it to notify operations about changed application...

ruby-doc.org

Do you remember finding where a method is defined? I recently that Method objects are quite useful within a debugging...