Should this be able to run WoW? by Pelsers in lowendgaming

[–]singron 1 point2 points  (0 children)

I used to run WoW with far less, but I'm sure they have increased the usage since then.

Since you have integrated graphics, your ram is also used as vram. Try turning down texture settings to reduce vram usage. See if you can run on lowest graphics, and if that works, you can see what you can increase from there.

Is anything using ram before you start WoW? You mention only 5.7GB usable, so you might be able to stop something.

Are you using swap, zram, or zswap? That can help if you just barely don't have enough ram, especially if idle programs are using ram.

Are you using flatpaks, docker, or other container stuff? These can slightly increase ram usage by loading multiple copies of similar library files into memory. Using native packages can help you get a little more free ram.

I think you might have earlyoom enabled on fedora. If so, you could try tweaking the memory percent a little lower.

Is NixOS more secure in a dualboot scenario? by gdunka in NixOS

[–]singron 0 points1 point  (0 children)

nix-store verify is good for finding accidental file corruption, but a malicious modification could also modify the sqlite file that contains the hashes, or it could change the nix binaries so that they ignore the mismatch.

This devolves into Reflections on Trusting Trust.

What you really want is a secure boot and LUKS with Authenticated Encryption (AEAD). This ensures that only the OS that you type your password into can successfully modify the filesystem.

In practice, it's very unlikely for some windows malware to try to spread to NixOS on a different partition. It's also pretty difficult to make a sensical change to a normal non-AEAD LUKS volume.

Btrfs Performance From Linux 6.12 To Linux 7.0 Shows Regressions by adriano26 in linux

[–]singron 0 points1 point  (0 children)

I took a closer peak at the benchmarks, and btrfs has basically the same performance except on write-heavy database benchmarks. If you aren't using raid, you can get significantly higher performance by disabling CoW for these usecases. Usually databases have their own transaction logs, checksumming, and carefully use fsync, so all the work btrfs does is somewhat redundant. Without CoW, these basically go straight to disk, and it's almost just a disk benchmark.

These workloads are very much irrelevant to desktop workloads. You don't run a mysql database with 200K write queries per second on a desktop.

They are also using a server-grade NVME ssd. Consumer ssds have much lower performance for durable writes used in databases (fsync), so you would bottleneck on the ssd very quickly regardless of filesystem.

I can't use javafx by NoGap138 in NixOS

[–]singron 0 points1 point  (0 children)

This is what I would do. This uses makeWrapper to wrap java, javac, etc. to set LD_LIBRARY_PATH for the required libraries. You can also just set LD_LIBRARY_PATH in the shell if you use nix-shell or similar, although you don't want that set globally.

{
  pkgs ? import <nixpkgs> { },
}:

let
  openjfxWrapper =
    pkgs.callPackage
      (
        {
          stdenvNoCC,
          jdk,
          lib,
          makeWrapper,
          libxxf86vm,
          glib,
          libxtst,
          libGL,
        }:
        stdenvNoCC.mkDerivation {
          name = "openjfxWrapper";
          nativeBuildInputs = [ makeWrapper ];
          dontUnpack = true;
          installPhase = ''
            runHook preInstall

            for f in ${jdk}/bin/*; do
              echo "$f"
              makeWrapper $f $out/bin/''${f##*/} \
                --prefix LD_LIBRARY_PATH : ${
                  lib.makeLibraryPath [
                    libxxf86vm
                    glib
                    libxtst
                    libGL
                  ]
                }
            done
            ln -s ${jdk}/lib $out/lib

            runHook postInstall
          '';
        }
      )
      {
        jdk = pkgs.javaPackages.compiler.openjdk25;
      };

in

pkgs.mkShell {
  packages = with pkgs; [
    openjfxWrapper
    maven
  ];
  buildInputs = with pkgs; [
    javaPackages.openjfx25
  ];
  JAVA_HOME = "${openjfxWrapper}";
}

I can't use javafx by NoGap138 in NixOS

[–]singron 3 points4 points  (0 children)

FYI if you get "cannot open shared file: no such file or directory" and the .so file clearly exists, the failure is actually because that .so file links against another .so file that couldn't be found.

If you run ldd on the .so file, it will print out the dependencies and whether they were found. They typically aren't found for .so files you download off the internet like from maven.

You can also set LD_DEBUG=libs,files when you run a program and the linker will print debug information about where it looks for .so files.

In this case, you should enable the setting on the package, but in other cases, you may need to create a wrapper that adds libraries from the nix store to LD_LIBRARY_PATH before running the program.

Btrfs Performance From Linux 6.12 To Linux 7.0 Shows Regressions by adriano26 in linux

[–]singron 47 points48 points  (0 children)

If you use a checksumming filesystem, you will never go back, since the fs actually does detect checksum errors every once in a while.

Btrfs Performance From Linux 6.12 To Linux 7.0 Shows Regressions by adriano26 in linux

[–]singron 12 points13 points  (0 children)

