<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: buybackoff</title><link>https://news.ycombinator.com/user?id=buybackoff</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Thu, 25 Jun 2026 13:35:40 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=buybackoff" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by buybackoff in "Epoll vs. io_uring in Linux"]]></title><description><![CDATA[
<p>In the context of a proxy one should mention epoll_wait busy poll. I've recently dived into this when reviewing low-latency options, and found that it's almost possible to do user space busy polling just for simple sockets, no DPDK/VMA/io_uring needed, and Fastly contributed to this and uses it.<p>It's too low level, I cannot even tell that I understand everything, only the concept, so I will just share some links. It works only per NAPI epoll context, and one cannot easily control NAPI ID, but if an entire machine is dedicated for a proxy one can do a simple trick of assinging sockets by NAPI ID to dedicated pollers.<p>In my use case, it was not a proxy, but N socket polling on a machine that then processes received data. It does not look feasible for such case, maybe round-robin polling of NAPI contexts from a single thread may work. What I would really want to have one day from the kernel is that I can easily tell it: trust me, I will poll this single socket eventually, never ever use IRQ path for it.<p>Previous HN discussion of the kernel feature: <a href="https://news.ycombinator.com/item?id=43749271">https://news.ycombinator.com/item?id=43749271</a>
Nice presentation by the Fastly contributor, with nice diagrams making the big picture much easier to understand: <a href="https://netdevconf.info/0x18/docs/netdev-0x18-paper10-talk-slides/Real%20world%20tips,%20tricks,%20and%20notes%20of%20using%20epoll-based%20busy%20polling%20v2.pdf" rel="nofollow">https://netdevconf.info/0x18/docs/netdev-0x18-paper10-talk-s...</a>
LWN articles: <a href="https://lwn.net/Articles/1008399/" rel="nofollow">https://lwn.net/Articles/1008399/</a>, <a href="https://lwn.net/Articles/997491/" rel="nofollow">https://lwn.net/Articles/997491/</a>,  <a href="https://lwn.net/Articles/959462/" rel="nofollow">https://lwn.net/Articles/959462/</a>
Kernel docs: <a href="https://docs.kernel.org/networking/napi.html#irq-mitigation" rel="nofollow">https://docs.kernel.org/networking/napi.html#irq-mitigation</a></p>
]]></description><pubDate>Sun, 21 Jun 2026 12:16:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=48618267</link><dc:creator>buybackoff</dc:creator><comments>https://news.ycombinator.com/item?id=48618267</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48618267</guid></item><item><title><![CDATA[New comment by buybackoff in "Picollo: Modern HDR histogram and PMU counters for .NET"]]></title><description><![CDATA[
<p>Picollo is a new library for serious performance work in .NET. Picollo stands for Performance Instrumentation and Continuous Observation for Low-Level Optimization. The initial public release of Picollo v0.1.0 contains two components. First, a modern version of an HDR histogram, which is much faster for recording data and easier to use. Second, a set of APIs for `perf_event_open`, including fast-path reads, that give raw access to PMU counters from .NET on Linux, WSL included.</p>
]]></description><pubDate>Sat, 16 May 2026 00:35:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=48155686</link><dc:creator>buybackoff</dc:creator><comments>https://news.ycombinator.com/item?id=48155686</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48155686</guid></item><item><title><![CDATA[Picollo: Modern HDR histogram and PMU counters for .NET]]></title><description><![CDATA[
<p>Article URL: <a href="https://hotforknowledge.com/2026/05/15/introducing-picollo/">https://hotforknowledge.com/2026/05/15/introducing-picollo/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=48155685">https://news.ycombinator.com/item?id=48155685</a></p>
<p>Points: 5</p>
<p># Comments: 1</p>
]]></description><pubDate>Sat, 16 May 2026 00:35:39 +0000</pubDate><link>https://hotforknowledge.com/2026/05/15/introducing-picollo/</link><dc:creator>buybackoff</dc:creator><comments>https://news.ycombinator.com/item?id=48155685</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48155685</guid></item><item><title><![CDATA[New comment by buybackoff in "Do_not_track"]]></title><description><![CDATA[
<p>No, it should be a required (by law) opt-in  TRACK_ME_I_DO_NOT_CARE_OR_AM_A_TEAPOT=418.<p>The proposed way just normalizes tracking.</p>
]]></description><pubDate>Sat, 02 May 2026 20:40:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=47990271</link><dc:creator>buybackoff</dc:creator><comments>https://news.ycombinator.com/item?id=47990271</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47990271</guid></item><item><title><![CDATA[New comment by buybackoff in "My Homelab Setup"]]></title><description><![CDATA[
<p>TrueNAS works perfectly as a VM eg on Proxmox with passing through a SATA controller from the motherboard. It may not work always with bad IOMMU groups, but I have this on an old Xeon Precision Tower 3420 and not so old Asus Z690 motherboard. NVMe passthrough should be straightforward as well. No need for LSIs or cheap PCI-to-SATA cards if the number of existing physical slots is enough. And as far as TrueNAS is concerned, it's baremetal disk access. Even the latest TrueNAS is not in the same league as Proxmox for managing VMs/containers, not even close.</p>
]]></description><pubDate>Sun, 08 Mar 2026 23:21:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=47302714</link><dc:creator>buybackoff</dc:creator><comments>https://news.ycombinator.com/item?id=47302714</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47302714</guid></item><item><title><![CDATA[New comment by buybackoff in "Floor796"]]></title><description><![CDATA[
<p>For some time recently, I was zooming in on Bosch's The Garden of Earthly Delights. The floor's level of interactivity would be so nice there. At least on this floor, I can guess what's going on quite reliably. The experience is quite similar at some level though. I saw Bosch's originals (or 1-to-1 by size repros) many years ago and without zooming in, it was incomprehensible. With zoom, the details are overwhelming.<p><a href="https://en.wikipedia.org/wiki/The_Garden_of_Earthly_Delights#/media/File:The_Garden_of_earthly_delights.jpg" rel="nofollow">https://en.wikipedia.org/wiki/The_Garden_of_Earthly_Delights...</a></p>
]]></description><pubDate>Sat, 27 Dec 2025 19:33:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=46404469</link><dc:creator>buybackoff</dc:creator><comments>https://news.ycombinator.com/item?id=46404469</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46404469</guid></item><item><title><![CDATA[New comment by buybackoff in "The Ultimate Windows Utility (2022)"]]></title><description><![CDATA[
<p>Group Policy Edit is the way to restrict many things. Disabling automatic updates helps. I have had forced reboots very rarely, I believe that were severe vulnerability fixes.<p>But my use case is never 24/7, I hibernate it overnight and every time I leave for longer than going to a grocery shop, and I have several Proxmox boxes with proper OSes for hosting stuff. Windows + WSL is my dev/media/web/files/OneDrive machine, a compact silent SFF box that is powerful enough for 90+% of my daily tasks. Lately I try Linux Desktop on Fedora/Ubuntu with every major version, however RDP server and secure boot that I can trust to work and not break myself - these things remain unsatisfactory.</p>
]]></description><pubDate>Wed, 24 Dec 2025 15:52:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=46376596</link><dc:creator>buybackoff</dc:creator><comments>https://news.ycombinator.com/item?id=46376596</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46376596</guid></item><item><title><![CDATA[New comment by buybackoff in "The Ultimate Windows Utility (2022)"]]></title><description><![CDATA[
<p>Agreed. I had to run Windows recovery only once over the last 5+ years, after running some debloating script with many thousands stars on GitHub.<p>I think the Pro version is enough for reasonable experience, most of the terrible stories originate from the Home version, which should be avoided like the plague.</p>
]]></description><pubDate>Wed, 24 Dec 2025 12:26:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=46374979</link><dc:creator>buybackoff</dc:creator><comments>https://news.ycombinator.com/item?id=46374979</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46374979</guid></item><item><title><![CDATA[New comment by buybackoff in "It's Always TCP_NODELAY"]]></title><description><![CDATA[
<p>Then at a lower level and smaller latencies it's often interrupt moderation that must be disabled. Conceptually similar idea to the Nagle algo - coalesce overheads by waiting, but on the receiving end in hardware.</p>
]]></description><pubDate>Tue, 23 Dec 2025 01:52:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=46361523</link><dc:creator>buybackoff</dc:creator><comments>https://news.ycombinator.com/item?id=46361523</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46361523</guid></item><item><title><![CDATA[New comment by buybackoff in "Ireland’s Diarmuid Early wins world Microsoft Excel title"]]></title><description><![CDATA[
<p>The Spiderman would be better. If anyone used formulas' precedents/dependents that would be instantly visual.</p>
]]></description><pubDate>Sat, 20 Dec 2025 21:24:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=46339761</link><dc:creator>buybackoff</dc:creator><comments>https://news.ycombinator.com/item?id=46339761</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46339761</guid></item><item><title><![CDATA[New comment by buybackoff in "Ireland’s Diarmuid Early wins world Microsoft Excel title"]]></title><description><![CDATA[
<p>I could do half-screen nested array formulas when Excel was before the ribbon (and screen resolutions were smaller), out of necessity and because I could. It was in quite demanding uni home calculations and then mostly when working as intern in IB. But then having a life is also important...<p>The only thing I still enjoy is that any data smaller than 1M rows is sliced and diced almost without thinking. I am sometimes really grateful that MS did not break the shortcuts, while almost breaking the product overall. The muscle memory works perfectly.</p>
]]></description><pubDate>Sat, 20 Dec 2025 21:07:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=46339641</link><dc:creator>buybackoff</dc:creator><comments>https://news.ycombinator.com/item?id=46339641</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46339641</guid></item><item><title><![CDATA[New comment by buybackoff in "Koralm Railway"]]></title><description><![CDATA[
<p>Just yesterday B1M published an interesting video about the future longest tunnel between Lyon, France and Turin, Italy. It will be more than 50km, deeply below the Alps. The project has finally secured funding, from both countries and EU, and is on track.<p><a href="https://www.youtube.com/watch?v=NFrr-L_BcC4" rel="nofollow">https://www.youtube.com/watch?v=NFrr-L_BcC4</a></p>
]]></description><pubDate>Fri, 12 Dec 2025 13:13:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=46243809</link><dc:creator>buybackoff</dc:creator><comments>https://news.ycombinator.com/item?id=46243809</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46243809</guid></item><item><title><![CDATA[New comment by buybackoff in "Cloudflare Global Network experiencing issues"]]></title><description><![CDATA[
<p>The main bike rental Velib in Paris has the app not working, but the bikes can be taken with NFC. However, my station, which is always full at this time, is now empty, with only 2 bad bikes. It maybe related. Yet, push notifications are working.<p>I'm going to take the metro now and thinking how long do we have until the entire transit network goes down because of a similar incident.</p>
]]></description><pubDate>Tue, 18 Nov 2025 12:05:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=45964286</link><dc:creator>buybackoff</dc:creator><comments>https://news.ycombinator.com/item?id=45964286</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45964286</guid></item><item><title><![CDATA[New comment by buybackoff in "The state of SIMD in Rust in 2025"]]></title><description><![CDATA[
<p>Unsafety means different things. In C#, SIMD is possible via `ref`s, which maintains GC safety (no GC holes), but removes bounds safety (array length check). The API is called appropriately Vector.Load<i>Unsafe</i></p>
]]></description><pubDate>Wed, 05 Nov 2025 21:52:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=45828567</link><dc:creator>buybackoff</dc:creator><comments>https://news.ycombinator.com/item?id=45828567</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45828567</guid></item><item><title><![CDATA[New comment by buybackoff in "How memory maps (mmap) deliver faster file access in Go"]]></title><description><![CDATA[
<p>It looks suspicious at 25x. Even 2.5x would be suspicious unless reading very small records.<p>I assume both cases have the file cached in RAM already fully, with a tiny size of 100MB. But the file read based version actually copies the data into a given buffer, which involves cache misses to get data from RAM to L1 for copying. The mmap version just returns the slice and it's discarded immediately, the actual data is not touched at all. Each record is 2 cache lines and with random indices is not prefetched. For the CPU AMD Ryzen 7 9800X3D mentioned in the repo, just reading 100 bytes from RAM to L1 should take ~100 nanos.<p>The benchmark compares actually getting data vs getting data location. Single digit nanos is the scale of good hash tables lookups with data in CPU caches, not actual IO. For fairness, both should use/touch the data, eg copy it.</p>
]]></description><pubDate>Thu, 23 Oct 2025 23:31:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=45688819</link><dc:creator>buybackoff</dc:creator><comments>https://news.ycombinator.com/item?id=45688819</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45688819</guid></item><item><title><![CDATA[New comment by buybackoff in "No I don't want to turn on Windows Backup with One Drive"]]></title><description><![CDATA[
<p>Microsoft is notoriously bad with naming. In this case likely intentionally. The SKUs: Home = Crap, Pro = OKish Windows, Enterprise = Pro. But people who do not care about lack of RDP server, Hyper-V, BitLocker do not care about the rest, probably. Then confusion araises from "first look at Windows" by pro users.</p>
]]></description><pubDate>Sun, 12 Oct 2025 18:36:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=45560576</link><dc:creator>buybackoff</dc:creator><comments>https://news.ycombinator.com/item?id=45560576</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45560576</guid></item><item><title><![CDATA[New comment by buybackoff in "No I don't want to turn on Windows Backup with One Drive"]]></title><description><![CDATA[
<p>I wonder if most complaints are about pre-installed OEM Windows Home (the one with Candy Crush and 10s of other crap, including from a vendor) and bundled crappy cut-off OneDrive? I have Windows Pro and Office 365 Family option (5 accounts, full Office and 1TB OneDrive each). Most user-hidden Windows settings are in Group Policy Editor, or registry still works. OneDrive proper has toggles for every folder (Desktop, Documents, Puctures) discussed in the post.<p>After I lost 8 months of photos with a phone ~10 years ago, being sure it was all backed to Google Photos, I would rather trust Microsoft, than risk losing data, and now backup to both clouds. The paid Office+OneDrive is great value.<p>It just works. Yes, defaults are annoying, but could be changed. I recently enabled a blocked-by-default outgoing firewall, and I have much more questions to JetBrains Rider trying to ignore my system DNS setting and so to bypass Pi-Hole multiple times per minute, than to Microsoft.</p>
]]></description><pubDate>Sun, 12 Oct 2025 17:22:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=45559954</link><dc:creator>buybackoff</dc:creator><comments>https://news.ycombinator.com/item?id=45559954</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45559954</guid></item><item><title><![CDATA[New comment by buybackoff in "Safe zero-copy operations in C#"]]></title><description><![CDATA[
<p>It just looks like you are much more fluent in C/C++ than in C#.</p>
]]></description><pubDate>Tue, 30 Sep 2025 20:54:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=45431105</link><dc:creator>buybackoff</dc:creator><comments>https://news.ycombinator.com/item?id=45431105</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45431105</guid></item><item><title><![CDATA[New comment by buybackoff in "Safe zero-copy operations in C#"]]></title><description><![CDATA[
<p>I have mostly GC holes in mind when say "safer". Or heap fragmentation, even if it's POH</p>
]]></description><pubDate>Tue, 30 Sep 2025 17:50:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=45428730</link><dc:creator>buybackoff</dc:creator><comments>https://news.ycombinator.com/item?id=45428730</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45428730</guid></item><item><title><![CDATA[New comment by buybackoff in "Safe zero-copy operations in C#"]]></title><description><![CDATA[
<p>I use an extension for arrays, something like:<p><pre><code>    internal static class ArrayExtensions
    {
        [MethodImpl(MethodImplOptions.AggressiveInlining)]
        public static ref T RefAtUnsafe<T>(this T[] array, nint index)
        {
    #if DEBUG
            return ref array[index];
    #else
            Debug.Assert((uint)index < array.Length, "RefAtUnsafe: (uint)index < array.Length");
            return ref Unsafe.Add(ref MemoryMarshal.GetArrayDataReference(array), (nuint)index);
    #endif
        }
    }
