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

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

Rails' default logger prefixes each log entry with timestamp and tags (like request ID). For multi-line entries, only the...

Recently I needed to benchmark an Active Record query for performance measurements. I wrote a small script that runs each...

With this command you can run all the spec files which have been edited or added in the current branch...

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

Whenever you have to deal with randomness in a jasmine test there are some spy strategies to help you out...

Reacting on a class getting added can be done with a mutation observer. Example: const items = document.querySelectorAll('.item') const expectedClass...

developer.mozilla.org

The Visual Viewport API enables developers to access the actually visible area of the page. This differs from the normal...

stevenhicks.me

Sometimes you want to write a test for a business rule that's based on multiple variables. In your goal...

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

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

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

This card is a short summary on different ways of assigning multiple attributes to an instance of a class.

I used two lab days to read the The framework field guide - Fundamentals, the first of a three part series...