<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: abbeyj</title><link>https://news.ycombinator.com/user?id=abbeyj</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Wed, 13 May 2026 14:38:07 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=abbeyj" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by abbeyj in "Bugs Rust won't catch"]]></title><description><![CDATA[
<p>> The Python one-liner is there because most modern shells refuse to create a non-UTF-8 filename for you.<p>Both `echo -ne 'weird\xffname\0' > list0` and `printf 'weird\xffname\0' > list0` seem to work fine for me on Linux.  Is this macOS-specific?</p>
]]></description><pubDate>Wed, 29 Apr 2026 17:32:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=47951608</link><dc:creator>abbeyj</dc:creator><comments>https://news.ycombinator.com/item?id=47951608</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47951608</guid></item><item><title><![CDATA[New comment by abbeyj in "Dissecting the CPU-memory relationship in garbage collection (OpenJDK 26)"]]></title><description><![CDATA[
<p>I'm a bit confused about the colors used in the CPU graphs.  In the first graphs it looks like green means that the application is running and red means that the GC is running.  But once we get to Figure 4 then red means the GC is running (on the GC threads) or nothing is running (on the Main thread)?  If red always means that GC work is being done on that thread then this is inconsistent with the text that says "By distributing reclamation work across both cores..." since we would have three threads running at once.  Once you move to the concurrent GC figures you definitely have three things running at once.  Unless you're assuming SMT with each core running two threads?<p>In Figure 3 you somehow have 101% wall time.  :)</p>
]]></description><pubDate>Fri, 27 Feb 2026 04:19:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=47176444</link><dc:creator>abbeyj</dc:creator><comments>https://news.ycombinator.com/item?id=47176444</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47176444</guid></item><item><title><![CDATA[New comment by abbeyj in "Both GCC and Clang generate strange/inefficient code"]]></title><description><![CDATA[
<p>Doing both of those things does seem to help: <a href="https://godbolt.org/z/1vv7cK4bE" rel="nofollow">https://godbolt.org/z/1vv7cK4bE</a><p>GCC trunk seems to like using `bool` so we may eventually be able to retire the hack of using `int`.</p>
]]></description><pubDate>Wed, 11 Feb 2026 19:11:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=46979349</link><dc:creator>abbeyj</dc:creator><comments>https://news.ycombinator.com/item?id=46979349</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46979349</guid></item><item><title><![CDATA[New comment by abbeyj in "A Cosmic Miracle: A Remarkably Luminous Galaxy at z=14.44 Confirmed with JWST"]]></title><description><![CDATA[
<p>That would probably be difficult at optical wavelengths.  At radio wavelengths you might have a better shot, but we can build radio interferometric telescopes on Earth and since the atmosphere is relatively transparent at radio frequencies, you probably aren't going to get any advantage by trying to build one in Earth orbit.<p>Though not the same thing, you may be interested in <a href="https://en.wikipedia.org/wiki/Laser_Interferometer_Space_Antenna" rel="nofollow">https://en.wikipedia.org/wiki/Laser_Interferometer_Space_Ant...</a></p>
]]></description><pubDate>Wed, 11 Feb 2026 18:48:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=46979050</link><dc:creator>abbeyj</dc:creator><comments>https://news.ycombinator.com/item?id=46979050</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46979050</guid></item><item><title><![CDATA[New comment by abbeyj in "Go-legacy-winxp: Compile Golang 1.24 code for Windows XP"]]></title><description><![CDATA[
<p>It depends on what you want.  If you want to install an old copy of Visual Studio from 20 years ago then you should be able to write a program and compile it and have that work on XP.  But that comes with limitations.  You're not going to be able to use even C++11 and will be stuck with C++03, or maybe even C++98.  If that's acceptable to you then it can work.  But if you want to compile something that somebody else wrote or want to use some library that somebody else wrote, it probably won't work in that environment.<p>Or you could install and old copy of Cygwin or MinGW.<p>Do you want to run a modern Visual Studio and target XP?  Maybe you can make that work if you install an old platform SDK and set WINVER and _WIN32_VERSION and work around all the warnings and compatibility problems that you'll run into.  It is fighting an uphill battle and it will continue to get worse with each new version of VS that you want use.<p>For rust there is Rust9x <a href="https://seri.tools/blog/announcing-rust9x/" rel="nofollow">https://seri.tools/blog/announcing-rust9x/</a>.  But I think this is the effort of handful of people.  It is behind the upstream rust and it could go away at any time.  If you want to write a toy program in Rust then it is fine, but if you want something that's going to be supported long-term you're rolling the dice.<p>Python 3.4.4 is the last version of Python that will run on Windows XP.  That's 10 years old and many things on PyPI now require newer versions of Python so you'd be stuck with old, unsupported versions of those modules, possibly containing security issues.</p>
]]></description><pubDate>Fri, 16 Jan 2026 03:41:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=46642737</link><dc:creator>abbeyj</dc:creator><comments>https://news.ycombinator.com/item?id=46642737</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46642737</guid></item><item><title><![CDATA[New comment by abbeyj in "The best things and stuff of 2025"]]></title><description><![CDATA[
<p>You have a typo in there.  You want <a href="https://www.google.com/search?q=%2810%5E100%29%2B1-%2810%5E100%29" rel="nofollow">https://www.google.com/search?q=%2810%5E100%29%2B1-%2810%5E1...</a> .  Google also gets the "wrong answer" for this expression, 0 instead of 1.</p>
]]></description><pubDate>Sat, 27 Dec 2025 07:23:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=46399882</link><dc:creator>abbeyj</dc:creator><comments>https://news.ycombinator.com/item?id=46399882</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46399882</guid></item><item><title><![CDATA[New comment by abbeyj in "Copy-Item is slower than File Explorer"]]></title><description><![CDATA[
<p>The page is 404 now.  It looks like something went wrong when the author was trying to push a small edit to the page.  The content is viewable at <a href="https://github.com/hiAndrewQuinn/til/blob/main/copy-item-is-27-percent-slower-than-file-explorer-drag-and-drop-on-windows.md" rel="nofollow">https://github.com/hiAndrewQuinn/til/blob/main/copy-item-is-...</a></p>
]]></description><pubDate>Sat, 06 Dec 2025 23:01:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=46177381</link><dc:creator>abbeyj</dc:creator><comments>https://news.ycombinator.com/item?id=46177381</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46177381</guid></item><item><title><![CDATA[New comment by abbeyj in "You can't fool the optimizer"]]></title><description><![CDATA[
<p>> We all know that strlen will return 5, but some compilers don't: <a href="https://godbolt.org/z/M7x5qraE6" rel="nofollow">https://godbolt.org/z/M7x5qraE6</a><p>I feel like it is unfair to blame the compiler when you've explicitly asked for `/O1`.  If you change this to `/O2` or `/Ox` then MSVC will optimize this into a constant 5, proving that it does "know" that strlen will return 5 in this case.</p>
]]></description><pubDate>Wed, 03 Dec 2025 17:52:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=46137628</link><dc:creator>abbeyj</dc:creator><comments>https://news.ycombinator.com/item?id=46137628</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46137628</guid></item><item><title><![CDATA[New comment by abbeyj in "You can't fool the optimizer"]]></title><description><![CDATA[
<p>If you want to tell the compiler not to worry about the possible buffer overrun then you can try `int foo(char const s[static 4])`.  Or use `&` instead of `&&` to ensure that there is no short-circuiting, e.g. `if ((s[0] == 'h') & (s[1] == 'e') & (s[2] == 'l') & (s[3] == 'l'))`  Either way, this then compiles down to a single 32-bit comparison.<p>Interestingly, it is comparing against a different 32-bit value than `bar` does.  I think this is because you accidentally got the order backwards in `bar`.<p>The code in `bar` is probably not a good idea on targets that don't like unaligned loads.</p>
]]></description><pubDate>Wed, 03 Dec 2025 17:47:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=46137554</link><dc:creator>abbeyj</dc:creator><comments>https://news.ycombinator.com/item?id=46137554</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46137554</guid></item><item><title><![CDATA[New comment by abbeyj in "Resizeable Bar Support on the Raspberry Pi"]]></title><description><![CDATA[
<p>> "Pepp(?) boards"<p>"Perfboards", perhaps?</p>
]]></description><pubDate>Fri, 17 Oct 2025 22:19:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=45622811</link><dc:creator>abbeyj</dc:creator><comments>https://news.ycombinator.com/item?id=45622811</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45622811</guid></item><item><title><![CDATA[New comment by abbeyj in "Doom crash after 2.5 years of real-world runtime confirmed on real hardware"]]></title><description><![CDATA[
<p>Are you thinking of <a href="https://web.archive.org/web/19990508050925/http://support.microsoft.com/support/kb/articles/q216/6/41.asp" rel="nofollow">https://web.archive.org/web/19990508050925/http://support.mi...</a> ?  Or was there a different bug in NT 4?</p>
]]></description><pubDate>Wed, 17 Sep 2025 22:21:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=45282106</link><dc:creator>abbeyj</dc:creator><comments>https://news.ycombinator.com/item?id=45282106</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45282106</guid></item><item><title><![CDATA[New comment by abbeyj in "TIL: timeout in Bash scripts"]]></title><description><![CDATA[
<p>You need `"$@"`, not just `$@` at the end of the command.  Otherwise it will split any arguments that have spaces in them.  E.g. try<p><pre><code>    long_fn() {
      echo "$1"
      sleep "$2"
    }

    to 1s long_fn "This has spaces in it" 5</code></pre></p>
]]></description><pubDate>Mon, 26 May 2025 20:35:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=44101410</link><dc:creator>abbeyj</dc:creator><comments>https://news.ycombinator.com/item?id=44101410</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44101410</guid></item><item><title><![CDATA[New comment by abbeyj in "I built a native Windows Todo app in pure C (278 KB, no frameworks)"]]></title><description><![CDATA[
<p>I also used mingw and yet I arrived at different results.  Maybe it was a different version, or a different distro of MinGW, or a 32-bit vs. 64-bit issue, or I'm linking against a different CRT.  Without details from OP, we can't really tell.</p>
]]></description><pubDate>Sun, 11 May 2025 23:30:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=43958181</link><dc:creator>abbeyj</dc:creator><comments>https://news.ycombinator.com/item?id=43958181</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43958181</guid></item><item><title><![CDATA[New comment by abbeyj in "I built a native Windows Todo app in pure C (278 KB, no frameworks)"]]></title><description><![CDATA[
<p>I tried to reproduce this binary to see what the 278 KB was being taken up by.  The first obstacle that I ran into was that the build.bat file doesn't work if you have git configured to use core.autocrlf=false.  Changing that to core.autocrlf=true and recloning was sufficient to get me building.<p>I'm using x86_64-15.1.0-release-win32-seh-msvcrt-rt_v12-rev0.7z from <a href="https://github.com/niXman/mingw-builds-binaries/releases/tag/15.1.0-rt_v12-rev0">https://github.com/niXman/mingw-builds-binaries/releases/tag...</a> as the toolchain.  This produces a 102 KB .exe file.  Right off the bat we are doing much better than the claimed 278 KB.  Maybe the author is using a different toolchain or different settings?  Exact steps to reproduce would be welcome.<p>We can improve this by passing some switches to GCC.<p><pre><code>    gcc -Os => 100 KB
    gcc -Oz => 99 KB
    gcc -flto => 101 KB
    gcc -s => 51 KB
    gcc -s -Oz -flto => 47 KB
