Sometimes a link or input field has no visible label. E.g. a text field with a magnifying glass icon 🔎 and...

git --fixup is very handy to amend a change to a previous commit. You can then autosquash your commits with...

With cd .. you can navigate one directory up from the one you are at now. If you use that a...

It is generally discouraged to load your JavaScript by a tag in the : The reason is that a tag will pause the DOM parser until the script has loaded and executed. This will delay the browser's first contentful paint. A much better default is to load your scripts with a tag: A deferred script has many...

Our gem spreewald supports a few helpers for development. In case you notice errors in your Cucumber tests, you might...

The Node Version Manager allows installing multiple NodeJS versions and switching between them. By default, it does not automatically switch...

When testing JavaScript functionality in Selenium (E2E), you may need to access a class or function inside of a evaluate...

Matching the "space" character class For matching whitespaces in a regular expression, the most common and best-known shorthand expression...

When deleting a record in your Rails app, Carrierwave automatically takes care of removing all associated files. However, the file...

This card is a general reminder to avoid the short version of a command option in shared code. It's...

If a project ist configured to spawn CI runners for tests or deployment when pushing to the Repo, a habit...

To attach files to your records, you will need a new database column representing the filename of the file...

When your Rails application server raises error, Capybara will fail your test when it clears the session after the last...

makandra dev

When your application is open for public sign up and sends out transactional e-mails to a large number of...

CarrierWave comes with a set of default configuration options which make sense in most cases. However, you should review these...

You can use git worktree to manage multiple working trees attached to the same repository. But why should I use...

When you repeat a subpattern with a *, + or {...} operator, you may choose between greedy, lazy and possessive modes. Switching modes...

bundle outdated [--filter-major|--filter-minor|--filter-patch] Example output for bundle outdated --filter-major Other examples

By default, your terminal emulator (Gnome Terminal, Terminator, etc.) sets some kind of window title to reflect the shell type...

makandra dev

There are several tools for DNS debugging which offer you more or less information. Most of the time the more...

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

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

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

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