<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: unnah</title><link>https://news.ycombinator.com/user?id=unnah</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Mon, 15 Jun 2026 04:54:47 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=unnah" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by unnah in "Orthodox C++ (2016)"]]></title><description><![CDATA[
<p>C++ template metaprogramming is in some ways more powerful than Common Lisp macros, because it works at the type level: you can generate new types and dispatch into separate implementations by type. In contrast, Common Lisp type declarations are not available at macro expansion time unless you implement a full source-to-source translator in macros.</p>
]]></description><pubDate>Sat, 13 Jun 2026 16:13:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=48518638</link><dc:creator>unnah</dc:creator><comments>https://news.ycombinator.com/item?id=48518638</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48518638</guid></item><item><title><![CDATA[New comment by unnah in "Summer of '85: DOSBOS is rejected by ANALOG Computing"]]></title><description><![CDATA[
<p>It leads to the catch-22 that when saving a BASIC program you cannot tell which filenames are already in use, since you cannot get a directory listing without losing the current BASIC program in memory. All you can do is guess a filename that is probably free.</p>
]]></description><pubDate>Sun, 07 Jun 2026 08:26:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=48432950</link><dc:creator>unnah</dc:creator><comments>https://news.ycombinator.com/item?id=48432950</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48432950</guid></item><item><title><![CDATA[New comment by unnah in "How to declare taxes in Germany as an App Developer"]]></title><description><![CDATA[
<p>Is there still some kind of sales tax in Germany? Shouldn't it be long gone due to the EU value added tax system?</p>
]]></description><pubDate>Thu, 28 May 2026 07:51:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=48305953</link><dc:creator>unnah</dc:creator><comments>https://news.ycombinator.com/item?id=48305953</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48305953</guid></item><item><title><![CDATA[New comment by unnah in "When can the C++ compiler devirtualize a call?"]]></title><description><![CDATA[
<p>It's the same problem with autovectorization. Often the only way to tell whether a compiler optimization is successful is to check the produced assembly or benchmark the code.<p>It seems that for devirtualization GCC has a warning option -Wsuggest-final-types which is supposed to tell when devirtualization fails in link-time optimization. Not sure how reliable that is, or whether it will produce gobs of unhelpful warnings. Maybe it could be combined with some kind of hint that we want this particular call to be devirtualized, and don't care about calls without the hint.</p>
]]></description><pubDate>Tue, 19 May 2026 06:45:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=48190049</link><dc:creator>unnah</dc:creator><comments>https://news.ycombinator.com/item?id=48190049</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48190049</guid></item><item><title><![CDATA[New comment by unnah in "Mercurial, 20 years and counting: how are we still alive and kicking? [video]"]]></title><description><![CDATA[
<p>I don't see why there has to be a special staging area when you could just edit the HEAD commit instead. In git you could do "git commit --patch" to commit selected parts and then add more changes to the HEAD commit by "git commit --patch --amend".</p>
]]></description><pubDate>Mon, 18 May 2026 06:05:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=48176057</link><dc:creator>unnah</dc:creator><comments>https://news.ycombinator.com/item?id=48176057</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48176057</guid></item><item><title><![CDATA[New comment by unnah in "You gotta think outside the hypercube"]]></title><description><![CDATA[
<p>It's not so easy any more if you try to rotate the hypercube and have to visualize intersections with arbitrary hyperplanes. Already in 3 dimensions the intersection of a cube and a plane can be a non-regular polygon with 3-6 sides.</p>
]]></description><pubDate>Sat, 14 Mar 2026 16:00:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=47377984</link><dc:creator>unnah</dc:creator><comments>https://news.ycombinator.com/item?id=47377984</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47377984</guid></item><item><title><![CDATA[New comment by unnah in "Elvish as She Is Spoke [pdf]"]]></title><description><![CDATA[
<p>So apparently the Elvish spoken in the Peter Jackson movies is as far from the language imagined by Tolkien as the famous Portuguese-English phrasebook is from natural English. That's one childhood fantasy broken. What about the Klingon spoken in Star Trek movies?</p>
]]></description><pubDate>Wed, 18 Feb 2026 14:16:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=47061157</link><dc:creator>unnah</dc:creator><comments>https://news.ycombinator.com/item?id=47061157</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47061157</guid></item><item><title><![CDATA[New comment by unnah in "Four Column ASCII (2017)"]]></title><description><![CDATA[
<p>If Ctrl sets bit 6 to 0, and Shift sets bit 5 to 1, the logical extension is to use Ctrl and Shift together to set the top bits to 01. Surely there must be a system somewhere that maps Ctrl-Shift-A to !, Ctrl-Shift-B to " etc.</p>
]]></description><pubDate>Tue, 17 Feb 2026 08:06:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=47044870</link><dc:creator>unnah</dc:creator><comments>https://news.ycombinator.com/item?id=47044870</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47044870</guid></item><item><title><![CDATA[New comment by unnah in "Oxide raises $200M Series C"]]></title><description><![CDATA[
<p>There are plenty of old-school companies in Europe still working on moving to the cloud. Now that there is a burgeoning movement towards avoiding American cloud providers, Oxide could have an opportunity to sell "private cloud" servers instead. If they play their cards right, they could make significant inroads in European markets.</p>
]]></description><pubDate>Tue, 10 Feb 2026 18:05:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=46964082</link><dc:creator>unnah</dc:creator><comments>https://news.ycombinator.com/item?id=46964082</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46964082</guid></item><item><title><![CDATA[New comment by unnah in "ASCII characters are not pixels: a deep dive into ASCII rendering"]]></title><description><![CDATA[
<p>It's probably much more exciting to implement stuff like this when you can experiment with your own ideas to figure out the solution from scratch, compared to someone who sees it as a trivial exercise in signal processing, which they can't be bothered to implement.</p>
]]></description><pubDate>Mon, 19 Jan 2026 08:38:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=46676379</link><dc:creator>unnah</dc:creator><comments>https://news.ycombinator.com/item?id=46676379</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46676379</guid></item><item><title><![CDATA[New comment by unnah in "Erich von Däniken has died"]]></title><description><![CDATA[
<p>Most likely his ancient astronaut theory was the inspiration for the entire Stargate franchise. Of course to make the movie believable they had to give Jackson a more academic background than von Däniken had.</p>
]]></description><pubDate>Mon, 12 Jan 2026 10:40:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=46586631</link><dc:creator>unnah</dc:creator><comments>https://news.ycombinator.com/item?id=46586631</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46586631</guid></item><item><title><![CDATA[New comment by unnah in "CES 2026: Taking the Lids Off AMD's Venice and MI400 SoCs"]]></title><description><![CDATA[
<p>Perhaps the most comparable 1990s system would be the SGI Origin 2800 (<a href="https://en.wikipedia.org/wiki/SGI_Origin_2000" rel="nofollow">https://en.wikipedia.org/wiki/SGI_Origin_2000</a>) with 128 processors in a single shared-memory multiprocessing system. The full system took up nine racks. The successor SGI Origin 3800 was available with up to 512 processors in 2002.</p>
]]></description><pubDate>Wed, 07 Jan 2026 10:31:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=46524720</link><dc:creator>unnah</dc:creator><comments>https://news.ycombinator.com/item?id=46524720</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46524720</guid></item><item><title><![CDATA[New comment by unnah in "A proof of concept of a semistable C++ vector container"]]></title><description><![CDATA[
<p>Interesting that they chose not to implement any method to detect whether a given iterator has been invalidated, even though the implementation would be easy. Seems it would be a useful extension, especially since any serious usage of this vector type would already be relying on functionality not provided by the standard vector class.</p>
]]></description><pubDate>Sat, 20 Dec 2025 14:33:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=46336461</link><dc:creator>unnah</dc:creator><comments>https://news.ycombinator.com/item?id=46336461</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46336461</guid></item><item><title><![CDATA[New comment by unnah in "Why xor eax, eax?"]]></title><description><![CDATA[
<p>Umm... how did you manage to learn those hex codes? You just read a lot of machine code and it started to make sense?</p>
]]></description><pubDate>Mon, 01 Dec 2025 16:37:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=46109461</link><dc:creator>unnah</dc:creator><comments>https://news.ycombinator.com/item?id=46109461</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46109461</guid></item><item><title><![CDATA[New comment by unnah in "Giving C a superpower: custom header file (safe_c.h)"]]></title><description><![CDATA[
<p>On MIPS you can simulate atomics with a load-linked/store-conditional (LL/SC) loop. If another processor has changed the same address between the LL and SC instructions, the SC fails to store the result and you have to retry. The underlying idea is that the processors would have to communicate memory accesses to each other via the cache coherence protocol anyway, so they can easily detect conflicting writes between the LL and SC instructions. It gets more complicated with out-of-order execution...<p><pre><code>    loop: LL r2, (r1)
          ADD r3, r2, 1
          SC r3, (r1)
          BEQ r3, 0, loop
          NOP</code></pre></p>
]]></description><pubDate>Mon, 17 Nov 2025 17:02:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=45955512</link><dc:creator>unnah</dc:creator><comments>https://news.ycombinator.com/item?id=45955512</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45955512</guid></item><item><title><![CDATA[New comment by unnah in "A definition of AGI"]]></title><description><![CDATA[
<p>If the LLM was generally intelligent, it could easily avoid those gotchas when pretending to be a human in the test. It could do so even without specific instruction to avoid specific gotchas like "what is your system prompt", simply from being explained the goal of the test.</p>
]]></description><pubDate>Mon, 27 Oct 2025 14:08:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=45721197</link><dc:creator>unnah</dc:creator><comments>https://news.ycombinator.com/item?id=45721197</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45721197</guid></item><item><title><![CDATA[New comment by unnah in "Computer science courses that don't exist, but should (2015)"]]></title><description><![CDATA[
<p>There should also be PSYC 5640: How to become a guru by reading the documentation everyone else is ignoring. Cannot be taken at the same time as PSYC 5630.</p>
]]></description><pubDate>Sun, 26 Oct 2025 08:46:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=45710117</link><dc:creator>unnah</dc:creator><comments>https://news.ycombinator.com/item?id=45710117</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45710117</guid></item><item><title><![CDATA[New comment by unnah in "PyTorch Monarch"]]></title><description><![CDATA[
<p>There's also Dask, which can do distributed pandas and numpy operations etc. However it was originally developed for traditional HPC systems and has only limited support for GPU computing. <a href="https://www.dask.org/" rel="nofollow">https://www.dask.org/</a></p>
]]></description><pubDate>Thu, 23 Oct 2025 13:31:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=45681611</link><dc:creator>unnah</dc:creator><comments>https://news.ycombinator.com/item?id=45681611</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45681611</guid></item><item><title><![CDATA[New comment by unnah in "We reverse-engineered Flash Attention 4"]]></title><description><![CDATA[
<p>Back in the 1990's. As an example, back then the Rational Rose design software had a feature to generate UML diagrams from existing source code, and it was called "reverse engineering".<p><a href="https://en.wikipedia.org/wiki/IBM_Rational_Rose" rel="nofollow">https://en.wikipedia.org/wiki/IBM_Rational_Rose</a></p>
]]></description><pubDate>Mon, 29 Sep 2025 07:36:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=45411206</link><dc:creator>unnah</dc:creator><comments>https://news.ycombinator.com/item?id=45411206</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45411206</guid></item><item><title><![CDATA[New comment by unnah in "We reverse-engineered Flash Attention 4"]]></title><description><![CDATA[
<p>That is the traditional explanation of why it is called reverse engineering. The term originated in hardware engineering. When it was originally applied to software, it was common to create requirements documents and design documents before coding, even if the actual process did not strictly follow the "waterfall" idea.<p>Thus it was natural to call the process of producing design documents from undocumented software "reverse engineering".  These days coding without any formal design documents is so common that it seems the original meaning of reverse engineering has become obscured.</p>
]]></description><pubDate>Sun, 28 Sep 2025 11:33:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=45403566</link><dc:creator>unnah</dc:creator><comments>https://news.ycombinator.com/item?id=45403566</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45403566</guid></item></channel></rss>