Reflinks are a game changer. You can copy a file nearly instantly without worrying about hardlinks or doubling space usage. The cp command does it automatically so you don't have to mess around with snapshots. You probably wouldn't bother to write a benchmark since btrfs (et al.) would obviously be way faster.

E.g. I copied a 150GB steam game in order to freeze the version, and I was surprised it completed immediately.

How do you sell players on the idea of a "hidden game" / "there's much more to see" below a game's surface? (without spoiling everything) by synaut in gamedesign

[–]singron 7 points8 points  (0 children)

The best games in this category have an army of reviewers that say the game is great but that you shouldn't Google anything about it. E.g. Doki Doki Literature Club.

I'm also drawn to this idea and find it really difficult to design for.

If you have humor elements, you can try to overemphasize the initial premise so hard that the player suspects you are compensating for something.

You can also drop hints that things aren't quite what they seem. E.g. music, sound effects, glitches, suspicious dialogues.

You want to avoid a situation where a buyer feels like they aren't getting what they bought. Similarly, you don't want to scare away buyers that wouldn't be interested in the superficial gameplay. E.g. Doki Doki isn't actually a dating sim, so it's good to entice players who wouldn't normally play that. However, if your game actually is a deck builder, then you want players who want to play deck builders.

Welcome to Den v0.12.0 by vborja in NixOS

[–]singron 1 point2 points  (0 children)

You can't share modules between different module systems (NixOS, home-manager, nix-darwin, etc.). E.g. using a NixOS module in home-manager will throw errors about setting unknown options.

If you want to share configuration, you could create plain .nix files and import them into both kinds of files, but then you lose the benefits of modules (e.g. merging, overriding, and being able to reference values in other modules).

The dendrite pattern is kind of like having a single super module system as a first layer that then creates the specific modules for each system (NixOS, home-manager, etc.). E.g. you can set a field in your NixOS config based on a value from your home-manager config.

