Lemmy

12576 readers
36 users here now

Everything about Lemmy; bugs, gripes, praises, and advocacy.

For discussion about the lemmy.ml instance, go to !meta@lemmy.ml.

founded 4 years ago
MODERATORS
1076
 
 

Disclaimer: I am a multiply marginalized person on the radical left.

I see various issues with the slur filter.

The biggest one, I feel, is that many, many people in marginalized communities have reclaimed slurs. I'd go as far as to say that some (myself included) strongly identify with reclaimed slurs. The word "queer" is a very common example. Will those who identify with it not be allowed to express themselves fully here? The ban on slurs actually makes me feel far less welcome here as a marginalized person as a part of my identity that I am proud of, embrace, and find power in is banned. Most of my friends with various marginalizations have reclaimed slurs as well and would not feel welcome in this space. The reclamation of slurs can be an essential tool for marginalized people. Who are non-marginalized people to decide which slurs marginalized people are allowed to reclaim? I encourage you to read more about this, because it is incredibly important.

Additionally, the code used to filter slurs is flawed. Does it handle if users use alternate Unicode characters to write slurs? Replacing "O"s with "0"s? Slur filters have been implemented time and time again and the result is always the same: users get more creative in their use of slurs or even invent new ones. There are so many variations of slurs, and language is far too complex for this to be enforced with a simple regex. It's also critical to consider different languages here. If Lemmy centers English in its slur filtering, it will inadvertently censor non-English words that are not slurs as well as not censoring non-English words that are. Not to mention -- centering English is incredibly problematic.

Finally, the code is easily removed, and I speculate that if anything, it will lead to a fork of Lemmy by the alt-right even sooner that will gain significant traction. At the very least, marginalized users such as myself who simply wish to reclaim slurs will have to go through the labour of modifying the code and hosting our own instances.

tldr: as a multiply-marginalized person with experience developing and running community platforms, this is a huge mistake, and will end up alienating many of those that you wish to protect.

Please reconsider this change as it is far more nuanced than it appears on the surface. Thank you.

edit: a simple solution would be to allow individual users the ability to filter out slurs (or phrases, or whatever) that they are uncomfortable with.

1077
1078
 
 

Besides @dessalines and me who work on Lemmy full time, there are many people who contribute to Lemmy without any financial reward. Those include translators, community moderators, programmers and others. Without them, Lemmy wouldn't be what it is today.

Because we are funded by donations, we aren't able to reward these contributors with money in any useful quantity. Besides, not everyone wants to receive money and turn this into a kind of job. So what we can do is try to reward people in other ways. Here are some ideas:

  • Code Contributors: We are starting to write changelogs for every release now, and will mention who contributed to the code. We could also include a list of contributors directly in Lemmy, eg in an about page (here is an example from Syncthing).
  • Translators: Mastodon credits them by mentioning their names in the changelog. I have another idea, we could show the names of translators directly inside Lemmy, to the people who are using that language version. So if someone uses Lemmy in Spanish, they would see the names of Spanish translators (could be on an about page, or next to the language setting).
  • Documentation Writers/Translators: Seems pretty straightforward, we can mention them on the first page of the documentation.
  • Mods/Admins: These are different from the previous ones, which are related to Lemmy development, while this is about using Lemmy. Moderating is generally a pretty thankless job, and I can't think of any projects or websites that reward it especially well.
  • Any others that I forgot to mention?

One thing to note is that this shouldn't cause much extra work for us developers, because then we would have less time to fix bugs and implement features. So it should be possible to automate these tasks (eg with a script that reads the names of contributors from git), or someone should volunteer to take care of manual tasks.

Another thing I am wondering is how to treat contributions of different sizes. Should someone who translates a single string be listed in the same way as someone who does the translation for a whole language? Maybe we could set a minimum contribution size for people to be listed, or order the names by the size of their contributions?

I am curious to read your ideas and suggestions, especially from those who already contribute to Lemmy (or similar projects).

1079
 
 

Where did the API documentation in the documentation go? There used to be this great listing of all of the API calls but it seems to be gone now?

1080
4
submitted 3 years ago* (last edited 3 years ago) by krawieck@lemmy.ml to c/lemmy@lemmy.ml
 
 

lemmur logo

Lemmur is a mobile lemmy client that I and @shilangyu have been working on for quite some time. It's supposed to give you seamless experience when using multiple instances.

It's available for android, windows and linux, although it is mainly targeted towards mobile devices. The experience on other platforms might be less satisfactory.

This is only an alpha release so not everything will be working, there are some parts of the app that aren't finished. But we believe it is usable enough for people to browse their favorite instances.

At the moment we would prefer to focus on fixing bugs rather than implementing arbitrary features so if you have any bugs or crashes please let us know in the comments or create an issue on github. Screen recordings are welcome (github now supports uploading .mp4 and .mov files), it's always easier to understand the problem through visuals rather than words only.

