<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: movpasd</title><link>https://news.ycombinator.com/user?id=movpasd</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Tue, 21 Apr 2026 10:36:52 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=movpasd" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by movpasd in "Am I German or Autistic?"]]></title><description><![CDATA[
<p>Frustratingly, many of the questions have multiple answers that can apply simultaneously! (You may like to guess my result.)</p>
]]></description><pubDate>Thu, 09 Apr 2026 14:37:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=47704351</link><dc:creator>movpasd</dc:creator><comments>https://news.ycombinator.com/item?id=47704351</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47704351</guid></item><item><title><![CDATA[New comment by movpasd in "Slop is not necessarily the future"]]></title><description><![CDATA[
<p>There's a narrative that gets passed around in physics circles about how the Soviets were better at finding creative and analytical solutions than Americans, because of the relative scarcity of computing versus intellectual labour resources.<p>It would make sense to me that a parallel mechanism could apply to Soviet engineering. If material and technologically advanced capital are scarce, but engineers are abundant, you would naturally spend more time doing proper engineering, which means figuring out how to squeeze the most out of what you have available.</p>
]]></description><pubDate>Wed, 01 Apr 2026 11:34:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=47599466</link><dc:creator>movpasd</dc:creator><comments>https://news.ycombinator.com/item?id=47599466</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47599466</guid></item><item><title><![CDATA[New comment by movpasd in "How I write software with LLMs"]]></title><description><![CDATA[
<p>I prompt politely for two reasons: I suspect it makes the model less likely to spiral (but have no hard evidence either way), and I think it's just good to keep up the habit for when I talk to real people.</p>
]]></description><pubDate>Mon, 16 Mar 2026 08:24:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=47396371</link><dc:creator>movpasd</dc:creator><comments>https://news.ycombinator.com/item?id=47396371</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47396371</guid></item><item><title><![CDATA[New comment by movpasd in "Coding after coders: The end of computer programming as we know it?"]]></title><description><![CDATA[
<p>Regarding LLM's performances on brownfield projects, I thought of Naur's "Programming as Theory Building". He explains an example of a compiler project that is taken over by a team without guidance from the original developers:<p>> "at [the] later stage the original powerful structure was still visible, but made entirely ineffective by amorphous additions of many different kinds"<p>Maybe a way of phrasing it is that accumulating a lot of "code quality capital" gives you a lot more leverage over technical debt, but eventually it does catch up.</p>
]]></description><pubDate>Fri, 13 Mar 2026 19:59:54 +0000</pubDate><link>https://news.ycombinator.com/item?id=47369061</link><dc:creator>movpasd</dc:creator><comments>https://news.ycombinator.com/item?id=47369061</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47369061</guid></item><item><title><![CDATA[New comment by movpasd in "Interlock (Engineering)"]]></title><description><![CDATA[
<p>Type systems, database normalisation, reactive programming (i.e.: non-manual state management), or more generally making illegal states unrepresentable are the software equivalents!</p>
]]></description><pubDate>Fri, 13 Feb 2026 12:01:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=47001754</link><dc:creator>movpasd</dc:creator><comments>https://news.ycombinator.com/item?id=47001754</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47001754</guid></item><item><title><![CDATA[New comment by movpasd in "The compiler is your best friend"]]></title><description><![CDATA[
<p>If your required logic separates nicely into steps (like "fetch, compute, store"), then a procedural interface makes sense, because sequential and hierarchical control flow work well with procedural programming.<p>But some requirements, like yours, require control flow to be interwoven between multiple concerns. It's hard to do this cleanly with procedural programming because where you want to draw the module boundaries (e.g.: so as to separate logic and infrastructure concerns) doesn't line up with the sequential or hierarchical flow of the program. In that case you have to bring in some more powerful tools. Usually it means polymorphism. Depending on your language that might be using interfaces, typeclasses, callbacks, or something more exotic. But you pay for these more powerful tools! They are more complex to set up and harder to understand than simple straightforward procedural code.<p>In many cases judicious splitting of a "mixed-concern function" might be enough and that should probably be the first option on the list. But it's a tradeoff. For instance, you then could lose cohesion and invariance properties (a logically singular operation is now in multiple temporally coupled operations), or pay for the extra complexity of all the data types that interface between all the suboperations.<p>To give an example, in "classic" object-oriented Domain-Driven Design approaches, you use the Repository pattern. The Repository serves as the interface or hinge point between your business logic and database logic. Now, like I said in the last paragraph, you could instead design it so the business logic returned its desired side-effects to the co-ordinating layer and have it handle dispatching those to the database functions. But if a single business logic operation naturally intertwines multiple queries or other side-effectful operations then the Repository can sometimes be simpler.</p>
]]></description><pubDate>Wed, 31 Dec 2025 21:29:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=46448555</link><dc:creator>movpasd</dc:creator><comments>https://news.ycombinator.com/item?id=46448555</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46448555</guid></item><item><title><![CDATA[New comment by movpasd in "APT Rust requirement raises questions"]]></title><description><![CDATA[
<p>You might this blog post interesting, which argues that it's Rust semantics and not syntax that results in the noisiness, i.e.: it's intrinsic complexity:<p><a href="https://matklad.github.io/2023/01/26/rusts-ugly-syntax.html" rel="nofollow">https://matklad.github.io/2023/01/26/rusts-ugly-syntax.html</a><p>I found it reasonably convincing. For what it's worth, I found Rust's syntax quite daunting at first (coming from Python as well), but it only took a few months of continuous use to get used to it. I think "Perl-esque" is an overstatement.<p>It has some upsides over Python as well, notably that the lack of significant whitespace means inserting a small change and letting the autoformatter deal with syntax changes is quite easy, whereas in Python I occasionally have to faff with indentation before Black/Ruff will let me autoformat.<p>I appreciate that for teaching, the trade-offs go in the other direction.</p>
]]></description><pubDate>Tue, 25 Nov 2025 15:36:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=46046778</link><dc:creator>movpasd</dc:creator><comments>https://news.ycombinator.com/item?id=46046778</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46046778</guid></item><item><title><![CDATA[New comment by movpasd in "When did people favor composition over inheritance?"]]></title><description><![CDATA[
<p>I think the fundamental issue with implementation-inheritance is the class diagram looks nice, but it hides a ton of method-level complexity if you consider the distinction between calling and subtyping interfaces, complexity that is basically impossible to encapsulate and would be better expressed in terms of other design approaches.<p>With interface-inheritance, each method is providing two interfaces with one single possible usage pattern: to be called by client code, but implemented by a subclass.<p>With implementation-inheritance, suddenly, you have any of the following possibilities for how a given method is meant to be used:<p>(a) called by client code, implemented by subclass (as with interface-inheritance)
(b) called by client code, implemented by superclass (e.g.: template method)
(c) called by subclass, implemented by superclass (e.g.: utility methods)
(d) called by superclass, implemented by subclass (e.g.: template's helper methods)<p>And these cases inevitably bleed into each other. For example, default methods mix (a) and (b), and mixins frequently combine (c) and (b).<p>Because of the added complexity, you have to carefully design the relationship between the superclass, the subclass, and the client code, making sure to correctly identify which methods should have what visibility (if your language even allows for that level of granularity!). You must carefully document which methods are intended for overriding and which are intended for use by whom.<p>But the code structure itself in no way documents that complexity. (If we want to talk SOLID, it flies in the face of the Interface Segregation Principle). All these relationships get implicitly crammed into one class that might be better expressed explicitly. Split out the subclassing interface from the superclass and inject it so it can be delegated to -- that's basically what implementation-inheritance is syntactic sugar for anyway and now the complexity can be seen clearly laid out (and maybe mitigated with refactoring).<p>There is a trade-off in verbosity to be sure, especially at the call site where you might have to explicitly compose objects, but when considering the system complexity as a whole I think it's rarely worth it when composition and a tiny factory function provides the same external benefit without the headache.<p>These are powerful tools, if used with discipline. But especially in application code interfaces change often and are rarely well-documented. It seems inevitable that if the tool is made available, it will eventually be used to get around some design problem that would have required a more in-depth refactor otherwise -- a refactor more costly in the short-term but resulting in more maintainable code.</p>
]]></description><pubDate>Sun, 16 Nov 2025 11:27:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=45944264</link><dc:creator>movpasd</dc:creator><comments>https://news.ycombinator.com/item?id=45944264</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45944264</guid></item><item><title><![CDATA[New comment by movpasd in "Hypothesis: Property-Based Testing for Python"]]></title><description><![CDATA[
<p>You can either use the @example decorator to force Hypothesis to check an edge case you've thought of, or just let Hypothesis uncover the edge cases itself. Hypothesis won't fail a test once and then pass it next time, it keeps track of which examples failed and will re-run them. The generated inputs aren't uniformly randomly distributed and will tend to check pathological cases (complex symbols, NaNs, etc) with priority.<p>You shouldn't think of Hypothesis as a random input generator but as an abstraction over thinking about the input cases. It's not perfect: you'll often need to .map() to get the distribution to reflect the usage of the interface being tested and that requires some knowledge of the shrinking behaviour. However, I was really surprised how easy it was to use.</p>
]]></description><pubDate>Wed, 05 Nov 2025 11:44:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=45821816</link><dc:creator>movpasd</dc:creator><comments>https://news.ycombinator.com/item?id=45821816</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45821816</guid></item><item><title><![CDATA[New comment by movpasd in "Minecraft removing obfuscation in Java Edition"]]></title><description><![CDATA[
<p>I suspect Minecraft was large enough to support an effective modding community from the start regardless of official support, so that there was always some kind of third-party unofficial mechanism (ModLoader, then Forge, then now Fabric and Quilt). Mojang probably punted it down the priority list because of that, or didn't want to impose a structure and kill those ecosystems. Technically speaking, Java is reasonably easy to plug stuff into at runtime, so that was never a barrier.<p>The original issue with official modding support, from my perspective, has always been a legal one. But the Mojang EULA explicitly allows modding now. So I would see this decision as one in a long line of decisions by Mojang to both normalise the legal relationship with modders, and beyond that giving a "thumbs up" to the community.</p>
]]></description><pubDate>Thu, 30 Oct 2025 09:48:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=45758100</link><dc:creator>movpasd</dc:creator><comments>https://news.ycombinator.com/item?id=45758100</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45758100</guid></item><item><title><![CDATA[New comment by movpasd in "Uv is the best thing to happen to the Python ecosystem in a decade"]]></title><description><![CDATA[
<p>You may be interested in Mojo, it's a project by Chris Lattner. It aims to have Python-like syntax and smooth integration with Python but allow Rust-like low-level control (I believe it has a borrow checker). Unfortunately, I believe it's proprietary.</p>
]]></description><pubDate>Thu, 30 Oct 2025 09:21:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=45757935</link><dc:creator>movpasd</dc:creator><comments>https://news.ycombinator.com/item?id=45757935</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45757935</guid></item><item><title><![CDATA[New comment by movpasd in "Show HN: JSON Query"]]></title><description><![CDATA[
<p>I think this is a paradigm known as concatenative programming: <a href="https://en.wikipedia.org/wiki/Concatenative_programming_language" rel="nofollow">https://en.wikipedia.org/wiki/Concatenative_programming_lang...</a></p>
]]></description><pubDate>Tue, 28 Oct 2025 09:49:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=45730894</link><dc:creator>movpasd</dc:creator><comments>https://news.ycombinator.com/item?id=45730894</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45730894</guid></item><item><title><![CDATA[New comment by movpasd in "Study finds growing social circles may fuel polarization"]]></title><description><![CDATA[
<p>It may be a combination of both: the fact it is easier to stay in touch makes it more difficult to let go of friendships. But this may make those friendships feel less meaningful and therefore increase loneliness.</p>
]]></description><pubDate>Tue, 28 Oct 2025 09:45:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=45730870</link><dc:creator>movpasd</dc:creator><comments>https://news.ycombinator.com/item?id=45730870</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45730870</guid></item><item><title><![CDATA[New comment by movpasd in "AWS multiple services outage in us-east-1"]]></title><description><![CDATA[
<p>I used Claude to get the outage start and ends from the post-event summaries for major historical AWS outages: <a href="https://aws.amazon.com/premiumsupport/technology/pes/" rel="nofollow">https://aws.amazon.com/premiumsupport/technology/pes/</a><p>The cumulative distribution actually ends up pretty exponential which (I think) means that if you estimate the amount of time left in the outage as the mean of all outages that are longer than the current outage, you end up with a flat value that's around 8 hours, if I've done my maths right.<p>Not a statistician so I'm sure I've committed some statistical crimes there!<p>Unfortunately I can't find an easy way to upload images of the charts I've made right now, but you can tinker with my data:<p><pre><code>    cause,outage_start,outage_duration,incident_duration
    Cell management system bug,2024-07-30T21:45:00.000000+0000,0.2861111111111111,1.4951388888888888
    Latent software defect,2023-06-13T18:49:00.000000+0000,0.08055555555555555,0.15833333333333333
    Automated scaling activity,2021-12-07T15:30:00.000000+0000,0.2861111111111111,0.3736111111111111
    Network device operating system bug,2021-09-01T22:30:00.000000+0000,0.2583333333333333,0.2583333333333333
    Thread count exceeded limit,2020-11-25T13:15:00.000000+0000,0.7138888888888889,0.7194444444444444
    Datacenter cooling system failure,2019-08-23T03:36:00.000000+0000,0.24583333333333332,0.24583333333333332
    Configuration error removed setting,2018-11-21T23:19:00.000000+0000,0.058333333333333334,0.058333333333333334
    Command input error,2017-02-28T17:37:00.000000+0000,0.17847222222222223,0.17847222222222223
    Utility power failure,2016-06-05T05:25:00.000000+0000,0.3993055555555555,0.3993055555555555
    Network disruption triggering bug,2015-09-20T09:19:00.000000+0000,0.20208333333333334,0.20208333333333334
    Transformer failure,2014-08-07T17:41:00.000000+0000,0.13055555555555556,3.4055555555555554
    Power loss to servers,2014-06-14T04:16:00.000000+0000,0.08333333333333333,0.17638888888888887
    Utility power loss,2013-12-18T06:05:00.000000+0000,0.07013888888888889,0.11388888888888889
    Maintenance process error,2012-12-24T20:24:00.000000+0000,0.8270833333333333,0.9868055555555555
    Memory leak in agent,2012-10-22T17:00:00.000000+0000,0.26041666666666663,0.4930555555555555
    Electrical storm causing failures,2012-06-30T02:24:00.000000+0000,0.20902777777777776,0.25416666666666665
    Network configuration change error,2011-04-21T07:47:00.000000+0000,1.4881944444444444,3.592361111111111</code></pre></p>
]]></description><pubDate>Mon, 20 Oct 2025 15:22:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=45644976</link><dc:creator>movpasd</dc:creator><comments>https://news.ycombinator.com/item?id=45644976</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45644976</guid></item><item><title><![CDATA[New comment by movpasd in "AWS multiple services outage in us-east-1"]]></title><description><![CDATA[
<p>Seems like an example of "worse is better". The worse solution has better survival characteristics (on account of getting actually made).</p>
]]></description><pubDate>Mon, 20 Oct 2025 10:27:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=45642284</link><dc:creator>movpasd</dc:creator><comments>https://news.ycombinator.com/item?id=45642284</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45642284</guid></item><item><title><![CDATA[New comment by movpasd in "The Unknotting Number Is Not Additive"]]></title><description><![CDATA[
<p>I believe this is called epistemic pragmatism in philosophy: <a href="https://en.wikipedia.org/wiki/Pragmatism" rel="nofollow">https://en.wikipedia.org/wiki/Pragmatism</a></p>
]]></description><pubDate>Thu, 09 Oct 2025 09:16:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=45525313</link><dc:creator>movpasd</dc:creator><comments>https://news.ycombinator.com/item?id=45525313</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45525313</guid></item><item><title><![CDATA[New comment by movpasd in "The Quiet Driving Force Behind Rising Curtailment Costs in Great Britain"]]></title><description><![CDATA[
<p>This is covered in the article. The uncertainties brought about by zonal pricing are not really worth it, given that the main obstacle is the need for network reinforcement. The UK is just not that big! Introducing a complicated market reform which will be obsoleted within a few decades doesn't make sense.</p>
]]></description><pubDate>Tue, 07 Oct 2025 12:59:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=45502537</link><dc:creator>movpasd</dc:creator><comments>https://news.ycombinator.com/item?id=45502537</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45502537</guid></item><item><title><![CDATA[New comment by movpasd in "Show HN: Autism Simulator"]]></title><description><![CDATA[
<p>Everyone's different. Some people genuinely thrive under the conditions you're describing, others don't like it but are able to put up with it no problem, and others can't stand it but are forced to.<p>The perspective I've found most useful is this. There is a constellation of correlated "autistic traits", which everyone has to a degree, but which like most traits become disabling if turned up too much. "Autism" is a term describing that state. So, it is much less a particular switch that can be turned on or off, not even a slider between "not autistic" and "very autistic", but more a blurry region at the outskirts of the multidimensional bell curve of the human experience.<p>People on the furthermost reaches of this space are seriously, unambiguously disabled, by any definition. They're what people traditionally imagine as "autistic". But the movement in psychiatry has been to loosen diagnostic criteria to better capture the grey areas. Whether this is a good or a bad thing is a social question, not a scientific one, in my opinion. Most of us want to live in a society that supports disabled people, but how many resources to allocate to that is a difficult question where our human instincts seem to clash with the reality of living in a modern society.<p>On your last paragraph: I think this is a serious problem with the discourse around neuroatypicality today. My opinion is that the important thing is that we become more accepting and aware of the diversity of the human experience, and that this is a necessary social force to balance the constant regression to the mean imposed by modernity. If that's the case, then drawing a border around any category of person, staking a territorial claim to a pattern of difficulty the group experiences, and refusing to accept that the pattern exists beyond it: it's just unfair, it's giving into defensiveness.</p>
]]></description><pubDate>Thu, 02 Oct 2025 08:17:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=45447350</link><dc:creator>movpasd</dc:creator><comments>https://news.ycombinator.com/item?id=45447350</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45447350</guid></item><item><title><![CDATA[New comment by movpasd in "Show HN: Autism Simulator"]]></title><description><![CDATA[
<p>For myself, I have low energy if I don't eat breakfast, but there is essentially no hunger signal for me in the morning. Over time I've settled on eating the plainest breakfast I can.<p>I think this has a lot to do with the 9–5 and my natural sleep cycle being delayed compared to that.</p>
]]></description><pubDate>Thu, 02 Oct 2025 07:47:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=45447214</link><dc:creator>movpasd</dc:creator><comments>https://news.ycombinator.com/item?id=45447214</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45447214</guid></item><item><title><![CDATA[New comment by movpasd in "Page Object (2013)"]]></title><description><![CDATA[
<p>I think this comes back to the idea of having a "UX model" that underlies the user interface, laying out its affordances clearly in code. In a modern application you're going to have complex UX logic and state that's distinct from the domain model as such and that deserves representation in the code.<p>In an MVC conception, the UX model becomes a top layer of abstraction of the domain model. It's a natural place to be because for modern apps, users expect "more than forms", i.e.: different ways of cutting up the domain data, presented in different ways, ...<p>This is something that component-based frontend frameworks struggle with a bit: the hierarchical layout of the DOM doesn't always reflect the interrelations in data between parts of a user experience. Prop drilling is just a reflection of this fact and perhaps it's why we're seeing a rise in the use of state stores. It's not really about state, that's just the technical symptom, it's really about providing a way of defining a (in-browser) data model based on the user experience itself rather than the particularities of the UI substrate.</p>
]]></description><pubDate>Mon, 15 Sep 2025 09:25:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=45247746</link><dc:creator>movpasd</dc:creator><comments>https://news.ycombinator.com/item?id=45247746</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45247746</guid></item></channel></rss>