Lemmy

13479 readers
67 users here now

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

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

founded 5 years ago
MODERATORS
551
 
 

I'm hoping to start a dialogue about the current use of descriptive community names, usernames, lack of semantic URLs, and other usability issues on the Lemmy platform. I say dialogue because I am new to Lemmy and I can appreciate that some things may be done differently here for specific reasons.

This is not my sandbox but I'd like to see a castle here someday nonetheless, and I'm willing to help make that happen if there's an appetite to see these core issues addressed:

1. Community display names

Community display names should not be used in any meaningful way on the platform. They should not be displayed in the feeds, nor in community search results. Personally, I don't think they should be used anywhere except as a byline on the community's feed.

These descriptive names are not unique and it is trivial for anyone to create a community and change its display name to match that of another on the same instance. This clone will appear right alongside the legitimate community in search results, page feeds, and even moderator lists (such as those viewed on profile pages).

Many community display names are so long that they are truncated when viewed in mobile apps, adding to the ambiguity.

It is also impossible to know the actual community name until a link is hovered over (impossible on mobile) or actually visited (potentially dangerous).

2. User display names

Similar to community names, these descriptive names should not be used in any meaningful way on the platform. There is nothing to stop me from changing my display name to that of a site admin, moderator, or user, and then creating posts under the guise of that person. Again, there is no way of knowing the actual username without hovering over the link (impossible on mobile), or visiting the user's profile directly.

Another side effect of showing display names in the feed is that some usernames appear as single emoji or with emojis in their name, which is distracting at best and annoying at worst.

In my opinion, display names should be restricted to a user's profile page, similar to how GitHub implements usernames and full names. Post feeds, search results, and any other meaningful place should display the unique username only.

3. Semantic (clean) URLs

A GitHub issue discussing cleaner URLs has been open since July 2020, which leads me to believe this isn't a priority. I won't list the many reasons why user-friendly, SEO-friendly post slugs are important today, as Wikipedia already has it covered (and with a clean URL). This merits of clean URLs have been written about extensively for more than a decade. The bottom line is that this:

https://lemmy.ml/lemmy_support/72hsHD/qol_usability_concerns

...or even this:

https://lemmy.ml/lemmy_support/563505

...reveals a lot more about a link before I click it than this:

https://lemmy.ml/post/563505

It helps to understand the link destination before you click it, and this is an issue that will only get messier if left unaddressed for too long.

4. Sanitized post titles

Last week, I noticed that users are able to include markdown in their post titles, allowing for `code` syntax highlighting in the title itself. This is a bad practice, prone to abuse in the long run as some users will increasingly try to draw attention to their posts.

5. Link posts don't link to the link

I fully appreciate that Lemmy isn't trying to be a Reddit clone but as a link aggregator platform, I'm surprised that link posts do not actually link to the submitted hyperlink. This contradicts not only Reddit, but other link aggregator services, including Hacker News and Lobsters. Currently, the user has to know to click the thumbnail instead of the post title, or enter into the post and then click the title a second time to visit the submitted link. This is just not intuitive.

552
 
 

We’re about to enter another Reddit mass migration phase starting tonight. We’ve already attracted the users most actively engaged with the protests and Reddit’s changes—users who are driven enough to put in the effort to grow the Fediverse.

Now we need to make it feel like home to casual users and lurkers. Not just attract them for a few visits, but keep it interesting enough that they stay here in the coming weeks/months.

Major kudos to all the developers working day and night to bring us familiar-feeling apps and interfaces on insanely short timelines. But what can the rest of us do to make Kbin and Lemmy feel like home to all the new Reddit refugees? Populate Lemmy and Kbin with as much quality content as you can find!

Over the next few weeks, fill your magazines/communities with as much good the content as you can. Post comments and subscribe to things. Click that upvote button on content or comments you like.

Not sure where to find good content? Ironically, check out your favorite subreddits for ideas. Make sure we have the best of the content you can find on Reddit. See a good article or link? Post it here! Don’t be shy about posting to interactive communities like Ask Lemmy- we’re after volume.

For OC Reddit posts, see if there’s a non-Reddit page to post here. I don’t know whether it’s acceptable to copy text posts, but if you do, make sure you at least give credit/copy a link to the original post.

Basically, do everything you can to engage over the next few weeks and avoid lurking. Show off the Fediverse and welcome the next group of Reddit refugees to their new home.

Edit: I completely forgot to call out all the people hosting and upgrading instances to help with the massive influx of users and keep the sites stable. Thank you, hosts!

553
 
 

cross-posted from: https://lemm.ee/post/530162

Please report issues with this version either here or at the issue tracker.

