If your app does not need to support IE11, you can use most ES6 features without a build step. Just...

Rails ships with two separate build pipelines: Sprockets ("asset pipeline") and Webpacker. Webpacker has many more moving parts, but allows...

makandra Curriculum

When your code does not behave as expected, you can use a debugger statement ("breakpoint") at any point in your...

In ruby you can easily read and write CSVs with the standard CSV library class. On top of this, you...

The Ace editor is a great enhancement when you want users to supply some kind of code (HTML, JavaScript, Ruby...

When projects run for many years, they require special regular maintenance to stay fresh. This kind of maintenance is usually...

Accessing pseudo elements via JavaScript or jQuery is often painful/impossible. However, accessing their styles is fairly simple. Using getComputedStyle

api.jquery.com

jQuery's removeClass removes the given class string from an element collection. If you want to remove multiple/unknown classes matching...

github.com

This repository was created with the intention of helping developers master their concepts in JavaScript. It is not a requirement...

developers.google.com

Mobile Chrome and Safari support the "web share API" which allow you to use the native share functionality of an...

TL;DR: All modern browsers default to using the element as the main document viewport. In CSS, prefer to set...

Font Awesome 5 is a comprehensive solution for vector icons on your website. Originally, Font Awesome came as an icon...

makandra dev

Cross-Site Request Forgery (CSRF) is an attack pattern for websites. A CSRF attack is usually relevant in a...

A JavaScript error in an E2E test with Selenium will not cause your test to fail. This may cause you...

developer.mozilla.org

...HTML's accepts a single file. You can allow multiple files via . But sometimes, selecting multiple files is not enough...

Most forms have a single submit button that will save the record when pressed. Sometimes a form needs additional submit...

At makandra, we've built a few gems over the years. Some of these are quite popular: spreewald (> 1M downloads...

Having a unique selector for an element is useful to later select it from JavaScript or to update a fragment...

As a web developer, you know Google Analytics (GA). Probably you've dropped the GA snippet into more than one...

Why secure-only cookies used to be necessary Cookies have an optional secure flag. It tells the browser to not...

benmccormick.org

The linked article lists a number of techniques that were best practices with ES5, but have better alternatives in modern...

If possible your code should detect features, not browsers. But sometimes you just need to sniff the browser. And when...

caniuse.com

Since late 2015, all major browsers (still excluding Firefox) support pointing device media queries. These can be used to distinguish...

makandra dev
content.pivotal.io

A matcher is a function that returns an object with a compare key. Usually it is registered with beforeEach...