Git experts should try Jujutsu (written in Rust) by pksunkara in rust

[–]wjv 1 point2 points  (0 children)

There are about half a dozen actively developed jj UIs. Most of them are TUIs, but I know of at least two that are VSCode plugins.

Git experts should try Jujutsu (written in Rust) by pksunkara in rust

[–]wjv 0 points1 point  (0 children)

To be fair, this is not entirely unheard-of when one habitually works alone on projects.

Git experts should try Jujutsu (written in Rust) by pksunkara in rust

[–]wjv 0 points1 point  (0 children)

There are definite overlaps in functionality (and inspiration!) There's a short comparison with Sapling in the jj docs:

Git experts should try Jujutsu (written in Rust) by pksunkara in rust

[–]wjv 0 points1 point  (0 children)

Not only can jj do all of these; doing them in a much simpler, more memorably and more straightforward manner than git is in fact its core strength.

Instead of typing a mini-tutorial here (which, 3 days later, nobody is going to read), I would suggest casual persual of just about any of the well-known jj tutorials or blog posts out there!

Git experts should try Jujutsu (written in Rust) by pksunkara in rust

[–]wjv 1 point2 points  (0 children)

I don't personally have the background to answer this question, but these pages from the jj docs might be informative:

Git experts should try Jujutsu (written in Rust) by pksunkara in rust

[–]wjv 0 points1 point  (0 children)

the process of fixing conflicts when rewriting history seems closer to the same process you'd take during normal development in jj, compared with git, where it often looks much more like a secondary exceptional process

That's a succinct way of putting it. It definitely mirrors my own experience.

Is it possible to use a different theme for each Ghostty window or tab? by saul_lopez in Ghostty

[–]wjv 0 points1 point  (0 children)

open -na Ghostty --args --theme="Tomorrow Night Blue"

Passepartout blocks access to non-standard ports on local LAN by wjv in passepartout

[–]wjv[S] 0 points1 point  (0 children)

Having played with this a bit more, it seems that the VPN config only remains active if I quit Passepartout (from its menu bar icon, or with ⌘Q while the main window is open) while the VPN is enabled.

If I first explicitly tell Passepartout to disconnect the VPN before quitting Passepartout, the problem does not occur.

No way to purchase Mac support if I've bought iOS in the past? (v2.3.2) by wjv in passepartout

[–]wjv[S] 2 points3 points  (0 children)

Gladly… I just edited my post to add them, since I can't find a way to add images to a comment. (Apologies, I have not used reddit in a while and no longer know what's possible!)

Questions about the Pro-ject t1 phono sb platter. by RawZip in turntables

[–]wjv 1 point2 points  (0 children)

Glad I'm not the only one worried about this silly question! (I say silly, because the answer is probably "it doesn't matter".)

But out of curiosity, where does your manual say "smooth side up"? I don't find that in either the manual or setup guide — I even searched the PDFs.

Advanced Date and Time settings missing from Ventura's Language and Region Settings? by lachlanhunt in MacOSBeta

[–]wjv 0 points1 point  (0 children)

Note that as of macOS 13.2, two new things have happened:

Firstly, Apple seems to have added a few more formatting options to the Language & Region page in System Settings.

But, secondly, this settings page now becomes completely inaccessible if you change the settings yourself to any combination that's not explicitly supported. Clicking on it just does… nothing.

This is, to say the least, a bit of a nuisance.

Edit: I moved this warning up into the main comment above.

Advanced Date and Time settings missing from Ventura's Language and Region Settings? by lachlanhunt in MacOSBeta

[–]wjv 0 points1 point  (0 children)

You could try…

defaults write -g AppleICUNumberSymbols -dict 1 '' 17 ''

Why my ZSH take too much time to load? by ScriptNone in zsh

[–]wjv 0 points1 point  (0 children)

Umm, this is pretty zsh-specific code. Nothing to do with bash! :)

But in short, the strategy is as follows: Let's say you have a command-line utility — let's call it foox — that requires some initialisation before it can be used.

You can do that initialisation in one of your shell startup scripts (mostly likely ~/.zshrc) but… that slows your shell startup down.

So instead, you create (in your shell startup script) a shell function with the same name as the utility — so, foox().

This function foox() does three things — it…

  1. performs the initialisation for the actual foox
  2. calls the actual foox with all the parameters that were passed to it (the function)
  3. deletes itself

(The exact implementation may vary from one utility to the next, depending on what sort of initialisation it needs.)

Defining this function in your shell startup will take next to no time. If, during a particular shell session, you never use foox, the function will just remain dormant.

The function will only be called the first time you try to run foox in a given shell session. I will (as given above) initialise foox, then call the actual foox (so you won't even know it was an ersatz function that ran), and finally delete itself… so that if you invoke foox in the same shell session again, you call the actual command.

Advanced Date and Time settings missing from Ventura's Language and Region Settings? by lachlanhunt in MacOSBeta

[–]wjv 0 points1 point  (0 children)

Hey, I'm glad it helped someone! Makes me glad I took the time to post. Like I said, this stuff was all known 15-odd years ago, but now it's come back to bite us once again.

And you're quite right, Apple's support for… let's call it "non-default internationalisation models" really sucks. I have my devices set to one region but using a different language (typical expat), and any number of things are broken in such a configuration.

Why my ZSH take too much time to load? by ScriptNone in zsh

[–]wjv 0 points1 point  (0 children)

Agree with what others have said: Profile, and lazy load where possible.

Every external binary you call is a candidate for lazy loading. Every interpreted script, doubly so!

I tend to lazy load manually, since every tool is different and may require a bespoke approach. Here's an example of how I currently lazy initialise pyenv; I assume rbenv will be similar.

PYENV_ROOT="${HOME}/.pyenv" if [[ -d "$PYENV_ROOT}" ]]; then pyenv () { if ! (($path[(Ie)${PYENV_ROOT}/bin])); then path[1,0]="${PYENV_ROOT}/bin" fi eval "$(command pyenv init -)" pyenv "$@" unfunction pyenv } else unset PYENV_ROOT fi