...implementation changes. The information below is validated for the current list of browsers we support. By default your html and body elements are only as high as the actual page...

...html and body elements will only be around 40 pixels high, regardless of the size of your browser window. You might be surprised by this, since setting a background on...

...can explain why we create test data with factories instead of fixtures: each test starts empty and creates only what it needs. You can define factories with sensible defaults, using...

...gems like FactoryBot, and use them in specs with overrides. You can define factories for associated records, and avoid creating duplicates where a record should be reused.

tools.ietf.org

In case you're wondering, when concat-ing server certificate and intermediate certificates, the server certificate comes first. RFC 4346: certificate_list This is a sequence (chain) of X.509v3 certificates...

certificate must come first in the list. Each following certificate must directly certify the one preceding it...

makandra Curriculum

...programming language we use on the backend. This lesson takes you from your first script to classes, blocks and custom errors — the working vocabulary for everything that follows. Important

...on this lesson in teacher mode. Learning goals You can write and run a small Ruby program that reads input (e.g. arguments or a file) and prints output.

makandra dev

...possible to only use -f pretty for the rerun. Drawbacks: MAJOR: With our current setup, when the main run fails without writing a tmp/failing_features.txt (e.g. due to a syntax error...

...the CI job will pass MINOR: With our current setup, we lose the test coverage of the main run A fix for the passing CI despite syntax error could look...

...where they happened. Understanding this lets you handle events for many elements with a single listener, including elements that don't exist yet. Important Work on this lesson in advisor...

...how a DOM event travels through the tree — capturing, target, bubbling — and which listeners see it in which order. You can explain the difference between event.target and event.currentTarget.

This is super stupid: In the Thunar file manager, select the file Go to File / Properties / Open With (WTF!) Select the preferred application from the list and hit "Set default...

...This setting will apply to all files with that extension...

In your ~/.gitconfig: [core] editor=nano

...desktop users may encounter some weird quirks: Aside from allowing only digits and decimal separators, an "e" is also allowed (to allow scientific notation like "1e3"). Non-technical users will...

...be confused by this. Your server needs to understand that syntax. If it converts only digits (e.g. to_i in Ruby) you'll end up with wrong values (like...

When building an application that sends e-mails to users, you want to avoid those e-mails from being classified as spam. Most obvious scoring issues will not be relevant...

...to you because you are not a spammer. However, your application must do one thing by itself: When sending HTML e-mails, you should include a plain-text body or...

makandra Curriculum

Migrations change your database schema in a controlled, repeatable way. This lesson covers how migrations work, how to write complex ones, and how to deal with existing data. Important

...in advisor mode. Learning goals You can explain what migrations are for, and why schema changes go through migrations instead of manual changes on a server. You can write migrations...

Event delegation is a pattern where a container element has a single event listener that handles events for all descendants that match a CSS selector. This pattern was popularized by...

...element was clicked!") }) This technique has some advantages: When you have many descendants, you save time by only registering a single listener. When the descendants are changed dynamically via JavaScript...

Settings -> Editor -> General -> Smart Keys -> Unindent -> To nearest indent position RubyMine 7.0: Settings -> Editor -> General -> Smart Keys -> Backspace smart indent -> uncheck

...config={}). There also is a generate method which will run the generator in a subprocess. Call it with generate 'generator_name', 'command line args'. Expected (hard-coded) directory structure of...

... #{generator name, e.g. model}_generator.rb USAGE Templates If you want to use the supplied template, directory and other template methods, you must call source_root 'path/to/templates' inside your generator...

Both knapsack and parallel_tests have the option to split groups by historic execution time. The required logs for this might be outdated since you manually have to update and...

...consistently up to date with no extra effort locally and/or remotely. How to always split by execution logs Parallel Tests The parallel_tests gem has the option flag --group-by...

With ActiveSupport you can say: class Robot def self.likes_humans? 'Nope.' end delegate :likes_humans?, to: :class end Robot.likes_humans? # => 'Nope.' Robot.new.likes_humans?

rubylearning.com

This article will show you how to use throw and catch. It's a nice tool to break out of multiple loops when a result is obtained.

...card Ruby: A small summary of what return, break and next means for blocks...

brandcolors.net

brandcolors.net provides you with the colors of the world's biggest brands, easily searchable...

doubleyourfreelancing.com

How you can unknowingly screw your client's business when all you think about is closing the next user story...

robots.thoughtbot.com

Rails 4.0 introduced a helpful new method for ActiveRecord queries: where.not. It can make clunky queries easier to read.

igvita.com

About Chrome's network stack and optimizations to load web pages faster...

makandra dev
bitbucket.org

Makes a robust determination of a user's timezone through Javascript.

martinciu.com

How to make class_attribute behave like class_inheritable_attribte which no longer exists in Rails.

0xfe.blogspot.com

Chrome now supports desktop notifications using WebKit's webkitNotifications API. This means you can create popup bubbles from Javascript...