We use CarrierWave in many of our projects to store and serve files of various formats - mostly images. A common...
The linked GitHub repository is a bit like our "dev" cards deck, but groomed from a single person (Josh Branchaud...
Test-Driven Development (TDD) in its most dogmatic form (red-green-refactor in micro-iterations) can be tedious. It does...
A recent patch level Ruby update caused troubles to some of us as applications started to complain about incompatible gem...
Embedding videos on a website is very easy, add a tag to your source code and it just works...
By default, Devise redirects to a sign-in form when accessing a route that requires authentication. If for some reason...
Code comments allow for adding human readable text right next to the code: notes for other developers, and for your...
Sometimes it's nice to have some coloring in your logs for better readability. You can output your logs via...
You can use the CSS property mask-image to define an "alpha channel" for an element. E.g. to let an...
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...
This checklist should help you to check edge cases that are not part of the default Carrierwave configuration.
Debugging image color profiles is hard. You can't trust your eyes in this matter, as the image rendering depends...
Bundler 2 introduced various incompatibilites und confusing behavior. To add to the confusion, Bundler's behavior changed after the release...
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...
Rubygems supports a 2FA for your account. Once enabled you need to provide your personal OTP code for every release...
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...
There is a practical short list for valid/invalid example email addresses - Thanks to Florian L.! The definition for valid emails...
This collection contains some useful design resources for developers. Many of them were mentioned in the Refactoring UI tutorials.
As an application exists, data accumulates. While you'll be loosely monitoring the main models' record count, some supportive database...