<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: kvakil</title><link>https://news.ycombinator.com/user?id=kvakil</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sun, 27 Sep 2026 10:44:25 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=kvakil" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by kvakil in "The Bun Shell"]]></title><description><![CDATA[
<p>I worked on that Node.js issue. If you can share a repro, I'd love to take a look: <a href="https://github.com/nodejs/node/issues/new?assignees=&labels=&projects=&template=1-bug-report.yml">https://github.com/nodejs/node/issues/new?assignees=&labels=...</a></p>
]]></description><pubDate>Sun, 21 Jan 2024 05:15:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=39075796</link><dc:creator>kvakil</dc:creator><comments>https://news.ycombinator.com/item?id=39075796</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39075796</guid></item><item><title><![CDATA[New comment by kvakil in "SectorC: A C Compiler in 512 bytes"]]></title><description><![CDATA[
<p>wow, this is impressive.<p>I wrote a similar x86-16 assembler in < 512 B of x86-16 assembly, and this seems much more difficult <<a href="https://github.com/kvakil/0asm/">https://github.com/kvakil/0asm/</a>>. I did find a lot of similar tricks were helpful: using gadgets and hashes. Once trick I don't see in sectorc which shaved quite a bit off of 0asm was self-modifying code, which 0asm uses to "change" to the second-pass of the assembler. (I wrote some other techniques here: <<a href="https://kvakil.me/posts/asmkoan.html" rel="nofollow">https://kvakil.me/posts/asmkoan.html</a>>.)<p>bootOS (<<a href="https://github.com/nanochess/bootOS">https://github.com/nanochess/bootOS</a>>) and other tools by the author are also amazing works of assembly golf.</p>
]]></description><pubDate>Thu, 25 May 2023 03:26:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=36066769</link><dc:creator>kvakil</dc:creator><comments>https://news.ycombinator.com/item?id=36066769</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=36066769</guid></item><item><title><![CDATA[New comment by kvakil in "Images Created from Prime Numbers"]]></title><description><![CDATA[
<p>In addition, even if a normal number was used, it's far simpler to describe the data by just using a single number alone. For example, a binary encoding of the data (perhaps using a prefix-free code). Using a normal number and two "positions" is just more complicated.</p>
]]></description><pubDate>Mon, 13 Jan 2020 04:20:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=22031785</link><dc:creator>kvakil</dc:creator><comments>https://news.ycombinator.com/item?id=22031785</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=22031785</guid></item><item><title><![CDATA[New comment by kvakil in "Is parallel programming hard, and, if so, what can you do about it?"]]></title><description><![CDATA[
<p>Anecdote: for me the actor model has been the most understandable and useful concurrency primitive I've used. Pi-calculus, which was inspired by the actor model, is similarly elegant.</p>
]]></description><pubDate>Mon, 13 Jan 2020 04:01:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=22031710</link><dc:creator>kvakil</dc:creator><comments>https://news.ycombinator.com/item?id=22031710</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=22031710</guid></item><item><title><![CDATA[New comment by kvakil in "Images Created from Prime Numbers"]]></title><description><![CDATA[
<p>This assumes that pi is a normal number [0], a fact that is widely believed but has not been proven.<p>[0]: <a href="https://en.wikipedia.org/wiki/Normal_number" rel="nofollow">https://en.wikipedia.org/wiki/Normal_number</a></p>
]]></description><pubDate>Mon, 13 Jan 2020 03:52:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=22031670</link><dc:creator>kvakil</dc:creator><comments>https://news.ycombinator.com/item?id=22031670</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=22031670</guid></item><item><title><![CDATA[New comment by kvakil in "Browser Games Aren't an Easy Target"]]></title><description><![CDATA[
<p>jsfuck is hardly obfuscation: remove the first 828 bytes (for "eval(") and the last 3 bytes (for ")()"), and then execute the remaining string, and that gives you the original source code.</p>
]]></description><pubDate>Mon, 13 Jan 2020 02:30:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=22031373</link><dc:creator>kvakil</dc:creator><comments>https://news.ycombinator.com/item?id=22031373</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=22031373</guid></item><item><title><![CDATA[Show HN: 0asm: x86 assembler in 512 bytes of x86 machine code]]></title><description><![CDATA[
<p>Article URL: <a href="https://github.com/kvakil/0asm">https://github.com/kvakil/0asm</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=21585920">https://news.ycombinator.com/item?id=21585920</a></p>
<p>Points: 7</p>
<p># Comments: 0</p>
]]></description><pubDate>Wed, 20 Nov 2019 17:17:31 +0000</pubDate><link>https://github.com/kvakil/0asm</link><dc:creator>kvakil</dc:creator><comments>https://news.ycombinator.com/item?id=21585920</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=21585920</guid></item><item><title><![CDATA[New comment by kvakil in "Multiple ways to compute e in Raku"]]></title><description><![CDATA[
<p>> Maksymilian Piskorowski found that if you happen to have a spare eight 9s, you can compute 𝑒 = (9/9 + 9^(-9^9))^(9^(9^9)), which is accurate to a little over 369 million decimal places.<p>Sure, because 9/9 = 1 and if you take x = 9^9^9, you get back (1 + x^(-1))^x, i.e. the first formula. It's cute, but I don't know if you could call it a "discovery".</p>
]]></description><pubDate>Mon, 11 Nov 2019 21:04:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=21508888</link><dc:creator>kvakil</dc:creator><comments>https://news.ycombinator.com/item?id=21508888</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=21508888</guid></item><item><title><![CDATA[New comment by kvakil in "Tethered Jailbreaks Are Back"]]></title><description><![CDATA[
<p>Seems likely that the hard reset works on a lower level as it works even if the phone is hung.</p>
]]></description><pubDate>Mon, 30 Sep 2019 02:57:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=21111410</link><dc:creator>kvakil</dc:creator><comments>https://news.ycombinator.com/item?id=21111410</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=21111410</guid></item><item><title><![CDATA[New comment by kvakil in "Understanding GCC Builtins to Develop Better Tools [pdf]"]]></title><description><![CDATA[
<p>Maybe take a look at gg [0]? It seems to solve the problem of slow compilation quite nicely.<p>[0] <a href="https://github.com/StanfordSNR/gg" rel="nofollow">https://github.com/StanfordSNR/gg</a></p>
]]></description><pubDate>Sun, 01 Sep 2019 02:44:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=20850223</link><dc:creator>kvakil</dc:creator><comments>https://news.ycombinator.com/item?id=20850223</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=20850223</guid></item><item><title><![CDATA[New comment by kvakil in "Learning to prove theorems via interacting with proof assistants"]]></title><description><![CDATA[
<p>From the article: "As an extra bonus, the generated proofs tend to be shorter than the ground truth proofs collected in CoqGym."<p>This feels a little misleading, the paper itself says that the phenomena "... suggests that theorems with longer proofs are much more challenging for the model." It'd be more interesting to see how the automated theorem proving length compares to the manual length for the same proofs (although I'd expect this to be biased downwards, for the same reason).</p>
]]></description><pubDate>Sat, 24 Aug 2019 17:34:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=20788479</link><dc:creator>kvakil</dc:creator><comments>https://news.ycombinator.com/item?id=20788479</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=20788479</guid></item><item><title><![CDATA[New comment by kvakil in "The Day I Fell in Love with Fuzzing"]]></title><description><![CDATA[
<p>how does this compare to oss-fuzz [0]? is the main value proposition that its easier to set up?<p>[0]: <a href="https://github.com/google/oss-fuzz/" rel="nofollow">https://github.com/google/oss-fuzz/</a></p>
]]></description><pubDate>Mon, 28 Jan 2019 21:19:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=19021183</link><dc:creator>kvakil</dc:creator><comments>https://news.ycombinator.com/item?id=19021183</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=19021183</guid></item><item><title><![CDATA[New comment by kvakil in "Twitter warns that private tweets were public for years"]]></title><description><![CDATA[
<p>Modern secure messaging systems are typically OTR and have deniability: after the session ends, anybody can forge messages to make it look like they came from you. Sure the messages can become public, but they're no more "proof" than someone saying "X said Y".</p>
]]></description><pubDate>Fri, 18 Jan 2019 19:36:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=18942220</link><dc:creator>kvakil</dc:creator><comments>https://news.ycombinator.com/item?id=18942220</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=18942220</guid></item><item><title><![CDATA[New comment by kvakil in "IBM releases Elm-powered app"]]></title><description><![CDATA[
<p>In French, there is a space before exclamation and question marks. Based on the author's name, I'd also guess that they are French.</p>
]]></description><pubDate>Thu, 10 Jan 2019 08:35:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=18872397</link><dc:creator>kvakil</dc:creator><comments>https://news.ycombinator.com/item?id=18872397</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=18872397</guid></item><item><title><![CDATA[New comment by kvakil in "How tech baffled an elderly Congress"]]></title><description><![CDATA[
<p>I think that an age-based criterion would reflect that younger people (on average) have greater tech literacy. But I don't think Congresspeople reflect the general population, so I agree that using age is probably not the best idea.</p>
]]></description><pubDate>Sat, 05 Jan 2019 20:21:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=18833972</link><dc:creator>kvakil</dc:creator><comments>https://news.ycombinator.com/item?id=18833972</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=18833972</guid></item><item><title><![CDATA[New comment by kvakil in "Ruby 2.6"]]></title><description><![CDATA[
<p>It depends on how you define the modulo operator [0]--there are definitions where (-1)%5 == 4 and definitions where (-1)%5 == -1. Presumably the GP is referring to the former case.<p>[0]: <a href="https://en.wikipedia.org/wiki/Modulo_operation#Remainder_calculation_for_the_modulo_operation" rel="nofollow">https://en.wikipedia.org/wiki/Modulo_operation#Remainder_cal...</a></p>
]]></description><pubDate>Mon, 24 Dec 2018 20:56:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=18754226</link><dc:creator>kvakil</dc:creator><comments>https://news.ycombinator.com/item?id=18754226</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=18754226</guid></item><item><title><![CDATA[New comment by kvakil in "Raw String Literals Removed From Java 12 as Feature Set Frozen"]]></title><description><![CDATA[
<p>I believe they're almost certainly referring to Clojure macros</p>
]]></description><pubDate>Sat, 22 Dec 2018 20:08:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=18742207</link><dc:creator>kvakil</dc:creator><comments>https://news.ycombinator.com/item?id=18742207</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=18742207</guid></item><item><title><![CDATA[New comment by kvakil in "50 CVEs in 50 Days: Fuzzing Adobe Reader"]]></title><description><![CDATA[
<p>and just like that, you've convinced me to install it. Different strokes for different folks, I suppose. :)</p>
]]></description><pubDate>Thu, 13 Dec 2018 05:38:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=18670101</link><dc:creator>kvakil</dc:creator><comments>https://news.ycombinator.com/item?id=18670101</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=18670101</guid></item><item><title><![CDATA[New comment by kvakil in "Tiddlywiki – A non-linear personal web notebook"]]></title><description><![CDATA[
<p>You might find this interesting: <a href="https://unhosted.org/" rel="nofollow">https://unhosted.org/</a></p>
]]></description><pubDate>Sun, 30 Sep 2018 19:36:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=18107937</link><dc:creator>kvakil</dc:creator><comments>https://news.ycombinator.com/item?id=18107937</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=18107937</guid></item><item><title><![CDATA[New comment by kvakil in "Why numbering should start at zero (1982)"]]></title><description><![CDATA[
<p>Of course the answer is N1 - 3 N2 + 3 N3, since that naturally completes the cubic interpolating polynomial.</p>
]]></description><pubDate>Thu, 16 Aug 2018 17:17:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=17776602</link><dc:creator>kvakil</dc:creator><comments>https://news.ycombinator.com/item?id=17776602</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=17776602</guid></item></channel></rss>