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

help-circle

  • Personal main-complaint about Snaps is that they ship Firefox by default with it and some things in it are just broken:

    • “Save Image As…” in the right-click menu would just fail to open the file dialog and therefore do nothing.
    • It doesn’t use ~/Downloads/ for downloads, but rather some complex folder underneath ~/snap/. You can get to that folder from Firefox’s download list, I believe, but navigating there via file manager is tricky.

    Thankfully, Mozilla now offers a DEB repo: https://support.mozilla.org/en-US/kb/install-firefox-linux#w_install-firefox-deb-package-for-debian-based-distributions

    As for Kubuntu, it’s far from the greatest showing of KDE. They frequently have oddball KDE versions, e.g. not quite shipping the KDE LTS version in Ubuntu LTS, because releases didn’t line up, but also just in general weird instabilities and crashes which don’t happen on my openSUSE laptop (my workplace issues Ubuntu laptops).

    Having said that, we gave some of our Linux newbie colleagues GNOME and they always seem to struggle more with it than the colleagues with KDE, because usability in GNOME is just whack.
    Things like not being able to type a file path into the file manager (unless you know the magic shortcut Ctrl+L), or the file-open dialog highlighting the name field, but when you type into it, it starts searching files instead.
    But also just the whole thing not behaving like Windows. I’ll be the last to praise Windows’ usability, but it is what many people know.


  • WINE does essentially what you’re proposing in a smarter way. Rather than requiring each program to be re-compiled, it offers APIs that look like those of Windows, but then when those get called, it does the same substitution thing to make equivalent Linux API calls.

    If you’re thinking “but WINE doesn’t work very well”, yeah, because these OS APIs are complex and even mildly different behaviour will cause many programs to explode. Your approach would suffer from that same problem.


  • Nope, it’s their server software. This is a screenshot from the Factorio webpage, which is a video game. So, the normal Linux download is the playable game and you grab the headless download, if you want to host a multiplayer server.

    Your definition of “headless” is also somewhat wonky. It mostly means that it can function without a GUI, e.g. in the case of a server it does I/O via network ports and logs out any events that happen.
    This does often mean that you can log off (which in particular closes the GUI session), and it continues running. But if you launch a headless program underneath your particular user, with which you’re then going to log off, then it will close regardless (and not just because your GUI terminal emulator closes).
    Of course, most headless programs will have a SystemD service associated and ideally run under an isolated user anyways, so that will prevent them from being stopped when you log off.

    https://en.wikipedia.org/wiki/Headless_software




  • As a German, it’s always fun to use the ss command. The SS was the organization that did most of the genocide under Hitler. That’s a bad name around here, so people are always surprised that a command is named that.

    But what’s even more fun is that we can memorize the standard set of flags as -tulpn, because it’s basically spelled+pronounced like “Tulpen”, which is German for tulips.

    So, occasionally I get to tell people to type “SS-tulips” into their terminal and it always confuses the hell out of them. 🙃


  • Right, so it all started when I tried bspwm a few years ago and noticed that it didn’t have a feature to minimize/hide windows. So, I looked up what that was about and one of the devs said that you shouldn’t minimize, just move the window to a different workspace.

    And yeah, that broke my brain. Because it’s also a tiling window manager and I was on a small laptop screen, so only 3 windows would fit on a workspace at most.

    But after using it for a while, I noticed that:

    1. It reduces complexity. There’s one fewer place where your window could be hiding.
    2. Combined with the tiling, it means that windows always have a place where they are. You scroll through your workspace list and it’s going to be open/visible somewhere.
    3. This also means I can place windows next to each other when they’re related. Or onto the same workspace, if I actively want to see both of them. And if two groups of windows/workspaces aren’t really related, I can leave a workspace empty between them.
    4. This would work a lot better with a minimap to show where the windows are placed across workspaces.

    And yeah, eventually I tried replicating this workflow in KDE, because it has the workspace pager for my minimap (I have my workspaces in a column, so they fit onto the panel).
    And so I found a KWin script to do the tiling (currently using Polonium), and realized that Activities are really useful for splitting up completely unrelated windows, too.






  • Or alternatively to Profitez des vidéos et de la musique que vous aimez, mettez en ligne des contenus originaux, et partagez-les avec vos amis, vos proches et le monde entier.

    I do not know why the YouTube link blurp is speaking French to me. It’s been doing that for a week or so…


  • Personally, I particularly find all the included applications more useful. GNOME’s definitely aren’t bad, but KDE’s are often best-in-class, particularly for power users. Like, Okular is the PDF reader I recommend even to Windows users. Dolphin is IMO the best file manager out there. Kate is my favorite text editor.

    The customizability regarding the workflow is also important to me. It took a few years of experimenting to figure out my preferred workflow, but I’m now often much better organized than my coworkers, just because this workflow is so helpful for me.






  • Nope, crucial difference between Java’s char[] and Rust’s &str is that the latter is always a pointer to an existing section of memory. When you create a char[], it allocates a new section of memory (and then you get a pointer to that).

    One thing that they might be able to do, is to optimize it in the JVM, akin to Rust’s Cow.
    Basically, you could share the same section of memory between multiple String instances and only if someone writes to their instance of that String, then you copy it into new memory and do the modification there.
    Java doesn’t have mutability semantics, which Rust uses for this, but I guess, with object encapsulation, they could manually implement it whenever a potentially modifying method is called…?