Not a sysadmin, but a programmer. My work machines have been:
Probably going to keep using NixOS. This is a very cool OS.
Steely Dan. The worst part would be I won’t stop talking about the drum solo in Aja.
A big monitor with 100% AdobeRGB is going to be very very expensive. And if you want it to be 65", you just can’t find them…
And it is a monitor, meant to be watched from a close distance. It will not be such a great experience for movies and such.
Yeah. I don’t mean that. But how is it going to look like in bars when everybody suddenly has hundreds or so grams of weed…
I’m in Berlin and half of my neighbors have these 3m tall weed plants on their balconies. 3-4 usually, and nobody really cares. I wonder how the winter is going to be when everybody suddenly has half a kilo of weed…
Signal always responds to authorities when they ask for data, and they give them all they have: the day they registered, their phone number and the timestamp they last used the app.
Telegram has unencrypted channels of drug dealing, and what I heard is a lot of illegal porn too. The authorities want information on certain users there and Telegram doesn’t comply. This is directly against the law Signal is not breaking, because they always send all the data they have to the law enforcement.
I mean… If you have a ton of raw photos in one directory, you can enable the highest compression rate with zstd to it. Every other directory has lz4 with the fastest compression. Your pics take much less space, but the directory will be slower to read and write.
For me the reason was that I wanted encryption, raid1 and compression with a mainlined filesystem to my workstation. Btrfs doesn’t have encryption, so you need to do it with luks to an mdadm raid, and build btrfs on top of that. Luks on mdadm raid is known to be slow, and in general not a great idea.
ZFS has raid levels, encryption and compression, but doesn’t have fsck. So you better have an UPS for your workstation for electric outages. If you do not unmount a ZFS volume cleanly, there’s a risk of data loss. ZFS also has a weird license, so you will never get it with mainline Linux kernel. And if you install the module separately, you’re not able to update to the latest kernel before ZFS supports it.
Bcachefs has all of this. And it’s supposed to be faster than ZFS and btrfs. In a few years it can really be the golden Linux filesystem recommended for everybody. I sure hope Kent gets some more help and stops picking fights with Linus before that.
One of the best filesystem codebases out there. Really a top notch file system if you don’t need to resize it once it’s created. It is a write through, not copy on write, so some features such as snapshots are not possible using XFS. If you don’t care about features found in btrfs, zfs or bcachefs, and you don’t need to resize the partition after creating it, XFS is a solid and very fast choice.
Ext4 codebase is known to be very complex and some people say even scary. It just works because everybody’s using it and bugs have been fixed years ago.
I’m too old to rant about systemd :D
Wtf is run0
https://www.freedesktop.org/software/systemd/man/devel/run0.html
Edit: Is that nyx flake made by the same guys as the Chaotic AUR repo for arch?
Looks like it if you check from GitHub.
It kind of fails with certain protocols. I once wrote an async MSSQL client for Rust, and some data doesn’t say its size in the headers. So this kind of forced the business logic to be async too.
Yeah. Scary stuff. I live in central Berlin, and it’s pretty relaxed here. Did the Mauerlauf last weekend and immediately when you cross the Brandenburg border to some of these villages, they’re full of AfD advertisement. Berlin is definitely the Portland of Germany :D
Never had one, just partied in the uni and dropped out :D
So basically your typical network protocol is something that converts an async stream of bytes into things like Postgres Row objects. What you do then is you write a synchronous library that does the byte conversion, then you write an asynchronous library that talks with the database with async functions, but most of the business logic is sync for converting the data coming from the async pipe.
Now, this can also be done in a higher level application. You do a server that is by nature async in 2024. Write the server part in async, and implement a sync set of mapping functions which take a request coming in and returns a response. This can be sync. If you need a database, this sync set of functions maps a request to a database query, and your async code can then call the database with the query. Another set of sync functions maps the database result into http response. No need to color everything async.
The good part with this approach is that if you want to make a completely sync version of this library or application, you just rewrite the async IO parts and can reuse all the protocol business logic. And you can provide sync and async versions of your library too!
That’s why you write your protocol as a sync library, then implement the async IO separately and mapping the data over the protocol modules.
Thanks for sparking my interest on cachyos kernels and what they patch. In addition to bore, they also patch the sched_ext support!
https://github.com/CachyOS/linux-cachyos?tab=readme-ov-file#cachyos-default-kernel
Now, what this means is you can boot this kernel, then just start the scheduler from userland, e.g.
run0 scx_rustland
It uses bpf, so the scheduler switches immediately and is as fast as anything in the kernel space. What makes this rustland scheduler super interesting is how it can detect what application is currently active, and give it a full priority over anything else. So you can compile code in the background with all cores, and at the same time play a game with the best frame rate.
There are other sched_ext schedulers available, at least on nixos with the cachyos kernel I get a bunch of scx_ binaries to play with.
For nix users here, nyx flake packages and compiles the cachyos kernel:
That guy in the corner meme here…