J. B. Rainsberger (he)

Pro 5-pin bowler who consults for software companies to pay for bowling. en/fr/sv/es experience.jbrains.ca tdd.training jbrains.ca

J. B. Rainsberger (he)jbrains
2026-02-27

@geeksam Yup. A next step might be to invite approvals.bash to the party.

J. B. Rainsberger (he)jbrains
2026-02-27

@PurpleBooth I might be missing something, but your last comment sounds to me like "Don't have hope". I think it's wise to have hope, but to be prepared for disappointment. I think I'm doing that.

What might I be missing in your advice here?

J. B. Rainsberger (he)jbrains
2026-02-27

@marick I understand. I'm not sure I can remember clearly seeing someone else claiming "SOWH", then later actually changing their position. I hoped that reporting my experience might shed some light.

For me, it happens most often when I suddenly realize that the belief/opinion I held was merely a special case of a larger principle, and once I saw the assumption I was making, it melted away. My opinion became merely one possibility among others.

J. B. Rainsberger (he)jbrains
2026-02-27

A programmer's act of love: documenting and reporting an apparent defect in painstaking detail, then removing as many superfluous words as possible.

J. B. Rainsberger (he)jbrains
2026-02-24

@spocko Huh! It doesn't _feel_ like the Earth is standing still!

J. B. Rainsberger (he)jbrains
2026-02-24

I highly _highly_ recommend this interview. It's long. Very long. Feature-film length.

Even so, I love Dr Hassan's emphasis on what works when trying to help folks out of harmful beliefs, rather than what makes one feel superior over them.

youtube.com/watch?v=0UlvAUByG3A

J. B. Rainsberger (he)jbrains
2026-02-23

Rudimentary TDD in /#jaq:

1. Choose an input; make a text file for it.
2. Figure out the expected output; make a text file for it.
3. `diff expected.txt =(cat input.txt | jaq -L "lib" 'main_filter')`

It seems like real work to run multiple tests together, but this is a start.

J. B. Rainsberger (he)jbrains
2026-02-23

@PurpleBooth Notice that my title was "Deadlines _as_ an act of love" and not _are_. I offer this as an aspiration we can work towards and I invite folks to try. If they don't feel safe enough to try, then I'm open to talk about how they might find that safety. If they can't find that safety, then I'm open to talk about their options for hunkering down or fleeing.

J. B. Rainsberger (he)jbrains
2026-02-23

@PurpleBooth I worked at IBM in the late 1990s. It was about as bureaucratic as you get. I had at least one manager who acknowledged the Open Secret that estimates didn't matter and the deadlines were merely milestones with vague hopes attached.

"Just write some numbers down; I won't hold them against you." He didn't. We worked towards the milestone/deadlines and negotiated openly in a way that made it work quite well.

It can happen.

J. B. Rainsberger (he)jbrains
2026-02-23

@PurpleBooth Even so, even within organizations of those latter two types reside people. Those people will, on average, respond better to compassion even while you "play the game" to survive their threats. Maybe the best you can do in those situations is to help one person see that they don't need to use deadlines as a weapon of control.

J. B. Rainsberger (he)jbrains
2026-02-23

@PurpleBooth Don't get me wrong: I'm not claiming that everyone wields deadlines as an act of love; I'm claiming that _we can choose_, but we often don't. Some folks who have a choice don't realize it until someone points it out to them.

Enough folks are threatening us; why should we volunteer to threaten each other and make it worse?

J. B. Rainsberger (he)jbrains
2026-02-23

@marick What kind of "lightly" is your "lightly"? (I know it as "weakly", so maybe there's a difference of some import there.)

I have shed and/or weakened my stance on many many many things over the past ten years, mostly because I was exposed to more people and more contexts that helped me see that I had inferred patterns (and the "rightness" of them) that just happened to work in certain situations.

Does that match what you mean well enough?

J. B. Rainsberger (he)jbrains
2026-02-23

I'm _trying_ to trust the process, I really am, but someone in there is getting in the way...

substack.com/@jbrains/note/c-2

J. B. Rainsberger (he)jbrains
2026-02-21

@gregatron5 No, I don't think there is anything to skip. Enjoy the entire book and play along.

He bootstraps a testing framework in Python (going by memory), so clearly the Python testing tools will have changed in the meantime, but the general strategy and approach will not have needed to change.

J. B. Rainsberger (he)jbrains
2026-02-21

@PurpleBooth Yes, they can, and I absolutely do not want anyone to put their livelihood in danger. Even so, I don't think I missed this.

When someone exerts their positional authority over you, they are desperate. There is a surprising amount of power in that moment. There is the opportunity for an interesting conversation, maybe even a critical one.

And maybe you can't fire them now, but you might be able to prepare to fire them. Emphasis on might, but maybe p > 0.

J. B. Rainsberger (he)jbrains
2026-02-21

If you love the idea of agents over human workers, then you might need to read Deci's _Why We Do What We Do_.

And no: don't ask an agent to summarize it for you.

J. B. Rainsberger (he)jbrains
2026-02-20

If we all chose to treat deadlines as an act of love, we could transform the world.

No, really.

blog.jbrains.ca/permalink/dead

J. B. Rainsberger (he)jbrains
2026-02-20

"When am I going to use this (math-related concepts) in real life?"

Why do those amounts not balance? The difference is a multiple of 9. Aha! Digit transposition, probably...

...found it.

J. B. Rainsberger (he)jbrains
2026-02-20

Having grown accustomed to "yank name" and "yank path" in , I find myself wishing this behavior were available in (hledger-ui), too! ;)

J. B. Rainsberger (he)jbrains
2026-02-18

@mlevison I like the title. It reminds me of my original goal when we moved to Dauphin: do Job 3 weeks per year, then spend the other 49 weeks figuring out how to reduce 3 to 2. It didn't work out that way, but I suspect my goals were well aligned with something called "The 12-Week Year". (Anything like "The 4-Hour Work Week"? ;) )

Client Info

Server: https://mastodon.social
Version: 2025.07
Repository: https://github.com/cyevgeniy/lmst