CSS (+ some Javascript) framework, implementing Google's material design for static web pages. Can be used for plain websites without...
In most of our applications, users have their first and last name stored in separate columns. However, specifying them separately...
Read the following chapters from The Pragmatic Programmer, anniversary edition (in our library): Chapter 1, Topic 3: Software Entropy...
JavaScript is a scripting language supported by all browsers. Browsers don't speak Ruby, so if we want to implement...
Understand at least the following CSS concepts: Classes Selecting elements for styling Basic styling (color, typography, spacing)
Understand why we test: Low defect rate without a QA department. Customer acceptance testing can concentrate on new features...
Rails is our web framework. Goals Be able to write a simple Rails application. Understand how Rails talks to the...
Git is our version control system. Goals Understand why we use git. Learn how to work with your local repository...
makandra is responsible for maintaining about 75 Ruby projects. These projects use a large number of different versions for Ruby...
Ruby is the programming language we use on the backend. Goals After finishing this lesson you should be able to...
Disabling auto-complete in login forms is probably a bad idea, since it encourages weak passwords. If you are still...
If you need to follow links, click buttons, etc. using Capybara inside an , you can do it like this:
Small web application where you can upload an image (PNG, JPEG, GIF) and generate a base64-encoded version of it...
When working with ActiveType you will often find it useful to cast an ActiveRecord instance to its extended ActiveType::Record...
Note: ActiveRecord::Base#becomes has a lot of quirks and inconsistent behavior. You probably want to use ActiveType.cast instead.
Starting from 4.1, Rails automatically detects the inverse of an association, based on heuristics. Unfortunately, it does not seem to...
There is no such thing as a "default order" of rows in database tables. For instance, when you paginate a...
HTTP/2 will make our applications faster, simpler, and more robust—a rare combination—by allowing us to undo many of...
Since version 2.6 exception notifier distinguishes between foreground and background sections. The reason is that with background jobs (e.g. methods...
ActiveModel supplies an errors object that behaves similar to a Hash. It can be used to add errors to a...
Note: Making a reverse proxy with nginx is much more straightforward. A reverse proxy is a "man in the middle...
When you register a delegated event using on (or the deprecated delegate / live), it is somewhat hard to manually trigger...
sslscan is a nice tool to show details about TLS/SSL connections: ~> sslscan some-host-at.makandra.de Testing SSL server some-host-at.makandra.de on port 443...
Capistrano 3 is a major rework of the framework and requires several adjustments to your deploy configuration files. The biggest...