<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: esrauch</title><link>https://news.ycombinator.com/user?id=esrauch</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Wed, 02 Sep 2026 21:28:33 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=esrauch" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by esrauch in "Protobuf has LSP support"]]></title><description><![CDATA[
<p>I was the grandparent reply and I meant to only carve out "you cannot write anything in JavaScript faster than anything written in tuned C, and json.parse is the latter".<p>Which link were you comparing FFI in python to json in python? The link I see seems to be about pure JavaScript language Protobuf impls vs json.parse?</p>
]]></description><pubDate>Wed, 19 Aug 2026 11:10:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=49359912</link><dc:creator>esrauch</dc:creator><comments>https://news.ycombinator.com/item?id=49359912</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49359912</guid></item><item><title><![CDATA[New comment by esrauch in "Protobuf has LSP support"]]></title><description><![CDATA[
<p>If you're writing JS you cannot beat JSON.parse, because you're running the most optimized C++ implementation of JSON which will outcompete any decoder written JS itself.<p>Which is not a very generalizable situation.</p>
]]></description><pubDate>Mon, 17 Aug 2026 02:08:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=49325833</link><dc:creator>esrauch</dc:creator><comments>https://news.ycombinator.com/item?id=49325833</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49325833</guid></item><item><title><![CDATA[New comment by esrauch in "A spectre is haunting Unicode"]]></title><description><![CDATA[
<p>Cling to 16 bit codepoints sounds like a legitimate explanation? Latin and Cyrillic didn't would have saved no relevant amount of space.<p>It looks like the CJK unified space is over 20,000 characters, so that's a real technical magnitude distinction compared to Latin and Cyrillic. "Asian languages be damned" seems like a bad faith read, compared to "Java and Windows char is 16 bits and that will never change realistically" (and in fact they still haven't, even in 2026 things which rely on UTF16 instead of UCS2 are still commonly bugged unfortunately)</p>
]]></description><pubDate>Sat, 15 Aug 2026 20:31:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=49314056</link><dc:creator>esrauch</dc:creator><comments>https://news.ycombinator.com/item?id=49314056</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49314056</guid></item><item><title><![CDATA[New comment by esrauch in "AI poster wins Ohio State Fair contest"]]></title><description><![CDATA[
<p>> if every poster were labeled “AI generated” with a black banner at the bottom, people wouldn’t care.<p>Do you have evidence that people would care?<p>The specific case of this poster it appears they are claiming it was disclosed by the submitter that it was AI and still picked. Maybe that's diffusing the situation after, but it seems most likely these people selected and asked to care about the poster knew it was AI and still selected it. Most people would care less than they did.</p>
]]></description><pubDate>Mon, 03 Aug 2026 00:43:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=49149939</link><dc:creator>esrauch</dc:creator><comments>https://news.ycombinator.com/item?id=49149939</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49149939</guid></item><item><title><![CDATA[New comment by esrauch in "KOReader"]]></title><description><![CDATA[
<p>Theres a long trail of smaller stores, including Kobo store and ebooks.com<p>Standard Ebooks for high quality public domain books, though they also offer azw.</p>
]]></description><pubDate>Wed, 29 Jul 2026 13:00:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=49096949</link><dc:creator>esrauch</dc:creator><comments>https://news.ycombinator.com/item?id=49096949</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49096949</guid></item><item><title><![CDATA[New comment by esrauch in "Qwen 3.8"]]></title><description><![CDATA[
<p>I feel like the pelican test can't be relevant anymore; the whole point was to to something that wouldn't be in the training set at all and now it is?</p>
]]></description><pubDate>Sun, 19 Jul 2026 11:56:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=48967314</link><dc:creator>esrauch</dc:creator><comments>https://news.ycombinator.com/item?id=48967314</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48967314</guid></item><item><title><![CDATA[New comment by esrauch in "Since Chromium 148, Math.tanh is now fingerprintable to link underlying OS"]]></title><description><![CDATA[
<p>Sure that part is a specific problem which is that new browsers basically want to declare their hacks profile against people who have already written sites and won't update them.<p>In practice when you make your new set of hacks the string you can always evaluate whatever cruft in the useragent today, but next browser shows up.<p>It does make the user agents insane but I don't know if there's any obviously better system for the problem, even with hindsight</p>
]]></description><pubDate>Fri, 17 Jul 2026 10:24:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=48945530</link><dc:creator>esrauch</dc:creator><comments>https://news.ycombinator.com/item?id=48945530</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48945530</guid></item><item><title><![CDATA[New comment by esrauch in "Protobuf-py: Protobuf for Python, without compromises"]]></title><description><![CDATA[
<p>> principle, you could perhaps statically link protobuf into the CPython executable, but I really don't think Google is doing that.)<p>Yes, we actually do exactly this (not just protobuf but generally all of the other C code with it for the given application). But there are other approaches that can work.<p>> But also now that header is deprecated anyway<p>It's deprecated exactly because the preferred/supported/default runtime is the upb based runtime. The odd gencode design is what made that transition possible as an implementation detail. So the deprecation is just the same topic here, that people successfully setting up the dynamic linking is not really realistic/viable unfortunately, and the effort for open source support is spent making the best behavior on the upb runtime which can't have that feature.</p>
]]></description><pubDate>Wed, 15 Jul 2026 02:38:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=48915595</link><dc:creator>esrauch</dc:creator><comments>https://news.ycombinator.com/item?id=48915595</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48915595</guid></item><item><title><![CDATA[New comment by esrauch in "Since Chromium 148, Math.tanh is now fingerprintable to link underlying OS"]]></title><description><![CDATA[
<p>I just can't see how it could make sense to define features when a ton of the the behavior wasn't even intentional but just tons of bugs. I recall debugging issues that only reproduced in "IE7 compatibility mode of IE8" which didn't reproduce in either IE7 or IE8. And that was already after the standards were taken at all seriously</p>
]]></description><pubDate>Mon, 13 Jul 2026 08:20:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=48889476</link><dc:creator>esrauch</dc:creator><comments>https://news.ycombinator.com/item?id=48889476</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48889476</guid></item><item><title><![CDATA[New comment by esrauch in "Since Chromium 148, Math.tanh is now fingerprintable to link underlying OS"]]></title><description><![CDATA[
<p>I feel like this is with 2026 view where browsers are so mutually compatible.<p>In the bad old days there were so many differences between html, css and js behaviors that if you wanted your site to be nice you had to change it for the browser. The way css padding worked wasn't even the same. Feature detection was rarely viable for any of this.<p>No user agent would probably have only entrenched IE6 dominance even more by blocking you from deliberately making a site that works at all on other browsers (including IE7 for that matter)</p>
]]></description><pubDate>Sun, 12 Jul 2026 23:55:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=48886143</link><dc:creator>esrauch</dc:creator><comments>https://news.ycombinator.com/item?id=48886143</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48886143</guid></item><item><title><![CDATA[New comment by esrauch in "Protobuf-py: Protobuf for Python, without compromises"]]></title><description><![CDATA[
<p>GoGo was not a completely separate implementation but deeply hooked into the official GoProto implementation. So it wasn't "Protobuf the binary wire format" or "Protobuf the schema language" which changed over time here, changes to the Google's Go library caused it problems. It's like building a library that integrates with Jackson (a JSON library) and Jackson details changed in ways that added toil, versus JSON changing.</p>
]]></description><pubDate>Sun, 12 Jul 2026 22:00:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=48885254</link><dc:creator>esrauch</dc:creator><comments>https://news.ycombinator.com/item?id=48885254</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48885254</guid></item><item><title><![CDATA[New comment by esrauch in "Protobuf-py: Protobuf for Python, without compromises"]]></title><description><![CDATA[
<p>Well, there's still two implementations even without getting into the quoted case. But yeah, narrowly about the C++Proto shared memory thing, unfortunately it's so hard to make this work for many different reasons that we don't even advertise support for this functionality at all. This is a bit in the weeds but inside Google we static link everything which makes is far easier to do it, and static linking is how we recommend you use C++Proto in general.<p>But its kind of a clear example of a surprisingly complicated technical space. The big picture is that it's actually not weird when a simpler thing which has less constraints can be better on some axes users when compared to a complicated thing that delivers on many advanced constraints.<p>If "readability of the .py gencode instead of the .pyi gencode" was the worst pain point (or pet peeve) here then I actually suspect Buf wouldn't have even bothered, it's just one of these that is easy to see and explain.</p>
]]></description><pubDate>Sun, 12 Jul 2026 18:57:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=48883547</link><dc:creator>esrauch</dc:creator><comments>https://news.ycombinator.com/item?id=48883547</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48883547</guid></item><item><title><![CDATA[New comment by esrauch in "Protobuf-py: Protobuf for Python, without compromises"]]></title><description><![CDATA[
<p>Engineer who works on Google Protobuf here, commenting as myself and not as an official statement.<p>It's great to have a healthy ecosystem in the world around Protobuf. Google can't possibly fill all use cases, there's many tools and Buf makes good tooling. The Protobuf team at Google intentionally tries to enable an ecosystem around Protobuf including examples like this. Google Cloud APIs are intentionally usable with any compatible thing that can understand Protobuf encoding including this one.<p>Kudos to Buf for making something that I'm sure a ton of people will find useful and which takes conformance so seriously.<p>Just to chime in with some context about Google's own implementations here though (since that's a lot of the discussion otherwise).<p>Google definitely takes Protobuf seriously including for the long term: you can't really understand how engrained it is within the Google stack without seeing it for yourself. It's not just RPC layer, it's storage, logging, FFI. Html templating is driven off Protobuf messages. Systems which interact with bank XML based systems uses Protobuf schemas. Internally it's widely used for in-memory library api types even without any direct/obvious connection to serialization just because it makes internal details like logging easier. This extremely large surface does create constraints and use-cases to balance. You can see Buf's reported numbers reflect that it is faster for a usecase they expect is typical, but at scale users do fall into the other buckets shown, affecting the performance of preexisting code is a major concern for our implementations that a greenfield implementation doesn't have.<p>Wide exposure in critical paths alongside long term support directly causes some quirks: for example some of our APIs followed PEP8 when it was created but PEP8 changed. It looks stupid that we have wrong style APIs but also it would be stupider to break compatibility for style reasons. JavaProto as another example still supports Java8 and the runtime is compatible with 2014 gencode which is a pretty major constraint.<p>Google Py Proto implementation has one extra interesting choice of the same gencode is reused with 3 different implementations (upb, a complete pure python one, and one that uses C++Proto as the in memory representation which libraries like TensorFlow can use to share memory between Python and C++), which is why design the way that it is with runtime created classes, the pyi files are readable but the .py files not.<p>This definitely has pros and cons, and the direct approach taken by Buf here really makes a ton of sense. It's just that Google's maintained implementation falls into a different spot in a larger technical tradeoff space.<p>If you see things that appear to make no sense with the official implementations, feel free to file an issue on GitHub and we can look, sometimes there is no reason and we can fix it, and sometimes there's a reason which we can explain.<p>Kudos again to Buf here, I'm fully sure this will solve some set of real business needs better than Google's (but not because Google isn't maintaining our offerings too).</p>
]]></description><pubDate>Sun, 12 Jul 2026 13:53:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=48881262</link><dc:creator>esrauch</dc:creator><comments>https://news.ycombinator.com/item?id=48881262</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48881262</guid></item><item><title><![CDATA[New comment by esrauch in "98% isn't much"]]></title><description><![CDATA[
<p>I wouldn't conflate old computers and old browsers. I still use an over 10 year old laptop and it still has a latest browser.</p>
]]></description><pubDate>Tue, 07 Jul 2026 13:50:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=48817846</link><dc:creator>esrauch</dc:creator><comments>https://news.ycombinator.com/item?id=48817846</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48817846</guid></item><item><title><![CDATA[New comment by esrauch in "A sociotechnical threat model for AI-driven smart home devices"]]></title><description><![CDATA[
<p>I'm not trying to agitate you here and won't keep looping on the same question after this reply: I just do not understand the threat model here, and you're still being oblique as though its obvious what the threat model by being sarcastic instead of just spelling it out in plain language.<p>Are you worried about some foreign state actor like Israel targeting you specifically, hacking your devices to listen to you chatting? Or you're worried about US warrantless mass surveillance wiretapping all citizen's smart speakers, and you're worried the US government may spin up such a program?<p>In the latter case, the scenario you expect will happen is we'll have ~100 million US households are live wiretapped 24/7 without anyone knowing, you'll be part of the remainder living your life blissfully wiretap-free thanks to not having a smart speaker?</p>
]]></description><pubDate>Mon, 06 Jul 2026 13:15:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=48804165</link><dc:creator>esrauch</dc:creator><comments>https://news.ycombinator.com/item?id=48804165</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48804165</guid></item><item><title><![CDATA[New comment by esrauch in "The Vespa at 80"]]></title><description><![CDATA[
<p>Nissan Leaf motor is silent, there's really just objectively not a noise from the motor itself which could offend you.<p>There's still some possibilities here: maybe you came across someone with a broken car and believed that to be representative.<p>Most other explanations here just involve some form of confusion on your part to be honest: that it was the backup-alert noise that it makes _because_ the car is otherwise too silent, that it wasn't actually a Leaf but an ICE engine that you saw, or something else.</p>
]]></description><pubDate>Mon, 06 Jul 2026 13:10:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=48804094</link><dc:creator>esrauch</dc:creator><comments>https://news.ycombinator.com/item?id=48804094</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48804094</guid></item><item><title><![CDATA[New comment by esrauch in "A sociotechnical threat model for AI-driven smart home devices"]]></title><description><![CDATA[
<p>Sorry, you're going to have to spell out the risk for me here. What other cases have we seen that indicate that mass surveillance via smart speakers is a risk?<p>We all also have phone in my pocket 24/7 and my laptop on my desk, both with microphones in them. In the event of the government doing warrantless spying on all devices it seems like that is a strictly higher ROI target for them?</p>
]]></description><pubDate>Mon, 06 Jul 2026 01:15:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=48799682</link><dc:creator>esrauch</dc:creator><comments>https://news.ycombinator.com/item?id=48799682</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48799682</guid></item><item><title><![CDATA[New comment by esrauch in "The Vespa at 80"]]></title><description><![CDATA[
<p>There is literally any noise from the engine, whine or otherwise. Whether a noise is bad or not can be subjective but silence is objective.<p>So at least for that one it kind of draws into question your overall conclusions here. You might be hearing an ICE and thinking it is electric, or some specific badly tuned vehicle or something.</p>
]]></description><pubDate>Sun, 05 Jul 2026 18:24:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=48796585</link><dc:creator>esrauch</dc:creator><comments>https://news.ycombinator.com/item?id=48796585</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48796585</guid></item><item><title><![CDATA[New comment by esrauch in "A sociotechnical threat model for AI-driven smart home devices"]]></title><description><![CDATA[
<p>Can you spell out the ramifications for the plebs?<p>As far as I can tell home smart speakers are being used for warrantless mass surveillance, unlike Flock for example. Do you mean the possible future situation where they are?</p>
]]></description><pubDate>Sun, 05 Jul 2026 18:21:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=48796550</link><dc:creator>esrauch</dc:creator><comments>https://news.ycombinator.com/item?id=48796550</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48796550</guid></item><item><title><![CDATA[New comment by esrauch in "Google Books (or similar) all book scans – $200k bounty (2025)"]]></title><description><![CDATA[
<p>I'm old enough to have used computers before having any Internet, and in 2026 the idea of plugging in devices to transfer files to it does feel like a fiddly relic of the past to me.</p>
]]></description><pubDate>Sun, 05 Jul 2026 11:51:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=48793437</link><dc:creator>esrauch</dc:creator><comments>https://news.ycombinator.com/item?id=48793437</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48793437</guid></item></channel></rss>