Engines and Gems: Destination. Not path.
Ten years ago, I wrote Component-based Rails Applications. Today, on cbra.info, I have this banner: "I consider the CBRA approach deprecated. Gradual modularization based on packages gives us all the benefits of components (and more) for much lower costs."
Gems and engines still play an important role, just not as the path but rather as the destination.
March 06, 2024
What is the modularization destination for large apps?
When talking to developers about gradual modularization, one of the questions is, "So... where are we headed?" That is, what is the destination of a modularization journey?
March 05, 2024
Message to Readers of Gradual Modularization
A message I sent to the readers of Gradual Modularization for Ruby and Rails regarding the new update published today.
October 18, 2023
Message to Readers of Gradual Modularization
A message I sent to the readers of Gradual Modularization for Ruby and Rails regarding the new update published today.
June 05, 2023
TypeScript's superpower
In his post When Static Types Mask Code Smells Jared White reflects on a discussion about TypeScript and makes the case that static typing isn't a panacea. It does not fix all your code problems. Indeed, it does not!
May 12, 2022
Gradual Modularity: Chapter 6 is out!
The message I sent to folks who bought Gradual Modularization for Ruby and Rails about the publication of Chapter 6!
May 06, 2022
Can I tweet from here?
This post is following https://brid.gy/about#webmentions to publish a tweet automatically. Let's see!
May 02, 2022
Can I tweet from here?
Testing some more. So that seems to work... Let's check a link back to here.
/posts/2022-05-02-can-i-tweet-from-here-2/
This post is following https://brid.gy/about#webmentions to publish a tweet automatically. Let's see!
May 02, 2022
Rails Apps Size Tests
Want to generate some quick stats for the size of your Rails app (and likely some of its problems)?
These are the queries I used to generate graphs for some big open-source Rails app for my 2014 RailsConf talk Refactoring towards Component-based Rails Architecture.
February 17, 2022
Gradual Modularity changes from recent Ruby, Rails, and packwerk updates
How do Ruby 3, Rails 7, and packwerk 2 affect the source code for Gradual Modularization for Ruby and Rails? Let's find out!
January 03, 2022
Happy New Year & First complete iteration of Gradual Modularization Chapter 5
Happy New Year!
January 01, 2022
If you find yourself in a hole, stop digging
There is this thing called the law of holes[^1]. It's interesting...
November 17, 2021
3 Ways I Am Changing How I Publish The Gradual Modularization Book Starting Now
My recent experience of publishing 30 atomic essays in 30 days[^1] failed in one way: I only got 25 articles out. I succeeded in most other ways and will apply my learnings from this time to how I work on and publish Gradual Modularization for Ruby and Rails[^2].
November 12, 2021
Should Product Development Teams Be Done With The *Definition Of Done*?
I recently came across a very practical application of the analysis of agile vs post-agile[^1] in a simple observation from a new team member: "It seems like our definition of done is really unclear."
November 09, 2021
Software Engineers Beware: Even Instantaneous Migrations Can Bite
This is an old example, but a good reminder: even instantaneous migrations can bite you in the ass. Be careful.
November 08, 2021
Naming 3 types of technical migrations to make us better at tackling them
The cost and benefits of technical migrations are hard to pin down. Discussing them efficiently is also difficult without properly understanding what we are talking about. This article creates a nomenclature to help with this.
November 07, 2021
Make Your Self-hosted Website Come To Life By Connecting It To Your Social Media
I have always felt like I wanted my web content to be on my website. I have also always felt that my website is a pretty lonely and inactive place.
November 06, 2021
Three Ways Engineering Leaders Evaluate Team Performance
A 2 minute detour in a conversation with my mentor at my work, Gusto (we're hiring... a lot[^1]!), connected the dots on big trends in the software industry that are so foundational, I am embarrassed to say, I missed them.
November 05, 2021
Your Way of Doing Something Might Just Be a Book! Even If You Are Not Stacey Abrams
Go read Stacey Abrams' Lead from the Outside[^1].
November 04, 2021
Founders of #ship30for30 should do one thing to make their course (and their students) better
All our thinking stands on the shoulders of giants[^1].
November 03, 2021
Zettelkasten VS Atomic Essays
Zettelkasten VS Atomic Essays? More like Zettelkasten AND Atomic Essays!
November 02, 2021
How I use Joplin for managing my to-do list
I have tried many to-do list applications and systems. They were all too complicated.
November 01, 2021
5 plugins turn Joplin into a powerful and customizable Zettelkasten
In 1992, Niklas Luhmann, a German sociologist who published over 50 books and over 400 academic articles, published Kommunikation mit Zettelkästen about his use of the Zettelkasten method - explaining how it made him so productive.
October 31, 2021
To get smarter at what you do, make sure you _process_ what you read (using Joplin) - in 4 short steps
6 years ago I read this beast of an article titled "How to Use Evernote for Your Creative Workflow"
October 30, 2021
Switching to Joplin will transform your daily note taking
There are a bunch of note taking apps that seem pretty hip right now. The most en vogue might be notion and obsidian. I want you to known about a lesser know, open source alternative called joplin[^1].
October 29, 2021
Are windows with notes littering your screen? Do you loose them? Does it feel chaotic? We can fix that with one small change!
I still regularly find my screen getting cluttered with random notes, but I am getting better. In fact, just today I deleted the TextEdit app from my mac so I won't use it ever again. Let me tell you why. And, let me tell you how to fix your note taking.
October 28, 2021
Never able to find that zoom link fast enough? Always late to the next meeting? Use MeetingBar!
MeetingBar is for you if you use a calendar and you regularly participate in video calls[^1].
October 24, 2021
Still using your mouse for window management on macOS? Stop! Hammerspoon!
Hammerspoon[^1] boasts two things: a truly epic project name and a lua scripting environment that hooks into extensions that allow you to control system functionality in macOS.
October 21, 2021
2 ways homebrew for macOS is ... even better
Homebrew[^1] describes itself as "The Missing Package Manager for macOS (or Linux)." The program primarily installs command line applications but through its various extensions is, in my opinion, the best way to install and long-term manage applications on a Mac.
October 20, 2021
My 3 favorite ways to use Alfred
Alfred[^1] is a productivity app for Mac. It "boosts your efficiency with hotkeys, keywords, text expansion and more." For anyone who doesn't use the keyboard much to navigate around their system it will take some getting used to. But once you do, whew! Are some things much more straightforward to do!
October 19, 2021
The one reason that Gradual Modularity is relevant for all languages is totally backwards
If you have read any of my posts about gradual modularity and thought "well this is only interesting for those folks who messed up their (Rails) apps on their own in the first place," read this post. I don't believe that is true: Gradual Modularity can benefit engineers working in most languages and frameworks.
October 17, 2021
Gradual Modularity - A definition attempt
Yesterday's attempt at a concise description of what Gradual Modularity is[^1] fell short of being a definition. Here is another attempt at that.
October 16, 2021
Three reasons why the one legitimate criticism of Gradual Modularization falls short
I have found one criticism of gradual modularity that resonates:
Gradual is really just somewhat. This whole idea has no teeth and won't lead to actual change with positive impact.
October 14, 2021
Switching to packages is a game changer (says the guy who pushed for components for almost a decade)
October 13, 2021
FactoryBot - Feeding the beast?
ActiveRecord (AR) is the main driver of incidental (read: superfluous) complexity in your app. Do not feed the beast.
October 12, 2021
Can we improve how we test software using information theory?
Try to hold these two ideas in your head
October 11, 2021
Flakes are a systemic problem that require a systemic response
expect(rand(100)).to be > 0
October 10, 2021
You should want more data out of your (flakey) tests
If you are working with a large codebase, then you are likely dealing with test flakes. Flakes? Tests that, ever so often, report a failure where no relevant change to the system has happened. Google seems to think that a certain amount of flakes is unavoidable[^1] and I agree.
October 09, 2021
The one big difference between writing and writing NOW
So, I started this thing... "ship 30 for 30"[^1] after seeing a couple of nice posts by Matt Stine[^2]. Really, we haven't even really started yet. The first post is to come out Saturday, but in trying out this editor we're going to use throughout the course on thing struck me: In order for me to do this successfully I will to switch from writing to .. writing NOW.
October 06, 2021
Gradual Modularity
When shopify released the tool packwerk they did more than just open source a utility they had been working on. They changed how we should think about application modularization.
May 10, 2021