Lemmy Developer AMA and Dev Update, 2024-01-26, 1500 CEDT

This is a chance for any users, admins, or developers to ask anything they’d like to myself, @nutomic , SleeplessOne , or @phiresky about Lemmy, its future, and wider issues about the social media landscape today.

NLNet Funding

First of all some good news: We are currently applying for new funding from NLnet and have reached the second round. If it gets approved then @phiresky and SleeplessOne will work on the paid milestones, while @dessalines and @nutomic will keep being funded by direct user donations. This will increase the number of paid Lemmy developers to four and allow for faster development.

You can see a preliminary draft for the milestones. This can give you a general idea what the development priorities will be over the next year or so. However the exact details will almost certainly change until the application process is finalized.

Development Update

@ismailkarsli added a community statistic for number of local subscribers.

@jmcharter added a view for denied Registration Applications.

@dullbananas made various improvements to database code, like batching insertions for better performance, SQL comments and support for backwards pagination.

@SleeplessOne1917 made a change that besides admins also allows community moderators to see who voted on posts. Additionally he made improvements to the 2FA modal and made it more obvious when a community is locked.

@nutomic completed the implementation of local only communities, which don’t federate and can only be seen by authenticated users. Additionally he finished the image proxy feature, which user IPs being exposed to external servers via embedded images. Admin purges of content are now federated. He also made a change which reduces the problem of instances being marked as dead.

@dessalines has been adding moderation abilities to Jerboa, including bans, locks, removes, featured posts, and vote viewing.

In other news there will soon be a security audit of the Lemmy federation code, thanks to Radically Open Security and NLnet.

Support development

@dessalines and @nutomic are working full-time on Lemmy to integrate community contributions, fix bugs, optimize performance and much more. This work is funded exclusively through donations.

If you like using Lemmy, and want to make sure that we will always be available to work full time building it, consider donating to support its development. Recurring donations are ideal because they allow for long-term planning. But also one-time donations of any amount help us.

BlanK0,

Are there any plans on adding features that enable easier interaction with other federated platforms like mastodon and peertube (for example being able to comment/interact with peertube videos and mastodon posts)?

nutomic,
@nutomic@lemmy.ml avatar

You can already interact with Peertube videos and follow their channels. Thats possible because Peertube also federates groups (communities). With Mastodon thats not possible because it doesnt have groups, and Lemmy doesnt support content outside of communities. At least not without a full rewrite, which doesnt make sense considering that KBin and dozens of different microblogging platforms already exist.

Kaboom,

What is your take on right wing subs like !conservative ?

Should they get the boot? Good for growth? What do you think?

soviettaters,

Why should there not be right wing subs? Would we not just be becoming like Reddit by banning them?

Inui,

Do you think the problem with Reddit was that they removed the_Donald?

Regardless, this should be an instance decisions and others are free to defederate with any instance hosting content they don’t want to see. Just like what happened to exploding heads.

OnlyTakesLs,

Not soviet, but that removal was unpopular for a reason.

soviettaters,

I don’t think it should be an instance decision. The best part about the fediverse is that we can pick and choose what we want to see.

Inui,

How do you see this playing out? Instances are free to set and enforce their own rules and standards. You can’t force them to host content they don’t want to.

davel,
@davel@lemmy.ml avatar

The way it plays out is bugs-no

I don’t know what mental model someone is working from to draw such a conclusion. A free speech absolutist one? A consumer rights one? 🤷

Omega_Haxors, (edited )

important context: Lemm ee has a conservative c/ run by a pedophile who the admin of that instance protects.

davel, (edited )
@davel@lemmy.ml avatar

Whether there should be right wing comms is up to an instance’s admins, and whether other instances should federate with it is up to the admins of other instances.

As for freeze-peach absolutism, consider the paradox of tolerance.

The USian obsession with free speech comes from the over-application of a first amendment right. That freedom is in fact a restriction on the State to abridge speech, and not a restriction on Lemmy mods or admins.

whoisearth,
@whoisearth@lemmy.ca avatar

What’s wrong with a “right-wing” community? I’m not right wing but I’m definitely not afraid of them. Anything can be solved with education. Why would you censor based on what side of the political spectrum you’re on?

