• 25 Posts
  • 108 Comments
Joined 1 year ago
cake
Cake day: June 26th, 2023

help-circle



  • BitSound@lemmy.worldtoLinux@lemmy.mlIdiomatic awk
    link
    fedilink
    arrow-up
    9
    arrow-down
    1
    ·
    1 month ago

    Does anyone here actually use awk for more than trivial operations? If I ever have to have to consider writing anything substantial with bash/awk/sed/etc, I just start writing a Python script. No hate to the classic tools, but Python is just really nice.
















  • BitSound@lemmy.worldtoLinux@lemmy.mlThe Dislike to Ubuntu
    link
    fedilink
    arrow-up
    12
    arrow-down
    1
    ·
    edit-2
    2 months ago

    Canonical lives and dies by the BDFL model. It allowed them to do some great work early on in popularizing Linux with lots of polish. Canonical still does good work when forced to externally, like contributing upstream. The model falters when they have their own sandbox to play in, because the BDFL model means that any internal feedback like “actually this kind of sucks” just gets brushed aside. It doesn’t help that the BDFL in this case is the CEO, founder, and funder of the company and paying everyone working there. People generally don’t like to risk their job to say the emperor has no clothes and all that, it’s easier to just shrug your shoulders and let the internet do that for you.

    Here are good examples of when the internal feedback failed and the whole internet had to chime in and say that the hiring process did indeed suck:

    https://news.ycombinator.com/item?id=31426558

    https://news.ycombinator.com/item?id=37059857

    “markshuttle” in those threads is the owner/founder/CEO.




  • For your bullet points:

    • Yeah, GNOME can be flakey with extensions. Almost no regular users will install extensions though. Windows also has tons of bugs and issues that users just ignore because it’s the “default”
    • Regular users won’t care about desktop scaling. I’ve seen people using the blurriest, weirdest aspect ratios on Windows because they liked it that way
    • Bluetooth sucks on all hardware and with all software, to various degrees.
    • Syncing files is trivial with Syncthing
    • MacOS keeps breaking my coworker’s setups with every update.

    GPU issues can be hard, but that’s not really Linux’s fault. There’s a reason this image exists of Linus giving nvidia the middle finger:

    That being said, it’s getting better. As of this year, nvidia has started putting some real effort into making things work with wayland.

    EDIT: I’ve found nirvana with NixOS, speaking of GPU drivers. I just add a few lines to /etc/nixos/configuration.nix and it goes off and ensures that the nvidia drivers are present. I also run lots of CUDA stuff on top of that and it all works about as seamlessly as possible.






  • For a direct replacement, you might want to consider enums, for something like

    enum Strategy {
        Foo,
        Bar,
    }
    

    That’s going to be a lot more ergonomic than shuffling trait objects around, you can do stuff like:

    fn execute(strategy: Strategy) {
        match strategy {
            Strategy::Foo => { ... }
            Strategy::Bar => { ... }
    }
    

    If you have known set of strategy that isn’t extensible, enums are good. If you want the ability for third party code to add new strategies, the boxed trait object approach works. Consider also the simplest approach of just having functions like this:

    fn execute_foo() { ... }
    fn execute_bar() { ... }
    

    Sometimes, Rust encourages not trying to be too clever, like having get vs get_mut and not trying to abstract over the mutability.



  • Unfortunately there isn’t one easy source that I’ve found. This is based on reading the stuff you linked to, as well as discourse/matrix discussions linked to from those sources. I compare it mentally to Guido van Rossum as BDFL of Python (though not any longer). He did a much better job of communicating expectations, like here

    It made some people unhappy that there was no Python 2.8, but everybody knew what was happening. The core Python team also wasn’t surprised by that announcement, unlike with stuff like Anduril or flakes for the nix devs.

    There was also a failure to communicate with stuff like the PR that would switch to Meson. The PR author should have known if Eelco broadly agreed with it before opening it. If there was a process that the PR author just ignored, the PR should have been closed with “Follow this process and try again”. That process can be as simple as “See if Eelco likes it”, since he was BDFL, but the process needs to be very clear to everyone.



  • My take on it is that the creator of Nix was very good technically but was not a good BDFL, and that was the root of the problem. He didn’t do a good job of politicking, stepped down, and now Nix is going through a bit of interregnum. I don’t think it’s likely to fail overall though, nixpkgs is too valuable of a resource to just get abandoned. I expect the board seats will be filled by people that know how to politick, and things will continue on after that.

    Lessons learned is being a BDFL is hard. IMO Eelco Dolstra failed because he had opinions about things like Anduril sponsorship and flakes, and didn’t just declare “This is the way things are going to be, take it or leave it”. People got really pissed off because there wasn’t a clear message or transparency, which resulted in lots of guessing.