Readit News logoReadit News
lytigas commented on jj: a Git-compatible VCS that is both simple and powerful   github.com/jj-vcs/jj... · Posted by u/tambourine_man
lytigas · 7 months ago
I've read a few small overviews of jj. One thing that's off-putting as a git lover is that while git is truly append-only (except refs), jj seems quite "mutable" by comparison.

Say I'm messing around with the commit that introduced a bug, somewhere deep in the history. With git, it's basically impossible to mess up the repo state. Even if I commit, or commit --amend, my downstream refs still point to the old history. This kind of sucks for making stacked PRs (hello git rebase -i --autosquash --update-refs) but gives me a lot of confidence to mess around in a repo.

With jj, it seems like all I would have to do is forget to "jj new" before some mass find+replace, and now my repo is unfixable. How does jj deal with this scenario?

lytigas commented on Meta introduces Segment Anything Model 2   ai.meta.com/sam2/... · Posted by u/bambax
93po · a year ago
waymo is pretty far behind in terms of self driving tech
lytigas · a year ago
I was under the impression Waymo was the leader. Who are they behind and how?
lytigas commented on Push ifs up and fors down   matklad.github.io/2023/11... · Posted by u/celeritascelery
torstenvl · 2 years ago
I wouldn't quite say this is bad advice, but it isn't necessarily good advice either.

I think it's somewhat telling that the chosen language is Rust. The strong type system prevents a lot of defensive programming required in other languages. A C programmer who doesn't check the validity of pointers passed to functions and subsequently causes a NULL dereference is not a C programmer I want on my team. So at least some `if`s should definitely be down (preferably in a way where errors bubble up well).

I feel less strongly about `for`s, but the fact that array arguments decay to pointers in C also makes me think that iteration should be up, not down. I can reliably know the length of an array in its originating function, but not in a function to which I pass it as an argument.

lytigas · 2 years ago
> A C programmer who doesn't check the validity of pointers passed to functions and subsequently causes a NULL dereference is not a C programmer I want on my team.

I disagree. Interfaces in C need to carefully document their expectations and do exactly that amount of checking, not more. Documentation should replace a strong type system, not runtime checks. Code filled with NULL checks and other defensive maneuvers is far less readable. You could argue for more defensive checking at a library boundary, and this is exactly what the article pushes for: push these checks up.

Security-critical code may be different, but in most cases an accidental NULL dereference is fine and will be caught by tests, sanitizers, or fuzzing.

lytigas commented on Show HN: boxxy – Control where Linux programs put files, without symlinks   github.com/queer/boxxy... · Posted by u/notamy
notamy · 3 years ago
I actually attempted using ptrace to rewrite syscalls first! It was... horribly painful, and didn't work anywhere near as well as the bind-mount version.
lytigas · 3 years ago
For a structured approach to ptrace/syscall rewriting, you could try FB's reverie. I worked on and used it during an internship a few years back; it's pretty amazing at what it does.

https://github.com/facebookexperimental/reverie

lytigas commented on Summary of the Amazon Kinesis Event in the Northern Virginia (US-East-1) Region   aws.amazon.com/message/11... · Posted by u/codesparkle
lytigas · 5 years ago
> During the early part of this event, we were unable to update the Service Health Dashboard because the tool we use to post these updates itself uses Cognito, which was impacted by this event.

Poetry.

Then, to be fair:

> We have a back-up means of updating the Service Health Dashboard that has minimal service dependencies. While this worked as expected, we encountered several delays during the earlier part of the event in posting to the Service Health Dashboard with this tool, as it is a more manual and less familiar tool for our support operators. To ensure customers were getting timely updates, the support team used the Personal Health Dashboard to notify impacted customers if they were impacted by the service issues.

I'm curious if anyone here actually got one of these.

lytigas commented on Reasons to prefer Linux over Windows (2014)   github.com/nbeaver/why-li... · Posted by u/random_walker
Osiris · 5 years ago
I'm using PopOS (with i3 instead of Gnome) on a System76 laptop. I have some serious issues with resume from sleep. All browsers and electron apps have significant rendering issues after I resume and I have to close them down and restart them. I was able to fix Chrome and Firefox by enabling Vulkan, but Slack still requires a restart after every resume.

My external monitors periodically stop working due to an NVIDIA driver bug.

Have you had any similar issues?

lytigas · 5 years ago
It's possible the Chromium/Electron thing is this bug[1], which affects new proprietary nvidia drivers on recent Chromium versions. I also experienced that bug, though I don't think it affected Firefox for me.

It resolved itself for me recently in all apps except Slack. I have no idea why. I'm fairly sure I didn't update anything.

While it was still reproducing, I tested a purported fix in the upcoming Chromium 87 (or 88?) and it was resolved. So just wait a bit or try Canary. More specific info in the bug thread of course.

[1] https://bugs.chromium.org/p/chromium/issues/detail?id=111304...

lytigas commented on Switch from Ruby to Crystal   blog.logrocket.com/why-yo... · Posted by u/notinarkensas
vasilakisfil · 5 years ago
Crystal has macros which is the metaprogramming for static/compiled languages. And last time I checked, there are way more things that you can do with Crystal macros than Rust's macros. And crystal's macros feel very familiar to the language itself, are easy to understand and use them whereas Rust's macros..
lytigas · 5 years ago
According to [1], Crystal Macros "receive AST nodes at compile-time and produce code that is pasted into a program." This is basically the same as Rust procedural macros[2]. You're probably thinking of "Macros by example"[3]

[1] https://crystal-lang.org/reference/syntax_and_semantics/macr...

[2] https://doc.rust-lang.org/reference/procedural-macros.html

[3] https://doc.rust-lang.org/reference/macros-by-example.html

lytigas commented on How expensive is integer-overflow trapping in C++?   lemire.me/blog/2020/09/23... · Posted by u/ingve
fluffy87 · 5 years ago
Note that Rust also traps on integer overflow, and it is trivial to „hack“ the compiler to disable this, and many have done so.

While on this microbenchmark you see a 3x slowdown with the LLVM backend, on large Rust projects like servo, Firefox, the rust compiler, etc. the slowdown is not even measurable.

Also, Rust provides you with unsafe intrinsics to opt-out of trapping in the particular line of code in which it causes an issue.

lytigas · 5 years ago
Rust wraps in release mode and traps in debug mode[0][1]. All large projects that I know of ship in release mode. Though I'd be interested to see a source for it not pessimizing badly.

[0] https://play.rust-lang.org/?version=stable&mode=release&edit...

[1] https://github.com/rust-lang/rfcs/pull/560

lytigas commented on Japan to Draw Up UFO Encounter Protocols After U.S. Footage   nippon.com/en/news/yjj202... · Posted by u/wslh
beaner · 5 years ago
The parallax explanation for the gofast video seems less believable when you view the video and consider the beginning of the footage, when the camera seems near-fixed and the object is flying quickly by it, and the operator has to actively track and lock-on to the moving object.
lytigas · 5 years ago
The field of view of the camera is only 1.5x1.5 degrees[1], roughly 3x the size of the moon viewed from the ground.

[1] "NAR" in the upper left, and https://forums.vrsimulations.com/support/index.php/A/A_Forwa...

Deleted Comment

u/lytigas

KarmaCake day65June 25, 2019View Original