<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: a_e_k</title><link>https://news.ycombinator.com/user?id=a_e_k</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Tue, 18 Aug 2026 11:31:01 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=a_e_k" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by a_e_k in "Qwen 3.8 27B is excellent, but it defaults to overthinking things"]]></title><description><![CDATA[
<p>Like the old proverb: "The marvel is not that the bear dances well, but that the bear dances at all."</p>
]]></description><pubDate>Mon, 17 Aug 2026 05:46:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=49326941</link><dc:creator>a_e_k</dc:creator><comments>https://news.ycombinator.com/item?id=49326941</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49326941</guid></item><item><title><![CDATA[New comment by a_e_k in "old.reddit.com Now Requires a Login"]]></title><description><![CDATA[
<p>Earlier today I started getting a "Get the app to keep using Reddit" popup when browsing while logged out on my phone.  (I prefer to use Firefox Android exclusively in private mode to reduce the temptation to doom scroll and to have the added friction of manually logging in when commenting on any site.)<p>Unlike the prior nag screens, this one was modal, blocked any scrolling, and had no way to close it.  It seemed to pop up about 15 seconds after I first start scrolling any page - either a list of threads on a subreddit, or a thread page itself.<p>Man I miss the old iOS-looking Reddit mobile (m.reddit.com, IIRC).<p>My Reddit account is now just a few months short of US drinking age.  I've been using the site since before subreddits were a thing (back when the only topic-specific alternative to the general front page was programming.reddit.com).  I've posted a lot, modded some, and stuck with them through a lot of stupid decisions over the years.  But I'm beginning to think it's finally time to move on; I'm just not sure where to.</p>
]]></description><pubDate>Mon, 17 Aug 2026 05:02:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=49326720</link><dc:creator>a_e_k</dc:creator><comments>https://news.ycombinator.com/item?id=49326720</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49326720</guid></item><item><title><![CDATA[New comment by a_e_k in "Ray tracing massive amounts of animated geometry using tetrahedral cages"]]></title><description><![CDATA[
<p>Neat!  You might be interested to know then that at the same conference, HPG 2026 [1], that this tetrahedral animation ray tracing work was presented at, the last of the 14 papers presented was on that sort of soft body simulation for surgical training: "Real-Time Dissectible Deformable Models Using High-Performance Breakable Shape Constraints".  (Paper [2]; Presentation [3]).<p>[1] <a href="https://www.highperformancegraphics.org/2026/schedule/" rel="nofollow">https://www.highperformancegraphics.org/2026/schedule/</a><p>[2] <a href="https://dl.acm.org/doi/10.1145/3820013" rel="nofollow">https://dl.acm.org/doi/10.1145/3820013</a><p>[3] <a href="https://www.youtube.com/live/vTUdO2A73i0?si=Hy6zle7EtWp7rL60&t=6192" rel="nofollow">https://www.youtube.com/live/vTUdO2A73i0?si=Hy6zle7EtWp7rL60...</a></p>
]]></description><pubDate>Tue, 28 Jul 2026 05:33:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=49079790</link><dc:creator>a_e_k</dc:creator><comments>https://news.ycombinator.com/item?id=49079790</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49079790</guid></item><item><title><![CDATA[New comment by a_e_k in "Ray tracing massive amounts of animated geometry using tetrahedral cages"]]></title><description><![CDATA[
<p><i>Disclosure: I work with the authors of this paper.</i><p>I'm going to answer this in two parts.<p>First, you absolutely can update the BVH, keeping the tree topology the same, and just updating the internal bounding as the triangles and other primitives move around.  It's essentially a bottom-up walk of the tree where you figure out where the triangles now are, update the bounding boxes to contain them tightly, then update the boxes of the parent nodes, then the parents of those parents, etc., all the way back up to the root node of the tree.  The tree structure stays the same and the bounding boxes around each node just update.  This is often called "refitting", as you just refit the bounding boxes around everything in the tree below them like a rubber band.<p>For simple animation where things only move slightly between frames, this works just fine.  And if you're using the DirectX Ray tracing (DXR) API, you can do this via what it calls "acceleration structure updates" [1].  You have to tell the API that you plan to do this when you first build the BVH, and then pass another flag when you actually do it.  And there are rules that you have to keep the triangles, the same and only move the vertices.  But you <i>can</i> do it pretty easily.  And in fact, it's usually nice and fast, often much faster than building a BVH from scratch.<p>Where it can fall apart, however, is in the performance of the ray tracing itself.  As a super-simple example, let's say we have a little BVH of three triangles (A, B, and C) and three nodes (1, 2, and 3), something like this:<p><pre><code>     +-------------------------+
     |1                 +-----+|
     |                  |3 *  ||
     |                  | /C\ ||            1
     |                  |*---*||           / \
     |                  +-----+|          2   3
     |+---------+              |         / \   \
     ||2 * *---*|              |        A   B   C
     || /A\ \B/ |              |
     ||*---* *  |              |
     |+---------+              |
     +-------------------------+