Omega_Haxors, (edited )

Because it signals to actual neo-nazis that it’s safe to set up here, and of course they take their pedophilia and toxicity with them. Remember all those CSAM attacks that were happening? They were all coming from those instances with a reputation for being soft on the right.

They treat passive tolerance as active acceptance, and then throw disastrous temper tantrums when they find out that isn’t actually the case.

nutomic,
@nutomic@lemmy.ml avatar

Remember all those CSAM attacks that were happening? They were all coming from those instances with a reputation for being soft on the right.

Is this your opinion or do you have actual evidence for this?

Omega_Haxors, (edited )

I’ve done a little investigation in the matter but as the admin for lemmy you should have a way better information on the subject.

nutomic,
@nutomic@lemmy.ml avatar

So you are making factual statements with zero facts to support them. Got it.

Omega_Haxors,

I apologize.

possiblylinux127,

I would hope we aren’t going to start kicking people out because of there political views.

davel,
@davel@lemmy.ml avatar

Perhaps you are not aware that some instances already do, and that some—for example hexbear & lemmygrad—have done so since their inception.

Omega_Haxors, (edited )

Conservativism isn’t a political view, it’s a crime against humanity. They have exactly one ““legitimate”” claim (lower taxes) and the rest is shit like “lets make child marriage legal”, “lets murder people for crossing the border”, “lets dogwhistle neofascist hatred” and “lets roll back every human right known to man” and that’s before you get into the MAGA shit which is every form of outright nazism stuffed into a trenchcoat.

Instances with conservative /c are all full of notoriously toxic and anticommunist users who go around making the federation way shittier.

Kaboom, (edited )

So to summarize, you don’t think women, minorities, and the poor should be able to arm themselves? Got it, thanks.

Omega_Haxors,

Conservativism is when guns

Kaboom,

Communism is when you hurt women, minorities, and the poor.

Omega_Haxors,

actually it’s when vuvuzela 9 gorillian dead & no iphone

nutomic,
@nutomic@lemmy.ml avatar

This is so ridiculous I dont even know where to start.

Omega_Haxors, (edited )

You’ve probably better things to do than to go into this, but maybe someone else here can showcase the flaws in my reasoning. All I have to go off of is my own personal experiences and what I see is a direct translation of right-acceptance converting directly into right-wing toxicity.

possiblylinux127,

Just to be clear, being conservative is very much a political view. No one is making you agree with there views and no one is making you spend time on conservative communities.

Additionally you are complaining about them being anti communist but you are very anti conservative. Maybe we should just keep those two ideas in there respective communities. I certainly don’t care for people posting about communism or conservative ideas on random posts.

Omega_Haxors, (edited )

Well that’s just the thing, they don’t keep to themselves. I’ve no problem with people having different views to my own. That changes when they start harassing anyone who expresses views distasteful to them. Maybe that’s justifiable in cases where the “other side” are actual nazis, but it’s a lot harder to make that same justification when it’s the other way around. What I care most about is freedom of speech which doesn’t just turn into “oops all nazism” because you can get that nearly everywhere these days and i’m already starting to see traces of that taking root here too, at least on some instances.

hendrik, (edited )

I think the instance admins should handle that. Lemmy itself should be a open and agnostic platform. Admins should use defederation and block specific communities.

(My oppinion, I’m not associated with Lemmy development.)

nutomic,
@nutomic@lemmy.ml avatar

Lemmy is licensed under AGPL which states that everyone can use it, there are no restrictions based on politics. Besides, “right wing” is not the same as “evil”, the real world is much more complicated than that. If you ask me, the whole right-left classification is way too simplistic and doesnt make sense anymore (if it ever did).

TORFdot0,

I’m not a Lemmy dev but I’m interested in this question so I’m commenting so I remember to check up on this one.

I subscribe to that sub because I feel like it’s important to engage with people that I don’t agree with. Even though the two main contributors to that sub are peculiar in their views, I haven’t seen them break any rules of lemm.ee or post outright hate to any group but democrats.

I know sh.it.justworks had their own drama with a the_donald popup community which led to calls for defederation before the community was banned but if people are posting within the rules and properly moderate their own; we ought to let them post their politics even if we don’t agree.

