<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: yvdriess</title><link>https://news.ycombinator.com/user?id=yvdriess</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sat, 18 Apr 2026 05:48:32 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=yvdriess" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by yvdriess in "Ada, Its Design, and the Language That Built the Languages"]]></title><description><![CDATA[
<p>AmbientTalk did this. I used it for a demo where I dragged a mp3 player's UI button to another machine, where pressing play would play it back on the originator's speakers. Proper actor programming in the veins of E and Erlang.<p><a href="https://soft.vub.ac.be/amop/" rel="nofollow">https://soft.vub.ac.be/amop/</a></p>
]]></description><pubDate>Fri, 17 Apr 2026 09:49:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=47804170</link><dc:creator>yvdriess</dc:creator><comments>https://news.ycombinator.com/item?id=47804170</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47804170</guid></item><item><title><![CDATA[New comment by yvdriess in "DRAM has a design flaw from 1966. I bypassed it [video]"]]></title><description><![CDATA[
<p>Tournament parallelism is the technical term IIRC.</p>
]]></description><pubDate>Fri, 10 Apr 2026 07:47:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=47714889</link><dc:creator>yvdriess</dc:creator><comments>https://news.ycombinator.com/item?id=47714889</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47714889</guid></item><item><title><![CDATA[New comment by yvdriess in "r/programming bans all discussion of LLM programming"]]></title><description><![CDATA[
<p>somethingaweful forums are still very much alive</p>
]]></description><pubDate>Thu, 02 Apr 2026 08:15:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=47611457</link><dc:creator>yvdriess</dc:creator><comments>https://news.ycombinator.com/item?id=47611457</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47611457</guid></item><item><title><![CDATA[New comment by yvdriess in "Ozempic Is About to Go Generic for Billions of People"]]></title><description><![CDATA[
<p>Anyone else clicked on this expecting an article about Go Generics?</p>
]]></description><pubDate>Sat, 21 Mar 2026 10:44:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=47465859</link><dc:creator>yvdriess</dc:creator><comments>https://news.ycombinator.com/item?id=47465859</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47465859</guid></item><item><title><![CDATA[New comment by yvdriess in "The next generations of Bubble Tea, Lip Gloss, and Bubbles are available now"]]></title><description><![CDATA[
<p>Ignoring the snark for a second. It's not because you are unfamiliar with the go toolchain that it's inherently bad, nor does it put you in a good position to give accurate criticism.<p>- "tea" is an explicit alias that was added to the import statement in the tutorial examples, which you did not reflect in your snippet:<p><pre><code>    import tea "charm.land/bubbletea/v2"