</code></pre>
If, during animation, triangle B moves differently than A and C, e.g., B moves toward the right while A and C stay mostly in place, then after refitting/updating your BVH looks more like this:<p><pre><code>     +-------------------------+
     |1                 +-----+|
     |                  |3 *  ||
     |                  | /C\ ||            1
     |                  |*---*||           / \
     |                  +-----+|          2   3
     |+-----------------------+|         / \   \
     ||2 *               *---*||        A   B   C
     || /A\               \B/ ||
     ||*---*               *  ||
     |+-----------------------+|
     +-------------------------+
</code></pre>
Still the same tree topology, but look how large the bounding box around node 2 has grown!  If a ray happens to hit node 1 and we trace into this bit of the tree, there's a good chance that it will pass through all that empty space in node 2, without actually hitting triangles A or B.  We'll pay the cost of intersection testing node 2, traversing into it and then doing intersection testing against triangles A and B, even though we'll likely miss them.  That's going to slow down your tracing, and the more the boxes have to deform and bloat like this to fit your animated geometry, the worse the ray tracing performance will get.<p>Instead, for something like the above, you'd want a tree that looks more like this:<p><pre><code>     +-------------------------+
     |1                 +-----+|
     |                  |3 *  ||
     |                  | /C\ ||            1
     |                  |*---*||           / \
     |                  |     ||          2   3
     |+-----+           |     ||         /   / \
     ||2 *  |           |*---*||        A   B   C
     || /A\ |           | \B/ ||
     ||*---*|           |  *  ||
     |+-----+           +-----+|
     +-------------------------+
