2,816 karma · joined April 16, 2014
You only need to update dependencies that interact with things that change autonomously.
For the types of programs I write, that describes very few, sometimes none, of my dependencies.
Continuous updating of dependencies is valuable in some circumstances. Not all.
I guess if you view housing as somehow exempt from market dynamics, then this view holds water. I'm sympathetic to that view, honestly.
It is not necessary to usurp famous city landmarks to offer affordable housing. Berlin is large and underdeveloped.
Is your claim that fewer regulations would result in a net increase in affordable housing stock?
Demand exists at a lower end of the market, where there is less incentive for suppliers. There is no affordable housing stock being created. Government exists for things precisely like this situation.
In Germany home ownership is not seen as strictly positive in the same way it is in the US for example. Many, perhaps even the majority, of Germans go their whole lives as renters.
Opinions vary but my experience is that Prometheus-style metrics are by far the most important thing to invest in, and deliver the majority of the "observability value" to the broadest set of architectures. Tracing systems like Lightstep can be super useful, too, but to deliver value they need a lot more end-to-end integration effort, and the cost of setting it up can very very easily outweigh the benefits it provides.
I've come to believe that logs are a trap. Everyone understands them intuitively, so they feel comfortable using them for basically everything, without thinking very critically about the ramifications. And even when logs are structured, they have no substantive schema, so there's no backpressure, so to speak, on usage. So the signal/noise ratio almost immediately goes negative. And they just occupy enormous amounts of time and memory to manage, process, analyze, etc. Although I'm sure it's not a universal truth, I've found that everything you might normally think to log is actually much better served by in-process request tracing. In general that means maintaining the log events of the most recent N requests for all of a set of application-defined categories. This is basically a real-time view of a system, with history proportional to, I dunno, rarity? of the request class. You don't ship these anywhere, you ask the applications directly. It seems weird to describe but it's just vastly more efficient to manage, and equally if not more useful for debug and triage.
YMMV.
OpenTelemetry exists to allow CTOs to tick boxes on requirements checklists, and help to get the CNCF technology stack into the F500 space. The project is textbook design by committee, with seemingly infinite scope but very little acknowledgement of the actual technical constraints of the problem space. It claims it can solve a lot of problems, but I can say from first hand experience that it does not, and cannot, deliver on those claims. It's not good. Nobody with a choice should be using it.
Why is it silly?
In what way are slices and maps half-assed?
Facts not in evidence.
The "classic" golang.org documentation was simple, easy to search, and consistent across user agents. The pkg.go.dev documentation is... well, bluntly: strictly worse.
There are longstanding bugs in basically all user agents. The README for a module is unavoidably truncated by default and requires a click to expand. And the navigation panel on the left is only rendered beyond a certain browser width, and changes as you scroll -- in total, a UX disaster.
I'm so frustrated by these changes. It's one thing to update the look and feel of a site over time. I understand and that's fine. But this was clearly a design by committee, with no single coherent direction. The net effect ticks a lot of boxes but is just functionally worse.
It depends...
If your services are servicing typical user requests, and expect responses in O(<1s), then eventing architectures are exactly the opposite of what you want. Using message brokers (Kafka) as an ersatz network layer is the path to sadness -- you want backpressure, RPC semantics, etc.
https://programmingisterrible.com/post/162346490883/how-do-y...
If you're doing ETC/event semantics, the game is different. But very few orgs actually work that way.