Readit News logoReadit News
HALtheWise commented on Games using anti-cheats and their compatibility with GNU/Linux or Wine/Proton   areweanticheatyet.com/... · Posted by u/doener
hastily3114 · 18 days ago
Is there really no way to make anti-cheat on Linux that can't be bypassed? I don't know much about this, but it seems very difficult to make an anti-cheat for a platform where you can make changes in the kernel.
HALtheWise · 17 days ago
I did a pretty deep dive into this recently, although haven't yet started any implementation work. As far as I can tell, the best strategy that preserves Linux's open-source and user-empowering ideals as much as possible:

- The game obviously needs to run as root, at least until large amounts of this stuff gets upstreamed into the kernel.

- We're going to be leaving the kernel and boot as untrusted, but injecting a hypervisor underneath the running kernel that is responsible for protecting most pages of game memory. This allows users to still run whatever kernel they want.

- The hypervisor sets up two sets of page tables, one that's only active when the game's thread is running and in userspace, one that hides protected pages and is active when the kernel or other threads are running. Note that game code itself needs to get decrypted into protected ram.

- The TPM of the system gets involved when we jump into the hypervisor to attest that the hypervisor is actually running, and the hypervisor then provides attestations to userspace that certain memory regions are protected from kernel or other thread access.

- Any syscalls will fail if they require the kernel to read or write pages that are protected. The game needs to allocate data that should be shared with the kernel into non-protected pages.

- When the game is closed, we can remove the hypervisor and Linux will be back to bare metal operation. This should be unobservable to the rest of the system.

This architecture preserves the ability of users to run arbitrary kernel modules, but does mean a hypothetical attacker can observe data that passes through the kernel (like draw calls/pixels). It's likely that a more complete implementation would also want some way for the hypervisor to attest to the accuracy of keyboard/mouse input and interface with iommu configuration like Windows KAC does.

HALtheWise commented on Rivian's TM-B electric bike   theverge.com/news/804157/... · Posted by u/hasheddan
conk · 2 months ago
I think the MPH limit for ebike classification makes sense. But why do they need a 750W limit? Whats the harm in a motor putting out 3000W to get a loaded cargo bike up a steep hill at 8 MPH.
HALtheWise · 2 months ago
Doing some quick math, if your bike is using 3kw to climb a reasonably steep (15% grade) hill at 8mph, we can calculate the weight it must be carrying, which ends up being about 1,200lbs

