The Truemail gem (not to be confused with truemail.io) allows validating email addresses, e.g. when users enter them into a...

The ExceptionNotification has plugins that talk to external APIs rather then just sends emails, like microsoft teams or slack. You...

Ruby offers monkey patching methods in order to change the behavior of a library if there's no better way...

In long diffs, it can become impossible to spot small changes in larger blocks of moved code. This may be...

When testing with Cucumber / Caypbara, iframes are ignored, so you can't interact with them. To interact with your iframe...

Ruby's String#split returns an array of substrings from the given string. Usually, this is missing the split characters...

Headless Chrome is a way to run the Chrome browser without a visible window. Configuring Capybara Configure the Capybara driver...

Whenever requires you to set the application attribute in your Capistrano configuration. Otherwise your cronjobs are created multiple times.

Using Ruby 1.8.7 you will not be able to use the maximum versions Rubygems 1.8.30 and Bundler 1.17.3 with https://...

makandra dev

Feature Queries (Edge 12+): Similar to @media queries, @supports blocks can be scoped to browsers that support a given declaration...

When deploying a Rails application that is using Webpacker and Capistrano, there are a few configuration tweaks that optimize the...

mtlynch.io

Why improve your code reviews? Improving code review technique helps your reviewer, your team, and, most importantly: you.

Sometimes you accidentally generate entries in the bash history that you do not want to have there (e.g. commands with...

makandra dev

This card is mainly an explanation how variable fonts work in CSS, not necessarily a recommendation to actually use them...

Getting the whole bucket size aws s3 ls s3://$BUCKETNAME/ --recursive --human-readable --summarize | tail -n2 Tail is used because...

tekin.co.uk

Git diffs show the surrounding contexts for diff hunks. It does so by applying regular expressions to find the beginning...

You need to install the official plugin, it is not bundled with RubyMine by default. Example: Setup a watcher...

makandra dev
thoughtbot.com

The linked article compares two approaches for writing CSS: A component library (like BEM) Utility classes (like Tailwind)

bugs.launchpad.net

Terminator has a cool feature that allows you to split your terminal into many panels and type in all of...

github.com

Scroll and touch event listeners tend to be computationally expensive as they are triggered very often. Every time the event...

Here is a short summary of Cucumber hooks in Ruby taken from https://github.com/cucumber/cucumber-ruby. Note that the BeforeStep is...

Sometimes you want to find the inverse of an ActiveRecord scope. Depending on what you want to achieve, this is...

Ubuntu 18.04 uses systemd to manage services. There are basically two commands for listing all services and manipulating the state...

We currently test most of our gems on Travis CI, but want to migrate those tests to Github Actions. This...