Changelog v1.2.0

  • Add rewrite support for posts/comments
  • Try to not rewrite federation links

Description

Lemmy Universal Link Switcher, or LULs for short, scans all links on all websites, and if any link points to a Lemmy instance that is not your main/home instance, it rewrites the link so that it instead points to your main instance. Currently only works for community/user links.

Features

  • Rewrite links to Lemmy posts/comments to point to your home instance. Only after hovering over them, because getting home posts/comments links require communicating with the Lemmy servers, and we don't want to spam the servers.

  • Instantly rewrite all links of communities or users to Lemmy/kbin on all websites everywhere to your new instance! The rewritten links will have an icon next to it, and hovering/touching the icon will show you the original link, allowing you to go there if you want to.

  • If you are already on a page that has a corresponding page on your home instance, a link will automatically be added to the page header.

Home Instance Setup

Simply visit the Lemmy instance you want to set as your home while the script is active. You will be asked if you want to set this instance to your home instance:

If you initially set your home instance wrong or just want to change it, no worries - simply go to your settings on your new home instance and press the button for it!

Coming soon

  • Rewrite kbin post/comment links
  • Better rewriting support for kbin community/user urls (e.g. sort options are currently ignored)
  • Nicer tooltip styling (fit into page theme)
  • Signify that "Show at home" button is loading for posts/comments
554
 
 

@tateisu@lemmy.juggler.jp PING!

I just had to delete over 44.000 Users, Bans and Activity messages from my database and defederate from lemmy.juggler.jp. Somehow, all their bans get propagated to the rest of the lemmyverse.

I did a quick check, and it seems like not all instances liked are affected, but some definitely are. aussie.zone, for starters (PING! @admin@aussie.zone )

The good news is that, due to the relational database, you only need to delete the users, and the database cascade does the rest. BEFORE YOU DO ANYTHING, MAKE A BACKUP OF YOUR DATABASE I am not responsible for messing up your database. Don't ever execute commands given by a stranger on the internet if you don't understand them. Also, unless you defederate from them, the logspam will just continue. So maybe do that first.


To fix it, get database access somehow, and check your instance table. There, search for the id for lemmy.juggler.jp with the following query:

SELECT id FROM instance WHERE domain = 'lemmy.juggler.jp';

Write down that id, and execute the following query:

DELETE FROM person WHERE instance_id=<the id you just wrote down>;

This will probably take a while (over 2 minutes on my database),

Example log message:

{
    "cc": ["https://lemmygrad.ml/", "https://lemmy.ml/", "https://midwest.social/", "https://lm.korako.me/", "https://tabinezumi.net/", "https://lemmy.shrieker.net/", "https://bar.southfox.me/", "https://sopuli.xyz/", "https://slrpnk.net/", "https://feddit.de/", "https://lemmy.perthchat.org/", "https://baraza.africa/", "https://mander.xyz/", "https://lemmy.eus/", "https://lemmy.ca/", "https://lemmy.fediverse.jp/", "https://fapsi.be/", "https://exploding-heads.com/", "https://baomi.tv/", "https://fediverse.ro/", "https://lemmy.pt/", "https://szmer.info/", "https://feddit.it/", "https://jeremmy.ml/", "https://group.lt/", "https://beehaw.org/", "https://lemmy.rimkus.it/", "https://lemmy.tedomum.net/", "https://lemmy.coupou.fr/", "https://lemmy.blahaj.zone/", "https://community.xmpp.net/", "https://lemmy.simple-gear.com/", "https://lem.simple-gear.com/", "https://lm.gsk.moe/", "https://latte.isnot.coffee/", "https://lemmy.sdf.org/", "https://lemm.ee/", "https://sh.itjust.works/", "https://lemmy.fmhy.ml/", "https://yiffit.net/", "https://lemmy.world/", "https://lemmyfly.org/", "https://vlemmy.net/", "https://lemmynsfw.com/", "https://programming.dev/", "https://terefere.eu/", "https://discuss.tchncs.de/", "https://infosec.pub/", "https://lem.elbullazul.com/", "https://feddit.jp/", "https://lemmit.online/", "https://aussie.zone/", "https://social.fossware.space/", "https://social.sour.is/", "https://lemmy.management/", "https://lemmy.one/"],
    "id": "https://lemmy.juggler.jp/activities/block/51bd6d83-3780-45c6-b29a-1b3a9a0bb401",
    "to": ["https://www.w3.org/ns/activitystreams#Public"],
    "type": "Block",
    "actor": "https://lemmy.juggler.jp/u/tateisu",
    "object": "https://lemmy.juggler.jp/u/samydes225879",
    "target": "https://lemmy.juggler.jp/",
    "summary": "spam accounts created?",
    "@context": ["https://www.w3.org/ns/activitystreams", "https://w3id.org/security/v1", {
        "pt": "https://joinpeertube.org/ns#",
        "sc": "http://schema.org/",
        "lemmy": "https://join-lemmy.org/ns#",
        "expires": "as:endTime",
        "litepub": "http://litepub.social/ns#",
        "language": "sc:inLanguage",
        "stickied": "lemmy:stickied",
        "sensitive": "as:sensitive",
        "identifier": "sc:identifier",
        "moderators": {
            "@id": "lemmy:moderators",
            "@type": "@id"
        },
        "removeData": "lemmy:removeData",
        "ChatMessage": "litepub:ChatMessage",
        "matrixUserId": "lemmy:matrixUserId",
        "distinguished": "lemmy:distinguished",
        "commentsEnabled": "pt:commentsEnabled",
        "postingRestrictedToMods": "lemmy:postingRestrictedToMods"
    }],
    "removeData": true
}
555
 
 

