𝕽𝖚𝖆𝖎𝖉𝖍𝖗𝖎𝖌𝖍

       🅸 🅰🅼 🆃🅷🅴 🅻🅰🆆. 
 𝕽𝖚𝖆𝖎𝖉𝖍𝖗𝖎𝖌𝖍 𝖋𝖊𝖆𝖙𝖍𝖊𝖗𝖘𝖙𝖔𝖓𝖊𝖍𝖆𝖚𝖌𝖍 

Ceterum Lemmi necessitates reactiones

  • 7 Posts
  • 826 Comments
Joined 3 years ago
cake
Cake day: August 26th, 2022

help-circle
  • IME, beyond the install, it’s all distro- and desktop-specific.

    • How to find and install apps varies from distro to distro. IIRC, the Mint menu item is something obvious, like “Install software”, but on Arch (you’d have to hate your newbie to throw them into Arch), it requires a chicken/egg finding and installing a graphical installer. If you know the distro, this would be good information - or if you’re helping with the install, create a desktop launcher.
    • Showing them where settings are. Surprising to me, this has been super-not-obvious to my newbs. Even though the KDE Settings app is called “settings”, I think Windows and Mac folks are used to looking for settings in a specific place, rather than an app name - and in Windows, there’s can be several ways to get up different settings, like changing display stuff is always in a weird place. Again, maybe a desktop or panel shortcut would help.
    • One of my newbs used Mint for two years without opening a shell, so I don’t think that’s an issue. He even found and installed a piece of software he wanted, but I can’t remember if I originally showed him how to the first time. But that’s Mint. He did, however, need help setting up a printer, but that’s because he couldn’t find the settings program; he came from Windows originally.
    • Edge cases, like printers and other peripherals, can be hard, and I don’t think any amount of extra documentation is going to help, because almost every difficulty is practically unique. There’s a ton of online help for stuff like that already. And then, if they want to, eg, attach a game controller… well, that’s very specific and again varies by controller. I don’t think you can cover all of these edge cases.
    • Games can be hard only because of the indirection of having to install some other software, like Proton or Steam, creating an account, knowing how to check for compatability - there’s a lot of moving parts. It’s not just: go to the game’s web site, buy, download, and install something and run it, like I imagine it is on Windows. So maybe that would be useful - or - again - pre-installing one of the game stores and (surprise) making a shortcut would eliminate that.
    • Network connections. Again, I always find figuring out how to get to network configuration in Windows to be hard, and bizarrely having multiple ways of accomplishing the same task, so I’d guess going the other direction would be confusing. Having a note about how to get to the configuration would be handy.

    As I think about it, I realize that configuration under KDE of way more encapsulated and clear than on Windows, and people having learned the byzantine and myriad ways of Windows, KDE’s relative simplicity is confusing. Windows people look for configurations in places they’ve learned to look, which aren’t always where they are under KDE (I can’t speak much about Gnome - I don’t use it or set people up with it). MacOS isn’t as bad, having a similar configure-everything-through-a-single-settings-program approach.

    Anyway, that’s my experience.







  • If that’s the only error mechanism, sure. Exceptions in most languages tend to be relatively expensive, though, and most have a cheaper idiomatic way of returning error codes; you’d want to use those if they’re available, right?

    Does Rust use exceptions a lot? I don’t know. V has panic and catch, but you almost never see them. Idiomatic is Option (?) and Return (!) values, which I thought V borrowed from Rust. Go does the (val, error) tuple-ish return thing, and while it too has catchable panics, they’re discouraged in favor of (error) return values.

    Depends on the language. “Higher level” is a pretty broad field!





  • My recommendation is to put all of the variables in an environment file, and use systemd’s EnvironmentFile (in [Service] to point to it.

    One of my backup service files (I back up to disks and cloud) looks like this:

    [Unit]
    Description=Backup to MyUsbDrive
    Requires=media-MyUsbDrive.mount
    After=media-MyUsbDrive.mount
    
    [Service]
    EnvironmentFile=/etc/backup/environment
    Type=simple
    ExecStart=/usr/bin/restic backup --tag=prefailure-2 --files-from ${FILES} --exclude-file ${EXCLUDES} --one-file-system
    
    [Install]
    WantedBy=multi-user.timer
    

    FILES is a file containing files and directories to be backed up, and is defined in the environment file; so is EXCLUDES, but you could simply point restic at the directory you want to back up instead.

    My environment file looks essentially like

    RESTIC_REPOSITORY=/mnt/MyUsbDrive/backup
    RESTIC_PASSWORD=blahblahblah
    KEEP_DAILY=7
    KEEP_MONTHLY=3
    KEEP_YEARLY=2
    EXCLUDES=/etc/backup/excludes
    FILES=/etc/backup/files
    

    If you’re having trouble, start by looking at how you’re passing in the password, and whether it’s quoted properly. It’s been a couple of years since I had this issue, but at one point I know I had spaces in a passphrase and had quoted the variable, and the quotes were getting passed in verbatim.

    My VPS backups are more complex and get their passwords from a keystore, but for my desktop I keep it simple.





  • Yeah, for me it’s more that just “produces correct output.” I don’t expect to see 5 pages of sequential if-statements (which, ironically, is pretty close to LLM’s internal designs), but also no unnessesary nested loops. “Correct” means producing the right results, but also not having O(n²) (or worse) when it’s avoidable.

    The thing that puts me off most, though, is how it usually expands code for clarified requirements in the worst possible way. Like, you start with simple specs and make consecutive clarifications, and the code gets worse. And if you ask it to refactor it to be cleaner, it’ll often refactor the Code to look better, but it’ll no longer produce the correct output.

    Several times I’ve asked it for code in a language where I don’t know the libraries well, and it’ll give me code using functions that don’t exist. And when I point out they don’t exist, I get an apology and sometimes a different function call that also doesn’t exist.

    It’s really wack how people are using this in their jobs.