Exciting New Data Structures in Ruby 3

Update: The following lies were posted on April Fools’ Day. Here’s a sneak peek at two new data structures that are being proposed for Ruby 3. Arrayish An arrayish is just like a Ruby array except that you cannot modify its contents and its elements must be literals. At first glance this seems like just […]

Apply Standards Consistently

In Surely You’re Joking, Mr. Feynman!, which, by the way, is a wonderful read, Richard Feynman explains how the famous gambler Nick the Greek was able to win at casinos. Knowing that casino odds are always in the house’s favor, Nick would instead make side bets with other players. It’s good life advice to avoid […]

Do Not Treat Quality as a Separate Activity

If there is only one thing to know about software quality, it is this: do not separate your efforts into shipping features and improving quality. Code that is resilient to future changes has certain properties: it is easy to understand it has effective test coverage its interfaces have been intentionally designed to deal with expected […]

Manage Causes, Not Effects

It’s practically a tautology: to produce the desired effects, the causes of those effects must be in place. Yet it can be easy to spend less time ensuring that the causes of quality are nurtured and more time reacting to the inevitable negative consequences of poorly-crafted code. Causes and effects are often separated by much […]

Wyatt’s Rules of Software Quality

I’ve been crafting software for a while now so I’ve had the opportunity to see about a dozen software companies from the inside. Over the years I’ve learned some things about managing software quality that I’d like to share. I’ve distilled them into four simple rules: Define quality Manage causes, not effects Do not treat […]

What, Exactly, Is a RESTful Resource?

I was recently looking on the web for a very clear description of what a RESTful resource is. Clear and accurate definitions were few and far between, so I decided I’d write one. What Is a Resource? A resource is: a noun that is unique and can be represented as data and has at least […]

Babies vs. Zombies

I’ve put the slides online for my Boston Ruby Group talk “Babies vs. Zombies”. In the talk I mentioned the excellent paper Big Ball of Mud and the fascinating study “How Many Variables Can Humans Process?”.

The $100,000 Career Mistake Rubyists Make

Are you a good Ruby on Rails developer that loves to code? Have you published a high-quality, successful gem? If not, you may be making a mistake that could cost you as much as $100,000. If this surprises you, there are three things you should realize: Fact #1: If you can create a high-quality, successful […]

Don’t Play Football with a Basketball

The Wicked Good Ruby Conf got off to a great start today with a powerful singing performance by Liana Leahy and a wonderfully inspiring and sobering keynote by Sandi Metz. After the keynote, I attended the talk Wicked Bad Ruby by Matt Aimonetti and it really struck a chord with me. The discussion afterwards with […]

Adding Tabs to Your Rails App Just Got a Whole Lot Easier with Tabulous 2

The tabulous gem has continued to grow in popularity ever since I released it in 2011. Since so many people have found it useful, I decided to give it some love. Tabulous 2 is a complete rewrite, featuring a simpler syntax and new behavior. Tabulous is designed to be perfect for quick prototyping, robust enough […]