As it is now, it's quite inconvenient to not be able to see a community's actual subscriber count from an instance and instead see how many are subscribed to it from the current instance; makes it hard to judge their activity from a search, and is confusing for new users.

A shared user count directly in lemmy would be very useful.

556
 
 

Lemmy's API documentation currently appears to be the JS client implementation found here: https://join-lemmy.org/api/

This is very misleading, as these docs document the behavior of the JS client and do not provide a language neutral way to figure out what's going on.

Compare Lemmy's docs with something like the ActivityPub docs https://www.w3.org/TR/activitypub/

Going off ActivityPub, I could actually start to see how it all works and looks together. With Lemmy, I can reason about how the JS client works and do my best, but working with Lemmy you sometimes have to consume the Rust source as well.

So, this raises the barrier of entry for someone wanting to do Lemmy integrations to someone that needs to consume the above docs, plus be comfortable reading JS and Rust.

I saw some older posts from the lemmy devs saying: "Well, writing docs is hard, so it's easier if we generate the docs from our JS client."

They aren't wrong, writing documentation IS hard. If Lemmy is serious about attracting a larger ecosystem, I consider better API documentation to be on the hot path. I'm concerned that the devs are happy with the autogenerated docs above and won't put any effort into improving them. Even worse, the people generating these docs are already familiar with Lemmy, so they probably think the current docs are adequate.

I don't know a quick solution -- raise money to pay someone to write docs? No clue. But, if you want to attract developers to this ecosystem, the current API documentation is insufficient.

557
29
submitted 2 years ago* (last edited 2 years ago) by irdc@derp.foo to c/lemmy@lemmy.ml
 
 

Hi all,

I’d hereby like to announce lmmy.to, an instance-aware redirector for Lemmy that allows you to directly link people to Lemmy communities on their own instance.

As an example, try https://lmmy.to/c/lemmy@lemmy.ml.

I’ve created !lmmy_to@derp.foo to discuss it. There’s also a FAQ.

Edit: I've resolved the 500 error people were getting.

558
 
 

In light of the proverbial hitting the fan over at #reddit I am considering giving @kbin or @lemmy a go. I think I can follow/interact with their communities from here? isn't that enabled with ActivityPub? if so, then that is fantastic :D

559
 
 

Hello,

Since this morning I am disconnected every time I visit my instance (lemmy.ml).

Even just closing the tab and coming back to lemmy.ml 5 minutes later, I have to login again.

I use 2FA.

Is anyone else seeing this?

Have a great day!

560
 
 

Sad to see almost none of the devs, from
Apollor (ChristianSelig), RIF (u/talklittle), Infinity (u/Hostilenemy),
Boost (rmayayo), BaconReader, to Relay (u/DBrady), etc. are not considering Lemmy at all.

I know these were hobbies but by atleast developing it for some time just to make transition for your audience to Lemmy easier would have gone a long way!

@lemmy @LemmyDev Lemmy will remain a niche platform if not enough people switch to it

561
562
 
 

tl;dr, I'm posting this Lemmy issue that proposes a CORS change to allow Lemmy web clients to work with Lemmy servers without needing a proxy (possible security risk). Please show your support by +1ing the issue and the PR!

Issue link: https://github.com/LemmyNet/lemmy/issues/3109 PR link: https://github.com/LemmyNet/lemmy/pull/3421

Background

The web has many security features, and one of them is CORS, or Cross-Origin Resource Sharing. CORS ensures that when you click a button on a website in your browser, your account information isn't immediately compromised. It's one of many layers that protect your information from malicious actors.

