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

  • 9 Posts
  • 334 Comments
Joined 3 年前
cake
Cake day: 2023年7月2日

help-circle







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









  • To be clear, I’m not saying that the technology resulting from a software project should lack soul. It’s obviously a great thing when the authors of an application put a lot of care into designing its UX and operational efficiency; this is an art that LLMs do poorly today. But that is pretty much orthogonal from how the code reads. There is incredible, well-designed software out there which reads as totally boring, and that’s generally considered a good thing.

    Also I’m not claiming that it is easy to do that; crafting boring code that still functions as intended is quite difficult. I’ve never seen an LLM do this without lots of hand-holding. The human touch is essential, but that doesn’t imply that a person using an LLM suddenly has stunted vision and lack of aesthetic.


  • I can’t recall ever wishing the code I was reading had more soul. In fact, usually when the soul of the author shines through, it’s because the code is too exciting and makes me nervous that it’s overly complex. I agree LLMs are terrible at writing prose; it ends up sounding very unnatural and readability suffers. But for the code itself, more often than not, you can achieve precisely the desired result by doing a little up front discussion with the LLM about implementation strategy, plus some revision at the end.



  • Even if we suppose he is actually a danger to flesh-and-blood children (which is not implied by that fact), and that there is a hate mob of non-users, and that he is behind it, that’s an ad hominem attack and a non-sequitur.

    Sorry for playing devil’s advocate, but I wouldn’t go as far as saying it’s a non-sequitur to mention DeVault’s lolicon proclivities, and certainly not if we’re supposing he actually were a dangerous pedophile. If the point of attacking DHH’s politics – and by extension anyone associated – is to create a more inclusive software community, you can’t ignore that DeVault (a supposed ally in the fight against DHH) is at the same time hurting the inclusivity initiative by being publicly misogynistic (at best).

    I wouldn’t claim to know where DeVault sits in the balance between net positive or negative on the inclusivity front, considering he seems to have otherwise agreeable politics, but I just think you’ve weakened your argument by dismissing the reasonable criticism of DeVault’s behavior.

    That said, obviously I would rather be on the side of the likes of DeVault than DHH. With DeVault, you need to go digging to find his dark side. DHH just screams his nonsense from the mountain tops.