Chomp

Ruby can be your multitool for all kinds of text-munging tasks. But to use it effectively, you need to understand how Ruby handles line endings and re…

Input Record Separator

Ruby has a lot of tools for processing input line-by-line. But when you look a little closer, it turns out that these methods are for more than just l…

Output Record Separator

Did you know Ruby has a `print` method in addition to `puts`? Did you know it's for record-oriented output? Do you know how to control the formatting …

Async with the Reactor Pattern

Ever wondered how async frameworks such as Ruby's EventMachine or Node.JS work under the hood? Those frameworks are built on a technology known as the…

Async with Multiplexing

In our quest to coordinate asynchronous tasks, we've attempted a polling approach. Unfortunately, this strategy has some significant efficiency drawba…

Asynch with Polling

How can we make sure asynchronous work is done efficiently? In ep #2 of a series, we'll build one of the simplest possible solutions: a polling model.

Suppress Output

Learn a robust, cross-platform way to throw away unwanted output in Ruby programs.