<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Jonathan Beard</title><description>Jonathan Beard&apos;s blog about systems, performance, and tech.</description><link>https://www.jonathanbeard.io/</link><item><title>Why More Cores Stopped Saving Us</title><link>https://www.jonathanbeard.io/blog/2026/06/19/more-cores-stopped-saving-us.html</link><guid isPermaLink="true">https://www.jonathanbeard.io/blog/2026/06/19/more-cores-stopped-saving-us.html</guid><description>Adding cores quietly stopped working, and Amdahl told us why forty years early: scaling stalls on the one dependency you can&apos;t parallelize away, not the resource you keep buying.</description><pubDate>Fri, 19 Jun 2026 00:00:00 GMT</pubDate></item><item><title>An Abstraction Is Lossless Only If It&apos;s Context-Free</title><link>https://www.jonathanbeard.io/blog/2026/06/13/lossless-abstractions.html</link><guid isPermaLink="true">https://www.jonathanbeard.io/blog/2026/06/13/lossless-abstractions.html</guid><description>When can you abstract something away for free? The condition has two names, context-free and zero mutual information, and almost nothing in a real system meets it.</description><pubDate>Sat, 13 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Every Abstraction Is a Debt You Haven&apos;t Been Billed For Yet</title><link>https://www.jonathanbeard.io/blog/2026/06/12/abstraction-debt.html</link><guid isPermaLink="true">https://www.jonathanbeard.io/blog/2026/06/12/abstraction-debt.html</guid><description>Every abstraction is borrowed complexity: a quiet debt that comes due at 3am, in the layer you chose never to learn. On staying ahead of the bill.</description><pubDate>Fri, 12 Jun 2026 00:00:00 GMT</pubDate></item><item><title>I Bought a Camera for a Photo Booth. Now I Photograph Llamas.</title><link>https://www.jonathanbeard.io/blog/2026/06/11/vintage-glass-and-llamas.html</link><guid isPermaLink="true">https://www.jonathanbeard.io/blog/2026/06/11/vintage-glass-and-llamas.html</guid><description>How a wedding photo booth led me to a Nikon Zf, a bag of cheap vintage glass, manual focus, and a running habit of photographing tiny plastic llamas wherever work sends me.</description><pubDate>Thu, 11 Jun 2026 00:00:00 GMT</pubDate></item><item><title>I Spent Years on How Machines Coordinate. Then I Started Thinking About Us.</title><link>https://www.jonathanbeard.io/blog/2026/06/10/machines-then-us.html</link><guid isPermaLink="true">https://www.jonathanbeard.io/blog/2026/06/10/machines-then-us.html</guid><description>A systems architect&apos;s questions, pointed one level up: from cores and caches to minds, institutions, and the societies they run on.</description><pubDate>Wed, 10 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Managing Parallel, Part 4: The Machine Underneath</title><link>https://www.jonathanbeard.io/blog/2026/06/06/managing-parallelism-part-4.html</link><guid isPermaLink="true">https://www.jonathanbeard.io/blog/2026/06/06/managing-parallelism-part-4.html</guid><description>Managing Parallel, Part 4: The Machine Underneath. Memory ordering (x86-TSO vs Arm), NUMA topology, and cache-line atomicity</description><pubDate>Sat, 06 Jun 2026 09:05:00 GMT</pubDate></item><item><title>Cross-Platform Home Storage: NFS, SMB, and the UID Trap</title><link>https://www.jonathanbeard.io/blog/2026/06/06/cross-platform-home-storage-nfs-smb.html</link><guid isPermaLink="true">https://www.jonathanbeard.io/blog/2026/06/06/cross-platform-home-storage-nfs-smb.html</guid><description>One pool of storage that Linux, macOS, and Windows can all share: NFS for the compute nodes, SMB for the laptops, and the UID-alignment trick that stops NFS permissions from ruining your week. Built for home ML clusters and home labs.</description><pubDate>Sat, 06 Jun 2026 09:03:00 GMT</pubDate></item><item><title>Managing Parallel, Part 3: When Parallel Goes Wrong</title><link>https://www.jonathanbeard.io/blog/2026/06/06/managing-parallelism-part-3.html</link><guid isPermaLink="true">https://www.jonathanbeard.io/blog/2026/06/06/managing-parallelism-part-3.html</guid><description>Managing Parallel, Part 3: When Parallel Goes Wrong. The short list of broken contracts behind most concurrency bugs</description><pubDate>Sat, 06 Jun 2026 09:00:00 GMT</pubDate></item><item><title>Managing Parallel, Part 2: To thread or not to thread</title><link>https://www.jonathanbeard.io/blog/2017/08/14/managing-parallelism-part-2.html</link><guid isPermaLink="true">https://www.jonathanbeard.io/blog/2017/08/14/managing-parallelism-part-2.html</guid><description>Managing Parallel, Part 2</description><pubDate>Mon, 14 Aug 2017 00:00:00 GMT</pubDate></item><item><title>Using C++ Functions and Objects from C</title><link>https://www.jonathanbeard.io/blog/2016/11/20/using-cpp-from-c.html</link><guid isPermaLink="true">https://www.jonathanbeard.io/blog/2016/11/20/using-cpp-from-c.html</guid><description>A step by step guide to using C++ in C.</description><pubDate>Sun, 20 Nov 2016 00:00:00 GMT</pubDate></item><item><title>Managing Parallel, Part 1: Queueing, Work, Oh My!</title><link>https://www.jonathanbeard.io/blog/2016/09/04/managing-parallelism.html</link><guid isPermaLink="true">https://www.jonathanbeard.io/blog/2016/09/04/managing-parallelism.html</guid><description>Managing Parallel, Part 1</description><pubDate>Sun, 04 Sep 2016 00:00:00 GMT</pubDate></item><item><title>C++ Template Functions Based On Type Size Substitution Failure</title><link>https://www.jonathanbeard.io/blog/2016/04/01/template-type-sizing.html</link><guid isPermaLink="true">https://www.jonathanbeard.io/blog/2016/04/01/template-type-sizing.html</guid><description>How to use templates to build functions by type size</description><pubDate>Fri, 01 Apr 2016 00:00:00 GMT</pubDate></item><item><title>Hosting pages with GitHub, and More</title><link>https://www.jonathanbeard.io/blog/2015/12/08/github-pages-and-more.html</link><guid isPermaLink="true">https://www.jonathanbeard.io/blog/2015/12/08/github-pages-and-more.html</guid><description>How to host pages with GitHub pages, use jekyll and bootstrap together to make awesome pages</description><pubDate>Tue, 08 Dec 2015 00:00:00 GMT</pubDate></item><item><title>Secure Language</title><link>https://www.jonathanbeard.io/blog/2015/10/27/secure-language.html</link><guid isPermaLink="true">https://www.jonathanbeard.io/blog/2015/10/27/secure-language.html</guid><description>The folly of inventing secure languages</description><pubDate>Tue, 27 Oct 2015 00:00:00 GMT</pubDate></item><item><title>Data Wrangling</title><link>https://www.jonathanbeard.io/blog/2015/10/22/data-wrangling.html</link><guid isPermaLink="true">https://www.jonathanbeard.io/blog/2015/10/22/data-wrangling.html</guid><description>Data wrangling, why should you learn basic coding?</description><pubDate>Thu, 22 Oct 2015 00:00:00 GMT</pubDate></item><item><title>A short intro to stream processing</title><link>https://www.jonathanbeard.io/blog/2015/09/19/streaming-and-dataflow.html</link><guid isPermaLink="true">https://www.jonathanbeard.io/blog/2015/09/19/streaming-and-dataflow.html</guid><description>What is stream processing and how does it relate to data-flow?</description><pubDate>Sat, 19 Sep 2015 00:00:00 GMT</pubDate></item><item><title>Do We Need More Programming Languages</title><link>https://www.jonathanbeard.io/blog/2015/09/15/do-we-need-more-programming-languages.html</link><guid isPermaLink="true">https://www.jonathanbeard.io/blog/2015/09/15/do-we-need-more-programming-languages.html</guid><description>A case for more programming languages</description><pubDate>Tue, 15 Sep 2015 00:00:00 GMT</pubDate></item><item><title>C to Java Inter-Process Communication Examples</title><link>https://www.jonathanbeard.io/blog/2015/08/30/c-to-java-ipc.html</link><guid isPermaLink="true">https://www.jonathanbeard.io/blog/2015/08/30/c-to-java-ipc.html</guid><description>Tutorials and full code examples of how to use pipes and FIFOs to connect C/C++ compiled applications to a thread running inside a JVM using Java.</description><pubDate>Sun, 30 Aug 2015 00:00:00 GMT</pubDate></item><item><title>Flex and Bison in C++, a short example</title><link>https://www.jonathanbeard.io/blog/2015/08/30/flex-bison-cpp.html</link><guid isPermaLink="true">https://www.jonathanbeard.io/blog/2015/08/30/flex-bison-cpp.html</guid><description>How to get flex and bison to work together in C++</description><pubDate>Sun, 30 Aug 2015 00:00:00 GMT</pubDate></item><item><title>All About System Timing</title><link>https://www.jonathanbeard.io/blog/2015/01/07/system-timing.html</link><guid isPermaLink="true">https://www.jonathanbeard.io/blog/2015/01/07/system-timing.html</guid><description>How to time software properly: from rdtsc to clock_gettime and everything in between, plus timer synchronization.</description><pubDate>Wed, 07 Jan 2015 00:00:00 GMT</pubDate></item></channel></rss>