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...
Rails 5.2 soft-deprecated the storage of secrets in secrets.yml in favor of a new thing, credentials.yml.enc. Rails 7.1 deprecated...
...HTML's accepts a single file. You can allow multiple files via . But sometimes, selecting multiple files is not enough...
If you use transactional_fixtures or the database_cleaner gem with strategy :transaction, after_commit callbacks will not be fired...
If validations failed for a record, and you want to find out if a specific validation failed, you can leverage...
Flexbox is awesome. Most of it even works in IE11, but flex: 1 won't work reliably in Internet Explorer...
We want to keep a changelog for all gems we maintain. There are some good practices for writing a changelog...
Most forms have a single submit button that will save the record when pressed. Sometimes a form needs additional submit...
Migrating data from a legacy into a new system can be a surprisingly large undertaking. We have done this a...
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...
Google Chrome has a subtle rendering bug that hits me once in a while. It usually occurs in sliders with...
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...
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...
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...
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...
Rails defines a #truncate helper as well as a method String#truncate. = truncate("my string", length: 5) = "my string".truncate...
The 90s are calling: they want their tables back. Unfortunately, you need them all for laying out your HTML emails...