</code></pre>
Now, triangles B and C which are nearer to each other are grouped together, while A is alone.  And if the ray hits node 1 but just passes through the empty space between nodes 2 and 3 we won't have to do any triangle intersections.  That's going to be faster.  The downside is that the tree topology is different, which means this is no longer a simple refit.  Instead, traditionally, we might have to build the tree from scratch.  That's going to take a lot longer than doing a refit, but the trade-off is better performance for your ray tracing.  So typically there's a bit of a balancing act that game developers do around deciding how long they can get away with just refitting the animation to the old BVH vs. when they need to throw the current BVH away and rebuild it from scratch.  The name of the game is to optimize the <i>sum</i> of the BVH build and refit times plus the time to traverse and intersect them when rendering.  (There are other tricks that can help, but I'm skipping in the interest of keeping this basic.)<p>Now, the second part of my answer.  There are 580 million triangles in the paper's demo video.  Even if you only refit and never rebuild the BVHs, updating all of those vertices for animation is going to be prohibitively expensive.  (And even just doing the bone animation for the vertices for 580 million triangles might be too costly, let alone the BVH updates.)<p>So what's happening here is a bit of cheating.  A coarse grid of tetrahedra (2 million in this video) are built around the model in rest pose, and for each tetrahedra, the triangles contained in it or touching it are determined.  Then just those <i>tetrahedra</i> are animated and the BVHs around them updated/rebuilt.  When a ray intersects an animated tetrahedron, <i>the ray</i> is warped back to where it would be relative to the rest pose and intersected against against the triangles that tetrahedron touches, using a little micro BVH.  (I should note that this sort of "warp the ray" idea is pretty common in ray tracing.  It's how instancing works so cheaply, for example.)  If you look at the paper itself [2], you can see an illustration of the tetragedral grid in Figure 2 and the ray warping in Figure 5.<p>But the point of the paper is that after all the initial setup, it's faster to update the BVH for those 2M tetrahedra than it is for 580M triangles, or whatever ratio you choose to use.  You can choose the ratio depending on how approximate and fast or faithful and slow you want the animation cost to be (by how coarse or fine the tetrahedral mesh is, respectively), but the point is that it lets you decouple the BVH update costs from the triangle count.<p>[1] <a href="https://microsoft.github.io/DirectX-Specs/d3d/Raytracing.html#acceleration-structure-updates" rel="nofollow">https://microsoft.github.io/DirectX-Specs/d3d/Raytracing.htm...</a><p>[2] <a href="https://gpuopen.com/download/TetrahedralMeshes_AuthorsVersion.pdf" rel="nofollow">https://gpuopen.com/download/TetrahedralMeshes_AuthorsVersio...</a></p>
]]></description><pubDate>Tue, 28 Jul 2026 01:41:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=49078205</link><dc:creator>a_e_k</dc:creator><comments>https://news.ycombinator.com/item?id=49078205</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49078205</guid></item><item><title><![CDATA[New comment by a_e_k in "Couple pay >$800k for a gene-editing therapy for their daughter. She died."]]></title><description><![CDATA[
<p>"What do you call the person who graduated bottom of their class in medical school?"<p>(At least that's how I've heard it phrased before.)</p>
]]></description><pubDate>Fri, 24 Jul 2026 06:56:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=49032045</link><dc:creator>a_e_k</dc:creator><comments>https://news.ycombinator.com/item?id=49032045</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49032045</guid></item><item><title><![CDATA[New comment by a_e_k in "Writing by hand is good for your brain"]]></title><description><![CDATA[
<p>From what I've read, lefties are typically classified into "over-writers", "side-writers", and "under-writers".  That video caught my attention too, as it shows pretty clearly that he's an over-writer.<p>I myself am probably somewhere in between an over-writer and a side-writer lefty, edging slightly closer to an over-writer.  Maybe a 20 degree angle to the line as my thumb wraps around my other fingers?<p>I've never found a fountain pen that I've liked because every time I've tried one, I ended up tearing the paper as I go as I'm essentially pushing the nib across the page and so the nib snags on the paper, digs in, and makes little holes.  And I left pencils behind as soon as I could in school because every day I'd come home with the side of my left hand silvered with graphite.<p>These days, my preference is a Pentel EnerGel, a Uniball Signo, or a Pilot G-2 (i.e., gel pens like the article mentions).  They can write easily without much force and dry quickly enough so that my hand doesn't smudge.  For my daily pocket carry, I've also learned that I always want the capped variants rather the click kind, or else I'll end up with stained inner pockets and scribbles on my thigh.  This makes the G-2s nice for home and desk use, but not for daily carry.<p>(And though the article suggests using cursive and not getting hung up on legibility, somewhere back in grade or middle school I switched to using either print style, or an engineering-hand-like small caps style, depending on mood. Both in the interest of legibility, despite my left-handedness.)</p>
]]></description><pubDate>Fri, 24 Jul 2026 04:42:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=49031288</link><dc:creator>a_e_k</dc:creator><comments>https://news.ycombinator.com/item?id=49031288</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49031288</guid></item><item><title><![CDATA[New comment by a_e_k in "GPT-5.6 Sol Ultra produces proof of the Cycle Double Cover Conjecture [pdf]"]]></title><description><![CDATA[
<p>I've seen that sort of thing before - I told it I was going to go take lunch or dinner, and it told itself this would be a great opportunity to try to keep plugging along while I was AFK.</p>
]]></description><pubDate>Fri, 10 Jul 2026 20:08:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=48864619</link><dc:creator>a_e_k</dc:creator><comments>https://news.ycombinator.com/item?id=48864619</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48864619</guid></item><item><title><![CDATA[New comment by a_e_k in "GPT-5.6 Sol Ultra produces proof of the Cycle Double Cover Conjecture [pdf]"]]></title><description><![CDATA[
<p>Once on a late-night session, I had Cline!Claude spontaneously point out the time to me and suggest that I get to bed and come back fresh the next day.<p>I don't think it's in the system prompt, but that the harnesses time-stamp each turn in the context.<p>And from what I've seen, they also include the current and max context, so that the model can decide whether to continue work, suggest compaction, or prefer actions that might reduce the growth of its context.</p>
]]></description><pubDate>Fri, 10 Jul 2026 20:02:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=48864535</link><dc:creator>a_e_k</dc:creator><comments>https://news.ycombinator.com/item?id=48864535</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48864535</guid></item><item><title><![CDATA[New comment by a_e_k in "Dissecting Apple's Sparse Image Format (ASIF)"]]></title><description><![CDATA[
<p>I became a fan of Kaitai Struct [0] when doing some amateur sleuthing last year.  It has a web-based IDE [1] for writing and testing structure definitions against hex dumps, and can generate binary parsers in Python (and many other languages) right from the Web IDE.<p>[0] <a href="https://doc.kaitai.io/user_guide.html" rel="nofollow">https://doc.kaitai.io/user_guide.html</a><p>[1] <a href="https://ide.kaitai.io/devel/" rel="nofollow">https://ide.kaitai.io/devel/</a></p>
]]></description><pubDate>Mon, 29 Jun 2026 17:09:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=48721957</link><dc:creator>a_e_k</dc:creator><comments>https://news.ycombinator.com/item?id=48721957</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48721957</guid></item><item><title><![CDATA[New comment by a_e_k in "AI Engineer Claims to Have Cracked Linear A"]]></title><description><![CDATA[
<p>Off topic, but that photo is <i>amazing</i>, and got a good laugh out of me.  It definitely falls in the "pets and owners who look alike" category.</p>
]]></description><pubDate>Fri, 19 Jun 2026 21:12:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=48603302</link><dc:creator>a_e_k</dc:creator><comments>https://news.ycombinator.com/item?id=48603302</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48603302</guid></item><item><title><![CDATA[New comment by a_e_k in "Emacs, how it all started for me"]]></title><description><![CDATA[
<p>I do like that general idea.  I bet it would be possible wrap in a handy elisp macro.</p>
]]></description><pubDate>Fri, 19 Jun 2026 05:19:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=48595028</link><dc:creator>a_e_k</dc:creator><comments>https://news.ycombinator.com/item?id=48595028</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48595028</guid></item><item><title><![CDATA[New comment by a_e_k in "Emacs, how it all started for me"]]></title><description><![CDATA[
<p>Yep.  `C-h k` to look up what a key does, `C-h f` to look up a function, and `C-h v` to look up a variable/setting will get you pretty far.<p>I'd also add `C-h b` to show you the key bindings.  (And `C-h` after a prefix key will usually show you the bindings that start with that prefix.)  `C-h a` for apropos to search commands by substring can also be useful.<p>The thing that makes it really "self documenting" is that these help commands reflect the live environment at the moment you use it.  If you've added a new binding in your init.el, `C-h b` and `C-h k` will show it.  If you've added a new function in your init.el, or loaded a custom package, all those functions can now be found via `C-h f`.  The help system will show you the doc strings for them and provide hyperlinks right to the source.<p>Moreover, this works for anything that you define on the fly.  Open an Emacs lisp buffer, type some elisp code to define a function or variable, execute the definition, and now it'll appear under the above in the help system the next time you invoke help.</p>
]]></description><pubDate>Thu, 18 Jun 2026 21:50:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=48592131</link><dc:creator>a_e_k</dc:creator><comments>https://news.ycombinator.com/item?id=48592131</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48592131</guid></item><item><title><![CDATA[New comment by a_e_k in "Emacs, how it all started for me"]]></title><description><![CDATA[
<p>> The only problem is that, in the name of not breaking backwards-compatibility (or something like that), the archaic defaults have remained.<p>As a user since '97, I've often felt that this philosophy is entirely, well, backwards.  I know how to read the release notes to learn of such changes and how to edit my personal init.el file to revert a setting if I don't like the new default.  As long as no one takes away the <i>option</i>, the default doesn't really matter too much to me.  But newcomers who might not yet be comfortable with editing their init.el files could really benefit from a more optimal out-of-box experience.<p>(And besides that, often the newer option is something that I've already moved on to, so making it the new default means I can now <i>remove it</i> from my init.el.  I always enjoy when I discover that I can cut something from my init.el because it's now in base Emacs.)</p>
]]></description><pubDate>Thu, 18 Jun 2026 21:33:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=48591940</link><dc:creator>a_e_k</dc:creator><comments>https://news.ycombinator.com/item?id=48591940</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48591940</guid></item><item><title><![CDATA[New comment by a_e_k in "Sagrada Família Lego set"]]></title><description><![CDATA[
<p>On the other hand, crafts like knitting and other fiber arts can be very repetitive and people still enjoy them.<p>(Personally, I've also enjoyed unit origami, which involves folding the same module many times over and assembling them.)</p>
]]></description><pubDate>Thu, 04 Jun 2026 18:42:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=48402875</link><dc:creator>a_e_k</dc:creator><comments>https://news.ycombinator.com/item?id=48402875</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48402875</guid></item><item><title><![CDATA[New comment by a_e_k in "HP re-releases classic computer science calculator: The HP-16C"]]></title><description><![CDATA[
<p>I loved the keyboard on my HP-48G.  It had such a nice crisp tactile feel to the key presses - a bit of snap - that I got to where it could usually operate it by touch without looking.<p>(These days it's stored safely away with batteries removed, so I don't use it that much anymore.  For convenience, I usually just use either Droid48 on my phone, or Emacs Calc at my computers.)</p>
]]></description><pubDate>Tue, 02 Jun 2026 22:05:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=48376978</link><dc:creator>a_e_k</dc:creator><comments>https://news.ycombinator.com/item?id=48376978</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48376978</guid></item><item><title><![CDATA[New comment by a_e_k in "The real cost of owning a home"]]></title><description><![CDATA[
<p>I had that experience with the last house we rented before we bought.<p>We were quiet, predictable, don't-rock-the-boat tenants, and the rando owner mentioned that they valued that enough that raising rents wasn't worth the potential risk of new tenants who might cause them more hassle.</p>
]]></description><pubDate>Tue, 26 May 2026 18:44:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=48284033</link><dc:creator>a_e_k</dc:creator><comments>https://news.ycombinator.com/item?id=48284033</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48284033</guid></item><item><title><![CDATA[New comment by a_e_k in "Who will buy your services if you fire us all?"]]></title><description><![CDATA[
<p>Yes, I get that and meant to imply it with "frontier".  But my question was more about how my biggest uses by far of data center-provided AI in terms of tokens have been in things like experimenting with agentic coding on my desktops.  If I'm just tapping away at my phone with some questions in a chat window, my AI needs are much lower.  Compete with me for the HW resources that I need to make full use of your data center-provided AI supply, and I'll just drop my demand accordingly.<p>(I know, I know... the answer is probably that they expect me to just move my software development to the cloud, too.  Joy!)</p>
]]></description><pubDate>Mon, 18 May 2026 22:29:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=48186676</link><dc:creator>a_e_k</dc:creator><comments>https://news.ycombinator.com/item?id=48186676</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48186676</guid></item><item><title><![CDATA[New comment by a_e_k in "Who will buy your services if you fire us all?"]]></title><description><![CDATA[
<p>Analogous to that, this is something that I'd been wondering about with respect to hardware prices as silicon is reallocated from consumers to data centers: how am I to make heavy use of frontier (edit: i.e., cloud/data center-provided) AI models if I can't easily buy a machine worth using it on?</p>
]]></description><pubDate>Mon, 18 May 2026 22:05:54 +0000</pubDate><link>https://news.ycombinator.com/item?id=48186403</link><dc:creator>a_e_k</dc:creator><comments>https://news.ycombinator.com/item?id=48186403</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48186403</guid></item><item><title><![CDATA[New comment by a_e_k in "What British people mean when they say 'sorry'"]]></title><description><![CDATA[
<p>I'm reminded of The Hobbit with the phrase "Good morning" in the first chapter:<p>> "Good Morning!" said Bilbo, and he meant it. The sun was shining, and the grass was very green. But Gandalf looked at him from under long bushy eyebrows that stuck out further than the brim of his shady hat.<p>> "What do you mean?" he said. "Do you wish me a good morning, or mean that it is a good morning whether I want it or not; or that you feel good this morning; or that it is a morning to be good on?"<p>> "All of them at once," said Bilbo. "And a very fine morning for a pipe of tobacco out of doors, into the bargain.</p>
]]></description><pubDate>Thu, 07 May 2026 08:15:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=48046804</link><dc:creator>a_e_k</dc:creator><comments>https://news.ycombinator.com/item?id=48046804</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48046804</guid></item><item><title><![CDATA[New comment by a_e_k in "Accelerating Gemma 4: faster inference with multi-token prediction drafters"]]></title><description><![CDATA[
<p>From the linked post, it didn't read like a separate KV cache was needed:<p>> The draft models seamlessly utilize the target model's activations and share its KV cache, meaning they don't have to waste time recalculating context the larger model has already figured out.</p>
]]></description><pubDate>Tue, 05 May 2026 18:06:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=48026235</link><dc:creator>a_e_k</dc:creator><comments>https://news.ycombinator.com/item?id=48026235</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48026235</guid></item></channel></rss>