<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: csjh</title><link>https://news.ycombinator.com/user?id=csjh</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sat, 18 Apr 2026 10:04:37 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=csjh" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by csjh in "You are not your job"]]></title><description><![CDATA[
<p>maybe it implies some amount of "live to work" etymologically, but the word "living" in that context specifically refers to living in the financial sense (the act of living wouldn't really make sense in that sentence)<p>you live to play video games and watch movies, but you make a living by working</p>
]]></description><pubDate>Mon, 23 Mar 2026 16:02:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=47491331</link><dc:creator>csjh</dc:creator><comments>https://news.ycombinator.com/item?id=47491331</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47491331</guid></item><item><title><![CDATA[New comment by csjh in "Show HN: The Mog Programming Language"]]></title><description><![CDATA[
<p>Wasm is explicitly <i>not</i> designed for interpretation (<a href="https://arxiv.org/abs/2205.01183" rel="nofollow">https://arxiv.org/abs/2205.01183</a>)</p>
]]></description><pubDate>Mon, 09 Mar 2026 21:13:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=47315603</link><dc:creator>csjh</dc:creator><comments>https://news.ycombinator.com/item?id=47315603</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47315603</guid></item><item><title><![CDATA[New comment by csjh in "Allocating on the Stack"]]></title><description><![CDATA[
<p>Optimizations like these are so cool. I love seeing higher level languages take advantage of their high level-ness</p>
]]></description><pubDate>Fri, 27 Feb 2026 20:34:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=47185219</link><dc:creator>csjh</dc:creator><comments>https://news.ycombinator.com/item?id=47185219</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47185219</guid></item><item><title><![CDATA[New comment by csjh in "Allocating on the Stack"]]></title><description><![CDATA[
<p>What do you mean outside of programmer control? What's stopping you from setting the stack size in the linker flags?</p>
]]></description><pubDate>Fri, 27 Feb 2026 20:32:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=47185197</link><dc:creator>csjh</dc:creator><comments>https://news.ycombinator.com/item?id=47185197</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47185197</guid></item><item><title><![CDATA[New comment by csjh in "Nano Banana 2: Google's latest AI image generation model"]]></title><description><![CDATA[
<p>What’s the downside of SynthID?</p>
]]></description><pubDate>Thu, 26 Feb 2026 16:34:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=47168324</link><dc:creator>csjh</dc:creator><comments>https://news.ycombinator.com/item?id=47168324</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47168324</guid></item><item><title><![CDATA[New comment by csjh in "100M-Row Challenge with PHP"]]></title><description><![CDATA[
<p>Obligatory DuckDB solution:<p>> duckdb -s "COPY (SELECT url[20:] as url, date, count(*) as c FROM read_csv('data.csv', columns = { 'url': 'VARCHAR', 'date': 'DATE' }) GROUP BY url, date) TO 'output.json' (ARRAY)"<p>Takes about 8 seconds on my M1 Macbook. JSON not in the right format, but that wouldn't dominate the execution time.</p>
]]></description><pubDate>Wed, 25 Feb 2026 16:42:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=47153984</link><dc:creator>csjh</dc:creator><comments>https://news.ycombinator.com/item?id=47153984</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47153984</guid></item><item><title><![CDATA[New comment by csjh in "How many registers does an x86-64 CPU have? (2020)"]]></title><description><![CDATA[
<p>You’re missing the fact that the compiler isn’t forced to fill every register in the first place. If it was less efficient to use more registers, the compiler simply wouldn’t use more registers.<p>The actual counter proof here would be that in either case, the temporaries have to end up on the stack at some point anyways, so you’d need to look at the total number of loads/stores in the proximity of the call site in general.</p>
]]></description><pubDate>Sat, 14 Feb 2026 17:04:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=47016138</link><dc:creator>csjh</dc:creator><comments>https://news.ycombinator.com/item?id=47016138</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47016138</guid></item><item><title><![CDATA[New comment by csjh in "Ask HN: What Are You Working On? (June 2025)"]]></title><description><![CDATA[
<p>Started on a dependency-free (including manual object file creation, excluding manual linker) single-pass C compiler with a goal of it being self-hosting. Spawned after my previous project (single-pass Wasm JIT) started to plateau a bit and wanted to start something more "full-stack compiler"-y.<p><a href="https://github.com/csjh/c-liva">https://github.com/csjh/c-liva</a></p>
]]></description><pubDate>Mon, 30 Jun 2025 02:36:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=44418694</link><dc:creator>csjh</dc:creator><comments>https://news.ycombinator.com/item?id=44418694</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44418694</guid></item><item><title><![CDATA[New comment by csjh in "Low-Level Optimization with Zig"]]></title><description><![CDATA[
<p>Maybe, but from the author's description, it seems like the interpretation of intent that they want is to generally give the most information possible to the compiler, so it can do its thing. I don't see why the right high level language couldn't give the compiler plenty of leeway to optimize.</p>
]]></description><pubDate>Sat, 07 Jun 2025 22:34:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=44213120</link><dc:creator>csjh</dc:creator><comments>https://news.ycombinator.com/item?id=44213120</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44213120</guid></item><item><title><![CDATA[New comment by csjh in "Low-Level Optimization with Zig"]]></title><description><![CDATA[
<p>> High level languages lack something that low level languages have in great adundance - intent.<p>Is this line really true? I feel like expressing intent isn't really a factor in the high level / low level spectrum. If anything, more ways of expressing intent in more detail should contribute towards them being higher level.</p>
]]></description><pubDate>Sat, 07 Jun 2025 19:26:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=44211959</link><dc:creator>csjh</dc:creator><comments>https://news.ycombinator.com/item?id=44211959</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44211959</guid></item><item><title><![CDATA[New comment by csjh in "Ask HN: What are you working on? (May 2025)"]]></title><description><![CDATA[
<p>Appreciated, but not sure I'm ready for that yet - still need to finish uni :p</p>
]]></description><pubDate>Mon, 26 May 2025 18:50:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=44100377</link><dc:creator>csjh</dc:creator><comments>https://news.ycombinator.com/item?id=44100377</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44100377</guid></item><item><title><![CDATA[New comment by csjh in "Ask HN: What are you working on? (May 2025)"]]></title><description><![CDATA[
<p>Been working on a single-pass WebAssembly JIT compiler (atm only guaranteed to work on M1 air), been super interesting learning and thinking through strategies to balance fast compilation & fast generated code. It's the fastest single-pass JIT output-wise that I'm aware of, but the compilation speed could use some work.<p>Also: the README is pretty outdated, the real interesting stuff happens in <a href="https://github.com/csjh/mitey-jit/blob/main/backend/arm64/baseline.cpp">https://github.com/csjh/mitey-jit/blob/main/backend/arm64/ba...</a><p><a href="https://github.com/csjh/mitey-jit">https://github.com/csjh/mitey-jit</a></p>
]]></description><pubDate>Mon, 26 May 2025 16:31:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=44098952</link><dc:creator>csjh</dc:creator><comments>https://news.ycombinator.com/item?id=44098952</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44098952</guid></item><item><title><![CDATA[New comment by csjh in "The DuckDB Local UI"]]></title><description><![CDATA[
<p>for the average developer I think the killer feature is allowing you to query over whatever data you want (csv, json, parquet, even gsheets) as equals, directly from their file form - can even join across them</p>
]]></description><pubDate>Wed, 12 Mar 2025 14:39:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=43343768</link><dc:creator>csjh</dc:creator><comments>https://news.ycombinator.com/item?id=43343768</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43343768</guid></item><item><title><![CDATA[New comment by csjh in "Performance of the Python 3.14 tail-call interpreter"]]></title><description><![CDATA[
<p>distributing the dispatch instructions lets the predictor pick up on specific patterns within the bytecode - for example, comparison instructions are probably followed by a conditional branch instruction</p>
]]></description><pubDate>Mon, 10 Mar 2025 17:59:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=43323441</link><dc:creator>csjh</dc:creator><comments>https://news.ycombinator.com/item?id=43323441</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43323441</guid></item><item><title><![CDATA[New comment by csjh in "I Wrote a WebAssembly VM in C"]]></title><description><![CDATA[
<p>How's it nondeterministic?</p>
]]></description><pubDate>Thu, 06 Feb 2025 02:39:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=42958349</link><dc:creator>csjh</dc:creator><comments>https://news.ycombinator.com/item?id=42958349</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42958349</guid></item><item><title><![CDATA[New comment by csjh in "DOJ will push Google to sell off Chrome"]]></title><description><![CDATA[
<p>That's not true, plenty of great stuff is shipping every year. Take your pick: <a href="https://web.dev/series/baseline-newly-available" rel="nofollow">https://web.dev/series/baseline-newly-available</a> <a href="https://web.dev/blog/baseline2023" rel="nofollow">https://web.dev/blog/baseline2023</a></p>
]]></description><pubDate>Mon, 18 Nov 2024 23:19:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=42178268</link><dc:creator>csjh</dc:creator><comments>https://news.ycombinator.com/item?id=42178268</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42178268</guid></item><item><title><![CDATA[The Common CPU Interpreter Loop Revisited (2008)]]></title><description><![CDATA[
<p>Article URL: <a href="http://www.emulators.com/docs/nx25_nostradamus.htm">http://www.emulators.com/docs/nx25_nostradamus.htm</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=42166360">https://news.ycombinator.com/item?id=42166360</a></p>
<p>Points: 3</p>
<p># Comments: 0</p>
]]></description><pubDate>Sun, 17 Nov 2024 19:25:10 +0000</pubDate><link>http://www.emulators.com/docs/nx25_nostradamus.htm</link><dc:creator>csjh</dc:creator><comments>https://news.ycombinator.com/item?id=42166360</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42166360</guid></item><item><title><![CDATA[New comment by csjh in "Ask HN: What Are You Working On? (October 2024)"]]></title><description><![CDATA[
<p>Been interested in programming language implementations recently, so I'm working on an in-place WebAssembly interpreter<p>Currently passes all the WebAssembly 1.0 test suite minus the tests that require imports (around 9) - should have those ones fixed this week<p><a href="https://github.com/csjh/wasm-interpreter">https://github.com/csjh/wasm-interpreter</a></p>
]]></description><pubDate>Mon, 28 Oct 2024 14:28:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=41971358</link><dc:creator>csjh</dc:creator><comments>https://news.ycombinator.com/item?id=41971358</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41971358</guid></item><item><title><![CDATA[New comment by csjh in "WebP: The WebPage Compression Format"]]></title><description><![CDATA[
<p>I think the most surprising part here is the gzipped-base64'd-compressed data almost entirely removes the base64 overhead.</p>
]]></description><pubDate>Sat, 07 Sep 2024 19:16:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=41475797</link><dc:creator>csjh</dc:creator><comments>https://news.ycombinator.com/item?id=41475797</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41475797</guid></item><item><title><![CDATA[New comment by csjh in "Ask HN: What are you working on (August 2024)?"]]></title><description><![CDATA[
<p>I'm working on a serialization format, somewhat based on apache arrow but row-based. Includes end to end typescript type safety, and significantly faster than JSON in serialization and deserialization. Seems to do fairly well in the native version I threw together, but more of a javascript/typescript operation for now.<p><a href="https://github.com/csjh/pest">https://github.com/csjh/pest</a></p>
]]></description><pubDate>Sun, 25 Aug 2024 02:02:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=41343701</link><dc:creator>csjh</dc:creator><comments>https://news.ycombinator.com/item?id=41343701</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41343701</guid></item></channel></rss>