this post was submitted on 04 Mar 2024
744 points (98.2% liked)

Technology

60102 readers
1863 users here now

This is a most excellent place for technology news and articles.


Our Rules


  1. Follow the lemmy.world rules.
  2. Only tech related content.
  3. Be excellent to each another!
  4. Mod approved content bots can post up to 10 articles per day.
  5. Threads asking for personal tech support may be deleted.
  6. Politics threads may be removed.
  7. No memes allowed as posts, OK to post as comments.
  8. Only approved bots from the list below, to ask if your bot can be added please contact us.
  9. Check for duplicates before posting, duplicates may be removed

Approved Bots


founded 2 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 138 points 9 months ago (2 children)

Welcome to the hell of being a lemmy admin. There's a reason why lemmy admins are fed up with the developers.

[–] [email protected] 111 points 9 months ago (7 children)

For context, there's a lot that goes on behind the scenes when it comes to lemmy admin stuff especially in the matrix channels. There is a significant frustration and lack of confidence in the lemmy developers at this point. Even those who try to contribute to the project get eventually feeling pushed out.

[–] [email protected] 49 points 9 months ago (3 children)

Based on what I've seen on the public facing part of the developer side, I get the feeling this isn't the kind of group that can build the kind of organization required to make this sustainable in the long run.

I'm just waiting for when Beehaw releases that they've given up on Lemmy and have created a new tech stack.

[–] [email protected] 62 points 9 months ago (1 children)

It's open source. We don't have to depend on the original developers.

If it gets too bad, someone can just make a fork.

Afaik people are just impatient with the developers and have different short term goals.

[–] [email protected] 9 points 9 months ago (1 children)

I mention a new tech stack because Beehaw brought it up as an option and a lot of people have commented on the difficulty of development in this environment.

[–] [email protected] 18 points 9 months ago (2 children)

That'd be disappointing. Rust seems like a great foundation.

[–] [email protected] 41 points 9 months ago

Rust seems like a great foundation.

The fact that I know you're referring to the programming language called "Rust" doesn't make this sentence any less funny.

[–] [email protected] 14 points 9 months ago

It could still be rust. Code is always the easy part. Design and organization and funding are hard

[–] [email protected] 25 points 9 months ago* (last edited 9 months ago) (2 children)

In terms of new tech stack currently theres sublinks being made by devs/admins of a bunch of instances (discuss.online, lemmy.world, programming.dev, etc.)

[–] [email protected] 6 points 9 months ago (2 children)

There's also Kbin, I suppose.

[–] [email protected] 11 points 9 months ago (1 children)
[–] [email protected] 1 points 9 months ago

Not in production.

There's not a lot of dev time to go around at kbin.

[–] [email protected] 8 points 9 months ago

It's a somewhat similar story there, although the devs aren't as difficult. Mbin is a fork and seems to be the codebase with the brightest future.

[–] [email protected] 4 points 9 months ago (1 children)

Anything public yet and are they sticking to Rust?

[–] [email protected] 2 points 9 months ago* (last edited 9 months ago) (1 children)

Java spring for backend, Go for federation, Next.js for frontend

demo.sublinks.org has the backend with the lemmy-ui frontend to show api compatibility

Task list and progress is public on the github org https://github.com/orgs/sublinks/projects/1

Matrix space where all the devs talk is also public and you can see progress talked about in them

[–] [email protected] 14 points 9 months ago (3 children)

Not really a substantial opinion, but I have little hope that replacing a fairly well established Rust codebase with a brand new Java one will do much in terms of increasing contribution.

[–] [email protected] 4 points 9 months ago

Who knows. Java is a much bigger programming language than Rust. Might be easier to find developers. But obviously it depends on interest. Who knows.

[–] [email protected] 4 points 9 months ago (1 children)

I wouldn't shortchange how much making the barrier to entry lower can help. You have to fight Rust a lot to build anything complex, and that can have a chilling effect on contributions. This is not a dig at Rust; it has to force you to build things in a particular way because it has to guarantee memory safety at compile time. That isn't to say that Rust's approach is the only way to be sure your code is safe, mind you, just that Rust's insistence on memory safety at compile time is constraining.

To be frank, this isn't necessary most of the time, and Rust will force you to spend ages worrying about problems that may not apply to your project. Java gets a bad rap but it's second only to Python in ease-of-use. When you're working on an API-driven webapp, you really don't need Rust's efficiency as much as you need a well-defined architecture that people can easily contribute to.

I doubt it'll magically fix everything on its own, but a combo of good contribution policies and a more approachable codebase might.

[–] [email protected] 3 points 9 months ago* (last edited 9 months ago) (1 children)

You have to fight Rust a lot to build anything complex

nutomic, one of the main Lemmy devs, didn't know Rust before he started working on Lemmy. He just started working on Lemmy and learned Rust in the process. The difficulty of Rust is exaggerated.

[–] [email protected] 3 points 9 months ago (1 children)

Hyperfixating on producing performant code by using Rust (when you code in a very particular way) makes applications worse. Good API and system design are a lot easier when you aren't constantly having to think about memory allocations and reference counting. Rust puts that dead-center of the developer experience with pointers/ownership/Arcs/Mutexes/etc and for most webapps it just doesn't matter how memory is allocated. It's cognitive load for no reason.

The actual code running for the majority of webapps (including Lemmy) is not that complicated, you're just applying some business logic and doing CRUD operations with datastores. It's a lot more important to consider how your app interacts with your dependencies than how to get your business logic to be hyper-efficient. Your code is going to be waiting on network I/O and DB operations most of the time anyway.

