Threads for winter

    1. 31

      Literally clearing my mental space to propose to my future wife; let’s hope she says yes.

      Other than that, finishing a few books I had ([1], [2], [3], [4]) in my queue and trying to focus on what matters: myself and others around me

      [1] Genius Makers [2] The Geek Leadership Handbook [3] The Structure of the Mind [4] Why Greatness Cannot Be Planned

      1. 3

        Congratulations!

      2. 3

        Good luck :)

      3. 3

        Wish you the best of luck and courage man!

      4. 2

        Good luck!

    2. 3

      The “reply to opt out” relicensing scheme is not something I’ve seen before – I’ve only ever seen “reply to opt in” relicensing, where maintainers wait for all contributors to explicitly OK it.

      I wonder if something like this would actually hold up from a legal standpoint.

      1. 1

        I wonder if something like this would actually hold up from a legal standpoint.

        As noted in the RFC discussion, this would by no means be “OK”-ed by any lawyer as there is ample opportunity to litigate if you really wanted too.

        What we are doing is hinging a bet on most of this work not being copyrightable, along with contributors being reasonable about their contributions. If this is not the case people have ample opportunity to invoke their copyright and we would spend the required effort to fix the copyright infringement. We consider this a better balance on risk versus protecting maintainer time and effort.

        I also doubt anyone would seriously litigate against package files, which has been remixed, rewritten, translated, borrowed and utilized across multiple distros over 20 decades.

        Another example which does what you mentioned, was when we realized our developer tooling had no license and we had to fetch approval from all past contributors.

        https://github.com/archlinux/devtools/pull/62

    3. 4

      I’m now jobless as last week (“yay”), so trying to figure things out. I saw the writing on the wall for a while, and luckily got ahead of sending in some applications, so hopefully I’ll have better news in the next few weeks.

      Will be nice to have more time to review PRs and such, at least.

      I might try to hack on Bluesky support for Lobsters.

      1. 2

        Voluntary or no? Either way I sympathize. In that boat right now. Good luck out there o7

        1. 2

          Involuntary I’m afraid :(

          Good luck to you too! Hopefully we’ll both have better news soon! :)

      2. 1

        Good luck with your applications!

    4. 2

      I’m sorry if that is off-topic, but what does GtS gain from having a WASM-based sqlite driver?

      1. 2

        Not needing a C compiler on your build machine + not having the (infrequent, to be fair) hideously long build times you get when using mattn/go-sqlite3.

        1. 2

          Thanks, I think you’re right and that cgo is the main reason to skip mattn/go-sqlite3 in some contexts. :)

          On the other hand, modernc.org/sqlite is advertised as a “cgo-free” sqlite driver, so if “no-cgo” was the goal, maybe GtS could have used this instead of mattn’s driver. I would understand the need for WASM if it improved performance over the others, but this article seems to contradict that idea a bit (at least regarding memory, these numbers look very weird).

          So I’m still confused, sorry. Maybe I need more caffeine. :)

          1. 2

            My understanding was that GtS does use modernc’s sqlite, and this is why it’s broken on OpenBSD (for now?).

    5. 10

      Frustrating to read to the end of this “introduction” without any idea of what this text format looks like. In the end, it’s just a page on a web site built by a tool we can’t see yet? This feels premature to be posting it.

      Side note: you may want to rethink “dtf” as your file extension.

      1. 7

        The dtf file extension seems intentional, judging by the second email listed there.

      2. 4

        I found a “view source” link at the bottom of the page. So this is what it looks like. Wish the article about their markup language had side-by-side comparisons, though; I kept tabbing back and forth between the article and source pages.

      3. 1

        The Lobsters poster likely is not the author, FWIW.

    6. 25

      Flagged off-topic; this is internal community management stuff, which is a bit off-topic I believe. I also suspect it’ll cause discussion here that generates more heat than light.

      1. 6

        I haven’t followed the various nix stories much beyond skimming what’s been posted here, but this is anodyne process stuff that follows pretty naturally from those. I don’t take it as trying to brigade the project. I don’t like the heckler’s veto and I’m definitely not going to preemptively give in to it.

        1. 4

          For what it’s worth, my main reason for flagging is that the voting itself is limited to only a portion of the readership here, though I suppose the election process and automation itself may be of interest to onlookers; perhaps I was wrong to flag.

    7. 2

      How is this Nix related?

      1. 4

        Apologies, couldn’t find anything related to package mangers, and the nix tag had package manager, distribution, and related systems like guix.

        This is my first submission, So I should have been more careful. I have edited and removed the tag, Thanks!

        1. 4

          Indeed; I think that’s meant to mean “[Nix] package manager, [NixOS] distribution, and related systems like guix.” Not necessarily super clear.

    8. 8

      Off-topic(-ish), but the various pages on the author’s website are delightfully styled. It’s so nice to see.

    9. 2

      For a while I used proxmox but I ended up always having trouble every time it was upgraded. So I simply moved over to Alpine with libvirt and qemu and I’ve never looked back. Upgrades are very simple. Just change a simple line in my file and APK upgrade minus minus available. It works really well. I spend very little time on it and it just runs and automatically patches itself. I will admit that I really prefer wholesale internet for most of my remote stuff. They’re cheap and have excellent service. If you are not us-based you might not like them because they are in Kansas. I’ve been thinking about using incus instead, but that’s a project for a different year. I’d rather be out biking on trike recumbent.

      1. 1

        wholesale internet

        Oh, they look potentially neat– ahahaha wow I used to work in a datacenter literally a few blocks away from them. Kansas City is one of the big east-west network arteries in the US, if what I’ve been told is true, so it’s a good place for networking infrastructure.

      2. 1

        I’m surprised I’ve never heard of WholeSaleInternet until now – will definitely keep in mind the next time I need a remote server, thank you!

    10. 10

      Editing the 6 parts of my Kubernetes installation notes into a giant article for you all to enjoy. I suffered so you can read!

      1. 2

        Very excited to read this, as someone who has never touched Kubernetes in their life.

    11. 1

      For folks already into pkgsrc (please note hat and sprinkle grains of salt accordingly), it’s pretty easy to bootstrap multiple prefixes and give each its own Python. For a solo project I might just do that. For team projects, I’d probably want us to converge on asdf or mise wherever possible (and I maintain pkgsrc’s packages of both).

      1. 1

        it’s pretty easy to bootstrap multiple prefixes and give each its own Python

        Out of curiosity, what does that look like?

        1. 2

          Something like so:

          $ ./bootstrap --unprivileged ~/pkg/ancient-project
          $ oldpath="$PATH"
          $ PATH="~/pkg/ancient-project/bin:~/pkg/ancient-project/sbin:$PATH"
          $ cd ../lang/python27 && bmake install
          $ # also install anything else needed for ancient-project
          $ PATH="$oldpath"
          $ ./bootstrap --unprivileged ~/pkg/recent-project
          $ oldpath="$PATH"
          $ PATH="~/pkg/recent-project/bin:~/pkg/recent-project/sbin:$PATH"
          $ cd ../lang/python312 && bmake install
          $ # also install anything else needed for recent-project
          $ PATH="$oldpath"
          

          Then when you’re working on one of these projects, set PATH accordingly, maybe with direnv. (Assuming a non-project-specific general-purpose pkgsrc installation already in $PATH, install direnv in it.)

    12. 13

      I definitely dislike the format Lennart has chosen for announcing these changes. Due to Mastodon’s character limit, each installment is spread over several posts. Reading the whole set of posts is truly a hassle.

      1. 5

        Due to Mastodon’s character limit

        It would be better if he was using an instance with a higher character limit – I’m pretty sure most (excluding mastodon.social) set a much higher one.

    13. 10

      Shame that it seemingly hasn’t been developed for 8 months, it looks really neat.

    14. 5

      The most fascinating thing to me is that for something apparently launched in 2024 they still unambiguously use @… to only mean x/twitter and not link the account, while claiming “for developers”.

      Not that I want to derail this into another Twitter vs Fediverse thread, but I’m still very surprised as my bubble has completely moved on.

      1. 5

        But that’s just it: it’s obviously just your bubble, right? To contextualize things, Mastodon is 100x smaller than Threads

      2. 2

        and not link the account

        It links to Twitter for me.

        1. 1

          Archive.org shows it linking to Twitter in all recent grabs; maybe the lack of underline/hover effects caused confusion.

          edit: actually, wink might’ve been referring to the links on the faq page. The “readme” (/about) page’s @mentions do, though. It all feels very … something.

          1. 2

            Yeah I didn’t pay attention where - but I noticed it. I think the people had their accounts linked, but not the org/company.

    15. 5

      Looks nice and clean. Is it free software? Can I use it for indexing and searching my own documentation and host it myself?

      1. 9

        I’d love to see the source just for a good example of proper use of PostgreSQL for full-text indexing! I haven’t seen an application that does full-text indexing/search so well, and so quickly, in a very long time. I have a feeling that, even if it’s got some of the usual small hacks that personal projects sometimes have, this is the kind of source code that aspiring developers would find extremely rewarding to read and understand.

      2. 6

        Thank you! Unfortunately not, it’s more of a 48 hour hack that is too ugly and way too tailored for the OpenBSD manual pages. I hope to be able to release it in a somewhat near future though, when most of the ugly stuff is sorted.

        1. 29

          Release the ugly software!

          I don’t think it’s ever too early to release the code - put a big warning notice on the README that it’s all a big hack and ship it anyway.

          The value for me would be seeing what hacky tricks you used to get it to work. I couldn’t care less if it’s not polished yet.

          1. 5

            Agreed, and some of the fun lies in letting other people find cool ways to remove the hacky stuff (if you want to accept contributions).

      3. 4

        I had done a hack as well for manpages with sqlite https://lobste.rs/s/t7tuej/epilys_buke_toy_manpage_full_text_search

        Feel free to play with it, since it’s free software.

    16. 15

      Golang and Nix/NixOS.

      Golang I don’t really like overall. Don’t get me wrong, I see great utility, but the simplicity is both limiting and freeing. Unfortunately I seem to mostly feel the limiting aspects.

      NixOS and Nix, though, feel absolutely game-changing.

      1. 3

        Nice,

        Out of curiosity what’s so special about Nix and NixOS.

        I’m just a noob wanting to learn more about it

        1. 2

          It’s a better docker than docker, a better docker compose than docker compose, a better way of organizing and provisioning systems (amazing for network appliances), and it skips the entire dependency hell that has become the norm in a lot of ecoystems by just bundling up everything.

          There’s a lot more–https in like two config lines w/ Nginx and Let’s Encrypt–but you can discover that on your own.

        2. 2

          I probably won’t be able to do it justice with a comment from my phone 😕

          But you can Google around! For me, it’s reproducibility, configuration management, and an incredible package ecosystem all in one. This coincidentally makes it incredible for development environments and tooling.

          So… Pretty much everything related to software. 🙃

        3. 1

          here are a few of the things i’d like to set up for myself w/ NixOS this year:

          • nearly-zero-touch OS installation w/ ZFS partition management for a new home server
          • OS takeover for x86 & ARM VPSes (e.g. Hetzner), with the ability to construct custom partitioning as above
          • Equinix metal provisioning automation so i can do all of the above but for bare spot instances

          all of these will recycle common pieces of configuration so each system can be administered in a similar manner.

          they will also be managed “declaratively” and as close to statelessly as possible so remote systems can be scaled to zero when not in use.

          because Nix makes it so easy to manipulate the packages it uses at all of these stages, all software involved can be upgraded, downgraded, or arbitrarily patched.

          in addition to the above, Nix can be used to construct and run OCI images so this rube goldberg machine can also be used to build, deploy, and orchestrate containerized applications.

          it’s sort of an absurd force multiplier for computer infrastructure; not only can individual contributors do more, it’s more portable & less expensive than the managed solutions cloud providers offer to accomplish similar goals.

      2. 2

        funny enough i yesterday itself shifted to nixos, was looking through it since somedays. really amazed by how it handles everything, but still is able to mess up some basic things. which is your current distro?

        1. 2

          but still is able to mess up some basic things

          Can you be a bit more specific? Happy to see why these are issues (if there is a why).

        2. 1

          I came from Arch Linux. I’ve been on NixOS for a few months now I think.

          What basic things has it messed up on your end?

    17. 23

      given the recent news about vultr, i’d suggest shopping for a different VPS provider.

      for context, this was recently added to the vultr service agreement:

      You hereby grant to Vultr a non-exclusive, perpetual, irrevocable, royalty-free, fully paid-up, worldwide license (including the right to sublicense through multiple tiers) to use, reproduce, process, adapt, publicly perform, publicly display, modify, prepare derivative works, publish, transmit and distribute each of your User Content, or any portion thereof, in any form, medium or distribution method now known or hereafter existing, known or developed, and otherwise use and commercialize the User Content in any way that Vultr deems appropriate, without any further consent, notice and/or compensation to you or to any third parties, for purposes of providing the Services to you.

      tl;dr: vultr will harvest your data and sell it to AI companies, probably.

      1. 15

        Necessary additional context – this was the terms of service for their forum. They have now forked the TOS for their VPS business and removed those particular sections there.

      2. 10

        Came here to say this. It’s even worse than that, because they also added a clause earlier that said that you implicitly agree to automatically accept future changes to the agreement, or something like that (use of the service implies consent to any changes in the agreement that they have done up to that point).

        p.s. it’s not like the site name didn’t warn you that they were going to eat your body or something equally sinister …

      3. 4

        Further FWIW, that section appears to be gone as of yesterday/today (see section 12, User Content, part 1, Content; it used to be tacked onto the end of paragraph (a).)

    18. 15

      Becoming more downstream agnostic, removing e.g. example systemd or upstart services

      Seems like an odd change to me, I don’t see why having example service files around is necessarily a bad thing. (Maybe it’s because Redis’ invocation is so simple?)

      1. 5

        Yeah that one seems odd for things like capabilities for instance. Who’s more aware of the category of syscalls used by its application than the developers?

      2. 6

        Drew DeVault loves removing functionality from things even if people like it, usually because the thing is so simple it didn’t need that functionality, or if there’s a simpler alternative to having that functionality. For all his flaws he’s written some good work on this subject, but he does take it too far (see Hare). Most people just want to type <install> redis and subsequently use redis, though, so I hope it doesn’t catch on.

    19. 1

      (Meta-ish note: does this really fit under Java?)

      1. 3

        There is a note that the glicko system was rewritten from Java to Scala and that some JVM settings fixed some performance issues. Hard to say whether or not that counts.

        The issue is that people use tags for two competing use cases: filter out content and filter for content. The people who don’t want any JVM content might appreciate the tag. The people who want Java content might be annoyed by it.

        Last I heard, it sounded like filtering out content was more common so this might be okay.

      2. 1

        If you count JVM as Java.

    20. 1

      Doing [runtime detection] correctly is very hard and something I don’t particularly want to dig deeply into here.

      It’s kinda not that hard, especially not in Rust which gives you #[target_feature(..)] and std::arch macros (sadly doesn’t make it easy to use ifuncs instead of if statements but oh well the benefit from rtld-time resolution shouldn’t be that big performance wise)

      1. 1

        sadly doesn’t make it easy to use ifuncs instead of if statements

        There is ifunky. The much more widely used memchr does something similar, though I suppose that doesn’t count as easy.

        1. 1

          “without the need for loader support” yeah those aren’t really it either.

      2. 1

        Don’t you use cfg_feature_enabled for runtime feature detection, and target_feature for compile-time feature detection?