Aussie living in the San Francisco Bay Area.
Coding since 1998.
.NET Foundation member. C# fan
https://d.sb/
Mastodon: @[email protected]

  • 12 Posts
  • 4.39K Comments
Joined 3 years ago
Aquileo | cake
Cake day: June 14th, 2023

Aquileo | help-circle
  • Accurate. At work I’m finally getting around to paying down tech debt from a temporary hack that was supposed to only be in the code for a month or so, but now it’s been in our production code for around five years.

    It would have been maybe a week or so to do it the right way initially, but we had hard deadlines and were pressed for time and just couldn’t get around to doing it. Now it’s over a month of work for one senior engineer (me) to clean up, because there’s so many interdependencies between the hacky code and other parts of the system that depend on side effects of the hacky code, or the order of updates performed in the hacky code. What a mess.

    At least AI can help a bit. Even the newest models aren’t so great at system architecture in brownfield projects though (projects building into existing systems).


  • Not sure if this counts, but as a software engineer, pretty much all major software you use is hacks on top of hacks on top of something someone built as a ‘temporary’ solution or as a proof-of-concept that’s still in use years later. It’s amazing that anything works properly at all. Stable software is basically just software with 10+ years of bug fixes layered on top of it.

    Part of the reason that Windows backwards compatibility is so good (plenty of Windows 95/98 apps still work fine on Windows 11!) is because Windows automatically applies compatibility fixes, including simulating bugs that were in older versions of Windows, because old apps could be relying on those bugs.

    My wife gets very frustrated when she encounters bugs, whereas I’m usually like “well, it’s not nearly as bad as it could be” lol







  • AI loves inserting comments like this.

    Either that or 20-line comments documenting the bugs in the old code, what this code does differently, and the exact implementation.

    Comments describing the exact implementation become stale very quickly. Comments shouldn’t explain what the code does (eg “add two to rowCount”); they should explain why it does it (eg “include header and footer row in count too”). Extra details are what the commit message is for, and history is what source control is for.

    I call it out in a lot of my code reviews (“code looks good but clean up the AI slop comments before landing”) but a lot of other developers don’t care as much about code and documentation quality.









  • There’s other approaches to automatically unlocking. For example, you can combine Clevis with Tang to use Network Bound Disk Encryption, which lets you automatically decrypt only when on a trusted network. (the password is stored on a different system on the same network)

    You can have multiple different LUKS keys, and any of them can be used to decrypt the disk. This lets you automatically unlock via a network server when your system is at home, while still prompting for an unlock password when not at home.

    At my workplace, our laptops have two LUKS keys - one for me and one for IT / tech support. It lets IT boot the system (eg if I send it in for repair) without having to know my LUKS password.





  • cost of AI going up

    The highly subsidized Anthropic and OpenAI subscriptions will go away, but open weight models are getting much better over time - GLM-5.2 and Kimi K3 are both very good.

    The most expensive part by far is training the model. That’s why OpenAI and Anthropic are losing so much money (well, that and the subscriptions).

    With an open weight model, someone has already trained it, and you just have to cover the cost of inference, making it a lot cheaper. Any company (or individual!) with powerful enough equipment can host the model, which means there’s competition in terms of price, compared to something like Claude Opus where the only four hosts (Anthropic, Amazon Bedrock, Google Vertex AI, and Azure AI Foundry) use Anthropic’s pricing.