Lemmy maintainer. Like programming in Rust.

Also posting at https://fedibb.ml/view_profile?u=2

  • 152 Posts
Joined 3Y ago
Cake day: Jan 17, 2020


Activitypub groups are nothing new, they have been used in Friendica, Hubzilla, Peertube and Lemmy for years. I described how it works in FEP 1b12. Mastodon decided to create a different implementation which isnt compatible with any of these.

You can already create a community for your blog and use the setting “only mods can post”. That should be all you need in terms of functionality.

A single-document basic [Fediverse] interop spec, ie.

This could be done as a “minimal profile” of a stack that contains a subset of AP [ActivityPub], AS [ActivityStreams], and Webfinger

This would be even easier if you leave out Webfinger. To my knowledge Mastodon is the only project that requires it.

A branding program for products that have passed the test suite

I doubt that this can really work in an ecosystem without any central authority like the Fediverse. Whos stopping someone from putting the label on their software wrongly. Or more realistically, who will remove the label from a software which passed the test suite before, but fails after a new test was added?

A set of web “intent buttons” for Like, Follow, Post, etc that work across sites

There is already remote follow but the others might be useful additions.

The next few points are rather vague and need more details to discuss properly. But its nice to see that more people are starting to think about these improvements.

There is a pull request up for groups in Mastodon, but it hasnt been updated in a long time. It is also completely incompatible with Lemmy.


Looks like there is still something wrong with the installation from crates.io. In this case you will have to clone the git repository manually and compile from there.

git clone https://github.com/LemmyNet/lemmy.git
cargo build --release

I published that release manually and messed something up. Anyway the latest version is 0.17.2 so you should use that. I just noticed that it also wasnt published correctly on crates.io but that should be fixed now.

Can you open an issue for this? Its a tricky issue because it only happens randomly, without a clear way to reproduce it. So if you have any useful information like steps to reproduce or logs (browser console and server) then post that on Github as well.

Announcing crate activitypub-federation 0.4.0: Major rewrite with improvements to usability and documentation
I want to announce a new version of the activitypub-federation crate. Over the last weeks I worked on major improvements to the usability and documentation. It now includes an extensive guide on getting started to implement federation from scratch, and also an example project which can directly be deployed to a server and federate with projects like Mastodon. The library takes care of basic functionality like HTTP Signatures, activity sending, and fetching data from other servers. Application developers can focus on the main logic, and treat federation as another form of API. There is no restriction to the content being federated: you can implement a microblogging platform, link aggregator, video hosting site or any other type of social media. The goal is to encapsulate all basic functionality, so that developers can easily implement federation without any prior knowledge. Using this library can help to share core Activitypub logic between different projects, so that the same code doesn’t have to be implemented and maintained separately by each project. This way improvements can benefit everyone. It also encourages the use of effective patterns to make Rust and Activitypub work together. All of this has been proven to work in Lemmy which uses this library and is the biggest Activitypub project written in Rust. https://docs.rs/activitypub_federation

Does anyone have access and can share the paper here? Specifically I would like to know how this can be built or bought, how it works and how accurate it really is. The article mentions an operating live of six months which seems very short, depending on the cost.

You can just take the smallest vps available and it will be sufficient, unless your instance is very large. For distributions Ubuntu or Debian should be easiest.

There is a repost button when you view a post in Lemmy (icon with two squares).

Yes this is no problem. Lemmy-ui connects to the Lemmy backend over websocket api. As long as both have the same version they will work together. For example official Lemmy backend installed via Docker, combined with ith manually installed lemmy-ui directly from git repository. You can apply RTL changes to lemmy-ui without any problems as long as you don’t change the api code.

In general backend and frontend should also be compatible if they only differ in patch version (eg 0.17.0 backend with 0.17.1 frontend). But this is not being tested so there is a higher chance that things break.

It sounds like people who are commenting there dont know about Lemmy, or about the Group federation FEP.

Everything in this thread is locally on lemmy.ml, so theres no federation involved ;)

The language should be chosen automatically if possible: For posts: - If the community only allows one language, it should select that - If the user only has one language, it should be selected by default - Otherwise, if the overlap of user languages and community languages contains one item, that should be selected by default

  • For comments it should automatically select the language of the parent post/comment

So communities should definitely set their allowed languages to help automate this. Instances as well, as this will also limit community languages to be a subset of instance languages.

Its possible that there are still some bugs. I also think that for the default language selection when posting, “undetermined” should not be considered

