• 20 Posts
  • 987 Comments
Joined 6 年前
cake
Cake day: 2020年5月31日

help-circle
  • From what I just read about pacstrap, I think so, yeah, but you can control many more things, like for example you can configure KDE to use wobbly windows¹.

    But it’s also declarative, rather than just a script.
    If you do configure wobbly windows this way, it doesn’t just do a find & replace on the respective KWin config file, but rather it generates the entire KWin config file anew, with all the values you defined in your NixOS config + whatever defaults may be needed.

    This has the big advantage that it doesn’t depend on whatever is currently on disk. It will just make your system match your NixOS configuration in any case.
    Disadvantage is that any other KWin settings need to live in your NixOS config from now on, too, i.e. you can’t use the graphical settings anymore or they will be overridden on the next nixos-rebuild switch.

    Well, and there’s other disadvantages to NixOS, like it not using the standard Unix folder structure (FHS), so some programs have problems with that, and that there’s at least two different ways to do anything, so it’s difficult to find straightforward documentation.

    But yeah, if you can push past the pain of learning it and configuring everything initially, it does then work quite nicely.


    ¹) Requires Home-Manager and Plasma-Manager, and then this line in your Home-Manager config:

    programs.plasma.kwin.effects.wobblyWindows.enable = true;
    


  • A colleague was gushing about NixOS and so I gave it a shot, too. Eventually, I was wondering how to best configure something and he just told me I can look in his Git repo.

    This happened two more times until half a year later, I saw that he was now also using Starship for the terminal prompt. So, I asked what made him switch and his response was basically “Star-what?”.

    That’s how I found out that he just copied someone else’s configuration and pretty much left it at that. He was pointing me to his repo, because he genuinely had no idea where to even start configuring these things.

    Like, yeah, technically it’s documented somewhere in that repo how to configure that. But I assumed, it would be obvious, if I see the code, because why else would he tell me to look there…? 🫠



  • I guess, it can select the wrong song, if:

    • the correct song doesn’t have its acoustic fingerprint in the MusicBrainz database (otherwise it would be the closest match), and
    • another song has a similar enough acoustic fingerprint, above a threshold that you can configure in the Picard settings.

    I assume, it has to be a threshold, because you might have slight variations for the same song/recording, like silence at the end trimmed or volume normalized or whatever.

    And yeah, Picard’s UI is certainly a bit of a hurdle. Conveying information for so many changes is definitely not easy, so I don’t want to complain.
    But you know, if it would have detected that some of my songs will get renamed not just with a few capitalization fixes, but rather completely different words, and it would have prompted me for those, then I wouldn’t have misnamed songs now…



  • Yeah, at some point, I told Picard to just re-sort everything and that was not a good idea. Some songs got renamed or put under a different artist, because I guess, the actual song is not in the MusicBrainz database.
    I do have a backup that I should restore actually, but yeah, difficult to notice such changes and especially to know how much damage was done.

    I did also figure, I should just add the unknown songs into MusicBrainz, but boy, I added one album and that took more than half an hour…

    Definitely leaning more and more towards that unsorted life…



  • If you’re an end user, not a build tool, you’d rather want to place that in .git/info/exclude inside the repo. It’s effectively another gitignore file, which won’t be committed.

    But if you do need something like this for a build tool, then yeah, you can create a file /test/.gitignore with these contents:

    real-person-first-last.json
    .gitignore
    

    Then running git add . just adds /test/fake-person-first-last.json.

    Both /test/.gitignore and /test/real-person-first-last.json would be ignored right away.


  • Well, if you’re the build tool that creates that build-folder, then it just means you don’t need to bother your user with adding it to the root gitignore.

    One time, I implemented it for basically a repo-specific download cache folder. Ideally, my users don’t need to know of that folder at all.

    Or recently, I implemented it for a build tool where my users might not be devs. They might not use Git at all, or not be very adept at it, so I’m glad to not need to document it…


  • Had a quick playaround with it:

    • Yes, that does prevent gitignore files from being committed.
    • It does not prevent locally-created gitignore files from being applied.

    But I’d say the latter is overall a good thing, as some build tools will do a echo "*" > build/.gitignore to have their build-folder add itself to the ignore-list.




  • A few weeks ago, a colleague was struggling with some CSS layouting issue, so I figured I’d play the rubber duck and have her explain it to me.

    Basically, she needed to display a letter slightly off-center in a table cell.
    So, my first question was: How is that table implemented? With CSS Grid?

    And, oh no, every table cell was a dozen divs in a trenchcoat. I’m not fucking surprised that they have layout problems.

    Apparently, it’s some internal UI framework that they have to use. Just sounded like hell to me.







  • Well, they would typically have a system prompt (like an invisible chat message that’s sent to the LLM at the start of the conversation), where it would tell the LLM something like “You’re a helpful chatbot. Talk cheerfully and use 🩵 all the time.”

    And in that system prompt, you can also give it instructions to only answer certain questions. But it really is like a chat message, in that it just as well might ignore those instructions when another chat message asks it to.

    OP chose the formulation “Before I subscribe to a creator, …” which might be necessary here to get it to answer, as it might have been told to only help with creator subscriptions, but then the formulation implies that by answering this question, it is helping the user to subscribe. That’s called a prompt injection.

    If you can find a prompt injection, then yes, you can do this with any chatbot.
    Although they might still not be as useful as a dedicated tool, since they likely can’t do tool calls, like web searches or running the compiler.