Threads for favadi

    1. 4

      Surprised no one has said Brave here. I use the Brave browser, because it’s builtin without an extension and its privacy is top-tier.

      1. 4

        Last time I tried Brave, it did not block Google Search’s Ads. Also, I don’t like it pushing the non-sense crypto currency to users.

    2. 2

      Node’s module system allows having multiple versions of the same transitive package without conflicting with each other

      This sounds like a nightmare, I don’t see why they considered it an advantage.

    3. 1

      The aunpack alias is very easy to remember already.

      1. 1


        Not sure how I missed this existing alias. Thank you.

    4. 32

      --version/--verbose along with -v and -V is another set of flags that drives me crazy because it’s not standardized (especially with some programs which only provide the short flags).

      On a side note I do think that -? is an odd translation from Windows land. With Windows command line arguments, /? is more common which is way easier to type.

      EDIT: Updating this to be more constructive - if you’re designing a command line program, please consider including both --version and --verbose. I think -v is generally verbose and -V is generally version. They’re not as consistent, but if you provide short options, I’d recommend those.

      1. 4
        [justin.blank@localhost tms-app]$ java --version
        openjdk 11.0.14 2022-01-18
        OpenJDK Runtime Environment 18.9 (build 11.0.14+9)
        OpenJDK 64-Bit Server VM 18.9 (build 11.0.14+9, mixed mode, sharing)
        [justin.blank@localhost tms-app]$ java -version
        openjdk version "11.0.14" 2022-01-18
        OpenJDK Runtime Environment 18.9 (build 11.0.14+9)
        OpenJDK 64-Bit Server VM 18.9 (build 11.0.14+9, mixed mode, sharing)
        [justin.blank@localhost tms-app]$ java -v
        Unrecognized option: -v
        Error: Could not create the Java Virtual Machine.
        Error: A fatal exception has occurred. Program will exit.

        I believe prior to version 8.x.y, --version would fail, but -version would work.

        1. 3

          I believe prior to version 8.x.y, –version would fail, but -version would work.

          Yeah, Java uses single-dash “long” options. Even today I think it was only --version that was special-cased; the rest are still single-dash only. For example, java -classpath works but java --classpath does not.

          I’d be curious about the history behind this. Although the linked post calls the short/long options distinction POSIX, I believe double-dash long options originated as a GNU convention. I could imagine 1990s Sun not being interested in GNU conventions. This is complete speculation though.

          1. 2

            X does too. I suspect people needed longer options only in late 80s/early 90s, and X did it before GNU. Even then, the longer options call back Multics.

      2. 4

        I used docker-compose down -v for years and thing that it gave me verbose output. Turn out that:

        • with docker-compose -v it means prints version and exit
        • with docker-compose down -v it means removed named volumes
      3. 3

        Don’t get me started on tools which need you to run programname help version

    5. 1

      Work issued MacBook Pro 16 inches, i9, 16GB RAM.

      Would you pick this same machine if given the chance to replace it?

      I would choose a Thinkpad over this machine. The main reason is I prefer to use Linux.

    6. 1

      Some thoughts to that:

      Universal Clipboard

      That’s an anti-feature to me that KDE Connect may provide, but I also disable it on windows.

      Safari Tab Groups

      Don’t know, I’ve been a tab group/managing/.. user, but since I’ve migrated away and just close everything at the end, I’m a much happier person. AFAIK Opera does some of this.


      Points for that, though it’s still a proprietary system that costs extra money on every device that can support it. Let’s see about multi-DPI after wayland finally settled.

      Apple Maps

      Google maps/OSM?

      You can still boot Linux on them

      Well you can, but you won’t ever upgrade any drivers, for all we know you’ll have to dual-boot for the end of time.


      I did actually think about buying an apple laptop after the recent M1 success. Too bad they do actually ship only 8GB of hard soldered RAM for everything under 2000€. So you get a beast of a processor, but don’t try opening too many tabs (electron apps) or actually compiling on it, because then you’ll trash your hard soldered SSD over time? So I went with a lenovo yoga, that way I’m also sparing another 800+ for an apple tablet or a ton of adapters. It’s a shame to be honest.

      1. 10

        I’ve migrated away and just close everything at the end, I’m a much happier person

        I respect that, but for my use cases, I need this stuff. I have a lot of long-standing research and projects going. For example, in 2021 I was researching cancer treatments for a family member so they could make an informed decision about their options. I have a few improvements I want to contribute to VirtualBox, and the relevant docs are in a tab group, safe and waiting for me when I’m ready to tackle them. Et cetera.

        after wayland finally settled.

        “Initial release: September 30, 2008”

        Not sure if Wayland reminds me more of Duke Nukem Forever (15 years of development hell later, it’s released but a disappointment) or Windows Vista (“WinFS! Palladium! Avalon! Well ok, none of those, but isn’t that new theme pretty!”).

        Google maps/OSM?

        I did mention Marble in my article. The point was to have a desktop app that performed these functions instead of relying on a Web site. I really dislike using applications in a browser and should probably write that up later.

        you’ll have to dual-boot

        I’m not sure if by “upgrade any drivers” you meant firmware. Asahi is looking at making firmware updates possible from Linux since they are packaged in a standard format (.scap file) and you can already upgrade them manually using a Mac CLI command (bless). Otherwise there is no reason you have to run the Mac OS on an M1 Mac, Asahi can be the only OS on the drive (though right now you probably wouldn’t like it).


        …is enough for my Mum to do eight Safari tabs + Photoshop + Telegram on her MBA, but I concede it’d be really nice to have slotted RAM. Unfortunately there are reasons they removed them; I remember the PBG4 slot failure fiasco, and it does drive up cost, thermals, dimensions, etc. Not that I like the idea, but I do understand the point.

        1. 6

          I have a lot of long-standing research and projects going

          Bookmark seems to be the right feature for this use-case.

          1. 11

            Bookmarks don’t preserve history. It is possible to use bookmarks in a similar fashion, but I have never been as productive with bookmarks as I am with tab groups.

            1. 4

              Preach! I find I think I’m terms of space. Tabs exist in space. Bookmarks do not. I can find a container or a tab, but bookmarks? Five years later as I’m cleaning out my bookmarks I remember how that would have been so useful.

              1. 1

                I use Pinboard, with the archiving feature; I can search by tags I’ve applied or some text within the documents. It’s pretty useful!

            2. 3

              For some reason as soon as tabs became I thing, I basically stopped using bookmarks completely. I feel like what I really want is a queue of “this looks interesting” things that slowly dies if I don’t look at it… kind of like tabs, they stay open until I get so annoyed by all of them that I just close them, but it works great to keep stuff around that “oh hey, I might want to read this a bit later”

              1. 1

                I use Reading List for that, but yeah, before I had a Reading List this was another use case for tabs.

        2. 2

          Which Wayland implementation is being discussed?

          I’ve been using one for years and I’m pretty happy with it.

          Between TV, home display, work display, and internal display, there’s 4 different DPIs/scaling factors going on, and it seems to work just fine?

          1. 5

            Wayland implementations are at that critical stage between “works on my machine” and “works on everyone’s machine”. Mine’s pretty well-behaved, non-nvidia, three year-old hardware, and all Wayland compositors I’ve tried break in all sorts of hilarious ways. Sway is basically the only one that’s usable for any extended amount of time but that’s for hardc0re l33t h4x0rz and I’m just a puny clicky-clicker.

        3. 1

          Wayland seems to be coming to the next stable KUbuntu release, which makes it “production ready” for me. But I can totally understand the sentiment (sitting on a fullHD + 4k screen with windows for multi-dpi scaling).

          Fair point for desktop-app Maps, guess I’m just used to that now.

          Regarding driver updates you’re right, I misremembered something. What does annoy me though is that you have to use a bunch of binary blobs that you’ll have to live-download from apple (or first put on an usb stick in a future asahi release). That feels like the driver blobs on android custom ROMs and isn’t necessary for any of my intel laptops.

          For my daily workload 8GB of RAM isn’t enough, although I’m doing more than than office/browsing.

      2. 9

        That’s an anti-feature to me that KDE Connect may provide, but I also disable it on windows.

        Well, it’s a useful feature for a lot of people that use multiple apple devices, including myself.

        8GB of hard soldered RAM

        Soldered on RAM is likely the future everywhere, not due to price, but due to engineering and physical constraints. If you want to increase performance, it has to come closer to the die.

        So you get a beast of a processor, but don’t try opening too many tabs (electron apps) or actually compiling on it, because then you’ll trash your hard soldered SSD over time?

        This seems to be a bit of a straw man. I haven’t had any issues with swap over the last year and a half of daily driving a MacBook air. Admittedly, it’s 16GB rather than 8GB.

        I agree with the rest of your points, for the most part.

        1. 1

          it’s 16GB rather than 8GB

          And that’s my point. I’m fine with 16GB, but 8 isn’t enough if I open my daily workload. (Note though that I was apparently wrong, I’d have gotten a decent machine for 1500€ apparently.)

      3. 4

        8GB of hard soldered RAM

        Trying to compare on specs like that misses the forest for the trees IMO, the performance characteristics of that RAM are so different to what we’re used to, benchmarks are the only appropriate way to compare. The M1 beats my previous 16GB machine in every memory-heavy task I give it, if non-swappable RAM is the price I pay for that, I’ll gladly pay it.

        1. 1

          That’s very interesting. I’m just looking at my usual memory usage and an IDE + VM + browser are easily over 8GB of RAM. Then add things like rust analyzer or AI completion and you’re at 12GB. Not sure if swapping is good for that.

      4. 3

        Too bad they do actually ship only 8GB of hard soldered RAM for everything under 2000€.

        That’s not true. A MacBook Air with M1, 16GB of RAM and 256 base level SSD costs 1.359€. Selecting a more reasonable 1TB SSD will set you back 1.819€. You can always buy a 2nd choice/refurbished model for 100+€ less. Also, one should consider that the laptop will hold a lot of its value and can be sold easily in a couple of years.

      5. 2

        only 8GB of hard soldered RAM for everything under 2000€

        I’m shocked it’s that expensive in Europe. My M1 Air with maxed out GPU (8-core) and RAM (16 GB), as well as 1 TB SSD, was only $1650 (~1500€).

        1. 7

          It’s not that expensive. E.g. in Germany, the prices are currently roughly:

          1. 2

            Wait what. I did go to alternate (which is also a certified repair shop) and I looked on and couldn’t find that. And even now when I go to I get a listing saying “up to 16GB”, then klick on “buy now” and get exactly two models with 8GB of RAM. Oh wait I have to change to 14 inches for that o_O

            Anyway if I could, I’d edit my comment, because apparently I wasn’t searching hard enough..

            Edit: For 16GB RAM, 512GB SSD you’re at a minimum of 1450 (1.479 on alternate), which is still far too much in my opinion. And 256GB for my workload won’t cut it sadly.

            1. 3

              Wait what. I did go to alternate (which is also a certified repair shop) and I looked on and couldn’t find that. And even now when I go to I get a listing saying “up to 16GB”, then klick on “buy now” and get exactly two models with 8GB of RAM. Oh wait I have to change to 14 inches for that o_O

              You click Buy, then Select the base model with 8GB RAM and then you can configure the options: 8 or 16GB RAM and 256GB storage all the way up to 2TB storage, the keyboard layout, etc. No need to change to the Pro 14”.

              For 16GB RAM, 512GB SSD you’re at a minimum of 1450 (1.479 on alternate), which is still far too much in my opinion.

              You are moving the goal posts. You said that a MacBook with 16GB costs more than 2000 Euro, while it actually starts at 1200 Euro.

              which is still far too much in my opinion.

              Each to their own, but MacBooks retain much more value. I often buy a new MacBook every 18-24 months and usually sell the old one at a ~400 loss. That’s 1.5-2 years of a premium laptop for 200-300 Euro per year, which is IMO a very good price. If I’d buy a Lenovo for 1200-1300 Euro, it’s usually worth maybe 300-400 Euro after two years.

              1. 3

                The trick is to buy these Lenovos (or some other undesirable brand) second hand from the people who paid for the new car smell, and get 5-8 more years out of them.

                1. 5

                  The trick is to buy these Lenovos (or some other undesirable brand) second hand from the people who paid for the new car smell, and get 5-8 more years out of them.

                  I can understand that approach, it is much more economically viable. But at least on the Apple side of things, there have been too many useful changes the last decade or so to want to use such an old machine:

                  • Retina display (2012)
                  • USB-C (2016), they definitely screwed that up by removing too many ports too early, but I love USB-C otherwise: I can charge through many ports, get high-bandwidth Thunderbolt, DP-Alt mode, etc.
                  • External 4K@60Hz screens (2015?)
                  • Touch ID (2016)
                  • T2 secure enclave (2017)
                  • M1 CPU (2020)
                  • XDR display (2021)

                  These changes have all been such an improvement of computing QoL. Then there are many nice incremental changes, like support for newer, faster WiFi standards.

                2. 2

                  So very much this.

                  My approach in recent years has been:

                  Laptops are old Thinkpads, upgraded with more RAM and SSDs. Robust, keyboards are best of breed, screens & ports are adequate, performance is good enough.

                  Phones are cheap Chinese things, usually for well under £/$/€ 200. Bonuses: dual SIM, storage expansion with inexpensive µSD card, headphone socket; good battery life.

                  Snags: fingerprint sensors and compass are usually rubbish; 1 OS update ever; no 3rd-party cases or screen protectors. But I don’t mind replacing a £125-£150 phone after 18mth-2Y. I do mind replacing a £300+ phone that soon (or if it’s stolen or gets broken).

                  1. 2

                    I think we’re the same person. Phones seem to last about two years in my hands before they develop cracks and quirks that make them hard or impossible to use, regardless of whether it’s a “premium” phone or the cheapest model.

                    I wish this weren’t the case, but economically, the cheapest (‘disposable’) chinese phones offer the best value for money, even better than most realistic second-hand options that can run LineageOS.

                    1. 2


                      Exactly so. I have had a few phones stolen, and I’ve broken the screens on a few.

                      It gives me far fewer stabbing pains in the wallet to crack the glass on a cheapo ChiPhone than it did on an £800 Nokia or even a £350 used iPhone. (Still debating fixing the 6S+. It’s old and past it, but was a solid device.)

                      My new laptop from $WORK is seriously fast, but it has a horrible keyboard and not enough ports, and although it does work with a USB-C docking station, it looks like one with the ports I need will cost me some 50% of the new cost of the laptop itself. >_<

                    2. 1

                      I just bought a refurbished iPhone SE1 for 100 € to replace my old SE which had a cracked screen, dead battery and a glitchy Lightning port. Fixing all that would probably have cost as much. The SE still runs the latest iOS version and has an earphone connection.

              2. 1

                Thanks for the help with that website.

                You are moving the goal posts

                My price error does lower the bar of entry a lot, true. - I could now just stop writing and pretend that 1500 would be the ideal price and I’m regretting not buying it. But 1500 is still a lot of money when you can still get something that is very similar, has more features and costs less. I was able to buy something that is convertible for 1200 from lenovo, has more connection slots, has a replaceable SSD and does come with a high-end ryzen, supports linux (and windows) since day 1 (so it is not a glorified android tablet).

                I often buy a new MacBook every 18-24 months and usually sell the old one at a ~400 loss.

                I’m running phones for 8 years, laptops for 6+ years, desktops for 10 (with some minor upgrades). I wouldn’t want to invest that much time into buying a new one and selling the old one. But I can see you point, you’re essentially leasing apple hardware.

                it’s usually worth maybe 300-400 Euro after two years

                If you’re trying to always buy the newest thing available, fair. I’m trying to run these things for a long time because I hate switching my setup all the time and I like being environmentally friendly.

                Each to their own

                I agree, but I can see now where the difference in our preference comes from and I think that’s worth it.

      6. 1

        Note though that I’m not commenting too much on the OS aspect, it can be linux or windows, I use both equally. And if not for those 8GB of RAM, I’d have bought an apple laptop last week.

    7. 1

      I recently found out about set foldmethod=syntax and:

      • zM: reset fold level (by default, collapse everything)
      • zm: fold more things
      • zr: fold less things

      It is useful for reading long source code files.

    8. 38

      I use Never had a problem.

      1. 17

        I stopped using Gandi after their unprofessional response to their data loss incident in 2020:

        1. 6

          Yikes, that’s not a good look

        2. 6

          I’ve personally experienced GANDI becoming surreally rude and unhelpful when they’ve made a mistake.

      2. 4

        I still use Gandi for domain name, but moved away from using their web hosting service after the data loss incident few years ago.

      3. 3

        I love gandi, and use them for all my domains, but their lack of transfer lock for .fr for individuals, while they support it for their enterprise customers is a shame for a French company. (Even OVH, from which I moved away 5 years ago supported transfer lock for .fr for all customers)

        1. 2

          I also use them but I’m a bit scared by the fact that their DNS API has no fine-grained access control. I can’t give an ACME client the ability to create the required TXT records for a specific domain, I have to give it the ability to modify any DNS records for any domain that I own.

      4. -2


    9. 2

      I wonder if it is useful to have something like ToFile, so the following code block:

        f, err := os.Create(destPath)
        if err != nil {
          return err
        defer f.Close()
        return requests.

      can be written as:

        return requests.
      1. 2

        I avoided that because I didn’t want to impose my own choices about how the file should be written (atomically or not etc) and what permissions, but thinking about it more, maybe I should bite the bullet and do it.

        1. 2

          maybe I should bite the bullet and do it.

          I created a PR for it:

    10. 15

      You lost me at “the great work from homebrew”

      Ignoring UNIX security best practices of the last. I dunno, 30, 40 years, and then actively preventing people from using the tool in any fashion that might be more secure, and refusing to acknowledge any such concerns is hardly “great work”.

      I could go on about their abysmal dependency resolution logic, but really if the security shit show wasn’t enough to convince you, the other failings won’t either.

      But also - suggesting Apple ship a first party container management tool because “other solutions use a VM”, suggests that either you think a lot of people want macOS containers (I’m pretty sure they don’t) or that you don’t understand what a container is/how it works.

      The “WSL is great because now I don’t need a VM” is either ridiculously good sarcasm, or yet again, evidence that you don’t know how something works. (For those unaware, WSL2 is just a VM. Yes it’s prettied up to make it more seamless, but it’s a VM.).

      1. 23

        I don’t know what’s SO wrong about Homebrew that every time it’s mentioned someone has to come and say that it sucks.

        For the use case of a personal computer, Homebrew is great. The packages are simple, it’s possible and easy to install packages locally (I install mine in ~/.Homebrew) and all my dependencies are always up to date. What would a « proper » package manager do better than Homebrew that I care about? Be specific please because I have no idea what you’re talking about in terms of security « shit show » or « abysmal » dependency resolution.

        1. 12
          • A proper package manager wouldn’t allow unauthenticated installs into a global (from a $PATH perspective) location.
          • A proper package manager wouldn’t actively prevent the user from removing the “WTF DILIGAF” permissions Homebrew sets and requiring authenticated installs.
          • A proper package manager that has some form of “install binaries from source” would support and actively encourage building as an untrusted user, and requiring authentication to install.
          • A proper package manager would resolve dynamic dependencies at install time not at build time.
          • A proper open source community wouldn’t close down any conversation that dares to criticise their shit.
          1. 11

            Literally none of those things have ever had any impact on me after what, like a decade of using Homebrew? I’m sorry if you’ve run into problems in the past, but it’s never a good idea to project your experience onto an entire community of people. That way lies frustration.

            1. 5

              Who knew that people would have different experiences using software.

              it’s never a good idea to project your experience onto an entire community of people

              You should take your own advice. The things I stated are objective facts. I didn’t comment on how they will affect you as an individual, I stated what the core underlying issue is.

              1. 6

                You summarized your opinion on “proper” package managers and presented it as an authoritative standpoint. I don’t see objectiveness anywhere.

          2. 3

            I don’t really understand the fuss about point 1. The vast majority of developer machines are single user systems. If an attacker manages to get into the user account it barely matters if they can or cannot install packages since they can already read your bank passwords, SSH keys and so on. Mandatory relevant xkcd.

            Surely, having the package manager require root to install packages would be useful in many scenarios but most users of Homebrew rightfully don’t care.

        2. 8

          As an occasional Python developer, I dislike that Homebrew breaks old versions of Python, including old virtualenvs, when a new version comes out. I get that the system is designed to always get you the latest version of stuff and have it all work together, but in the case of Python, Node, Ruby, etc. it should really be designed that it gets you the latest point releases, but leaves the 3.X versions to be installed side by side, since too much breaks from 3.6 to 3.7 or whatever.

          1. 8

            In my opinion for languages that can break between minor releases you should use a version manager (python seems to have pyenv). That’s what I do with node: I use Homebrew to install nvm and I use nvm to manage my node versions. For Go in comparison I just use the latest version from Homebrew because I know their goal is retro compatibility.

            1. 5

              Yeah, I eventually switched to Pyenv, but like, why? Homebrew is a package manager. Pyenv is a package manager… just for Python. Why can’t homebrew just do this for me instead of requiring me to use another tool?

            2. 1

              Or you could use asdf for managing python and node.

          2. 7

            FWIW I treat Homebrew’s Python as a dependency for other apps installed via Homebrew. I avoid using it for my own projects. I can’t speak on behalf of Homebrew officially, but that’s generally how Homebrew treats the compilers and runtimes. That is, you can use what Homebrew installs if you’re willing to accept that Homebrew is a rolling package manager that strives always to be up-to-date with the latest releases.

            If you’re building software that needs to support a version of Python that is not Homebrew’s favored version, you’re best off using pyenv with brew install pyenv or a similar tool. Getting my teams at work off of brewed Python and onto pyenv-managed Python was a short work that’s saved a good bit of troubleshooting time.

            1. 2

              This is how I have started treating Homebrew as well, but I wish it were different and suitable for use as pyenv replacement.

            2. 2

              asdf is another decent option too.

          3. 5

            I’m a Python developer, and I use virtual environments, and I use Homebrew, and I understand how this could theoretically happen… yet I’ve literally never experienced it.

            it should really be designed that it gets you the latest point releases, but leaves the 3.X versions to be installed side by side, since too much breaks from 3.6 to 3.7 or whatever.

            Yep, that’s what it does. Install python@3.7 and you’ve got Python 3.7.x forever.

            1. 1

              Maybe I’m just holding it wrong. :-/

          4. 3

            I found this article helpful that was floating around a few months ago:

            I use macports btw where I have python 3.8, 3.9 and 3.10 installed side by side and it works reasonably well.

            For node I gave up (only need it for small things) and I use nvm now.

        3. 8

          Homebrew is decent, but Nix for Darwin is usually available. There are in-depth comparisons between them, but in ten words or less: atomic upgrade and rollback; also, reproducibility by default.

          1. 9

            And Apple causes tons of grief for the Nix team every macOS release. It would be nice if they stopped doing that.

            1. 2

              I stopped using Nix on macOS after it is required to create an separate unencrypted volume just for Nix. Fortunately, NixOS works great on VM.

              1. 2

                It seems to work on an encrypted volume now at least!

        4. 4

          I really really hate how homebrew never ask me for confirmation. If I run brew upgrade it just does it. I have zero control over it.

          I come from zypper and dnf, which are both great examples of really good UX. I guess if all you know is homebrew or .dmg files, homebrew is amazing. Compared to other package managers, it might even be worse than winget….

          1. 2

            If I run brew upgrade it just does it

            … yeah? Can we agree that this is a weird criticism or is it just me?

        5. 2

          Overall I like it a lot and I’m very grateful brew exists. It’s smooth sailing the vast majority of the time.

          The only downside I get is: upgrades are not perfectly reliable. I’ve seen it break software on upgrades, with nasty dynamic linker errors.

          Aside from that it works great. IME it works very reliably if I install all the applications I want in one go from a clean slate and then don’t poke brew again.

      2. 4

        you think a lot of people want macOS containers (I’m pretty sure they don’t)

        I would LOVE macOS containers! Right now, in order to run a build on a macOS in CI I have to accept whatever the machine I’m given has installed (and the version of the OS) and just hope that’s good enough, or I have to script a bunch of install / configuration stuff (and I still can’t change the OS version) that has to run every single time.

        Basically, I’d love to be able to use macOS containers in the exact same way I use Linux containers for CI.

        1. 1


          1. Headless macos would be wonderful
          2. Containers would be fantastic. Even without the docker-like incremental builds, something like FreeBSD jails or LXC containers would be very empowering for build environments, dev servers, etc
          1. 1

            Containers would be fantastic. Even without the docker-like incremental builds, something like FreeBSD jails or LXC containers would be very empowering for build environments, dev servers, etc

            These days, Docker (well, Moby) delegates to containerd for managing both isolation environments and image management.

            Docker originally used a union filesystem abstraction and tried to emulate that everywhere. Containerd provides a snapshot abstraction and tries to emulate that everywhere. This works a lot better because you can trivially implement snapshots with union mounts (each snapshot is a separate directory that you union mount on top of another one) but the converse is hard. APFS has ZFS-like snapshot support and so adding an APFS snapshotter to containerd is ‘just work’ - it doesn’t require anything else.

            If the OS provides a filesystem with snapshotting and a isolation mechanism then it’s relatively easy to add a containerd snapshotter and shim to use them (at least, in comparison with writing a container management system from scratch).

            Even without a shared-kernel virtualisation system, you could probably use xhyve[1] to run macOS VMs for each container. As far as I recall, the macOS EULA allows you to run as many macOS VMs on Apple hardware as you want.

            [1] xhyve is a port of FreeBSD’s bhyve to run on top of the XNU hypervisor framework, which is used by the Mac version of Docker to run Linux VMs.

      3. 2

        Ignoring which particular bits of Unix security practices is problematic? There are functionally no Macs in use today that are multi-user systems.

        1. 3

          All of my macs and my families macs are multi-user.

        2. 2

          The different services in OS are running as different users. It is in general good thing to run different services with minimal required privileges, different OS provided services run with different privileges, different Homebrew services run with different privileges, etc. So reducing the blast radius, even if there is only one human user is a pro, as there are often more users at once, just not all users are meatbags.

      4. 1

        I’ve been a homebrew user since my latest mac (2018) but my previous one (2011) I used macports, given you seem to have more of an understanding of what a package manager should do than I have, do you have any thoughts on macports?

        1. 4

          I believe MacPorts does a better job of things, but I can’t speak to it specifically, as I haven’t used it in a very long time.

          1. 1

            Thanks for the response, it does seem like it’s lost its popularity and I’m not quite sure why. I went with brew simply because it seemed to be what most articles/docs I looked at were using.

            1. 3

              I went with brew simply because it seemed to be what most articles/docs I looked at were using.

              Pretty much this reason. Homebrew came out when macports was still source-only installs and had some other subtle gotchas. Since then, those have been cleared up but homebrew had already snowballed into “it’s what my friends are all using”

              I will always install MP on every Mac I use, but I’ve known I’ve been in the minority for quite awhile.

              1. 1

                Do you find the number of packages to be comparable to brew? I don’t have a good enough reason to switch but would potentially use it again when I get another mac in the future.

                1. 3

                  I’ve usually been able to find something unless it’s extremely new, obscure, or has bulky dependencies like gtk/qt or specific versions of llvm/gcc. The other nice thing is that if the build is relatively standard, uses ‘configure’ or fits into an existing PortGroup, it’s usually pretty quick to whip up a local Portfile(which are TCL-based so it’s easy to copy a similar package config and modify to fit).

                  Disclaimer: I don’t work on web frontends so I usually don’t deal with node or JS/TS-specific tools.

                2. 3

                  On MacPorts vs Homebrew I usually blame popularity first and irrational fear of the term ‘Ports’ as in “BSD Ports System”, second. On the second cause, a lot of people just don’t seem to know that what started off as a way to have ‘configure; make; make install’ more maintainable across multiple machines has turned into a binary package creation system. I don’t anything about Homebrew so I can’t comment there.

    11. 4

      lib/pq: An early Postgres frontrunner in the Go ecosystem. It was good for its time and place, but has fallen behind, and is no longer actively maintained.

      Latest release was 6 days ago:, so it seems that it is still maintained.

      1. 6

        The README explicitly says:

        This package is currently in maintenance mode. For users that require new features or reliable resolution of reported bugs, we recommend using pgx which is under active development.

        1. 8

          “In maintenance mode” does not mean that it is not actively maintained.

          1. 5

            I would argue that the statement “Maintainers usually do not resolve reported issues” does mean it’s not actively maintained.

            That being said, this is probably getting into the semantics of what “actively maintained” means. For me, it means there’s active development and that reported issues will be resolved, neither of which seem to be the case for lib/pq at the moment.

    12. 1

      If you want to forward jist one applic5 you can do so by adding a line to your docker run command. I have a example here:

      1. 7

        Wait, is applic5 a typo? Or is it shorthand like i18n? If shorthand, did you just make it up? It seems like such an arbitrary spot to split it. Also why not just use “app”.

        Sorry for the 21 questions, but I just woke up and it seemed so funny and out of place to me.

        1. 2

          That was a typo indeed. On mobile, so probably didn’t notice the autocorrect failure. I do understand your confusion with i18n yes.

        2. 1

          I have never ever seen anyone use that word, so probably something @raymii made up :).

    13. 1

      I thought Gnome 40 was already considered stable. Why are new distro releases still shipping 3.x?

      1. 4

        Because Gnome 40 was released after Debian 11 features freeze.

        1. 3

          That’s right: bullseye soft freeze was February, GNOME 40 released in March.

          IMHO (as a Debian developer) we should have delayed the soft freeze and got 40 into bullseye, if there was sufficient confidence that 40 really was stable enough (we’d have had to evaluate that before 40 actually shipped)

          1. 1

            Does gnome not make it into back ports?

        2. 1

          FWIW (not much, I know!), I think that this is exactly the right approach to take. There’s always one more update, one more feature. If you are aiming for stable releases (and I think Debian should), then you gotta draw a line in the sand at some point.

          I love that Debian is run so well. I only wish more projects had a similar, healthy respect for stability.

    14. 2

      OP mentions GPU issues and that he was hoping avoid dealing with a proprietary driver. I wonder if he tried the proprietary driver in the end, though and if the issues went away.

      1. 4

        Likely his issues would be alleviated by running a newer (non-LTS) kernel with the appropriate drivers mainlined.

        I have never had a good experience with the AMD proprietary drivers.

        1. 2

          I always buy one-generation-older-than-current graphic cards for this reason. If something doesn’t work out of the box I’ll just return it for something else.

          1. 2

            That was my original plan, but I got greedy at the end and went the for a newer GPU from the current generation. I just assumed that with all the praise amdgpu was getting, this wouldn’t matter as it did in the past.

        2. 1

          I’ve been trying newer kernels over the course of several months, but they didn’t help either. Probably they fixed the problem by now, though.

      2. 2

        I tried the proprietary drivers as well, but they didn’t help. From what I gathered they are pretty close to the the FOSS drivers (both are developed by AMD themselves), so it’s not very likely that you’d get different results

    15. 2

      I use atool almost daily. It’s part of the reasons I can’t remember the correct syntax of tar/unzip/7z…

        1. 14

          Are we really going to judge how people choose to spend their spare time? We could be having this conversation on half the stories posted to Lobsters.

          1. 1

            Well, I ask this question on embedded interpreter projects too. If you’re not expecting an audience, then why even post the link?

            1. 9

              Your comments come off as pretty dismissive and judgemental. If you wanted to ask “what is the advantage of this?” or “what can I do with this that I can’t with regular Linux?” Then sure, those are perfectly reasonable questions.

              But your comments, to me at least, read more like “why would you even do this?” or “why are you wasting your time on this?”

            2. 2

              There is an expected audience. I’m here, reading about this persons project.

              I truly don’t get what you’re complaining about.

              If you want some practical applicability, you can consider this a way to use Linux while avoiding any GPLv3 code. That’s certainly practically useful for a bunch of commercial projects which aren’t too fond of the anti-tivoization clause. But even if there had been no such utility to it, having side projects is great, and posting about technical side projects is appropriate for

  1. 10

    This is great. I’ve been building it from source for a few weeks now and using the neovim-lspconfig settings for learning rust and developing in go.

    1. 4

      Me too, after reading the recently discussed post on 0.5 nightly! It was always bugging me how I was using coc.nvim with pure Vim (but didn’t want to switch just to use a 3rd party plugin). Also running Node wasn’t ideal. There is a Twitch release stream right now by the way!

      1. 3

        I skimmed through the record video and the tree-sitter demo is really cool.

  2. 9

    The trackpads are now too large.

    I can’t tell you how many times I’ve been in the middle of typing something when the trackpad decides that I really wanted the cursor to be a few lines up from where I just was. It’s a large and infuriating number.

    1. 1

      Yes, I had to disable Tap to Click functionality so that only real clicks are registered.

      1. 5

        Tap to Click is disabled by default, right?

  3. 4

    So, when and why we were attempted to migrate away from mardiadb? And to what database system?

    1. 14

      pushcx can provide a better summary but tl;dr when the site was moved off of prgmr, it was decided to use DO’s hosted MySQL offering. Unfortunately, it was slow and missing query optimizations.

  4. 2

    I’m not sure what is the advantage of Chezmoi over more powerful tools like Ansible, Saltstack. I take a look at the Quick Start guide and not really convinced.

    1. 7

      I think they are intended for different use cases. Chezmoi is about setting the user config, by copying the config files to the right places under $HOME, while Ansible and Saltstack are for configuring the whole OS.

      This is a matter of a personal preference, but one should never “program” in YAML to configure anything, even the OS :)

      1. 3

        Exactly this. Chezmoi is aimed at a much smaller problem than “whole system” configuration. In fact, I use ansible to set up my Chezmoi initial configuration when bringing up a new computer, so for me at least the two are complementary.