cc @dessalines@lemmy.ml

Posts would get federated once they are approved by an admin.

For that it might be more effective to sort by new comments on the main page.

I am working on a feature which might help with that. What do you think about it?


I never suggested that it would be sufficient. Did you also read the rest of my comment?

Yes and there is nothing wrong with talking about these people. Sure the post is not ideally formulated but thats hardly a reason to shut down an interesting discussion entirely.

It’s one thing to not criminalise a couple of horny 14 year olds, it’s another to create a system that sanctions adults sexually abusing 9 year olds.

Now you are completely moving the goalposts, your previous comment was specifically against legalising underage sex. And no one here suggested that adults should be allowed to sexually abuse children.

I dont think you are discussing in good faith here.

To attempt answering your question, I dont think its solely a matter of sexual development of the body. Mental development is much more important, especially the ability to manage human relationships and set boundaries.

Age of consent is also not simply a binary question of yes or no. One approach I know about is that relationships between young teenagers are only legal up to an age difference of 2 years or so, not with adults. And the older relationship partner holds much higher legal responsibility if any abuse happens. I think that makes a lot of sense. It also makes sense that parents should be able to decide if their child can enter in a relationship with a specific person, after all they know their child best.

How do you come to that conclusion? Age of consent is 14-16 in most European countries, and there are none of the problems you mention.


Please keep it civil. @Amicchan@lemmy.ml has been here for a long time, you shouldnt assume bad intentions based on a single post which might be badly formulated. If there is something you disagree with you can express that, thats what a discussion forum is for. But dont attack a community member because of your own bias. If you dont like to discuss the topic then simply ignore this post.

One Mastodon maintainer participated in the discussion, so at least they are aware of it.

This standard document explains how group federation works in Lemmy and other projects. It can be useful to developers who want to implement a similar federation model.

I see your problem but I dont think this can be fixed with any rule change or Lemmy feature. It would be possible to let people access posts after they are removed by a mod, but that wont help if your account gets banned. Or if your account gets hacked and deleted. Or if the instance goes down permanently for some reason.

If you are worried about your content disappearing, you should keep backups. For example with an API client which regularly downloads everything to a local file. There is also a feature request for a functionality to export an archive with user data. Even better would be an external service like reveddit.com which reads content from the API and stores it.

I suggest you create a new post to discuss this problem, then more people can give their ideas and opinions.

The problem is that languages on your instance’s version of /c/announcements are also limited to English and German for some reason. I thought this might be a bug in that the site languages would also apply to remote communities, but I cant reproduce that. One thing you can check is go into the db, and make sure that select * from local_site; returns exactly one column. Then take the value of site_id and run select * from site where id = **site_id**;. This should show the domain and other data of your instance.

Anyway you should be able to solve it by refetching the community to your instance (by pasting the community url in the search field). If it worked then curl "https://lemmy.schuerz.at/api/v3/community?id=46" | jq.discussion_languages should output an empty array.

Dont worry, we definitely appreciate your effort :)

Did you change the language settings on your instance in between?

Cant reproduce this. Whats the exact error message?

Yes with Activitypub federation you generally have to trust server admins with the data they handle (similar with private messages). Though I suppose it would be possible for communities to anonymize votes when announcing them to followers, then only the admin of the community’s instance could see who voted.

Likes were previously marked as public in federation messages. This obviously didnt make sense, so now they are marked as private.

FYI this will be fixed in Lemmy 0.17

I always thought that .ml was used simply because its free. But what do I know…

Looks like you are running the dev branch of lemmybb which requires Lemmy 0.17 (not released yet). For now you need to run lemmybb release 0.1.2.

It helps a lot to realize that we are not obligated to respond to anyones issue. Wee are providing a software for free, and if sonething cant get it working, thats their problem. They can just not use it, or pay someone for help. Just because I wrote some software doesnt mean I owe anyone an explanation how it works.

In this regard I think it will be helpful if we aggressively close any support requests on Github, and tell people to ask on Lemmy/Matrix, where other people can help them.

So you have the same approach of generating a title from the post body. Only you do it on the frontend and not the backend. In Lemmy that might be a bit complicated because the body is already optional, and we would have to somehow encode that either title or body must be set (or both).

Could you show an example screenshot how that looks like? I cant really imagine it working in Lemmy.

