souperk

joined 2 years ago
[–] [email protected] 3 points 2 years ago

👍for keycloak

Been using that for my side projects, with the added benefit that I got a single instance running on docker for all my projects, sharing a realm so a user has to register only once.

I can share my docker-compose.yaml in case you want to try that.

It supports oidc, so if you are using python you can set up authlib with 5-10 lines of code. I can share code if there is interest.

[–] [email protected] 1 points 2 years ago

PQXDH is designed for asynchronous settings where one user (“Bob”) is offline but has published some information to a server. Another user (“Alice”) wants to use that information to send encrypted data to Bob, and also establish a shared secret key for future communication.

[–] [email protected] 55 points 2 years ago (15 children)

don't take tech interviews seriously, they suck for everyone but big corps

your 2 decades of experience mean much more than memorizing algorithms, you know how to produce real value

don't forget that, and don't let them forget it

[–] [email protected] 4 points 2 years ago* (last edited 2 years ago) (2 children)

reminder that your upvote history is publicly available

[–] [email protected] 2 points 2 years ago

I am guessing you didn't add enough "big corps bad".

PS big corps bad

[–] [email protected] 9 points 2 years ago* (last edited 2 years ago) (3 children)

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).

[–] [email protected] 9 points 2 years ago (1 children)

Highly disagree, if an instance is controlling the experience of a user, then that's a problem.

Each user should be making their own choice regarding using the all or local feed. That choice can be a net positive for the fediverse.

One could argue that even if the user makes the choice it's still a prisoner's dilemma. However, keep in mind that a user's interest does not (necessarily) match their instances, one could change instances or use multiple accounts across different instances.

[–] [email protected] 2 points 2 years ago

well not all eu countries are equal...

[–] [email protected] 1 points 2 years ago

lol my union is literally named tech workers

[–] [email protected] 17 points 2 years ago* (last edited 2 years ago)

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.

[–] [email protected] 4 points 2 years ago

But you don’t go to a tragedy for closure. There comes another episode, and another, and another, more than anyone can bear. A few months after my journey, enormous swaths of the Evros region were consumed by wildfires, the largest such outbreak in recent European history. In August, 18 people, adults as well as children, were found burned to death in a forest near the village of Avantas, just a few miles north of Alexandroupolis. Blackened beyond recognition, some of them were discovered hugging each other. They were presumed to have recently crossed the border and to have sought protection under the trees.

That aged well... The same week a big part of the country (Thessaly) was flooded with many more dead and thousands losing their homes and source of income (agriculture).

Climate change is real and as long as governments choose to ignore it, increasingly more people are going to die.

A person born in a country that spends anti-flood funds for road repairs. A person born in a country that defunds the forestry service in order to buy military equipment. A person born in a country where you may lose your life over a boat fare.

[–] [email protected] 53 points 2 years ago (1 children)

Unpopular opinion: I think Lemmy is fun.

view more: ‹ prev next ›