Articles
Leveraging lsof to Troubleshoot Network, Filesystem, Native Library or Device Problems
Unix,
Ruby,
Rails,
Tools of the Craft
lsof is one of the most powerful UNIX command (also available on Mac OS X). It is invaluable when it comes to investigating or troubleshooting problems related to network, filesystem, devices or even native libraries. This article first introduces lsof usage and syntax illustrated with concrete examples and then dive into advanced options and techniques.
Reliable Ruby timeouts with SystemTimer: Do not trust timeout.rb too blindly...
Rails,
Ruby,
Unix
timeout.rb, the library used by Ruby to ensure timeouts, is not 100% reliable. This article explains why, and how to use the System Timer gem to guarantee reliable Ruby timeouts when you are crossing system boundaries.
Effortless Thread Dump for Ruby: Dump the stack trace of all the threads in your Ruby VM with caller_for_all_threads (M.R.I. 1.8)
Rails,
Ruby,
Unix
The standard Ruby VM only gives you access to the stack trace of the current thread. This restriction can be frustrating when investigating production problems and the thread you are interested is not the current one. Learn how to use caller_for_all_threads to remedy this, and just send a signal to dump a stack trace for all the threads.
Getting Started with DTrace
Rails,
Ruby,
Unix
DTrace is a revolutionary dynamic tracing tool available on Mac OS X (Leopard), (Open)Solaris, and BSD. This document assembles a collection of pointers and material to get started with DTrace, from a Rubyist perspective.
Introduction to UNIX Signals and System Calls
Unix
Easy introduction to UNIX signals, system calls and operating system fundamental mechanisms for readers that are not experts in UNIX internals and operating system theory. A good understanding of your operating system’s principles is important to recover when things go awry, even if you concentrate on a higher level of the stack (e.g. developing web applications).
In UNIX Everything is a File
Unix
The UNIX operating system crystallizes a couple of unifying ideas and concepts that shaped its design, user interface, culture and evolution. One of the most important of these is probably the mantra: "everything is a file", widely regarded as one of the defining points of UNIX. This article provides extensive background on this fundamental UNIX metaphor.
Getting started with Autotest - Continuous Testing
Rails,
Ruby,
Agile
Why manually run your tests, when the computer can do it for you! This article introduces Autotest, a Ruby tool that speeds up test-driven development and let you concentrate on writing code. After covering Autotest basics, we dive into extensive plugin coverage and advanced usage.
