When debugging slow SQL queries, it’s helpful to understand the database engine's query plan. Whenever you execute a...

In Slack, the settings dialog only offers a fixed selection of fonts. You can use any font you like using...

Rails wraps your parameters into an interface called StrongParameters. In most cases, your form submits your data in a nested...

Elements can be hidden and shown by toggling the display property. However, this is not animatable, so we often turn...

makandra dev
impactahead.com

Also see the list of IRB commands. Switching the context Changes the "default receiver" of expressions. Can be used to...

With Ubuntu 24.04 it's not longer possible to setup FDE with BTRFS The new installer won't offer you...

When setting up cronjobs, commands somtimes output something every time. If these commands don't support limiting their output to...

When Ruby objects are inspected in any modern IRB, some objects (like ActiveRecord instances) are rendered with neat colors and...

blog.saeloun.com

Rails' fragment caching caches subtrees of an HTML document tree. While constructing that tree though, it can be really hard...

makandra dev

YJIT is Ruby's default just-in-time compiler. It is considered production-ready since Ruby 3.2 (source).

makandra dev

Git has the concept of hooks: bash scripts that are invoked at certain points in the Git lifecycle. One handy...

makandra dev

A lesser known fact about PG enums is that they are ordered. This can be really handy when values have...

We recently migrated a Rails application from yarn to npm. We decided to go this step instead of upgrading to...

github.com

Zeitwerk is the new autoloader of Rails. It is mandatory starting with Rails 7.0. Sometimes, a model needs to know...

Rails 7.1 added the normalizes method which can be used to normalize user input. It lets you define the fields...

masilotti.com

Slow test suites are a major pain point in projects, often due to RSpec and FactoryBot. Although minitest and fixtures...

While the main goal always is to prevent long-running queries in the first place, automatic timeouts can serve as...

github.com

Ever needed to migrate data between Redis instances? Give RIOT - Redis Input/Output Tools a try. It supports migration to different...

The ActiveSupport::BroadcastLogger allows you to log to multiple sinks. You know this behavior from from the rails server command...

Starting with ChromeDriver 127, if your application displays a beforeunload confirmation dialog, ChromeDriver will immediately close it. In consequence, any...

I recently stumbled upon the Rails feature composed_of. One of our applications dealt with a lot of addresses and...

esbuild comes with a minifier that is good enough for most cases. If you're looking to squeeze out as...

You can improve your LIKE / ILIKE search queries in PostgreSQL by adding a GIN index with an operate class ("opclass...

Terser is a really good minifier ("compressor") for JavaScript code. I'm often surprised by the thoughtfulness of its compressed...