Lemmy currently has this feature. Its CORS is configured to reject HTTP requests from an origin that is not what it expects. For example, if I'm on cool-lemmy-client.com and I request a list of posts from beehaw.org, the browser will reject the request. This is because beehaw.org is telling the browser "hey, this request is only valid if it's made within the beehaw.org website, otherwise reject it!

This effectively means that third-party Lemmy web clients cannot talk to any Lemmy server. It's impossible because those web clients are hosted outside of Lemmy servers, so the browser will refuse any interaction with those Lemmy servers.

Why Wefwef works

Wefwef is a third-party web client. It also runs in the web browser, and yet it works. How does it do that?

It turns out that Wefwef actually runs a proxy in the middle. The browser essentially hits this proxy instead, and the proxy makes the request on behalf of the browser. When it returns data, the proxy simply passes that data back and tells the browser that its origin is allowed.

This works because CORS is a browser thing: requests are rejected in the browser, not anywhere else, and because the proxy is its own server and not a browser, it's not affected by CORS. This is also why applications like Jerboa work perfectly well.

Note: This is not to say anything about Wefwef! In fact, the developer of Wefwef expresses the same opinion!

Why proxies are bad

There are a myriad of issues that come with running a proxy for a web client, but it can be boiled down to 3 quick points:

  1. It creates a single point of load. All users of a particular web client now have to rely on a particular CORS proxy, and that puts a lot of load on that proxy.
  2. It exposes sensitive data to more parties. Specifically, CORS proxy operators (often the application maintainers) can see any information passed through it, including user tokens! Theoretically, they can steal your account.
  3. It is extra work for application maintainers to also maintain and scale CORS proxies.

Why it doesn't make sense

Restrictive CORS doesn't make sense for Lemmy. It is not an effective way to block third-party clients, since it is only a browser restriction. But people can still run proxies for their web applications, and that just makes things worse for everyone!

Lemmy doesn't benefit from restrictive CORS.

Why it's not a security problem

I said above that CORS helps prevent scenarios where your account information is stolen just by clicking a random button. However, this does not apply to Lemmy! To explain why, I need to look at how Lemmy (or any website) knows who you are.

Lemmy uses a JSON Web Token (JWT). Simply put, it's a piece of text that tells the server "this is user X", which is then cryptographically signed by the server, meaning it can't be altered by anyone else without also breaking the signature. This allows the server to trust that if the signature is valid, then user X's claim can be trusted.

Typically, the browser can send this token in two ways:

  1. It can do so using cookies. The server tells the browser "hey, store this token", and later requests made by the browser will also include this token.
  2. It can do this by manually appending the token somewhere in the request, usually in the Authorization header. The application is usually the one that receives the token and manually stores it somewhere. It then manually reads this token back when it needs to and appends it to its requests.

Applications that implement the first method would be vulnerable to the aforementioned security problem if CORS didn't exist: the browser could append the cookie to every subsequent request, including requests from other sites! This means that if I go to seemingly-legit.com and the site makes a request to beehaw.org, that request will be made on my behalf without my knowledge!

Fortunately, we can tune CORS so that we can still make requests to beehaw.org without randomly leaking user data! Specifically, CORS has a separate header that tells the browser not to send cookies, even if it allows requests from anywhere (Access-Control-Allow-Credentials vs. Access-Control-Allow-Origin). This is what Lemmy PR does.

Applications implementing the second method may or may not be vulnerable:

  • If it stores the token in its local storage, then only it can see that token. The browser does this by giving each origin (domain, e.g. google.com) a completely separate local store. Discord is one of the many applications that does this.
  • If it stores the token in the browser's cookie store, then it behaves the same as the first method. The only difference is that instead of the server telling the browser to set the cookie, it's the application code running on the browser that sets the cookie.

Lemmy stores tokens in the cookies. As long as we're careful about which CORS headers we return, the browser won't leak them!

What we should do

Lemmy issue #3109 discusses this issue. You can show your support by responding with a thumbs up (+1) or a heart.

I have also created Lemmy PR #3421 which fixes this problem directly in code. You can also show your support by responding to this PR with a thumbs up or a heart.

I'm currently developing a Lemmy web client, and I need the CORS changes merged in order to use it with Lemmy instances running v0.18 or newer. Having this merged would save me a lot of time and effort. The developer of Wefwef has expressed the same opinion. Please consider supporting the application developers by upvoting these issues!

563
 
 

Hello !

I'm pretty new to Lemmy and I created a community I want people to know about.

Is there some place I can do that without being spammy or disrespectful ?

564
 
 

Help get Lemmy working with right to left languages (Arabic, Farsi, Urdu, Hebrew, Sorani Kurdish, Punjabi, etc)

