Blogs
The Pickaxe is out and I am Happy
I am extremely excited to say that Programming Ruby 3.3, also known as The Pickaxe Book, is now done done, finished, completely available as an ebook, and winding its way to distributors to ship to people as a genuine physical book.
The PDF and ePub versions of the book are available at Pragmatic’s website. The print book should be available wherever you get print books, including Amazon and Bookshop.
I’ve talked in the past about what’s in the book, what’s new, and whether you should buy it.
How To Manage Duplicate Test Setup, or Can I Interest You In Weird RSpec?
You have a series of test cases. They cover the same logic with different inputs. In order to get to that logic, there’s some overhead: objects have to be created first. Then there’s more logic needed to evaluate the result.
What’s the best way to manage these tests?
You want it to be easy to add new tests. You also want it to be clear what part of the test is different in each round and what part is just the common logistics.
Better Know A Ruby Thing Bonus: Contestants and Nesting
Sorry for skipping a week or two – I was approving copyedits on the book that is now called Programming Ruby 3.3, because we now want to be proactive about the next release.
Coincidentally, the copyedit review does relate to this newsletter. I noticed a particular code sample as I was going through the book again, and it highlights a feature of Ruby’s constant lookup that I didn’t discuss last time.
Better Know A Ruby Thing #2: Constants
A fun thing about learning Ruby is that sometimes concepts that have the same name as in other languages have different behavior and purpose in Ruby.
Today: constants
They aren’t actually constant.
They aren’t only used for small strings or magic literals. They aren’t even mostly used for that in most Ruby programs.
Constants are one of the core pieces of Ruby and they aren’t super-well documented in the official site, so here we go…
Better Know A Ruby Thing #1: method_missing
Welcome to “Better Know A Ruby Thing”. In each one of these, we’re going to look at some feature of Ruby language, library, ecosystem, or culture and explain what it does, how it works, why it’s there, and any thing else that comes to mind.
First up, method_missing. If I may be poetic for a second, method_missing represents both infinite potential, and the possibility of a second chance when you can’t figure out what to do the first time around.
Books Recommendation List: 2022
Even by my standards, this one is slow to come out, so I’ll keep the intro brief.
As I’ve done for the past few years, I quasi-obsessively rank the books I read, and I write about the top several.
It’s 40 again this year, and again, I’m really sorry.
As usual, don’t take the rankings seriously, they’re just here for some kind of organization.
Book links go to Amazon Kindle pages.
Hi, All, It's a Pickaxe Q&A
I haven’t sent out a newsletter in 2022 – about 10% of people subscribed to this newsletter have never seen an actual newsletter in their mailbox.
That seems like it should end, so… hi!
I’m Noel. I write books, mostly about Ruby. I write this newsletter, which is normally about Ruby, Rails, Agile, and other topics, and is occasionally (like today) self-promotional.
Under normal circumstances this comes out a few times a month.
Books That Made Me Happy: 2021
Welcome. Because of the exact kind of person I am, it’s always bugged me when people put out year’s best lists in early December – the year isn’t over, what if you read or see something on, like, December 29th that changes your whole list. (I realize this is a very silly thing to be bugged by.) I traditionally get around this by putting out my favorite book lists sometime around the Ides of March.
Redundancy, Terseness, and Code
Most human communication, text or written, is wordier and more redundant than it needs to be, strictly speaking.
That previous sentence, for example, would still communicate its point in about a third of the words with “Most human communication is too wordy”.
You’d likely still get the idea if I used about half the characters and wrote: “hmn comms too wrdy”.
There are certainly reasons why you might include words when speaking or writing that are technically not needed:
TypeScript and jsbundling and Rails 7
This is a quick bit of service journalism about one thing that seemed less than obvious about converting the code in Modern Front-End Development For Rails to Rails 7.0, namely how to integrate TypeScript with the new tools.
Specifically, the Rails 7.0 version of the code ditches Webpacker in favor of the new jsbundling-rails and cssbundling-rails gems and uses esbuild instead of webpack. See here for an only-slightly out-of-date description of the new tools.