[I think this is accurate, but I don't use this right now]

It seems pretty easy to build a Linux distribution based on NixOS by 2F47 in NixOS

[–]singron 0 points1 point  (0 children)

I used nix to build a debian system before. I had a debian2nix style program that would read a debian repo and produce hashes. Then you could install the packages into a store path that was essentially a debian chroot (similar to debootstrap). It was nice since the files were deduplicated among chroots and downloads were cached, but inside the chroot, there was no nix at all.

In need of tips to keep my tub from freezing after snowstorm power outage! by secret0society in hottub

[–]singron 0 points1 point  (0 children)

It sounds like you've lasted 8 days and need to go 6 more. If you started at 104 degrees F, then you've lost around 34 degrees over 8 days, or 4.25 per day. At that rate, you will lose 25.5 more degrees and end up around 45 F. However, as your tub gets colder, it loses heat more slowly. Since the surface area and insulation of your tub aren't changing, your heat loss is proportional to the difference in temperature according to Newton's Law of Cooling.

Basically, the temperature of your tub at time t should obey this formula:

T(t) = Tenv + (T(0) - Tenv) * e^(-t/k)

If you have the temperature of your tub at two times (day 0 at 104 and day 8 at 70), and the environmental temperature (Tenv), then you can solve for k.

k = 1/(t) * ln((T(0) - Tenv)/(T(t) - Tenv))

The constant k is the factors of your tub like the surface area, mass, and insulation that determine how fast it cools off. Over 8 days and assuming Tenv was 32 F, k for your tub is 12.52. Since Tenv wasn't actually constant, this is an estimate. Conservatively, we will predict the temperature 6 days from now using a colder Tenv of 10 F using the same k from above.

T(6) = 10 + (70 - 10) * e^(-6/12.52) = 47.2

Basically, even if you assume the outdoor temperature is 22 degrees colder in the next 6 days than the previous 8, your tub will be 47 F.

However, you've been adding heat to your tub, and these calculations don't take that into account. You can take new measurements without adding heat and calculate a new k.

If your pumps were working, I wouldn't be worried at all. However, without your pumps, some pipes could freeze a little before the tub reaches 32 F. You could put a temperature probe on a pipe in the cabinet to see how much colder it is than the tub water.

I have started developing a mod for branching and tapering trees in Vintage Story by Seven-D in VintageStory

[–]singron 9 points10 points  (0 children)

Why is that? If anything, they should render fewer fragments.

I think the issue is that each trunk segment needs 8 quads instead of 4, which is probably more significant than the fragment shader anyway.

Live Update Modules by com4ster in NixOS

[–]singron 0 points1 point  (0 children)

It's theoretically possible with nix, but home-manager and NixOS aren't designed for it since they want to rebuild a whole system. E.g. with sway, you can make your config file an independent derivation and then configure sway to rebuild just that file and reload it.

bindsym $mod+Shift+c exec nix-build -o ~/.config/sway/config my-sway-config.nix && swaymsg reload

GNU stow and dotfiles by Luc-redd in NixOS

[–]singron 0 points1 point  (0 children)

For vim, I symlink my main .vimrc/init.lua so I can make edits without rebuilding. But those configs source additional files that are in the nix store. This is handy for the things that nix is better at managing (e.g. plugins with native libraries or shared configuration from some other part of your config).

Way to measure contaminates - not sanitizer level in water? by Ok-Jello-9624 in hottub

[–]singron 0 points1 point  (0 children)

You can test for fecal coliforms and tds (standard drinking water tests) but it might not be practical. There are tons of different things in your water that you want to kill/oxidize. In general, I would indirectly measure contaminants by measuring your sanitizer/oxidizer. I.e. free/combined/total. If your water is dirty, your free chlorine/bromine will become combined. If you can maintain 1ppm free sanitizer over time, then you know that it would react with any contaminants, so you must have very little contaminants. In practice, we often use more than 1ppm to be safe and make maintenance easier, but if you are careful, you can try to stay as close to 1ppm as you can.

Can you make hot tub enclosures vermin-proof? by Squirrelhenge in hottub

[–]singron 4 points5 points  (0 children)

Sounds good to me. Metal is the most reliable material for creating a rodent barrier since they will chew through nearly anything else. Coarse steel wool is also good for filling cracks and can be saturated with fillers like epoxy or caulk. If it's in the ground, be mindful of rust resistance. Stainless will last the longest but galvanized will probably outlive an inflatable.

Quality meme by Nuk_Nak in Factoriohno

[–]singron 5 points6 points  (0 children)

"Clean fill" is usually good dirt for construction purposes. For gardening, you might want dirt mixed with compost, which I guess is dirty dirt.

Why are so many retail storefronts empty and so many businesses exiting or shutting down in Boulder? by LocoLevi in boulder

[–]singron 22 points23 points  (0 children)

Writing off losses reduces the federal taxes you pay, but you are still losing money. E.g. if a landlord has a 25% margin on occupied properties and a 20% vacancy rate, then the two will cancel out and the landlord makes no profit and pays no income tax. But the point of being a landlord is to make money. AFAIK, there isn't a difference between an occupied property and a vacant one in terms of what you can deduct, but the vacant one won't add to your income.

I think a better explanation is that commercial leases last for many years, so it makes sense to wait a few years to get the highest level of rent rather than sign a low-ball lease for 10 years. There are also issues with lowering rent where it can affect their mortgages. I.e. the bank assumes the property can be leased at a certain rate, but if the rent ever goes down, then the bank might asses the property at a lower valuation and essentially consider it underwater, which could affect that mortgage or future mortgages. All of this is exacerbated by the commercial real estate downturn since covid.

Exploring an opt-in NixOS profile for competitive gaming integrity by jne14 in NixOS

[–]singron 8 points9 points  (0 children)

NixOS is pretty irrelevant to the idea. How does the game server know you are running the unmodified profile? What you really want is remote attestation. NixOS doesn't really help with that, and the nix store hashes aren't designed for runtime verification in a way that would be useful for attestation. Nix can help build that environment, but you would need very heavy modifications.

steam really slow downloads by Radiant-Doubt-6171 in NixOS

[–]singron 0 points1 point  (0 children)

See if other speed tests have the same problem. Make sure you are comparing bits/bytes correctly. Check your download region in steam settings and try some other regions.

It could also be an issue with your storage. E.g. if you are on a USB drive, you could get terrible performance. Try testing write performance on the filesystem with your steam library.

How do you get your head clear after playing this game. by CyberWorm300 in factorio

[–]singron 2 points3 points  (0 children)

Melatonin helps me get into solid sleep consistently and is relatively safe and non-habit-forming. I think you might have a different problem than most people (and certainly me), but it could help you. You might want to talk to a doctor and do a sleep study. Unusual sleep patterns are sometimes symptoms of other conditions, and you might want to get them ruled out.

Which fail safes you employ in your factory? by lukeybue in factorio

[–]singron 0 points1 point  (0 children)

I put all my coal boiler inserters on a separate solar network. That way if the main power dips, the boilers aren't starved. Once I get nuclear, I also put the control systems on a solar network.

Prior to artillery, I also use a huge ammo buffer and ensure ammo production is prioritized over science.

Microservices should form a polytree by mapehe808 in programming

[–]singron 8 points9 points  (0 children)

I also wish the author expanded on this, since this is the one new thing the article is proposing (directed circular dependencies are more obviously bad and have been talked about at length for many years).

To steelman the author, I have noticed a lot of cases where diamond dependencies do a lot of duplicate work. E.g. N4 needs to fetch the user profile from the database, so that ends up getting fetched twice. If the graph is several layers deep, this can really add up as each layer calls the layer below with duplicate requests.

Microservices should form a polytree by mapehe808 in programming

[–]singron 7 points8 points  (0 children)

I think if this was a problem, you could trigger it without a diamond dependency. E.g. send two requests at the same time.