Profile avatar
alan.codegardener.com
Passionate Rubyist. Empathetic leader. Fallible human. Storyteller. Speaker. Environmentalist. Feminist. Ally. Swell photographer. Rusty drummer. Loving husband & twins dad. Owner of too many hats, given I only have the one head. the.codegardener.com
108 posts 972 followers 429 following
Regular Contributor
Active Commenter
comment in response to post
San Francisco Ruby Conference on November 19-20: sfruby.com! And you got to stay for Friday, 21, for unofficial events šŸ˜Ž
comment in response to post
@alan.codegardener.com and @fito.codegardener.com talk about the tragedy of the successful software — Meraki with over 4M LOC #Rails monolith, looking for new architecture to support maintainability at this scale: modularity and boundaries.
comment in response to post
If you have to change your tests when you change your code, you're testing implementation, not behavior. Test behavior.
comment in response to post
Gall's Law states that complex systems that work evolve from simpler systems that worked, and complex systems designed from scratch rarely, if ever, work.
comment in response to post
Solve one thing at a time. If, after doing so, you discover a pattern, extract a more abstract solution from the concrete solutions. Never start with the abstract solution.
comment in response to post
You’d have to ask @jasonswett.bsky.social. If I had to guess, I’d say because the Tropicana is no more.
comment in response to post
I should have posted the truffula tree image up front.
comment in response to post
Admittedly, inventing a system that could plant an entire forest seems less bad the one that cuts down the whole forest. And I was trying to communicate how bad premature generalization is…
comment in response to post
"Unless someone like you cares a whole awful lot, nothing is going to get better. It's not."
comment in response to post
It was a reference to The Lorax.
comment in response to post
The tree is a metaphor for a feature. You’re asked to build one feature. But you go build a framework instead. Stop that! Just build the damn feature! You’ll never have less information than when you begin. Wait for more info (5+ instances) before extracting a framework.
comment in response to post
Wait a second! I thought strongly typed languages with compilers were the answer to all bugs! 😜 Or, was it tests? I forget. It might have been tests. 🫠
comment in response to post
No matter how many monitors, position 1 of them directly in front of your keyboard to minimize twisting the neck & spine. Additional monitors should be placed in peripheral vision, like dressing room mirrors. Do you _really_ prefer virtual desktops over actual monitors? Really???
comment in response to post
We need to be educating engineers NOW on how to write automated specifications well. That will be THE most critical skill moving forward -- writing self-verifying prompts using automated specifications.
comment in response to post
Developer tools will be able to accept a test, generate some code, run the test, and regenerate the code in a loop until the test passes.
comment in response to post
Generative AI Tomorrow Automated specifications are the future of software development. Get used to TDD. That will become the largest part of an engineer’s job in the near future.
comment in response to post
I believe we are witnessing the transition of the role of programmer from human to machine. What we are not (yet) witnessing is the transition of the role of software designer/architect. We will still need to own the big picture for a while longer at least.
comment in response to post
Generative AI Today I’ve had some amazing conversational experiences with LLMs. Stunning, really. I’ve also found success prompting ChatGPT, Claude, and Deepseek with automated specifications for a single class. All 3 wrote code that passed the tests just by prompting them with the specifications.
comment in response to post
California knows no bounds!
comment in response to post
How can spring be here? It's 3ĀŗC in January! Why are those blossoms blooming?!?!
comment in response to post
Depends on the coffee shop and the line. I had a snotty barista at Pete’s berate me for using the word venti. ā€œWhat is that? We have small, medium, and large!ā€ I’ll be ordering from the app every time I go in that particular store from now on.
comment in response to post
I like how the titles of your top 5 songs tell a tragic love story.
comment in response to post
That's the beauty of small talks like this. You can always sneak them in somewhere!
comment in response to post
Hi Gregory! Thanks for reading! For the purpose of this post, I'm using the de facto "de-duplication" definition that so many code bases fall prey to. @avdi.codes has already pointed out that The Prag Prog has the canonical definition of "good" DRY. That's not what we're talking about.
comment in response to post
Of course, that should have said "bug report" which is hilarious.
comment in response to post
First (really nit picky) but report... Guide should be capitalized.
comment in response to post
Just noting that this gem would require maintenance over time. And the changes would be expected pronto.
comment in response to post
There is a gem for time zones. They change. They’re not static. Same with countries. In fact, country names are different depending on who you ask. Taiwan is one. Western Sahara is another.
comment in response to post
My preferred way to build applications is to TDD one class per use case. A to-do list, for example, has a `CreateTask` class. `CompleteTask`, `RankTask` and others make perfect sense as independent classes in that context. Then I add persistence and an interface. In Ruby that often means Rails.
comment in response to post
Show them this talk (sorry for the self promotion): youtu.be/4b4Ew_BUdrY?...
comment in response to post
I think we're on to something here. So much of the code I see has been de-duplicated in a way that makes it harder to understand and harder to modify/test/extend. And, I do think it has to do with the acronym. I wonder what proposals we could make for a more expressive acronym?