• Head admin @ lemm.ee, a general-purpose Lemmy instance
  • Creator of lemmy-ui-next, an alternative Lemmy frontend
  • Lemmy contributor

ko-fi

  • 2 Posts
  • 27 Comments
Joined 1 year ago
cake
Cake day: June 9th, 2023

help-circle
  • I think there are two separate things I want to address here:

    First, agile isn’t a project management methodology, it’s just a set of 4 abstract priorities and 12 abstract principles. It’s very short, you can check it out here:

    https://agilemanifesto.org/

    Nothing here says that you’re not allowed to write documentation, write down requirements, etc. In fact, the principles encourage you yourself as a software team to create the exact processes and documentation that you need in order to meet your goals.

    “Working software over comprehensive documentation” does not mean you aren’t allowed to have documentation, it just means that you should only write documentation if it helps you build working software, rather than writing documentation for the sake of bureaucracy.

    “Individuals and interactions over processes and tools” does not mean that you should have no processes, it just means that the individuals in your team should be empowered to collaboratively create whatever processes you need to deliver good software.

    Secondly, in terms of practical advice:

    1. Talk about this problem with your team. Is it hard for others to figure out where requirements came from? Maybe they already have a good method and can share it with you. If it’s hard for everybody, then propose improvements to your process, for example, propose some type of design document process as part of building any new features
    2. There are no perfect answers to the question of “how do I safely make non-trivial changes to systems”, but the general approach is to ensure that:

    a. You have metrics about how your system is used.

    b. You have automated tests covering any requirements, so that you can feel confident when making changes to one part of the system that it isn’t violating any unrelated requirements.

    c. You actually document any confusing parts in the code itself using comments. The most important thing to cover in comments is “why is this logic necessary?” - whenever something is confusing, you need to answer this question with a comment. Otherwise, the system becomes very annoying to change later on.

    If you are missing any of the above, then propose to your team that you start doing it ASAP

    1. At the end of the day, somebody is responsible for making product decisions. Is it your team? Or maybe some separate product owner? Sometimes, you just need to communicate with whoever is responsible to figure out if any requirements are still relevant, or if they are now safe to change.


  • If I have several backends that more or less depend on each other anyway (for example: Lemmy + pict-rs), then I will create separate databases for them within a single postgres - reason being, if something bad happens to the database for one of them, then it affects the other one as well anyway, so there isn’t much to gain from isolating the databases.

    Conversely, for completely unrelated services, I will always set up separate postgres instances, for full isolation.




  • Sorry if you were just making a joke, my sarcasm detector is not really working anymore (/s at the end would help). But if not, this comment really perfectly captures the entitlement in open source.

    Now imagine you spend months (or even years) of your free time to build something for people to use freely, and the result is that you get endless comments from random strangers, telling you that you work for them and that you need to respect and be grateful to them. I honestly am impressed that open source still exists at all at this point.


  • I just want to add a counter-point to the argument that Lemmy devs are somehow opposed to contributions. In my experience, there has been no resistance to contributing any type of change (I have personally added niche features for running Lemmy in a distributed manner, optimizations, bug fixes, etc). In fact I would claim the complete opposite - I have received plenty of support and good code reviews from maintainers whenever I have wanted to contribute anything.

    I think there is truth to the claim that Lemmy maintainers don’t have a lot of patience for people making demands and snarky comments, but that is very different from being opposed to contributions. Also, after running a big instance for a while now, I completely understand this lack of patience - when some of your users just keep being rude to you, it wears down your patience. It’s easy to patiently and kindly respond to the first 100 rude users, but at some point after that, it just becomes gradually more mentally exhausting, to the point where it’s basically impossible.

    Even the example provided in the blog post: I don’t think snowe had bad intentions, but I do think they had clearly misinterpreted the situation with that issue, and their comments were needlessly condescending.




  • That particular instance was very recently the source of a lot of CSAM and spam, so that’d be why. A lot of instances recently upped their security to combat that.

    Just to add some more context, there was an attacker recently who created accounts on several Lemmy instances and used those accounts to spread CSAM. On lemm.ee, this attacker created 4 accounts over a 24h period, but was not able to upload any CSAM to our servers due to our stricter upload rules (we require 4 week old accounts to upload any images at all), and all of the 4 accounts were removed very shortly after creation (most of them within an hour of signing up). The attacker gave up trying to use lemm.ee very quickly, and moved on to other instances.

    I just wanted to share this context to illustrate that while indeed the different measures we implement to protect the instance can have a negative impact on legitimate users, I really believe that overall, they have a net positive effect. In addition to Cloudflare DDoS protection and image upload restrictions, we also have a separate content-based alerting layer on top of Lemmy, which allows our admins to quickly notice when something suspicious is going on. As another example, this alerting has allowed us to extremely efficiently deal with a current ongoing spam attack on the Fediverse, and I bet many lemm.ee users aren’t even aware of this attack due to the quick content removal. We will continue to improve our defenses, and hopefully try to limit the impact on real users as much as possible, but some trade-offs are necessary here in order to protect the overall userbase.


  • The nice thing about Lemmy is that you can always host your own instance, even if it’s only for your own individual use. You can basically use your own instance as a proxy - other instances will not see how or from where you are connecting to your instance.

    Large instances are being attacked almost constantly at this point in smaller and bigger ways. Almost all measures we implement to combat these attacks come with some trade-offs for the rest of the userbase.







  • This approach makes so much sense from a business perspective.

    How many here have this experience: out of my entire friend group that I grew up playing video games with, I can’t think of a single person who kept pirating games after acquiring disposable income, even though we all exclusively played pirated games as teenagers. Without piracy, none of us would have had access to any games, and very likely none of us would still be into gaming today, spending probably thousands of euros every year on games, consoles, PC components, etc.