Omega_Haxors, (edited )

of course sh.itholefor.nazis had a T_d community. I’m not even fucking surprised. This is what happens when you go soft on nazism.

OsrsNeedsF2P,

Regarding funding - Can you give a detailed breakdown of what you’ve gotten per year and from which sources since you started Lemmy?

nutomic,
@nutomic@lemmy.ml avatar

From NLnet we had three funding rounds with 50.000 Euros each.

TimLovesTech, (edited )
@TimLovesTech@badatbeing.social avatar

I think most of that can be taken from here: join-lemmy.org/donate. If you click through each donation method they each list goals/monthly intake.

EDIT - Minus crypto of course!

OsrsNeedsF2P, (edited )

It also doesn’t have historical data on i.e. how much NLNet contributed (which iirc, was a lot*)

*(a lot in terms of donations - Lemmy devs are living below poverty line. Please donate)

SovietReporter,

When are we getting polls in a similar format that Reddit does? I would love to have those!!

dessalines,

No specific time, but they are in the linked roadmap for this year.

0x2d,

nice!

hendrik, (edited )

Have you put measures into place to assure the quality of future updates? In the past several updates have caused issues. And recently 0.19.x broke federation for the most of us. And it took weeks to fix it and make Lemmy usable again.

nutomic,
@nutomic@lemmy.ml avatar

We publish multiple release candidates and run them on lemmy.ml before the final release. That allows the community to test changes. We dont have a quality assurance team, and developers are notoriously bad at testing their own code, so I dont see what we can improve in this regard.

hendrik,

developers are notoriously bad at testing their own code, so I dont see what we can improve in this regard.

Sounds like software development… I mean automated tests help. But you’re developing a distributed/federated platform. Unit tests won’t do it. Maybe infrastructure that spins up a small fleet of instances and checks their ability to federate posts, delete comments and simulates interaction. That’d assure the most important aspects keep working. And I think there are tools for that available. But I get it. It’s complicated, there are real-world instances with special (niche) setups, you’re constrained, it has to be worth the effort and there are other important things to do.

Maybe just do your best not to break too many things and we (users) can complain and have another discussion only if it’s a reoccurring problem. 😉

nutomic,
@nutomic@lemmy.ml avatar

We have lots of unit tests, and also a test suite which launches a couple of local lemmy instances and ensures that they federate as expected. But it’s not possible to cover every single functionality, at least not with our limited resources. The problems all happened with things that are difficult to test and had major breaking changes in this release. In the future we won’t need such breaking changes so there will be less problems.

Also keep in mind that Lemmy is provided for free and as is. We have no legal obligation to users. And you can always stay with an older version if you want more stability.

hendrik, (edited )

Thank you very much for explaining, and the whole AMA.

Concerning the “providing the project for free”… I think that’s too simplistic. I mean users have expectations anyways. And you must have some motivation to maintain an open source project. Otherwise you wouldn’t put it out there, engage with your users, fix their issues and incorporate their requests. Or you’d make that clear in the first line of the Readme as some people do.

I think open source is giving and taking. It’s not about legal obligations (we usually waive every responsibility in every open source license.) But perhaps ethically. I as a user feel obligated to honor and respect your work and the time you’ve put in. And I shouldn’t expect anything except for everyone abides by the license. But the devs aren’t the only one putting in time and effort. Downstream are admins who run the actual instances. There might be an ethical obligation to not waste their time either. And there are moderators and users who make the platform become alive. They also offer their time for free and are part of the ecosystem, like the developers are. And ethically it is correct to treat people nice who put in a few hours to prepare a proper pull request and work towards the same goal as core developers.

And there are a few unique circumstances. This is a social network/link aggregator. And as such it relies to some degree on the network effect. It won’t work without a certain amount of users and them being happy here. Lemmy devs seem (to me) invested in the project and not just coding something for money. So you want it to be successful and catering for users is part of the equation. Additionally the users of a social network trust the platform with their private data. You can’t take legal responsibility for that. But if you accept users doing that, it’s at least an ethical obligation to make good choices.

And the situation is: Since you have a few full-time developers… It’s not a hobby project anymore. So it’s a bit more complicated. And money might come with expectations. I personally differentiate between donations that are meant as a bounty, this money comes with obligations. And donations for the great work you’ve done so far. These come without.

