We can use ActiveRecord's where to add conditions to a relation. But sometimes our condition is not on the...
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...
Root Insurance runs their application as a monolithic Rails application – but they've modularized it inside its repository. Here is...
Debugging image color profiles is hard. You can't trust your eyes in this matter, as the image rendering depends...
Browsers come with a set of built-in elements like or . When we need a new component not covered by...
It's every developer's nightmare: SQL queries that get large and unwieldy. This can happen fairly quickly with the...
Bundler 2 introduced various incompatibilites und confusing behavior. To add to the confusion, Bundler's behavior changed after the release...
You can use the Youtube API to get data from youtube. Here are some resources and some things that are...
Capybara provides execute_script and evaluate_script to execute JavaScript code in a Selenium-controlled browser. This however is not...
There is a practical short list for valid/invalid example email addresses - Thanks to Florian L.! The definition for valid emails...
WProofreader is a spelling and grammar checking tool that integrates with textareas and numerous WYSIWYG editors. While it usually activates...
As an application exists, data accumulates. While you'll be loosely monitoring the main models' record count, some supportive database...
When using Chrome for Selenium tests, the chromedriver binary will be used to control Chrome. To debug problems that stem...
The main benefit of our convention to prefix commits by their corresponding Pivotal Tracker ID is that we can easily...
There are several ways to merge two (or more) PDF files to a single file using the Linux command line...
MariaDB (and MySQL) is released in different versions with different behaviors. For backwards compatibility this can be managed with the...
You can share a state in Ruby with global variables. Even if you should avoid them whenever possible, for debugging...
Two weeks ago, Cloudflare was struck by a global outage that lasted ~30 minutes. The incident was rooted on a...
webpack is a very powerful asset bundler written in node.js to bundle (ES6) JavaScript modules, stylesheets, images, and other assets...
RubyMine comes with a nice way to grep through your project's files: The finder (ctrl + shift + f). Don't...
Jasmine has long standing support for writing asynchronous specs. In days gone by we used the done callback to achieve...
With ActiveType 1.2 you can modify associations (has_many etc.) after they have been defined. One common use case for...