<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: jepler</title><link>https://news.ycombinator.com/user?id=jepler</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Mon, 08 Jun 2026 01:14:19 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=jepler" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by jepler in "Indexing Code at Scale with Glean"]]></title><description><![CDATA[
<p>My mind just balks at the idea of having so much source that a 2020s computer could take hours to index it. ctags is nothing special (both in terms of optimization but also the level of detail it gets to: just global function identifiers) and looks like it runs at about 400MB/s on a single core of an i5-1235U. But still it looks ctags could process about 100TB in 4 hours across 16 threads on a workstation class CPU...</p>
]]></description><pubDate>Wed, 01 Jan 2025 23:44:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=42570261</link><dc:creator>jepler</dc:creator><comments>https://news.ycombinator.com/item?id=42570261</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42570261</guid></item><item><title><![CDATA[New comment by jepler in "Solving TSP: From Heuristics to a Potential Polynomial-Time Breakthrough"]]></title><description><![CDATA[
<p>According to <a href="http://comopt.ifi.uni-heidelberg.de/software/TSPLIB95/STSP.html" rel="nofollow">http://comopt.ifi.uni-heidelberg.de/software/TSPLIB95/STSP.h...</a> the optimal solution for eil51 is 426 (the linked page has a tour of 428.87) and the optimal solution for st70 is 675 (the linked page has a tour of 677.11).</p>
]]></description><pubDate>Tue, 31 Dec 2024 03:46:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=42556243</link><dc:creator>jepler</dc:creator><comments>https://news.ycombinator.com/item?id=42556243</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42556243</guid></item><item><title><![CDATA[New comment by jepler in "A complex bug with a ⸢simple⸣ fix"]]></title><description><![CDATA[
<p>I wonder whether you still have a bug. It depends how "scanning" is implemented.<p><pre><code>    23:55 start scanning
    23:59:59 message added
    00:00:01 perform timestamp check
