[-] FizzyOrange@programming.dev 1 points 6 hours ago

It is no secret that git’s interface is a bit too complex

Right but that's mostly because the CLI is a mess, not because the fundamental data model is bad.

[-] FizzyOrange@programming.dev 4 points 8 hours ago

Some bad interview questions are like that, sure. But they're supposed to be things you are very unlikely to have done before and can reasonably figure out. It's not too hard to come up with simple questions like that. (Though I will grant many people don't seem to bother.)

[-] FizzyOrange@programming.dev 12 points 8 hours ago

IMO this is not a helpful way to put it. They measure skill under stress. Stress may have a large effect on skill level for some people but highly unlikely that it's so large that performance is completely random.

[-] FizzyOrange@programming.dev 7 points 8 hours ago

I failed because I’d misformatted the for loop

Unlikely that you failed the interview because of a basic syntax mistake.

My personal preference when evaluating candidates ability to code is reading their actual production code

This would be a great interview method! But 99% of people are not working on open source code professionally so it doesn't really work in general.

[-] FizzyOrange@programming.dev 3 points 9 hours ago

You don't know how good you've got it. The hiring process in other industries is much worse.

[-] FizzyOrange@programming.dev 1 points 9 hours ago

Yeah I've seen Nix and Guix suggested but they seem like a huge extra layer of complexity.

Also, strict backwards compatibility in APIs is totally worth it. It makes developing larger systems so much easier.

Usually not for first party code. It adds extra maintenance burden for little benefit.

For example suppose you want to add an extra parameter to a function. In a monorepos you just do that and fix all the compilation errors. Send one PR through CI. Job done.

With submodules... You have to add a new function so it's backwards compatible. Deal with a default value for the old call, maybe add a deprecation warning. Oh and you need to version your library now. Then good luck finding all the places that function is called and updating them...

[-] FizzyOrange@programming.dev 12 points 1 day ago

Yeah me too but if you keep reading they didn't actually "move on" in the way that it sounds.

[-] FizzyOrange@programming.dev 2 points 1 day ago
  • You have to tediously git submodule update --init --recursive every time you checkout a commit. There's an option to do it automatically but it's super buggy and will break your .git directory.
  • Switching between branches that have different sets of submodules doesn't really work. Git won't remove/recreate the submodules like it will for normal directories. Worst case is changing a directory to a submodule or vice versa.
  • If you're working on a feature that spans several submodules you have to switch branches in all of them instead of once.
  • Making co-dependant changes across submodules is a nightmare.
  • If you're using submodules for first party code (not uncommon), it basically creates a new public interface where you didn't have one before. Now you have to worry about backwards compatibility and testing becomes much harder. Monorepos don't have that problem.

The list goes on... Some of them depend on exactly what you're using them for.

The slightly frustrating thing is that there isn't a great answer for what to use instead. Git subtree has its own problems. Language-specific package managers do too. There aren't any good languages agnostic package managers I know of.

I'm really hoping Jujutsu will come up with a better solution because it is possible. But it's hard, and they are constrained by Git compatibility so I won't hold my breath.

[-] FizzyOrange@programming.dev 5 points 2 days ago

IMO it's not as good a language as Rust, so I wouldn't learn it for the purposes of making something. However it's very easy to learn (at least to a productive level), so you may as well if you want to.

Just work through go by example and see what you think.

By far the best thing about Go is the tooling. Language itself is eh.

[-] FizzyOrange@programming.dev 2 points 2 days ago

Worktrees are great, and a good reason (if you needed any more) to avoid submodules like the plague. Worktrees don't work with submodules.

[-] FizzyOrange@programming.dev 4 points 2 days ago

Yeah you can use it for normal software. It is very complex though, and the documentation assumes you already have a PhD in formal verification.

[-] FizzyOrange@programming.dev 2 points 2 days ago

They used to have Typescript. Looks like they removed it at some point.

25
submitted 4 months ago* (last edited 4 months ago) by FizzyOrange@programming.dev to c/linux@programming.dev

Edit: rootless in this context means the remote windows appear like local windows; not in a big "desktop" window. It's nothing to do with the root account. Sorry, I didn't come up with that confusing term. If anyone can think of a better term let's use that!

This should be a simple task. I ssh to a remote server. I run a GUI command. It appears on my screen (and isn't laggy as hell).

Yet I've never found a solution that really works well in Linux. Here are some that I've tried over the years:

  • Remote X: this is just unusably slow, except maybe over a local network.
  • VNC: almost as slow as remote X and not rootless.
  • NX: IIRC this did perform well but I remember it being a pain to set up and it's proprietary.
  • Waypipe: I haven't actually tried this but based on the description it has the right UX. Unfortunately it only works with Wayland native apps and I'm not sure about the performance. Since it's just forwarding Wayland messages, similar to X forwarding, and not e.g. using a video codec I assume it will have similar performance issues (though maybe not as bad?).

I recently discovered wprs which sounds interesting but I haven't tried it.

Does anyone know if there is a good solution to this decades-old apparently unsolved problem?

I literally just want to ssh <server> xeyes and have xeyes (or whatever) appear on my screen, rootless, without lag, without complicated setup. Is that too much to ask?

17

Does anyone know of a website that will show you a graph of open/closed issues and PRs for a GitHub repo? This seems like such an obvious basic feature but GitHub only has a useless "insights" page which doesn't really show you anything.

10
Dart Macros (youtu.be)

Very impressive IDE integration for Dart macros. Something to aspire to.

view more: next ›

FizzyOrange

joined 2 years ago