</code></pre>
If all you are interested in is a small .exe size, there is plenty of room for improvement here.</p>
]]></description><pubDate>Sun, 11 May 2025 21:03:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=43957149</link><dc:creator>abbeyj</dc:creator><comments>https://news.ycombinator.com/item?id=43957149</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43957149</guid></item><item><title><![CDATA[New comment by abbeyj in "Programming languages should have a tree traversal primitive"]]></title><description><![CDATA[
<p>It seems like it should be possible to factor out most of the iterator boilerplate into a helper class.  Then each place where you want to iterate you can construct an instance of that helper class and supply a lambda that specifies how to descend into children.  If you're doing the same iteration in several places then you can use a named function instead of a lambda, which means less typing for each `for` loop.  Here's a rough sketch: <a href="https://godbolt.org/z/x94WY77rv" rel="nofollow">https://godbolt.org/z/x94WY77rv</a></p>
]]></description><pubDate>Wed, 30 Apr 2025 04:25:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=43841253</link><dc:creator>abbeyj</dc:creator><comments>https://news.ycombinator.com/item?id=43841253</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43841253</guid></item><item><title><![CDATA[Probability Probably Doesn't Exist]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.scientificamerican.com/article/why-probability-probably-doesnt-exist-but-its-useful-to-act-like-it-does/">https://www.scientificamerican.com/article/why-probability-probably-doesnt-exist-but-its-useful-to-act-like-it-does/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=42524760">https://news.ycombinator.com/item?id=42524760</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Fri, 27 Dec 2024 18:41:52 +0000</pubDate><link>https://www.scientificamerican.com/article/why-probability-probably-doesnt-exist-but-its-useful-to-act-like-it-does/</link><dc:creator>abbeyj</dc:creator><comments>https://news.ycombinator.com/item?id=42524760</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42524760</guid></item><item><title><![CDATA[New comment by abbeyj in ""Rules" that terminal programs follow"]]></title><description><![CDATA[
<p>This is probably technically out of scope for this article.  Long-running processes that respond to SIGHUP will usually be running detached (with no controlling TTY).  Thus it is a bit of stretch to call them "terminal programs".</p>
]]></description><pubDate>Thu, 12 Dec 2024 23:55:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=42404659</link><dc:creator>abbeyj</dc:creator><comments>https://news.ycombinator.com/item?id=42404659</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42404659</guid></item><item><title><![CDATA[Major leap for nuclear clock paves way for ultraprecise timekeeping]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.nist.gov/news-events/news/2024/09/major-leap-nuclear-clock-paves-way-ultraprecise-timekeeping">https://www.nist.gov/news-events/news/2024/09/major-leap-nuclear-clock-paves-way-ultraprecise-timekeeping</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=42362215">https://news.ycombinator.com/item?id=42362215</a></p>
<p>Points: 12</p>
<p># Comments: 10</p>
]]></description><pubDate>Mon, 09 Dec 2024 01:11:28 +0000</pubDate><link>https://www.nist.gov/news-events/news/2024/09/major-leap-nuclear-clock-paves-way-ultraprecise-timekeeping</link><dc:creator>abbeyj</dc:creator><comments>https://news.ycombinator.com/item?id=42362215</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42362215</guid></item><item><title><![CDATA[New comment by abbeyj in "Regex Crossword"]]></title><description><![CDATA[
<p>I built a browser-based version that allows you to rotate it: <a href="http://www.stardrifter.org/regexp/" rel="nofollow">http://www.stardrifter.org/regexp/</a></p>
]]></description><pubDate>Fri, 30 Aug 2024 18:29:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=41403305</link><dc:creator>abbeyj</dc:creator><comments>https://news.ycombinator.com/item?id=41403305</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41403305</guid></item><item><title><![CDATA[New comment by abbeyj in "Don't blindly prefer `emplace_back` to `push_back` (2021)"]]></title><description><![CDATA[
<p>> The student dutifully changed the line, and both tools reported their satisfaction with the replacement<p>clang-tidy's `modernize-use-emplace` check warns for both the original version that uses `push_back` (as quoted in the article) and for the modified version that uses `emplace_back`:<p><pre><code>    warning: unnecessary temporary object created while calling emplace_back [modernize-use-emplace]
       13 |     widgets.emplace_back(Widget(foo, bar, baz));
          |                          ^~~~~~~             ~
</code></pre>
<a href="https://godbolt.org/z/sE7jWacTf" rel="nofollow">https://godbolt.org/z/sE7jWacTf</a><p>It appears that this check was improved to add this warning at some point between clang v14 and now.  At least things have improved since the article was written.</p>
]]></description><pubDate>Mon, 29 Jul 2024 00:04:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=41096949</link><dc:creator>abbeyj</dc:creator><comments>https://news.ycombinator.com/item?id=41096949</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41096949</guid></item></channel></rss>