<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: hlude</title><link>https://news.ycombinator.com/user?id=hlude</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sat, 13 Jun 2026 06:27:42 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=hlude" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by hlude in "Show HN: Vivix – See inside JavaScript as it executes (open source)"]]></title><description><![CDATA[
<p>Thanks! Not yet, the hard part isn't reading the code, it's simulating how it runs. That logic is built specifically around JavaScript such as closures, async/await, the event loop, so another language means a new interpreter, not just a new parser. Python would be the most natural next step though</p>
]]></description><pubDate>Wed, 03 Jun 2026 16:17:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=48386051</link><dc:creator>hlude</dc:creator><comments>https://news.ycombinator.com/item?id=48386051</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48386051</guid></item><item><title><![CDATA[New comment by hlude in "Show HN: Vivix – See inside JavaScript as it executes (open source)"]]></title><description><![CDATA[
<p>I built this because I needed to see what the JavaScript engine was physically doing how the call stack fills, how the heap mutates, what actually happens when await suspends a function. Existing tools showed me the logical flow but not the physical state.<p>How it works technically:<p>- Acorn parses code into an AST client-side<p>- A custom interpreter runs in a Web Worker off the main thread, with a sync  fallback for environments without Worker support<p>- The worker produces a flat immutable array of step snapshots<p>- Svelte 5 $state.raw: scrubbing the timeline is a constant-time array index swap<p>- GSAP animates only what changed between snapshots<p>Result: 60fps stepping through call stack, heap mutations and async/await simultaneously. 12 modules plus free-form mode. MIT licensed. Code runs entirely client-side your source never leaves the browser.<p>GitHub: <a href="https://github.com/HenryOnilude/vivix" rel="nofollow">https://github.com/HenryOnilude/vivix</a> (MIT, 490 tests)<p>Known limitations: 500-step cap to prevent infinite loops, flat scope model for let/const inside blocks.</p>
]]></description><pubDate>Wed, 03 Jun 2026 14:34:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=48384694</link><dc:creator>hlude</dc:creator><comments>https://news.ycombinator.com/item?id=48384694</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48384694</guid></item><item><title><![CDATA[New comment by hlude in "Show HN: Vivix – See inside JavaScript as it executes (open source)"]]></title><description><![CDATA[
<p>Philip Roberts' JSConf talk is one of the best technical explainers I've ever heard, it was a direct inspiration for the async module specifically. The main gap Vivix fills is async/await, that talk predates modern async patterns by about a decade. Curious whether the guided modules or freeform editor would be more useful.</p>
]]></description><pubDate>Wed, 03 Jun 2026 14:05:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=48384302</link><dc:creator>hlude</dc:creator><comments>https://news.ycombinator.com/item?id=48384302</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48384302</guid></item><item><title><![CDATA[New comment by hlude in "Show HN: Vivix – See inside JavaScript as it executes (open source)"]]></title><description><![CDATA[
<p>Not currently, Vivix is focused on helping developers and learners understand JavaScript execution at the instruction level: call stack, heap, async/await and more. Visualizing coding-agent output would be interesting though</p>
]]></description><pubDate>Wed, 03 Jun 2026 11:12:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=48382438</link><dc:creator>hlude</dc:creator><comments>https://news.ycombinator.com/item?id=48382438</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48382438</guid></item><item><title><![CDATA[Show HN: Vivix – See inside JavaScript as it executes (open source)]]></title><description><![CDATA[
<p>Article URL: <a href="https://vivix.dev/">https://vivix.dev/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=48381956">https://news.ycombinator.com/item?id=48381956</a></p>
<p>Points: 4</p>
<p># Comments: 7</p>
]]></description><pubDate>Wed, 03 Jun 2026 09:51:08 +0000</pubDate><link>https://vivix.dev/</link><dc:creator>hlude</dc:creator><comments>https://news.ycombinator.com/item?id=48381956</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48381956</guid></item><item><title><![CDATA[New comment by hlude in "Why Janet? (2023)"]]></title><description><![CDATA[
<p>The shell DSL is what made me want to try Janet</p>
]]></description><pubDate>Tue, 02 Jun 2026 13:50:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=48370255</link><dc:creator>hlude</dc:creator><comments>https://news.ycombinator.com/item?id=48370255</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48370255</guid></item></channel></rss>