<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: ZihangZ</title><link>https://news.ycombinator.com/user?id=ZihangZ</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Mon, 27 Apr 2026 10:09:22 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=ZihangZ" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by ZihangZ in "Statecharts: hierarchical state machines"]]></title><description><![CDATA[
<p>Small caution from using agents here: the useful chart is the one generated from code, tests, or traces, not the one the model draws from its own explanation.<p>I've had models produce very reasonable Mermaid diagrams that matched the intended design but not the actual program. It felt helpful until I realized I was reviewing the plan twice and the implementation zero times.<p>For PRs I'd rather render the diagram from the executable state machine itself — at least then drift in the chart means drift in behavior, and you can't review one without the other.</p>
]]></description><pubDate>Sun, 26 Apr 2026 12:47:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=47909897</link><dc:creator>ZihangZ</dc:creator><comments>https://news.ycombinator.com/item?id=47909897</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47909897</guid></item><item><title><![CDATA[New comment by ZihangZ in "Using coding assistance tools to revive projects you never were going to finish"]]></title><description><![CDATA[
<p>+1 to the CI/isolation point. That is the part that makes these setups work for me too: make the failure cheap to  reproduce, make stderr visible, make the agent rerun the same command after the patch. A lot of bad agent behavior is really just "it never got a clean signal".<p>The part that still bites me is across sessions. A tight loop fixes this run, but next week the agent can walk into the same rake again: same wrong import path, same misuse of an internal API, same CI-only dependency issue. After patching the same class of failure a few times, I started writing those down outside the chat context so the next run sees the failure pattern before it guesses.</p>
]]></description><pubDate>Sun, 26 Apr 2026 12:16:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=47909726</link><dc:creator>ZihangZ</dc:creator><comments>https://news.ycombinator.com/item?id=47909726</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47909726</guid></item><item><title><![CDATA[New comment by ZihangZ in "My audio interface has SSH enabled by default"]]></title><description><![CDATA[
<p>Yeah, LAN is the line for me. USB-side sshd is a weird dev leftover; LAN means it’s now in the home threat model.</p>
]]></description><pubDate>Sat, 25 Apr 2026 06:11:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=47899120</link><dc:creator>ZihangZ</dc:creator><comments>https://news.ycombinator.com/item?id=47899120</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47899120</guid></item><item><title><![CDATA[New comment by ZihangZ in "FusionCore: ROS 2 sensor fusion (IMU and GPS and encoders)"]]></title><description><![CDATA[
<p>Built a ROS 2 cycling helmet. IMU + GPS, but we didn't fuse them, on purpose.<p>Speed is just haversine between GPS fixes. IMU only does turn detection and crash/fall. No EKF. Under bridges or urban canyons I'd rather have speed go stale and drop to zero after a few seconds than have a filter keep extrapolating from IMU bias and tell the rider they're still doing 20 km/h.<p>Other thing: safety stays below ROS. Crash/fall runs on the MCU next to the IMU; ROS just subscribes to /safety/event. Pi reboots, helmet still alarms.<p>How does FusionCore handle long GPS outages: gate the output, or keep predicting?</p>
]]></description><pubDate>Sat, 25 Apr 2026 05:58:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=47899061</link><dc:creator>ZihangZ</dc:creator><comments>https://news.ycombinator.com/item?id=47899061</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47899061</guid></item><item><title><![CDATA[New comment by ZihangZ in "My audio interface has SSH enabled by default"]]></title><description><![CDATA[
<p>Yeah, this is pretty common once a device has any real DSP in it. There's usually some stripped-down Linux on an ARM SoC underneath, and the vendor BSP just happens to ship with sshd on.<p>Not necessarily malice, more like nobody on the audio side really owns the rootfs.<p>The big question is whether it's only listening on the USB-side network, or on the actual LAN. First one is annoying. Second one would actually bother me.</p>
]]></description><pubDate>Sat, 25 Apr 2026 04:49:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=47898729</link><dc:creator>ZihangZ</dc:creator><comments>https://news.ycombinator.com/item?id=47898729</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47898729</guid></item><item><title><![CDATA[New comment by ZihangZ in "I am building a cloud"]]></title><description><![CDATA[
<p>I don't think SSH vs OpenTofu is the core issue here.<p>For agents, declarative plans are still valuable because they are reviewable. The interesting question is whether exe.dev changes the primitive: resource pools for many isolated VM-like processes, or just nicer VPS provisioning.</p>
]]></description><pubDate>Thu, 23 Apr 2026 06:40:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=47872812</link><dc:creator>ZihangZ</dc:creator><comments>https://news.ycombinator.com/item?id=47872812</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47872812</guid></item><item><title><![CDATA[New comment by ZihangZ in "I’m spending months coding the old way"]]></title><description><![CDATA[
<p>This matches my experience. When I write the boring glue code myself, I get a map of the project in my head.<p>When I let an agent write too much of the structure, the code may work, but a week later every small change starts with "where did it put that?"</p>
]]></description><pubDate>Sat, 18 Apr 2026 10:50:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=47814854</link><dc:creator>ZihangZ</dc:creator><comments>https://news.ycombinator.com/item?id=47814854</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47814854</guid></item><item><title><![CDATA[New comment by ZihangZ in "Show HN: SPICE simulation → oscilloscope → verification with Claude Code"]]></title><description><![CDATA[
<p>This matches what I've seen too — the hallucination gets much worse when the loop has no external verifier. "Does this board work?" has no ground truth inside the model, so it defaults to optimistic narration.<p>What OP is doing here is actually the mitigation: SPICE + scope readout is a verifier the model can't talk its way past. The netlist either simulates or it doesn't, the waveform either matches or it doesn't. That closes the feedback loop the same way tests close it for code.<p>The failure mode that remains, in my experience, is a layer down: when the verifier itself errors out (SPICE convergence failure, missing model card, wrong .include path), the agent burns turns "reasoning" about environment errors it has seen a hundred times.That's where most of the token budget actually goes, not the design work.</p>
]]></description><pubDate>Fri, 17 Apr 2026 12:09:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=47805025</link><dc:creator>ZihangZ</dc:creator><comments>https://news.ycombinator.com/item?id=47805025</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47805025</guid></item></channel></rss>