I believe that excellent communication can be had without engineers swearing at each other, and I don’t think there are is any good rationale that warrants such behavior. You believe that there is a time and purpose for the style of conversation that Linus portrayed, and it is warranted and effective behavior.
I’m going to agree to disagree from here. Thanks for the conversation.
Please defend these statements for me. I’m having a hard time understanding how this is language we should strive for in a code review, even with your explanation.
I kindly disagree with most of what you said. Linus is brilliant, and I appreciate his contributions not just to technology and freedom but also to society. However, this does not pardon the hardships he has also brought upon others.
It’s important to be honest in code reviews, but his language, while also honest, goes far and beyond that. We’re doing ourselves a disservice defending this behavior as if it’s a standard of communication quality that people should strive for, or learn how to behave like.
For sure. It’s funny in a way, but this is not a great way to treat folks that are trying to contribute, often on their own time. This could have been rephrased in so many other ways where Linus doesn’t come off as a total jerk, and still be “right” with the same message.
I think Docker is a tool, and it depends on how you implement said tool. You can use Docker in ways that make your infra more complicated, less efficient, and more bloated with little benefit, if not a loss of benefits. You can also use it in a way that promotes high uptime, fail-overs, responsible upgrades, etc. Just “Docker” as-is does not solve problems or introduce problems. It’s how you use it.
Lots of people see Docker as the “just buy a Mac” of infra. It doesn’t make all your issues magically go away. Me, personally, I have a good understanding of what my OS is doing, and what software generally needs to run well. So for personal stuff where downtime for upgrades means that I, myself, can’t use a service while it’s upgrading, I don’t see much benefit for Docker. I’m happy to solve problems if I run into them, also.
However, in high-uptime environments, I would probably set up a k8s environment with heavy use of Docker. I’d implement integration tests with new images and ensure that regressions aren’t being introduced as things go out with a CI/CD pipeline. I’d leverage k8s to do A-B upgrades for zero downtime deploys, and depending on my needs, I might use an elastic stack.
So personally, my use of Docker would be for responsible shipping and deploys. Docker or not, I still have an underlying Linux OS to solve problems for; they’re just housed inside a container. It could be argued that you could use a first-party upstream Docker image for less friction, but in my experience, I eventually want to tweak things, and I would rather roll my own images.
For SoC boards, resources are already at a premium, so I prefer to run on metal for most of my personal services. I understand that we have very large SoC boards that we can use now, but I still like to take a simpler, minimalist approach with little bloat. Plus, it’s easier to keep track of things with systemd services and logs anyway, since it uniformly works the way it should.
Just my $0.02. I know plenty of folks would think differently, and I encourage that. Just do what gives you the most success in the end 👍