HNHacker News
TopNewBestAskShowJobs

heftig

338 karma · joined February 8, 2017

Arch Linux developer.

[ my public key: https://keybase.io/heftig; my proof: https://keybase.io/heftig/sigs/vAGC78N1YQjTEZO96gvqfkVD0fit_mml6IN6XPw-wvo ]

submissionscomments
heftig··on Zero-copy network transmission with io_uring (2021)
Specialized NICs - is this what e.g. Cavium LiquidIO "server adapters" are? I came across those looking through the firmware shipped with Linux.
heftig··on Async Rust in Practice: Performance, Pitfalls, Profiling
Again, FuturesUnordered cannot know the difference between a task wanting to yield and a task that wants to be polled immediately. The waker does not get this information, either. It cannot distinguish.
heftig··on Async Rust in Practice: Performance, Pitfalls, Profiling
How could it respect them? The Future trait doesn't let it distinguish between "please yield now" and "please poll again".
heftig··on Framework Laptop with Ubuntu Review
Are you sure? The adapters are all covered by USB-C and its DP alt mode. Even the storage expansion cards are attached via USB and not PCIe. No Thunderbolt required.
heftig··on HTTP/3 Is Fast
Yes, I believe this is possible with the HTTPS DNS records defined in https://www.ietf.org/archive/id/draft-ietf-dnsop-svcb-https-...
heftig··on HTTP/3 Is Fast
I've deactivated HTTP/3 in Firefox as the bandwidth from CloudFlare to my provider (German Telecom) gets ridiculously bad (downloading a 6 MB file takes 25 s instead of 0.6 s) during peak times, and I only see this when using HTTP/3 over IPv4, all other combinations stay fast.
heftig··on Gaming on Wayland
I think the entire desktop is running at the highest refresh rate, which is not only wasteful but can cause glitches when the lower refresh rates don't cleanly divide the highest.
heftig··on Gaming on Wayland
These days, a game has at least double buffering. This means one frame is currently displayed on the monitor (front buffer) and one frame is being drawn by the game (back buffer).

In a classic "fullscreen game" situation, whenever a back buffer is finished, the game would configure the GPU's CRTC (the hardware that generates the data stream that goes to the monitor) to read from this back buffer instead. This turns the back buffer into the current front buffer and releases the old front buffer to act as the next back buffer ("page flipping").

When this happens without any synchronization with the monitor, the buffer can be changed in the middle of the frame, causing the characteristic tearing. With VSync, the game delays the swap until the monitor is between frames.

With Wayland, the game swaps buffers with the compositor instead. Direct scanout means that the compositor will configure the CRTC to read from the game's front buffer. So this is really similar to the "classic" situation, except it involves a bit of inter-process communication.

Otherwise, the compositor has its own set of front and back buffer, and the game's front buffer is copied (composited) into the compositor's back buffer first. So we have another buffer swap that has to be done, and this is what causes the composition lag.

Whether direct scanout happens or not is transparent to the game, which does not need to care.

Wayland enforces VSync by default, though there's a protocol being designed (`zwp_tearing_control_unstable_v1`) so a game can request asynchronous flipping.

heftig··on WezTerm – A GPU-accelerated cross-platform terminal emulator and multiplexer
That isn't an inherent limitation of GPUs, though. More likely just a missing feature in whatever GPU rendering path.
heftig··on Firefox is the alternative to a Chrome hegemony
Linux also does not allow you to overwrite a running program; you'll get ETXTBSY.

The difference to Windows is that Linux allows you to delete (unlink) files that are in use. The inode actually owning the data continues to exist until the program is dead.

heftig··on Sign in with Matrix
Handling login-via-Matrix like email or SMS sounds like the right approach.
heftig··on Sign in with Matrix
The website does get your credentials. To be fair, this is how password login with any of the web clients works as well. Which makes it hazardous to use clients not hosted by the homeserver or a trusted third party.

However, if the homeserver is using OIDC, the user credentials are handled entirely by the external OIDC provider and the client doesn't get them. But then you should be using OIDC directly and not "Sign in with Matrix."

heftig··on Why asynchronous Rust doesn't work
> RC deallocation is O(N)

What is N here? Number of allocations?

heftig··on Rust 1.56.0 and Rust 2021
If the application is using C++17, wouldn't the headers of the C++11 lib then be compiled as C++17, potentially breaking things?

PS: The other way around is more obviously broken, with the C++17 lib headers getting compiled using C++11.

heftig··on Rust 1.x seems to not always be backward compatible in practice
Oh, I see. I only vaguely remembered some changeset regarding it. I must have been mistaken, then, and it's still in use.

In any case, sneakily using nightly features can make using a different Rust version problematic, since these features are free of any stability guarantees.

Arch Linux carries a rather large patch updating some vendored dependency in order to make Firefox 78 compile with a newer Rust. https://github.com/archlinux/svntogit-packages/tree/packages...

heftig··on Rust 1.x seems to not always be backward compatible in practice
No, editions require explicit activation and the "default" edition will remain forever at 2015, i.e. Rust 1.0.

This is in contrast to C and C++ compilers like GCC and Clang, where the default "std" setting is often updated with new releases.

heftig··on Rust 1.x seems to not always be backward compatible in practice
Firefox might be a pretty bad example here. IIRC it was only recently they stopped using the undocumented RUSTC_BOOTSTRAP to enable unstable nightly features in stable Rust.
heftig··on On 'Biweekly' and 'Bimonthly'
I think in English that would actually refer to the last Friday. ("last" as in the one most recently in the past, not some final Friday.)
heftig··on How M1 Macs feel faster than Intel models: it’s about QoS
You really want those "efficiency" cores in addition to your regular ones, otherwise dividing your processor costs you a lot of throughput.

You also want them to be low-power even when saturated, otherwise you gain responsiveness from the "performance" cores but your "efficiency" cores aren't actually efficient.

It seems at least Linux's x86_energy_perf_policy tool lets you set multiplier ranges and some performance-vs-power values per-core, which means such a setup doesn't seem impossible on current Intel hardware.

heftig··on Systemd: The Good Parts
You've confused by-label with the kernel's device nodes (e.g. /dev/sda1). Kernel names are assigned in order. Labels are just like UUIDs and part of the filesystem.

However, unlike UUIDs they don't necessarily exist, are not as likely to be unique (you should only get duplicate UUIDs by cloning filesystems) and are easier to change. This makes them less suitable for mount configuration.

heftig··on ●●|●●●●●|●●|●
I don't think either test involved the speaker conveying information about the SCP to the subject. The information was pinned to the wall in pictogram form.

In test 1, the subject was commanded to translate the pictograms into text.

In test 2 the subject was commanded to describe the pictograms verbally.

heftig··on The global chip shortage is starting to have consequences
It's not dry vehicle weight that counts. GCWR must not be above 3500 kg for the basic car driver's license.

PS: Actually, the limits for the basic German driver's license (B) are: Max GVWR of 3500 kg. With trailer, if GTWR not above 750 kg, no GCWR restriction, otherwise max GCWR of 3500 kg.

There's an extended license (BE) for max GTWR of 3500 kg and no GCWR restriction. (Max GVWR still 3500 kg.)

https://www.adac.de/verkehr/rund-um-den-fuehrerschein/klasse... (German text).

heftig··on System76 Developing “Cosmic” Desktop Environment
What is Arch doing?
heftig··on Telephoto fear: how lenses affect views of crowds
What if you compare a wide angle shot with a panorama created from multiple normal lens shots?
heftig··on Ruby 3, Concurrency and the Ecosystem
What's Go going to do if some ffi library written in C does a synchronous syscall? It's in the same situation.
heftig··on 81k UK-owned .eu domains suspended as Brexit transition ends
What the website says doesn't matter; the registrar says the owner is in Waterford, Ireland:

https://whois.eurid.eu/en/search/?domain=leave.eu

heftig··on The X.Org Server Is Abandonware?
The Wayland security model was designed with sandboxed applications in mind. X was not.
heftig··on Why Does the U.S. Have Three Electrical Grids?
House-wide RCDs are also standard so if any current is not returned through neutral the circuit will be broken.
heftig··on What happened to Firefox Send?
This doesn't imply the benefits that were weighted against the costs were monetary.
heftig··on A word for a value between 0 and 1 (inclusive)
Since they didn't want to document, I think `float Accuracy0to1` is a nice compromise that most people would understand instantly. Add `Incl` or `Excl` if you really need to disambiguate that.
← PreviousPage 3 of 4Next →