<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: mpweiher</title><link>https://news.ycombinator.com/user?id=mpweiher</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Mon, 15 Jun 2026 08:27:03 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=mpweiher" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by mpweiher in "Software Architecture Guide (2019)"]]></title><description><![CDATA[
<p>While these somewhat fuzzy definitions <i>are</i> hugely important (well, it says: "the important stuff, whatever that is", so by definition...), I have a hard time calling them "software architecture".<p>I'd like to suggest that at least some of the problems associated with the term, for example the pomposity, are rooted in the "separation from programming" that is not just a suggestion, but an unfortunate fact of architecture today.<p>And I would further suggest that we could improve the situation if we could actually express our architectures in our programs, in our programming languages.  Then software architecture wouldn't just be "deeply intertwined with programming", as it must be, but actually be part of programming and part of the program.<p>And once the architecture becomes part of the program, it becomes part of our feedback loops.  My experience is that feedback loops are a good antidote to pomposity and great for building/evolving systems.<p>To do that, though, we have to retreat from this idea that software architecture <i>must</i> be fuzzy, an idea that IMNSHO is just a cope for the current sad state of affairs.  We have pretty good definitions of architecture (connectors and components, systems, architectural styles, etc.), let's start using them in earnest and in our programs.</p>
]]></description><pubDate>Sun, 14 Jun 2026 07:35:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=48525026</link><dc:creator>mpweiher</dc:creator><comments>https://news.ycombinator.com/item?id=48525026</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48525026</guid></item><item><title><![CDATA[New comment by mpweiher in "Building an HTML-first site doubled our users overnight"]]></title><description><![CDATA[
<p>> Most of my apps are now simply HTMX + Go + SQLite.<p>Very cool!<p>> But yes, lately I’ve been building mobile apps. ... What can I do?<p>I am currently building HTMXNative.<p>Together with Objective-Smalltalk, which has linguistic support for REST built-in.<p>The idea is that you create your model in a natural way and then thinly wrap it to deliver wherever.</p>
]]></description><pubDate>Wed, 10 Jun 2026 18:08:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=48480315</link><dc:creator>mpweiher</dc:creator><comments>https://news.ycombinator.com/item?id=48480315</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48480315</guid></item><item><title><![CDATA[PostgreSQL: Property Graphs]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.postgresql.org/docs/19/ddl-property-graphs.html">https://www.postgresql.org/docs/19/ddl-property-graphs.html</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=48475292">https://news.ycombinator.com/item?id=48475292</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Wed, 10 Jun 2026 12:27:51 +0000</pubDate><link>https://www.postgresql.org/docs/19/ddl-property-graphs.html</link><dc:creator>mpweiher</dc:creator><comments>https://news.ycombinator.com/item?id=48475292</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48475292</guid></item><item><title><![CDATA[New comment by mpweiher in "Moving beyond fork() + exec()"]]></title><description><![CDATA[
<p>I've always liked the Mach approach.  You've got a few primitives:<p>- address space<p>- memory objects<p>- threads<p>Mix and match.  A Task (process) is not a primitive, but a composite object combining address space with one or more threads.  How you fill the address space with actual memory objects is up to you.  Map from disk or COW your own address space...have fun!<p><a href="https://developer.apple.com/library/archive/documentation/Darwin/Conceptual/KernelProgramming/Mach/Mach.html" rel="nofollow">https://developer.apple.com/library/archive/documentation/Da...</a></p>
]]></description><pubDate>Sun, 07 Jun 2026 08:31:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=48432972</link><dc:creator>mpweiher</dc:creator><comments>https://news.ycombinator.com/item?id=48432972</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48432972</guid></item><item><title><![CDATA[The Grad Student Who Broke Microplastics Research]]></title><description><![CDATA[
<p>Article URL: <a href="https://drstanfield.com/en-eu/blogs/articles/the-grad-student-who-broke-microplastics-research">https://drstanfield.com/en-eu/blogs/articles/the-grad-student-who-broke-microplastics-research</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=48432796">https://news.ycombinator.com/item?id=48432796</a></p>
<p>Points: 13</p>
<p># Comments: 3</p>
]]></description><pubDate>Sun, 07 Jun 2026 07:54:51 +0000</pubDate><link>https://drstanfield.com/en-eu/blogs/articles/the-grad-student-who-broke-microplastics-research</link><dc:creator>mpweiher</dc:creator><comments>https://news.ycombinator.com/item?id=48432796</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48432796</guid></item><item><title><![CDATA[Arc Fusion Power Plant Physics Basis]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.cambridge.org/core/journals/journal-of-plasma-physics/collections/arc-fusion-power-plant-physics-basis">https://www.cambridge.org/core/journals/journal-of-plasma-physics/collections/arc-fusion-power-plant-physics-basis</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=48425245">https://news.ycombinator.com/item?id=48425245</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Sat, 06 Jun 2026 14:00:29 +0000</pubDate><link>https://www.cambridge.org/core/journals/journal-of-plasma-physics/collections/arc-fusion-power-plant-physics-basis</link><dc:creator>mpweiher</dc:creator><comments>https://news.ycombinator.com/item?id=48425245</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48425245</guid></item><item><title><![CDATA[New comment by mpweiher in "My Agent Skill for Test-Driven Development"]]></title><description><![CDATA[
<p>The set of requirements TDD encourages code to meet happen to be ones that increase code quality.<p>Code that is easy to test tends to be well-structured.<p>Code that is badly structured tends to be hard to test.<p>TDD is not a QA methodology, it is a design methodology.  It also tends to help quality out a lot, but that's a secondary effect.</p>
]]></description><pubDate>Sat, 06 Jun 2026 09:03:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=48422923</link><dc:creator>mpweiher</dc:creator><comments>https://news.ycombinator.com/item?id=48422923</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48422923</guid></item><item><title><![CDATA[Arc Fusion Power Plant Physics Basis]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.cambridge.org/core/journals/journal-of-plasma-physics/collections/arc-fusion-power-plant-physics-basis">https://www.cambridge.org/core/journals/journal-of-plasma-physics/collections/arc-fusion-power-plant-physics-basis</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=48408983">https://news.ycombinator.com/item?id=48408983</a></p>
<p>Points: 3</p>
<p># Comments: 0</p>
]]></description><pubDate>Fri, 05 Jun 2026 07:00:49 +0000</pubDate><link>https://www.cambridge.org/core/journals/journal-of-plasma-physics/collections/arc-fusion-power-plant-physics-basis</link><dc:creator>mpweiher</dc:creator><comments>https://news.ycombinator.com/item?id=48408983</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48408983</guid></item><item><title><![CDATA[Safe Made Easy Pt.1: Single Ownership Is (Not) Optional]]></title><description><![CDATA[
<p>Article URL: <a href="https://ergeysay.github.io/safe-made-easy-pt1.html">https://ergeysay.github.io/safe-made-easy-pt1.html</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=48395022">https://news.ycombinator.com/item?id=48395022</a></p>
<p>Points: 1</p>
<p># Comments: 0</p>
]]></description><pubDate>Thu, 04 Jun 2026 06:54:16 +0000</pubDate><link>https://ergeysay.github.io/safe-made-easy-pt1.html</link><dc:creator>mpweiher</dc:creator><comments>https://news.ycombinator.com/item?id=48395022</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48395022</guid></item><item><title><![CDATA[New comment by mpweiher in "My thoughts after using Clojure for about a month"]]></title><description><![CDATA[
<p>Syntax-directed editors were all the rage in the late 70s early 80s...and a huge failure, because they were a <i>lot</i> more annoying than any text editor has a chance of ever being.<p>It's one of those things that, like visual programming, is absolutely and obviously The Right Thing™ until you try to implement it and use it.<p>That said, we have made progress in both areas, and maybe we will figure them out in the future.</p>
]]></description><pubDate>Wed, 03 Jun 2026 15:29:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=48385418</link><dc:creator>mpweiher</dc:creator><comments>https://news.ycombinator.com/item?id=48385418</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48385418</guid></item><item><title><![CDATA[New comment by mpweiher in "32GB of DDR5 now costs $375 – AI shortage continues to squeeze PC building"]]></title><description><![CDATA[
<p>Maybe we can start to become a little less profligate with our memory usage.<p>There certainly is lots and lots of potential.</p>
]]></description><pubDate>Wed, 03 Jun 2026 15:02:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=48385065</link><dc:creator>mpweiher</dc:creator><comments>https://news.ycombinator.com/item?id=48385065</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48385065</guid></item><item><title><![CDATA[XML and JSON in 2026]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.tbray.org/ongoing/When/202x/2026/06/01/XML-and-JSON-in-2026">https://www.tbray.org/ongoing/When/202x/2026/06/01/XML-and-JSON-in-2026</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=48380764">https://news.ycombinator.com/item?id=48380764</a></p>
<p>Points: 1</p>
<p># Comments: 0</p>
]]></description><pubDate>Wed, 03 Jun 2026 06:46:43 +0000</pubDate><link>https://www.tbray.org/ongoing/When/202x/2026/06/01/XML-and-JSON-in-2026</link><dc:creator>mpweiher</dc:creator><comments>https://news.ycombinator.com/item?id=48380764</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48380764</guid></item><item><title><![CDATA[NY takes new steps toward Hochul's plan for a nuclear future]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.syracuse.com/news/2026/06/ny-takes-new-steps-toward-hochuls-plan-for-a-nuclear-future.html">https://www.syracuse.com/news/2026/06/ny-takes-new-steps-toward-hochuls-plan-for-a-nuclear-future.html</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=48372018">https://news.ycombinator.com/item?id=48372018</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Tue, 02 Jun 2026 16:01:39 +0000</pubDate><link>https://www.syracuse.com/news/2026/06/ny-takes-new-steps-toward-hochuls-plan-for-a-nuclear-future.html</link><dc:creator>mpweiher</dc:creator><comments>https://news.ycombinator.com/item?id=48372018</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48372018</guid></item><item><title><![CDATA[Tongan Castaways]]></title><description><![CDATA[
<p>Article URL: <a href="https://en.wikipedia.org/wiki/Tongan_castaways">https://en.wikipedia.org/wiki/Tongan_castaways</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=48354317">https://news.ycombinator.com/item?id=48354317</a></p>
<p>Points: 3</p>
<p># Comments: 0</p>
]]></description><pubDate>Mon, 01 Jun 2026 09:03:40 +0000</pubDate><link>https://en.wikipedia.org/wiki/Tongan_castaways</link><dc:creator>mpweiher</dc:creator><comments>https://news.ycombinator.com/item?id=48354317</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48354317</guid></item><item><title><![CDATA[First Fusion Plant Applies to Join the Grid [video]]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.youtube.com/watch?v=isqK8RyTnCs">https://www.youtube.com/watch?v=isqK8RyTnCs</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=48348101">https://news.ycombinator.com/item?id=48348101</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Sun, 31 May 2026 18:12:19 +0000</pubDate><link>https://www.youtube.com/watch?v=isqK8RyTnCs</link><dc:creator>mpweiher</dc:creator><comments>https://news.ycombinator.com/item?id=48348101</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48348101</guid></item><item><title><![CDATA[The 'Renewable' Boondoggle]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.wsj.com/opinion/free-expression/the-renewable-boondoggle-1f4bff31">https://www.wsj.com/opinion/free-expression/the-renewable-boondoggle-1f4bff31</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=48321678">https://news.ycombinator.com/item?id=48321678</a></p>
<p>Points: 2</p>
<p># Comments: 1</p>
]]></description><pubDate>Fri, 29 May 2026 11:16:33 +0000</pubDate><link>https://www.wsj.com/opinion/free-expression/the-renewable-boondoggle-1f4bff31</link><dc:creator>mpweiher</dc:creator><comments>https://news.ycombinator.com/item?id=48321678</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48321678</guid></item><item><title><![CDATA[What If the Real Key to AI Coding Is Old-Fashioned and Boring?]]></title><description><![CDATA[
<p>Article URL: <a href="https://codemanship.wordpress.com/2026/05/28/what-if-the-real-key-to-ai-coding-is-old-fashioned-boring/">https://codemanship.wordpress.com/2026/05/28/what-if-the-real-key-to-ai-coding-is-old-fashioned-boring/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=48307967">https://news.ycombinator.com/item?id=48307967</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Thu, 28 May 2026 12:28:27 +0000</pubDate><link>https://codemanship.wordpress.com/2026/05/28/what-if-the-real-key-to-ai-coding-is-old-fashioned-boring/</link><dc:creator>mpweiher</dc:creator><comments>https://news.ycombinator.com/item?id=48307967</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48307967</guid></item><item><title><![CDATA[New comment by mpweiher in "Does anybody like React?"]]></title><description><![CDATA[
<p>> but when I see the creators of a system I trust basically deprecate it,<p>What makes you think I trust Apple?  So yes, that's very much a "you thing".<p>And SwiftUI is laughably bad.   And my very early criticisms of Swift, for example, have panned out precisely as I predicted.<p>> > Every UI is <i>always</i> some mapping of the state.<p>> but it previously wasn't described as such.<p>Yes it was.  Except this was seen as the obvious given that it is.  Because, once again, a UI that is not a function (mapping) of the model is not a UI.<p>"In Smalltalk-80, a view is just a visual representation of a model"  -- <a href="https://en.wikipedia.org/wiki/Model–view–controller#View" rel="nofollow">https://en.wikipedia.org/wiki/Model–view–controller#View</a><p>> IIRC, at the time, MVC had a common problem of controller bloat,<p>Nope.  Non-MVC implementations had the problem of controller bloat, because they didn't actually implement MVC.<p>> the render function of the component is a 100% pure function of the state that the framework injects.<p>Except, as I've correctly pointed out:  it's not.<p>[Advantages]<p>None of this is in any way specific ("The compiler".  Seriously?) or clearly an advantage that can be tied to this type of framework.  So yes: you're not even close to convincing me.  Because there's no "there" there.<p>>  the reason why this post rubs me the wrong way, is that you took a theoretical design document, misunderstood it for the actual, practical implementation<p>You misunderstood the post.  Completely.  The document claims "pure function".  This is laughably false.  The question is what is left when you remove "pure" from "pure function".  And the answer to that is:  <i>nothing</i>.<p>That doesn't mean there are no benefits, but the benefits cannot be "what you get from being a 100% pure function", because it ain't.<p>Just like the benefit of butter can't be "it's 100% fat free".  Because it ain't.<p>And if you keep insisting that those are the benefits, then I don't know how to help you.<p>And again, it doesn't mean there are no benefits, but they are both smaller than and quite different from what you claim. And with the benefit being fairly small, the other question is what the <i>cost</i> is of pretending this is so when it is not.  And the answer is:  pretty high.<p>And it's funny that on the one hand you go with the same "well, you're taking the "100% pure" thing too literally", when just a few lines above, you yourself made "100% pure function" the defining characteristic.<p>So which is it?  Make up your mind.  It appears to be Schröding-important.<p>Any UI that actually is a UI is some sort of function of the state.  Otherwise it is not a UI but random graphics and/or decoration.</p>
]]></description><pubDate>Tue, 26 May 2026 20:37:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=48285632</link><dc:creator>mpweiher</dc:creator><comments>https://news.ycombinator.com/item?id=48285632</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48285632</guid></item><item><title><![CDATA[New comment by mpweiher in "Does anybody like React?"]]></title><description><![CDATA[
<p>Interesting that you would think Apple introducing Swift UI would have any bearing on the correctness of that blog post.<p>Why do you think it would?<p>Did you misread my post as "ha ha, Apple does it differently and therefore react is wrong"?<p>If so, you certainly misread it a lot, and you have the wrong person.  I have tons of posts about Apple getting things wrong.<p>Anyway, did you miss the following part?<p><i>I also think that despite all the flaws, react.js and react.native are currently eating native development's lunch. </i><p>Clearly I made the point in my post that this approach has a lot of mindspace, despite the obvious flaws, so not sure how you pointing out that this approach has a lot of mindspace invalidates my post.<p>> Hence ui = f(state).<p>Every UI is <i>always</i> some mapping of the state.  Otherwise it isn't really a UI, is it?  What would it be, in your opinion, if it didn't map the state?<p>>  pure representation<p>What does "pure representation" mean to you?  I covered in the post that it sure as hell isn't a <i>pure function</i> of the state.  And cannot be.<p>Did you miss the part where David Abramov conceded that point?<p><i>To elaborate a bit, React components aren’t always “pure” in strict FP sense of the word. They’re also not always functions (although we’re adding a stateful function API as a preferred alternative to classes soon). Support for local state and side effects is absolutely a core feature of React components and not something we avoid for “purity”.</i><p>> This [ui=f(state)] gets you a metric ton of advantages,<p>Well, yes.  Like being a working UI, for example, which is why MVC is also structured this way.<p>But can you elaborate the <i>specific</i> advantages you believe the react approach gives us over, say, MVC?<p>The post elaborates that it would be really nice if UI <i>were</i> a pure function of the state.  But it just isn't.  And trying to pretend that it is might seemingly buy you some of those advantages, but at a huge cost.</p>
]]></description><pubDate>Tue, 26 May 2026 13:47:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=48279843</link><dc:creator>mpweiher</dc:creator><comments>https://news.ycombinator.com/item?id=48279843</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48279843</guid></item><item><title><![CDATA[New comment by mpweiher in "Does anybody like React?"]]></title><description><![CDATA[
<p>> Some languages just feel incredibly natural and frictionless for certain things, and nobody has really nailed UIs yet.<p>Emphatically <i>yes</i>.  If you look at books written about the problem in the early 90s[1], they are still applicable today.<p>> The current solutions, although I find it hard to describe precisely, are always tantalizingly lacking in one way or another.<p>The best analysis of this I have seen so far is in Chatty's <i>Programs = Data + Algorithms + Architecture: consequences for interactive software engineering</i> [2].  It's a bit hard to get through, but absolutely worth it.<p>As a short summary, the problem is architectural, or more specifically linguistic/architectural mismatch:  the architecture our "general purpose" programming languages induces, which is the call/return architectural style, does not match the architecture required for user interfaces, but rather conflicts with that style.<p>I also wrote about it in <i>Can Programmers Escape the Gentle Tyranny of call/return?</i>.<p>My current approach is to first build a programming language that can easily express alternative architectural styles:  Objective-Smalltalk [4].<p>With that I am now working an a UI framework I call interscript, including HTMXNative and other goodies.<p>It seems to be working out...<p>[1] For example, <i>Languages for developing user interfaces</i> by Myers et al  <a href="https://api.taylorfrancis.com/content/books/mono/download?identifierName=doi&identifierValue=10.1201/9781439865439&type=googlepdf" rel="nofollow">https://api.taylorfrancis.com/content/books/mono/download?id...</a><p>[2] <a href="https://opendl.ifip-tc6.org/db/conf/ehci/ehci2007/Chatty07.pdf" rel="nofollow">https://opendl.ifip-tc6.org/db/conf/ehci/ehci2007/Chatty07.p...</a><p>[3] <a href="https://2020.programming-conference.org/details/salon-2020-papers/5/Can-Programmers-Escape-the-Gentle-Tyranny-of-call-return-" rel="nofollow">https://2020.programming-conference.org/details/salon-2020-p...</a><p>[4] <a href="https://objective.st" rel="nofollow">https://objective.st</a></p>
]]></description><pubDate>Tue, 26 May 2026 09:31:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=48277278</link><dc:creator>mpweiher</dc:creator><comments>https://news.ycombinator.com/item?id=48277278</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48277278</guid></item></channel></rss>