User's banner
Avatar

pimeys

pimeys@lemmy.nauk.io
Joined
2 posts • 109 comments
Direct message

Nix user arrives to the room.

permalink
report
parent
reply

Yes. And I feel sad because I haven’t been excited on any other OS for years after learning NixOS. I used to be excited about playing with things like FreeBSD, but now they all feel like something’s missing…

Not for everybody, but as a software engineer nix/nixos is blessing.

permalink
report
reply

This is what I really like about clubs in Berlin. When you get in, they put stickers to your phone’s cameras. If you take them out and try to take photos, or they see you removed the stickers when you get out, you need to delete all the photos you took in the club and you’re never again welcome to their premises. Makes also dancing there super fun because people really dance, not focus on taking a video of the DJ.

permalink
report
reply
41 points

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…

permalink
report
parent
reply

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!

permalink
report
parent
reply

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.

permalink
report
reply

Me neither. But. I think the answer is much simpler here: Microsoft doesn’t make their money with schedulers, but bundling that Office and tracking to everybody, and charging rent every month. They have way less people working on making the kernel as fast as possible, compared to Linux where:

  • there are many companies running crazy workloads 24/7, and providing patches
  • very talented individual hackers who have an open source kernel and can play around with things, getting that last oomph out from their system

This is why, for a pro user, Linux is an amazing platform.

permalink
report
parent
reply

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.

permalink
report
parent
reply

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.

permalink
report
parent
reply