HNHacker News
TopNewBestAskShowJobs

ben-schaaf

4,396 karma · joined November 11, 2015

submissionscomments
ben-schaaf··on Linux gaming is faster because Windows APIs are becoming Linux kernel features
There's a big difference between authoritative networking with some security holes and non-authoritative networking. Note also that hitting 100% headshots is entirely within the rules of the game; it has nothing to do with the networking implementation.
ben-schaaf··on MacBook Neo Deep Dive: Benchmarks, Wafer Economics, and the 8GB Gamble
Apple is no stranger to using a web browser for basic OS functionality. Several pages in the settings app are actually WebKit, source: https://blog.jim-nielsen.com/2022/inspecting-web-views-in-ma...
ben-schaaf··on Linux gaming is faster because Windows APIs are becoming Linux kernel features
All these games already have an authoritative server. These cheaters aren't breaking the rules of the game by being invincible, super speedy, etc. they're aim-botting and wall hacking. Those cheats can't be prevented with authoritative networking.
ben-schaaf··on Linux gaming is faster because Windows APIs are becoming Linux kernel features
And yet there's plenty of competitive multiplayer shooters that work fine on Linux. Rivals, The Finals, deadlock, CS2, Overwatch, Hunt Showdown, etc.

EA did a big announcement about switching to kernel level Anti-Cheat for Battlefield 6 to combat cheating, yet there's still plenty of cheaters around. It's looking more and more like an excuse in order to give the appearance of combating cheating.

ben-schaaf··on The limits of Rust, or why you should probably not follow Amazon and Cloudflare
> Between January 2020 and May 2026 Rust has seen 54 releases, which amounts to 7500 lines of changelog. > During the same period, there was 12 Go releases, 12 Node.js releases (but only 2 LTS) and 5 Python releases.

Some corrections:

Rust saw 54 (I assume that's correct, I didn't recount) minor releases, with a few minor breaking changes. If we only count editions there were 2 releases, but again those don't break backwards compatibility.

Python saw 5 major releases, each breaking backwards compatibility. Counting all releases they had 132.

Node has an LTS every year. There were 6 LTS versions in the last 6 years. Those releases also included major breaking changes.

Go had no new major version, like rust it's only made minor changes.

So going by the author's own evaluation, rust and go are considerably better for project decay.

> For example, I just looked at the dependencies of a small project I'm working on, and we have 5+ (!) different crypto libraries: 2 different versions of ring, aws-lc-rs, boring, and various libraries from RustCrypto

ring is explicitly an experiment, not suitable for use. My guess is the author looked at their Cargo.lock to determine what duplicated dependencies they have.

For the uninitiated, rust libraries can have optional dependencies that only get included under certain conditions. A common pattern is for a library to support multiple underlying implementations, such as different crypto libraries. For instance rustls has both ring and aws-lc-rs as optional dependencies, meaning that both get included in the Cargo.lock file when resolving dependencies. That doesn't mean that both are actually being used.

ben-schaaf··on Louis Rossmann offers to pay legal fees for a threatened OrcaSlicer developer
Note that at least for now you can also downgrade the firmware and use the "legacy" plugin with OrcaSlicer to fully restore functionality.
ben-schaaf··on Removable batteries in smartphones will be mandatory in the EU starting in 2027
> Funny because the Qualcomm sm7450-ab snapdragon 7 gen-1 page lists itself as only supporting LPDDR5.

Those pages contain scarce technical information, it would be silly to say that anything not listed there is explicitly not supported.

Qualcomm's leaked datasheet says it supports lpddr4x: https://www.scribd.com/document/868805341/80-26135-1-AE-SM74...

> Nope. Strontium-60. 25 year half life compared to Sr-90's ~29. It's what we like to use in real space-environment testing on the ground. Nasty stuff.

Strontium-60 doesn't exist. It falls completely off the isotope table (https://inframatterresearchcenter.org/IsotopeTable.html). Strontium-82 has a 25 day half-life.

> You can actually probe your hardware and see what sort of ECC is enabled on a Droid phone.

Care to share how? I wasn't able to find anything on the internet and I'd love to know whether my phone has some limited ECC.

ben-schaaf··on Removable batteries in smartphones will be mandatory in the EU starting in 2027
> Yet it is currently working just fine recording video inside of our rad/AtOx chamber with multiple Strontium-60/Barium-137 sources surrounding it.

That's really neat, but doesn't contradict anything I said.

Also do you perhaps mean Strontium-90? ;)

