• 0 Posts
  • 257 Comments
Joined 5 years ago
cake
Cake day: May 31st, 2020

help-circle
  • Ah, so you’ve scripted a whole bunch of stuff with YUM. Then you automatically have the downside that switching over could incur hours of work.

    As much as the software developer in me wants to encourage you to use DNF (or an abstraction like pkcon) for newer scripts, in case they want to remove YUM one day, I get not wanting to deal with two separate tools.

    In my head, switching over was trivial, i.e. just typing D, N, F instead of Y, U, M, because that was my experience when I switched over way back when I was still a freshly hatched penguin.


  • I’ve always liked Zypper (and if I remember correctly, DNF was also fine), purely because it feels sane in everything it does.

    We love to make a religion out of them, but a package manager is ultimately just a secondary tool. It installs other tools, which are what you’re actually interested in using.
    So, I shouldn’t need to learn a scramble of letters to achieve that. I shouldn’t need to think about refreshing the repository listing. The less I need to worry about instructing the package manager, the better.








  • Yeah, I’m not saying that the term is well-defined or that some usages of the word don’t typically refer to classical algorithms after all.

    And yes, obviously even the currently trending meaning of what “AI” might mean, i.e. generative AI, still involves lots of algorithms, for training, for executing the model, and tons of auxilliary scripts that ideally take over all tasks as soon as the statistical model has decided what to do.

    And yes, maybe non-techies really just don’t care. My post wasn’t supposed to be snide commentary on that. It was more just an “oh fuck, there’s folks that hand out bags of money solely based on whether a program uses a butthole as a logo and says that it’s thinking for its loading times”.





  • A rebase rewrites the history of your branch, so that it’s as if you just branched off and then coded all your changes in one sitting.

    It will go through each of your commits and try to apply them one after another. If something changed on the base branch that conflicts with your changes, it will prompt you to adjust your commit. You adjust it so that looks as if you just coded it on top of the base branch.

    When you have lots of commits on your branch, this can mean that while you’re rebasing, you have to then also change your following commits which happened to touch the same lines as a previous commit. This can mean additional, stupid work.

    As such, a workflow using rebases (“trunk-based workflow”) works best, if you can rebase often and merge back early. You won’t get merge conflicts when merging back, nor merge commits, because you resolved these while rebasing.

    In particular in smaller teams where you have tight-knit communication, this workflow is absolutely stellar. It completely bypasses so many pain points that folks have with Git.
    Merge conflicts are significantly reduced when you merge often and a trunk-based workflow removes the ceremony that typically prevents teams from doing just that.


  • In a less extreme sense, I find there’s also an inverse relationship between skill and marketing effort, because:

    • Marketing activities take time away from honing your skills. Even if you “just” (in very fucking big air quotes) build something useful that you release as open-source, you’ll still spend time answering user questions, reviewing PRs, writing documentation, ensuring backward compatibility etc…
      These are also useful skills, but they still prevent you from exercising your coding skills.

    • The most popular platforms for marketing yourself are also the most rapey platforms. People with high technical skill will be aware of this. The most privileged of them may not need to care.
      But those that worked their asses off, because they had to start from an unprivileged position, those need to care. Because they will be disadvantaged and harassed, when people see that they’re from a minority or women.
      You miss out on those with the highest work drive. You miss out on skills that people build when they need to protect their privacy. And you miss out on a culturally rich workforce and get a fragile monoculture instead.



  • Ah, I guess that makes sense. Kate automatically detects available LSP server executables but then prompts you before starting them for the first time, in case you did not install that and it’s malware, or I guess, in case you just placed a script there which happened to be called the same, but would be very bad to run.

    Neovim could theoretically do that, too, but then you need a way to block executables, so that it stops prompting you every time, which you’d probably want in a separate config file.
    So, it’s definitely a simpler solution and perhaps moreso what one would expect from a TUI editor, for you to just list the ones to run in the config file.




  • Personally, I find Kate is decent enough for most coding tasks. It does not have an open plugin ecosystem, so I guess, maybe it wouldn’t work for you. But aside from plugins, whenever I see people using VS Code/-ium, I wonder why they keep raving about it.

    It just looks like a bogstandard editor with LSP support to me. And Microsoft may have gotten that LSP ball rolling, but it’s supported in lots of editors now…


  • I prefer if-expressions where possible. For example, this is valid Rust:

    let x = if is_y {
        y
    } else {
        z
    };
    

    (Can also be on a single line.)

    This is the same syntax as the normal if-statement, except the compiler forces you to add an else-branch, if you want to ‘return’ a value from it.

    Don’t tell anyone, but the ternary operator is when the C designers realized that being purely procedural is cumbersome AF. 🙃
    Unfortunately, they decided that expressions need to look like math, so now JS devs get to write random question marks and colons across many, deeply nested lines of code.