Hindsight is 20/20 and I'm not faulting anyone for not thinking through a personal project, but I don't think Rust did Lemmy any favors. At the end of the day, it doesn't matter how performant your code is if you make bad design and dependency choices. Rust makes it harder to see these bad choices because you have to spend so much time in the weeds.

To be clear, I'm not shitting on Rust. I've used it for a few projects and great for apps where processing performance is important. It's just not a good choice for most webapps, you'd be far better off in a higher-level language.

[–] [email protected] 1 points 9 months ago

I really disagree, I think Rust's excellent error handling and reliability is paramount to any software project and it's very useful for web apps as well. Besides, for a web app you rarely need to go for any of those things you mentioned (i.e. Arcs and mutexes and such).

[–] [email protected] 3 points 9 months ago* (last edited 9 months ago)

Theres been a bunch of activity and people joining in in the dev matrix already

Backend pretty much already has parity and the frontend is currently the main thing that an updated demo is waiting on but should be ready really soon

I've been designing an updated home page recently for it that I'll be pushing out this week that looks miles better than lemmy-ui since I could do everything from scratch and thus quickly

[–] [email protected] 20 points 9 months ago (2 children)

That sucks. As a 3rd party Lemmy app developer, I've only had positive interactions with the Lemmy devs. They're even being proactive in communications.

[–] [email protected] 3 points 9 months ago

Are they open to these discussions?

[–] [email protected] 3 points 9 months ago

Try submitting a pull request for something in one of the core repos.

They behave as if every line of code in your commit is a sentence proclaiming "Why yes, your wife is a whore, your dog doesn't love you, AND your baby is ugly."

I'm not kidding, there's no hyperbole in that statement. Go read some of their declined pull requests threads for some entertainment.

[–] [email protected] 5 points 9 months ago

That's kind of the impression I got but thought maybe I was just mistaken because I haven't actually been hands-on with this project. That's unfortunate to hear.

[–] [email protected] 5 points 9 months ago

Even those who try to contribute to the project get eventually feeling pushed out.

Submitting a pull request to one of their repos on Github was really an experience, and I can tell you that I will never submit another one to the Lemmy project while they're still the lead devs based on that experience.

[–] [email protected] 4 points 9 months ago (1 children)

What about kbin, isn't that entirely different software that can be developed to phase out Lemmy?

[–] [email protected] 4 points 9 months ago

From what I heard Kbin's developer is very inactive, so people started a fork called Mbin. Mbin might be alright?

[–] [email protected] 1 points 9 months ago

Perhaps there's starting to be a Lemmy clone/alternative? I think it's named Sublinks

[–] [email protected] 1 points 9 months ago

Better to publish such issues on a public website than let it get buried in matrix. People other than devs & instance admins need to be aware of the risks that they’re taking when using Lemmy.

[–] [email protected] 24 points 9 months ago (3 children)

Not sure I understand. How could there possibly be a solution? Isn't this an inherent problem with federation? You can't un-share information

[–] [email protected] 19 points 9 months ago (1 children)

But you can delete your copy, ask others nicely to delete theirs, and refuse to accept more copies of the same thing.

I'm not sure if Lemmy supports any of this, but it seems pretty important for e.g. child porn.

[–] Honytawk 4 points 9 months ago (1 children)

How can you refuse to accept more copies of the same thing, when you deleted all the version it can compare itself to?

[–] [email protected] 12 points 9 months ago

When you get a deletion request, hash the bytes and store the hash.

[–] [email protected] 9 points 9 months ago (2 children)

There could be a legally binding contract stating that any deletion request must be forwarded to all parties it was send to, and that upon receiving such a request the data must be deleted. I do not think this would be unreasonable to ask to servers, especially as this deletion receipt could be fully automated.

[–] [email protected] 7 points 9 months ago (1 children)

Or there could be a delay of one minute before posts get federated, giving the user the option to quickly delete a comment or post.

[–] [email protected] 1 points 9 months ago

That’s a great idea :) Maybe you can submit a feature request for this on GitHub?

[–] [email protected] 2 points 9 months ago (2 children)

legally binding contract

Maybe, but consider that federated servers may be located in entirely different legal jurisdictions, so this might be hard to create, let alone enforce.

[–] [email protected] 1 points 9 months ago

I don't think it will ever come to a lawsuit, nobody would ever want that. Under the GDPR you must be able to delete content, and the server must communicate this to all federated servers. So in effect, there is already a legally binding agreement between all servers that this deletion request must be honored (for people physically in the eu), it's just not.

lemmy servers are already breaking the GDPR if they don't follow forwarded deletion requests from people in the eu. This would just effectively be an extension of this to data from all people.

[–] [email protected] 1 points 9 months ago

When writing a contract you can just specify which legal system the parties agree to use - this is quite common.

[–] [email protected] 4 points 9 months ago (1 children)

The images aren't federated afaik. They live on your home instance. If somebody else views them, they're loaded directly from there.

However there's no link between the images and your account. You can't delete them yourself because Lemmy doesn't store the "delete token". They're effectively orphaned.

[–] [email protected] 2 points 9 months ago (1 children)

Not true, images are federated. Sometimes they are not copied if your instance has a lower image size limit than the instance the image came from (if the image is too large), but generally images are copied between instances.

[–] [email protected] 2 points 9 months ago (1 children)

I did check a few embedded images, and they still seemed to be served from the original. So I dunno. Maybe they're copied and still served from the original, which would be an odd thing to do.

[–] [email protected] 2 points 9 months ago

Aah the embedded ones in comments? Yes to my knowledge those aren't federated. But pictures posted as posts will be federated.