<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: a1369209993</title><link>https://news.ycombinator.com/user?id=a1369209993</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Fri, 05 Jun 2026 03:08:03 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=a1369209993" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by a1369209993 in "Adding row polymorphism to Damas-Hindley-Milner"]]></title><description><![CDATA[
<p>> you cannot pass it a list of records where all contain the x field of int but some also contain an irrelevant y field and others contain an irrelevant z field.<p>Yes you can - that's just a existential type. I'm not sure what the syntax <i>would</i> be, but it <i>could</i> be somthing like:<p><pre><code>  List (exists a : {x=int, ...'a})
</code></pre>
(In practice (ie if your language doesn't support existential types) you might need to jump through hoops like:<p><pre><code>  List ((forall a : {x=int, ...'a} -> b) -> b)
</code></pre>
or whatever the language-appropriate equivalent is, but in that case your list will have been created with the same hoops, so it's a minor annoyance rather than a serious problem.)</p>
]]></description><pubDate>Wed, 23 Oct 2024 21:57:54 +0000</pubDate><link>https://news.ycombinator.com/item?id=41929622</link><dc:creator>a1369209993</dc:creator><comments>https://news.ycombinator.com/item?id=41929622</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41929622</guid></item><item><title><![CDATA[New comment by a1369209993 in "Intelsat 33e breaks up in geostationary orbit"]]></title><description><![CDATA[
<p><p><pre><code>  $ units
  You have: 25m2 / 2tau(700km)^2
  You want: /billion
    * 0.0040600751
    / 246.30086</code></pre></p>
]]></description><pubDate>Mon, 21 Oct 2024 16:20:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=41905714</link><dc:creator>a1369209993</dc:creator><comments>https://news.ycombinator.com/item?id=41905714</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41905714</guid></item><item><title><![CDATA[New comment by a1369209993 in "Lessons from Plain Text"]]></title><description><![CDATA[
<p>> such that at least every sentence is on its own line<p>Yes, with the obvious possible exception of trivial/degenerate cases like "i++; j--;" in C or "This is a cat. That is a dog." in English.<p>> and every line break represents a semantic clause or sentence gap.<p>Specifically, it represents a <i>maximally coarse</i> semantic gap, drilling as shallowly down into subclauses as possible/practical.<p>> wrap/line break [can happen at ...] also a semantically valid intra-word line break.<p>Preferably only if that word would already be alone on its overly-long line. Eg:<p><pre><code>  # bad, breaks subordinate clause before superordinate
  That sounds supercalifragilistic-
    expialidocious.
  
  # semantically valid, but ugly (a pathological case)
  That sounds
    supercalifragilisticexpialidocious.
  
  # vertically larger, but probably fine
  # (unless you're feeling incunabulum-y[0])
  That sounds
    supercalifragilistic-
    expialidocious.
