<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: qouteall</title><link>https://news.ycombinator.com/user?id=qouteall</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sun, 06 Sep 2026 00:41:00 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=qouteall" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[Lock-Free Deadlock]]></title><description><![CDATA[
<p>Article URL: <a href="https://qouteall.fun/qouteall-blog/2025/About%20circular%20reference#lock-free-deadlock">https://qouteall.fun/qouteall-blog/2025/About%20circular%20reference#lock-free-deadlock</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47648235">https://news.ycombinator.com/item?id=47648235</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Sun, 05 Apr 2026 11:15:54 +0000</pubDate><link>https://qouteall.fun/qouteall-blog/2025/About%20circular%20reference#lock-free-deadlock</link><dc:creator>qouteall</dc:creator><comments>https://news.ycombinator.com/item?id=47648235</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47648235</guid></item><item><title><![CDATA[Deadlock, Circular Reference and Halting]]></title><description><![CDATA[
<p>Article URL: <a href="https://qouteall.fun/qouteall-blog/2025/About%20circular%20reference">https://qouteall.fun/qouteall-blog/2025/About%20circular%20reference</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47561240">https://news.ycombinator.com/item?id=47561240</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Sun, 29 Mar 2026 08:03:58 +0000</pubDate><link>https://qouteall.fun/qouteall-blog/2025/About%20circular%20reference</link><dc:creator>qouteall</dc:creator><comments>https://news.ycombinator.com/item?id=47561240</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47561240</guid></item><item><title><![CDATA[New comment by qouteall in "A chatbot's worst enemy is page refresh"]]></title><description><![CDATA[
<p>It's probably due to server side rendering and rehydration. The rehydration use server side component state to override DOM state.</p>
]]></description><pubDate>Sat, 21 Feb 2026 05:11:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=47097714</link><dc:creator>qouteall</dc:creator><comments>https://news.ycombinator.com/item?id=47097714</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47097714</guid></item><item><title><![CDATA[New comment by qouteall in "Index, Count, Offset, Size"]]></title><description><![CDATA[
<p>With modern IDE and AI there is no need to save letters in identifier (unless too long). It should be "sizeInBytes" instead of "size". It should be "byteOffset" "elementOffset" instead of "offset".</p>
]]></description><pubDate>Sat, 21 Feb 2026 05:05:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=47097687</link><dc:creator>qouteall</dc:creator><comments>https://news.ycombinator.com/item?id=47097687</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47097687</guid></item><item><title><![CDATA[New comment by qouteall in "What functional programmers get wrong about systems"]]></title><description><![CDATA[
<p>Normally the database and message queue is decoupled from the backend service. This decoupling makes managing simpler and make cross-language things easier.<p>But if the type system need to cover all these components, then they start coupling again.<p>Coupling is not necessarily a bad thing as long as it gives good developer UX. If the database is tightly coupled with programming language, then it looks like ORM but better. And it probably can also reduce CRUD biolerplate or N+1 issue etc.<p>Related, there is SpacetimeDB that make backend run within database, and the backend code is highly coupled with SpacetimeDB's own API</p>
]]></description><pubDate>Tue, 10 Feb 2026 03:21:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=46954953</link><dc:creator>qouteall</dc:creator><comments>https://news.ycombinator.com/item?id=46954953</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46954953</guid></item><item><title><![CDATA[Anything Will Work (In AI)]]></title><description><![CDATA[
<p>Article URL: <a href="https://publish.obsidian.md/ueaj/Machine+Learning/Theory/Anything+WILL+work">https://publish.obsidian.md/ueaj/Machine+Learning/Theory/Anything+WILL+work</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=46654784">https://news.ycombinator.com/item?id=46654784</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Sat, 17 Jan 2026 02:41:53 +0000</pubDate><link>https://publish.obsidian.md/ueaj/Machine+Learning/Theory/Anything+WILL+work</link><dc:creator>qouteall</dc:creator><comments>https://news.ycombinator.com/item?id=46654784</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46654784</guid></item><item><title><![CDATA[New comment by qouteall in "What happened to WebAssembly"]]></title><description><![CDATA[
<p>WebAssembly standard design has considered binary size optimization. The format itself is quite compact. But porting native code to Wasm often brings many large existing libraries which contain a lot of code which makes the binary large.<p>The native ecosystem never payed attention to binary size optimization, but the JS ecosystem payed attention to code size in the very beginning.</p>
]]></description><pubDate>Fri, 09 Jan 2026 12:19:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=46553107</link><dc:creator>qouteall</dc:creator><comments>https://news.ycombinator.com/item?id=46553107</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46553107</guid></item><item><title><![CDATA[New comment by qouteall in "What happened to WebAssembly"]]></title><description><![CDATA[
<p>They originally used JS realm polyfill, which is not real JS realm. The polyfill has some security holes. Now they switched to Js interpreter in Wasm.<p><a href="https://www.figma.com/blog/an-update-on-plugin-security/" rel="nofollow">https://www.figma.com/blog/an-update-on-plugin-security/</a></p>
]]></description><pubDate>Fri, 09 Jan 2026 12:13:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=46553080</link><dc:creator>qouteall</dc:creator><comments>https://news.ycombinator.com/item?id=46553080</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46553080</guid></item><item><title><![CDATA[New comment by qouteall in "What happened to WebAssembly"]]></title><description><![CDATA[
<p>I've written about limitations of WebAssembly <a href="https://qouteall.fun/qouteall-blog/2025/WebAsembly%20Limitations" rel="nofollow">https://qouteall.fun/qouteall-blog/2025/WebAsembly%20Limitat...</a><p>WebAssembly still doesn't provide a way to release memory back to browser (unless using Wasm GC). The linear memory can only grow.<p>The Wasm GC limits memory layout and doesn't yet support multi-threading.<p>Wasm multithreading has many limitations. Such as cannot block on main thread, cannot share function table, etc. And web worker has "impedance mismatch" between native threads.<p>And tooling is also immature (debugging requires print debugging)</p>
]]></description><pubDate>Fri, 09 Jan 2026 12:09:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=46553050</link><dc:creator>qouteall</dc:creator><comments>https://news.ycombinator.com/item?id=46553050</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46553050</guid></item><item><title><![CDATA[New comment by qouteall in "TIL: Serde's borrowing can be treacherous"]]></title><description><![CDATA[
<p>One limitation of Rust macro is that it can only access code token, not actual type information.<p>When macro sees a type `X` macro can never be sure whether it's `&str` as Rust allows type alias. If `X` is not `&str` it may also be a struct that contains `&str`, still macro cannot know.<p>Wasm-bindgen workarounds this issue by generating "fake functions" then read and remove them in CLI:<p><a href="https://wasm-bindgen.github.io/wasm-bindgen/contributing/design/describe.html" rel="nofollow">https://wasm-bindgen.github.io/wasm-bindgen/contributing/des...</a><p>Zig comptime allows getting full type information. This is one advantage of Zig.</p>
]]></description><pubDate>Sat, 27 Dec 2025 08:09:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=46400111</link><dc:creator>qouteall</dc:creator><comments>https://news.ycombinator.com/item?id=46400111</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46400111</guid></item><item><title><![CDATA[New comment by qouteall in "More databases should be single-threaded"]]></title><description><![CDATA[
<p>The optimistic concurrency control that reads multiple shards cannot use simple CAS. It probably needs to do something like two-phase committing</p>
]]></description><pubDate>Sun, 21 Dec 2025 01:44:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=46341486</link><dc:creator>qouteall</dc:creator><comments>https://news.ycombinator.com/item?id=46341486</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46341486</guid></item><item><title><![CDATA[New comment by qouteall in "More databases should be single-threaded"]]></title><description><![CDATA[
<p>Thanks for reply.<p>So in my understanding:<p>- The transactions that only touch one shard is simple<p>- The transactions that read multiple shards but only write shard can use simple optimistic concurrency control<p>- The transactions that writes (and reads) multiple shards stay complex. Can be avoided by designing a smart sharding key. (hard to do if business requirement is complex)</p>
]]></description><pubDate>Sun, 21 Dec 2025 01:37:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=46341452</link><dc:creator>qouteall</dc:creator><comments>https://news.ycombinator.com/item?id=46341452</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46341452</guid></item><item><title><![CDATA[New comment by qouteall in "More databases should be single-threaded"]]></title><description><![CDATA[
<p>In real-world business requirements it often need to read some data then touch other data based on previous read result.<p>It violates the "every transaction can only be in one shard" constraint.<p>For a specific business requirement it's possible to design clever sharding to make transaction fit into one shard. However new business requirements can emerge and invalidate it.<p>"Every transaction can only be in one shard" only works for simple business logics.</p>
]]></description><pubDate>Sun, 21 Dec 2025 00:23:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=46341056</link><dc:creator>qouteall</dc:creator><comments>https://news.ycombinator.com/item?id=46341056</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46341056</guid></item><item><title><![CDATA[New comment by qouteall in "Rust and the Price of Ignoring Theory [video]"]]></title><description><![CDATA[
<p>This video criticizes Rust using perfect solution fallacy. Critizing a useful thing just because it's imperfect.<p><a href="https://en.wikipedia.org/wiki/Nirvana_fallacy" rel="nofollow">https://en.wikipedia.org/wiki/Nirvana_fallacy</a></p>
]]></description><pubDate>Sat, 20 Dec 2025 03:48:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=46333485</link><dc:creator>qouteall</dc:creator><comments>https://news.ycombinator.com/item?id=46333485</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46333485</guid></item><item><title><![CDATA[New comment by qouteall in "Cloudflare Is Down, Again"]]></title><description><![CDATA[
<p>We are in the down season.</p>
]]></description><pubDate>Fri, 19 Dec 2025 12:13:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=46324969</link><dc:creator>qouteall</dc:creator><comments>https://news.ycombinator.com/item?id=46324969</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46324969</guid></item><item><title><![CDATA[Lying Virtual Eyes]]></title><description><![CDATA[
<p>Article URL: <a href="https://surfingcomplexity.blog/2024/12/07/your-lying-virtual-eyes/">https://surfingcomplexity.blog/2024/12/07/your-lying-virtual-eyes/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=46324961">https://news.ycombinator.com/item?id=46324961</a></p>
<p>Points: 1</p>
<p># Comments: 0</p>
]]></description><pubDate>Fri, 19 Dec 2025 12:12:14 +0000</pubDate><link>https://surfingcomplexity.blog/2024/12/07/your-lying-virtual-eyes/</link><dc:creator>qouteall</dc:creator><comments>https://news.ycombinator.com/item?id=46324961</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46324961</guid></item><item><title><![CDATA[New comment by qouteall in "Slowness is a virtue"]]></title><description><![CDATA[
<p>There are two kinds of slowness. One is trying hard while getting no visible result. Another is procrastination. The article refers to the first</p>
]]></description><pubDate>Thu, 18 Dec 2025 11:27:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=46311408</link><dc:creator>qouteall</dc:creator><comments>https://news.ycombinator.com/item?id=46311408</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46311408</guid></item><item><title><![CDATA[Higher-Level Software Design Ideas]]></title><description><![CDATA[
<p>Article URL: <a href="https://qouteall.fun/qouteall-blog/2025/Higher-Level%20Design%20Patterns">https://qouteall.fun/qouteall-blog/2025/Higher-Level%20Design%20Patterns</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=46301611">https://news.ycombinator.com/item?id=46301611</a></p>
<p>Points: 1</p>
<p># Comments: 0</p>
]]></description><pubDate>Wed, 17 Dec 2025 13:15:56 +0000</pubDate><link>https://qouteall.fun/qouteall-blog/2025/Higher-Level%20Design%20Patterns</link><dc:creator>qouteall</dc:creator><comments>https://news.ycombinator.com/item?id=46301611</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46301611</guid></item><item><title><![CDATA[New comment by qouteall in "Common Rust Lifetime Misconceptions"]]></title><description><![CDATA[
<p>The better phrase is that "if it compiles, then many possible Heisenbugs vanish"<p><a href="https://qouteall.fun/qouteall-blog/2025/How%20to%20Avoid%20Fighting%20Rust%20Borrow%20Checker#the-yields-of-paying-rust-cost" rel="nofollow">https://qouteall.fun/qouteall-blog/2025/How%20to%20Avoid%20F...</a></p>
]]></description><pubDate>Mon, 15 Dec 2025 14:10:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=46274752</link><dc:creator>qouteall</dc:creator><comments>https://news.ycombinator.com/item?id=46274752</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46274752</guid></item><item><title><![CDATA[New comment by qouteall in "Common Rust Lifetime Misconceptions"]]></title><description><![CDATA[
<p>I want to add Contagious Borrow Issue <a href="https://qouteall.fun/qouteall-blog/2025/How%20to%20Avoid%20Fighting%20Rust%20Borrow%20Checker#contagious-borrow-issue" rel="nofollow">https://qouteall.fun/qouteall-blog/2025/How%20to%20Avoid%20F...</a><p>Contagious borrow issue is a common problem for beginners.</p>
]]></description><pubDate>Mon, 15 Dec 2025 14:09:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=46274734</link><dc:creator>qouteall</dc:creator><comments>https://news.ycombinator.com/item?id=46274734</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46274734</guid></item></channel></rss>