Should Mastodon users be able to create threads on Lemmy?
There have been some requests to make it possible for Mastodon users to create threads on Lemmy. At the moment this is not possible because Mastodon cant set the title field which is mandatory in Lemmy. The same problem affects other projects like Pleroma or Friendica (where title is optional). It is unlikely that Mastodon would make any change in this regard, so a workaround in Lemmy would be necessary. I implemented such a workaround which makes the title optional when receiving a federated post, and uses the first line of the content instead. This workaround could also be made configurable per instance or per community. But to be honest I am not sure the workaround is a good idea in general, as it could result in bad titles, and generally more low-quality posts. Thats why I want to know what the community thinks about it.

Request for build servers
We are looking for someone who would be willing to provide a build server for Lemmy's continuous integration. This is used to ensure that new changes and pull requests pass all the checks, and that the code is written well. At the moment we are using a small VPS for this purpose (2 vCPU, 2 GB RAM). This works but is quite slow, and can slow down the development process with unnecessary waiting times. For this reason we are looking for a community member with a spare server or computer, who would be willing to provide it as a build server. There are no specific hardware requirements, but the faster the better. The build server has to run 24/7 and run the [Drone Docker Runner](https://docs.drone.io/runner/docker/overview/). The setup is very easy, especially if your machine is already running docker. If you have such a server and are willing to provide it, please comment below with the specs. Additionally we are also looking for an ARM builder, so that we can provide official releases for this platform as well. Note that some Raspberry Pi models seem unable to build Lemmy (our 4GB memory builder failed), so please try if the compilation works on your device. If you can provide an ARM builder, also comment below with the specs.