</code></pre>
> you end up running into the same difficulties that you do with conventional hard wrapping, at least in pathological cases.<p>I've yet to see any evidence that really pathological cases exist. (As opposed to "I'm lazy and can't be arsed" cases, which I'm fairly explicitly not disputing.)<p>0: <a href="http://code.jsoftware.com/wiki/Essays/Incunabulum" rel="nofollow">http://code.jsoftware.com/wiki/Essays/Incunabulum</a></p>
]]></description><pubDate>Mon, 14 Oct 2024 21:31:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=41842251</link><dc:creator>a1369209993</dc:creator><comments>https://news.ycombinator.com/item?id=41842251</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41842251</guid></item><item><title><![CDATA[New comment by a1369209993 in "C++ String Conversion: Exploring std:from_chars in C++17 to C++26"]]></title><description><![CDATA[
<p>Yes, exactly. Which means that, while the speed gains <i>are</i> real, they only apply in cases where your libc is dangerously defective.</p>
]]></description><pubDate>Mon, 14 Oct 2024 17:36:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=41839795</link><dc:creator>a1369209993</dc:creator><comments>https://news.ycombinator.com/item?id=41839795</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41839795</guid></item><item><title><![CDATA[New comment by a1369209993 in "Lessons from Plain Text"]]></title><description><![CDATA[
<p>> given not-pathologically-short line length limits like 20 characters<p>Poor phrasing; 20 characters was meant as a example of a limit that <i>is</i> pathologically short.</p>
]]></description><pubDate>Mon, 14 Oct 2024 17:34:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=41839769</link><dc:creator>a1369209993</dc:creator><comments>https://news.ycombinator.com/item?id=41839769</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41839769</guid></item><item><title><![CDATA[New comment by a1369209993 in "Lessons from Plain Text"]]></title><description><![CDATA[
<p>> Instead, I would prefer a soft semantic wrap<p>So would I, but...<p>> if a single semantic unit (be that a word, a clause, or whatever else) extends beyond, say, 80 characters, we keep it on the same line and let the editor/file viewer handle wrapping.<p>...the editor can't do that because <i>it doesn't understand the semantics</i>.<p>> that wrapping based on semantics is an orthogonal concept to hard and soft wrapping<p>Yes, that's why I've been saying "hard and/or soft [but in either case nonsemantic] wrapping".<p>> > > With semantic wrapping you put each sentence (or similar) on a new line [...] But if that sentence runs over e.g. 80 characters, [then...]<p>... You <i>don't</i> need to fall back on non-semantic wrapping, you can just just keep breaking it up into smaller and smaller semantically-meaningful pieces.<p>(You have to do that 'hard'-ly because the editor doesn't understand the semantics, but that's not "decid[ing] whether you're going to hard wrap or soft wrap", it's being forced to hard wrap as a implementation detail because that's what results in correct wrapping.)<p>It might not be worth the effort to do that, but you're never <i>forced</i> not to (given not-pathologically-short line length limits like 20 characters).</p>
]]></description><pubDate>Mon, 14 Oct 2024 09:11:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=41835694</link><dc:creator>a1369209993</dc:creator><comments>https://news.ycombinator.com/item?id=41835694</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41835694</guid></item><item><title><![CDATA[New comment by a1369209993 in "Lessons from Plain Text"]]></title><description><![CDATA[
<p>> How should it be wrapped semantically?<p>I have no idea what the semantics of that word are, which is information that is required in order to properly semantically wrap it. (Inherently, since conveying such semantics is one of the major pointer of semantic wrapping.)<p>However, you included embedded control characters (C2 AD aka 'SOFT HYPHEN'; below replaced with '-') that encode less semantic information than is necessary for <i>proper</i> semantic wrapping, but not none:<p>Lopado-temacho-selacho-galeo-kranio-leipsano-drim-hypo-trimmato-silphio-karabo-melito-katakechy-meno-kichl-epi-kossypho-phatto-perister-alektryon-opte-kephallio-kigklo-peleio-lagoio-siraio-baphe-tragano-pterygon.<p>Web browsers use that information to do poor-quality semantic wrapping automatically - <i>actual</i> hard or soft[0] wrapping would produce something like:<p><pre><code>  Lopadotemachoselachogaleokranioleipsanod-
  rimhypotrimmatosilphiokarabomelitokatake-
  chymenokichlepikossyphophattoperisterale-
  ktryonoptekephalliokigklopeleiolagoiosir-
  aiobaphetraganopterygon.
</code></pre>
Which looks like the following from a partly-semanically-aware perspective:<p>Lopado-temacho-selacho-galeo-kranio-leipsano-d[BREAK]rim-hypo-trimmato-silphio-karabo-melito-katake[BREAK]chy-meno-kichl-epi-kossypho-phatto-perister-ale[BREAK]ktryon-opte-kephallio-kigklo-peleio-lagoio-sir[BREAK]aio-baphe-tragano-pterygon.<p>The fact that you included soft hyphens rather concedes the point that hard and soft[0] wrapping is incorrect[1].<p>0: Or rather, <i>non-semantic</i>, which is what we're actually arguing over. Technically, semantic wrapping is a subset of hard wrapping, but it's a <i>specific</i> subset that isn't what is expressed by just saying "hard wrapping". Kind of like how birds aren't what anyone means when they just say "dinosaurs".<p>1: Granted, to be fair, a lot of the time we just don't <i>care</i>. But (contra your original comment) we never <i>need</i> to resort to non-semantic wrapping; we just sometimes (often) decide to be lazy because it doesn't matter.</p>
]]></description><pubDate>Sun, 13 Oct 2024 21:28:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=41831778</link><dc:creator>a1369209993</dc:creator><comments>https://news.ycombinator.com/item?id=41831778</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41831778</guid></item><item><title><![CDATA[New comment by a1369209993 in "Lessons from Plain Text"]]></title><description><![CDATA[
<p><p><pre><code>  > But if that sentence runs over e.g. 80 characters,
  >  you still need to decide
  >  whether you're going to hard wrap or soft wrap that sentence.