</code></pre>
- The following also just works as you expected, but directly assumed wouldn't work:<p><pre><code>  import github.com/charmbracelet/bubbletea
</code></pre>
The only surprise here is that the repository authors decided to change the name of the module between v1 and v2 of the package. The git branch tagged v2 contains a module named 'charm.land/bubbletea', earlier v1 branches are named 'github.com/charmbracelet/bubbletea'. That's on them for breaking convention and surprising users, the go toolchain does not factor into, this beyond supporting versioning by naming convention.</p>
]]></description><pubDate>Fri, 06 Mar 2026 11:41:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=47273772</link><dc:creator>yvdriess</dc:creator><comments>https://news.ycombinator.com/item?id=47273772</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47273772</guid></item><item><title><![CDATA[New comment by yvdriess in "The next generations of Bubble Tea, Lip Gloss, and Bubbles are available now"]]></title><description><![CDATA[
<p>I would be fine with a chaotic bubbly mess of an outside presentation, if the libraries were more robust and foundational. At the moment the underlying code, when you scratch the surface, have the feel of things thrown together to be replaced at later date.<p>I bounced off of bubble tea not because of the aesthetics and the unhelpful naming, but because of the programming model: a MVC-architecture cribbed from the Elm language. Why? It completely takes over and rips apart my CLI structure. A CLI is not a DOM or System.Windows.Forms, MVC is scattering around logic and adding indirection layers needlessly.<p>I am still using huh? and vhs, but their libraries have the feel of looking really good in demo and in the provided examples, but break down quickly when coloring just outside those intended lines.</p>
]]></description><pubDate>Fri, 06 Mar 2026 09:31:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=47272850</link><dc:creator>yvdriess</dc:creator><comments>https://news.ycombinator.com/item?id=47272850</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47272850</guid></item><item><title><![CDATA[New comment by yvdriess in "Weave – A language aware merge algorithm based on entities"]]></title><description><![CDATA[
<p>Everything that was old will become new again. Content/structural version control used to be a research field. Pharo still uses one afaik <a href="https://scg.unibe.ch/archive/papers/Nier13bMonticello.pdf" rel="nofollow">https://scg.unibe.ch/archive/papers/Nier13bMonticello.pdf</a></p>
]]></description><pubDate>Wed, 04 Mar 2026 09:48:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=47245246</link><dc:creator>yvdriess</dc:creator><comments>https://news.ycombinator.com/item?id=47245246</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47245246</guid></item><item><title><![CDATA[New comment by yvdriess in "“Microslop” filtered in the official Microsoft Copilot Discord server"]]></title><description><![CDATA[
<p>Yeah. It's telling that this story is about their discord channel, not Teams.</p>
]]></description><pubDate>Mon, 02 Mar 2026 20:14:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=47223453</link><dc:creator>yvdriess</dc:creator><comments>https://news.ycombinator.com/item?id=47223453</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47223453</guid></item><item><title><![CDATA[New comment by yvdriess in "Dissecting the CPU-memory relationship in garbage collection (OpenJDK 26)"]]></title><description><![CDATA[
<p>The problem is that there is no baseline for measuring GC overhead. You cannot turn it off, you can only replace and compare with different strategies. For example sbrk is technically a noop GC, but that also has overhead and impact because it will not compact objects and give you bad cache behavior. (It illustrates the OP's point that it is not enough to measure pauses, sbrk has no pauses but gets outperformed easily.)<p>You could stop collecting performance counters around GC phases, but you even if you are not measuring the CPU still runs through its instructions, causing the second order effects. And as you mentioned too-short-to-measure barriers and other bookkeeping overheads (updating ref counters etc) or simply the fact that some tag bits or object slots are reserved all impact performance.<p>There is a good write-up of the problem and a way to estimate the cost based on different GC strategies, as you suggested, here: <a href="https://arxiv.org/abs/2112.07880" rel="nofollow">https://arxiv.org/abs/2112.07880</a><p>The way I found to measure a no-GC baseline is to compare them in an accurate workload performance simulator.
Mark all GC and allocator related code regions and have the simulator skip all those instructions. Critically that needs to be a simulator that does not deal with the functional simulation, but gets it's instructions from a functional simulator, emulator or PIN tool that does execute everything. It's laborious, not very fast and impractical for production work. But, it's the only way I found to answer a question like "What is the absolite overhead of memory management in Python?". (Answer: lower bound walltime sits around +25% avg, heavily depending on the pyperformance benchmark)</p>
]]></description><pubDate>Thu, 26 Feb 2026 20:48:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=47171824</link><dc:creator>yvdriess</dc:creator><comments>https://news.ycombinator.com/item?id=47171824</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47171824</guid></item><item><title><![CDATA[New comment by yvdriess in "Actors: A Model of Concurrent Computation [pdf] (1985)"]]></title><description><![CDATA[
<p>Mandatory mention of notable actor languages:<p><pre><code>  - Erlang and Elexir
  - E
  - AmbientTalk</code></pre></p>
]]></description><pubDate>Mon, 02 Feb 2026 11:34:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=46854819</link><dc:creator>yvdriess</dc:creator><comments>https://news.ycombinator.com/item?id=46854819</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46854819</guid></item><item><title><![CDATA[New comment by yvdriess in "In Praise of APL (1977)"]]></title><description><![CDATA[
<p>And they could be 0- or 1- indexed? :P</p>
]]></description><pubDate>Thu, 22 Jan 2026 11:49:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=46718045</link><dc:creator>yvdriess</dc:creator><comments>https://news.ycombinator.com/item?id=46718045</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46718045</guid></item><item><title><![CDATA[New comment by yvdriess in "Support for the TSO memory model on Arm CPUs (2024)"]]></title><description><![CDATA[
<p>TSO? Did you mean tso.architecture.cpu?</p>
]]></description><pubDate>Fri, 09 Jan 2026 16:48:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=46555789</link><dc:creator>yvdriess</dc:creator><comments>https://news.ycombinator.com/item?id=46555789</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46555789</guid></item><item><title><![CDATA[New comment by yvdriess in "Linear Address Spaces: Unsafe at any speed (2022)"]]></title><description><![CDATA[
<p>I agree on the part of the opportunity cost and that given the transistor budgets of the time a simpler design would have served better.<p>I fundamentally disagree on putting the majority of the blame on the object memory model. The problem was that they were compounding the added complexity of the object model with a slew of other unnecessary complexities. They somehow did find the budget to put the first full IEEE floating point unit on the execution unit, implemented a massive[1] decoder and microcode for the bit-aligned 200+ instruction set and interprocess communication. The expensive lookups per instructions had everything to do with cutting caches and programmable registers, not any kind of overwhelming complexity to the address translation.<p>I strongly recommend checking the "Performance effects of architectural complexity in the Intel 432" paper by Colwell that I linked in the parent.<p>[1] die shots: <a href="https://oldbytes.space/@kenshirriff/110231910098167742" rel="nofollow">https://oldbytes.space/@kenshirriff/110231910098167742</a></p>
]]></description><pubDate>Mon, 05 Jan 2026 15:36:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=46500014</link><dc:creator>yvdriess</dc:creator><comments>https://news.ycombinator.com/item?id=46500014</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46500014</guid></item><item><title><![CDATA[New comment by yvdriess in "Linear Address Spaces: Unsafe at any speed (2022)"]]></title><description><![CDATA[
<p>> > Linear virtual addresses were made to be backwards-compatible with tiny computers with linear physical addresses but without virtual memory.<p>> That is false. In the Intel World, we first had the iAPX 432, which was an object-capability design. To say it failed miserably is overselling its success by a good margin.<p>That's not refuting the point he's making. The mainframe-on-chip iAPX family (and Itanium after) died and had no heirs. The current popular CPU families are all descendents of the stopgap 8086 evolved from the tiny computer CPUs or ARM's straight up embedded CPU designs.<p>But I do agree with your point that a flat (global) virtual memory space is a lot nicer to program. In practice we've been fast moving away from that again though, the kernel has to struggle to keep up the illusion: NUCA, NUMA, CXL.mem, various mapped accelerator memories, etc.<p>Regarding the iAPX 432, I do want to set the record straight as I think you are insinuating that it failed because of its object memory design. The iAPX failed mostly because of it's abject performance characteristics, but that was in retrospect [1] not inherent to the object directory design. It lacked very simple look ahead mechanisms, no instruction or data caches, no registers and not even immediates. Performance did not seemed to be a top priority in the design, to paraphrase an architect. Additionally, the compiler team was not aligned and failed to deliver on time, which only compounded the performance problem.<p><pre><code>  - [1] https://dl.acm.org/doi/10.1145/45059.214411</code></pre></p>
]]></description><pubDate>Mon, 05 Jan 2026 13:03:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=46498310</link><dc:creator>yvdriess</dc:creator><comments>https://news.ycombinator.com/item?id=46498310</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46498310</guid></item><item><title><![CDATA[New comment by yvdriess in "Performance Hints"]]></title><description><![CDATA[
<p>In cpu uarch design, sure, but that's outside the context of the discussion. There's nothing you can do to that C++ library you are optimizing that will impact performance due to register allocation/renaming.</p>
]]></description><pubDate>Sat, 20 Dec 2025 00:45:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=46332711</link><dc:creator>yvdriess</dc:creator><comments>https://news.ycombinator.com/item?id=46332711</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46332711</guid></item><item><title><![CDATA[New comment by yvdriess in "Performance Hints"]]></title><description><![CDATA[
<p>Your critique applies to measuring one or a handful of instructions. 
In practice you count the number of cycles over million or billion instructions. CPI is very meaningful and it is the main throughput performance metric for CPU core architects.</p>
]]></description><pubDate>Fri, 19 Dec 2025 22:33:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=46331729</link><dc:creator>yvdriess</dc:creator><comments>https://news.ycombinator.com/item?id=46331729</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46331729</guid></item><item><title><![CDATA[New comment by yvdriess in "Performance Hints"]]></title><description><![CDATA[
<p>Register moves do not really play a factor in performance, unless its to move to/from vector registers.</p>
]]></description><pubDate>Fri, 19 Dec 2025 22:11:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=46331578</link><dc:creator>yvdriess</dc:creator><comments>https://news.ycombinator.com/item?id=46331578</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46331578</guid></item><item><title><![CDATA[New comment by yvdriess in "After ruining a treasured water resource, Iran is drying up"]]></title><description><![CDATA[
<p>Yes and just like our bodies, that closed loop is cooled by a rack of evaporators on the roof.</p>
]]></description><pubDate>Thu, 18 Dec 2025 13:01:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=46312116</link><dc:creator>yvdriess</dc:creator><comments>https://news.ycombinator.com/item?id=46312116</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46312116</guid></item><item><title><![CDATA[New comment by yvdriess in "Computer animator and Amiga fanatic Dick van Dyke turns 100"]]></title><description><![CDATA[
<p>He was an animator and it's the interesting kind of factoids we read these comment sections for. We'll allow it.</p>
]]></description><pubDate>Sat, 13 Dec 2025 21:34:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=46258317</link><dc:creator>yvdriess</dc:creator><comments>https://news.ycombinator.com/item?id=46258317</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46258317</guid></item><item><title><![CDATA[New comment by yvdriess in "Leaving Intel"]]></title><description><![CDATA[
<p>It's the overhead cost caused by trust breakdown. (tbf sometimes the timesheets are there for legal/tax reasons)</p>
]]></description><pubDate>Sat, 06 Dec 2025 11:18:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=46172447</link><dc:creator>yvdriess</dc:creator><comments>https://news.ycombinator.com/item?id=46172447</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46172447</guid></item></channel></rss>