• 0 Posts
  • 56 Comments
Joined 1 year ago
cake
Cake day: June 29th, 2023

help-circle

  • Their entire offering is such a joke. I’m forced to use Docker Desktop for work, as we’re on Windows. Every time that piece of shit gets updated, it’s more useless garbage. Endless security snake oil features. Their installer even messes with your WSL home directory. They literally fuck with your AWS and Azure credentials to make it more “convenient” for you to use their cloud integrations. When they implemented that, they just deleted my AWS profile from my home directory, because they felt it should instead be a symlink to my Windows home directory. These people are not to be trusted with elevated privileges on your system. They actively abuse the privilege.

    The only reason they exist is that they are holding the majority of images hostage on their registry. Their customers are similarly being held hostage, because they started to use Docker on Windows desktops and are now locked in. Nobody gives a shit about any of their benefits. Free technology and hosting was their setup, now they let everyone bleed who got caught. Prices will rise until they find their sweet spot. Thanks for the tech. Now die already.





  • I gave podman compose a fresh try just the other day and was happy to see that it “just worked”.

    I’m personally pissed about aardvark-dns, which provides DNS for podman. The version that is still in Debian Stable sets a TTL of 24h on A record responses. This caused my entire service network to be disrupted whenever a pod restarted. The default behavior for similar resolvers is to set a TTL of 0. It’s like people who maintain it take it as an opportunity to rewrite existing solutions in Rust and implement all the bugs they can. Sometimes feels like someone just thought it would be a fun summer break project to implement DNS or network security.


  • A single malfunctioning service that restarts in a loop can exhaust the limit near instantly. And now you can’t bring up any of your services, because you’re blocked.

    I’ve been there plenty of times. If you have to rely on docker.io, you better pay up. Running your own NexusRM or Harbor to proxy it can drastically improve your situation though.

    Docker is a pile of shit. Steer clear entirely of any of their offerings if possible.









  • So if I watch all Star Wars movies, and then get a crew together to make a couple of identical movies that were inspired by my earlier watching, and then sell the movies, then this is actually completely legal.

    It doesn’t matter if they stole the source material. They are selling a machine that can create copyright infringements at a click of a button, and that’s a problem.

    This is not the same as an artist looking at every single piece of art in the world and being able to replicate it to hang it in the living room. This is an army of artists that are enslaved by a single company to sell any copy of any artwork they want. That army works as long as you feed it electricity and free labor of actual artists.

    Theft actually seems like a great word for what these scammers are doing.

    If you run some open source model on your own machine, that’s a different story.




  • I don’t necessarily disagree, but I have spent considerable time on this subject and can see merit in decoupling your own error signaling from the HTTP layer.

    No matter how you design your API, if you’re passing through additional layers, like load balancers and CDNs, you no longer have full control over all responses your clients receive. At this point it may be viable to always signal a successful backend connection with a 200, even if the process resulted in a failure.

    Going further, your API may include partial success scenarios, think batch processing, then the result could be a mix of success and failure that doesn’t translate to HTTP status.

    You could even argue that there is really no reason to couple your API so tightly with a concept of the transport layer it uses.


  • I really hate it when people call for impromptu meetings and are completely oblivious to what you mention. People are absolutely incapable of bridging mental gaps. Nobody explains common vocabulary. Nobody explains the expected goal of conversation. Nobody evens the playing field. Instead, you watch people confused and asking stupid questions, before they arrive at a constructive mental place, right before the meeting is over.

    Communication is art and a skill. Just because someone is talking a lot, doesn’t mean they communicate well.

    If you can efficiently enable a group of people to arrive in a mental context where they can contribute value to a decision or process, you are a valuable team member.

    IMHO this always requires preparation. You can’t expect to have a valuable exchange if you yourself can’t fully imagine the mental context the other people are in. At every moment you have to understand what might be keeping them from understanding you, and then approaching the specific conflict. “Why don’t you understand me?” is something you should never have to ask yourself.

    Also, yes, build more prototypes and actually watch some shit go instead of talking so fucking much. Pictures are a thousand words and a real thing is like thousands of pictures. Stop talking already!


  • Respect the Accept header from the client. If they need JSON, send JSON, otherwise don’t.

    Repeating an HTTP status code in the body is redundant and error prone. Never do it.

    Error codes are great. Ensure to prefix yours and keep them unique.

    Error messages can be helpful, but often lead developers to just display them in the frontend, breaking i18n. Some people supply error messages in multiple languages, depending on the Accept-Language header.