h3ndrik

joined 1 year ago
[–] h3ndrik@feddit.de 1 points 6 months ago* (last edited 6 months ago) (3 children)

Hmmh. But how would that then change Mastodon not displaying previous (uncached) posts? Or queries running through the server with it's perspective?

And I fail to grasp how hashtags and the Lemmy voting system is related to a client/server architecture... You could just implement a custom voting metric on the server. Sure you can also implement that five times in all the different apps. But you'd end up with the same functionality regardless of where you do the maths.

And if people are subscribed to like 50 different communities or watch the 'All' feed, there is a constant flow of ActivityPub messages all day long. Either you keep the phone running all day to handle that. Or you do away with any notification functionality. And replicating the database to the device either forces you to drain the battery all day, or you just sync when the user opens the App. But opening Lemmy and it takes a minute to sync the database before new posts appear, also isn't a great user experience.

I'd say we need nomadic identity, more customizability with the options like hashtags, filters and voting. Dynamic caching because as of now Fediverse servers regularly get overwhelmed if a high profile person with lots if followers posts an image. But most of that needs to be handled by servers. Or we do a full-on P2P approach like with Nostr or other decentralized services. Or edge-computing.

I don't quite get where in between federated and decentralized (as in p2p) your approach would be. And if it'd inherit the drawbacks of both worlds or combine the individual advantages.

And ActivityPub isn't exactly an efficient protocol and neither are the server implementations. I think we could do way better with a more optimized, still federated protocol. Same with Matrix. That also provides me with a similar functinality my old XMPP server had, just with >10x the resource usage. And both are federated.

[–] h3ndrik@feddit.de 4 points 6 months ago* (last edited 6 months ago) (5 children)

Because with all of that, messaging, email, xmpp, matrix and ActivityPub most of the magic happens on the server. Take email for example. The server takes care to be online 24/7. It provides like 5GB of storage for your inbox that you can access from everywhere. It filters messages and does database stuff so you can habe full text search. Same with messaging. Your server coordinates with like 200 other servers so messages from users from anywhere get forwarded to you. It keeps everything in sync. Caches images so they're available immediately.

That allows for the clients/Apps to be very simplistic. It just needs to maintain one connection to your server and ask if there's anything new every now and then. Or query new data/content. Everything else is already taken care for by the server.

OP's suggestion is to change that. Move logic into the client/App. But it's not super easy. If you now need to be concerned on the client with maintaining the 200 connections at all times instead of just 1 to see if anyone replied... Your phone might drain 200 times as much battery. And requiring the phone to be reachable also comes with a severe penalty. Phones have elaborate mechanisms to save power and sleep most of the time. Any additional network activity requires the processor and the modem to stay active for longer periods of time. And apart from the screen thats one of the major things that draws power.

[–] h3ndrik@feddit.de 14 points 6 months ago* (last edited 6 months ago) (19 children)

That's a nice idea but has some pretty obvious technical drawbacks that aren't discussed in the blog article:

The complexity of most networks grows about exponentially with the number of connections between the entities. It gets immensely more computationally expensive that way and you're bound to use lots of additional network traffic and total cpu power that way.

And some (a lot of) people like using social media on their phones instead of a computer. You're bound to drain their batteries real fast by moving application logic there.

Other than that I like the general idea. The Fediverse should be more dynamic. Caching and discovery have some big issues in the current form. That should be tackled and we need technical solutions for that. And the current architecture isn't perfect at all.

Furthermore, if talking about the edge where networks are smarter... Why then move it into the browser which isn't at the edge? Wouldn't that be an argument to invent edge-routers like in edge computing? I mean with c2s you have a server on the one side and a client on the other side with the edge somewhere in between. If you now flip it you end up in a different situation. But there's still nothing at the edge where you could introduce some smarts...

[–] h3ndrik@feddit.de 14 points 6 months ago

As far as I know you want a web application firewall to block attacks. A reverse proxy is just to proxy requests and doesn't necessarily care if it forwards legitimate traffic or attacks.

[–] h3ndrik@feddit.de 5 points 6 months ago* (last edited 6 months ago) (1 children)

Maybe you can find a guide/tutorial on how to set it up?

Usually you need the correct packages installed on your system to enable something like VAAPI or QSV. Then you need a version of ffmpeg with that enabled. And then configure it in Jellyfin correctly.

I don't have any specific insights on how to do it with Fedora. I suppose it's very similar to how it's done on other Linux distros.

[–] h3ndrik@feddit.de 1 points 6 months ago

Hmm. There is value in both. When I started out with NixOS I read lots of wiki articles. And we all know there is some room for improvement. And I also read several configs of other people to see how things tie together. And to look up things that aren't documented. Nowadays I just put in what I'm looking for and "language:nix" into Github. So there's lots of personal configs that turn up. Sometimes with useful stuff. So I think anything is better than nothing. But obviously if you have kids, prefer them and let other people come up with the detailed wiki articles 😆

[–] h3ndrik@feddit.de 1 points 6 months ago* (last edited 6 months ago) (2 children)

Fair enough. I personally think someday someone will have the same niche issue I've already tackled and be happy to stumble over my code while googling it. So I just drop most things I do somewhere for other people to find. Regardless.

But concerning NixOS, I also still need to switch over a few things to agenix and generalize parts of my config before publishing it.

[–] h3ndrik@feddit.de 28 points 6 months ago (4 children)

Just put it on Codeberg or Github. Having other people's config for reference is always nice. Especially for beginners.

[–] h3ndrik@feddit.de 18 points 6 months ago* (last edited 6 months ago) (1 children)
[–] h3ndrik@feddit.de 3 points 6 months ago* (last edited 6 months ago)

I'd recommend YunoHost, too. It's pretty beginner friendly and you'll probably get some positive results without learning all at once. I mean you have quite something on your plate if you're learning Linux, Docker, Docker-Compose and maybe networking and Dev-Ops all at the same time.

[–] h3ndrik@feddit.de 2 points 6 months ago* (last edited 6 months ago) (1 children)

Out of curiosity: Did you measure the idle power consumption?

[–] h3ndrik@feddit.de 9 points 6 months ago* (last edited 6 months ago) (3 children)

A second-hand used laptop. Or an used Intel NUC.

I'd say it's difficult to buy anything new for $100 that's actually worth spending that money.

I'd recommend one if the Mini PCs like

But that's about twice your budget with a decent amount of RAM and some storage. (And way faster than a RasPi.)

view more: ‹ prev next ›