crestwave

joined 6 months ago
[–] [email protected] 3 points 3 days ago (1 children)

I suppose some people might still want to upgrade certain packages and not others, but that seems a pretty rare case these days - or maybe I just don't hang out in the right crowds!

That would still be possible, actually! You can totally choose what packages to upgrade (depending on the distro). NixOS even lets you have multiple versions of the same package installed at once—another uninherent but easy byproduct of atomic design.

Atomicity is just a technical part of how it works under the hood. Normally when you install, uninstall or remove something, it directly does those modifications to your system. If your power goes out halfway through, you're in trouble.

Most atomic distros do those changes to a separate filesystem image instead. Then when it's finished, it instantaneously applies the all of the changes you did by mounting the new image. If your power went out halfway through, you'll just be booting to the old image, untouched and pristine.

That doesn't limit what you can or can't do. You can do all kinds of tinkering and all kinds of partial upgrades to the image (again, depending on the distro). But when it's all done, you can apply all the changes you did instantly.

Here's another example. One way to atomically change a single file is to use mv. Moving within the same filesystem simply renames the file and does not transfer data.

Imagine you're adding a ton of lines to a live script, including rm -rf ~/tmpdir. If you directly modified it, there's a chance that something could execute it while it was only partially written to the disk and run rm -rf ~ instead. Yikes.

But if you wrote it to a separate file instead, you could apply your huge set of changes in an instant by using mv to replace the original file. That's atomicity. It's also actually how sudoedit/visudo works and one of the reasons why it's recommended over just sudo "$EDITOR".

[–] [email protected] 3 points 3 days ago (3 children)

Atomic distros are not inherently immutable, although they often are because it's an easy byproduct of atomic design.

Atomicity means transactions are either applied in whole or not at all. That means that your system will never be stuck in a broken half-way state if it crashes during an update.

In practice, this is often implemented through filesystem images that are mounted for instant changes. These are then often mounted as read-only for immutability, but distros usually have options to use them as read-write as well for tinkering.

In my opinion, atomicity is the future. The risk of your system breaking during every upgrade is tolerable, but why not eliminate it altogether? Immutability is a different game and is mostly a preference thing.

[–] [email protected] 2 points 1 week ago* (last edited 1 week ago) (2 children)

Most foldable phones are from Asian companies, some of which are banned in the US.

The Western world is dominated by Apple and the market reflects that with popular Android phones taking cues from the iPhone. I don't think foldables will ever take off there unless Apple gets into it.

[–] [email protected] 1 points 1 month ago

As far as C goes, 1 is true and 0 is false.

In terms of POSIX exit codes, 0 is success and 1 is error.

[–] [email protected] 19 points 4 months ago* (last edited 4 months ago) (11 children)

Most terminal emulators are in fact slow and they can be a huge bottleneck if you run complex TUIs or workloads that print a lot of output.

Ever written a program that was extremely slow only for it to run instantly after removing your debug print statements? That's because your terminal is slow.

Fast terminal emulators already exist, but they notably refused to add tabs/splits and overall tended to be quite janky. Ghostty merging these features may not be the most groundbreaking innovation, but a high quality piece of software that can drop-in replace something you use daily with some cool improvements is something to be excited about to me. :-)

[–] [email protected] 12 points 4 months ago (18 children)

It's incredibly fast, has the features you would want like tabs/splits, maintains comprehensive compatibility, and is written cleanly in Zig. What's not to like?

[–] [email protected] 4 points 4 months ago (1 children)

These are good points, but modern PvP games still support custom matches and going from there to self-hosted servers isn't really much of a leap.

In fact, I believe Valve's new game Deadlock does let you run your own dedicated servers.

[–] [email protected] 3 points 4 months ago

Less games actually use Steam's DRM than people think. Even the ones that require Steam to run often just use their API for stuff like multiplayer functionality or displaying leaderboards.

There's an open source library that you can sub in to emulate the API and run the games on LAN without Steam. I believe there's no decryption involved so it should be 100% legal, just like how Proton reimplements Windows APIs.

[–] [email protected] 2 points 5 months ago

Don't Starve Together scratches the MMO itch for me. It's not an MMO, but there are public servers where you can hop in and hang out, raid bosses and whatnot. I have ~4k hours in it now.

[–] [email protected] 32 points 5 months ago (1 children)

Valve does seem to contribute substantially to the development of their games, at least. Turtle Rock's Evolve and Back 4 Blood had nowhere near the success of L4D/2, which is still going strong 15 years later.

[–] [email protected] 6 points 5 months ago* (last edited 5 months ago)

As the other commenters have mentioned, this is part of the shell configuration and outside the scope of the terminal emulator.

You can configure this yourself by adding shopt -s histverify to your bashrc.

view more: next ›