</code></pre>
No I don't. Semantic wrapping all the way.</p>
]]></description><pubDate>Sun, 13 Oct 2024 19:35:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=41830855</link><dc:creator>a1369209993</dc:creator><comments>https://news.ycombinator.com/item?id=41830855</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41830855</guid></item><item><title><![CDATA[New comment by a1369209993 in "Computer scientists combine two 'beautiful' proof methods"]]></title><description><![CDATA[
<p>> vitalik didn't credit him in his article<p>You mean this article?<p><a href="https://vitalik.eth.limo/general/2021/06/18/verkle.html" rel="nofollow">https://vitalik.eth.limo/general/2021/06/18/verkle.html</a><p>> Verkle trees are still a new idea; they were first introduced by John Kuszmaul in this paper from 2018[link to [0]],<p>0: <a href="https://math.mit.edu/research/highschool/primes/materials/2018/Kuszmaul.pdf" rel="nofollow">https://math.mit.edu/research/highschool/primes/materials/20...</a></p>
]]></description><pubDate>Fri, 04 Oct 2024 23:08:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=41746354</link><dc:creator>a1369209993</dc:creator><comments>https://news.ycombinator.com/item?id=41746354</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41746354</guid></item><item><title><![CDATA[New comment by a1369209993 in "NumPy QuadDType: Quadruple Precision for Everyone"]]></title><description><![CDATA[
<p>Of course, you also need to use solid gold audio cables, or you're just throwing away the extra precision via poor signal fidelity.</p>
]]></description><pubDate>Fri, 04 Oct 2024 19:22:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=41744741</link><dc:creator>a1369209993</dc:creator><comments>https://news.ycombinator.com/item?id=41744741</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41744741</guid></item><item><title><![CDATA[New comment by a1369209993 in "The Mathematics of Dobble (2018)"]]></title><description><![CDATA[
<p>See also: <a href="https://blog.plover.com/math/finite-projective-planes.html" rel="nofollow">https://blog.plover.com/math/finite-projective-planes.html</a>.</p>
]]></description><pubDate>Thu, 26 Sep 2024 17:02:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=41660719</link><dc:creator>a1369209993</dc:creator><comments>https://news.ycombinator.com/item?id=41660719</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41660719</guid></item><item><title><![CDATA[New comment by a1369209993 in "There is no antimimetics division V2"]]></title><description><![CDATA[
<p>> There is no antimimetics division V2<p>"antim<i>e</i>metics".<p>Antimimetics is also a thing, and might be interesting to read about, but it's not the <i>same</i> thing.</p>
]]></description><pubDate>Thu, 19 Sep 2024 19:40:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=41595561</link><dc:creator>a1369209993</dc:creator><comments>https://news.ycombinator.com/item?id=41595561</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41595561</guid></item><item><title><![CDATA[New comment by a1369209993 in "There Is No Antimemetics Division (2018)"]]></title><description><![CDATA[
<p>I hope to write code that warrants a description at least twice as scathing as this one. But, you know, on purpose; when I'm intentionally fucking with someone. (I don't <i>know of</i> Martin ever trying to claim that Clean Code was actually a parody or practical joke, though I'll admit I can't rule it out.)</p>
]]></description><pubDate>Mon, 12 Aug 2024 20:37:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=41229044</link><dc:creator>a1369209993</dc:creator><comments>https://news.ycombinator.com/item?id=41229044</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41229044</guid></item><item><title><![CDATA[New comment by a1369209993 in "Non-computability of solutions of certain equations on digital computers (2022)"]]></title><description><![CDATA[
<p>Evidently I should have been more explicit:<p>> > A <i>much</i> simpler[-and-more-nitpickable] version<p>Myhill uses a parlor trick to <i>make</i> his version continuously differentiable. It's a <i>pretty good</i> parlor trick, but it doesn't have much to do with computability.</p>
]]></description><pubDate>Wed, 07 Aug 2024 19:39:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=41184610</link><dc:creator>a1369209993</dc:creator><comments>https://news.ycombinator.com/item?id=41184610</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41184610</guid></item><item><title><![CDATA[New comment by a1369209993 in "Non-computability of solutions of certain equations on digital computers (2022)"]]></title><description><![CDATA[
<p>> The key detail here is that the bumps grow exponentially smaller<p>Pedantically, it's that the bumps grow exponentially <i>narrower</i>.<p>IIUC, a simpler (but more nitpickable) version would be f'(n+1/y) = [the fraction of n-state Turing machines that halt within y steps] (for positive integers n, and 0 elsewhere); then f is the integral of f'. The value of f(x) can be approximated arbitrarily well by running every floor(x)-state Turing machine for a large finite number of steps[2], but f'(x) is equal to Chaitin's constant[0] for n-state Turing machines over a strictly-positive-length[1] subinterval of [n,n+1).<p>A <i>much</i> simpler version is f'(x) = {-1 if x<0; +1 if x>0; Chaitin's constant if x=0}. f(x) = abs(x).<p>Basically, this isn't <i>even</i> a parlor trick. It's a nothing burger, disguised as something <i>by means of</i> a parlor trick.<p>0: <a href="https://en.wikipedia.org/wiki/Chaitin%27s_constant" rel="nofollow">https://en.wikipedia.org/wiki/Chaitin%27s_constant</a><p>1: And so strictly-containing-rational-numbers, although predicting <i>which</i> rational numbers is nontrivial.<p>2: The rounding error from assuming all machines that halt after y steps actually run forever scales as O(1/y) in the worst case.</p>
]]></description><pubDate>Sun, 04 Aug 2024 04:31:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=41151155</link><dc:creator>a1369209993</dc:creator><comments>https://news.ycombinator.com/item?id=41151155</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41151155</guid></item><item><title><![CDATA[New comment by a1369209993 in "The effect of CRTs on pixel art"]]></title><description><![CDATA[
<p>You're thinking of "self-aggrandizing" (and I think doctorpangloss is too, although I'm less certain since they didn't mention Wolfram).</p>
]]></description><pubDate>Thu, 01 Aug 2024 23:54:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=41134875</link><dc:creator>a1369209993</dc:creator><comments>https://news.ycombinator.com/item?id=41134875</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41134875</guid></item><item><title><![CDATA[New comment by a1369209993 in "A Visual Guide to LLM Quantization"]]></title><description><![CDATA[
<p>> The number of floats between 0 and 1 is the same as the number of floats between 1 and 3<p>No, the number of floats between 0 and 1 is (approximately) the same as the number of floats between 1 and <i>positive infinity</i>.  And this is the correct way for it work: 1/x has roughly the same range and precision as x, so you don't need (as many) stupid obfuscatory algebraic transforms in your formulas to keep your intermediate values from over- or under-flowing.</p>
]]></description><pubDate>Tue, 30 Jul 2024 18:40:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=41112688</link><dc:creator>a1369209993</dc:creator><comments>https://news.ycombinator.com/item?id=41112688</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41112688</guid></item><item><title><![CDATA[New comment by a1369209993 in "The Lazy Bureaucrat Scheduling Problem"]]></title><description><![CDATA[
<p>The real article appears to be <a href="https://arxiv.org/pdf/cs/0210024" rel="nofollow">https://arxiv.org/pdf/cs/0210024</a>.</p>
]]></description><pubDate>Sun, 14 Jul 2024 20:16:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=40962962</link><dc:creator>a1369209993</dc:creator><comments>https://news.ycombinator.com/item?id=40962962</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40962962</guid></item><item><title><![CDATA[New comment by a1369209993 in "Building a data compression utility in Haskell using Huffman codes"]]></title><description><![CDATA[
<p>> It would be interesting to see a [not gratuitously inefficient] uniquely decodable code that is neither a prefix code nor one in reverse.<p>This can be done by composing a prefix code with a suffix code:<p><pre><code>    A   0
    B  01
    C  11
  a A  0
  b BA 010
  c BB 0101
  d BC 0111
  e C  11
  {a=0,b=010,c=0101,d=0111,e=11}
