<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: mmarx</title><link>https://news.ycombinator.com/user?id=mmarx</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Wed, 22 Jul 2026 05:05:21 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=mmarx" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by mmarx in "Claude Is Not a Compiler"]]></title><description><![CDATA[
<p>> I don't understand why you people act like you're stumped by literally, literally page 1 of computer science.<p>… and yet you didn't stop for a moment to consider that in a field as fast-moving as computer science, a concept which might not have had a formal definition in 1967 acquired one in the past 59 years? See, for example, Sipser's Introduction to the Theory of Computation, which has an entire section (3.3 in my 1997 print) titled “The Definiton of Algorithm”.</p>
]]></description><pubDate>Tue, 21 Jul 2026 16:39:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=48994713</link><dc:creator>mmarx</dc:creator><comments>https://news.ycombinator.com/item?id=48994713</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48994713</guid></item><item><title><![CDATA[New comment by mmarx in "Not all elementary functions can be expressed with exp-minus-log"]]></title><description><![CDATA[
<p>It's already past midnight in New Zealand, e.g.</p>
]]></description><pubDate>Wed, 15 Apr 2026 13:26:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=47778664</link><dc:creator>mmarx</dc:creator><comments>https://news.ycombinator.com/item?id=47778664</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47778664</guid></item><item><title><![CDATA[New comment by mmarx in "Apt-bundle: brew bundle for apt"]]></title><description><![CDATA[
<p>In multi-user mode, Nix uses dedicated build users to write to the store. There is also single-user mode, but that also doesn't require a world-writable store.</p>
]]></description><pubDate>Thu, 29 Jan 2026 18:22:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=46814207</link><dc:creator>mmarx</dc:creator><comments>https://news.ycombinator.com/item?id=46814207</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46814207</guid></item><item><title><![CDATA[New comment by mmarx in "Decompiling the GPL violated Linux kernel using Evolutionary Algorithms"]]></title><description><![CDATA[
<p>> Theoretically, we could also go for finding the semantically equivalent C code. However, last time I researched, checking semantic equivalency is a very complex problem. I think it was NP hard.<p>Already deciding whether two finite automata decide the same (regular) language is PSPACE-complete; it's undecidable for anything that can decide arbitrary context-free languages (which C programs can clearly do).</p>
]]></description><pubDate>Fri, 12 Sep 2025 09:40:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=45220425</link><dc:creator>mmarx</dc:creator><comments>https://news.ycombinator.com/item?id=45220425</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45220425</guid></item><item><title><![CDATA[New comment by mmarx in "A Working Turing Machine Hits Lego Ideas"]]></title><description><![CDATA[
<p>This machine has 8 states, so (for actual Turing Machines with an unbounded tape) you'd be looking at BB(8). However, since the tape can only store 24 symbols, the machine only has 8 (states) * 4 (tape symbols) * 24 (tape length) = 768 different configurations. Thus, any program will either terminate in at most 768 steps, or loop indefinitely.</p>
]]></description><pubDate>Wed, 09 Oct 2024 11:26:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=41786664</link><dc:creator>mmarx</dc:creator><comments>https://news.ycombinator.com/item?id=41786664</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41786664</guid></item><item><title><![CDATA[New comment by mmarx in "A Working Turing Machine Hits Lego Ideas"]]></title><description><![CDATA[
<p>Since the model tape isn't actually infinite, this machine has a finite state space, and termination is therefore decidable. No Turing Award to obtain here …</p>
]]></description><pubDate>Tue, 08 Oct 2024 18:53:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=41780527</link><dc:creator>mmarx</dc:creator><comments>https://news.ycombinator.com/item?id=41780527</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41780527</guid></item><item><title><![CDATA[New comment by mmarx in "Aux.computer: An Alternative to the Nix Ecosystem"]]></title><description><![CDATA[
<p><a href="https://github.com/KFearsoff/nix-drama-explained">https://github.com/KFearsoff/nix-drama-explained</a> has a good summary of what the contention is about.</p>
]]></description><pubDate>Mon, 29 Apr 2024 17:29:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=40201358</link><dc:creator>mmarx</dc:creator><comments>https://news.ycombinator.com/item?id=40201358</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40201358</guid></item><item><title><![CDATA[Aux.computer: An Alternative to the Nix Ecosystem]]></title><description><![CDATA[
<p>Article URL: <a href="https://aux.computer/">https://aux.computer/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=40200343">https://news.ycombinator.com/item?id=40200343</a></p>
<p>Points: 34</p>
<p># Comments: 35</p>
]]></description><pubDate>Mon, 29 Apr 2024 16:19:20 +0000</pubDate><link>https://aux.computer/</link><dc:creator>mmarx</dc:creator><comments>https://news.ycombinator.com/item?id=40200343</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40200343</guid></item><item><title><![CDATA[New comment by mmarx in "Ibis, a federated Wikipedia alternative"]]></title><description><![CDATA[
<p>Yes, technically you'll also get a MediaWiki instance there, but the point is really to offer Wikibase (which is a set of extensions upon MediaWiki), the software behind Wikidata.</p>
]]></description><pubDate>Thu, 14 Mar 2024 11:22:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=39702477</link><dc:creator>mmarx</dc:creator><comments>https://news.ycombinator.com/item?id=39702477</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39702477</guid></item><item><title><![CDATA[New comment by mmarx in "Earth just experienced its hottest 12 months in recorded history"]]></title><description><![CDATA[
<p>> Before the phaseout started, nuclear contributed more than 20% to electricity generation.<p>That's true, but also quite meaningless. Before the nuclear phaseout started, renewables contributed less than 7% to electricity generation, now it's over 56%, so it more than compensates for the missing nuclear generations. Furthermore, replacing coal with nuclear is not easily done, since most coal plants also generate heat, whereas none of the nuclear plants did.<p>> Earth just experienced its hottest 12 months in recorded history and it was really incredibly poor decision making to start shutting down nuclear power plants while still burning coal.<p>None of the remaining reactors had usable fuel left, even just acquiring new fuel would already take 12 or more months (besides, all of the remaining reactors were already several years overdue on safety inspections). The decision to phase out nuclear power has been made well in advance of those 12 months: originally in 2002, partially pushed back in 2010, then finalised in 2011, and again pushed back (by 3.5 months) in 2022. The poor decision making is not phasing out nuclear power, the poor decision making is <i>not also phasing out coal and pushing renewables from at least 2011 onwards</i>.</p>
]]></description><pubDate>Sun, 25 Feb 2024 19:07:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=39503712</link><dc:creator>mmarx</dc:creator><comments>https://news.ycombinator.com/item?id=39503712</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39503712</guid></item><item><title><![CDATA[New comment by mmarx in "Earth just experienced its hottest 12 months in recorded history"]]></title><description><![CDATA[
<p>> Another example of poor decision making is Germany which decided to start shutting down nuclear power plants while they were still burning coal. So last year hard coal and lignite still produced 35.3 percent in German power production (compared to 35.2% from renewables. (<a href="https://www.cleanenergywire.org/factsheets/coal-germany" rel="nofollow">https://www.cleanenergywire.org/factsheets/coal-germany</a>). Before the phase out of nuclear, it generated about 25% of the electricity. It is all really hard to believe...<p>That article is from January 2023, so the numbers in there are 2022, not last year, and even then it says that nuclear produced only 11.7%. In any case, comparing to the official numbers[0], those seem to be closer to the 2021 numbers than the actual 2022 numbers: 31.3% coal, 6% nuclear, and 44% renewable. For 2023, coal was down to 26.22%, nuclear (which was only phased out in April) was down to 1.5%, and renewables were at 56%. Nuclear has not contributed more than 20% to electricity generation since 2011[2].<p>[0] <a href="https://www.destatis.de/EN/Themes/Economic-Sectors-Enterprises/Energy/Production/Tables/gross-electricity-production.html" rel="nofollow">https://www.destatis.de/EN/Themes/Economic-Sectors-Enterpris...</a>
[1] <a href="https://www.smard.de/page/home/topic-article/444/211756" rel="nofollow">https://www.smard.de/page/home/topic-article/444/211756</a>
[2] <a href="https://ag-energiebilanzen.de/wp-content/uploads/2023/10/STRERZ_Abgabe-12-2023.pdf" rel="nofollow">https://ag-energiebilanzen.de/wp-content/uploads/2023/10/STR...</a></p>
]]></description><pubDate>Sun, 25 Feb 2024 09:32:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=39499232</link><dc:creator>mmarx</dc:creator><comments>https://news.ycombinator.com/item?id=39499232</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39499232</guid></item><item><title><![CDATA[New comment by mmarx in "I hacked a train toilet"]]></title><description><![CDATA[
<p>from the linked YouTube video:<p>> This is the second time I've successfully tested this on a Class 800. For some reason this time I seem to have actually confused the toilet door controller enough that it decided "screw this" and went into out of order mode, which didn't happen the previous time.<p>So, yes, the author _did_, in fact, disable the door.</p>
]]></description><pubDate>Sun, 28 Jan 2024 13:53:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=39165739</link><dc:creator>mmarx</dc:creator><comments>https://news.ycombinator.com/item?id=39165739</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39165739</guid></item><item><title><![CDATA[New comment by mmarx in "Subtraction is functionally complete"]]></title><description><![CDATA[
<p>Ah, thanks, that was indeed what I was missing.</p>
]]></description><pubDate>Sat, 07 Oct 2023 09:51:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=37800398</link><dc:creator>mmarx</dc:creator><comments>https://news.ycombinator.com/item?id=37800398</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37800398</guid></item><item><title><![CDATA[New comment by mmarx in "Subtraction is functionally complete"]]></title><description><![CDATA[
<p>From the truth table, subtraction is clearly truth-preserving, so it cannot actually be functionally complete. What am I missing?</p>
]]></description><pubDate>Sat, 07 Oct 2023 09:18:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=37800260</link><dc:creator>mmarx</dc:creator><comments>https://news.ycombinator.com/item?id=37800260</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37800260</guid></item><item><title><![CDATA[New comment by mmarx in "SudoLang: a programming language designed to collaborate with AI language models"]]></title><description><![CDATA[
<p>Even though halting is generally undecidable, there are still large classes of programs for which you _can_ show termination. If you reject every program for which you cannot show termination, you will also reject some programs that terminate, but you never need to worry about halting again. Indeed, languages such as Idris do exactly that. [0]<p>[0] <a href="https://en.wikipedia.org/wiki/Total_functional_programming" rel="nofollow noreferrer">https://en.wikipedia.org/wiki/Total_functional_programming</a></p>
]]></description><pubDate>Fri, 06 Oct 2023 19:02:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=37794813</link><dc:creator>mmarx</dc:creator><comments>https://news.ycombinator.com/item?id=37794813</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37794813</guid></item><item><title><![CDATA[New comment by mmarx in "What is wrong with TOML? (2019)"]]></title><description><![CDATA[
<p>Mixing tabs and spaces is a TabError in Python 3, so this would definitely error today.</p>
]]></description><pubDate>Wed, 13 Sep 2023 16:11:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=37498628</link><dc:creator>mmarx</dc:creator><comments>https://news.ycombinator.com/item?id=37498628</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37498628</guid></item><item><title><![CDATA[New comment by mmarx in "A regular expression to check for prime numbers (2007)"]]></title><description><![CDATA[
<p>> It would be absurd to compare unary and binary addition relative to the same numeral length.<p>Why? The Turing machine has no concept of numeric values, it only knows about the length of whatever the input is.<p>> Adding one million to one million is simply much faster for binary addition than for unary addition, even if unary addition has better complexity relative to its own encoding than binary addition has to its encoding.<p>From a complexity standpoint, adding one million to one million is O(1), irregardless of the encoding.<p>> We are interested in complexity relative to the numerical value, not in the length of their respective encodings.<p>But the complexity relative to the numerical value is not even well-defined, since it _depends_ on the choice of the encoding.<p>> By the way, as the Wikipedia piece notices, the binary addition algorithm is O(log(n)) in time _relative to the value_, while unary addition is presumably O(n) relative to the value (just writing the numeral out alone takes O(n) steps). So the time complexity is in fact better.<p>It really is not better. Time complexity is _always_ measured relative to the length of the input, and for binary encoding, the length of the input is O(log(n)), so, taking O(log(n)) steps for the addition is linear, same as the linear time needed for adding numbers in unary encoding (which is basically just copying the input to the output).<p>> Moreover, only in this case makes a comparison even sense, since we are comparing the same values in both cases, while for the numeral case we would be comparing the lengths of two different types of numerals, apples to oranges.<p>But _the numeral is not the input_, its _encoding_ is. This is really the whole point, and it is _precisely_ because you get different complexities for different encodings.</p>
]]></description><pubDate>Wed, 21 Jun 2023 22:15:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=36425441</link><dc:creator>mmarx</dc:creator><comments>https://news.ycombinator.com/item?id=36425441</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=36425441</guid></item><item><title><![CDATA[New comment by mmarx in "A regular expression to check for prime numbers (2007)"]]></title><description><![CDATA[
<p>> That's comparing apples to oranges, because the two input types have vastly different lengths relative to their value.<p>It really is not, because complexity is fundamentally a function of _the length of the input_ (specifically: it measures how the runtime (or space usage) grows with growing input). If you have longer input, your Turing machine can spend more time to compute its answer. Also note that this assumes that _the input_ is encoded in unary, if you get binary input and need to spend time and space to convert it to unary representation, sure, that will lead to an exponential blow-up.<p>Edit:
> Just think about the rough number of steps you would need to add or even multiply two very large numbers, e.g. in a Turing machine. It would be obviously vastly more if the numbers are given in unary rather than in binary.<p>First, note that those are not actually pseudo-polynomial, as the number of steps needed for addition (or multiplication) depend on the number of digits, not the numeric values involved. Yet, even here unary encoding _does not have worse complexity_, since you still take polynomially many steps in the length of the input (i.e., the length of the unary encodings of the input values). Yes, all the inputs will be exponentially larger, so in practice it's certainly not the better algorithm, but _the complexity_ is not worse, since that's only concerned with the asymptotic behaviour.</p>
]]></description><pubDate>Wed, 21 Jun 2023 17:40:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=36421777</link><dc:creator>mmarx</dc:creator><comments>https://news.ycombinator.com/item?id=36421777</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=36421777</guid></item><item><title><![CDATA[New comment by mmarx in "A regular expression to check for prime numbers (2007)"]]></title><description><![CDATA[
<p>Actually, an algorithm working on unary input tends to have <i>better</i> computational complexity than an algorithm working on binary input: an algorithm that is polynomial in the numeric value will be a polynomial algorithm on unary input, but an exponential algorithm on binary input. Such algorithms are usually called pseudo-polynomial[0]; indeed, this kind of primality testing is pseudo-polynomial.<p>[0] <a href="https://en.wikipedia.org/wiki/Pseudo-polynomial_time" rel="nofollow noreferrer">https://en.wikipedia.org/wiki/Pseudo-polynomial_time</a></p>
]]></description><pubDate>Wed, 21 Jun 2023 12:00:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=36417348</link><dc:creator>mmarx</dc:creator><comments>https://news.ycombinator.com/item?id=36417348</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=36417348</guid></item><item><title><![CDATA[New comment by mmarx in "My First Impressions of Nix"]]></title><description><![CDATA[
<p>Ah, fair enough, though it feels a bit like stretching the definition.</p>
]]></description><pubDate>Mon, 19 Jun 2023 13:10:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=36390665</link><dc:creator>mmarx</dc:creator><comments>https://news.ycombinator.com/item?id=36390665</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=36390665</guid></item></channel></rss>