github.com

Scroll and touch event listeners tend to be computationally expensive as they are triggered very often. Every time the event...

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

makandra dev

While debugging a SPF record I found spf-record.de to be very helpful. it lists all IPs that are covered by...

web.archive.org

There is a common view that extracting text from a PDF document should not be too difficult. After all, the...

simple-form-bootstrap.plataformatec.com.br

Good reference how to build bootstrap forms with simple_form.

If you want to get the path of a file relative to another, you can use the expand_path method...

CSS variables are very different from preprocessor variables. While preprocessors use variables to compile a static piece of CSS, CSS...

When you use Sentry to monitor exceptions, an important feature is Sentry's error grouping mechanism. It will aggregate similar...

makandra dev
developers.google.com

Chrome has a built-in utility to check performance and accessibility (and more) of your web app: Lighthouse.

In interactive commands, Git allows the user to provide one-letter input with a single key without hitting enter (docs...

Rails middlewares are small code pieces that wrap requests to the application. The first middleware gets passed the request, invokes...

makandra dev

We structure our CSS using the BEM pattern. Our naming convention for blocks, elements and modifiers has evolved over the...

If you want to prevent that two processes run some code at the same time you can use the gem...

We use Sentry to be informed about different kinds of issues. One of the key features is that you are...

"Open-source software (OSS) is great. Anyone can use virtually any open-source code in their projects." Well, it depends...

If you have a :string or :text field, you should pair it with a model validation that restricts its length...

Here is an ES5 object literal with two string properties and a function property: let user = { firstName: 'Max', lastName: 'Muster...

makandra dev

RubyMine has a HTTP Client that can be useful to test web APIs. Just create a .http scratch file an...

When an event listener on a DOM element throws an error, that error will be silenced and not interrupt your...

tl;dr Don't forget require 'English' if you use a named global such as $LAST_MATCH_INFO. Otherwise this...

makandra dev
thoughtbot.com

One of the earliest pieces of wisdom we are given as programmers is to not write duplicate code: Don’t...

To make CSS rules dependent on the screen size, we use media queries: @media (max-width: 500px) { // rules for screen...

Ruby and Rails have several methods for creating a new object that looks like another: clone, dup, deep_dup. When...

You can run bundle install in parallel. This might be helpful for development, where you often install many new gems...