makandra dev

Or: How to avoid and refactor spaghetti code Please note that I tried to keep the examples small. The effects...

This is a personal post-mortem analysis of a project that was mainly build to provide a REST API to...

PostgreSQL and ActiveRecord have a good support for storing dynamic attributes (hashes) in columns of type JSONB. But sometimes you...

Sometimes, you might have duplicate links on a page. Trying to click those links will by default cause Capybara to...

Before you continue, ensure that you've created your certificate in the region us-east-1 (N. Virginia). Otherwise...

medium.com

Root Insurance runs their application as a monolithic Rails application – but they've modularized it inside its repository. Here is...

This checklist should help you to check edge cases that are not part of the default Carrierwave configuration.

When you have two inputs, where one contains the name of the other (eg. Name and Name with special treatment...

Debugging image color profiles is hard. You can't trust your eyes in this matter, as the image rendering depends...

makandra dev

SimpleScreenRecorder I recommend simplescreenrecorder, it produces an adequate output with only a few clicks. The audio recording contained some...

To test that an object was constructed by a given constructor function, use jasmine.any(Klass): describe('plus()', function() { it ('returns...

Browsers come with a set of built-in elements like or . When we need a new component not covered by...

If you want to make your Rails application be capable of sending SMTP emails, check out the action mailer configuration...

pganalyze.com

It's every developer's nightmare: SQL queries that get large and unwieldy. This can happen fairly quickly with the...

eregon.me

Bundler 2 introduced various incompatibilites und confusing behavior. To add to the confusion, Bundler's behavior changed after the release...

When restoring a barman PITR backup you may encounter this error: Copying required WAL segments. EXCEPTION: {'ret': 2, 'err': '/bin/sh...

makandra dev

A primer on vector graphics For rastered image formats like JPG or PNG, each pixel is basically drawn on a...

So I had the issue that User input (coming from many different sources and users) often contains the...

You can use the Youtube API to get data from youtube. Here are some resources and some things that are...

There is a kind of features in web applications that hinder automated integration tests. Examples include cookie consent banners or...

Rubygems supports a 2FA for your account. Once enabled you need to provide your personal OTP code for every release...

api.rubyonrails.org

ActiveSupport (since 4.1) includes test helpers to manipulate time, just like the Timecop gem: To freeze the current time, use...

This is a bookmarklet you can add to Chrome or Firefox which will allow you to create a story in...

When text renders differently in Firefox and Chrome, it may be caused by a font alias that both browsers handle...