I think you’re doing a good job. I especially like that Lemmy development doesn’t seem to be focused on growth above all. You could implement things differently and completely focus on not showing user-facing issues, in order to assure fast growth. Or write a Reddit clone like some people would like, including gamification, awards and stuff. But you don’t seem to be interested in that. And that aligns well with what I like. I want a nice place to engage with people. I don’t need another platform that is commercial and does things in order to be successful at the market.

I’m grateful. There are still bugs and a few more complicated annoyances I’d like to see being addressed. But I really enjoy spending some of my time here.

aeharding,
@aeharding@lemmy.world avatar

What does lemmy v1 look like?

OsrsNeedsF2P,

Nutomic said in another comment:

Yes once we reach 1.0 there will be way fewer breaking changes and then it will be easier to do more frequent releases.

So maybe that?

nutomic,
@nutomic@lemmy.ml avatar

Yes thats it, 1.0 just means there are no more breaking changes (until we decide to release 2.0).

aeharding,
@aeharding@lemmy.world avatar

I’m more curious what it will take to get to 1.0, rather than what happens after 1.0.

nutomic,
@nutomic@lemmy.ml avatar

We want to change the API paths to make them more consistent, and have separate endpoints for image uploads (eg POST /api/v3/account/avatar). Not much else really.

dessalines,

I’m sry I can’t give a good answer there… but to me it seems like when we go a certain length of time (not sure how long) without any breaking changes. That will have proven that the API as it exists is stable and well-formed.

That seems a long way off atm, because of all the features and new fields we’ve been adding and modifying on existing data structures.

possiblylinux127,

Will Lemmy ever become more of an organization? I’m slightly concerned about hostile take overs and or major changes that could be driven by personal views or bias.

Also a organization could facilitate cooperation and organize events.

pingveno,

If Lemmy does become more of an organization, it would be nice to have a level of public assurance over any control exerted by the organization. A lot of people see that the lead developers of Lemmy are communist and shy away from it based merely on that. I have one of the oldest accounts on Lemmy, I’ve seen plenty of them, and my impression is that they have conducted themselves with only the utmost ethics. However, it can still help newcomers who don’t want to feel like someone might be breathing down their neck.

phiresky, (edited )

Lemmy is somewhat protected by being an AGPL-licensed project, preventing proprietarization. If there’s ever a relicensing effort, ba fearful.

I’m not sure what exactly becoming a organization would entail, but so far I’d say the development part is not really large enough? For me I would start being suspicious when a significant amount of dev power came from compan(ies), but so far no company has shown any interest afaik.

There’s already been a few forks, for example lemmynsfw has made some changes on their side, which nutomic is now looking to integrate back into lemmy.

dessalines,

As a multi-national open source dev team, it would only complicate our lives to try to set up a more formal legal structure.

I wouldn’t be too afraid of hostile takeovers: this is a dev-run-and-controlled project. People will go where the development is, and the federated nature of lemmy protects against the kind of attacks its possible to make against centralized entities.

ademir,
@ademir@lemmy.eco.br avatar

Bomber, Ace of Spades or Overkill?

dessalines,

Overkill for me, but to me Motorhead’s also one of those singles-type bands where the songs kind of stand individually great on their own, rather than the album. So I usually just relisten to a ~40 song greatest hits of theirs.

ademir,
@ademir@lemmy.eco.br avatar

Cool which more bands do you like?

dessalines,

Looking at my most playeds: Radiohead, Bjork, NIN, Sigur Ros, GYBE, the War on Drugs, Soundgarden, Smiths / Morrissey, Blondie, Calexico, Talk Talk, Aimee Mann, Public Enemy, RATM, M83, Pavement, Explosions in the Sky, Sufjan, Pumpkins, Tallest Man on Earth, Andrew Bird, Massive attack, Soda Stereo, Yes.

U?

OsrsNeedsF2P,

What’s coming in the Lemmy 0.20 release?

nutomic,
@nutomic@lemmy.ml avatar

Any breaking changes which get implemented in the meantime. There are no specific plans.

OsrsNeedsF2P,

