-
The REPL: Issue 131 - July 2025
I’m sold. Agentic coding is the future of web application development
Nate Berkopec has been writing about agentic coding as a game changer. I’ve been experimenting myself and can absolutely relate to his attitude. I can also relate to folks that have tried and are still skeptical. In my experience – and it’s short like everyone else’s, because this is moving so fast – both the agent and the model make a huge difference. Just the other day, I was doing something on my personal computer with the same agent I’ve been using at work but a different model. The results were much worse. So much so that I wound up just doing the work without the agent’s help, even though I was very confident that the model available at work would have done correctly in seconds. And both models are the flagship of their respective companies. That is why I can see some people haven’t had the light-bulb moment, and some have.
Speeding Up My ZSH Shell
Scott Spence provides a guide on how to speed up your zsh prompt. My prompt is already very fast, having gone through some optimization a few months ago. If you haven’t done this lately, I recommended. Having a fast zsh startup and prompt is a quality-of-life improvement.
Stop concatenating URLs with strings
I am glad Szymon Fiedler wrote this! I point this out in code review all the time. Now I have an article to point to.
If you are using active support (like Rails does), the query generation can be made easier with
#to_query
:require "active_support/all" query_params = { format: "json", include: "profile" } URI.encode_www_form(query_params) # => "format=json&include=profile" query_params.to_query # => "format=json&include=profile"
-
Balance Vs Stability
Every so often I read about “work-life balance”. They are usually well-intentioned articles discussing how to avoid working too much and balancing time spent working vs time spent living. I’m always a bit troubled by the use of balance.
balance | ˈbaləns |
noun
1 an even distribution of weight enabling someone or something to remain upright and steady
2 a condition in which different elements are equal or in the correct proportions
3 an apparatus for weighing, especially one with a central pivot, beam, and a pair of scales
To me, balance evoques a scale, with a central pivot. The weights on either side have to be exactly right, or the scales tips to either side. Talking about work-life balance seems like finding just the right balance between how much time to spend at work and how much time to spend away from work (family, friends, etc). The implication of the scale is that if you don’t find the precise point, then you are either cheating work or cheating yourself.
Instead, I like to frame it in terms of stability.
stable 1 | ˈstāb(ə)l |
adjective
(of an object or structure) not likely to give way or overturn; firmly fixed
• (of a patient or a medical condition) not deteriorating in health after an injury or operation
• (of a person) sane and sensible; not easily upset or disturbed
• not likely to change or fail; firmly established
A stable structure can withstands some outside forces. Think of a building. It can withstand people moving around inside. Outside forces like wind and rain. Even the earth shaking beneath it. It remains stable and grounded. That is what work-life balance should be like: Sometimes work demands a bit of extra time, sometimes our personal life does. We should be striving to create structure in our lives, so that we can withstand some shifting forces and remain stable.
I’d rather talk about work-life stability, instead of work-life balance.
-
The REPL: Issue 130 - June 2025
My AI Skeptic Friends Are All Nuts
According to the author, AI skeptics are not making good arguments. AI is useful. Its not perfect, but that is not the point. It can help developers deliver value quicker.
And it’s not just Chat. Agentic AI is a game changer. I’ve been using it for a couple of weeks, and it’s already changing how I code. It’s not perfect. But still useful.
This. Is. Changing. So. Fast.
Thrive In Obscurity
The gist is that you should focus on what interests you, and write (or code about that). Be happy no because people follow you, but because what you are producing is interesting to you. Maybe the world will agree. More than likely it will not, but that should not be your goal.
I’ve managed to blog consistently since 2012. 13 years. I’ve amassed a lot of content. Nothing has gone viral. I don’t care. It has helped me become a better writer. Maybe find a job (but maybe not). It has helped me think, by making some ideas concrete and publishing them. Even if it’s only for the robots to crawl.
-
The REPL: Issue 129 - May 2025
The secret to perfectly calculate Rails database connection pool size
Ben Sheldon argues that the maximum number of connections in your rails DB pool should be… set to infinite! That should not be the limiting factor. If you have too many, than we should limit threads or something else. Interesting.
The magic of software
Part of the author’s point is that there is a feedback loop in what we can build with software: Discovering what is possible, informs what we can build, and building things allows us to discover what is possible.
Since we understand everything about the computer and don’t need to discover its workings, software seems much more straightforward. With nothing to discover, we might say that software is the engineering practice of combining and assembling what is available from the complex system of computing in order to manifest a given vision.
But we don’t understand everything about the computer. Yes, humans designed computers, but that doesn’t mean that we understand their behavior completely, and less so when we start thinking about how different software algorithms react to each other (network traffic for example). Then we have emergent behavior.
The Deathbed Fallacy
This is a bit different, because it’s not related to software, what I usually post about.
Someone on their “deathbed” doesn’t necessarily have a perfect perspective about their past selves. And in any case, even if it did, folks on their deathbed might have 20/20 hindsight about their own preferences. That is not necessarily good advise for others. Some of that has to do that a 20 year old today is living in a world 50 years different than his grandpa: Does he really have useful advise?
-
Book Review: Sustainable Web Development with Ruby on Rails
by David Bryan Copeland
Working on Ruby on Rails apps can be a joyful experience. As application get larger, it is often the case that productivity nose-dives and it becomes harder to ship new features or change existing behavior. It doesn’t have to be. This book focuses on opinionated strategies to keep Rails applications maintainable.
The overarching theme is that keeping things maintainable means investing in keeping them that way every day: Agreeing with team members on standards and sticking to them. Automate when possible. Make it easy to know the “right” way to add new code. Avoid surprising or magic behavior. I think of this as resisting entropy.
The book goes into a lot of details: Application setup, and
bin/
scripts, where to put the business logic, routing, HTML templates, helpers, css, javascript, models, database, controllers, jobs, and more. Throughout, the example show the recommended code and how to test it.Of course, I don’t agree with every single piece of advise that Copeland makes. Every engineer develops their own scars based on their past experiences, and try to protect against different future pain. Sometimes there are trade-offs, and reasonable people can disagree on what to optimize for.
Overall, I got a lot of ideas on how to improve maintainability of the apps I am currently working on, and expect that most folks would too.
Links: