It is these two operations at the heart of OP's app.
3,616 karma · joined February 7, 2013
It is these two operations at the heart of OP's app.
diff --side-by-side
or use `-y` for short-hand.At the moment I'm making do with aliasing `git clean -e .jj`
30 years ago it was the norm. It really is true that the industry (standard) has shifted a lot in that time.
But I work at a place like this right now. I was hired by the new CTO to help them change this, having spent the previous 20 years actively avoiding places just like this.
Project-based planning by a roomful of not-technical people: Funding, scope, design, shape of team, deadlines, tech stacks, vendors etc. all "locked in" before any engineer is even approached, let alone asked for input.
I cannot overstate how uncanny it feels to be working here - like I have actually time travelled back to the 90s.
They do have multiple layers of redundancies, and thus have the big budgets, but they won't be kept hot, or there will be some critical flaws that all of the engineers know about but they haven't been given permission/funding to fix, and are so badly managed by the firm, they dgaf either and secretly want the thing to burn.
There will be sustained periods of downtime if their primary system blips.
They will all still be dependent on some hyper-critical system that nobody really knows how it works, the last change was introduced in 1988 and it (probably) requires a terminal emulator to operate.
DotNet were shook, and shook bad. They went all out to make their runtime "cross-platform" because they faced an existential thread from lamdba+node.
The rise of the MBP also saw their dotnet ecosystem under thread from the other end of the stick - the developer end. Visual Studio cannot run on macos, so competitor IDEs that can were rising in their numbers. Hence the push for VSCode to try and claw back some IDE market.
Debateable.
I'll stare blankly at a blank screen/file for hours seeking inspiration, but the moment I have something to criticise I am immediately productive and can focus.
[0]: https://en.wikipedia.org/wiki/Ward_Cunningham#Law
> The best way to get the right answer on the Internet is not to ask a question; it's to post the wrong answer.
Or get the soldering iron out and build one of the many kits available[1]
[0]: https://moergo.com
Contamination rarely happens outside of the source of supply, and not somewhere along the pipeline.
Not strictly true. They did change the default push behaviour from "matching" to "simple" in Git 2.0.
One of Claude's "categories" is literally "Life Advice."
I'm often using copilot or claude to help me flesh out content, emails, strategy papers, etc. All of which takes many prompts, back-and-forth, to get to a place where I'm satisfied with the result.
I also use it to develop software, where I am more appreciative of the "as near to pure completions mode" as I can be mot of the time.
_Huge_ payday if true.
ln -s AGENTS.md CLAUDE.md # repeat for all
? type MergedType = TypeA & TypeB> If you want to replicate git's behavior, typing an additional command after each change is done feels like overkill. But I would argue this is not the right way to use jj; as you'll see, we'll be either re-writing commits at the tip of branches, or doing multiple steps of work before updating where a branch points. In practice, it means I check the branch status before pushing code, rather than as I work. That is, the branch name tends to sit at the same change as the remote server, and when it's time to update the remote, that's when I update things locally.
[0]: https://steveklabnik.github.io/jujutsu-tutorial/sharing-code...
(emphasis mine)
That, as I interpreted it, is to mean one should begin to "forget" git in order to appreciate jj with a sense of new beginning.
Previously, I was continuously translating jj to git, and vice-versa. After reading this paragraph, I now mentally model the jj-git relationship as a kind of 3rd stage of the workflow, rather than previously assuming jj as an abstraction on top of git.
document.querySelectorAll("[type='checkbox']").forEach(c => c.checked = undefined)
Adjust the selector as neccessary, sometimes I'll use `#id-of-cookie-banner [type='checkbox']`Probably useless for mobile though, unless you can punch it in the omnibar with `javascript:` prefix
type JSON =
string |
number |
boolean |
null |
JSON[] |
{[name: string]: JSON}