<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: mananaysiempre</title><link>https://news.ycombinator.com/user?id=mananaysiempre</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Wed, 05 Aug 2026 15:37:08 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=mananaysiempre" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by mananaysiempre in "TIME Is Serving AI Bots a Different Website, with Ads Built In"]]></title><description><![CDATA[
<p>When the GDPR came into force <a href="https://npr.org" rel="nofollow">https://npr.org</a> started redirecting to <a href="https://text.npr.org" rel="nofollow">https://text.npr.org</a> with an explanation that sounded like that fact was supposed to annoy you, but I honestly find the latter superior especially now that they’ve added a couple more lines of CSS to it.</p>
]]></description><pubDate>Wed, 05 Aug 2026 14:13:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=49183214</link><dc:creator>mananaysiempre</dc:creator><comments>https://news.ycombinator.com/item?id=49183214</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49183214</guid></item><item><title><![CDATA[New comment by mananaysiempre in "Don't stop early: Case-folding source code at memory speed"]]></title><description><![CDATA[
<p>> If anything, the word STRASSE is a great example why case-folding followed by string comparison is not the same as a case-independent string comparison<p>s/case-folding/lowercasing/<p>Proper Unicode case-folding absolutely <i>does</i> map ß to ss, ς to σ, etc. Moreover, there are some scripts (IIRC Georgian) where for historical reasons case-folding yields uppercase letters, not lowercase ones. The case-folding mapping is specifically designed in concert with the comparison rules to yield the same result, that’s why it’s a separate operation from lowercasing.<p>(I believe the thing described in TFA is supposed to be proper case-folding in that sense, but given TFA is AI-written I wouldn’t trust its descriptions either way.)<p>That said, if you want to match the sort order customary in a specific language, you need to use language-specific rules for producing collation keys rather than generic case-folding. There’s no way out of this because different users of e.g. the Latin alphabet want contradictory results. And if you think you do want generic casefolding, then you probably actually want NFKC_Casefold instead unless your input is pre-normalized.</p>
]]></description><pubDate>Wed, 05 Aug 2026 12:11:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=49181714</link><dc:creator>mananaysiempre</dc:creator><comments>https://news.ycombinator.com/item?id=49181714</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49181714</guid></item><item><title><![CDATA[New comment by mananaysiempre in "Show HN: Kakehashi – Experimental userspace to run macOS binaries on Linux ARM"]]></title><description><![CDATA[
<p>Which makes sense, games have a much smaller area of contact with the host platform.<p>This sounds strange given how much modern GPUs can do, but consider that a typical Windows machine ca. 2005 will have Access/JET Red, Active Directory/JET Blue, possibly MSSQL, definitely MSMQ/MTS, ODBC, OLE DB, DAO, ADO, that one SQL interpreter inside Windows Installer, and I’ve only just listed Microsoft’s database-adjacent things. I’m not surprised that press reports about the “MinWin” initiative mentioned as the main difficulty the fact that nobody could figure out if any given component was actually necessary for a Windows install to function, let alone to be compatible with third-party software. (Is anybody other than WordPad using the Word 6.0 parser included among the text converters?..) Now consider that this was, by our standards, a lightweight system on a massively underpowered computer.</p>
]]></description><pubDate>Mon, 03 Aug 2026 02:40:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=49150628</link><dc:creator>mananaysiempre</dc:creator><comments>https://news.ycombinator.com/item?id=49150628</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49150628</guid></item><item><title><![CDATA[Why Were the Dabaos Late?]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.crowdsupply.com/baochip/dabao/updates/why-were-the-dabaos-late">https://www.crowdsupply.com/baochip/dabao/updates/why-were-the-dabaos-late</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=49149414">https://news.ycombinator.com/item?id=49149414</a></p>
<p>Points: 8</p>
<p># Comments: 1</p>
]]></description><pubDate>Sun, 02 Aug 2026 23:21:33 +0000</pubDate><link>https://www.crowdsupply.com/baochip/dabao/updates/why-were-the-dabaos-late</link><dc:creator>mananaysiempre</dc:creator><comments>https://news.ycombinator.com/item?id=49149414</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49149414</guid></item><item><title><![CDATA[New comment by mananaysiempre in "GE-97 Terminal: The Old Internet"]]></title><description><![CDATA[
<p>> there are some weird AI generated comments by new[] accounts on this thread<p>When you have showdead on (as I’m guessing you do), there are weird AI-generated comments by new accounts on every front-page thread, so I wouldn’t ascribe too much significance to that part.</p>
]]></description><pubDate>Sun, 02 Aug 2026 18:25:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=49146992</link><dc:creator>mananaysiempre</dc:creator><comments>https://news.ycombinator.com/item?id=49146992</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49146992</guid></item><item><title><![CDATA[New comment by mananaysiempre in "On the non-use of AI in my writing process"]]></title><description><![CDATA[
<p>> This might be the best case of the Torment Nexus meme in action.<p>At least the author seems to think[1] it is one, if in not so many words:<p>> And don't <i>ever</i> let anyone tell you that <i>Accelerando</i> is techno-optimistic or pro-AI; by the end of the book our entire species is extinct, surviving only as simulations/memories recalled by something arguably not alive.<p>[1] <a href="https://news.ycombinator.com/item?id=48163630">https://news.ycombinator.com/item?id=48163630</a></p>
]]></description><pubDate>Sat, 01 Aug 2026 16:03:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=49135571</link><dc:creator>mananaysiempre</dc:creator><comments>https://news.ycombinator.com/item?id=49135571</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49135571</guid></item><item><title><![CDATA[New comment by mananaysiempre in "Clockwise/Spiral Rule (1994)"]]></title><description><![CDATA[
<p>I mean, yes, you’ve given a correct algorithm for parsing this simple precedence grammar, but it still leaves the impression that there’s something new to learn in addition to C expressions, whereas the whole point of the declaration syntax is that there largely isn’t.</p>
]]></description><pubDate>Sat, 01 Aug 2026 02:19:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=49130491</link><dc:creator>mananaysiempre</dc:creator><comments>https://news.ycombinator.com/item?id=49130491</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49130491</guid></item><item><title><![CDATA[New comment by mananaysiempre in "Clockwise/Spiral Rule (1994)"]]></title><description><![CDATA[
<p>Why would you do that? Ignoring for the moment arguments of prototypes and sizes of arrays, read C declarations the way they were designed: “char *a[<whatever>]” means that the expression *a[<whatever>] has type char; “char (*a(<whatever>))[<whatever>]” means that the expression (*a(<whatever>))[<whatever>] has type char; and so on. Then you apply the normal precedence rules for expressions, and in this case only knowing them for the prefix and postfix operators is sufficient. (Hint: all prefix operators have one precedence and all postfix ones another, and you know which one binds tighter if you know what *i++ means.)</p>
]]></description><pubDate>Fri, 31 Jul 2026 16:36:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=49125389</link><dc:creator>mananaysiempre</dc:creator><comments>https://news.ycombinator.com/item?id=49125389</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49125389</guid></item><item><title><![CDATA[New comment by mananaysiempre in "Keychron announces first open-source firmware for gaming mice"]]></title><description><![CDATA[
<p>GP’s point is that many keyboards these days come with a Mac/Windows switch, and one of the things that switch does is swap the keycodes sent by the Alt and Win keys—the “Mac” behaviour is exactly what you’re describing. (The other thing it does is toggle FnLock for the F-keys.) So if I had a problem like yours with my keyboard I’d think that the Mac/Win switch were in the wrong position. If I’m reading page 9 of the manual[1] right, on the K4 the switch in question is right next to the USB-C port.<p>[1] <a href="https://www.keychron.com/pages/k4-keyboard-user-manual" rel="nofollow">https://www.keychron.com/pages/k4-keyboard-user-manual</a></p>
]]></description><pubDate>Wed, 29 Jul 2026 18:45:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=49101396</link><dc:creator>mananaysiempre</dc:creator><comments>https://news.ycombinator.com/item?id=49101396</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49101396</guid></item><item><title><![CDATA[New comment by mananaysiempre in "DConf 2026 in London"]]></title><description><![CDATA[
<p>Error handling in Dylan[1] worked mostly the same way, if syntax is truly the issue. I posted a toy implementation in Lua a few years ago as well[2]. In general there’s nothing Lisp-specific about the idea, you just need dynamic scoping, closures that don’t outlive their parents, and a way to unwind the stack.<p>Standard exception handling is:<p>- Whenever an error happens, the program puts a description of it into an “exception” object. You go from the innermost dynamic scope to the outermost looking for handlers. Once you find a handler willing to accept that type of exception, you unwind to the point where it was installed then invoke it, passing the exception object.<p>Condition handling[3] is:<p>- Whenever an error happens, the program puts a description of it into a “condition” object. You go from the innermost dynamic scope to the outermost looking for handlers. Once you find a condition handler willing to accept that type of condition, you invoke it <i>as a regular callback, without unwinding</i>, passing the condition object.<p>- The handler then packs up some data into a “restart” object. You go through all the dynamic scopes again (remember that the erroring function is still active). Once you find a restart handling willing to accept this type of restart, you unwind to the point where it was installed then invoke it, passing the restart object.<p>(I am omitting things outside the happy path: a way for the exception/condition handler to punt, what happens if the condition handler does not invoke a restart, etc.)<p>As far as the benefits of this two-phase approach, <i>Practical Common Lisp</i> gives an example[4] of a single-record parser that raises an “invalid record” condition, a loop around it that installs a “skip to next record” restart, and finally the caller can make the policy decision on what to do for invalid records.<p>As another example, Common Lisp signals an “unbound-variable”[5] condition leaving the “use-value” and “store-value” restarts in scope, then the REPL installs a handler that offers them interactively. (My own half-serious example of a DOS abort/retry/fail prompt is in this vein too, chosen mostly because it feels strange that you can’t do it in a conventional exception system.)<p>[1] <a href="https://package.opendylan.org/dylan-programming-book/exceptions.html" rel="nofollow">https://package.opendylan.org/dylan-programming-book/excepti...</a><p>[2] <a href="https://news.ycombinator.com/item?id=31196046">https://news.ycombinator.com/item?id=31196046</a><p>[3] <a href="https://www.nhplace.com/kent/Papers/Condition-Handling-2001.html" rel="nofollow">https://www.nhplace.com/kent/Papers/Condition-Handling-2001....</a><p>[4] <a href="https://gigamonkeys.com/book/beyond-exception-handling-conditions-and-restarts" rel="nofollow">https://gigamonkeys.com/book/beyond-exception-handling-condi...</a><p>[5] <a href="https://www.lispworks.com/documentation/HyperSpec/Body/e_unbo_1.htm" rel="nofollow">https://www.lispworks.com/documentation/HyperSpec/Body/e_unb...</a></p>
]]></description><pubDate>Tue, 28 Jul 2026 09:06:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=49081260</link><dc:creator>mananaysiempre</dc:creator><comments>https://news.ycombinator.com/item?id=49081260</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49081260</guid></item><item><title><![CDATA[New comment by mananaysiempre in "I learned PCB design, 3D printing and C just to listen to music"]]></title><description><![CDATA[
<p>> Once I had the design [of the enclosure], I tried to 3D print it on my brand new 3D printer, which turned out to be a disaster. Took me some time to learn more about designing for manufacturing, especially for 3D printing.<p>Would have been nice to hear how specifically it was made to work in the end.<p>> Turns out, cross-fading two 4MP images at 60 frames per second on a moderately powerful single board computer is not so easy.<p>Yeah, at first it feels stupid that every pretty LCD screen for bus or train stops, ads or whatnot has a full computer behind it, but then you ballpark the memory bandwidth and realize you need a ~ 1 GHz device anyway just to be able to chew through the pixels fast enough. (1920² px × 24 bpp × 60 Hz = 620 MB/s.) You also realize why “fill rate” used to be such a buzzword 20 years ago and why it took a while until true color became ubiquitous.<p>On the flip side of the O(n²), you can easily drive a watch-sized display with pretty good ppi using a 32-bit MCU, which is why the Apple/Google/Samsung battery-guzzling approach to smartwatches seems wrongheaded to me compared to Pebble/Zepp/etc.</p>
]]></description><pubDate>Sun, 26 Jul 2026 14:36:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=49058639</link><dc:creator>mananaysiempre</dc:creator><comments>https://news.ycombinator.com/item?id=49058639</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49058639</guid></item><item><title><![CDATA[New comment by mananaysiempre in "A shell colon does nothing. Use it anyway"]]></title><description><![CDATA[
<p>TL;DR: The old-school empty branch preserves $?, while logical negation doesn’t. Sure I guess, but this is not always relevant.</p>
]]></description><pubDate>Sun, 26 Jul 2026 10:38:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=49056657</link><dc:creator>mananaysiempre</dc:creator><comments>https://news.ycombinator.com/item?id=49056657</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49056657</guid></item><item><title><![CDATA[New comment by mananaysiempre in "Why Sony can't bring back its classic Walkman models"]]></title><description><![CDATA[
<p>The battery life’s reportedly kind of garbage, though, isn’t it? As it seems to be on all these devices. I understand this is partly due to overpowered output amplifiers (to support obscure headphones) and software decoding (to support obscure formats), but still, <15hr of playback is pitiful.</p>
]]></description><pubDate>Fri, 24 Jul 2026 11:21:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=49033979</link><dc:creator>mananaysiempre</dc:creator><comments>https://news.ycombinator.com/item?id=49033979</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49033979</guid></item><item><title><![CDATA[New comment by mananaysiempre in "Software rendering in 500 lines of bare C++"]]></title><description><![CDATA[
<p>> Not sure about Linux, too many stacks involved.<p>Wayland: wl_shm and that’s it for the “stack”.</p>
]]></description><pubDate>Thu, 23 Jul 2026 21:09:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=49028086</link><dc:creator>mananaysiempre</dc:creator><comments>https://news.ycombinator.com/item?id=49028086</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49028086</guid></item><item><title><![CDATA[New comment by mananaysiempre in "Corners Don't Look Like That: Regarding Screenspace Ambient Occlusion (2012)"]]></title><description><![CDATA[
<p>There are indeed precomputed LUTs, but apparently you need to be a bit more sophisticated than that if you want your sun angle to be dynamic, and they also did clouds: <a href="https://www.ea.com/news/physically-based-sky-atmosphere-and-cloud-rendering" rel="nofollow">https://www.ea.com/news/physically-based-sky-atmosphere-and-...</a>.</p>
]]></description><pubDate>Tue, 21 Jul 2026 13:11:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=48991860</link><dc:creator>mananaysiempre</dc:creator><comments>https://news.ycombinator.com/item?id=48991860</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48991860</guid></item><item><title><![CDATA[New comment by mananaysiempre in "China’s open-weights AI strategy is winning"]]></title><description><![CDATA[
<p>I once tried to ask it for an example of a particular twisty situation in Latin grammar, and try what I might it kept hallucinating false citations while ignoring my instructions for longer quotes that would likely have prevented the problem. But I guess avoiding lawsuits from the estates of Cicero and Livy is more important.</p>
]]></description><pubDate>Mon, 20 Jul 2026 20:18:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=48984342</link><dc:creator>mananaysiempre</dc:creator><comments>https://news.ycombinator.com/item?id=48984342</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48984342</guid></item><item><title><![CDATA[New comment by mananaysiempre in "Corners Don't Look Like That: Regarding Screenspace Ambient Occlusion (2012)"]]></title><description><![CDATA[
<p>Yup. I once came across a (picture of a) test print made by one of the old black-and-white street photography greats, and it was all marked up with development adjustments for better lighting, contrast, and subject separation. Those were always a photographer’s main concern.<p>I think a <i>Horizon Zero Dawn</i> developer characterized their approach as “more realistic than reality” or something along those lines, i.e. they were aiming for the kind of perfect saturated look that you would only get in that golden hour with ideal surroundings but that we all recognize as real and at the same time don’t find too dull to stare at for hours. And I think for daytime <i>HZD</i> did do that quite well.</p>
]]></description><pubDate>Mon, 20 Jul 2026 20:11:54 +0000</pubDate><link>https://news.ycombinator.com/item?id=48984263</link><dc:creator>mananaysiempre</dc:creator><comments>https://news.ycombinator.com/item?id=48984263</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48984263</guid></item><item><title><![CDATA[New comment by mananaysiempre in "Corners Don't Look Like That: Regarding Screenspace Ambient Occlusion (2012)"]]></title><description><![CDATA[
<p>I recall a GDC presentation about a physically-based atmospheric model developed for a (good) AAA game released sometime in the last decade, and it reportedly took up a noticeable part of the frame budget, so evidently you’re not alone in this opinion.</p>
]]></description><pubDate>Mon, 20 Jul 2026 20:00:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=48984135</link><dc:creator>mananaysiempre</dc:creator><comments>https://news.ycombinator.com/item?id=48984135</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48984135</guid></item><item><title><![CDATA[New comment by mananaysiempre in "That post never existed. Stop listening to that thing"]]></title><description><![CDATA[
<p>I’m guessing GP’s point is that Google also has the locations of all the people <i>not</i> in cars, so Google Maps could take the hint if it wanted. But thus far nobody appears to care enough to fix this. (And apparently in e.g. India cars and pedestrians may routinely use the same roads at the same time, so perhaps such a system might be more fragile globally that our own experiences would lead us to believe.)</p>
]]></description><pubDate>Mon, 20 Jul 2026 19:54:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=48984048</link><dc:creator>mananaysiempre</dc:creator><comments>https://news.ycombinator.com/item?id=48984048</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48984048</guid></item><item><title><![CDATA[New comment by mananaysiempre in "Goodbye, and Thanks for All the Bikesheds"]]></title><description><![CDATA[
<p>Sadly, after the 2024 anti-E2E-messaging piece[1] I do in fact think he’s pretty anti-privacy overall. Perhaps calling that pro-regulation is more correct, but my (non-American) experience over the last, say, twenty years does not include literally a single piece of regulation that traded privacy for more government control (however reasonable) and went well, so, same difference. Accomlished hacker holds some wrong-to-downright-harmful political opinions; wouldn’t be the first time.<p>[1] <a href="https://queue.acm.org/detail.cfm?id=3703126" rel="nofollow">https://queue.acm.org/detail.cfm?id=3703126</a></p>
]]></description><pubDate>Sat, 18 Jul 2026 19:06:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=48961159</link><dc:creator>mananaysiempre</dc:creator><comments>https://news.ycombinator.com/item?id=48961159</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48961159</guid></item></channel></rss>