Professional software engineer, musician, gamer, stoic, democratic socialist

  • 11 Posts
  • 472 Comments
Joined 3 years ago
cake
Cake day: July 2nd, 2023

help-circle















  • The main point of OP is that this was a misunderstanding that turned into an overreaction. It sounds like there was never any confusion among the maintainers that they were trying to create a policy to prevent LLM slop PRs and reduce maintenance burden. Somehow non-maintainers derailed the discussion into an anti-AI tirade that was completely unproductive.

    So basically: yes people should shut up if they don’t have anything productive to add to the discussion.


  • It was clear he was referring to anyone involving themselves unnecessarily in the business of maintainers trying to create a policy. This tends to happen whenever maintainers discuss things openly.

    It didn’t seem condescending to me. You have to accept that non-contributors simply don’t get as much weight as contributors in this kind of discussion. So when a lead maintainer sees non-contributors starting debates and criticizing the project when they don’t have their facts straight and it really wasn’t any of their business to begin with, they have a right to call them out.


  • Secrets

    • Encrypted secrets file. All repo-managed credentials live in secrets/secrets.yaml, encrypted with SOPS/age.
    • Encrypted OpenTofu state. State and plans are encrypted client-side (PBKDF2 + AES-GCM) with a passphrase from TF_VAR_state_passphrase.

    Network perimeter

    • Default-drop firewall on the router. I use a hand-written nftables ruleset with policy drop on both input and forward. Only lo, lan0 and wg0 are trusted. WAN accepts only established traffic, WireGuard UDP and HTTP/HTTPS.
    • No SSH from the WAN. sshd on the router is not exposed to the internet at all.
    • WireGuard for remote access.
    • Forced DNS. NAT redirects all LAN and VPN port-53 traffic to the router’s AdGuard. AdGuard uses Quad9 over DoT upstream, with blocklists and safe search.
    • Second-level ACL in nginx. Private .home vhosts and Grafana carry allow LAN; allow VPN; deny all;.
    • TLS everywhere. Every public vhost sets forceSSL with recommendedTlsSettings. Certificates come from ACME DNS-01, so issuance needs no inbound port 80. Cloudflare is DNS-only with no proxy, so no third party sees plaintext.

    Host access

    • SSH hardening. Password and keyboard-interactive auth are off, PermitRootLogin = “no”, and logins are key-only.
    • Dedicated deployer system user. It uses a CI-only keypair, separate from the interactive keys. Everything it does through sudo is logged with LOG_INPUT/LOG_OUTPUT to /var/log/sudo-deployer.log.



  • I think your initial criticism is too easy to refute. If someone wants to criticize me for using LLMs because they’re bad for the environment or because they’re built on stolen IP, sure we can have that more nuanced discussion.

    But telling me that I’m “cheating and I didn’t use my own cognitive utilities” – you have no idea how I use LLMs. You’re just assuming that I’m putting zero critical thought into the code I’m submitting. I review every line of code I submit, regardless of whether it was generated by LLM, written by hand, or a combination of both. And it is a laborious task; but my labor is more focused on decision making and designing tests than typing and fighting a compiler.

    I haven’t measured my productivity in any meaningful way, so I won’t try to argue that LLMs are strictly more productive. That’s a separate discussion. All I can say is that I prefer the workflow where I can describe my thoughts in natural language and then review generated code more than writing the code myself.