Regarding server architecture - How many users can the Lemmy network, or the fediverse as a total scale to, assuming the average person posts once per day and reads ~50 comments/posts a day?

nutomic,
@nutomic@lemmy.ml avatar

Lemmy supports horizontal scaling, so in theory it is only limited by the amount of servers you can afford. Of course there are always unpredictable bottlenecks which need to be fixed, but no inherent limitation.

phiresky,

The ActivityPub protocol lemmy uses is (in my opinion) really bad wrt scalability. For example, if you press one upvote, your instance has to make 3000 HTTP requests (one to every instance that cares).

But on the other hand, I recently rewrote the federation queue. Looking at reddit, it has around 100 actions per second. The new queue should be able to handle that amount of requests, and PostgreSQL can handle it (the incoming side) as well.

The problem right now is more that people running instances don’t have infinite money, so even if you could in theory host hundreds of millions of users most instances are limited by having a budget of 10-100$ per month.

nutomic,
@nutomic@lemmy.ml avatar

In the future it could make sense to make a protocol extension to send multiple activities in a single HTTP connection. But for now its probably not worth the effort, considering that it would break compatibility with other Fediverse platforms.

OnlyTakesLs,

Should there be a way for users to formally protest mods? Or admins?

nutomic,
@nutomic@lemmy.ml avatar

I dont know, should there?

Blaze,
@Blaze@discuss.online avatar

I’m curious too, depending on the instance, users can general escalate to admins, and then leave the instance if necessary.

Alsephina,

Well right now a user can already just message the admins about any problematic mod and let them decide so…

SovietReporter, (edited )

Yes!!! Mods becoming crazy with power is a real thing!!

dessalines,

I don’t think we should bake in anything to the software, but instances having meta and feedback communities are a good idea.

InfiniteFlow,
@InfiniteFlow@lemmy.world avatar

Is federated authentication being considered for the future? The federated model of the fediverse is great, but it runs into problems when instances “die”, you want to access different servers as they federate with different things, etc. leading to the need of having multiple accounts. If there were a decentralized network of auth servers, could use the same credentials everywhere.

nutomic,
@nutomic@lemmy.ml avatar

Then your (hashed) password would have to be copied to all servers, and the email as well for password reset. Seems very problematic for security.

dessalines, (edited )

No, Activitypub isn’t based on a migrating authentication / single-sign-on model, but on server-to-server communication.

Instances with many users already on them dying should be a rare occurrence, and its unfortunate that it happens not just for us, but in the whole fediverse.

Ludrol,
@Ludrol@szmer.info avatar

I didn’t ask early enough but I will shoot anyway.

What you intend to do with !anime? There isn’t an active mod there and community is unwilling to continue using it due to defederation with ani.social The problems with community will keep arise due to very nature of Japanese animation and differences in acceptable social norms in western world.

Grayox,
@Grayox@lemmy.ml avatar

Why did they defederate

Ludrol,
@Ludrol@szmer.info avatar

lemmy.ml/post/10284661

No clear reason stated.

ForumYesterday,

It’s a known pedophile instance.

pocketman_stuck,
Blaze,
@Blaze@discuss.online avatar

I see it on 19.3, your server is still on 19.2, maybe that’s why? https://discuss.online/pictrs/image/1953c20b-bc95-4f42-bdc0-a5d08d97b140.png

nutomic,
@nutomic@lemmy.ml avatar

Yep that was a regression which was recently fixed.

syd, (edited )
@syd@lemy.lol avatar

deleted_by_author

  • Loading...
  • dessalines,

    Sure

    nutomic,
    @nutomic@lemmy.ml avatar

    No problem, thats why its called AMA. Of course its possible that your questions wont get answered.

  • All
  • Subscribed
  • Moderated
  • Favorites
  • announcements@lemmy.ml
  • localhost
  • All magazines
  • Loading…
    Loading the web debug toolbar…
    Attempt #

    Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 18878464 bytes) in /var/www/kbin/kbin/vendor/symfony/http-kernel/Profiler/FileProfilerStorage.php on line 171

    Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 10502144 bytes) in /var/www/kbin/kbin/vendor/symfony/error-handler/Resources/views/logs.html.php on line 25