• 1 Post
  • 12 Comments
Joined 11 months ago
cake
Cake day: August 6th, 2023

help-circle





  • To be honest, setting such a goal is scary to me, I have been working on my self-confidence, and I wouldn’t have been able to do it a few years ago. I try to remind myself that I am an autistic with ADHD: if I had food, meds, a bed, a place to study, and the frequent affirmation of a similarly interested peer group I would be happily studying 12 hours a day.

    Super Crunchers seems like a good place to start, it’s a book about how quantitiative analysis can be used for social sciences.




  • souperk@reddthat.comtoFediverse@lemmy.world*Permanently Deleted*
    link
    fedilink
    English
    arrow-up
    9
    ·
    edit-2
    10 months ago

    A plugin system that allows for custom scoring methods is a good idea, IMO.

    This would allow instance admins to install whatever plugins fit their users’ needs. See how many instances are deploying multiple clients like default Lemmy, old Lemmy, alexandrite, and many more.

    Arbitrary code execution is not safe, so it would probably require an admin permission to install plugins.

    Some ideas for interesting scoring/sorting methods or feed generation in general:

    1. personalized AI scoring, most of us agree it’s bad when a big corp controls AI, but maybe it’s better if the user could fine tune it
    2. instance/community/other AI scoring, instead of super individualized scoring sometimes you may value the feedback of others including the communities you follow or your instance
    3. the explore feed that was recently suggested (or any another mixer), i.e. a mix of home, local and all based on factors the user can configure
    4. random
    5. Top/Hot/Active/New but only counting interactions from people you “trust” (i.e. you follow the same communities, or have at least X% compatibility) (again big corps bad, self hosting good)

    Some of these services are not cheap to host, but the fediverse allows for multiple solutions to coexist. Some servers will charge for premium features, some servers will not provide them, some people will self host over engineered solutions, and big corps will show/sell ads and track user data (never forget big corps bad).


  • I admire your enthusiasm, so I would like to chime in with my 2 cents. I see a solution to an undefined problem, thus we cannot evaluate if said problem is solved by the solution.

    Were I to redesign Lemmy, I would start by defining the requirements of that software. Things to consider here would be:

    1. What would be the total number of users?
    2. What would be the total number of communities?
    3. What would be the total number of instances?
    4. What would be the spread of users across instances? Are there categories we can define? (For example, a large instance may have millions of users, but a small instance may have 1-1000)
    5. The same about communities.
    6. What would be the number of posts, comments, and upvotes/downvotes for each instance or community category?
    7. What’s the average size of a post or comment?
    8. Probably countless more, but you got to restrict yourself to the ones with the most impact.

    Then, I would define operations like:

    1. Creating a post, a comment, or upvoting/downvoting
    2. Retrieving posts (ordered) for a community.
    3. Retrieving comments (ordered) for a post.
    4. Retrieving posts (ordered) for a specific feed (subscribed, local, all).
    5. Reporting a user.
    6. Banning a user.

    Then, I would look deep into Lemmy’s architecture in order to understand the complexity of these operations (time, memory, and developer effort). My understanding is that Lemmy is using a database to store all data you subscribe to, including posts, comments, upvotes/downvotes and stats across time. With all the data in a database, most read operations become a SQL query. On the other hand, write operations are relayed using the ActivityPub protocol.

    Here I would stop for a bit, and see how I can help Lemmy right now. What’s the most value I can offer with as little effort as possible, i.e. the lowest hanging fruit. For the time being, I believe that would be moderation, basic features are missing, and there are many moderation issues someone could help with ideation, testing or implementation. However, a deep dive in moderation domain logic may not be for everyone, nor does it have to be. There are plenty of performance issues to contribute to.

    This experience would give you the context needed to design a better architecture for Lemmy.

    Last but not least, I suggest starting small. Distributed systems are complex, even seasoned veterans have difficulty getting their heads around it. For example, counting becomes a problem with large enough data.


  • Well, there is drama, like in any human community, it’s just that this community has half a million computer nerds.

    It’s a bunch of people that have been leading the technological revolution of the past decades, all experimenting with something called the Fediverse.

    While everything is new and there are a lot of changes, some things are more common than others.

    1. Privacy matters.
    2. Freedom of speech matters.
    3. The internet should be built by the people, and for the people, not big corps.

    PS Not everyone here is a computer nerd, though that’s something to take pride in IMO, but most of us kinda area.