</code></pre>
If there is the possibility of a message being added very late, and either being omitted from the scan that started earlier, or a delay from finishing the scan to performing the timestamp check, you might still miss a message.<p>You also mentioned a directory being created 5 minutes early: what if some system has a clock skewed the opposite way, and puts a message in a directory 5 minutes late instead?</p>
]]></description><pubDate>Tue, 24 Dec 2024 14:21:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=42502066</link><dc:creator>jepler</dc:creator><comments>https://news.ycombinator.com/item?id=42502066</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42502066</guid></item><item><title><![CDATA[New comment by jepler in "I think I just discovered supernormalcy"]]></title><description><![CDATA[
<p>I don't know Haskell, so I can imagine if you didn't know Python it'd be "greek to you" (unintelligible). I'll try explaining in prose what I did. [note: I also edited the grandparent comment because when I simplified the session I showed, the assignment of "s" ended up out of order]<p>I use the Python decimal package to calculate 17^(1/7) to 4000 decimal places. I show the first 12 characters of the ASCII representation ("1.4989198720"), then take the first 1000 characters after the decimal place. I show the first and last 10 characters of this string ("4989198720...6163659068") so that you can verify it against the string you are testing.<p>Then I use a list comprehension to check each 3-digit string (e.g., 001, 002, 003, ..., 999) to find out whether it is a substring of the concatenation of `s` with itself, and list the ones that don't appear. I manually abbreviated the list, but I'm saying that in <i>my</i> string, 000, 002, 004, 005, 009, [and some other numbers], 993, 994, 995, 998, and 999 did not appear. (The concatenation `s+s` is checked so that the subsequences that occur at the wraparound---here,684 and 849---are found)<p>Because some of these length-3 sequences are missing, to my understanding this does not constitute a de Bruijn sequence of order 3 on a size-10 alphabet.  However, I'm also not entirely sure whether this is what you were claiming.</p>
]]></description><pubDate>Sat, 21 Dec 2024 21:55:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=42482640</link><dc:creator>jepler</dc:creator><comments>https://news.ycombinator.com/item?id=42482640</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42482640</guid></item><item><title><![CDATA[New comment by jepler in "I think I just discovered supernormalcy"]]></title><description><![CDATA[
<p>assuming you mean the decimal expansion and a length-3 de bruijn sequence on 10 symbols, I am not seeing it. There seem to be many sub-sequences which do not appear. (assuming that python's Decimal library at a precision of 4000 digits is actually giving the first 1000 digits correctly; though I have no reason to doubt this I don't know for sure the maximum ULP error of exponent)<p><pre><code>    Python 3.11.2 (main, Sep 14 2024, 03:00:30) [GCC 12.2.0] on linux
    Type "help", "copyright", "credits" or "license" for more information.
    >>> from decimal import Decimal, getcontext
    >>> getcontext().prec = 4000
    >>> d = 17 ** (1 / Decimal(7))
    >>> sd = str(d)
    >>> sd[:12]
    '1.4989198720'
    >>> s = sd[2:][:1000]
    >>> s[:10], s[-10:]
    ('4989198720', '6163659068')
    >>> [i for i in range(1000) if "%03d" % i not in s+s]
    [0, 2, 4, 5, 9, [...], 993, 994, 995, 998, 999]
    >>> len(_)
    361</code></pre></p>
]]></description><pubDate>Sat, 21 Dec 2024 20:04:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=42481892</link><dc:creator>jepler</dc:creator><comments>https://news.ycombinator.com/item?id=42481892</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42481892</guid></item><item><title><![CDATA[New comment by jepler in "All Python Downloads from Python.org Return 403 Forbidden"]]></title><description><![CDATA[
<p>and it's back now. No incidents reported on status.python.org.<p>there was some discussion on at least two github issues: <a href="https://github.com/python/cpython/issues/127307">https://github.com/python/cpython/issues/127307</a> and <a href="https://github.com/python/pythondotorg/issues/2663">https://github.com/python/pythondotorg/issues/2663</a></p>
]]></description><pubDate>Wed, 27 Nov 2024 00:56:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=42251824</link><dc:creator>jepler</dc:creator><comments>https://news.ycombinator.com/item?id=42251824</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42251824</guid></item><item><title><![CDATA[New comment by jepler in "All Python Downloads from Python.org Return 403 Forbidden"]]></title><description><![CDATA[
<p>No downtime noted yet at <a href="https://status.python.org/" rel="nofollow">https://status.python.org/</a> but confirmed from here</p>
]]></description><pubDate>Tue, 26 Nov 2024 22:39:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=42250901</link><dc:creator>jepler</dc:creator><comments>https://news.ycombinator.com/item?id=42250901</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42250901</guid></item><item><title><![CDATA[New comment by jepler in "Researchers crack RSA and AES data encryption"]]></title><description><![CDATA[
<p>Too tired to find the actual debunking of these claims but no, d-wave is not effective for cryptanalysis of RSA or AES as deployed.<p>The papers claim some interesting but not game-changing results on factorization of tiny primes and attacking toy, reduced round cryptosystems that resemble AES in a particular way.</p>
]]></description><pubDate>Thu, 21 Nov 2024 15:18:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=42205126</link><dc:creator>jepler</dc:creator><comments>https://news.ycombinator.com/item?id=42205126</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42205126</guid></item><item><title><![CDATA[New comment by jepler in "Python, C++ inspired language that transpiles to C and can be embedded within C"]]></title><description><![CDATA[
<p>Anil is a given first name, maybe just not in your culture.</p>
]]></description><pubDate>Thu, 14 Nov 2024 14:55:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=42136697</link><dc:creator>jepler</dc:creator><comments>https://news.ycombinator.com/item?id=42136697</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42136697</guid></item><item><title><![CDATA[New comment by jepler in "How to Correctly Sum Up Numbers"]]></title><description><![CDATA[
<p>You don't need machine code these days to find overflow in IEEE floating point arithmetic.<p>If any intermediate sum overflows, you get an infinity. Further arithmetic can never return you to the realm of finite numbers (though you can also get into the world of "not a number" NaNs by calculating -inf + inf for instance), so you can use a standard function like (C99 <math.h>) isfinite() to check if any intermediate step of summing FP numbers overflowed the representation.</p>
]]></description><pubDate>Sun, 03 Nov 2024 16:04:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=42033800</link><dc:creator>jepler</dc:creator><comments>https://news.ycombinator.com/item?id=42033800</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42033800</guid></item><item><title><![CDATA[New comment by jepler in "A better way to sell Coldplay tickets"]]></title><description><![CDATA[
<p>If you're writing for an audience outside of India you might want to explain what ₹9 lakh equates to, as both the value of ₹1 and the magnitude of the lakh are probably unfamiliar.<p>(Apparently that's 9x10^5 INR, or in the neighborhood of 10,000€ or $10,000. If you're curious about this system of naming and writing numbers used in India and other countries in the region, <a href="https://en.wikipedia.org/wiki/Lakh" rel="nofollow">https://en.wikipedia.org/wiki/Lakh</a> and <a href="https://en.wikipedia.org/wiki/Indian_numbering_system#Use_of_separators" rel="nofollow">https://en.wikipedia.org/wiki/Indian_numbering_system#Use_of...</a> will get you started)</p>
]]></description><pubDate>Tue, 29 Oct 2024 01:55:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=41978602</link><dc:creator>jepler</dc:creator><comments>https://news.ycombinator.com/item?id=41978602</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41978602</guid></item><item><title><![CDATA[New comment by jepler in "Apple iPhone 16 Is Now Illegal in Indonesia, Ban Leaves Tourists in the Lurch"]]></title><description><![CDATA[
<p><a href="https://www.flightconnections.com/flights-from-iah-to-hav" rel="nofollow">https://www.flightconnections.com/flights-from-iah-to-hav</a> there are direct flights from USA to Cuba these days</p>
]]></description><pubDate>Mon, 28 Oct 2024 03:10:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=41967499</link><dc:creator>jepler</dc:creator><comments>https://news.ycombinator.com/item?id=41967499</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41967499</guid></item><item><title><![CDATA[New comment by jepler in "Ask HN: Is it possible to create an AI that will last a billion years?"]]></title><description><![CDATA[
<p>It's not clear how you'd do that with current technology.<p>What is the oldest unmaintained working man-made mechanism? I have no idea, but I'd hazard that it's closer to 100 years old than 1000. Things that do keep working do so because they're regularly maintained by people. I'm thinking of stuff like multi hundred year old mechanical clocks.<p>Assuming you mean some kind of electronics made with transistors, you would have to deal with unsolved problems including<p>* how you build a billion-year power source<p>* how you deal with transistor aging on the billion year timescale<p>* how you deal with medium & large scale events over a billion years (example: weather if on a planet, micrometeorite impacts if in space)<p>Heck even the clock of the long now <<a href="https://en.wikipedia.org/wiki/Clock_of_the_Long_Now" rel="nofollow">https://en.wikipedia.org/wiki/Clock_of_the_Long_Now</a>>, a clock that works on a scale of 10k years, is a major engineering challenge that will most likely be unsuccessful (my opinion)</p>
]]></description><pubDate>Thu, 17 Oct 2024 22:16:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=41874358</link><dc:creator>jepler</dc:creator><comments>https://news.ycombinator.com/item?id=41874358</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41874358</guid></item><item><title><![CDATA[New comment by jepler in "Are there infinitely many possible thoughts?"]]></title><description><![CDATA[
<p>I'd take recourse to <a href="https://en.wikipedia.org/wiki/Bremermann%27s_limit" rel="nofollow">https://en.wikipedia.org/wiki/Bremermann%27s_limit</a><p>All human thought processes appear to require some irreversible physical processes in order to occur. (not some fancy quantum process that might turn out to proceed in a way that avoids the energy limit of computation)<p>Together with Bremermann's Limit, this means that we can put a limit (albeit a very large one!) on the amount of thought that can ever happen. You'd get a smaller limit considering the earth or solar system vs the entire universe, but it'd still be finite.<p>So if you just start with the infinite thoughts "There is a natural number 0", "There is a natural number 1", and so on, there must be a unique smallest (finite!) natural number X for which the statement "There is a natural number X+1" will never be thought.</p>
]]></description><pubDate>Mon, 14 Oct 2024 22:20:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=41842703</link><dc:creator>jepler</dc:creator><comments>https://news.ycombinator.com/item?id=41842703</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41842703</guid></item><item><title><![CDATA[New comment by jepler in "Code Generation in Rust vs. C++26"]]></title><description><![CDATA[
<p>A modest proposal: stop adopting new digraphs like [:, ^^, [[.<p>Unicode has at least 50 sets of pairing punctuation just waiting for use...<p><pre><code>       \N{MEDIUM LEFT-POINTING ANGLE BRACKET ORNAMENT} U+276c 
       \N{HEAVY LEFT-POINTING ANGLE BRACKET ORNAMENT} U+2770 
       \N{LIGHT LEFT TORTOISE SHELL BRACKET ORNAMENT} U+2772 
       \N{MEDIUM LEFT CURLY BRACKET ORNAMENT} U+2774 
</code></pre>
and multiple blocks of mathematical operators including<p><pre><code>      ⊥ \N{UP TACK} U+22a5 ⊥
      ⊦ \N{ASSERTION} U+22a6 ⊦
      ⊧ \N{MODELS} U+22a7 ⊧
      ⊨ \N{TRUE} U+22a8 ⊨
      ⊩ \N{FORCES} U+22a9 ⊩
</code></pre>
so you could just write the much clearer and more distinctive ⹗derive<serde::Serialize>⹘ and so on for the other new multi-punctuation sequences.<p>Yes, by the time C++37 comes around it might be necessary to petition Unicode to add additional code points. This wouldn't be a problem, for two reasons:<p>First, Unicode is accustomed to adding new code points and might even be willing to pre-allocate some entire pages to the C++ committee.<p>Second, the existing ways to modify emoji could apply to designated mathematical modifiers as well. For instance, ∅ would denote a distinct future C++ operator symbol from ∅ or ∅ (sadly, as of 2024, hacker news can't render "pale woman "A-type" empty set" or the other empty set symbol variations I lovingly entered in this paragraph).<p>These sequences are highly preferable to ASCII sequences like [: because the ZWJs allow supporting editors to correctly render them as a single glyph occupying a single terminal cell and without using font ligature hacks.</p>
]]></description><pubDate>Thu, 03 Oct 2024 13:25:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=41730579</link><dc:creator>jepler</dc:creator><comments>https://news.ycombinator.com/item?id=41730579</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41730579</guid></item><item><title><![CDATA[New comment by jepler in "New Typing Features in Python 3.13"]]></title><description><![CDATA[
<p>since this is a 'walled site, you can just have a read of the official release notes and then the related PEPs ...<p><a href="https://docs.python.org/3.13/whatsnew/3.13.html" rel="nofollow">https://docs.python.org/3.13/whatsnew/3.13.html</a><p>New typing features:<p>* PEP 696: Type parameters (typing.TypeVar, typing.ParamSpec, and typing.TypeVarTuple) now support defaults.<p>* PEP 702: The new warnings.deprecated() decorator adds support 
for marking deprecations in the type system and at runtime.<p>* PEP 705: typing.ReadOnly can be used to mark an item of a typing.TypedDict as read-only for type checkers.<p>* PEP 742: typing.TypeIs provides more intuitive type narrowing behavior, as an alternative to typing.TypeGuard.<p>Personally the ability for the type checker to note calls to deprecated functions in a signature-dependent way looks useful. I'm sure the others will be useful too.</p>
]]></description><pubDate>Sun, 29 Sep 2024 18:44:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=41689446</link><dc:creator>jepler</dc:creator><comments>https://news.ycombinator.com/item?id=41689446</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41689446</guid></item><item><title><![CDATA[New comment by jepler in "RVPC – Open Source Hardware Board"]]></title><description><![CDATA[
<p>I was curious how this thing did video. As you might expect, it's done by bit-banging the VGA RGB output pin from an IRQ. A time honored tradition. Here's the code in the Tetris demo: <a href="https://github.com/OLIMEX/RVPC/blob/main/SOFTWARE/Demo-Tetris/src/vga.c#L349">https://github.com/OLIMEX/RVPC/blob/main/SOFTWARE/Demo-Tetri...</a><p>With only 2kB RAM, the tetris demo implements what seems to be a 18 or 36-line screen with 21 characters per line. The bitmap for the next line is generated after blasting the bits out for the previous line.<p>Like some classic game consoles, this leaves most of the "vertical blanking period" for running your main game-or-whatever logic.<p>What's great about this board is the built in connectors & software to use it. And the fact you can build it yourself if you know how to wield a soldering iron. And it's a 32-bit microcontroller. On the other hand, its capabilities are limited by the small flash & SRAM: it has less RAM than an Apple I did! (but more flash than the Apple I had ROM, and RISC-V code density probably trumps 6502 code)</p>
]]></description><pubDate>Sun, 29 Sep 2024 03:14:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=41684588</link><dc:creator>jepler</dc:creator><comments>https://news.ycombinator.com/item?id=41684588</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41684588</guid></item><item><title><![CDATA[New comment by jepler in "Why Gauss wanted a heptadecagon on his tombstone"]]></title><description><![CDATA[
<p>You're right that the hilbert curve only visits certain points in the unit square, and never a (non-rational,non-rational) point. While the Wikipedia article doesn't seem to mention it, other sources like [1] mention that the definition of a space-filling curve is one that <i>comes arbitrarily close to</i> any point within its space. I think you would be able to see that the iteration of the hilbert curve does get arbitrarily close to (say) the point (sqrt(2)/2, sqrt(2)/2).<p>[1]: <a href="https://people.csail.mit.edu/jaffer/Geometry/PSFC" rel="nofollow">https://people.csail.mit.edu/jaffer/Geometry/PSFC</a></p>
]]></description><pubDate>Tue, 17 Sep 2024 21:46:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=41573194</link><dc:creator>jepler</dc:creator><comments>https://news.ycombinator.com/item?id=41573194</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41573194</guid></item><item><title><![CDATA[New comment by jepler in "Compression Dictionary Transport"]]></title><description><![CDATA[
<p>this was my first thought as well. Authors just acknowledge it and move on; it's not like shopify and google care whether there's another way to successfully track users online.<p><pre><code>    10.  Privacy Considerations

       Since dictionaries are advertised in future requests using the hash
       of the content of the dictionary, it is possible to abuse the
       dictionary to turn it into a tracking cookie.</code></pre></p>
]]></description><pubDate>Sun, 15 Sep 2024 16:57:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=41548633</link><dc:creator>jepler</dc:creator><comments>https://news.ycombinator.com/item?id=41548633</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41548633</guid></item><item><title><![CDATA[New comment by jepler in "Revocation Is Broken"]]></title><description><![CDATA[
<p>Any meaningful change here since [2017]? I know letsencrypt recently announced intent to cease OCSP (<a href="https://letsencrypt.org/2024/07/23/replacing-ocsp-with-crls.html" rel="nofollow">https://letsencrypt.org/2024/07/23/replacing-ocsp-with-crls....</a>) and it sounds like that will be done industry wide based on CA/Browser forum balloting.</p>
]]></description><pubDate>Wed, 11 Sep 2024 19:56:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=41514819</link><dc:creator>jepler</dc:creator><comments>https://news.ycombinator.com/item?id=41514819</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41514819</guid></item></channel></rss>