</code></pre>
then your example turns into:<p><pre><code>    public static void AddBatch(int[] a, int[] b, int count)
    {
        // Storing a reference is often more expensive that re-taking it in a loop, requires benchmarking
        for (nint i = 0; i < (uint)count; i++)
            a.RefAtUnsafe(i) += b.RefAtUnsafe(i);
    }

</code></pre>
The JITted assembly: <a href="https://sharplab.io/#v2:EYLgxg9gTgpgtADwGwBYA0AXEBDAzgWwB8ABABgAJiBGAOgCUBXAOwwEt8YaBhCfAB1YAbGFADKIgG6swMXAG4AsACgylWoxbtOASRYiIfcVCkz5y4gGZKAJnJdyAb2XkXlK9SSUU5AIIATPwAhbAwwAAsAClYWAG0AXXJsNHJojHjyYGTU8khmDABKZ1cnJVcy8lgAMxSWCuxyAF4KmGqAWRh8aABPVuwoXDDsQRoAcRgMHygobC6AERDsOhaRGCYZCOx8xVLylyqajArgRua2ju7e/sHhsYmpmfmMReXYNZgI4C2i3crocgimNlWCdSMkmCcAal8rkWHIUuQADzkJhw1gAajRhR2uzKAFUmLhsJVOP4/BF9tMsvlyGimvjCcSaKTyS0jlTtmUAL7fcg8yxqTzEbyk4KhMLWKKxBJJA7pTIHHIQPJYsolHHkAD0GvIogw0GiAHNEqcVm8UrhyBBKhhVuROrByDAEHxVrhWBIYOQMINDrA4E8ANaGlKHaLGwQQAzJWAARwYrFgFuAq3C+D6QaYBp5ZV+UH+gNqwKapFRiP+8ZY0KVsJSGJV6tc9KJJICLLO9p6fQGQ1G40m0zmCyWxNe602VJpdIJzaZrf27Q7l27Nz790HT2HpvWn3ZPO52N5B/5Hi8vgCovCFklaWlWSlGTvhxhBR5apxWp1eqgwfqVS3ntYC0rRtcF7U9J0XQJd1PW9EJmn9bAMyNVhQ3BeoIyjZo4wTWQMhTMI0ygJDs1cXN8yBEFSyRCIKwKZ9UTrEjdmwegWh8DAm2JKJqVpDJWMqdjOPeVgvgPfcyj5dwqE8ZgGU9IUzyCEJwgAVmvdIZVSOVH0VZVXyY8hKlYBAYD8f5UgAKkSAAFE5NgMoyTLM68rOAWymk+Ay3wbQzoGvFIGhLeEkXo2tMQM9VsGsmJWASXi3JiuIORxcTXFSw992UVIRCYIYBRsXw1wAUQQEC3QgAllG88gYnab0ID8bR+EECI6rCBqmr4QQAHk+DYCrcCZA0DUTN0PV0QRokNfI4kk/L9gAFXIYdBOnYkEQWgA+CJvUA8gFo0tcwSBJg/CdesXBKABiVhqlmIrAlxEYDOIAB2U5EjXGLTqdJLlCumBBFwGAXve/YhNnMl53OKBOyuHtbn7B4hxeFN3j6Ad8mSAFaPyaIzoQUSAdO2692UTkgA===" rel="nofollow">https://sharplab.io/#v2:EYLgxg9gTgpgtADwGwBYA0AXEBDAzgWwB8AB...</a><p>I'm convinced C# is so much better for high perf code, because yes it can do everything (including easy-to-use x-arch SIMD), but it lets one not bother about things that do not matter and use safe code. It's so pragmatic.<p>See also the top comments from a recent thread, I totally agree. <a href="https://news.ycombinator.com/item?id=45253012">https://news.ycombinator.com/item?id=45253012</a><p>BTW, do not use [MethodImpl(MethodImplOptions.AggressiveOptimization)], it disables TieredPGO, which is a huge thing for latest .NET versions.</p>
]]></description><pubDate>Tue, 30 Sep 2025 16:29:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=45427614</link><dc:creator>buybackoff</dc:creator><comments>https://news.ycombinator.com/item?id=45427614</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45427614</guid></item></channel></rss>