> Wrong. LPDDR5 and it has its own error correction features (not as robust as ECC but it's still there.)

Their product page lists LPDDR4x: https://www.kyoceramobile.com/rugged-devices/duraforce-pro-3. Unless you have a better source I'm going with the manufacturer on this one.

> it has its own error correction features

Source?

ben-schaaf··on Removable batteries in smartphones will be mandatory in the EU starting in 2027
That's not a radiation hardened chip, it's regular off-the-shelf consumer electronics. The "solar radiation" test they advertise is part of MIL-STD-810H. It tests whether the electronics survive regular sunlight on earth. The only ionizing radiation this phone is rated for is UV light.

At least if it had registered memory there might be an argument that it has some radiation resistance, but no it's plain old LPDDR4x.

Ulefone Armor 29 Ultra has the same MIL-STD-810H conformance with "radiation hardening", 16GB of RAM and a flagship Dimensity 9300+. Just not a removable battery.

ben-schaaf··on Removable batteries in smartphones will be mandatory in the EU starting in 2027
How does any of that prevent the phone from having the latest chip and copious ram?
ben-schaaf··on Removable batteries in smartphones will be mandatory in the EU starting in 2027
Their latest and greatest PRO 3 runs a chip that was mid-range when it releases 4 years ago and only 6 GB of RAM. That is decidedly not a flagship.
ben-schaaf··on Removable batteries in smartphones will be mandatory in the EU starting in 2027
> If people wanted removable batteries in their phones, they would buy them a lot. They don't.

This argument gets thrown about every time companies make anti-consumer changes, and it completely ignores the information asymmetry and other dynamics at play. When I go to the store to buy a new phone, where does it list on the box how repairable the device is? Where does it show how expensive the repair will be? If I'm locked in the apple ecosystem, where do I buy an iPhone with a replaceable battery?

Your assumption that the market is driven by informed consumer choices presupposes that every buyer is an expert.

ben-schaaf··on You can beat the binary search
> SIMD is tricky even with SoA because there is significant latency going between the general registers and the vector units

My experience is mostly limited to AMD64, but libraries like glibc use SIMD in many places for faster linear search. Presumably they've done testing and found it worth while.

ben-schaaf··on You can beat the binary search
For a pretty small N I've found that less clever can be quite a bit faster. I'd try a linear search - possibly SIMD if you can change the data format to struct-of-arrays. An adaptive approach that uses linear search up to a certain N can also yield some benefit.
ben-schaaf··on Zed 1.0
> Software update deletes this memory.

While there was a bug where the session was lost when updating, this was fixed years ago.

ben-schaaf··on Zed 1.0
Sublime Text has always been paid, it was never free.
ben-schaaf··on Box to save memory in Rust
The names of these things are hazy and inconsistent. In Java and C# an interned string is the same type as other strings. Others describe atoms as interned strings, some call them symbols. At my work we call the u16/u32 atoms and interned strings are the single pointer strings described above.
ben-schaaf··on Box to save memory in Rust
You might want to refresh your understanding of the word optimisation. Changing a system to be more effective/efficient is optimisation, how big that change is makes no difference.
ben-schaaf··on Box to save memory in Rust
There's really an endless list of these optimizations. A few I've used (though not necessarily in rust):

Atoms: Each string can be referenced with a single u32 or even u16, and they're inherently deduplicated.

Bump allocator: your strings are &str, allocation is super fast with limited fragmentation.

Single pointer strings (this has a name, I can't think of it right now): you store the length inside the allocation instead of in each reference, so your strings are a single pointer.

ben-schaaf··on New 10 GbE USB adapters are cooler, smaller, cheaper
To be fair, lightning only looks sensible because it never did anything other than USB2 and power delivery.
ben-schaaf··on Firefox Has Integrated Brave's Adblock Engine
UBO lite has a long list of all the types of filters that aren't possibly under MV3: https://github.com/uBlockOrigin/uBOL-home/wiki/Frequently-as...

Not sure about page load, but CPU time is about the same between the two: https://x.com/gorhill/status/1792648742752981086/photo/1

ben-schaaf··on Framework Laptop 13 Pro
> Why didn't they stream Neflix on Ubuntu they ship with?

It's not exactly impressive to say you can stream 20 hours of 540p video. Netflix DRM is awful for Linux users.

Though I agree it would have been better to show a benchmark of youtube or similar for Linux.

ben-schaaf··on Framework Laptop 13 Pro
I agree, competition and economies of scale are much larger factors. Custom RAM SKUs for a single manufacturer with no competition will obviously cost more than an industry standard part. And you'll be locked to buying RAM upgrades from framework themselves.
ben-schaaf··on Framework Laptop 13 Pro
There's a big reason they shouldn't do that though: Laptops have already standardized enough on LPCAMM2 for the modules to be widely available.
ben-schaaf··on Framework Laptop 13 Pro
Socamm is all about data centre capacity. It starts at 128GB and you can only order it in bulk(?) from data centre providers.

On the other hand I can go to a local store and buy a stick of 32GB lpcamm2.

ben-schaaf··on Zero-Copy GPU Inference from WebAssembly on Apple Silicon
Correct me if I'm wrong, but that reserved memory is for the framebuffer? The iBoot bootloader also reserves some memory for the framebuffer.

dGPUs bring their own VRAM because it's a different type of memory, allowing them to get higher performance than they could with DDR. The M4 Max requires 128GB of LPDDR5X to reach its ~500GB/s bandwidth. The RX Vega 64 had that same bandwidth in 2017 with just 8GB of HBM2.

ben-schaaf··on Zero-Copy GPU Inference from WebAssembly on Apple Silicon
> the thought and idea is theirs, it was communicated

Are they? I don't know how much they used AI, the entire article could be written from a one sentence prompt and so I'd argue that the thoughts and ideas are not their own.

This isn't like using a spell checker, it's like using a ghost writer.

ben-schaaf··on My adventure in designing API keys
You're right, the correct term seems to be MAC (Message Authentication Code).
ben-schaaf··on My adventure in designing API keys
Ah that makes sense. I wouldn't call that a checksum though; that's a signature :)
ben-schaaf··on My adventure in designing API keys
I don't follow. The checksum is in "plain text" in every key. It's trivial to find the length of the checksum and the checksum is generated from the payload.

Others have pointed out that the checksum is for offline secret scanning, which makes a lot more sense to me than ddos mitigation.

← PreviousPage 3 of 34Next →