msiemens | 14 days ago | on: Kagi Translate now supports LinkedIn Speak as an output language
msiemens's comments
msiemens | 1 year ago | on: Never Update Anything
- Docker Swarm and Docker Compose use different parsers for `docker-compose.yaml` files, which may lead to the same file working with Compose but not with Swarm ([1]).
- A Docker network only supports up to 128 joined containers (at least when using Swarm). This is due to the default address space for a Docker network using a /24 network (which the documentation only mentions in passing). But, Docker Swarm may not always show error message indicating that it's a network problem. Sometimes services would just stay in "New" state forever without any indictation what's wrong (see e.g. [2]).
- When looking a up a service name, Docker Swarm will use the IP from the first network (sorted lexically) where the service name exists. In a multi-tenant setup, where a lot of services are connected to an ingress network (i.e. Taefik), this may lead to a service connecting to a container from a different network than expected. The only solution is to always append the network name to the service name (e.g. service.customer-network; see [3]).
- Due to some reason I still wasn't able to figure out, the cluster will sometimes just break. The leader loses its connection to the other manager nodes, which in turn do NOT elect a new leader. The only solution is to force-recreate the whole cluster and then redeploy all workloads (see [4]).
Sure, our use case is somewhat special (running a cluster used by a lot of tenants), and we were able to find workarounds (some more dirty than others) to most of our issues with Docker Swarm. But what annoys me is that for almost all of the issues we had, there was a GitHub ticket that didn't get any official response for years. And in many cases, the reporters just give up waiting and migrate to K8s out of despair or frustration. Just a few quotes from the linked issues:
> We, too, started out with Docker Swarm and quickly saw all our production clusters crashing every few days because of this bug. […] This was well over two years (!) ago. This was when I made the hard decision to migrate to K3s. We never looked back.
> We recently entirely gave up on Docker Swarm. Our new cluster runs on Kubernetes, and we've written scripts and templates for ourselves to reduce the network-stack management complexities to a manageable level for us. […] In our opinion, Docker Swarm is not a production-ready containerization environment and never will be. […] Years of waiting and hoping have proved fruitless, and we finally had to go to something reliable (albeit harder to deal with).
> IMO, Docker Swarm is just not ready for prime-time as an enterprise-grade cluster/container approach. The fact that it is possible to trivially (through no apparent fault of your own) have your management cluster suddenly go brainless is an outrage. And "fixing" the problem by recreating your management cluster is NOT a FIX! It's a forced recreation of your entire enterprise almost from scratch. This should never need to happen. But if you run Docker Swarm long enough, it WILL happen to you. And you WILL plunge into a Hell the scope of which is precisely defined by the size and scope of your containerization empire. In our case, this was half a night in Hell. […] This event was the last straw for us. Moving to Kubernetes. Good luck to you hardy souls staying on Docker Swarm!
Sorry, if this seems like like Docker Swarm bashing. K8s has it's own issues, for sure! But at least there is a big community to turn to for help, if things to sideways.
[1]: https://github.com/docker/cli/issues/2527 [2]: https://github.com/moby/moby/issues/37338 [3]: https://github.com/docker/compose/issues/8561#issuecomment-1... [4]: https://github.com/moby/moby/issues/34384
msiemens | 2 years ago | on: Things unexpectedly named after people (2020)
- Aldi (supermarket chain), founded by the Albrecht brothers, thus ALbrecht DIskont
- Adidas, founded by ADolf DASsler
- Mercedes-Benz, named by Emil Jellinek-Mercedes after his daughter Mercedes, initially with Daimler which then merged with Benz
- Audi, founded by August Horch. Initially founded as _A. Horch & Cie. Motorwagenwerke Zwickau_, he later lost the rights to the name "Horch". He named his new company "Audi", which is a translation of his name into Latin: in German, "horch" is the imperative for "horchen" (to listen), which maps to "audi" as the imperative for "audire" in Latin
And then there are a just a ton of companies named after their founders (Porsche, Bosch, Siemens, …) but I'm not sure if these count :)
msiemens | 3 years ago | on: Apollo 13 in Real Time
[1] E.g. https://podcasts.apple.com/us/podcast/brady-heywood-podcast/...
msiemens | 4 years ago | on: GitHub Copilot: Your AI Pair Programmer
And to at least partially answer my own question, straight form the FAQ:
> Can GitHub Copilot introduce insecure code in its suggestions?
> There’s a lot of public code in the world with insecure coding patterns, bugs, or references to outdated APIs or idioms. When GitHub Copilot synthesizes code suggestions based on this data, it can also synthesize code that contains these undesirable patterns. This is something we care a lot about at GitHub, and in recent years we’ve provided tools such as Actions, Dependabot, and CodeQL to open source projects to help improve code quality. Similarly, as GitHub Copilot improves, we will work to exclude insecure or low-quality code from the training set. Of course, you should always use GitHub Copilot together with testing practices and security tools, as well as your own judgment.
Basically, they seem to hope that people will either be really careful about the suggested code or have existing code analysis workflows that would catch errors
msiemens | 4 years ago | on: Ask HN: Best “I brought down production” story?
Turned out that my coworker had set up the CI process to use a PHP-based zero downtime deployment scheme where each release was deployed into a folder with the commit hash as name and then a symlink was updated to point the web root to this new release folder.
But, critically, he also configured CI to delete old releases at the end of the deployment pipeline - by removing all release folders older than three days. And by re-deploying a commit older than three days, after uploading the code and updating the symlink, the release‘s folder was considered old and deleted at the end of the pipeline, leaving the webserver with an empty directory as web root.
msiemens | 5 years ago | on: The Norway Problem
With the one exception that with floatig point values the precision is not specified in the JSON spec and thus is implementation defined[1] which may lead to its own issues and corner cases. It for sure is better than YAML's 'NO' problem, but depending on your needs JSON may have issues as well
[1]: https://stackoverflow.com/questions/35709595/why-would-you-u...
msiemens | 5 years ago | on: Go is not an easy language
That’s an interesting statement as it doesn’t always work in other languages. In German (my native language) my first instinct was to translate both words as “einfach” which contains both concepts. In fact, in my online dictionary of choice the word “einfach” is the first entry for both “easy” and “simple”. So if Germans conflate these two it might be because of the language they speak :) But more to the point, I’m wondering how universal the distinction between easy and simple is when other languages cannot express that distinction as easily as in English.
msiemens | 5 years ago | on: This is Real, That's Not
But there was also a man who was bullied out of the company where he had worked for 21 years. I guess he didn't see homelessness coming for him. Also there was an older woman who lived in her car because she was forced out of the apartment where she lived for her whole life and she refused to accept moving to a different apartment. She had a reputable job, it was after she retired that all these issues came up. So I guess that even here there is no absolute guarantee that one wouldn't end up homeless.
msiemens | 5 years ago | on: Open Source does not mean “Includes Free Support”
If it's configured with a short timeout and with preventing further comments, I totally agree. That's rally annoying. But maybe there are circumstances where it's actually useful.
msiemens | 6 years ago | on: Boeing Fought Lion Air on Proposed Max Simulator Training Requirement
msiemens | 9 years ago | on: HypheNN-De: German Hyphenation with Neural Networks
These are interesting suggestions! It sure would be interesting to do actual research on how to optimize the hyphenation even more. It also would be interesting to play with the hyperparameters and network architecture to see what impact they have on the hyphenation accuracy. Alas, I'm a student so time is rather scarce.
PS: do you have the extracted list of wiktionary hyphenations sitting in a text file somewhere that you could put up? I'm fixin' to quickly compare the accuracy to TeX's German hyphenation (once the 30+GiB TeXLive repository finishes downloading).
Sure! The GitHub repository actually contains a Rust program to process a Wiktionary XML dump into a word list for training, but if you want to skip straight ahead, I've uploaded the dataset I used to https://gist.githubusercontent.com/msiemens/2aac63cf8d1b88c4... [6 MB, licensed under CC BY-SA 3.0].
PPS: You could improve the display of code blocks in your site on desktop by adding [...]
Thanks for the suggestion, I'll look into it!
msiemens | 9 years ago | on: HypheNN-De: German Hyphenation with Neural Networks
To be fair, in day-to-day use problems like these will be corner cases as to my knowledge LaTeX tries to avoid hyphenation and even if it has to split a word, it has a good chance of getting it right. Also, to me this project's focus was more on learning about neural networks than creating a better hyphenator.
msiemens | 10 years ago | on: “Extremely angry with the state of academic CS research right now”
msiemens | 11 years ago | on: Please remove mitsuhiko/*
> This project has been disabled. It doesn't accept donation and it will not distribute tips.
> Reason: Project author request: https://github.com/sigmike/peer4commit/issues/110
On the other hand, Tip4Comment has only this notice [2]:
> Project maintainers have decided not to notify new contributors about tips and they probably don't like this way of funding.
Input: F*ck you
Output:
> I’m not sure we’re aligned on this, so let’s circle back when our priorities are better synchronized.
Alternatives:
> I’ll take that under advisement and loop in the broader team for their perspective.
> Per my previous email, I believe the current roadmap already addresses the core requirements.
> I appreciate your input, but we’ve decided to move in a different direction to better optimize our resources.
> I’m happy to discuss this further once you’ve had a chance to review the documentation I provided.