Rubies in the Rough
James Edward Gray II
Started: October 23rd, 2011Publications: 12
Subscription: $6.00 per month
Rubies in the Rough is a regular column for Ruby programmers by James Edward Gray II. New articles are published three times a month on the 1st, 11th, and 21st.
You will receive access to one back article when you subscribe. This article will not be emailed to you, but you can read it on this site. By default, you will receive the most current article. However, you can click one of the links to the right, if a different article catches your eye, and you will be given access to that article on completion of your subscription.
About the Column
Programmers have two major problems with their work. First, programming is frequently challenging. James often tells his wife, "I have to be smart again today."
The other problem is that we, as a community, have a tendency to be very mediocre at teaching the concepts of programming. We stuff books full of theory and show plenty of rote steps, but it's the rare lesson that cuts to the core of what we do.
With this column James is teaching how to think about programming. He shows how the concepts we get from the ivory towers of programming can be applied to real world situations. Once you can recognize the decisions involved in programming tasks and properly reason about the tradeoffs, picking up an API or some syntax is trivial.
Most of these articles involve a look at some Ruby code or at least the discussion of some aspect of the Ruby language. However, our craft is more than just code and readers should expect the occasional foray into operating systems, developer tools, and even discussions about how our brains work.
Most articles are standalone installments, but there will also be miniseries runs from time to time. The goal is to keep the topics diverse enough to hold James's writing interests and the reader's attention. If you're bored, feel free to ask for your money back.
Stop trying to force programming into your brain. Subscribe now, read some articles, and you will gain a natural understanding of how code works.
About the Author
James Edward Gray II, @JEG2 on Twitter, was sent to the principal's office in high school for reprogramming the calculators of the math students with games. Things have just gone downhill from there, but it can never be claimed that James doesn't love his work.
He came to Ruby even before Rails made it big and they haven't been able to blast him out of the community since. James has written code and documentation for Ruby's standard library, presented at many Ruby conferences, run a couple of his own conferences, and can now be heard as a regular on the Ruby Rogues podcast. He's so deep in Ruby culture that he literally bleeds red.
James has over twenty years of experience as a programmer. He also reads text books about how our brains work for fun. He has run many trainings on a variety of coding topics and is always experimenting with new ways to make tough concepts accessible to his students.
Testimonials
"Until I read this week's Rubies in the Rough [Experimenting With DATA], it never occurred to me you can reopen and write to DATA. I love the fact that after 12 years I still learn new things about Ruby." –Dave Thomas, The Pragmatic Programmers
"The latest Rubies in the Rough article [Even More Eloquent Ruby] is FRICKIN AWESOME. I learned things." –Avdi Grimm
"Blown away by how many new things I'm learning from @JEG2's Rubies in the Rough. Love it, love it, love it." –Trevor Bramble
"I just saw the whole problem more clearly because of his article [Doing it Wrong]." –Krešimir Bojčić
"Just finished last essay from @JEG2's "Rubies in the Rough" series [Refactoring: rcat]. Delightful. You should subscribe too!" –Bernard Lambeau
"Thanks to @JEG2 I'm using The Wrong Tool for the Job. Everyone needs a Rubies in the Rough subscription." –Larry Marburger
Free Samples
The Wrong Tool for the JobNovember 1st, 2011
This is an article about the tradeoffs we make when programming and why you might want to go against the grain to learn new tricks.
Publications
Refactoring: The Gilded RoseFebruary 22nd, 2012
In this article I try The Gilded Rose refactoring code kata to show how Ruby handles the restrictions it places on us.
Test Driving an Algorithm (Part 2)February 11th, 2012
In this article I tackle the same puzzle as last time, but with a full-on TDD approach to show what kind of difference that makes in the result.
Test Driving an Algorithm (Part 1)February 1st, 2012
In this article we take a look at Cowboy Coding the solution to a problem and analyze the tradeoffs of that approach.
Iteration PatternsJanuary 21st, 2012
This article takes a look at how our brain handles pattern recognition and how we can take advantage of that to learn Ruby's iterators.
Experimenting With DATAJanuary 11th, 2012
This article dives into just one little feature of Ruby, but shows the various ways that it inspires us and has been abused over time.
Perl's Golf CultureJanuary 1st, 2012
This article takes a quick look at some crazy Perl code and reflects on why you might want to write it.
Refactoring: rcatDecember 21st, 2011
This article is a refactoring exercise to improve the code of a small Unix utility.
Even More Eloquent Ruby (FREE)December 11th, 2011
This article takes a look at some of the specific examples in the the popular Ruby textbook Eloquent Ruby and what can be learned from them.
Dreamy Testing (Part 2)December 1st, 2011
This article is the conclusion of our experiment to learn hard lessons by reinventing the wheel and it delivers on the mistakes.
Dreamy Testing (Part 1)November 21st, 2011
This article is the first part of an intentionally careless exploration of oft repeated code for the sake of what we can learn from it.
Doing it WrongNovember 11th, 2011
This article takes a hard look at why the rules of programming exist, what we can learn from them, and how and when to go about safely breaking them.
The Wrong Tool for the Job (FREE)November 1st, 2011
This is an article about the tradeoffs we make when programming and why you might want to go against the grain to learn new tricks.

Even More Eloquent RubyDecember 11th, 2011
This article takes a look at some of the specific examples in the the popular Ruby textbook Eloquent Ruby and what can be learned from them.