</code></pre>
This is trivially uniquely decodable by uniquely decoding 0->A/etc backward, then uniquely decoding A->a/etc foreward. It's equivalent in lengths to the optimal prefix code {a=0,b=110,c=1110,d=1111,e=10} so it's a (one of several) optimal code for the same probability distributions.<p>And it's neither prefix nor suffix itself, since a=0 and b=010. In fact, it can't in general be decoded incrementally at all, in either direction, since "cee...ee?" vs "bee...ee?" and "?cc...cca" vs "?cc...ccb" both depend on unbounded lookahead to distinguish a single symbol.<p>I'm not sure the optimality holds for <i>any</i> composition of a in-isolation-optimal prefix code with a in-isolation-optimal suffix code, but it did work for the most trivial cases (other than the degenerate 1-to-1 code) I could come up with.</p>
]]></description><pubDate>Thu, 04 Jul 2024 23:12:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=40878776</link><dc:creator>a1369209993</dc:creator><comments>https://news.ycombinator.com/item?id=40878776</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40878776</guid></item><item><title><![CDATA[New comment by a1369209993 in "Architectural cross-section of Kowloon Walled City"]]></title><description><![CDATA[
<p>> That link doesn't work at the present time.<p>Try:<p><pre><code>  $ A='https://web.archive.org/web/20240701123410'
  $ B='https://staging.cohostcdn.org/attachment'
  $ C='11357255-b6b9-4a57-98eb-823776a4a828'
  $ D='KowloonWalledCityGrandPanorama.jpg'
  $ wget "$A/$B/$C/$D"
</code></pre>
(or <a href="https://web.archive.org/web/20240701123410/https://staging.cohostcdn.org/attachment/11357255-b6b9-4a57-98eb-823776a4a828/KowloonWalledCityGrandPanorama.jpg" rel="nofollow">https://web.archive.org/web/20240701123410/https://staging.c...</a>)</p>
]]></description><pubDate>Thu, 04 Jul 2024 03:40:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=40872138</link><dc:creator>a1369209993</dc:creator><comments>https://news.ycombinator.com/item?id=40872138</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40872138</guid></item></channel></rss>