fedibb.ml is open for signup!
Give it a try if you are interested in the project. If you notice any problems, you can [open an issue](https://github.com/LemmyNet/lemmyBB/issues). Contributions are also more than welcome. In a few days I will publish the first release, and make a proper announcement.

What would be a good name for a lemmyBB flagship instance?
I dont think lemmybb.ml sounds good, so im looking for other suggestions. https://github.com/Nutomic/lemmyBB

New domains for Weblate, Gitea, Drone (updated)
I have just finished migrating the services mentioned above to new domains, and also to hosting on the lemmy.ml server, instead of my personal server. This makes sense because all of them are used almost exclusively for Lemmy development. It will also allow [@dessalines@lemmy.ml](https://lemmy.ml/u/dessalines) to administrate the services in case of problems. The new domains are: Gitea: git.join-lemmy.org Weblate: weblate.join-lemmy.org Drone: drone.join-lemmy.org There are redirects in place, so you will automatically be forwarded from old domains to new ones.

I have finished writing instructions for deploying lemmyBB on a production server, which you can follow at the link above. Right now the project is still in a very early stage, nevertheless main funcionality is already working. This includes browsing communities, posts and comments, writing posts/comments and registration/login. Before developing the project further, I would like to get some feedback from users and admins. If you are interested, you can follow the instructions to install lemmyBB on your own server. This setup also installs lemmy-ui, in order to access functionality which is not yet available in lemmyBB (particularly moderation). You can also try out lemmyBB on a test server with this setup, namely [lemmybb.lemmy.ml](https://lemmybb.lemmy.ml/). It runs lemmy-ui at [lemmyui.lemmy.ml](https://lemmyui.lemmy.ml/), which shows the same data in another format, and the same account login works on both domains. Registrations are currently open, but keep in mind that this instance is only meant for testing, until other instances are created. If you notice any bugs or want to request new features, please open an [issue](https://github.com/LemmyNet/lemmyBB/issues) or comment here.

LemmyBB, a new frontend based on phpBB
Lemmy is structured in a way that backend (database, api, federation etc) and frontend (html, css, javascript) are completely separate. This makes it possible to create other frontends which can take the place of lemmy-ui. I have long been playing with the thought of having a Lemmy frontend that looks more like a traditional forum. Now I finally found some time to work on this, and get an initial proof of concept working. ![](https://lemmy.ml/pictrs/image/91170cff-8737-4a84-b70d-5e2c4d85bf72.png) ![](https://lemmy.ml/pictrs/image/da0d0bd8-5dcd-4ea8-a3ab-3b8eabf8b85a.png) To reduce the amount of work, the project uses HTML templates and CSS themes from [phpBB](https://www.phpbb.com/), which are open source under GPLv2. This also has the advantage that many preexisting phpBB themes can be used for lemmyBB. It is written in Rust, because it allows for tight integration with the Lemmy API, and is generally a great language for webservers. For now the funcionality is very basic, but nonetheless its already usable. You can: - browse the local post listing - browse comments - login and logout - create new posts and comments To give it a try, run the following commands on your local computer, replacing lemmy.ml with your own instance: ``` git clone https://github.com/Nutomic/lemmyBB.git LEMMY_INTERNAL_HOST=https://lemmy.ml cargo run ``` If there is any specific feature that you would like to see added, please [open an issue](https://github.com/Nutomic/lemmyBB/issues). For now there arent any instructions for deploying lemmyBB to a server. If you would like to do that, please open an issue as well. This post was made from lemmyBB.

Presenting Activitypub-Rust crate
[Activitypub](https://www.w3.org/TR/activitypub/) is decentralized social networking protocol recommended by the W3C. It provides a client to server API for creating, updating and deleting content, as well as a federated server to server API for delivering notifications and content. As part of the work on [Lemmy](https://join-lemmy.org/), we have implemented some high-level abstractions for handling the server-to-server protocol in Rust. These abstractions are now available as a standalone library. The main features are: - Data structures for federation are defined by the user, not the library. This gives you maximal flexibility, and lets you accept only messages which your code can handle. Others are rejected automatically during deserialization. - ObjectId type, wraps the id url and allows for type safe fetching of objects, both from database and HTTP - Queue for activity sending, handles HTTP signatures, retry with exponential backoff, all in background workers - Inbox for receiving activities, verifies HTTP signatures, performs other basic checks and helps with routing - Generic error type (unfortunately this was necessary) - various helpers for verification, (de)serialization, context etc Documentation is currently lacking. If you want to get started with the library, best look at the example. The code has already been used in production as part of Lemmy for a long time, without any notable problems. However, ergonomics are lacking and need to be improved. There are also many additional features which would be worth implementing. See the project readme for details. Contributions and suggestions are very much welcome! You can find the project here: [https://github.com/LemmyNet/activitypub-federation-rust](https://github.com/LemmyNet/activitypub-federation-rust) [https://crates.io/crates/activitypub-federation](https://crates.io/crates/activitypub-federation)

Free hosting for liberal/mainstream political instance
Lemmy.ml has long had some political conflict among the userbase, especially in communities like worldnews. This is because the instance is composed of both leftists (anarchist/communist) and liberals (those who agree with the mainstream political views in western countries). Additionally, the instance admins all belong to the former group. Recently we made an announcement offering [free Lemmy instance hosting](https://join-lemmy.org/news/2022-03-17_-_Free_Lemmy_instance_hosting) for one year, for non-politics instances. We are hereby making a similar offer to host a liberal or mainstream political instance, which can accomodate those who are unhappy with lemmy.ml moderation. This has many advantages. Instance admins have full power to set the rules, block federated instances (like lemmygrad.ml), or remove unwanted content. An administration team that is closer aligned politically would certainly be an improvement for some of the users here. So if you are interested to host such an instance, send an email to contact@join-lemmy.org some relevant details about yourself. You will also have to buy a domain. We will only host one such instance, so if multiple people are interested, you should coordinate among yourselves. As in the original offer, the hosting will be limited to one year. On a side note, we would also like to help with the creation of a general-purpose instance that is less focused on politics than most of the existing instances. This is fully within the terms of the initial "free instance hosting" announcement, so if you are interested, send us an email!

Lemmy 0.15.4 released
We just released a new patch which fixes an important federation problem. Due to a mistake in the code, activities were only sent out once, even if delivery failed (e.g. because the target instance is down, or a temporary connection issue). Instance admins should definitely upgrade. This problem is fixed, so that failed deliveries are retried up to 9 times, with exponentionally increasing intervals. The only limitation now is that it will not keep retrying after Lemmy is restarted, but that case should be less common. [PR link](https://github.com/LemmyNet/lemmy/pull/2109)

Pretty interesting video, if you stop watching at 21:10. After that its just "china bad" scaremongering and other nonsense.

The domain was included in a spam list, which meant that confirmation emails couldnt be delivered, and signup was impossible. Now the problem is fixed, so if you would like to translate Lemmy into your language, register an account and get started. You can also join the [Lemmy Translations](https://matrix.to/#/#lemmy-translations:matrix.org) Matrix chat.

Do we really need self upvotes in Lemmy?
I never really thought about the automatic self upvote on Reddit and Lemmy. But after reading this article [Dont let me like my own post](https://yujiri.xyz/theory/selflike), i'm wondering if we should just get rid of it. Its not really adding anything, or does it? Plus removing it would slightly simplify the code, and slightly less federation messages would get sent (probably unnoticable in practice).