Page-specific JavaScript quickly becomes brittle. This lesson teaches you to structure JavaScript as reusable components that attach to HTML...
Most forms have a single submit button that will save the record when pressed. Sometimes a form needs additional submit...
validates_uniqueness_of is not sufficient to ensure the uniqueness of a value. The reason for this is that in...
JavaScript has no built-in functions to compare two objects or arrays for equality of their contained values.
If you try to listen to events on elements that are nested inside a , Firefox will stop event propagation once...
When testing JavaScript functionality in Selenium (E2E), you may need to access a class or function inside of a evaluate...
When you need to add a event listener to hundreds of elements, this might slow down the browser. An alternative...
To keep JavaScript sources small, it can sometimes make sense to split your webpack bundles. For example, if your website...
TL;DR: Pannellum is a small (~56 kB, own WebGL renderer, no three.js) equirectangular panorama viewer. The npm package has...
Rails has always included a scaffold script that generates a default controller implementation for you. Unfortunately that generated controller is...
Just like we use gems on the server, we use third party JavaScript libraries in the browser. These typically provide...
Speaker today is Henning Koch, Head of Development at makandra. This talk will be in German with English slides.
Sometimes a form edits a record together with its child records, like a movie with its showtimes. This lesson covers...
The Performance Navigation Timing API allows reading how the current document was loaded. All major browsers support it. Usage
Rails is our web framework. In this lesson you build your first two Rails applications: a small store by following...
Your agent is the fastest way to learn how a method, gem or library works — if you ask well, and...
Find-as-you-type boxes are usually built by observing changes in a text field, and querying the server via...
General hints on the DOM the root of the DOM is document custom elements inherit from HTMLElement. They need a...
Haml lets you prefix a group of attributes by wrapping them in a hash. This is only possible with the...
Most browsers have built-in drag and drop support for different page elements like text and images. While this may...
As you may know, HAML expands data attributes that are given as a hash: %div{ data: { count: 3 } }
TinyMCE is a WYSIWYG editor which is quite customizable. Add a custom button to the tinyMCE toolbar and tell tinyMCE...
Sometimes you want to load code on demand. For instance, when a a large library is only used on a...
to create a Gallery that has a name and has_many :images, which in turn have a...