To answer your question, the limit on motor power exists as a proxy for limiting the weight, speed, and acceleration of ebikes within safe limits, since having an ebike charging uphill at 20mph with 500lbs of payload would present actual safety risks. Trying to regulate payload/speed/slope combinations directly has practical problems (police officers don't really want to stop delivery drivers to weight their cargo), while regulating motor power is much simpler.

HALtheWise commented on The Spilhaus Projection: A world map according to fish   southernwoodenboatsailing... · Posted by u/zynovex
HALtheWise · 2 months ago
A friend of mine created something similar using a numerical optimization based approach to minimize distortion. He also made the artistic choice to split the water between Australia and Asia to get even lower distortion. See Elastic II here:

https://kunimune.blog/2023/12/29/introducing-the-elastic-pro...

HALtheWise commented on Unbound Academy hasn’t replaced teachers with AI   danmeyer.substack.com/p/t... · Posted by u/simonebrunozzi
HALtheWise · 3 months ago
There's a lengthy, and quite good, deep-dive into Alpha School by a current parent here, for anyone interested. Spoiler, "AI" isn't that big a portion of what they're doing, but some of their insights and systems around student motivation are actually interesting and very effective.

https://www.astralcodexten.com/p/your-review-alpha-school

HALtheWise commented on Go has added Valgrind support   go-review.googlesource.co... · Posted by u/cirelli94
on_the_beach · 3 months ago
This is super cool. Hopefully it will flush out other issues in Go too.

But I wonder why its not trivial to throw a bunch of different inputs at your cyphering functions and measure that the execution times are all within an epsilon tolerance?

I mean, you want to show constant time of your crypto functions, why not just directly measure the time under lots of inputs? (and maybe background Garbage Collection and OS noise) and see how constant they are directly?

Also some CPUs have a counter for conditional branches (that the rr debuger leverages), and you could sample that before and after and make sure the number of conditional branches does not change between decrypts -- as that AGL post mentions branching being the same is important for constant time.

Finally, it would also seem trivial to track the first 10 decrypts, take their maximum time add a small extra few nanoseconds tolerance, and pad every following decrypt with a few nanoseconds (executing noops) to force constant time when it is varying.

And you could add an assert that anything over that established upper bound crashes the program since it is violating the constant time property. I suppose the real difficulty is if the OS deschedules your execution and throws off your timing check...

HALtheWise · 3 months ago
Feeding random inputs to a crypto function is not guaranteed to exercise all the weird paths that an attacker providing intentionally malicious input could access. For example, a loop comparing against secret data in 32 bit chunks will take constant time 99.99999999% of the time, but is still a security hole because an attacker learns a lot from the one case where it returns faster. Crypto vulnerabilities often take the form of very specifically crafted inputs that exploit some mathematical property that's very unlikely from random data.
HALtheWise commented on The Evolution of Caching Libraries in Go   maypok86.github.io/otter/... · Posted by u/maypok86
awenix · 6 months ago
groupcache[https://github.com/golang/groupcache] has been around for some time now.
HALtheWise · 5 months ago
The original groupcache is basically unmaintained, but there's at least two forks that have carried on active development and support additional nice features (like eviction), and should probably be preferred for most projects.

https://github.com/groupcache/groupcache-go

HALtheWise commented on Jjui – A Nice TUI for Jujutsu   github.com/idursun/jjui... · Posted by u/Curiositry
bjackman · 7 months ago
> No GitHub PR sync for stacks

FWIW, I think the fact that you need client support for this is a bizarre shortcoming of GitHub.

If GitHub just let you review individual commits like Gerrit does, the concept of "PR stacking" would be unnecessary (as it is with Gerrit).

The model of "a PR is just a blob of changes" is a weird baby's toy version of a code review tool IMO!

HALtheWise · 7 months ago
I highly recommend revup, it allows managing and uploading stacked (or arbitrary trees of) PRs to Github, including adding a comment that shows approximate revision-to-revision diffs if you want it to. I don't actually think that per-commit reviewing obviates the desire for stacked PRs, for example I often have some PRs in my stack that are not yet ready for review or merging.

https://github.com/Skydio/revup

HALtheWise commented on Raspberry Pi Lidar Scanner   github.com/PiLiDAR/PiLiDA... · Posted by u/Venn1
dheera · 8 months ago
It's not obvious what the heck this is without reading into it. A full 4pi steradian scanner? a 360 degree 1 channel LIDAR? A fisheye camera plus some single channel LIDAR plus monocular depth estimation networks to cover everything not in the plane of the lidar?

It would be great to clarify what it is in the first sentence.

HALtheWise · 8 months ago
I believe it's a 360deg planar lidar mounted on a vertical plane, with a motor to rotate it around and slowly cover a full 4pi sphere. There's also a fisheye camera integrated in. This is a pretty common setup for scanning stationary spaces (usually tripod mounted)
HALtheWise commented on Raspberry Pi Lidar Scanner   github.com/PiLiDAR/PiLiDA... · Posted by u/Venn1
Aspos · 8 months ago
GY-521 in particular and MPU6050 in general make quite poor IMUs. Why do you use them? And what for in this particular case? What do they do in this set up?
HALtheWise · 8 months ago
Do you have other sensors in the same price range that you'd recommend instead for most uses? How much accuracy improvement would you expect?
HALtheWise commented on Ask HN: Who is hiring? (April 2025)    · Posted by u/whoishiring
HALtheWise · 9 months ago
AutoPallet Robotics (YC S24) | ONSITE | San Francisco | Full-Time and Intern | Robotics Software (Rust), Mechatronics Engineer, ML Intern, ??

We’re building novel robots for case picking in warehouses, a huge unsolved automation opportunity for a very labor-intensive, critically important and sh*tty human job in the thin-margin industry of logistics. Our software is all Rust/Pytorch, embedded dev through research-frontier applied algorithms and an integrated development iteration time measured on a watch, not a calendar.

There’s more than enough fun problems to go around, and we’re looking to grow the team with a couple more great-to-work-with folks, including generalists or job descriptions we haven’t realized we should be hiring for. We’re also specifically looking for a summer applied ML intern for robotic perception and controls. There’s a lot more cool stuff we can’t share publicly just yet. To apply, email a resume to <the-two-letters-of-this-site>@autopallet.bot, and include the role you’re looking for in the subject line, and we’ll take it from there. Bonus points if you include a link or photo of something cool you’ve made.

u/HALtheWise

KarmaCake day1567February 18, 2018
About
[ my public key: https://keybase.io/halthewise; my proof: https://keybase.io/halthewise/sigs/tSgGUu-f9X76RdKMdeEVaui5QBSXRfgFx-BL1gfyHnE ]
View Original