• 1 Post
  • 40 Comments
Joined 9 months ago
cake
Cake day: August 17th, 2024

help-circle







  • It looks more like he was doing the best he could to behave ethically.

    Agreed, 100%

    He can’t lie to the judge so he didn’t.

    Again, in 100% agreement.

    There’s not really anything else he could have done without violating his duty to the court.

    I addressed this in my comments about the case. So apparently the US attorney general said this,

    “He shouldn’t have taken the case. He shouldn’t have argued it, if that’s what he was going to do,” she said.

    Now, it wasn’t clear to me if a DOJ lawyer can avoid taking on a case like this, as Bondi seems to be saying. But Google’s AI did report this to me, below.

    If Google’s AI is accurate or Bondi is correct, then Reuveni could have passed on the pass and let someone else argue it. And if every legit ethical lawyer in the DOJ was allowed to pass on the case, it’d end up in the lap of some newly appointed MAGA lawyer guy who might have struck lightning and someone convinced the judge that reversing the deportation is not possible - or at least gotten additional delays in, prolonging Abrego Garcia’s suffering.

    So my case is that he didn’t do the minimum (which was the pass on the case) but he took it and then did the minimum on the case, ensuring a victory for the other side.

    From Google’s AI:

    Yes, a lawyer within the Department of Justice (DOJ) can pass on a case, but it’s typically done through a formal process and with the approval of superiors, not simply by choosing to ignore it.
    Here’s a more detailed explanation:
    DOJ Lawyers are Assigned Cases:
    DOJ lawyers, like other government lawyers, are assigned cases by their superiors or within the legal team they are part of.
    Reasons for Passing on a Case:
    There are several reasons why a DOJ lawyer might pass on a case, including:
    Conflict of Interest: If a lawyer has a conflict of interest, they may need to be removed from the case.
    Lack of Expertise: A lawyer might not have the specific expertise or experience necessary to handle a particular case.
    Overload: A lawyer might be overloaded with other cases and unable to take on additional work.
    Case Strategy: A lawyer might believe that the case is not worth pursuing, or that the best course of action is to pass it on to another lawyer or unit within the DOJ.
    Formal Process:
    Passing on a case is not something a lawyer can do unilaterally. They must follow a formal process to request to be removed from a case, which usually involves:
    Consulting with Superiors: The lawyer must first discuss the reasons for wanting to pass on the case with their supervisor or other relevant authority.
    Documentation: The reasons for passing on the case should be documented.
    Approval: The request to pass on the case must be approved by the appropriate authority.
    Consequences of Passing on a Case:
    There can be consequences for a lawyer who passes on a case, including:
    Loss of Trust: If a lawyer passes on a case without a valid reason, it could damage their reputation and the trust of their superiors.
    Negative Impact on the Case: If the case is important, passing it on could have a negative impact on the outcome.
    Alternative to Passing on a Case:
    Instead of passing on a case, a lawyer might seek assistance from other lawyers or units within the DOJ, or they may request additional resources to handle the case.
    Generative AI is experimental. For legal advice, consult a professional.









  • It’s kind of an issue though if the documents cannot be understood by anyone but the lead dev.

    The one you mentioned is an exception though, most of the docs are quite easy to understand. Examples:

    https://codeberg.org/rimu/pyfedi/src/branch/main/docs/ADDING/_COMMUNITIES.md
    https://codeberg.org/rimu/pyfedi/src/branch/main/docs/ADDING/_USERS.md
    https://codeberg.org/rimu/pyfedi/commits/branch/main/docs/KEY/_TERMS.md
    https://codeberg.org/rimu/pyfedi/src/branch/main/INSTALL.md
    https://codeberg.org/rimu/pyfedi/src/branch/main/INSTALL-docker.md

    I suppose a weakness is that when it comes to the code itself, most of the explanation is on youtube rather than being written down, see https://join.piefed.social/2024/01/22/an-introduction-to-the-piefed-codebase/

    It looks to me a lot like those non-profit founders who explain nothing, make contributing hard,

    This reminds me of kbin. But I don’t think it’s quite fair to paint rimu the same way - he goes out of his way to help folks get set up and to encourage development.

    They say “help wanted” but if you believe it and contribute you’re going to get burnt out.

    Again, reminding me of kbin. But if you look at the pull requests though, there are many of the same folks contributing over a span of months, mostly with merged PRs. I can’t speak for any one of those folks, and burn out generally is a very real concern, but, not quite seeing evidence yet for this project specifically (though again perhaps I’ve overlooked something).

    Seeing the size and amount of features though, it’s already past prototype stage imo.
    When you don’t use one, you end up with a different code organization imo, and different affordances (eg more SQL views, several specialized data classes, a db layer that returns exactly what the program needs…)
    You always end up creating half a framework anyway … and so the questions are 1/ is it needed 2/ do you feel like designing one?

    These are good points. They remind me of the old debates about Minix vs Linux, the kernel. My guess is that since pyfedi is meant to be easy for beginners to understand and modify on their own, that this influences some of the design decisions made. But of course, even here, reasonable folks can reasonably disagree on what’s best.

    Honestly what irked me was mostly a succession of operations that weren’t in a transaction , and I also wondered why that wasn’t a trigger or a hook.

    Yeah, I don’t really know about this one. Your suggestions here make sense and wouldn’t clash with the “keep it easy for beginners” philosophy, so off the top of my head I can’t think of a reason why it was done differently - though perhaps I’d be able to understand it better if given more context.



  • Edit: hey I found this in the architecture document:
    What I tarnation is that project? This lack of test is literary on purpose?! Also reliability and security are this low?

    Only rimu can answer this. Note though that the architecture document you are citing from has only a single commit and the doc itself states that it’s a work-in-progress. So these are likely not binding guidelines, if someone wanted to add more tests and had a PR ready then I’m sure the devs would be open to discussing things.

    I’m also half-wondering if the scores don’t actually reflect rimu’s view of their importance to the project - but merely his view on how well the current codebase implements those features. Or perhaps just his own time commitment.

    why use a micro web framework when clearly the scope is a better fit for Django, and the devs don’t have the knowledge or time or energy to constantly refactor to keep the complexity under control?

    If it were up to me I’d probably keep it as Flask. As per https://www.greengeeks.com/blog/django-vs-flask-python-framework/

    Flask is known for its simplicity and flexibility
    Some argue that Flask enables faster development due to its minimal setup and flexibility

    This fits with my personal experience with both frameworks. Also keep in mind that rimu (as he states in the screencast in the README) wants this to be a project that is easy to build on top off and contribute to for folks who are newer to software development - my understanding is that the goal is to lower the technical bar so folks can get hands-on experience with developing for the fediverse more quickly and more easily.

    no tests?!

    Along those lines, adding unit tests can be a good way for someone new to a codebase to become more familiar with it.

    many 1000+ lines long files of python, a high level language

    But if you look at it, it’s mostly that there are a lot of small methods grouped together into a file, see https://codeberg.org/rimu/pyfedi/src/branch/main/app/activitypub/routes.py#L568 as an example.

    Even when dealing with a method that’s a big longer - e.g. https://codeberg.org/rimu/pyfedi/src/branch/main/app/activitypub/routes.py#L279 which is just under a hundred lines - they’re quite readable and it’s easy to see what each part of the method is doing.

    Of course they could be split up, and some developers have advocated for that sort of style generally - for example https://thoughtbot.com/blog/sandi-metz-rules-for-developers

    I think the current organization on pyfedi is reasonable, but it’s clearly not following the Sandi Metz rules.

    underused ORM (and I don’t like ORMs much)

    Not clear on what you mean by this. pyfedi uses SQLAcademy which is one of the more popular ones out there for python, so I wouldn’t call it underused.

    Or do you mean that pyfedi underuses SQLAcademy? But then, if you don’t like ORMs, wouldn’t this be a good thing?



  • Conclusion

    The Coexistion Protocol embodies a visionary approach to rethinking economic systems, focusing on fairness, transparency, and decentralization. While its principles resonate with the evolving landscape of decentralized technologies and the growing desire for equitable economic participation, the feasibility of its implementation is contingent on addressing several complex challenges. The success of such a protocol will depend on careful planning, user experience design, robust governance structures, and a willingness to adapt to the lessons learned during implementation.

    In summary, while the Coexistion Protocol presents a realistic and hopeful blueprint for the future, its practicality hinges on overcoming significant hurdles related to implementation, governance, economic sustainability, adoption, and regulatory compliance.


  • Challenges and Concerns

    1. Implementation Complexity: While the protocol aims to simplify decentralized systems, the actual implementation of a robust and efficient decentralized framework can be complex. Ensuring scalability, security, and user-friendliness will be significant challenges, especially as the system grows.

    2. Governance and Decision-Making: Achieving true democratic governance in a decentralized system can be difficult. Ensuring that all voices are heard and that decisions are made effectively without falling into the trap of inefficiency or gridlock is a critical concern. The proposed consensus-based decision-making might face challenges in practice, particularly in larger groups.

    3. Economic Viability: The non-speculative value system represents an interesting shift from traditional economic models. However, establishing a stable and sustainable economic model that rewards contributions equitably while preventing exploitation and ensuring long-term viability is a complex task. The challenge of ensuring that value is accurately tracked and distributed can be significant.

    4. Adoption and Transition: The transition from traditional economic systems to a decentralized framework like the Coexistion Protocol will require significant cultural and systemic shifts. Gaining buy-in from established institutions, businesses, and individuals accustomed to traditional hierarchical structures may be challenging. Moreover, potential resistance from those who benefit from the current power dynamics may hinder adoption.

    5. Regulatory Environment: Decentralized systems often face uncertain regulatory landscapes, and the Coexistion Protocol would likely attract scrutiny from regulators. Navigating legal frameworks while maintaining the principles of decentralization and inclusivity could be a significant hurdle.

    6. Technological Barriers: The reliance on technology means that access to the Coexistion Protocol could be limited for those without the necessary digital literacy or access to technology. Ensuring equitable access to the system will be crucial for achieving its goals.