Haml 6 was a major rewrite with performance in mind. To achieve a performance improvement of 1.7x, some design...
Maintaining larger projects makes it more difficult to balance refactoring and upgrade tasks according to its actual value. Consider to...
If you need a sample video with certain properties for a test you can create one using ffmpeg.
This is a checklist I use to work on issues. For this purpose I extracted several cards related to the...
To retrieve only unique combinations of the selected attributes: You can omit rows, where all selected columns are equal with...
Variable fonts are popular for two reasons: they expand design possibilities and improve website performance. While the former statement is...
tl;dr The Chrome DevTools are a neat collection of tools for the daily work as a web developer. If...
Case studies and experiments demonstrating the impact of web performance optimization (WPO) on user experience and business metrics.
Recently we detected a memory leak in one of our applications. Hunting it down, we found that the memory leak...
When paginating records, we usually need to know the number of total records in order to render pagination links. Popular...
Redis.current will be removed without replacement in redis-rb 5.0. Version 4.6.0 adds deprecation warnings for Redis.current and Redis.current=: `Redis.current...
Event delegation is a pattern where a container element has a single event listener that handles events for all descendants...
The Node Version Manager allows installing multiple NodeJS versions and switching between them. By default, it does not automatically switch...
Table of content for the linked article: 1. The `loading=lazy` attribute 2. Email, call, and SMS links
I encountered a unlucky behavior of byebug 11.1.3 (the most recent version at time of writing) when using it with...
When storing files for lots of records in the server's file system, Carrierwave's default store_dir approach may...
When deleting a record in your Rails app, Carrierwave automatically takes care of removing all associated files. However, the file...
If your Webpack build is slow, you can use the Speed Measure Plugin for Webpack to figure out where time...
Webpack builds can take a long time, so we only want to compile when needed. This card shows what will...
To attach files to your records, you will need a new database column representing the filename of the file...
CarrierWave comes with a set of default configuration options which make sense in most cases. However, you should review these...
When you repeat a subpattern with a *, + or {...} operator, you may choose between greedy, lazy and possessive modes. Switching modes...
Scroll and touch event listeners tend to be computationally expensive as they are triggered very often. Every time the event...
ActiveRecord provides the ids method to pluck ids from a scope, but what if you need to pluck Global IDs...