If you'd like to see a version for iOS on the apple app store or just generally would like to support the development you can chip in over on patron or buymeacoffee, which will help cover the $99 developer license.

Here are some screenshots of the app: https://imgur.com/a/B5XhhXQ

1081
 
 

Here are the milestones and payouts we agreed on with NLnet.

  • All payouts will be split 50:50 between /u/dessalines and /u/nutomic
  • Milestone ordering is only for reference, they may be completed in any order
  • Total amount: 45.000€

1. Federation feature complete

Nearly all back-end activitypub actions (voting, commenting, posting, etc) complete.

Amount: 4500€

Tasks

  • Community updates: make sure nsfw and sidebar changes propagate
  • Federate post::stickied
  • Fetch all inreplyto objects: #694
  • Proper CommunityFollower forwarding: #662
  • In all the receives, in addition the the signature verify, do a check to make sure they are actually allowed to do the action.
  • Remove options like "make mod" or "make admin" for remote users
  • Create a "linked instances" page (from the whitelist)
  • Issue link (everything left under Backend -> Features, and Frontend)

2. Security

Various security-related checks for federated activities completed.

Amount: 6000€

Tasks

  • Ensure URLs start with https:// and verify attributedTo, ID and pubkey URLs are from the same domain/actor
  • Get rid of unwrap() in apub code
  • Apply bans, slur filters, length checks etc to posts coming in over activitypub
  • Go through all the TODO and see if there is anything important
  • Implement instance blocklist
  • Remove tags like <script> from federated html before rendering it (eg in embeds)
  • Try to fix any remaining security issues
  • Setup security@lemmy.ml address with PGP
  • Issue link (Backend -> Security and Maintenance)
  • Once this is finished we should be ready for a production release (but we might wait until things like tests are finished)

3. Refactor Rust code

Refactor rust code to use new activitystreams library, and clean up technical debt.

Amount: 3000€

Tasks

  • Abstract API code to be able to use federated authentication, not just JWT auth. #653
  • Migrate to asonix' new activitystreams library
  • Split the code into seperate crates, like lemmy-database, lemmy-api, lemmy-apub
  • Speed up compilation time
  • Address technical debt
  • Issue link

4. Documentation for ActivityPub implementation

Complete documentation for other activitypub implementors, based on communities.

Amount: 2250€

Tasks

  • Describe how we are using ActivityPub
  • Different documentation targeted at developers, admins and users
  • Explain how instance blacklist/whitelist works (doesn't affect data that was already federated before)
  • Add activitypub json outputs to docs

5. Tests for ActivityPub implementation

Complete integration tests for all activitypub actions.

Amount: 3000€

Tasks

  • Split integration tests into multiple files, extract helper functions
  • Extend integration tests
  • Add tests for malicious behaviour (eg invalid http signature)
  • More unit tests
  • Add integration test that verifies ActivityPub sending/receiving (using raw json)
  • Look into using FediDB
  • Issue link

6. Rework Caching / Views

Complete more efficient caching system, since materialized view refreshes are currently locking reads.

Amount: 2250€

Tasks

  • Rework materialized views into fast tables. #606
  • Rewrite all SQL triggers to fill fast tables.
  • Do performance comparison.

7. Accessibility

Add accessibility tags to front-end components.

Amount: 1500€

Tasks

  • Add aria tags to all front end components.
  • Reach out to a community who can test other dynamic components (popups, etc).
  • Implement results of NGI0 Accessibility review

8. Federated Moderation

Allow federated users to be added as moderators of communities on non-local instances.

Amount: 6000€

Tasks

  • Ability to add community moderators that are users on other instances, who have full moderation abilities. IE, community mods don't need to live on the same instance as the community. (This will be important later for private communities too)
  • Federated moderation actions (ban, removes, etc)
  • Ability to appoint federated moderators

9. Private Communities

Allow the creation of private communities.

Amount: 4500€

Tasks

  • Private communities #187
  • Communities have view, submit, vote, and comment priviledges.
  • Add integration tests to make sure communities are properly invisible to non-approved users.

10. Private / Invite only instances

Complete private / invite only instances (currently all instances are public, and registration is open to the public). Amount: 4500€

Tasks

  • Private / Invite only instances #209
  • Add email verification
  • Customizeable questionaire

11. Blocking Users / Communities

Allow users to block other users and communities.

Amount: 6000€

Tasks

  • Users can block other users or communities
  • If user A blocks user B, then all interaction between these users is impossible and they can't see each other's posts
  • Also works for federated users / communities
  • Issue link

12. Create a project website for Lemmy

Create a project website for Lemmy (similar to joinmastodon), with a project description and list of instances.

Amount: 1500€

Tasks

  • Project description
  • List of instances
  • Issue link

13. Additional search functionality

Add additional functionality to Lemmy's search page, such as community and category filtering, and url searching.

Amount: 2250€

Tasks

  • Add community filtering for posts, comments
  • Add category filtering for communities
  • Add URL search type
  • Issue link