<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: thyristan</title><link>https://news.ycombinator.com/user?id=thyristan</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Thu, 10 Sep 2026 03:17:09 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=thyristan" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by thyristan in "Google has stopped pushing Git tags for some Android source code"]]></title><description><![CDATA[
<p>The purpose of Android for Google is to push users into paid services, Google search, collect some play store fees and some data. None of that actually requires Android to be really open. Just saying something about "open" works as advertisement though...</p>
]]></description><pubDate>Thu, 20 Aug 2026 16:10:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=49376598</link><dc:creator>thyristan</dc:creator><comments>https://news.ycombinator.com/item?id=49376598</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49376598</guid></item><item><title><![CDATA[New comment by thyristan in "Google has stopped pushing Git tags for some Android source code"]]></title><description><![CDATA[
<p>Wikipedia (<a href="https://en.wikipedia.org/wiki/List_of_open-source_mobile_phones" rel="nofollow">https://en.wikipedia.org/wiki/List_of_open-source_mobile_pho...</a>) lists /e/OS, CalyxOS, IodéOS, LineageOS, postmarketOS, Ubuntu Touch, the latter two being non-Android, the rest Android derivatives on Fairphone 5. Fairphone 6 has only /e/OS and IodéOS listed at the moment, but that will probably change after some time on the market.<p>There are also various reports of things like running e.g. Fedora on an FP6, <a href="https://www.notebookcheck.net/Fairphone-6-turns-into-a-Linux-phone-running-Fedora-44-with-working-cameras.1372181.0.html" rel="nofollow">https://www.notebookcheck.net/Fairphone-6-turns-into-a-Linux...</a> or Debian on FP4/5, but those generally aren't something that is usable due to lacking support for basic things like calls.</p>
]]></description><pubDate>Thu, 20 Aug 2026 15:41:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=49376207</link><dc:creator>thyristan</dc:creator><comments>https://news.ycombinator.com/item?id=49376207</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49376207</guid></item><item><title><![CDATA[New comment by thyristan in "Google has stopped pushing Git tags for some Android source code"]]></title><description><![CDATA[
<p>Fairphones are easy to unlock, repairable, have a long lifetime and offer a variety of different operating system distributions.</p>
]]></description><pubDate>Thu, 20 Aug 2026 10:35:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=49372769</link><dc:creator>thyristan</dc:creator><comments>https://news.ycombinator.com/item?id=49372769</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49372769</guid></item><item><title><![CDATA[New comment by thyristan in "Turns are Better than Radians (2022)"]]></title><description><![CDATA[
<p>Theoretically, you can define systems of measurement where a lot of seemingly separate things fall on the same units and dimensions. There are "natural units" in physics where you take the fundamental nature of particles and relativity into account and make some convenient choices for some physical constants such as the speed of light c := 1. Then the speed becomes dimensionless, length and time have the same unit and dimension (a length of 1eV is a time period of 1eV), and almost all units are simply derived from a measurement of energy (electron volt, not as basic as people would like, but useful enough).<p><a href="https://en.wikipedia.org/wiki/Natural_units" rel="nofollow">https://en.wikipedia.org/wiki/Natural_units</a></p>
]]></description><pubDate>Thu, 20 Aug 2026 10:03:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=49372545</link><dc:creator>thyristan</dc:creator><comments>https://news.ycombinator.com/item?id=49372545</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49372545</guid></item><item><title><![CDATA[New comment by thyristan in "Turns are Better than Radians (2022)"]]></title><description><![CDATA[
<p>> Next time you are measuring traffic to your website consider using the appropriate SI unit for measuring requests per second: the Becquerel.<p>Great idea, I will definitely do this!</p>
]]></description><pubDate>Thu, 20 Aug 2026 06:16:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=49371002</link><dc:creator>thyristan</dc:creator><comments>https://news.ycombinator.com/item?id=49371002</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49371002</guid></item><item><title><![CDATA[New comment by thyristan in "Turns are Better than Radians (2022)"]]></title><description><![CDATA[
<p>In a very awkward way: rad is m/m, which is 1...</p>
]]></description><pubDate>Thu, 20 Aug 2026 06:13:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=49370983</link><dc:creator>thyristan</dc:creator><comments>https://news.ycombinator.com/item?id=49370983</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49370983</guid></item><item><title><![CDATA[New comment by thyristan in "German advocacy group lodges criminal complaint over Meta AI glasses"]]></title><description><![CDATA[
<p>> The individual wasn't the one who truly decided the essential means and purposes beyond personal use<p>The user is supposed to have read Meta's terms and conditions and agreed to them. Of course nobody does that, but that doesn't absolve of the responsibility, it rather means that the user who uploads stuff to Meta does things in full knowledge and willingly or carelessly. It just might make Meta liable as well, because naturally their terms were sneaky, hidden, unclear and probably illegal.<p>And I'd guess that Meta Ireland has been sued often enough that they have some export clause deep in their conditions as well, which the user should also have read and agreed to.</p>
]]></description><pubDate>Wed, 12 Aug 2026 16:13:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=49274746</link><dc:creator>thyristan</dc:creator><comments>https://news.ycombinator.com/item?id=49274746</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49274746</guid></item><item><title><![CDATA[New comment by thyristan in "German advocacy group lodges criminal complaint over Meta AI glasses"]]></title><description><![CDATA[
<p>> While recording by these might not always implicate GDPR directly (as it might be exempted under household exemption or the broader allowances given for journalistic purposes)<p>I'd guess that the glasses first transfer the recordings to Meta who process and store them abroad for various commercial purposes. That way of working can never fall under the household or journalistic exemptions. And per GDPR the owner of the glasses is on the hook for whatever Meta is doing, because the owner is (by GDPR) contracting Meta to do data processing for him/her.</p>
]]></description><pubDate>Wed, 12 Aug 2026 15:55:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=49274430</link><dc:creator>thyristan</dc:creator><comments>https://news.ycombinator.com/item?id=49274430</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49274430</guid></item><item><title><![CDATA[New comment by thyristan in "Water system controllers don't belong on the internet, says ex-NSA chief"]]></title><description><![CDATA[
<p>That's the first search engine hit I've pasted. The cheap ones that work just as well are single-digit prices. And usually there is one in every toolbox on the shop floor.<p>Edit: if you need proof, 2 for 6.50€, shipping included: <a href="https://www.ebay.de/itm/277671545941" rel="nofollow">https://www.ebay.de/itm/277671545941</a></p>
]]></description><pubDate>Sat, 08 Aug 2026 15:25:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=49222732</link><dc:creator>thyristan</dc:creator><comments>https://news.ycombinator.com/item?id=49222732</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49222732</guid></item><item><title><![CDATA[New comment by thyristan in "Assembly Hall of Shame"]]></title><description><![CDATA[
<p>You are right.<p>Not an LLM problem, just an undecaffeinated meat brain and some faulty memories. I've misread 'When PS=0, the page table address field represents the physical address of the page table that manages the four megabytes at that point.' to mean that when PS=1, the address isn't physical. But PS is page size... And I somehow remembered that you could induce pagefaults when walking the page tables...<p>Sorry.</p>
]]></description><pubDate>Sat, 08 Aug 2026 14:56:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=49222449</link><dc:creator>thyristan</dc:creator><comments>https://news.ycombinator.com/item?id=49222449</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49222449</guid></item><item><title><![CDATA[New comment by thyristan in "Assembly Hall of Shame"]]></title><description><![CDATA[
<p>> Page tables are physically addressed<p>Nope. Not on x86. You can use either physical or virtual addresses at your choosing. Consumer OSes use virtual ones, so you can swap out page tables (yes, really!). See <a href="https://wiki.osdev.org/X86_Paging" rel="nofollow">https://wiki.osdev.org/X86_Paging</a> "Page directory".</p>
]]></description><pubDate>Sat, 08 Aug 2026 10:57:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=49220603</link><dc:creator>thyristan</dc:creator><comments>https://news.ycombinator.com/item?id=49220603</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49220603</guid></item><item><title><![CDATA[New comment by thyristan in "Water system controllers don't belong on the internet, says ex-NSA chief"]]></title><description><![CDATA[
<p>Yes, it is.<p>All the siblings might talk a lot about "but ruggedized!", "but realtime!", "but supported!".<p>But in many cases, it is just a case of vendor lock-in. Ruggedized is just a casing and decoupled I/O-ports, you can get that for your Raspberry Pi. Realtime is a concern, but modern PLCs aren't really realtime anymore. Those are usually some big multicore non-realtime ARM, plus some small realtime-capable I/O-processors that do the really time-critical stuff. Or even just a CPLD to implement some trivial ladder logic cycles. Support matters, but if your PLC vendor goes bankrupt you've drained a few millions. Might be better to get something cheap where you can just stock up a few hundred replacement parts for cheaper.<p>That's why actually, a lot of smaller PLCs are Raspberry Pi CMs now. The vendor won't tell you, but if you open them up, you'll see.<p>And the big customers also wised up to the PLC scam and are now moving towards putting their control tasks on standard x86 hardware in the shop floor basement plus realtime ethernet with cheap I/O extenders on the shop floor. Which is why the big PLC vendors now try to sell "virtual PLC" to those customers, so they get at least a little money instead of none ;) <a href="https://www.siemens.com/en-us/products/simatic/s7-1500v/" rel="nofollow">https://www.siemens.com/en-us/products/simatic/s7-1500v/</a></p>
]]></description><pubDate>Sat, 08 Aug 2026 10:52:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=49220566</link><dc:creator>thyristan</dc:creator><comments>https://news.ycombinator.com/item?id=49220566</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49220566</guid></item><item><title><![CDATA[New comment by thyristan in "Water system controllers don't belong on the internet, says ex-NSA chief"]]></title><description><![CDATA[
<p>The PLC is usually in a control cabinet that can be opened by a control cabinet key:<p><a href="https://www.knipex.de/schaltschrankschluessel?v=2921" rel="nofollow">https://www.knipex.de/schaltschrankschluessel?v=2921</a><p>Real locks in such systems are rare, sometimes even disallowed. Usually, a lock with a real key is only used to temporarily prevent switching on a machine during maintenance or such.</p>
]]></description><pubDate>Sat, 08 Aug 2026 10:33:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=49220481</link><dc:creator>thyristan</dc:creator><comments>https://news.ycombinator.com/item?id=49220481</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49220481</guid></item><item><title><![CDATA[New comment by thyristan in "Assembly Hall of Shame"]]></title><description><![CDATA[
<p>Depending on his interpretation of the rules about trapped instructions, one could just build a loop in the x86 page tables. Those are usually a tree linked by pointers, and any page table lookup can create another page fault that creates another lookup that...<p>Leads to x86 page table MMU magic being turing complete: <a href="https://github.com/jbangert/trapcc" rel="nofollow">https://github.com/jbangert/trapcc</a><p>And the simplest thing you can do on such a system is just to loop indefinitely, thus creating a simple instruction with a memory access (mov or anything, doesn't really matter, even the instruction fetch for a nop would work) to take infinite time.</p>
]]></description><pubDate>Sat, 08 Aug 2026 09:35:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=49220196</link><dc:creator>thyristan</dc:creator><comments>https://news.ycombinator.com/item?id=49220196</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49220196</guid></item><item><title><![CDATA[New comment by thyristan in "I'm switching my phone from Android to Linux"]]></title><description><![CDATA[
<p>We even had open APIs for every bank in Germany, in the form of HBCI and FinTS. With fancy things like optional RSA smartcard auth. The EU killed it all in the name of "omg, security!" (a total bullshit argument if you've ever looked at the specs), now with the new PSD2 the only ones getting proper API access are lots of shady payment providers, credit databases, data brokers and the like...</p>
]]></description><pubDate>Thu, 06 Aug 2026 07:16:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=49193528</link><dc:creator>thyristan</dc:creator><comments>https://news.ycombinator.com/item?id=49193528</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49193528</guid></item><item><title><![CDATA[New comment by thyristan in "I'm switching my phone from Android to Linux"]]></title><description><![CDATA[
<p>I guess we just need the DBUS developers to get their heads out of their asses, that's all: <a href="https://lkml.org/lkml/2015/6/23/657" rel="nofollow">https://lkml.org/lkml/2015/6/23/657</a></p>
]]></description><pubDate>Thu, 06 Aug 2026 07:13:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=49193508</link><dc:creator>thyristan</dc:creator><comments>https://news.ycombinator.com/item?id=49193508</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49193508</guid></item><item><title><![CDATA[New comment by thyristan in "TSON – A JSON superset with immutable, hash-pinned schemas"]]></title><description><![CDATA[
<p>It is fine to have the fragment stripped before sending it to the server. What I meant was that client-side parsing of TSON in many languages will be hindered by the client-side libraries stripping the fragment far too early. Because you will need that fragment part for validation, but if your parse_url-function dismisses the fragment because nobody ever needs it...</p>
]]></description><pubDate>Thu, 06 Aug 2026 06:45:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=49193325</link><dc:creator>thyristan</dc:creator><comments>https://news.ycombinator.com/item?id=49193325</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49193325</guid></item><item><title><![CDATA[New comment by thyristan in "TSON – A JSON superset with immutable, hash-pinned schemas"]]></title><description><![CDATA[
<p>Fragments are useless outside a browser and lead to problems. A lot of command line and library HTTP agents ignore the fragment part of an URL, so you often might encounter everything after # stripped. Thus forcing you to invent yet another HTTP client/agent/URL library in a ton of languages.</p>
]]></description><pubDate>Wed, 05 Aug 2026 17:28:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=49186047</link><dc:creator>thyristan</dc:creator><comments>https://news.ycombinator.com/item?id=49186047</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49186047</guid></item><item><title><![CDATA[New comment by thyristan in "TSON – A JSON superset with immutable, hash-pinned schemas"]]></title><description><![CDATA[
<p>Dislike.<p>No comments means that one cannot use it for configuration. Properties repeat the XML mistake of the attribute/content dichotomy.<p>And trailing commas as a syntax error prevents easy sorting/appending/editing of arrays.<p>And it doesn't  fix a ton of JSON problems like strings containing newlines, quotes and the like, while introducing a ton of new problems, like the dependency on obscure Unicode features to elide quotes. This will lead to TSON homoglyph attacks.</p>
]]></description><pubDate>Wed, 05 Aug 2026 17:22:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=49185956</link><dc:creator>thyristan</dc:creator><comments>https://news.ycombinator.com/item?id=49185956</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49185956</guid></item><item><title><![CDATA[New comment by thyristan in "DMARC has been public since 2012 but most company domains still don't enforce it"]]></title><description><![CDATA[
<p>Domains with stricter DMARC that isn't on 'none' are in my experience more likely to be spammers than desirable email.</p>
]]></description><pubDate>Tue, 28 Jul 2026 14:36:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=49084621</link><dc:creator>thyristan</dc:creator><comments>https://news.ycombinator.com/item?id=49084621</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49084621</guid></item></channel></rss>