Explorations of specific application domains, such as UNIX systems programming, or e-commerce.
Category: Applications
Episode #075: Tail Part 4: copy
Marching right along in our reimplementation of UNIX tail(1), today we tackle the problem of dumping the tail of the file to STDOUT once we've found the starting point.
Episode #073: Tail Part 2: Do While
As we continue to rewrite a subset of the UNIX tail(1) command, we learn how to write a do...while loop in Ruby.
Episode #072: Tail Part 1: Random Access
This episode kicks off a short miniseries on re-implementing a small subset of the UNIX "tail" command in Ruby. We'll start by learning how to jump around to arbitrary positions …
Episode #069: Gem-Love Part 4
The last Gem-Love episode had me creating a command-line client. This time around, I use Rack and Sinatra to build a simple server. Source code can be found here: https://github.com/avdi/gem-love/tree/rubytapas-069
Episode #066: Caching an API
Web services are slow to request and often have rate caps. A cache can cut down on requests to remote APIs. But how best to design the interface between the …
Episode #065: FFI Part 7: The Last Refactor
Factoring out a high-level interface for PulseAudio.
Episode #063: Gem-Love Part 3
Returning to my Gem-Love project in this episode, I use TDD to drive out a client-side implementation for the first feature. In the process, I talk about message-first design. Check …
Episode #061: FFI Part 6: PulseFFI Awakens
Tieing methods together with the Composed Method pattern.
Episode #057: FFI Part 5: The Mock API
Test-driving some more methods in our PulseAudio library.