<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: msiemens</title><link>https://news.ycombinator.com/user?id=msiemens</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Mon, 15 Jun 2026 14:50:33 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=msiemens" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by msiemens in "German ruling declares Google liable for false answers in AI Overviews"]]></title><description><![CDATA[
<p>Link to the ruling (in German, obviously), since the page seems have to been hugged: <a href="https://the-decoder.de/wp-content/uploads/2026/06/26_O_869_26_begl_Abschrift_Urteil_v_28_05_2026_Geschwaerzt_Geschwaerzt_Geschwaerzt.pdf" rel="nofollow">https://the-decoder.de/wp-content/uploads/2026/06/26_O_869_2...</a></p>
]]></description><pubDate>Wed, 10 Jun 2026 06:04:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=48472082</link><dc:creator>msiemens</dc:creator><comments>https://news.ycombinator.com/item?id=48472082</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48472082</guid></item><item><title><![CDATA[New comment by msiemens in "Volkswagen blocks Home Assistant by requiring client assertion"]]></title><description><![CDATA[
<p>Same here. I've been scraping the data from my Garmin watch for years with very little problems (first with <a href="https://github.com/tcgoetz/GarminDB" rel="nofollow">https://github.com/tcgoetz/GarminDB</a>, then <a href="https://github.com/sealbro/dotnet.garmin.connect" rel="nofollow">https://github.com/sealbro/dotnet.garmin.connect</a>).<p>The only annoyance is that Garmin requires 2FA if you enable the ECG feature on your smart watch/fitness tracker, but I have a small program that reads the 2FA codes from my Gmail inbox and supplies them to the scraper without too much trouble.</p>
]]></description><pubDate>Fri, 29 May 2026 08:42:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=48320671</link><dc:creator>msiemens</dc:creator><comments>https://news.ycombinator.com/item?id=48320671</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48320671</guid></item><item><title><![CDATA[New comment by msiemens in "Flipper One – we need your help"]]></title><description><![CDATA[
<p>> the wording is not human at all<p>Or they are not a native speaker. I guess it's a "damned if you do, damned if you don't situation". Use a LLM to clean up your own prose? Bad. Post your unedited (or self-edited) prose? I guess it is "not human".</p>
]]></description><pubDate>Thu, 21 May 2026 14:46:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=48223616</link><dc:creator>msiemens</dc:creator><comments>https://news.ycombinator.com/item?id=48223616</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48223616</guid></item><item><title><![CDATA[Decoding OneNote's File Format Secrets]]></title><description><![CDATA[
<p>Article URL: <a href="https://m-siemens.de/blog/2026/05/decoding-onenote-s-file-format-secrets/">https://m-siemens.de/blog/2026/05/decoding-onenote-s-file-format-secrets/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=48206592">https://news.ycombinator.com/item?id=48206592</a></p>
<p>Points: 3</p>
<p># Comments: 0</p>
]]></description><pubDate>Wed, 20 May 2026 12:26:52 +0000</pubDate><link>https://m-siemens.de/blog/2026/05/decoding-onenote-s-file-format-secrets/</link><dc:creator>msiemens</dc:creator><comments>https://news.ycombinator.com/item?id=48206592</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48206592</guid></item><item><title><![CDATA[New comment by msiemens in "Kagi Translate now supports LinkedIn Speak as an output language"]]></title><description><![CDATA[
<p>Honestly, it's even more funny than I expected<p>Input: F*ck you<p>Output:<p>> I’m not sure we’re aligned on this, so let’s circle back when our priorities are better synchronized.<p>Alternatives:<p>> I’ll take that under advisement and loop in the broader team for their perspective.<p>> Per my previous email, I believe the current roadmap already addresses the core requirements.<p>> I appreciate your input, but we’ve decided to move in a different direction to better optimize our resources.<p>> I’m happy to discuss this further once you’ve had a chance to review the documentation I provided.</p>
]]></description><pubDate>Tue, 17 Mar 2026 10:25:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=47410764</link><dc:creator>msiemens</dc:creator><comments>https://news.ycombinator.com/item?id=47410764</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47410764</guid></item><item><title><![CDATA[New comment by msiemens in "Never Update Anything"]]></title><description><![CDATA[
<p>I know it's this is a rather long tangent and not the main point of the article, but regarding "Docker Swarm over Kubernetes", I've had a ton of bad experiences at my employer running a production Swarm cluster. Among them:<p>- 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]).<p>- 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). <i>But</i>, 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]).<p>- 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]).<p>- Due to some reason I still wasn't able to figure out, the cluster will sometimes just <i>break</i>. 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]).<p>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 <i>years</i>. 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:<p>> 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.<p>> 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).<p>> 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!<p>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.<p>[1]: <a href="https://github.com/docker/cli/issues/2527">https://github.com/docker/cli/issues/2527</a>
[2]: <a href="https://github.com/moby/moby/issues/37338">https://github.com/moby/moby/issues/37338</a>
[3]: <a href="https://github.com/docker/compose/issues/8561#issuecomment-1873501393">https://github.com/docker/compose/issues/8561#issuecomment-1...</a>
[4]: <a href="https://github.com/moby/moby/issues/34384">https://github.com/moby/moby/issues/34384</a></p>
]]></description><pubDate>Sat, 20 Jul 2024 12:17:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=41015942</link><dc:creator>msiemens</dc:creator><comments>https://news.ycombinator.com/item?id=41015942</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41015942</guid></item><item><title><![CDATA[New comment by msiemens in "Things unexpectedly named after people (2020)"]]></title><description><![CDATA[
<p>A few German companies:<p>- Aldi (supermarket chain), founded by the Albrecht brothers, thus <i>AL</i>brecht <i>DI</i>skont<p>- Adidas, founded by <i>AD</i>olf <i>DAS</i>sler<p>- Mercedes-Benz, named by Emil Jellinek-Mercedes after his daughter Mercedes, initially with Daimler which then merged with Benz<p>- 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<p>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 :)</p>
]]></description><pubDate>Thu, 22 Feb 2024 07:09:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=39464108</link><dc:creator>msiemens</dc:creator><comments>https://news.ycombinator.com/item?id=39464108</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39464108</guid></item><item><title><![CDATA[New comment by msiemens in "Apollo 13 in Real Time"]]></title><description><![CDATA[
<p>Another recommendatation in a similar vein: The Brady Heywood Podcast's Apollo 13 series [1]. It's almost 6 hours in total, includes a lot of original voice recordings and explains a lot about what's going on in the background. Really worth a listen if you're into podcasts :)<p>[1] E.g. <a href="https://podcasts.apple.com/us/podcast/brady-heywood-podcast/id1159251584" rel="nofollow">https://podcasts.apple.com/us/podcast/brady-heywood-podcast/...</a></p>
]]></description><pubDate>Sat, 15 Apr 2023 18:46:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=35583398</link><dc:creator>msiemens</dc:creator><comments>https://news.ycombinator.com/item?id=35583398</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=35583398</guid></item><item><title><![CDATA[New comment by msiemens in "GitHub Copilot: Your AI Pair Programmer"]]></title><description><![CDATA[
<p>After seeing the demos my biggest question is: how will this not lead to people just accepting whatever GitHub Copilot suggests while introducing subtle yet catastrophic errors? Basically, how is this not going to become an alternative to just copy-pasting StackOverflow answers without verification? Especially given the IDE integration…<p>And to at least partially answer my own question, straight form the FAQ:<p>> Can GitHub Copilot introduce insecure code in its suggestions?<p>> 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.<p>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</p>
]]></description><pubDate>Tue, 29 Jun 2021 14:43:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=27676514</link><dc:creator>msiemens</dc:creator><comments>https://news.ycombinator.com/item?id=27676514</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=27676514</guid></item><item><title><![CDATA[New comment by msiemens in "Ask HN: Best “I brought down production” story?"]]></title><description><![CDATA[
<p>I brought down production for a project — by running the deployment CI pipeline for already deployed commit. A couple of minutes later, production was thoroughly dead.<p>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.<p>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.</p>
]]></description><pubDate>Sun, 27 Jun 2021 15:26:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=27652307</link><dc:creator>msiemens</dc:creator><comments>https://news.ycombinator.com/item?id=27652307</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=27652307</guid></item><item><title><![CDATA[Why Specifications Don't Compose]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.hillelwayne.com/post/spec-composition/">https://www.hillelwayne.com/post/spec-composition/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=26859981">https://news.ycombinator.com/item?id=26859981</a></p>
<p>Points: 111</p>
<p># Comments: 63</p>
]]></description><pubDate>Mon, 19 Apr 2021 07:31:28 +0000</pubDate><link>https://www.hillelwayne.com/post/spec-composition/</link><dc:creator>msiemens</dc:creator><comments>https://news.ycombinator.com/item?id=26859981</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=26859981</guid></item><item><title><![CDATA[New comment by msiemens in "The Norway Problem"]]></title><description><![CDATA[
<p>> JSON, which is [...] unambiguous about its types<p>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<p>[1]: <a href="https://stackoverflow.com/questions/35709595/why-would-you-use-a-string-in-json-to-represent-a-decimal-number" rel="nofollow">https://stackoverflow.com/questions/35709595/why-would-you-u...</a></p>
]]></description><pubDate>Sat, 03 Apr 2021 14:57:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=26681545</link><dc:creator>msiemens</dc:creator><comments>https://news.ycombinator.com/item?id=26681545</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=26681545</guid></item><item><title><![CDATA[New comment by msiemens in "Go is not an easy language"]]></title><description><![CDATA[
<p>> Easy and simple are near-universally conflated.<p>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.</p>
]]></description><pubDate>Mon, 22 Feb 2021 20:06:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=26229835</link><dc:creator>msiemens</dc:creator><comments>https://news.ycombinator.com/item?id=26229835</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=26229835</guid></item><item><title><![CDATA[New comment by msiemens in "This is Real, That's Not"]]></title><description><![CDATA[
<p>I've talked to a couple of homeless people in a large city in Germany and the impression I seems to largely match your assertion. Most people I talked to who are homeless were from eastern Europe who tried to make a better living in Germany but failed. There were also some with drug or alcohol problems or had some sort of mental issues.<p>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.</p>
]]></description><pubDate>Sat, 05 Dec 2020 08:24:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=25312822</link><dc:creator>msiemens</dc:creator><comments>https://news.ycombinator.com/item?id=25312822</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=25312822</guid></item><item><title><![CDATA[New comment by msiemens in "Open Source does not mean “Includes Free Support”"]]></title><description><![CDATA[
<p>As the maintainer of a moderately popular project on GitHub I'm torn in this. I often get issues where I try to solve the user's problem and think I have answered the question or provided a solution, but don't get any reply from the reporter when asking if it is solved, sometimes for years. I configured Stale Bot with a IMO generous delay so the user has enough time to at least give a short reply if the issue persists. If it does, I'll gladly add a 'pinned' tag to keep Stale Bot away from it. But in the end the bot just does what I'd do by hand anyway.<p>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.</p>
]]></description><pubDate>Sun, 15 Nov 2020 20:36:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=25104573</link><dc:creator>msiemens</dc:creator><comments>https://news.ycombinator.com/item?id=25104573</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=25104573</guid></item><item><title><![CDATA[Show HN: Convert OneNote Notebooks to HTML]]></title><description><![CDATA[
<p>Article URL: <a href="https://github.com/msiemens/one2html">https://github.com/msiemens/one2html</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=25035418">https://news.ycombinator.com/item?id=25035418</a></p>
<p>Points: 1</p>
<p># Comments: 0</p>
]]></description><pubDate>Mon, 09 Nov 2020 14:58:54 +0000</pubDate><link>https://github.com/msiemens/one2html</link><dc:creator>msiemens</dc:creator><comments>https://news.ycombinator.com/item?id=25035418</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=25035418</guid></item><item><title><![CDATA[Developer Experience as a Competitive Advantage]]></title><description><![CDATA[
<p>Article URL: <a href="https://erikbern.com/2020/10/06/developer-experience-as-a-competitive-advantage.html">https://erikbern.com/2020/10/06/developer-experience-as-a-competitive-advantage.html</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=24707699">https://news.ycombinator.com/item?id=24707699</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Wed, 07 Oct 2020 12:59:59 +0000</pubDate><link>https://erikbern.com/2020/10/06/developer-experience-as-a-competitive-advantage.html</link><dc:creator>msiemens</dc:creator><comments>https://news.ycombinator.com/item?id=24707699</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=24707699</guid></item><item><title><![CDATA[GitHub Availability July 2020]]></title><description><![CDATA[
<p>Article URL: <a href="https://github.blog/2020-08-05-github-availability-report-july-2020/">https://github.blog/2020-08-05-github-availability-report-july-2020/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=24062798">https://news.ycombinator.com/item?id=24062798</a></p>
<p>Points: 5</p>
<p># Comments: 0</p>
]]></description><pubDate>Wed, 05 Aug 2020 16:42:14 +0000</pubDate><link>https://github.blog/2020-08-05-github-availability-report-july-2020/</link><dc:creator>msiemens</dc:creator><comments>https://news.ycombinator.com/item?id=24062798</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=24062798</guid></item><item><title><![CDATA[Solving Uninitialized Stack Memory on Windows]]></title><description><![CDATA[
<p>Article URL: <a href="https://msrc-blog.microsoft.com/2020/05/13/solving-uninitialized-stack-memory-on-windows/">https://msrc-blog.microsoft.com/2020/05/13/solving-uninitialized-stack-memory-on-windows/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=23176340">https://news.ycombinator.com/item?id=23176340</a></p>
<p>Points: 3</p>
<p># Comments: 0</p>
]]></description><pubDate>Thu, 14 May 2020 07:05:10 +0000</pubDate><link>https://msrc-blog.microsoft.com/2020/05/13/solving-uninitialized-stack-memory-on-windows/</link><dc:creator>msiemens</dc:creator><comments>https://news.ycombinator.com/item?id=23176340</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=23176340</guid></item><item><title><![CDATA[New comment by msiemens in "Boeing Fought Lion Air on Proposed Max Simulator Training Requirement"]]></title><description><![CDATA[
<p>I guess it depends. I have a German engineering degree and took a business administration course as a part of that. And in one of the first lectures our professor told us that <i>The formal goal of the company is to maximize profit</i>. Which seems to be just a more formal way of expressing <i>Greed is good</i>. But then again, this might be influenced by American business culture…</p>
]]></description><pubDate>Mon, 13 Jan 2020 21:11:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=22038630</link><dc:creator>msiemens</dc:creator><comments>https://news.ycombinator.com/item?id=22038630</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=22038630</guid></item></channel></rss>