As Ruby pro David Copeland explains, writing a command-line application that is self-documenting, robust, adaptable and forever useful is easier than you might think. Ruby is particularly suited to this task, since it combines high-level abstractions with "close to the metal" system interaction wrapped up in a concise, readable syntax. Moreover, Ruby has the support of a rich ecosystem of open-source tools and libraries.
Ten insightful chapters each explain and demonstrate a command-line best practice. You'll see how to use these tools to elevate the lowliest automation script to a maintainable, polished application.
You'll learn how to use free, open source parsers to create user-friendly command-line interfaces as well as command suites. You'll see how to use defaults to keep options simple for everyday users, while giving advanced users options for more complex tasks.
There's no reason a command-line application should lack documentation, whether it's part of a help command or a man page; you'll find out when and how to use both. Your journey from command-line novice to pro ends with a look at valuable approaches to testing your apps, and includes some fun techniques for outside-the-box, colorful interfaces that will delight your users.
With Ruby, the command line is not dead. Long live the command line.
What You Need:
All you'll need is Ruby, and the ability to install a few gems along the way. Examples written for Ruby 1.9.2, but 1.8.7 should work just as well.
Web Dragons: Inside the Myths of Search Engine Technology In the eye-blink that has elapsed since the turn of the millennium, the lives of those of us who work with information have been utterly transformed. Pretty well all we need to know is on the web; if not today, then tomorrow. Its where we learn and play, shop and do business, keep up with old friends and meet new ones. What makes it possible for us... Superalloys 2012
A superalloy, or high-performance alloy, is an alloy that exhibits excellent mechanical strength at high temperatures. Superalloy development has been driven primarily by the aerospace and power industries. This compilation of papers from the Twelfth International Symposium on Superalloys, held from September 9-13, 2012, offers the most...
Java Persistence for Relational Databases
Java Persistence for Relational Databases is best practices and patterns for readers who want to connect to databases using Java. It also includes coverage of various database-related APIs for Java, including JDO, JDBC (including newest 3.0 APIs), and CMP (Container Managed Persistence with EJB).
Java Persistence for...
Donald Lobo, Michal Mach, and I started CiviCRM almost six years ago. Back then,
open source software had gained traction in the operating system arena, but the
idea of an open source application designed from the ground up to meet the needs
of non-profits and other civic sector organizations was pretty radical. We were