You don’t always need the hash id. @ is equivalent to HEAD, there’s also @- for HEAD~, @-- for HEAD~2, etc. with jj log the revset can also be a complex expression https://jj-vcs.github.io/jj/latest/revsets/. You can also create a bookmark to track a remote git branch that’s also updated when you fetch. But you have to move the bookmark when you make changes locally.
- 0 posts
- 18 comments
- naonintendois@programming.devtoProgramming@programming.dev•Madeleine Mortensen: Jujutsu For Busy Devs (Part 1)11 months
- naonintendois@programming.devtoProgramming@programming.dev•Madeleine Mortensen: Jujutsu For Busy Devs (Part 1)11 months
I have to work with Gerrit, which requires amending existing commits after they’ve been pushed to the remote branch to address comments. I’ll frequently have lots of commits I’m working on above the commit in review. Along with a couple other branches. Every commit also has to compile and pass tests. I’ll frequently go git rebase -i --autosquash paired with git fixup. I’ve made mistakes before that are hard to untangle. With jj it’s just jj edit <change-id>.
Or if I want to insert a commit between two others it’s just jj new -A <change-id> to create a new commit after the change id (but BEFORE the previous change that was after the commit). With git I’d need to commit then rebase, put it in the right slot and recompile, rerun tests, re-edit. If I work on a branch I’d need to rebase, possible merge conflicts. jj just puts me on that commit then helps me manage merge conflicts going up. It’s fewer commands focused on what I want to do and less on the tree like git.
- naonintendois@programming.devtoProgramming@programming.dev•Madeleine Mortensen: Jujutsu For Busy Devs (Part 1)11 months
Telling people they have Stockholm syndrome is not a good way to convince them to change their behavior. Present the pros, be honest about the cons and let people make their own decisions. The jj workflow isn’t for everyone, and sometimes people’s git workflows are simple enough that there isn’t a benefit to learning a new tool. I like jj because I have to deal with complicated workflows for work and jj makes them much easier. At a different job it was much simpler and I wouldn’t have paid too much attention to jj.
- naonintendois@programming.devtoProgramming@programming.dev•Madeleine Mortensen: Jujutsu For Busy Devs (Part 1)11 months
Jj’s closest equivalent of branches are bookmarks, but they don’t auto update when you pull from a remote. I wish it was more like a git branch in that sense.
However, editing past commits and reorganizing the tree is MUCH easier in jj. It feels like the commands are more in line with what I want to do rather than having to figure out the specific set of git commands to do what I want.
I did find the “adding EVERYTHING” behavior to be annoying initially. My workaround was to create a local folder and add it to git ignore and push all those temp files there.
YMMV but I’ve found it much easier to manage complex workflows with jj compared to git.
- naonintendois@programming.devto
Linux@programming.dev•Microsoft's Secure Boot UEFI bootloader signing key expires in September, posing problems for Linux users
11 monthsYou’re not wrong, but unfortunately it’s not simple and can brick your motherboard if you make a mistake. I wouldn’t expect the average Linux user to do it these days. It can also depend on the hardware. If they don’t expose any ability to change the keys you’re stuck.
- naonintendois@programming.devto
Linux@programming.dev•Microsoft's Secure Boot UEFI bootloader signing key expires in September, posing problems for Linux users
11 monthsFrom https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/8/html/managing_monitoring_and_updating_the_kernel/signing-a-kernel-and-modules-for-secure-boot_managing-monitoring-and-updating-the-kernel: “In addition, the signed first-stage boot loader and the signed kernel include embedded Red Hat public keys. These signed executable binaries and embedded keys enable RHEL 8 to install, boot, and run with the Microsoft UEFI Secure Boot Certification Authority keys. These keys are provided by the UEFI firmware on systems that support UEFI Secure Boot.”
Basically the Microsoft keys are ones that the firmware vendor (motherboard or chip manufacturer) recognizes as secure by default (via CA validation). You can override them. It’s not a Linux issue but a hardware-vendor-defaulting-to-Microsoft issue.
- naonintendois@programming.devto
Linux@programming.dev•I Don't See a Reason to Switch to Windows from Linux Anymore in 2025
2 yearsGaming is catching up. Valve has done a tremendous job getting games supported with Proton on SteamOS
- naonintendois@programming.devtoProgramming@programming.dev•The World Depends on 60-Year-Old Code No One Knows Anymore (COBOL History lesson)2 years
70k is likely way underpaid for dealing with COBOL. I’ve heard of people making 200k for being on-call
But how do I know if the WHERE clause is AND or OR?
- naonintendois@programming.devto
Reddit@lemmy.world•Is it just me or does the new reddit logo look evil
3 yearsGlad I’m not the only one who thought that!
- naonintendois@programming.devtoProgramming@programming.dev•I wrote a program for my boss. How legal is to to write the program again and make it FOSS?3 years
Not a lawyer, but worked closely with them in the past. It REALLY depends on your employment contract. Changing variable names and language still makes it a derivative work, so it would depend on the original license. I’m assuming it doesn’t have a license which would mean either you or the company owns the copyright: depends on your employment contract. Whether you’re a contractor or full time also affects ownership.
Without ownership or a license, you do not have the legal right to copy the work or make a derivative of it.
I’m not clear on whether you actually wrote any code though. If that’s the case (that no code was written) then I’m not really sure how that works out. If you do post it and they find out, AND they’re mad about it, you could definitely get fired. I’m not sure if there could also be legal trouble or not.
If you need it for a resume item, you can just list it on your resume and talk about it. You could also implement it on your own time (but not share it until you’re sure you’re safe from legal action), that way you could talk about tradeoffs you’ve made, etc. in the real implementation.
In general, if you’re not sure and you’re worried about getting sued, you should ask a lawyer.
- naonintendois@programming.devtoProgramming@programming.dev•What languages are well suited for testing SDKs written in multiple other languages?3 years
How complex are the API calls you need to make? Debugging interop mismatch can end up being more work than writing the tests if you need to deal with complex types.
- naonintendois@programming.devtoProgramming@programming.dev•What languages are well suited for testing SDKs written in multiple other languages?3 years
The .NET languages support c interop. The documentation could use some love though.
- 3 years
Had a team of 10 working nights and weekends for a month because someone in sales sold a contract for an integration with a 3rd party that didn’t exist yet. In the years I was there after that project shipped, only 1 person even looked at the feature, one time. It never actually got used
- naonintendois@programming.devtoProgramming@programming.dev•Which programming language is hard to understand?3 years
Malbolge https://en.m.wikipedia.org/wiki/Malbolge
It required a cryptanalyst to write hello world.
- naonintendois@programming.devtoProgramming@programming.dev•Which programming language is hard to understand?3 years
Even worse is Windows batch scripts. The syntax also changes depending on if it’s in the terminal or run from a file
- naonintendois@programming.devtoProgramming@programming.dev•An opinion on what's a good general-purpose programming languageEnglish3 years
I really prefer rust’s approach. The function signature is the contract. It makes it much easier to debug compared to overly generic pure functional code or c++ templates where everything is
autoand perfect forwarded.The only time in rust where this isn’t true is with async functions. That’s because the compiler adds a ton of sugar to make it easier to write.



I’m not impressed with how they’re approaching the development. They’ve been rushing cosmic development without taking time to do some things properly. They forked iced and have a huge amount of changes. Instead of keeping the history clean they squashed their changes into a 50,000 line commit. Their compositor has no automated testing last I looked at it. Hundreds of warnings during compilation.