When you have string contents (e.g. a generated binary stream, or data from a remote source) that you want to...

Form fields can be rendered as noneditable by setting the disabled or the readonly attribute. Be aware of the differences...

If you want to make a screenshot of a website that works well in print or on a high-DPI...

makandra dev

When a Rails controller action should handle both HTML and JSON responses, do not use request.xhr? to decide that. Use...

TL;DR Use user.update!(remove_avatar: true) to delete attachments outside of forms. This will have the same behavior as...

This is painful. Consider using Microsoft Office or switching careers. If you need to write < 20 letters consider doing it...

makandra dev
curl.haxx.se

When making requests using curl, no cookies are sent or stored by default. However, you can tell curl to re...

You should avoid using application models in your migrations. But how else could you create records in a migration?

When you print (or print preview) and elements are cut off (e.g. after 1st page, or "randomly") you should check...

By default, browsers will not wrap text at syllable boundaries. Text is wrapped at word boundaries only. This card explains...

Summary: Don't add chromedriver-helper to the Gemfile the executables might break your tests in projects where chromedriver-helper...

We're usually running Ubuntu LTS versions. Sometimes newer hardware requires packages from more recent Ubuntu releases that only come...

Checking if a JavaScript value is of a given type can be very confusing: There are two operators typeof and...

makandra dev

An end-to-end test (E2E test) is a script that remote-controls a web browser with tools like Selenium...

When your public-facing application has a longer downtime for server maintenance or long migrations, it's nice to setup...

Slides for Henning's talk on Sep 21st 2017. Understanding sync vs. async control flow Talking to synchronous (or "blocking...

If you are using PDFKit / wkhtmltopdf, you might as well want to use custom fonts in your stylesheets. Usually this...

Download the dictionary from http://www.winedt.org/dict.html, e.g. http://www.winedt.org/dict/de_neu.zip unzip de_neu.zip mkdir ~/Documents/dic iconv -f UTF-16 -t...

reactarmory.com

The linked article shows how to exploit websites that include unsanitized user input in their CSS. Although the article often...

Let's say you have a form that you render a few times but you would like to customize your...

When localizing model attributes via I18n you may run into errors like this: I18n::InvalidPluralizationData: translation data {...

...} can not be...

api.rubyonrails.org

Rails 5 (don't know about the others) comes with an initializer wrap_parameters.rb. Here you can tell rails to wrap...

Webpack is the future. We're using it in our latest Rails applications. For tests, we want to compile assets...

github.com

When storing a file with Carrierwave, it is always cached prior to actually storing it (to support form roundtrips).