• 1 Post
  • 106 Comments
Joined 2 年前
cake
Cake day: 2024年11月20日

help-circle


  • Is it real that Arch users are rich and have mid level PCs and is always up to date?

    I do have a powerful desktop running Arch (or rather EndeavourOS with the EndeavourOS packages slowly removed over time), but also a 15 year old netbook. There’s plenty of up-to-date lightweight software in Arch repos, you don’t need to limit yourself to old software.

    Also it’s not like a new version of GIMP is suddenly going to use double the memory if you use the same tools in it.

    The biggest issue for the netbook is web browsing, but that’s just about web pages being resource hogs nowadays. uBlock Origin and NoScript help massively. Trying to use an old web browser is IMHO a terrible idea - you’ll end up with broken pages and a massive pile of security vulnerabilities.



  • This is seriously cool. Although the current specs are a bit funny - if you take the largest possible disc size (360 TB), then it would take a million hours to fully write it at 10 MB/s (more if the storage unit is actually TiB). That’s over a hundred years.

    Also if the goal is datacenter archival, then I wonder what the plan for practical use is - many individual discs with separate write “heads” (basically a RAID 0) to bring the speed up? And then maybe the maximum size per disc is a theoretical limit for the technology once we get faster access rather than something practical they intend to build anytime soon.






  • The headline is misleading if you are familiar with bloom filters.

    TL;DR: the interesting thing here isn’t decreased false positive rate (multibit bloom filters are common), but the idea to put the relevant bits together. Basically you use a hash to pick a chunk of bits (32 bits in this case), then use more hashes to pick the bits within this chunk.

    It is a tradeoff between accuracy (completely independent hashes would be less likely to have collisions leading to false positives) and performance (all relevant bits for the object you’re looking up will be together and the lookup will trigger at most one cache miss / memory access).



  • For context, AirDrop is a proprietary communication between Apple devices, but the EU forced them to open it up and adopt an open protocol called WiFi Aware.

    EU forced Apple to adopt WiFi Aware, but not to switch AirDrop to use it - the intended effect is that WiFi Aware is available to developers who can then create their own alternatives to AirDrop that are not locked to one OS.

    Also Pixel 10 series can currently share even to iPhones that never got the new iOS with WiFi Aware support, so claiming this is thanks to EU is absolute BS (although often repeated, for some weird reason). This is just AWDL (which was reverse engineered long ago btw, and there has even been an experimental implementation on Linux for years) + some reverse engineering of the actual AirDrop protocol implemented on top of it.







  • In fact, I think you’d be better off writing a deep dive into what/how environment variables work at build time, and also invoking commands on the CLI.

    But LD_PRELOAD doesn’t really have much to do with build time behavior (unless you’re talking about replacing parts of the compiler) - it allows you to force a shared library to be loaded with higher priority than anything else, so it overrides symbols from other libraries.

    It is recognized and used by Linux’s dynamic linker, which is run-time, not build-time.


  • Yes, the DE-specific implementations is pointless (as far as I know, I use a WM), but the XDG implementation is actually used first, and the function returns true if any impl returns true, like xdg() || gnome() || gnome_old() || kde().

    True, I must’ve read the code wrong when making the comment.

    This isn’t that bad?

    Yes, which is why I take issue with a PR (or rather what should have been a PR) that introduces crap code with clearly visible low effort improvements - the submitter should’ve already done that so the project doesn’t unnecessarily gain technical debt by accepting the change.

    With multiple impls, you have to resolve conflicts somehow.

    Yep, that’s why I think it’s important for the implementations to actually differentiate between light and fail state - that’s the smallest change and allows you to keep the whole detection logic in the individual implementations. Combine that with XDG being the default/first one and you get something reasonable (in a world where the separate implementations are necessary). You do mention this, but I feel like the whole two paragraphs are just expanding on this idea.

    But it’s better to criticize the code’s actual faults (…)

    I made a mistake with the order in which the implementations are called, but I consider the rest of the comment to still stand and the criticisms to be valid.