https://github.com/LemmyNet/lemmy-ui/discussions/1604

[posted in @lemmy #a11y #internationalization #i18n]

565
7
Multilemmys (lemmy.ml)
submitted 2 years ago* (last edited 2 years ago) by syzizeky@lemmy.ml to c/lemmy@lemmy.ml
 
 

Hey everyone! After my first week of settling in here, I think what would give my lemmy experience the biggest boost of any single added feature would be Multilemmys (or Multicommunities), so we can see the combined feeds of multiple communities in a single streamlined feed. I guess the purpose of this post is to spread awareness of this as a concept and point to the ongoing discussion on Github:

Support for grouping communities / multi-communities #818

Cross-instance 'multireddits', that are also automatic and topic-based #1113

Community Grouping #3071

I have seen users post that this was how they initially thought the fediverse would work when it was explained to them. I thought this would be the case as well when I joined. Although I am new to this world, I feel this is one of the most intuitive abilities associated with the concept of the fediverse and that it MUST eventually be possible, the sooner the better.

This is similar to "multireddits", and the equivalent way to use them would be to combine feeds from different communities that are on the same instance, so for example I have one multilemmy to combine the feeds from /c/politics, /c/news, /c/worldnews, /c/worldpolitics (all on lemmy.ml).

Then additionally with Lemmy we have equivalent communities hosted across various instances, and it would be a new and different kind of ability to be able to combine these into a single multilemmy, so for example I have a multilemmy combining lemmy.ml/c/politics, lemmy.world/c/politics, beehaw.org/c/politics, etc.

I found this idea mentioned a few times around lemmy, where @deadcyclo@lemmy.world and @communist@beehaw.org pointed out the above open github tickets for these ideas.

Those github discussions were a fascinating read for me! Its clear that the boffins have already put a fair amount of thought into these possibilities, and identified questions that will need to be answered such as

  • how to deal with communities that have the same/different name but are or are not actually the same subject
  • duplicate posts and/or cross posts
  • whether to cause automatic/default links or not
  • how to implement this in a way that is of most benefit to the health of the lemmy ecosystem
  • there seem to be two separate use-cases also: one being communities intentionally linking to share content and the other being a user creating their own custom combinations, either for personal or public use.
  • how to handle subscriptions

Discussion continues even this week! After reading through all the ideas, I don't have any specific preference but I am excited to see what they eventually decide to implement as I'm sure it will be rewarding. Personally I think getting some cross-instance version of this should become a priority as soon as they feel they've adequately responded to the reddit migration, which I imagine would be a month or two down the road.

I gotta end by saying how happy I am to be here after leaving Reddit, this really feels like the start of something incredible. Cheers!

566
 
 

created a test community on enterprise.lemmy.ml to play with it. Don't feel it work super stable right now though. I think the huggingchat usage could have more interesting usage than simple tldr thing.

567
 
 

I just switched to a different instance that is more focused on my interests (Cyber-sec and IT).

The process of creating a new account was as easy as before, but there is not really a migration path like in Mastodon, so I ended up editing my Bio to link the new profile, and adding Old at the end of my Display name. I then had to manually suscribe to all of the communities I was following before by searching for them by !communityname@instance, that part was too manual, too slow and definitely needs streamlining.

Some of the communities I followed before had never been accessed from my new instance, so I'll have to wait a bit to start seeing posts and comments, but that was expected as I am beginning to understand how federation works.

My old comments and posts will not be migrated (there's currently no way to migrate them), but that's ok, I plan on leaving the old account up for about a month.

All in all, not a terrible process, but exporting/importing followed communities/followers/followed users would be a very welcome addition for users looking to migrate to a different instance.

568
 
 

And I called it...Mullem.

Mullem? What's Mullem?

Multiple Lemmy's....Multi Lem's...Mullem

It's a way of having MultiReddit-like experience until (if) the Lemmy devs incorporate that feature into Lemmy.

What?

It's a way to view multiple Communities from multiple instances in one unified feed.

FAQ

Will this work in a Chromium (Chrome, Brave etc) based browser?

No idea. I don't have a Chromium based browser on any of my machines and I ain't going to install one just to test this. If you want to port it, be my guest.

Is this compatible with KBin?

Nope. Part of the code needs to look for '/c/' in a URL and as KBin uses '/m/' it'll just break. Don't try it, it WILL break. I will add this in future development.

Will this work on a mobile browser?

No, it would be unusable as the interface would be all over the place. Mullem uses a Sidebar for one thing. There are zero plans to make this work on a mobile browser so don't ask.

What Manifest version does Mullem use?

v2. I'll port this to v3 if Mozilla kill off v2.

Why haven't you set up a proper Git repository so I can see the code?

Can't be bothered. If you want to see the source, download the file, uncompress it and have at it. If you're really paranoid, run it through a virus checker.

Can I make changes? What License is this released under?

No license of any kind. Do what you want with it. But bear in mind the licenses of the three files bundled with it - jQuery, FeedEk.js and skeleton.css.

I'm American, can I change the date formatting?

Nope. Adding this option at some point though.

Can I change the colours?

Nope, working on it.

Are there size/Community/Mullem limitations?

Yes. Community and Mullem data gets placed in Local Storage which has a size limit. You'd have to add god knows how many Mullems and Communities though. Each entry is literal bytes.

Each Mullem fetches a maximum of 100 items. So whilst a Mullem can theoretically contain hundreds of Communities (seriously though don't do that), the combined feed of all those Communities can never exceed 100 items.

Does this Add On respect my privacy?

Absolutely. It contains no tracking of any kind. It contains no adverts of any kind. It does not collect, store or transmit any information about you, your browser, your connection or your OS. The data you enter to create Mullems and add Communities to Mullems is stored in Local Storage in the browser you installed the Add On to and can be wiped at any time if you see fit.

What have you successfully tested on?

Plain vanilla Firefox v.114.0.2 and LibreWolf v.114.0.2-1 on Debian and Fedora

Installation

  1. It's here, on the Mozilla Add On Store
  2. When it's done, look at the main browser address bar. To the right of it, you might see the Mullem icon.
  3. If not, click the 'Extensions' icon (looks like a jigsaw puzzle piece)
  4. You'll see the Mullem extension listed in the drop down, click the cog icon to the right of it and click 'pin to toolbar'
  5. The Mullem extension icon should now be on your toolbar alongside the 'Extensions' icon.

Uninstall

  1. Right click the extension icon in the toolbar
  2. Click 'Remove Extension'
  3. Uninstalling will delete all Mullems and Communities. If you want to keep that data, then before uninstalling the add-on, go to 'about:config' in the browser. Search for 'keepUuidOnUninstall' and set it to 'true'. Then search for 'keepStorageOnUninstall' and set that to 'true' also.

Using Mullem

Click the Mullem extension icon and the Mullem sidebar will apear. You might need to manually adjust the width of the sidebar after adding Mullems and Communities.

First time?

If this is the first time you've used Mullem then you (obviously) have no Mullem's yet. So step 1 - create a Mullem. Let's say you want a Mullem for Politics so you can view multiple Lemmy political Communities in one feed.

  1. In the 'Create Mullem' section, enter 'Politics' in the 'Mullem Name' text box.
  2. Click the '+' button.
  3. You should now have a new Mullem called 'Politics' (all icon links to the right are explained later in this document but at this point, without any communities added to this Mullem, they do nothing, except the Delete icon, which will delete the Mullem)

Now you can add Communities to your Politics Mullem. To do this:

  1. Copy the link to the Community (e.g. https://sh.itjust.works/c/ukpolitics). NOT the federated link (e.g. https://lemmy.ml/c/ukpolitics@sh.itjust.works). Using the federated link may well break Mullem.
  2. In the 'Add Community To A Mullem' section, paste the Community link to the 'Add community URL' text box
  3. Choose the Mullem (Politics in this example) to assign this Community to
  4. Click the 'Add' button.
  5. Click the title of the 'Politics' Mullem, you should now see the Community you just added listed under it.
  6. Repeat for all the Communities you want to add to this Mullem

NB: A good place to search for Communities across all Lemmy instances, by subject, is browse.feddit

Management of Mullems and Communities

Communities

You can do 2 things with Communities you've added - delete them completely or move them to a different Mullem

  1. Click the Mullem name that contains the Community you want to manage
  2. When all the Communities for that Mullem are listed below, find the Community you want to manage and click the gear icon to its right
  3. When the popup box appears, to delete this Community, click the 'Delete' button.
  4. Or, to move this Community to a different Mullem, click the 'Move to' dropdown box then select the Mullem you want to move it to.
  5. Click the name of the Mullem you just moved it to and you should now see it listed there instead.

Mullems

You can delete Mullems by clicking the minus icon link on the top right of each Mullem. This will delete both the Mullem AND any Communities you have associated with it so if you want to keep a Community, move it to a new Mullem first (see step 4 in the section above).

Viewing the Mullem

As we've learnt, clicking the name of the Mullem reveals a list of all the Communities in that Mullem. To view all these Communities as one feed (i.e. view this Mullem), click on of the four icons to the right of the Mullem name. These are (from left to right), this Mullem sorted by Hot, this Mullem sorted by Active, this Mullem sorted by New and this Mullem sorted by Old.

The Mullem will now be generated and appear in a new tab, sorted depending on which of the four icons you clicked.

There is no auto-refresh so if you want to see any new posts, you'll need to refresh/reload the page in the normal way (CTRL + R, or F5 , or clicking the browser 'reload current page' icon to the left of the address bar).

The Code

There's nothing in this section about how to use Mullem, it's just an explanation of the code and a few provisos.

  • I'm not a JavaScript expert so I used jQuery. The code is far from perfect and someone more expert with JavaScript could probably optimise the shit out of this. If that's you, feel free.
  • This is my first Add On, so there's probably ways I could've made this better too.
  • The whole plugin, including images, weighs in at less than 236kb uncompressed and less than 57kb compressed.
  • I've used 3 things for this add-on - jQuery, a minified jQuery plugin called FeedEk.js to manage the RSS and skeleton.css to make my life easier.
  • The add-on grabs the RSS feed(s), sorts them in the requested way then presents them as one big feed. I used RSS rather than the Lemmy API as it's easier. The documentation of the API is a bit lacking. No diss intended, Lemmy devs are busy as hell right now.
  • Hardly any Lemmy instances have CORS enabled their RSS feeds (seriously instance Admins, please do this) meaning the jQuery RSS plugin (FeedEk.js) uses a proxy to grab the feeds. This is admittedly a concern. If their proxy fails, the feed fails and the add-on becomes useless. I'm looking at ways around this as a matter of urgency.
  • All Mullem and Community data is stored in Local Storage.

Road Map

  1. Option to format the date in the Mullems for Americans.
  2. Add ability to rename Mullems.
  3. Allow colour theming of.
  4. Support KBin Magazines
  5. Find a way to not rely on proxies to get around CORS issues

569
 
 

Image shows lemmy-ui's development pace over last year. Impressive! Great job everybody!

570
-1
test (iusearchlinux.fyi)
 
 

test

571
 
 

For context, I created a post on Lemmy.ml a week ago asking how can I use Lemmy properly.

I just wanted to send out a collective thank you for all the suggestions/comments explaining the difference between Lemmy and Kbin.

ps

  1. I couldn't respond to most of the comments on my post because I got busy playing with my 6 month old. She is currently on a war path to grabbing everything and anything around her and rolling around A LOT!

  2. Speaking of apps, I downloaded memmy and wefwef for iOS + signed up for Artemis beta testing. With a plethora of apps currently under development, I hope I won't take a week's worth of time to respond to comments (if any) on this post!

What is everyone else using here?

572
 
 

TL;DR: Lemmy generates SHA-256 TOTP digest which may be unsupported by some authenticator apps. https://github.com/LemmyNet/lemmy/issues/3309#issuecomment-1605259241 Thanks to this it may seem the authenticator is set up, yet it won't generate correct tokens.

When lemmy.sdf.org got updated to version 0.18.0, the first thing I did was that I set up 2FA. Or so I thought. I went to settings, checked "Set up 2-factor authentication", clicked save, and then clicked on the installation button which opened up the authenticator app I use, Cisco DUO. I saved it, and seeing that it was generating codes, I thought "Good".
Today I wanted to log into Lemmy on my laptop. I enter username and password, and get prompted for TOTP token. I take my phone and get the token from Cisco DUO authenticator, type it into the TOTP field, and it doesn't work. So I tried again, and again, and again,... I see. It doesn't work.
I went on the internet to search for the issue, and found the comment mentioned above and this request on GitHub.
Thankfully I was still logged in on my phone and I was able to remove 2FA.

Who knows, but there may already be bunch of people who won't be able to reply. Rest in peace.

573
 
 

If you want, please add your tips to the comments.

Here are mine - just a bunch of opinions/suggestions from someone who used to be a forum mod, then a subreddit mod.

As this is a rather big wall of text, I'll split it into sections, contained within spoiler tags.

Mindset and duty.

A happy mod is a good mod. Take care of your personal life first.

Your comm[unity] is not your personal possession or project, it's a collective effort. You're just its representative - be humble but proud about it.

Use your comm as any other user would. Be active in it, interact with other users, discuss, learn, have fun.

If you don't enjoy your comm any more, for whatever reason, pass the torch to newer mods.

Check your comm at least a few times per day. A quick peek is fine for slower comms.

It's useful to follow the RSS feed of the comms that you moderate, as it'll be quicker to spot rule-breaking posts. You can do it here:

In days that your comm is too slow, specially at the beginning, it's your job to provide content for your comm.

Recruitment

Avoid recruiting mods who:

  • never post/comment in your comm, or only did it after you announced "we want new mods"
  • asked over and over to be a mod
  • already mod lots of other comms
  • claim to have a "vision" about your comm, and propose 9001 drastic changes for it*.
  • rush towards certainty on things that they cannot reliably know (intrinsically unfair)
  • cannot reasonably infer things from context (ditto)

*Major exception: if your comm got some biiiig problem, and nobody seems to be able to solve it.

If you get multiple people willing to mod, you can be a bit pickier. Use open-ended questions to trial them. Ideally new mods should:

  • be active members of the comm
  • work well alongside the rest of the mod team. (are they strict rule enforcers, or more on the "let users have fun" side?)
  • active in different hours than the rest of the mod team. (e.g. night owls, different longitudes, etc.)

A lazy mod is less worse than a well-intentioned but dumb mod.

Rules and their enforcement

You do not know the users' intentions, thoughts or beliefs. However, you do know how they behave and what they say. Use the later, not the former, in your rules.

If a rule cannot be enforced, it is not a rule. It's at most a request.

Enforce rules by spirit, but the letter should follow fashion. There's some room to be sloppy with this with smaller comms, but not the bigger ones.

Do not enforce "hidden rules". If there's some shitty behaviour that needs to be addressed, do it in the open.

Do not enforce new rules retro-actively. You're just creating more work for yourself and pissing off users, for no good reason.

Be succinct when phrasing the rules. If necessary/desired, write down two versions of it:

  • short version - addressing what users can/can't/need do in broad strokes, without "why". Keep it in the side panel, visible at all times.
  • long version - addressing specificities of each rule, as well as reasoning. Keep it in a post or similar.

Synchronise changes in all versions of your rules. Few things confuse users the most than rule disparity.

If your comm got more than seven rules, it's probably already too much. Consider merging them.

It's fine to use imperative in the rules ("do this", "don't do that"), as it's succinct and you're in a position to do so.

Every rule has a grey area, of things that are only arguably rule-breaking content. Try to minimise the grey area when possible, but keep in mind that you'll never get rid of it.

Beware the fluff principle: voting alone will allow only the lowest common denominator content to the top, and shove down well thought content that is hard to judge. Take that into account when creating rules.

Handling other users

Ask community input periodically. Don't use votes for this, let other users speak their mind.

Input from rule-lawyers is surprisingly useful to find issues in your rules. And a few people will be abler to phrase your own rules better than you do.

Even then, asking community input is not an excuse to relay responsibility. You're still the mod.

It's useful to keep notes of a few users from your comm:

  • notes about good, specially engaged and helpful users might be useful later on, as you're recruiting newer mods
  • notes about bad users are useful for rule enforcement. Certain types of bad behaviour are only revealed in long-term tendencies.

Activity of your comm's users outside your own comm should be only taken into account as much as it might predict their future activity in your comm. There are a few corner cases to do so, but by default you're better off not doing this.

Don't feel afraid to upstream reports of specially problematic users to the admins of your instance. Specially if they're more on the stricter side.

This is debatable, but I personally believe that a few types of users, regardless of their intentions, should be handled as you would handle trolls and shitposters. They are:

  • witch hunters: users who point fingers at other specific users without rational grounds to do so
  • entitled, bossy or whiny users: users who are eager to tell other users what to do, for their own sake
  • obtuse users: users who "conveniently" pretend to not read or understand counter-arguments of other users in discussions
  • assumers: users who are prone to say things that they cannot reliably know, specially about other users. (A superset for witch hunters.)

This sort of user is prone to piss off other users, specially the most contributive ones.

When there's a fight between users, typically, at least one of them is stupid. Make sure to know which one (or if both) before intervening.

574
 
 

The two top entries on lemmy.world sorted by hot as of a few minutes ago were a porn link on a porn community (nothing against porn per se, but I don't want to see it on the front page) and a bot post to some kind of bot link community. I see the "block user" button but I don't particularly care to see anything from those communities, so blocking the individual poster doesn't help much. I could actually visit the community in order to block it, but that sort of defeats the purpose of blocking. And I know of "Hide NSFW" but I'm not particularly anti-NSFW, I just don't want to see it unintentionally.

So it would be useful to have "block community" as an option along with "block user" in the little buttons underneath the post.

As a broader policy matter, I'd be cool with blocking NSFW from the front page altogether (it would still be available within communities of course). But I understand such a decision would want discussion for and against.

575
 
 

Idk if this is useful at all, but when starting my Mastodon server I set up an account at Open Collective with a fiscal sponsorship by the Open Collective Foundation. This gave us 501(c)(3) status, made all of our finances public and clear, and also got us free GSuite. Highly recommend it.

view more: ‹ prev next ›