This week I tried out Jujutsu, jj for short, a new version control system.
I’ve never used anything but git (and I wrote extensively about how I use git) and I don’t particularly care about version control systems, but I’ve heard of jj, knew that Mitchell said it’s “fantastic” and then, last week, Felix called me out for not having tried out, after he had his brain rewired by jj.
Here we are then, after one week of trying out jj. Now, I don’t think I can do it justice and give a proper, smart-sounding review yet, but some of you have asked, so here’s some first impressions:
Wow, am I used to thinking in commits in branches, wow.
It feels like flying blind when suddenly your shell prompt does not make sense anymore, because you’re no longer in git land.
jj split
is very nice. Think: git add -p, but in a nice way.Once I had gotten used to it, the
jj log
lead to multiple “ahh, that’s beautiful” moments.It’s very neat how you can refer to changes with the most significant prefix.
The tug alias seems like it should be built-in.
Claude is very good at getting you out of jj problems. But: jj also seems to change a lot. LLMs have suggested quite a few outdated/wrong commands.
This Chris Krycho post and Steve Klabnik’s Jujutsi tutorial have been the best intro resources I’ve found so far.
It’s very good that you can just use it next to git. Impressive engineering decision.
A few things that are very easy for me in git land seem a bit harder: squashing 10 commits into one by doing an interactive rebase, doing a git pull rebase and then pushing. You can do it with jj, but it just seems like you’re going against the grain.
Other things seem a lot easier though: editing a previous commit, splitting up a change, referring to other changes, making sense of the log (jj log is very nice, as I said), squashing changes into each other, abandoning work.
I’ll stay with it, I’m enjoying it. Now all we need is a way to mispronounce it, like how some people say “jit” instead of git. I propose: yay-yay.
This is a fantastic post: What Works (and Doesn't) Selling Formal Methods. One way to describe what’s in the post: the mental journey of becoming a senior engineer. “But often the companies or people who build and maintain these systems genuinely don’t care much, either because they’ve priced in the bugs or because their system is designed to be robust in the presence of bugs.” If you read this sentence without thinking it’s cynical, I’d argue you have some real-world experience.
Everything about this is so good: Antinote. The many small videos on the landing page that show all those unique features, the unique features (paste a screenshot and get OCR’d text!, start a timer in a text editor!, AutoPaste — what!), the comparisons to other note-taking applications, the so easy to parse User Manual, the icons that all have this weird little dot in them — lovely stuff. I downloaded it, bound it to a hotkey and hope that I’m going to use it a lot.
You know that feeling when you unexpectedly remember something that you once knew, knew intimately, something you cherished, something you thought of as beautiful, and your knowledge of the beautiful thing being restored makes you feel as if the scales of the universe have been tipped, just ever so slightly, towards more balance? Exactly. That’s how I felt when I rediscovered pointerpointer.com this week.
“The obvious answer, of course, is that you might have no choice: that given what’s coming, anyone who wants to keep food on the table must give up their dreams of aliveness, and buckle down to placating the machines instead. I have two things to say about that, the first of which is that I don’t believe it: that aliveness is so central to meaningful human experience that there’ll always be a market for those who can cultivate it, embed it in what they create, foster it in institutions and organisations, and bring people together to experience it.”
“I had doubts about becoming a mother when I was younger. Mostly related to systemic gender inequality, believing I would need to sacrifice my whole career for it, and thinking myself incapable of bearing the responsibility (which, to be fair, I was before age ~28). I spent a solid year in angst and turmoil trying to figure it out. […] Being on the other side, I now realise there was no calculation or algorithm or pro/con list or financial spreadsheet that could have helped me understand what it would feel like.” That’s Maggie Appleton writing about becoming a mother. I can’t think of anything else in life where the difference between what you think it will be like and what it then turns out to be is as big as when having kids. Even this last sentence doesn’t make sense until you experience it.
Lovely: “With the rise of Flash and CSS in 1997, three web design philosophies emerged. David Siegel advocated for 'hacks', Jakob Nielsen kept it simple, while Jeffrey Zeldman combined flair with usability.” So many memories: homepages that had an Enter button you had to click, comments in the source code specifically for the View Source tourists, adding a “nothing to see here” comment at the top of the HTML along with roughly 500 newlines to trick the same tourists into thinking there’s actually nothing to see there, angry messages that this site is only optimized for the author’s favorite browser, csszengarden, tables to do layouts, Flash.
“This shift from writing to reading code can make engineers feel as if they are bystanders in their own jobs. The Amazon engineers said that managers have encouraged them to use A.I. to help write one-page memos proposing a solution to a software problem and that the artificial intelligence can now generate a rough draft from scattered thoughts.” Big Problem. I wonder what the solution will look like.
From the Claude 4 prompt engineering guide: it’s less effective to write “NEVER use ellipses” than “Your response will be read aloud by a text-to-speech engine, so never use ellipses since the text-to-speech engine will not know how to pronounce them.”
Simon Willison dissected the Claude 4 system prompt that’s used in the Claude app and on claude.ai. No big surprises, but the level of care and word-smithing (maybe I’m projecting) is still astonishing.
Speaking of Claude: I learned that Amanda Askell, a “philospher & ethicist”, designs Claude’s personality. “We want Claude to be like the best person who has ever existed. For any given instance — from teaching physics to a 12-year-old to comforting someone having a hard day.”
“What is breaking my brain a little bit is that all of the discussion online around AI is so incredibly polarized. This isn’t a “the middle is always right” sort of thing either, to be clear. It’s more that both the pro-AI and anti-AI sides are loudly proclaiming things that are pretty trivially verifiable as not true.”
“Screentendo is a desktop application that allows you to to turn a selection of your screen into a playable level of Super Mario Bros.”
Two challenges for you. Challenge #1: read through this without laughing out loud. Challenge #2: imagine being the person in charge of putting the ratings in, of giving “crabs” a 0 and “crack” a 1 and “crapola” a 2.
Pretty sure I first read it when this blog post was published, in 2013, but I’m certain not a year has gone by since in which I didn’t use the story of the duck. "Supposedly, the PM saw this and said 'it's great... just remove the duck'. So, the artist went in and removed the duck (which had been carefully placed to make that easy), and that was that. The sacrificial duck kept the meddling manager away from the stuff that was important."
This made me wish I could take a sabbatical and just read for a year. It’s a “tower of books and articles (1,703 books, 2,667 articles, and counting) has been under construction for a little under a decade. It began during my time studying English at Trinity College Dublin, continued during my time researching New Media at the University of Amsterdam, and has devoured my time ever since.”
Researchers built a self-improving agent: “we propose the [DGM], a novel self-improving system that iteratively modifies its own code (thereby also improving its ability to modify its own codebase) and empirically validates each change using coding benchmarks. In this paper, the DGM aims to optimize the design of coding agents, powered by frozen foundation models, which enable the ability to read, write, and execute code via tool use. Inspired by biological evolution and open-endedness research, the DGM maintains an archive of generated coding agents.” What does DGM stand for? Darwin Gödel Machine. One hell of a name.
“From the outside, it may be hard to understand why creating a software-defined vehicle is still hard in 2025. These legacy companies have poached big hitters from Apple, Tesla and Google. They’ve sunk billions into it. They have decades of experience with software-controlled modules. From the clouds, it all seems doable. Yet on the ground, it’s a nightmare. Automakers are not redesigning software. They are reworking how their entire organizations approach software.”
Published in 2014: “Software lifts physical limitations on the speed with which services can be created and changed. Delivery channels such as mobile devices and widespread Wi-Fi technology eliminate physical delivery borders that had to be overcome in the past. The consequence of the new reality of a software-driven enterprise is that CEOs have to deeply understand software (and the hackers who create it) and how to incorporate it into their business model in order to run successful organizations.” But if you now think of car companies only, I tricked you, because this is very, very 2025, for all companies, especially software companies: “On the operational side, instead of talking about code, companies should follow the ‘hacker way’ and focus on writing code using continuous improvement and iteration, leveraging the best developers they can afford.”
Alexis King, in her first blog post in four years, titled “A break from programming languages”: “I like writing software. It is strange how radical a statement that sometimes feels. So many programmers seem to practically despise what they do for a living, at least as you’d hear them describe it. I have never really been able to empathize with that mindset. I find programming fun, and I derive a unique joy from writing code that decisively solves the problem at hand. It doesn’t have to be a particularly interesting problem, and the solution doesn’t even have to require much more than snapping blocks together, but as long as I can take some pride and satisfaction in the craftsmanship and end result, I am usually pretty happy.” And then this: “It is a little amusing to think that what I find myself most drawn to after a decade of pursuing ever more exotic projects is something entirely mundane: I want to write utterly ordinary software. I want to work on a piece of software used by people to accomplish a task, and I want to take pride and satisfaction in doing it well.” Software — what a thing, right?
Thanks very much for this - weekly! I keep wondering how you make all the time to read all these coupled with all the work you do at Amp.
Wanted to comment about the Claude 4 prompt engineering guide link missing the domain name (https://docs.anthropic.com/)
HTTP 404: https://www.galois.com/articles/what-works-and-doesnt-selling-formal-methods
Alt Link: https://archive.ph/1NCP0