HaraldvonBlauzahn

joined 1 month ago
[–] HaraldvonBlauzahn@feddit.org 1 points 6 hours ago

Stumpwm. The most ergonomic tiling window manager I know, fantastic configurability like emacs.

[–] HaraldvonBlauzahn@feddit.org 3 points 4 days ago (2 children)

If you like screen or tmux, you might like a tiling window manager like i3 or sway, or GNOME with paperwm extension. It can have real advantages for older folks (like me) which don't have perfect vision any more, because it is much more conservative with screen space. After a few days learning, it becomes also really fast to switch windows and desktops. This is not black-or-white: The desktop WMs do have keyboard shortcuts and windows layouts which mimick tiling WMs, and tiling WMs may have a few desktop features. The former are a bit more convenient and easy for beginners, while the latter are blazingly fast.

[–] HaraldvonBlauzahn@feddit.org -1 points 1 week ago (1 children)

In my experience, dealing with repeated nvidia problems is not worth the hassle. Just replace it with a good AMD graphics card and sell that nvidia thing.

[–] HaraldvonBlauzahn@feddit.org 3 points 1 week ago* (last edited 1 week ago)

For me, this result is also not too surprising:

  1. If allowing / using Undefined Behavior (UB) would allow for systematically better optimizations, Rust programs would be systematically slower than C or C++ programs, since Rust does not allow UB. But this is not the case. Rather, sometimes Rust programs are faster, and sometimes C/CC++ programs. A good example is the Debian Benchmark Game Comparison.

  2. Now, one could argue that in the cases where C/C++ programs turned out to be faster than Rust programs, that at least im these cases exploiting UB gave an advantage. But, if you examine these programs im the Debian benchmark game (or in other places), this is not the case either. They do not rely on clever compiler optimizations based on assumptioms around UB. Instead, they make heavy use of compiler and SIMD intrinsics, manual vectorization, inline assembly, manual loop unrolling, and in general micro-managing what the CPU does. In fact, these implementations are long and complex and not at all idiomatic C/C++ code.

  3. Thirdly, one could say that while these benchmark examples are not idiomatic C code, one at times needs that specific capability to fall back to things like inline assembly, and that this is a characteristic capability of C snd C++.

Well, Rust supports inline assembly as well, though it is rarely used.

You can legally buy second-market OEM licenses. They are not that expensive, and do not expire. And, older versions of Windows are much slimmer and boot much faster, though it is not a good idea to connect them to the Internet - instead, one would block connections between VM and Internet. Which is anyway much better from a privacy perspective.

[–] HaraldvonBlauzahn@feddit.org 1 points 1 week ago (1 children)

Another big plus of that approach: If your laptop or PC breaks, you can just move the VM image with Windows exactly like any other file you have backed up (you do backups, don't you?) to the new hardware and use it as before. This esoecially breaks the problem of forced OS upgrades if the new hardware does not support the old windows version, or you do not have the installer and license keys any more, but the new Windows version does not support your old documents, media formats, or pheriperals like scanners.

Also, if you modify your Windows install and it might break, you can just make a snapshot of the VM image - which is a copy of a file - and restore it when needed.

 

A thorough examination of the performance effects of using undefined behaviour in compiler optimizations.

Method:

  1. Modifying clang to not use UB where this is possible
  2. Run a large suite of benchmarks on different architectures, compare results for modified and unmodified clang
  3. Do statistics on the results
  4. Examine performance deviations
  5. Discuss factors which could bias results.

Very good science!

Result in short:

Only on ARM and if no link-time optimization is used, a systematic small positive performance effect can be seen. For Intel and AMD CPUs, there are no systematic improvements.

Average effects are typically below 2%, which is the typical effect of system and measurement noise. Often, effects are even negative. In some cases, benchmarks show large differences, and many of these can be fixed by simple modifications to the compiler or program.

[–] HaraldvonBlauzahn@feddit.org 4 points 2 weeks ago

A few more thoughts here:

  • for a first Distribution, Ubuntu is fine, too. Also, you could ask people arounf you what they know best und whether they like to help you. For example, Debian is a bit harder to install but is rock solid once it runs.
  • if you are concerned about security, you should practice a strict separation between trusted software installed by you, and untrusted data presented to you via web, mail or Internet. Never run untrusted code. Windows blurs that line and this is fatal.
  • In respect to hardware support: Most standard PC hardware will work very well with Linux, even old scanners that have no more Windows driver support. NVidia is the bad exception, and the bad rap is still justified because of Wayland, the new graphics display server. If you are not really poor you might consider to buy something better. The hardware support landscape is different for laptops. Here, refurbished Lenovo Thinkpad or Dell laptops are first choice, and also best value for the money.