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

Rails default config uses the ActiveSupport::Cache::NullStore and disables controller caching for all environments except production: config.action_controller.perform_caching = false...

This is useful if, for example, you want to use a background-image that has to scale with the width...

By default Middleman generates files with a .html extension. Because of this all your URLs end in /foo.html instead of...

Middleman is a static page generator that brings many of the goodies that Rails developers are used to.

jetbrains.com

RubyMine provides a visual tool for resolving merge conflicts locally. Follow Git > Resolve Conflicts in the context menu to open...

github.com

The parallel-gem is quite easy to use and can speed up rendering time if you want to render the...

Imagine the following HTML structure, where the scrolling container has overflow-y: scroll: +--scrolling container+-+ | | | +-child element+----+ | | | ++iframe++ | | | | | | | | | | | | | | +-----------------------+ | | | | <-- actually cut...

When filling out forms in Selenium tests, Chrome shows the (usual) bubble, asking to store those credentials. While the bubble...