In general, the tracker should always be the definitive source of truth of what needs to be done as part...

In a project team for a bigger project people have several roles: Developer: at makandra Project lead: at makandra

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...

Haml lets you prefix a group of attributes by wrapping them in a hash. This is only possible with the...

makandra dev

Option 1: JSON dump In config/webpack/environment.js you can get inspect environment which includes all webpack config options set for the...

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...

makandra dev

For webpages to load fast it's recommended to optimize images. Ideally an image's file size should be as...

Background information about session storage in Rails Rails has a default mechanism to store the session in the CookieStore. This...

If you want to fill in textareas with multiple lines of text (containing line breaks / new lines) you can use...

benmccormick.org

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

To make a local copy of an S3 bucket, I use the s3cmd command line tool. Configure access keys:

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

makandra dev
litmus.com

The 90s are calling: they want their tables back. Unfortunately, you need them all for laying out your HTML emails...

stackoverflow.com

Ruby has this handy block shortcut map(&:to_i) for map { |x| x.to_i }. However, it is limited to argument...

Whenever is a Ruby gem that provides a nicer syntax for writing and deploying cron jobs. Leading zeros are important...

When you need to store structured data (like Ruby hashes) in a single database column with ActiveRecord, a simple way...

makandra dev

Authentication is a special part of web applications. On the one hand, it usually is a crucial security mechanism restrict...

rspec.info

RSpec let's you chain a matcher with .or. The expectation will then pass if at least one matcher matches...

developer.mozilla.org

Browsers' printing methods usually don't print background colors. In most cases this is the desired behavior, because you don...

caniuse.com

There is a kinda secret, yet well supported CSS feature called currentColor. It's like a special CSS variable that...

Create a user without password (recommended) Replace newuser with your desired username: mysql -uroot -p CREATE USER 'newuser'@'localhost' IDENTIFIED...

guides.rubyonrails.org

TL;DR Append your locale keys with _html to have them marked as html_safe and translate them with = t...