<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: thechao</title><link>https://news.ycombinator.com/user?id=thechao</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Mon, 07 Sep 2026 14:38:44 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=thechao" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by thechao in "Mathematics in the age of AI"]]></title><description><![CDATA[
<p>I hope I'm remembering this right: a mathematician claims to have a proof for the ABC conjecture, but can't conceive any other mathematician it's right — it's "too weird", so the proof is rejected?</p>
]]></description><pubDate>Wed, 19 Aug 2026 23:04:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=49368301</link><dc:creator>thechao</dc:creator><comments>https://news.ycombinator.com/item?id=49368301</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49368301</guid></item><item><title><![CDATA[New comment by thechao in "Show HN: Wyzer Programming Language"]]></title><description><![CDATA[
<p>> Wyzer supports standard if/else, while, and for loops. Note that loops don't need parentheses around the condition.<p>But <i>why</i>!? You know what'd be cool? If we started supporting control statements that were a bit more sophisticated!<p>```
do
{
}
while (c)
{
  if (x) break foo;
}
else
{
case foo : ...;
default  : ...;
}
```</p>
]]></description><pubDate>Fri, 07 Aug 2026 16:08:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=49212591</link><dc:creator>thechao</dc:creator><comments>https://news.ycombinator.com/item?id=49212591</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49212591</guid></item><item><title><![CDATA[New comment by thechao in "AI psychosis is the new leadership blind spot"]]></title><description><![CDATA[
<p>> Models are excellent at code<p>Models are infinitely willing to code. The code they produce makes me want to pour one out for Knuth.</p>
]]></description><pubDate>Fri, 07 Aug 2026 15:40:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=49212157</link><dc:creator>thechao</dc:creator><comments>https://news.ycombinator.com/item?id=49212157</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49212157</guid></item><item><title><![CDATA[New comment by thechao in "Why Do Fewer Renters Expect to Move?"]]></title><description><![CDATA[
<p>Housing values skyrocketed due to low interest rates. The prices are sticky and won't correct just because mortgage rates have gone up. That means no one can move. What we need is a large number of small houses (or owner owned multitenants) and a population willing to move into them.</p>
]]></description><pubDate>Thu, 06 Aug 2026 13:49:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=49196683</link><dc:creator>thechao</dc:creator><comments>https://news.ycombinator.com/item?id=49196683</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49196683</guid></item><item><title><![CDATA[New comment by thechao in "Why is everyone trying to build a solid-state battery?"]]></title><description><![CDATA[
<p>Gasoline has 10x the energy (MJ/Kg) than TNT, but it's not a "bomb". Being a "bomb" is about energy release <i>rate</i>. A battery is still controlled by its chemistry.</p>
]]></description><pubDate>Thu, 30 Jul 2026 14:10:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=49110296</link><dc:creator>thechao</dc:creator><comments>https://news.ycombinator.com/item?id=49110296</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49110296</guid></item><item><title><![CDATA[New comment by thechao in "AI companies are shredding rare books"]]></title><description><![CDATA[
<p>Which book that was rare was destroyed? I'm interested to know a few titles.</p>
]]></description><pubDate>Mon, 27 Jul 2026 12:45:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=49068876</link><dc:creator>thechao</dc:creator><comments>https://news.ycombinator.com/item?id=49068876</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49068876</guid></item><item><title><![CDATA[New comment by thechao in "Writing by hand is good for your brain"]]></title><description><![CDATA[
<p>Anathem is the best Stephenson book; The Algebraist is the best Iain Banks. There's enough of us to fill a good sized van!</p>
]]></description><pubDate>Thu, 23 Jul 2026 16:25:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=49024222</link><dc:creator>thechao</dc:creator><comments>https://news.ycombinator.com/item?id=49024222</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49024222</guid></item><item><title><![CDATA[New comment by thechao in "Software rendering in 500 lines of bare C++"]]></title><description><![CDATA[
<p>Sorry I was so terse! Let's ignore guard band, for now. Our rasterization surface is a rectangle. We don't need to "geometrically clip" a triangle to the rectangle's surface. Instead, we just walk the surface of the rectangle and ask two questions: (1) does the triangle capture this (sub)sample; and, (2) what's the interpolated value of the attributes at this (sub)sample. In practice, for software rasterizers, we're working on tiny subrectangles (the tile), e.g., 4x4 or 2x8, whatever. So, we can be a little "inefficient" with our walking with respect to the edge testing for interiority. (This is roughly how HW works at the 2x2 level, as well.) Because the (sub)sample is "pulling" the attribute, we don't need to geometrically "clip" the triangle to the tile: the tile's (x,y) subsamples do that "for free".<p>On the flip side, if a triangle is 'really big' we need a guard band to either reject or subdivide triangles. The first one is fairly cheap -- we're throwing away the triangle! -- the second one is a better user experience, but requires synthesizing primitives. (The worst case is that a single triangle becomes 5 triangles, I think.) Each of those triangles needs its Z and 1/Z calculated in fixed precision. The precision of that fixed precision (though) can be clamped to the local tile; so, even though the global precision might need to be 25.25 (or whatever), the tile-local precision is only 4.9 (or whatever), with an intermediate 24.24 that can be handled with a float-float patch-up. The computation should all occur in the triangle's barycentric space: that means you need the inverted barycentric mapping to invert the guard band into the triangle's barycentric space. You do that because it lets you control the fixed point calculations better. (You can leave off the inverted determinant multiplication until the last moment.)<p>When I say "deferred attribute synthesis" I mean that we don't calculate attributes in the vertex shader. Instead, we calculate the barycentric, Z, and 1/Z values and pass those along. When we fire up the tile walker for the triangle (in general we only need 1-3 tiles), we calculate the attributes "on the fly, as they're used" and then let the compiler do CSE to fold down the replicated constructions.</p>
]]></description><pubDate>Thu, 23 Jul 2026 16:08:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=49023932</link><dc:creator>thechao</dc:creator><comments>https://news.ycombinator.com/item?id=49023932</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49023932</guid></item><item><title><![CDATA[New comment by thechao in "Software rendering in 500 lines of bare C++"]]></title><description><![CDATA[
<p>You only need to clip triangles is you're worried about attribute interpolation for very large triangles. There's two ways to handle this: (1) discard (fast but not a great user experience); or, (2) primitive synthesis. Just frustum clipping is enabled by point picking in the local tile. Primitive synthesis requires some FP kung fu; but, is easiest done in barycentric space against a reverse transformed clipping rectangle. This lets you carefully control clip rounding error using either doubles or (better) fixed point. Abrash likes to use integer fixed point, but that is historical — modern fixed point can be handled with careful control of the fp unit in the mantissa. The major issue is regenerating the Z and the 1/Z values for the new vertices of the synthesized primitives. Everything else should flow down the pipe naturally, assuming a deferred attribute synthesis rasterizer.<p>There are examples in the open source version of my rasterizer: OpenSWR.org.</p>
]]></description><pubDate>Thu, 23 Jul 2026 15:26:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=49023128</link><dc:creator>thechao</dc:creator><comments>https://news.ycombinator.com/item?id=49023128</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49023128</guid></item><item><title><![CDATA[New comment by thechao in "Terrence Tao's ChatGPT Conversation about the Jacobian Conjecture Counterexample"]]></title><description><![CDATA[
<p>I want to be able to take a conversation and ask for subconversations as red pen annotations "on the side". The linear nature of the context tends to frustrate this.</p>
]]></description><pubDate>Wed, 22 Jul 2026 18:43:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=49011484</link><dc:creator>thechao</dc:creator><comments>https://news.ycombinator.com/item?id=49011484</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49011484</guid></item><item><title><![CDATA[New comment by thechao in "Terrence Tao's ChatGPT Conversation about the Jacobian Conjecture Counterexample"]]></title><description><![CDATA[
<p>I'm no intelligence researcher or philosopher; but, I think LLMs make us confront the (IMO, now clear) distinction between cleverness (intuition), reasoning (rational argument), and consciousness. I suspect that we think of "intelligence" as either of the first two welded to the latter. In that vein, I'd say that consciousness may be just another emotion: happiness, sadness, egoness.</p>
]]></description><pubDate>Wed, 22 Jul 2026 18:36:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=49011370</link><dc:creator>thechao</dc:creator><comments>https://news.ycombinator.com/item?id=49011370</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49011370</guid></item><item><title><![CDATA[New comment by thechao in "What Emily Bender meant by "stochastic parrots""]]></title><description><![CDATA[
<p>It's around hour 20 of trying to breath that I start to really think the Goldfish has an edge on me.</p>
]]></description><pubDate>Mon, 06 Jul 2026 20:31:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=48810114</link><dc:creator>thechao</dc:creator><comments>https://news.ycombinator.com/item?id=48810114</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48810114</guid></item><item><title><![CDATA[New comment by thechao in "Flock cameras track more than your license plate, and they're spreading fast"]]></title><description><![CDATA[
<p>Races are virtually uncompetitive; it means politicians only need to pander to the 40% bloc of the 10–20% of voters that show up in the primary. Once elected, the chance of losing their office is nearly 0. Gerrymandering absolutely reduces effective voting power. That's the whole point.</p>
]]></description><pubDate>Sun, 28 Jun 2026 18:30:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=48710064</link><dc:creator>thechao</dc:creator><comments>https://news.ycombinator.com/item?id=48710064</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48710064</guid></item><item><title><![CDATA[New comment by thechao in "Flock cameras track more than your license plate, and they're spreading fast"]]></title><description><![CDATA[
<p>This is why gerrymandering should be unconstitutional, and why corporations should have their rights explicitly curtailed: they're not citizens or the people.</p>
]]></description><pubDate>Sun, 28 Jun 2026 16:44:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=48709017</link><dc:creator>thechao</dc:creator><comments>https://news.ycombinator.com/item?id=48709017</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48709017</guid></item><item><title><![CDATA[New comment by thechao in "Flock cameras track more than your license plate, and they're spreading fast"]]></title><description><![CDATA[
<p>I have strong expectations, in fact; I need the state to respect that.</p>
]]></description><pubDate>Sun, 28 Jun 2026 16:42:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=48709004</link><dc:creator>thechao</dc:creator><comments>https://news.ycombinator.com/item?id=48709004</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48709004</guid></item><item><title><![CDATA[New comment by thechao in "Never Give Them Your Face"]]></title><description><![CDATA[
<p>I've been able to age restrict websites with my childrens' devices for years? Privately, on the device. The website side is pure moatism.</p>
]]></description><pubDate>Mon, 22 Jun 2026 15:06:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=48631220</link><dc:creator>thechao</dc:creator><comments>https://news.ycombinator.com/item?id=48631220</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48631220</guid></item><item><title><![CDATA[New comment by thechao in "Show HN: Gerrymandle - Daily puzzle game where you redraw electoral districts"]]></title><description><![CDATA[
<p>I know your threw an "etc" in there; but, all fingers point to my home state: Texas. We need two legislative changes at the federal level: (1) uncap the house from 435 to at least cube-root or (better) max 500k; and, (2) you can't be sworn in unless your district was from an ICRC or statistically equivalent object.</p>
]]></description><pubDate>Thu, 18 Jun 2026 19:24:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=48590266</link><dc:creator>thechao</dc:creator><comments>https://news.ycombinator.com/item?id=48590266</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48590266</guid></item><item><title><![CDATA[New comment by thechao in "Image Compression"]]></title><description><![CDATA[
<p>I've had a lot of success just LZ4ing a bitmap.</p>
]]></description><pubDate>Wed, 17 Jun 2026 22:23:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=48577790</link><dc:creator>thechao</dc:creator><comments>https://news.ycombinator.com/item?id=48577790</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48577790</guid></item><item><title><![CDATA[New comment by thechao in "Copper transport drug restores memory and clears toxic Alzheimer's proteins"]]></title><description><![CDATA[
<p>I'm responding to a random comment: I was in molecular biology, but >20 years ago. Your article immediately presents as someone who's acquired reading expertise in a biological/medical subfield. Second, your initial survey presents as a "brittle x": AB is the proximal cause all by itself; but, it can also be the secondary cause from many vectors. Diseases like that are (essentially) impossible to explain to the public. Also, the biological principle function is a standard trope for "good for X in the short run, bad for the person in the long run".</p>
]]></description><pubDate>Tue, 16 Jun 2026 12:21:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=48554095</link><dc:creator>thechao</dc:creator><comments>https://news.ycombinator.com/item?id=48554095</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48554095</guid></item><item><title><![CDATA[New comment by thechao in "Swift at Apple: Migrating the TrueType hinting interpreter"]]></title><description><![CDATA[
<p>Its a set cover problem, and is NP-hard. 4100 of something probably runs nicely in your laptop in a reasonable amount of time.</p>
]]></description><pubDate>Sat, 13 Jun 2026 11:24:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=48516120</link><dc:creator>thechao</dc:creator><comments>https://news.ycombinator.com/item?id=48516120</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48516120</guid></item></channel></rss>