<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: delifue</title><link>https://news.ycombinator.com/user?id=delifue</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Wed, 28 Oct 2026 12:29:43 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=delifue" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by delifue in "Four Months of Zig"]]></title><description><![CDATA[
<p>The article says some Zig advantages but it's worth noting that all these advantages are tradeoffs.<p>Zig makes handling error easy but makes retaining error information hard. The result is that Zig developers either write more code than other languages to store diagnostic information, or just simply discard diagnostic information. The second makes it much harder to debug because the useful error information is discarded.<p>About the TigerStyle, it's worth noting that TigerBeetle doesn't even support variable-sized string type. You can store fixed-sized data, such as a string that's at most 32 bytes. What if the order information contains string longer than 32 bytes? Then you need to store that string in antoher database. TigerBeetle is not a general database. Static memory allocation doesn't fit most applicaitons.<p>The fallable allocation is useful in embedded system and OS development etc., but useless in common application programming, because OOM results in crash rather than failed allocaiton.</p>
]]></description><pubDate>Wed, 28 Oct 2026 02:24:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=50268628</link><dc:creator>delifue</dc:creator><comments>https://news.ycombinator.com/item?id=50268628</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50268628</guid></item><item><title><![CDATA[New comment by delifue in "Coding Is Dead. Programming Is Not"]]></title><description><![CDATA[
<p>Article likely AI-generated.</p>
]]></description><pubDate>Mon, 26 Oct 2026 02:41:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=50238448</link><dc:creator>delifue</dc:creator><comments>https://news.ycombinator.com/item?id=50238448</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50238448</guid></item><item><title><![CDATA[New comment by delifue in "There's never been a better time to go into math (by: 3blue1brown) [video]"]]></title><description><![CDATA[
<p>AI will be much more powerful than ramanujan. ramanujan is just one person with limited energy, but many instances of AI agent can work in parallel and attack all open problems at once</p>
]]></description><pubDate>Mon, 19 Oct 2026 07:39:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=50149488</link><dc:creator>delifue</dc:creator><comments>https://news.ycombinator.com/item?id=50149488</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50149488</guid></item><item><title><![CDATA[New comment by delifue in "Non-Determinism Doesn't Matter"]]></title><description><![CDATA[
<p>When people refute the idea that "LLM is the new compiler from natural language to code" the common reason is that LLM is non-deterministic but compiler is deterministic.<p>But the determinism isn't the real distinction. LLM inference can be made deterministic (temparaute zero, etc.). And multi-threaded compiler can be non-dterministic.<p>And human developers are also non-deterministic. There is always the nondeterminism even before AI.<p>I think the real difference is how leaky the abstraction is. If you just need to understand language instead of compiler internal to write correct code, the compiler is non-leaky abstrction. If you rely on compiler to do auto SIMD optimization, and have to do hacks to trigger the optimization, compiler is leaky abstraction.<p>For AI, if you don't ever need to read the code and AI writes perfectly bug-free program that perfectly follows instruction, then AI is a non-leaky abstraction, but that's not the case for now. To make code maintainable and debuggable you still need to read the code if the project is complex enough.</p>
]]></description><pubDate>Fri, 16 Oct 2026 02:29:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=50113193</link><dc:creator>delifue</dc:creator><comments>https://news.ycombinator.com/item?id=50113193</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50113193</guid></item><item><title><![CDATA[New comment by delifue in "C for Rust programmers"]]></title><description><![CDATA[
<p>Overcommit is very common now, including desktop, mobile and server, even in contianers. Checking malloc returning null only prevents OOM in places like embedded.</p>
]]></description><pubDate>Sun, 11 Oct 2026 11:21:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=50041990</link><dc:creator>delifue</dc:creator><comments>https://news.ycombinator.com/item?id=50041990</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50041990</guid></item><item><title><![CDATA[New comment by delifue in "C for Rust programmers"]]></title><description><![CDATA[
<p>Yes, same applies to Rust</p>
]]></description><pubDate>Sun, 11 Oct 2026 11:18:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=50041967</link><dc:creator>delifue</dc:creator><comments>https://news.ycombinator.com/item?id=50041967</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50041967</guid></item><item><title><![CDATA[New comment by delifue in "C for Rust programmers"]]></title><description><![CDATA[
<p>There is a nuanced mistake in<p>> If your machine runs out of memory, reversed[i] will cause a segfault upon being accessed. In order to avoid unhelpful segfaults, the program should check for a null pointer and gracefully exit if one is found<p>If overcommit is enabled (often by default), malloc will not return null when machine runs out of memory. malloc will still return null if input argument is invalid (e.g. too large).</p>
]]></description><pubDate>Sun, 11 Oct 2026 02:50:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=50039374</link><dc:creator>delifue</dc:creator><comments>https://news.ycombinator.com/item?id=50039374</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50039374</guid></item><item><title><![CDATA[New comment by delifue in "Software occlusion culling in Block Game"]]></title><description><![CDATA[
<p>The culling that relies on previous frame has artifact when one object is newly visible (it will be not rendered in the first frame that it becomes visible).</p>
]]></description><pubDate>Wed, 30 Sep 2026 06:59:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=49905390</link><dc:creator>delifue</dc:creator><comments>https://news.ycombinator.com/item?id=49905390</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49905390</guid></item><item><title><![CDATA[New comment by delifue in "Go Concurrency Distilled"]]></title><description><![CDATA[
<p>One reason it's easy to leak goroutine is that channel producer blocks waiting on consumer, once channel consumer exits the producer goroutine leaks. Go doesn't allow consumer to close the channel.<p>In Rust when receivers all drop, the producer will error instead of blocking, so Rust is better in this aspect.</p>
]]></description><pubDate>Sun, 27 Sep 2026 12:29:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=49866103</link><dc:creator>delifue</dc:creator><comments>https://news.ycombinator.com/item?id=49866103</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49866103</guid></item><item><title><![CDATA[New comment by delifue in "What Zig felt like, coming from Rust"]]></title><description><![CDATA[
<p>Rust supports arena allocator <a href="https://docs.rs/bumpalo/latest/bumpalo/" rel="nofollow">https://docs.rs/bumpalo/latest/bumpalo/</a> and the dropping plays well with arena as long as you use bumpalo::boxed::Box</p>
]]></description><pubDate>Sun, 20 Sep 2026 12:01:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=49774945</link><dc:creator>delifue</dc:creator><comments>https://news.ycombinator.com/item?id=49774945</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49774945</guid></item><item><title><![CDATA[New comment by delifue in "Bend – A language that blocks AI mistakes via proof, on CPU and GPU"]]></title><description><![CDATA[
<p>I roughly check it. The array looks like tree in type defintion, where indexing is O(log n), but the real implementation seem to be real array with O(1)<p>The Type thing is affine type similar to Rust ownership. The array in-place mutation relies on affinity to avoid deep copying. The Data thing is reference-counted if shared, like Rust Arc. The parallel invocation is similar to Rust's rayon::join .<p>About the proof system, I am not familar with formal verification, but it's obvious that the translation from business requirement to proof target still requires coding and can contain bugs. Even if proof is fully correct, if proof target deviates to business requirement then it still have a bug</p>
]]></description><pubDate>Fri, 18 Sep 2026 14:22:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=49754838</link><dc:creator>delifue</dc:creator><comments>https://news.ycombinator.com/item?id=49754838</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49754838</guid></item><item><title><![CDATA[New comment by delifue in "Malicious Rust crate Arrayref runs a build-time payload"]]></title><description><![CDATA[
<p>It's not like leftpad. It uses segmented array and interally does synchronization, not a simple wrapper to Vec. The append only takes immutable borrow. Its capability cannot be replaced by RefCell because RefCell doesn't allow appending while keeping borrow.</p>
]]></description><pubDate>Mon, 31 Aug 2026 08:45:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=49507189</link><dc:creator>delifue</dc:creator><comments>https://news.ycombinator.com/item?id=49507189</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49507189</guid></item><item><title><![CDATA[New comment by delifue in "How I use LLMs to learn complex topics"]]></title><description><![CDATA[
<p>The author says it's "100% accurate and free of hallucinations" but I am sceptical. Although I don't know much about chip production, when I ask LLMs about advanced topics like memory order LLMs tend to hallucinate more than entry-level questions. But the point is that I didn't found that LLM hallucinated before knowing it deeper. It's possible that LLM hallucinates but you don't find out because you are just learning it.</p>
]]></description><pubDate>Mon, 10 Aug 2026 01:48:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=49238333</link><dc:creator>delifue</dc:creator><comments>https://news.ycombinator.com/item?id=49238333</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49238333</guid></item><item><title><![CDATA[New comment by delifue in "Static Allocation for Compilers"]]></title><description><![CDATA[
<p>How does static allocation avoid wasting memory?<p>Static memory allocation requires hardcoding an upper limit of size of everything. For example, if you limit each string to be at most 256 bytes, then a string with only 10 bytes will waste 246 bytes of memory.<p>If you limit string length to 32 bytes it will waste fewer memory but when a string longer than 32 bytes comes it cannot handle.</p>
]]></description><pubDate>Wed, 24 Dec 2025 07:52:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=46373425</link><dc:creator>delifue</dc:creator><comments>https://news.ycombinator.com/item?id=46373425</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46373425</guid></item><item><title><![CDATA[New comment by delifue in "Fifty problems with standard web APIs in 2025"]]></title><description><![CDATA[
<p>Unfortunately web API doesn't yet allow drawing multi-line text in canvas. To draw multi-line text in canvas you need a layouting library</p>
]]></description><pubDate>Wed, 24 Dec 2025 01:58:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=46371654</link><dc:creator>delifue</dc:creator><comments>https://news.ycombinator.com/item?id=46371654</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46371654</guid></item><item><title><![CDATA[New comment by delifue in "Fifty problems with standard web APIs in 2025"]]></title><description><![CDATA[
<p>Many problems in article are specific to old versions of iOS which is only in old versions of iPhone. Most old iPhone users are not potential paying customers. iOS need to be supported but old versions of iOS don't.</p>
]]></description><pubDate>Wed, 24 Dec 2025 01:55:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=46371634</link><dc:creator>delifue</dc:creator><comments>https://news.ycombinator.com/item?id=46371634</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46371634</guid></item><item><title><![CDATA[New comment by delifue in "Please just try HTMX"]]></title><description><![CDATA[
<p>I head that Jane Street use OCaml and said similar thing. Although there are few OCaml developers they are overall better so hiring is easier</p>
]]></description><pubDate>Tue, 23 Dec 2025 03:42:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=46362202</link><dc:creator>delifue</dc:creator><comments>https://news.ycombinator.com/item?id=46362202</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46362202</guid></item><item><title><![CDATA[New comment by delifue in "You’re not burnt out, you’re existentially starving"]]></title><description><![CDATA[
<p>Key sentence<p>Because you weren’t suffering from too much work, you were suffering from too little truly important work.</p>
]]></description><pubDate>Tue, 23 Dec 2025 03:01:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=46361946</link><dc:creator>delifue</dc:creator><comments>https://news.ycombinator.com/item?id=46361946</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46361946</guid></item><item><title><![CDATA[New comment by delifue in "Rue: Higher level than Rust, lower level than Go"]]></title><description><![CDATA[
<p>Not being able to store mutable ref in other type reduces expressiveness. The doc already mentions it cannot allow Iterator that doesn't consume container<p><a href="https://github.com/rue-language/rue/blob/trunk/docs/designs/adr-015-mutable-value-semantics.md#patterns-that-change" rel="nofollow">https://github.com/rue-language/rue/blob/trunk/docs/designs/...</a><p>No silver bullet again</p>
]]></description><pubDate>Tue, 23 Dec 2025 02:00:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=46361579</link><dc:creator>delifue</dc:creator><comments>https://news.ycombinator.com/item?id=46361579</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46361579</guid></item><item><title><![CDATA[New comment by delifue in "FPGAs Need a New Future"]]></title><description><![CDATA[
<p>Modern large productivity software (including IDE) are often "fragile".<p>Sometimes some configuration is wrong and it behave wrongly but you don't know which configuration.<p>Sometimes it relies on another software installed on system and if you installed the incompatible version it malfunctions without telling you incompatibility.<p>Sometimes the IDE itself has random bugs.<p>A lot of time is spent workarounding IDE issues</p>
]]></description><pubDate>Tue, 23 Dec 2025 01:48:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=46361501</link><dc:creator>delifue</dc:creator><comments>https://news.ycombinator.com/item?id=46361501</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46361501</guid></item></channel></rss>