Had an amazing experience today facilitating a huge ensemble of 80 people together with Lev Konstantinovskiy at the PyConDE in Berlin. The people did very good and brought up lots of valuable Ideas. They devised the best solution for this exercise that I've seen yet.
Later we continued to work in small ensembles and it was remarkable to see the power of self-organization.
Exploring #HexagonalArchitecture at the EBCONT Coding Dojo. Lots of great people and interresting discussions. Enjoyed it, and learned a lot. 🙌
“The thing that provides any meaning at all to the concept of a “service” in software terms is that it represents a boundary. There is a difference between what is known and what is exposed, on either side of these boundaries”
— @davefarley77
(p. 115, Modern Software Engineering, 2022)
Scientists deliver ‘final warning’ on #ClimateCrisis: act now or it’s too late | Climate crisis | The Guardian
Doing #CodeReview feels so wasteful and tedious after doing regular #MobProgramming.
Any experienced programmer worth their salt will tell you that •producing• code — learning syntax, finding examples, combining them, adding behaviors, adding complexity — is the •easy• part of programming.
The hard part: “How can it break? How will it surprise us? How will it change? Does it •really• accomplish our goal? What •is• our goal? Are we all even imagining the same goal? Do we understand each other? Will the next person to work on this understand it? Should we even build this?”
Study: Developers write measurably worse code when assisted by AI
Computers have been beating the best human Go players since 2016. The Go world champion retired in part because AI is “an entity that cannot be defeated.”
But a human just trounced one of the world’s best Go AIs 14 games to 1: https://arstechnica.com/information-technology/2023/02/man-beats-machine-at-go-in-human-victory-over-ai
I think this news story is more interesting than it might first appear (without knowing details, so grain of salt). It isn’t just a gaming curiosity; it points to a fundamental flaw with “deep learning” approaches in general.
1/
New Blog: Solo Programming Considered Bad
http://gregorriegler.com/2023/01/30/solo-programming-considered-bad.html
Just released mob.sh 4.2.0 🎉
It now starts a mob session with an empty commit to skip CI when creating a new remote branch for the session. The commit is squashed or dropped when mob done except for --no-squash option.
Thank you tishikawa https://github.com/takaiyuk !
Join our public mob tomorrow at 17:00 CET where we'll be working remotely on the mob-programming-rpg webapp again. It's public, and it's free. Add it to your calendar so you don't forget:
https://calendar.google.com/calendar/event?action=TEMPLATE&tmeid=NGdxYm1nNTR0MGp0ZHI2ZDN1NG1zOWNiMWhfMjAyMjEyMDFUMTYwMDAwWiA3Mzk5NWUxZTBiMWM5NDhhOGEwMDIxZWM0YzNjZTcyOTQxZjdiN2FjOTc1NGJjZTNmMGU5ZGRkMDA1MmY4NjQxQGc&tmsrc=73995e1e0b1c948a8a0021ec4c3ce72941f7b7ac9754bce3f0e9ddd0052f8641%40group.calendar.google.com&scp=ALL
Just released https://mob.sh/ v4.1.2 🎉
Fix: `mob done --squash-wip` won't lose changes when you forget to `mob start`
I've just posted an article about DI Frameworks and why they are Bad For You. Inspired by a post from Jeremy Miller—entirely unintentionally, I'm sure. Featuring The Dude.
I'll post a thread on it on Monday, but it's the weekend and I doubt anyone's interested in snarky bullshit right now. Here's the link to the article in case you *are* in the mood for my snark: https://www.jamesshore.com/v2/blog/2023/the-problem-with-dependency-injection-frameworks
Testing Without Mocks: A 🧵.
So a few days ago I released this massive update to my article, "Testing Without Mocks: A Pattern Language." It's 40 pages long if you print it. (Which you absolutely should. I have a fantastic print stylesheet.) I promised a thread explaining what it's all about.
This is the thread. If you're not interested in TDD or programmer tests, you might want to mute me for a bit.
Here's the article I'm talking about: https://www.jamesshore.com/v2/projects/testing-without-mocks/testing-without-mocks
Merciless Refactorer