jj
The surf has been great this week. It’s been so good that I’ve been seeing shots of local spots on r/surfing. Earlier this week I scoped out a slightly more adventurous spot that I’d never been to. It’s a bit more of a hike to access than most of the breaks I surf, but that just meant that despite how good the conditions were, there were never more than four of us in the water.
Well, four of us if you exclude the sea lions. Two huge sea lions approached the lineup, getting with 25 feet of us at one point. It’s not uncommon for otters and seals to get that close (or closer), but I think that’s the closest I’ve ever come to full grown sea lions in the wild. Very intimidating, especially given the remote location.
Jujutsu
I’m playing with Jujutsu this week. It’s a really neat Git-compatible VCS tool with a slightly different mental model. Jujutsu has a concept that users of Gerrit might be familiar with, the change ID. Jujutsu (and Gerrit) treat commits as intermediate states of a broader “change” and give that change its own identity.
This maps well to how I work. When I worked on a project that used Gerrit, I appreciated the ability to view a diff of a change I had reviewed against the newer version of that change that incorporated my feedback. GitHub should really spend some time on that, rather than more AI garbage.
Jujutsu uses changes as the basis for a model where you don’t really worry about branches, instead building up your changes incrementally. As you modify your changes, jj keeps an “operation log”, making every change reversible. This feature is even more powerful than what you get from git reflog.
I’m hoping that by the end of next week I’ll have enough experience with jj to offer some more in-depth thoughts on the tool.
The reason I started taking a more serious look at Jujutsu (a.k.a. jj) again was that Steve Klabnik wrote about he see’s a future in the tool. Steve is joining ERSC to help build a collaboration tool on top of jj, which is a damn cool thing to be doing. I can’t wait to see what they’re working on.
God Class Funeral
On this week’s episode of Dead Code, I spoke with Adam Tornhill about code metrics, why some are good, some are bad, and how we can use them to build better software.
His (and his company’s) approach is really interesting because they’ve done a fantastic job of actually gathering data on what works and what doesn’t. There’s more science to their approach than you often find in conversation about code quality.
Shameless Self-Promotion
I’ve heretofore resisted putting any kind of real self-promotion in Skill Issue. I promise I won’t turn these weekly updates into ads for Super Good, but allow me this one.
If your company is looking for assistance with Ruby on Rails (and especially Spree or Solidus), give me a shout! We have a ton of experience building and maintaining complex systems, wrangling gnarly test suites, and helping teams move faster. We do everything from team augmentation to helping overhaul software organizations and get them back on track.
We’ve got some spare capacity coming up and would love to find a cool project to sink our teeth into. Hit me up!
Paradise Lost
Something about Paradise Lost’s new record, Ascension, stuck with me. It’s this perfect mix of death and doom and with a gothic flare that just works. I’ve probably listened to it ten times this week.
