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

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

testing-library are widely used testing utilities libraries for javascript dependent frontend testing. The main utilities provided are query methods...

It's possible to implement simple custom RuboCop cops with very little code. They work exactly the same like existing...

Sometimes we have to write code that behaves differently based on the version of a specific gem or the Ruby...

I recently stumbled over a quirk in the way Ruby handles local variables that I find somewhat dangerous. Consider:

tl;dr To adjust code templates in RubyMine, navigate to Settings -> Editor -> File and Code Templates. Example You can navigate...

makandra dev
github.com

I was recently asked to optimize the response time of a notoriously slow JSON API endpoint that was backed by...

makandra dev

While most Rails Apps are tied to at least one external REST API, machine-to-machine communication via GraphQL is...

Modern JavaScript includes Intl.NumberFormat to format numbers in different formats and locales. In this card, we describe a wrapper for...

This card shows an uncommon way to retrieve a file using selenium where JavaScript is used to return a binary...

Some rubygems come in platform-specific versions (i.e. "x86_64-linux") in addition to the usual "ruby" platform. This is...

chrisboakes.com

Debouncing a method call delays its execution until after a specified time has passed. If it's called again before...

You might know a few examples, where you configure some library via a block. One example is the Rails configuration...

This cards describes an example with a Github Client on how to keep your Rails application more maintainable by extracting...

Fresh Chrome installations now show a "Choose your search engine" popup in Europe. This might make your Cucumber tests fail...

Using Capistrano, we usually have some array configurations in the config/deploy.rb file, like set :linked_files, %w[config/database.yml], so in...

ActiveModel classes have a class method .human_attribute_name. This returns a human-readable form of the attribute: Person.human_attribute...