Unix Philosophy in Infrastructure
The Unix philosophy is to do one thing and do it well. This enabled the development of tool chaining with pipes, sending input to small tools and obtaining output that, at the end of the pipe, is a more useful representation or use of that data. Software for enterprises goes in the opposite direction to this approach, instead trying to handle all cases and add more features into a single tool to make it sellable to any customer. The suckless movement has arisen in opposition to enshittification of Linux software that has come about due to the widespread corporate usage of Linux stacks. Infrastructure and infrastructure tooling is another to that trend that needs to be called out.
The Agency's Encrypto
Season 2 of the TV show The Agency depicts a CIA operative using a covert channel to communicate with her handler, dubbed “Encrypto”. It appears to be used by sending messages through an extension or plugin in money transfer app’s messaging system. The application takes plaintext input, converts it to ciphertext (but encoded, rather than any AES or RSA blocks) which the recipient’s application decodes into plaintext. There are some interesting implications on how the tool works that is a fun exersize to explore.
Thoughts on IaC and Layering
Infrastructure as Code (IaC) has a property that there doesn’t seem to be an intuitive answer to: managing holistic state versus managing a subset of state. Terraform seems to have the hardest time with this; when managing state of a deployment, when is it easier to manage just a single application compared to managing all state in one deployment. This becomes exasperated when the underlying infrastructure or platform that the application lives on is also managed by IaC, and perhaps making changes is destructive to the original deployment. Doing all of the management in one deployment does mean that there’s less messy dependencies and ordering issues when deprovisioning, but making changes to whole swathes of infrastructure in one unwieldy state ultimately feels like a double edged sword. My bias may come from using Cloudformation, where a single account exists and exports manage relationships between stacks, but that also does not feel like a correct answer for all cases either.