<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: gsliepen</title><link>https://news.ycombinator.com/user?id=gsliepen</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sat, 07 Nov 2026 20:56:40 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=gsliepen" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by gsliepen in "Software may be getting worse, but it used to be horrible"]]></title><description><![CDATA[
<p>Ah, the venerable disk defragmenter! I ran it once, and it was slowly progressing. 97%, 98%, 99%, almost done now I thought! 100%, 101%, 102%, uh oh, that can't be good... but maybe it was just a rounding error in the calculation of the percentage? I stopped it at 110%, but the damage was already done, all the sectors shuffled so much the filesystem was effectively unreadable.</p>
]]></description><pubDate>Tue, 27 Oct 2026 13:04:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=50258581</link><dc:creator>gsliepen</dc:creator><comments>https://news.ycombinator.com/item?id=50258581</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50258581</guid></item><item><title><![CDATA[New comment by gsliepen in "C++ futures part 1: The mental model"]]></title><description><![CDATA[
<p>You can indeed, but it would change the code from the article drastically: you have to get rid of the mutex, the discriminant becomes an atomic variable, and you need barriers between access to the discriminant and to the value the source is holding. Performance-wise I don't think it will show a drastic improvement, the main benefit would be the size of the source.</p>
]]></description><pubDate>Wed, 21 Oct 2026 19:06:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=50185934</link><dc:creator>gsliepen</dc:creator><comments>https://news.ycombinator.com/item?id=50185934</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50185934</guid></item><item><title><![CDATA[New comment by gsliepen in "C++ futures part 1: The mental model"]]></title><description><![CDATA[
<p>> The wait_for method is why we have a condition variable at all. If it weren’t for that guy, we could have used std::atomic‘s wait and notify_all methods.<p>No, the std::mutex is the reason you have a condition variable. Never mix std::atomic with std::mutex-and-friends, you are very likely introducing race conditions that way.</p>
]]></description><pubDate>Wed, 21 Oct 2026 16:57:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=50184113</link><dc:creator>gsliepen</dc:creator><comments>https://news.ycombinator.com/item?id=50184113</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50184113</guid></item><item><title><![CDATA[New comment by gsliepen in "RepRapMicron"]]></title><description><![CDATA[
<p>I've worked with piezo actuators to align optical elements. They have great resolution, but they suffer from non-linearity, non-repeatability and a lot of hysteresis. Making motion accurate then becomes a problem of having encoders that can measure the position of your device with the required accuracy.</p>
]]></description><pubDate>Mon, 19 Oct 2026 08:27:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=50149792</link><dc:creator>gsliepen</dc:creator><comments>https://news.ycombinator.com/item?id=50149792</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50149792</guid></item><item><title><![CDATA[New comment by gsliepen in "Laptop Based on 6502 CPU"]]></title><description><![CDATA[
<p>Are segments really more flexible? I wrote some 8086 assembly back in the day, and they are a pain in the ass to work with. Code that spans segments has exactly the same problems bank switched systems have. I think the main benefit of segments is that only the CPU needs to worry about the segments, whereas with (most if not all?) bank switched systems, the whole computer sees banks being switched, which is a problem for DMA.</p>
]]></description><pubDate>Mon, 19 Oct 2026 08:06:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=50149646</link><dc:creator>gsliepen</dc:creator><comments>https://news.ycombinator.com/item?id=50149646</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50149646</guid></item><item><title><![CDATA[New comment by gsliepen in "Unikernels were hard. key word: were"]]></title><description><![CDATA[
<p>It's also not like you are stuck with a full OS when you are running Linux. You can remove features from the kernel you don't need, and you can configure a bare-bones busybox to be your userspace, or just run your application directly as the init process.</p>
]]></description><pubDate>Sun, 11 Oct 2026 10:01:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=50041494</link><dc:creator>gsliepen</dc:creator><comments>https://news.ycombinator.com/item?id=50041494</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50041494</guid></item><item><title><![CDATA[New comment by gsliepen in "GameBoy on E-Paper ESP32 at 30FPS [video]"]]></title><description><![CDATA[
<p>But that's not what's happening here. If anything, it's driving the e-ink display <i>less</i>. The main risk is that grays are not well-defined. Given a pulse train to get a certain gray level, that gray level might change over time due to aging of the e-ink panel, or it might change directly with temperature or other environmental factors.<p>Another issue I heard, but I don't know enough about the physics of e-ink to know if this is correct, is that if you are at a gray level, the white and black particles are mixed and might exchange charge, thereby causing some particles to not move correctly anymore.</p>
]]></description><pubDate>Sun, 11 Oct 2026 09:54:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=50041453</link><dc:creator>gsliepen</dc:creator><comments>https://news.ycombinator.com/item?id=50041453</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50041453</guid></item><item><title><![CDATA[New comment by gsliepen in "Closing the IPv6 first-packet gap with GRAND"]]></title><description><![CDATA[
<p>Even weirder: when the router forwards the packet from the host to the Internet, it already sees both the source IPv6 and MAC address, so it could store them.<p>Maybe there are some weird situations where a host that just got its own IP address starts proxying for a third node that wants return packets to asymmetrically bypass the host?</p>
]]></description><pubDate>Tue, 15 Sep 2026 17:05:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=49715511</link><dc:creator>gsliepen</dc:creator><comments>https://news.ycombinator.com/item?id=49715511</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49715511</guid></item><item><title><![CDATA[New comment by gsliepen in "Linux Zoom client proactively reading everything written to X11 clipboard"]]></title><description><![CDATA[
<p>I think the solution is to <i>really</i> give the user control over when something is pasted and into which application. So if you press ctrl-V, it shouldn't pass that on to an application that then gets to poll the clipboard, instead the OS or window manager should send the contents of the clipboard to the application the moment ctrl-V is hit.</p>
]]></description><pubDate>Sun, 13 Sep 2026 10:52:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=49682476</link><dc:creator>gsliepen</dc:creator><comments>https://news.ycombinator.com/item?id=49682476</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49682476</guid></item><item><title><![CDATA[New comment by gsliepen in "216M Spy TVs – The LG Smart TV Problem [video]"]]></title><description><![CDATA[
<p>> Intent matters a great deal,<p>The road to hell is paved with good intentions.</p>
]]></description><pubDate>Tue, 08 Sep 2026 08:06:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=49607117</link><dc:creator>gsliepen</dc:creator><comments>https://news.ycombinator.com/item?id=49607117</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49607117</guid></item><item><title><![CDATA[New comment by gsliepen in "WebFPGA (2019)"]]></title><description><![CDATA[
<p>For FPGAs in general: When latency is important. Even a $1 MCU has a huge amount of compute power nowadays, and they can simulate many things, but if you need to deterministically react within 1 microsecond to what happens on a pin, and your MCU doesn't already have a hardware peripheral that does exactly what you want, you're probably going to need an FPGA.<p>Some recent advances, like the Raspberry Pi Pico's PIO units, have made it possible to do things that MCU's couldn't do before, like emulating a ROM chip. But there are limits to what the PIOs can do.<p>If it comes to pure computation and not latency, you need some very specific use case before an FPGA becomes better than a regular CPU. Most likely when it involves massive parallelism and custom caches and interconnects. Although nowadays NPUs are starting to fill that niche.<p>For tiny boards in particular: getting experience and having fun.</p>
]]></description><pubDate>Wed, 02 Sep 2026 08:39:54 +0000</pubDate><link>https://news.ycombinator.com/item?id=49533528</link><dc:creator>gsliepen</dc:creator><comments>https://news.ycombinator.com/item?id=49533528</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49533528</guid></item><item><title><![CDATA[New comment by gsliepen in "Salad Theory"]]></title><description><![CDATA[
<p>The Swedes managed it.</p>
]]></description><pubDate>Wed, 02 Sep 2026 08:06:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=49533267</link><dc:creator>gsliepen</dc:creator><comments>https://news.ycombinator.com/item?id=49533267</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49533267</guid></item><item><title><![CDATA[New comment by gsliepen in "Picophysics: Single file physics for games on platforms like N64, PSX, DC"]]></title><description><![CDATA[
<p>> Everything being static inline makes it hostile to these older systems which have limited RAM.<p>Compilers can un-inline as well. In fact, since every function is defined in the header file, the static inline annotation means very little, it's more of a hint; the functions that were not marked static inline can be inlined just as well by the compiler.</p>
]]></description><pubDate>Mon, 10 Aug 2026 08:13:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=49240807</link><dc:creator>gsliepen</dc:creator><comments>https://news.ycombinator.com/item?id=49240807</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49240807</guid></item><item><title><![CDATA[New comment by gsliepen in "ESP32-C6 Power Consumption: Arduino vs. Zephyr vs. ESP-IDF Comparison"]]></title><description><![CDATA[
<p>> execute instructions faster (via -O3)<p>One problem with -O3 is that it disregards any effects of the cache (and yes, ESP32s have a bit of cache memory). I recommend using -Os as the default optimization level, as it often has the same or almost the same performance benefits as -O3. Less cache pressure is beneficial, especially for bigger applications, and the smaller code size is of course nice on embedded systems that have limited amounts of flash storage. If you know some specific functions or source files are performance sensitive, you can use pragmas to change optimization for those:<p><pre><code>    #pragma GCC optimize("O3")
</code></pre>
See <a href="https://gcc.gnu.org/onlinedocs/gcc/Function-Specific-Option-Pragmas.html" rel="nofollow">https://gcc.gnu.org/onlinedocs/gcc/Function-Specific-Option-...</a>. Clang has a similar pragma, see <a href="https://clang.llvm.org/docs/LanguageExtensions.html#extensions-for-selectively-disabling-optimization" rel="nofollow">https://clang.llvm.org/docs/LanguageExtensions.html#extensio...</a>.</p>
]]></description><pubDate>Thu, 30 Jul 2026 09:06:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=49107567</link><dc:creator>gsliepen</dc:creator><comments>https://news.ycombinator.com/item?id=49107567</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49107567</guid></item><item><title><![CDATA[New comment by gsliepen in "LLM Usage in Debian: Three Proposals"]]></title><description><![CDATA[
<p>We'll see how much people like it once the cheap subscriptions end and the actual cost of LLMs (+ profit margin) is asked of them. Although I'm suspecting that eventually, machines that are good enough to run reasonably useful models will become cheap enought that most developers will have those, but that might be some years from now.<p>Debian is run by volunteers, and I think Debian Developers would not like it if they would have to pay to work on it, thus there will be some aversion to (at least frontier) LLMs.</p>
]]></description><pubDate>Sun, 26 Jul 2026 11:05:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=49056846</link><dc:creator>gsliepen</dc:creator><comments>https://news.ycombinator.com/item?id=49056846</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49056846</guid></item><item><title><![CDATA[New comment by gsliepen in "LLM Usage in Debian: Three Proposals"]]></title><description><![CDATA[
<p>> Notable are the endorsements, which are balanced over all three options, perhaps indicating only 1/3 are supportive of a more permissive position.<p>That's not the case. First, you can't really extrapolate from endorsers to all of the Debian Developers. Second, endorsers might not have looked at the other proposals at all, and the fact that they only endorsed one option doesn't mean they don't support the others. And you can also endorse an option if you believe it is a valid, useful proposal to add to the GR, even if you don't agree with it personally.<p>But most importantly, when Debian votes, you don't vote for a single option, instead you rank the choices, and apart from the given options, another option "further discussion" is always added to the list of choices. It's likely that many who rank the most permissive option first will rank the lesser permissive option second, above "further discussion", or they could even give options the same rank (if they really don't think one is better than the other).</p>
]]></description><pubDate>Sun, 26 Jul 2026 10:56:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=49056776</link><dc:creator>gsliepen</dc:creator><comments>https://news.ycombinator.com/item?id=49056776</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49056776</guid></item><item><title><![CDATA[New comment by gsliepen in "Git rebase -I is not that scary"]]></title><description><![CDATA[
<p>If you do a rebase -i because you want to squash or fix some commits, then there's git commit --squash and git commit --fixup commands which will mark commits as intending to squash or fixup another commit, and then you can use git rebase --autosquash <base> to automatically do what you want in one go. Of course, often you forget to use the --squash/--fixup options or you can't be bothered to lookup the hash of the commit you want to fix, so you'll end up using git rebase -i anyway.</p>
]]></description><pubDate>Sun, 26 Jul 2026 10:38:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=49056671</link><dc:creator>gsliepen</dc:creator><comments>https://news.ycombinator.com/item?id=49056671</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49056671</guid></item><item><title><![CDATA[New comment by gsliepen in "PartialString – A finite-difference time-domain physical modelling synthesiser"]]></title><description><![CDATA[
<p>I actually tried doing it as a Vulkan compute shader, continuously simulating 128 strings (all possible MIDI notes). It didn't work very well. While the latency was tolerable, it was slower than doing the same on the CPU (although this was with an integrated GPU, not a dedicated card).</p>
]]></description><pubDate>Sat, 25 Jul 2026 21:27:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=49051765</link><dc:creator>gsliepen</dc:creator><comments>https://news.ycombinator.com/item?id=49051765</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49051765</guid></item><item><title><![CDATA[New comment by gsliepen in "PartialString – A finite-difference time-domain physical modelling synthesiser"]]></title><description><![CDATA[
<p>The simplest form of string synthesis is perhaps the Karplus-Strong algorithm (<a href="https://en.wikipedia.org/wiki/Karplus%E2%80%93Strong_string_synthesis" rel="nofollow">https://en.wikipedia.org/wiki/Karplus%E2%80%93Strong_string_...</a>). Instead of simulating the motion of all parts of the string for each timestep, it simplifies it to a perfect transmission of motion, except at the end of the string where some function will be applied that captures the losses from the motion, typically by performing a simple low-pass filter. Computationally it is very efficient: just a few FMA operations per sample. The drawback is that you need a buffer to store the state of the string, which can be quite large (especially for low frequencies which correspond to long strings), and you need to read and write to different parts of this buffer. Thus, if you are simulating multiple strings, it's more likely that memory bandwidth will be the bottleneck instead of raw compute power.</p>
]]></description><pubDate>Sat, 25 Jul 2026 09:42:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=49046116</link><dc:creator>gsliepen</dc:creator><comments>https://news.ycombinator.com/item?id=49046116</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49046116</guid></item><item><title><![CDATA[New comment by gsliepen in "How we can reduce traffic congestion"]]></title><description><![CDATA[
<p>> However, I have to wonder about the cost of these projects.<p>A very good way to deal with this is to recognize that all infrastructure needs maintenance and periodic replacement. Once it is time to replace a road, that is when you change it to include bike paths, bus lanes and so on.<p>You need some foresight, planning, make new road designs part of law, and political will. Some countries have made this work very well.</p>
]]></description><pubDate>Mon, 13 Jul 2026 07:16:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=48889009</link><dc:creator>gsliepen</dc:creator><comments>https://news.ycombinator.com/item?id=48889009</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48889009</guid></item></channel></rss>