<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[Computer, Enhance!]]></title><description><![CDATA[Programming courses, interviews, commentary.]]></description><link>https://www.computerenhance.com</link><image><url>https://substackcdn.com/image/fetch/$s_!fGm8!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdecce376-01ed-4022-bb6a-ed1d1322183e_800x800.png</url><title>Computer, Enhance!</title><link>https://www.computerenhance.com</link></image><generator>Substack</generator><lastBuildDate>Sun, 16 Aug 2026 00:48:06 GMT</lastBuildDate><atom:link href="https://www.computerenhance.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Casey Muratori]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[computerenhance@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[computerenhance@substack.com]]></itunes:email><itunes:name><![CDATA[Casey Muratori]]></itunes:name></itunes:owner><itunes:author><![CDATA[Casey Muratori]]></itunes:author><googleplay:owner><![CDATA[computerenhance@substack.com]]></googleplay:owner><googleplay:email><![CDATA[computerenhance@substack.com]]></googleplay:email><googleplay:author><![CDATA[Casey Muratori]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Branchless Absolute Value]]></title><description><![CDATA[Some operations are uniform enough that, even though we might ordinarily think of them as using a predicate, they can nonetheless be done by direct manipulation of the underlying bit pattern.]]></description><link>https://www.computerenhance.com/p/branchless-absolute-value</link><guid isPermaLink="false">https://www.computerenhance.com/p/branchless-absolute-value</guid><pubDate>Mon, 10 Aug 2026 19:29:46 GMT</pubDate><enclosure url="https://substack-video.s3.amazonaws.com/video_upload/post/210651940/acb38037-244c-4f42-a3ab-54af4199c2de/transcoded-44903.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!6lSF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa38368d5-6b6a-4f2b-a165-e52bc9064d7b_3840x2160.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!6lSF!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa38368d5-6b6a-4f2b-a165-e52bc9064d7b_3840x2160.jpeg 424w, https://substackcdn.com/image/fetch/$s_!6lSF!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa38368d5-6b6a-4f2b-a165-e52bc9064d7b_3840x2160.jpeg 848w, https://substackcdn.com/image/fetch/$s_!6lSF!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa38368d5-6b6a-4f2b-a165-e52bc9064d7b_3840x2160.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!6lSF!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa38368d5-6b6a-4f2b-a165-e52bc9064d7b_3840x2160.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!6lSF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa38368d5-6b6a-4f2b-a165-e52bc9064d7b_3840x2160.jpeg" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a38368d5-6b6a-4f2b-a165-e52bc9064d7b_3840x2160.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1264195,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.computerenhance.com/i/210651940?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa38368d5-6b6a-4f2b-a165-e52bc9064d7b_3840x2160.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!6lSF!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa38368d5-6b6a-4f2b-a165-e52bc9064d7b_3840x2160.jpeg 424w, https://substackcdn.com/image/fetch/$s_!6lSF!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa38368d5-6b6a-4f2b-a165-e52bc9064d7b_3840x2160.jpeg 848w, https://substackcdn.com/image/fetch/$s_!6lSF!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa38368d5-6b6a-4f2b-a165-e52bc9064d7b_3840x2160.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!6lSF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa38368d5-6b6a-4f2b-a165-e52bc9064d7b_3840x2160.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>This is the fourteenth video in Part 5 of the Performance-Aware Programming series. Please see the <a href="https://www.computerenhance.com/p/table-of-contents">Table of Contents</a> to quickly navigate through the rest of the course as it is updated, and <a href="https://github.com/cmuratori/computer_enhance">the code repository</a> for downloadable code listings.</em></p>
      <p>
          <a href="https://www.computerenhance.com/p/branchless-absolute-value">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[What New Jobs?]]></title><description><![CDATA[Appeals to prior technological revolutions are often used to assuage fears that AI will lead to widespread unemployment.]]></description><link>https://www.computerenhance.com/p/what-new-jobs</link><guid isPermaLink="false">https://www.computerenhance.com/p/what-new-jobs</guid><pubDate>Wed, 05 Aug 2026 18:23:23 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/209966043/fe98ebd13e0d65617a69cd9b7ab6ad4e.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<div id="youtube2-loaKh75eXM8" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;loaKh75eXM8&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/loaKh75eXM8?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p><span>Appeals to prior technological revolutions are often used to assuage fears that AI will lead to widespread unemployment. Yes, you may lose your job because of AI, but eventually you'll get a different job in a new field created by the resulting technological progress - or so the argument goes.<br><br>In this episode of </span><em><span>Wading Through AI</span></em><span>, Demetri and Casey discuss whether this argument holds water, or if it's just wishful thinking unjustified by direct historical analogy.</span></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.computerenhance.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.computerenhance.com/subscribe?"><span>Subscribe now</span></a></p><p><em>As always, the art for the thumbnail, podcast cover, and banner of Wading Through AI were all hand-drawn by <a href="https://x.com/aerettberg">Anna Rettberg</a> in her signature style. We do not currently use generative AI here at <a href="https://mollyrocket.com/">Molly Rocket</a>.</em></p>]]></content:encoded></item><item><title><![CDATA[Three Steps from Scalar to SIMD]]></title><description><![CDATA[When we want to change the interior of a loop (with complex control flow) from processing one thing to processing several at a time, it's best to tackle the problem in three sequential steps.]]></description><link>https://www.computerenhance.com/p/three-steps-from-scalar-to-simd</link><guid isPermaLink="false">https://www.computerenhance.com/p/three-steps-from-scalar-to-simd</guid><pubDate>Mon, 03 Aug 2026 17:35:21 GMT</pubDate><enclosure url="https://substack-video.s3.amazonaws.com/video_upload/post/209667660/608e4b6d-02a2-42c0-987c-d4664c46a147/transcoded-44145.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!SESu!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd43570a2-1431-41d8-a8e6-26df51f9de46_3840x2160.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!SESu!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd43570a2-1431-41d8-a8e6-26df51f9de46_3840x2160.jpeg 424w, https://substackcdn.com/image/fetch/$s_!SESu!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd43570a2-1431-41d8-a8e6-26df51f9de46_3840x2160.jpeg 848w, https://substackcdn.com/image/fetch/$s_!SESu!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd43570a2-1431-41d8-a8e6-26df51f9de46_3840x2160.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!SESu!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd43570a2-1431-41d8-a8e6-26df51f9de46_3840x2160.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!SESu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd43570a2-1431-41d8-a8e6-26df51f9de46_3840x2160.jpeg" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d43570a2-1431-41d8-a8e6-26df51f9de46_3840x2160.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1600458,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.computerenhance.com/i/209667660?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd43570a2-1431-41d8-a8e6-26df51f9de46_3840x2160.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!SESu!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd43570a2-1431-41d8-a8e6-26df51f9de46_3840x2160.jpeg 424w, https://substackcdn.com/image/fetch/$s_!SESu!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd43570a2-1431-41d8-a8e6-26df51f9de46_3840x2160.jpeg 848w, https://substackcdn.com/image/fetch/$s_!SESu!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd43570a2-1431-41d8-a8e6-26df51f9de46_3840x2160.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!SESu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd43570a2-1431-41d8-a8e6-26df51f9de46_3840x2160.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>This is the thirteenth video in Part 5 of the Performance-Aware Programming series. Please see the <a href="https://www.computerenhance.com/p/table-of-contents">Table of Contents</a> to quickly navigate through the rest of the course as it is updated, and <a href="https://github.com/cmuratori/computer_enhance">the code repository</a> for downloadable code listings.</em></p>
      <p>
          <a href="https://www.computerenhance.com/p/three-steps-from-scalar-to-simd">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Why AI Companies Need Scale]]></title><description><![CDATA[AI companies seem fixated on scaling.]]></description><link>https://www.computerenhance.com/p/why-ai-companies-need-scale</link><guid isPermaLink="false">https://www.computerenhance.com/p/why-ai-companies-need-scale</guid><pubDate>Thu, 02 Jul 2026 17:51:38 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/204716904/62555ec3f995d3f6595187f0e36fb918.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<div id="youtube2-bgWq678Oed4" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;bgWq678Oed4&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/bgWq678Oed4?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>AI companies seem fixated on scaling. From massive marketing budgets to supply-chain-altering datacenter plans, the drive to scale appears to be more urgent and aggressive than in any tech boom that came before.</p><p>In this episode of Wading Through AI, Demetri walks Casey through the list of factors that make scaling a necessity for companies competing to be the AI providers of the future.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.computerenhance.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.computerenhance.com/subscribe?"><span>Subscribe now</span></a></p><p><em>As always, the art for the thumbnail, podcast cover, and banner of Wading Through AI were all hand-drawn by <a href="https://x.com/aerettberg">Anna Rettberg</a> in her signature style. We do not currently use generative AI here at <a href="https://mollyrocket.com/">Molly Rocket</a>.</em></p>]]></content:encoded></item><item><title><![CDATA[Let's Decode the Mystery Bytes!]]></title><description><![CDATA[In this follow-up to "Let's Answer Ray's Question!", we go all the way down the rabbit hole to decode the mysterious eight bytes that kept showing up in-between Ray's allocations.]]></description><link>https://www.computerenhance.com/p/lets-decode-the-mystery-bytes</link><guid isPermaLink="false">https://www.computerenhance.com/p/lets-decode-the-mystery-bytes</guid><dc:creator><![CDATA[Casey Muratori]]></dc:creator><pubDate>Mon, 22 Jun 2026 17:48:57 GMT</pubDate><enclosure url="https://substackcdn.com/image/youtube/w_728,c_limit/GZqB4D_Do38" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div id="youtube2-GZqB4D_Do38" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;GZqB4D_Do38&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/GZqB4D_Do38?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>Last month, I posted <em><a href="https://www.computerenhance.com/p/lets-answer-rays-question">Let&#8217;s Answer Ray&#8217;s Question!</a></em> - a video where we looked at the memory behavior of two different compilations of the same program. I ended that video by saying that if you could read assembly language (like you can if you did <a href="https://www.computerenhance.com/i/99218768/performance-aware-programming-series">Part I of the </a><em><a href="https://www.computerenhance.com/i/99218768/performance-aware-programming-series">Performance Aware Programming</a></em><a href="https://www.computerenhance.com/i/99218768/performance-aware-programming-series"> course</a>!), you could go much further and determine even more specifics.</p><p>In this video, we do exactly that. Using disassembly, memory view, and heap debugging, we zero in on exactly who is setting the magic eight bytes we saw next to Ray&#8217;s allocations in the first video - and we figure the convoluted way those bytes are encoded.</p><p><em>If you&#8217;d like to be emailed when the third and final video is posted, you can subscribe your email address to either our free or paid tiers using the button below.</em></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.computerenhance.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.computerenhance.com/subscribe?"><span>Subscribe now</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[Will AI End the Open Internet?]]></title><description><![CDATA[Listen now | With previously open source projects going closed, and artists increasingly concerned about posting their work online, is AI reversing the internet&#8217;s long-established trend toward openness?]]></description><link>https://www.computerenhance.com/p/will-ai-end-the-open-internet</link><guid isPermaLink="false">https://www.computerenhance.com/p/will-ai-end-the-open-internet</guid><pubDate>Tue, 16 Jun 2026 16:06:08 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/202147095/d2160c409d818ca6125e04be51283665.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<div id="youtube2-gR2T1uxHG7o" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;gR2T1uxHG7o&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/gR2T1uxHG7o?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>With previously open source projects going closed, and artists increasingly concerned about posting their work online, is AI reversing the internet&#8217;s long-established trend toward openness?</p><p>In this sixth episode of Wading Through AI, <a href="https://demetrispanos.com/">Demetri</a> and I consider the possibility that AI could substantially diminish, or even eventually end, the norms of the open internet.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.computerenhance.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.computerenhance.com/subscribe?"><span>Subscribe now</span></a></p><p><em>As always, the art for the thumbnail, podcast cover, and banner of Wading Through AI were all hand-drawn by <a href="https://x.com/aerettberg">Anna Rettberg</a> in her signature style. We do not currently use generative AI here at <a href="https://mollyrocket.com/">Molly Rocket</a>.</em></p>]]></content:encoded></item><item><title><![CDATA[Q&A #86 (2026-06-10)]]></title><description><![CDATA[Answers to questions from the last Q&A thread.]]></description><link>https://www.computerenhance.com/p/q-and-a-86-2026-06-10</link><guid isPermaLink="false">https://www.computerenhance.com/p/q-and-a-86-2026-06-10</guid><pubDate>Wed, 10 Jun 2026 16:00:39 GMT</pubDate><enclosure url="https://substack-video.s3.amazonaws.com/video_upload/post/201377389/e275e24d-f0d0-4a43-981f-de8145d8210f/transcoded-261239.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>In each Q&amp;A video, I answer questions from the comments on the previous Q&amp;A video, which can be from any part of the course.</em></p><p><em>For those wondering what the name of the audio API was that made me go &#8220;I can&#8217;t believe I am forgetting the acronym&#8221; in the middle of this video, it was <a href="https://en.wikipedia.org/wiki/Audio_Stream_Input/Output">ASIO</a>.</em></p><p>The questions addressed in this video are:</p><ul><li><p><strong>[00:02]</strong> &#8220;The D language actually has this because of Uniform Function Call Syntax. You could have a struct like &#8230; and have the rest of the code be none the wiser (even code like foo.x = 7). I think C# has stuff like this too. Is this what you&#8217;d be hoping for? If so, I&#8217;m surprised - I&#8217;d have guessed you usually don&#8217;t prefer implicit magic like this happening on things that don&#8217;t look like function calls.&#8221;</p></li><li><p><strong>[04:37]</strong> &#8220;Could someone remind me what the &#8216;warm&#8217; criteria was?&#8221;</p></li><li><p><strong>[06:00]</strong> &#8220;I have a question about managing intrusive thoughts while writing code. When thoughts come up about edge cases, performance, reliability, or decisions that may need to be revisited later, how do you decide whether to address them immediately or set them aside? I&#8217;m finding it difficult to iterate quickly because I often get pulled into these concerns before I&#8217;ve built a working v0. I&#8217;ve tried writing TODOs in the code and keeping separate notes, but neither approach has worked well for me.&#8221;</p></li><li><p><strong>[15:47]</strong> &#8220;I now have a question about wasapi (I believe you now use wasapi but if I&#8217;m wrong then you can ignore this question). I&#8217;m writing the sound system for my codebase and had my wav parser ready, mixer chugging along, sat back to enjoy a song but then found out that changing the system volume causes these pops.... I know that changing the volume of a sound wave causes the discontinuity which manifests itself as audio popping but in this case where it&#8217;s not an internal volume I have control over I don&#8217;t know how to fix these. It seems to me as if windows just immediately applied the new volume and my futile attempt of trying to bypass windows&#8217; volume logic didn&#8217;t work since they seem to first clamp my samples and then multiply by the volume... I tried some wasapi gist examples and they all had this same issue. Have you had this problem and fixed it in your own code and could you share your knowledge if you have?&#8221;</p></li><li><p><strong>[25:07]</strong> &#8220;I formed my question about heaps slightly misleading. It wasn&#8217;t about a memory heap, but a data structure, like in the heap sort. In the video together with Primeagen regarding code interviews you commented that heaps are quite slow. So I was wondering, what should you use instead, when the need arises?&#8221;</p></li><li><p><strong>[33:27]</strong> &#8220;I&#8217;m working on a project that uses a cortex-m7, a fairly fast 32-bit embedded core. It has some fancy pipeline features of big boy desktop chips, like a branch predictor, and the ability to dual issue many instructions, but doesn&#8217;t have a RAT (it&#8217;s not &#8220;out-of-order&#8221; at least as far as I know). Do I understand correctly that in CPUs without a RAT, any two adjacent instructions that use the same register are effectively serially dependent? Is this how it used to work in the desktop world back in the day?&#8221;</p></li><li><p><strong>[40:53]</strong> &#8220;This question relates to Part 5: Dependency Chain Stalls and In-order Interleaving. From these results, I would expect 12-way interleaving to maintain peak throughput regardless of chain length (4 FMAs/cycle * 3 cycles = 12 FMAs in flight needed to cover the latency). However, that&#8217;s not what I observe. With 12-way interleaving, throughput decreases from ~3.6 to ~3.0 FMAs/cycle as the chain length grows. I need a minimum of 16-way interleaving for throughput to stay flat at ~3.8 FMAs/cycle. My conclusion is that the CPU can&#8217;t sustain the 3-cycle latency when the FMA execution ports are saturated, resulting in an effective latency of 4 cycles under load. This would explain why I need 4 * 4 = 16 chains to obtain a flat throughput curve. I think you&#8217;ve hinted at this in some of your videos. Would you kindly explain why this happens? Thanks!&#8221;</p></li></ul>
      <p>
          <a href="https://www.computerenhance.com/p/q-and-a-86-2026-06-10">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Intuitive Random Selection (with Marc LeBlanc)]]></title><description><![CDATA[After the ECS interview, Mahk shared a new random selection that's much more intuitive than the one typically used in game development.]]></description><link>https://www.computerenhance.com/p/intuitive-random-selection-with-marc</link><guid isPermaLink="false">https://www.computerenhance.com/p/intuitive-random-selection-with-marc</guid><dc:creator><![CDATA[Casey Muratori]]></dc:creator><pubDate>Tue, 09 Jun 2026 17:19:31 GMT</pubDate><enclosure url="https://substackcdn.com/image/youtube/w_728,c_limit/SL4MzRbNdmk" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div id="youtube2-SL4MzRbNdmk" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;SL4MzRbNdmk&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/SL4MzRbNdmk?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>Suppose you want to pick a random element from a set that is difficult to iterate. Perhaps the candidate elements are embedded in a spatial hierarchy, and only determined by a complex predicate.</p><p>One obvious way to solve this problem is to first build a &#8220;filtered&#8221; array of all the candidate elements, then pick a random index into that array. This always works, and is fair (assuming the RNG is fair) &#8212; but it requires reserving space for a potentially-large array, and uses up bandwidth and cache space each time a random selection is made.</p><p>A non-obvious-but-common alternative is to use a statistical method where random numbers are chosen during the initial iteration to continuously &#8220;retain or replace&#8221; a running selection. The random numbers must be carefully constructed, and typically require a modulus on each step. Proof of the fairness of the method is not obvious, and requires knowledge of the relevant underlying math.</p><p>In short, while it works, and is likely more efficient than the array method, it has drawbacks.</p><p>Inspired by the way you might write such a query in SQL, Marc &#8220;Mahk&#8221; LeBlanc shared with me a new arrayless picking method that has none of these drawbacks. It&#8217;s very similar to the statistical methods version, but without any of the drawbacks.</p><p>In this video, Mahk presents the algorithm in a series of steps, starting from a &#8220;worst&#8221; random selector, and ending with his new one.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.computerenhance.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.computerenhance.com/subscribe?"><span>Subscribe now</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[Will AI Make Me Worse?]]></title><description><![CDATA[As people increasingly rely on AI to do some or all of their work, what effects will this have on people's work quality, skills, and emotional state?]]></description><link>https://www.computerenhance.com/p/will-ai-make-me-worse</link><guid isPermaLink="false">https://www.computerenhance.com/p/will-ai-make-me-worse</guid><pubDate>Thu, 04 Jun 2026 19:34:18 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/200639467/82f6e62ca7fe4f0f40754d62b952ac6c.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<div id="youtube2-4fxo6zuhP1c" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;4fxo6zuhP1c&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/4fxo6zuhP1c?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>As people integrate more and more AI into their daily work, will the quality of the work they produce suffer? Will their own skills degrade as a result of relying on AI? Will there be negative psychological effects in the shift from doing work directly to doing it indirectly through AI prompting?</p><p>In this episode, <a href="https://demetrispanos.com/">Demetri</a> and I explore these issues as we consider the broad question many people are asking themselves: &#8220;Will AI make me worse?&#8221;</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.computerenhance.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.computerenhance.com/subscribe?"><span>Subscribe now</span></a></p><p><em>As always, the art for the thumbnail, podcast cover, and banner of Wading Through AI were all hand-drawn by <a href="https://x.com/aerettberg">Anna Rettberg</a> in her signature style. We do not currently use generative AI here at <a href="https://mollyrocket.com/">Molly Rocket</a>.</em></p>]]></content:encoded></item><item><title><![CDATA[The First Entity Component System]]></title><description><![CDATA[Marc LeBlanc walks me through how the development of Underworld I & II, System Shock, Flight Unlimited, and finally Thief: The Dark Project gave rise to the architecture we now call an "ECS".]]></description><link>https://www.computerenhance.com/p/the-first-entity-component-system</link><guid isPermaLink="false">https://www.computerenhance.com/p/the-first-entity-component-system</guid><dc:creator><![CDATA[Casey Muratori]]></dc:creator><pubDate>Mon, 01 Jun 2026 17:31:34 GMT</pubDate><enclosure url="https://substackcdn.com/image/youtube/w_728,c_limit/73Do0OScoOU" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div id="youtube2-73Do0OScoOU" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;73Do0OScoOU&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/73Do0OScoOU?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>At last year&#8217;s inaugural <em><a href="https://bettersoftwareconference.com/">Better Software Conference</a></em>, I gave a presentation called <em><a href="https://www.youtube.com/watch?v=wo84LFzx5nI">The Big OOPs</a></em>. One of the central figures in the presentation was programmer-designer Marc &#8220;Mahk&#8221; LeBlanc, whom I credited with the key phrase, &#8220;a compile-time hierarchy that matches the domain model&#8221;.</p><p>That quote, and the chronology of <em><a href="https://en.wikipedia.org/wiki/Looking_Glass_Studios">Looking Glass</a></em>&#8217;s entity systems, both came from an extended interview I did with Mahk as part of my research for the talk. At the end of that interview, Mahk and I both had the same thought: &#8220;We should have recorded this!&#8221; There was so much <em>Looking Glass</em> history, nicely focused specifically on the evolution of their entity systems, that it seemed a shame nobody would get to hear it.</p><p>So this year, we did the only logical thing: we both pretended we had never had the conversation, and conducted the whole interview <em>again.</em> This time, we recorded it.</p><p>And here it is! The full two-and-a-half-hour interview, covering everything from Mahk&#8217;s first encounter with <em>Looking Glass<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-1" href="#footnote-1" target="_self">1</a></em> during <em><a href="https://en.wikipedia.org/wiki/Ultima_Underworld:_The_Stygian_Abyss">Ultima Underworld</a></em>, up through his work on the core engine architecture for <em><a href="https://en.wikipedia.org/wiki/Thief:_The_Dark_Project">Thief: The Dark Project</a></em>.</p><h3>Bonus Unboxing</h3><p>Because we could not find any corroboration posted on the internet, Mahk also unboxed a still-shrink-wrapped, original boxed copy of <em><a href="https://en.wikipedia.org/wiki/Flight_Unlimited">Flight Unlimited</a></em> so we could verify it did, in fact, ship with a batch file that restarted the game to fix C++-induced memory fragmentation:</p><div class="image-gallery-embed" data-attrs="{&quot;gallery&quot;:{&quot;images&quot;:[{&quot;type&quot;:&quot;image/png&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3e656e9c-4d31-432d-8f4d-ce3fbc49e20d_492x875.png&quot;},{&quot;type&quot;:&quot;image/png&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d54e1db3-eb0b-43ce-ac85-36e28eb71d8b_492x875.png&quot;},{&quot;type&quot;:&quot;image/png&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2a9f3a27-f28d-401e-b184-8a83a2116d51_492x875.png&quot;}],&quot;caption&quot;:&quot;Mahk's original Flight Unlimited, unboxed for fact-checking!&quot;,&quot;alt&quot;:&quot;&quot;,&quot;staticGalleryImage&quot;:{&quot;type&quot;:&quot;image/png&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/bb1ed3c8-4adb-4687-ab3a-80b81eafa313_1456x474.png&quot;}},&quot;isEditorNode&quot;:true}"></div><p>After installing the game directly from the original CD, Mahk found the following batch file used to run the game:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;plaintext&quot;,&quot;nodeId&quot;:&quot;b12c0a60-cc84-45e9-89f6-9e13db6f7f99&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-plaintext">@echo off
set dos4g=quiet
Y:\cdrom\flight.exe %1 %2 %3 %4 %5 %6 %7 %8 %9
:wacky
if errorlevel 44 goto done
if errorlevel 43 goto refuel
if errorlevel 42 goto credit
goto done
:credit
Y:\cdrom\credits.exe
Y:\cdrom\flight.exe +fromcredits %1 %2 %3 %4 %5 %6 %7 %8 %9
goto wacky
:refuel
Y:\cdrom\flight.exe +refuel %1 %2 %3 %4 %5 %6 %7 %8 %9
goto wacky
:done</code></pre></div><p>To quote Mahk, &#8220;If anything marks this as a genuine <em>LG</em><a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-2" href="#footnote-2" target="_self">2</a> product, it&#8217;s the use of &#8216;wacky&#8217; as a goto label.&#8221;</p><h3>Mahk Links</h3><p>I hope you enjoy the interview! If you&#8217;d like to check out what Mahk&#8217;s been up to since the <em>Looking Glass</em> days, you can find him at the following links:</p><ul><li><p>Mahk&#8217;s YouTube: <a href="https://www.youtube.com/@algorithmancyTube">https://www.youtube.com/@algorithmancyTube</a></p></li><li><p>Mahk&#8217;s Twitch: <a href="https://www.twitch.tv/algorithmancy/videos">https://www.twitch.tv/algorithmancy/videos</a></p></li><li><p>Mahk&#8217;s game design website: <a href="https://8kindsoffun.com">https://8kindsoffun.com</a></p></li></ul><p>Until next time, have fun programming everyone, and I (and Mahk!) will see you on the internet.</p><p style="text-align: right;"><em>&#8212; Casey</em></p><p><em>This is the first in <a href="https://www.computerenhance.com/i/99218768/the-big-oops-paper-trail">a series of Big OOPs supplemental materials</a> that I will be posting over the next several weeks. In addition to this interview with Mahk, there will be paper reviews of each of the major tranches that I used to reconstruct the history presented in the talk. If you&#8217;d like to get those delivered to your inbox when they&#8217;re published, you can take a look at our subscription options here:</em></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.computerenhance.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.computerenhance.com/subscribe?"><span>Subscribe now</span></a></p><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-1" href="#footnote-anchor-1" class="footnote-number" contenteditable="false" target="_self">1</a><div class="footnote-content"><p>Then called <em>Blue Sky</em></p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-2" href="#footnote-anchor-2" class="footnote-number" contenteditable="false" target="_self">2</a><div class="footnote-content"><p>&#8220;LG&#8221; here refers to <em>Looking Glass</em>, not the Korean conglomerate <em>LG</em></p></div></div>]]></content:encoded></item><item><title><![CDATA[How to Use uops.info]]></title><description><![CDATA[Now that we've done our own microarchitecture investigations, it's time to get familiar with one of the best x64 microarchitecture data sites.]]></description><link>https://www.computerenhance.com/p/how-to-use-uopsinfo</link><guid isPermaLink="false">https://www.computerenhance.com/p/how-to-use-uopsinfo</guid><pubDate>Sat, 30 May 2026 03:58:08 GMT</pubDate><enclosure url="https://substack-video.s3.amazonaws.com/video_upload/post/199798918/cdd5dbc2-c1b8-407a-af0f-33318b8bb044/transcoded-224503.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!fdNi!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F910ab22a-20db-4541-b35d-734a0dbf3329_1920x622.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!fdNi!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F910ab22a-20db-4541-b35d-734a0dbf3329_1920x622.jpeg 424w, https://substackcdn.com/image/fetch/$s_!fdNi!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F910ab22a-20db-4541-b35d-734a0dbf3329_1920x622.jpeg 848w, https://substackcdn.com/image/fetch/$s_!fdNi!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F910ab22a-20db-4541-b35d-734a0dbf3329_1920x622.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!fdNi!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F910ab22a-20db-4541-b35d-734a0dbf3329_1920x622.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!fdNi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F910ab22a-20db-4541-b35d-734a0dbf3329_1920x622.jpeg" width="1456" height="472" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/910ab22a-20db-4541-b35d-734a0dbf3329_1920x622.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:472,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:357350,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.computerenhance.com/i/199798918?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F910ab22a-20db-4541-b35d-734a0dbf3329_1920x622.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!fdNi!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F910ab22a-20db-4541-b35d-734a0dbf3329_1920x622.jpeg 424w, https://substackcdn.com/image/fetch/$s_!fdNi!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F910ab22a-20db-4541-b35d-734a0dbf3329_1920x622.jpeg 848w, https://substackcdn.com/image/fetch/$s_!fdNi!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F910ab22a-20db-4541-b35d-734a0dbf3329_1920x622.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!fdNi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F910ab22a-20db-4541-b35d-734a0dbf3329_1920x622.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>This is the twelfth video in Part 5 of the Performance-Aware Programming series. Please see the <a href="https://www.computerenhance.com/p/table-of-contents">Table of Contents</a> to quickly navigate through the rest of the course as it is updated, and <a href="https://github.com/cmuratori/computer_enhance">the code repository</a> for downloadable code listings.</em></p>
      <p>
          <a href="https://www.computerenhance.com/p/how-to-use-uopsinfo">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Q&A #85 (2026-05-26)]]></title><description><![CDATA[Answers to questions from the last Q&A thread.]]></description><link>https://www.computerenhance.com/p/q-and-a-85-2026-05-26</link><guid isPermaLink="false">https://www.computerenhance.com/p/q-and-a-85-2026-05-26</guid><pubDate>Wed, 27 May 2026 06:49:39 GMT</pubDate><enclosure url="https://substack-video.s3.amazonaws.com/video_upload/post/199260802/94d4665c-9e1e-4ba7-9b4c-b3919c3ae13e/transcoded-206587.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>In each Q&amp;A video, I answer questions from the comments on the previous Q&amp;A video, which can be from any part of the course.</em></p><p>The questions addressed in this video are:</p><ul><li><p><strong>[0:00:03]</strong> &#8220;I would like to learn/understand more about performance oriented architecture design as most of the performance resources I see are on pinhole omptimizations, do you have specific examples and general guidelines for that?&#8221;</p></li><li><p><strong>[0:05:10]</strong> &#8220;What are the architectural considerations to allow the compiler to SIMDify your code?&#8221;</p></li><li><p><strong>[0:08:13]</strong> &#8220;You once mentioned that heaps are slow in real life. Could you elaborate on why and which algorithms may be used instead in appropriate situations?&#8221;</p></li><li><p><strong>[0:11:09]</strong> &#8220;I saw some advice outside of this course which was to try multiple overlapped reads at once and bypassing the file cache with FILE_FLAG_NO_BUFFERING. Trying this with 32 overlapped reads and reading the whole file into one big buffer (no chunking), I&#8217;m now reading at 6 GB/s. This is in line with my SSD read speed (7GB/s allegedly), but not all the numbers are making sense to me. I have two questions:</p><p>How can bypassing the file cache and reading from SSD possibly be faster than reading from the file cache in memory? My main memory is 64GB so I imagine my whole file fits in the cache.</p><p>Regardless of overlapped reads or bypassing the file cache, if I read the whole file into one big buffer, shouldn&#8217;t I be paying the cost of page faults regardless? I&#8217;d expect page faults and cache inefficiency would limit me to the original 2.5GB/s.&#8221;</p></li><li><p><strong>[0:19:32]</strong> &#8220;With block interleaving, we are doing extra loads/stores, how much more expensive is that in terms of power consumption? does it make sense to do the in order interleaving on some kind of mobile device specifically for battery life or to help maintain higher boost clocks via lower temperatures?&#8221;</p></li><li><p><strong>[0:21:54]</strong> &#8220;At my job we use Unreal and I find myself writing very defensive code. There is so much &#8220;if object exists, do thing, else, log an error and return&#8221; across the code base, it&#8217;s starting to feel like a waste of time. Especially since in a large number of cases, an early return still leaves the game in an unplayable state. The problem isn&#8217;t fixed; only moved elsewhere.</p><p>Do you have any thoughts on when one should do this kind of granular error checking, when one should assert and when it&#8217;s okay to just let it crash?</p><p>Is there a better way or do I just have to keep adding all this noise to my code?&#8221;</p></li><li><p><strong>[0:25:40]</strong> &#8220;Is it fine to expose internals of a struct together with &#8220;helper functions&#8221; to calculate derived data? Should I not worry about exposing internals? Any pointers to where I can learn more about library design in C?&#8221;</p></li><li><p><strong>[0:33:31]</strong> &#8220;In one QA you said that JIT and compile time are not mutually exclusive, but why I never seen some software written in a &#8220;JIT-less&#8221; language and use a JIT library to fill the compile time gap performance?&#8221;</p></li><li><p><strong>[0:36:40]</strong> &#8220;Something that its still not clear to me is: how do I choose a RAM frequency when buying a PC?&#8221;</p></li><li><p><strong>[0:40:09]</strong> &#8220;You said somewhere that you are not a fan o End To End (E2E) tests, why is that?&#8221;</p></li><li><p><strong>[0:45:03]</strong> &#8220;I&#8217;m curious about what to do when a procedure has only one use in the code? How to conciliate this with semantic compression? Assuming that you can only compress something if it was written at least twice. Because sometimes, even though its used once, it makes easier to read.&#8221;</p></li><li><p><strong>[0:47:26]</strong> &#8220;I was wondering: is a relational DB also the 35 year mistake? Since its a statically typed hierarchy that models the domain. My gut feeling is that its not, but it fits very well into the description.&#8221;</p></li><li><p><strong>[0:49:32]</strong> &#8220;In this article the author cites some research papers about how the SOLID principles improve software: https://florian-kraemer.net/software-architecture/2025/02/24/Are-the-SOLID-Principles-problematic.html and related to that, the book <em>Agile software development: Principles, Patterns and Practices</em> by Bob Martin, also tries to give a measurement &#8216;framework&#8217; for SOLID. Any thoughts on this?&#8221;</p></li><li><p><strong>[0:53:53]</strong> &#8220;In OO code is common to use objects with private data and some methods and constructor to keep the internal data always in a valid state, but in a procedural way, like C, you can misuse a struct. How do you deal with this in C or in procedural way in general?&#8221;</p></li><li><p><strong>[0:59:14]</strong> &#8220;Do you think that is worth creating content like the &#8220;OOPs&#8221; talk, &#8220;Clean Code Horrible Performance&#8221;, &#8220;Where does bad software come from?&#8221; (SOLID) where it tries to persuade the viewer that the &#8220;best practice&#8221; he was taught is bad? Because even though you are very sharp in your reasoning, your content still get misinterpreted for several reasons. I was thinking of doing something similar myself, grouping everything I learned from the &#8220;Handmade way&#8221; to present a better way to program, but I&#8217;m not sure if its worth it and I don&#8217;t have decades of experience so I&#8217;m afraid my argumentation would not be good enough.&#8221;</p></li><li><p><strong>[1:05:04]</strong> &#8220;Related to the question above, how do I convince my coworkers that they are doing bad practices?&#8221;</p></li><li><p><strong>[1:06:35]</strong> &#8220;How exactly do I apply WARMED at work?&#8221;</p></li><li><p><strong>[1:08:59]</strong> &#8220;In the end of your IMGUI talk, you said that was excited to see what would be improved in this approach in the next years. So, after 20 years, which improvements you saw?&#8221;</p></li><li><p><strong>[1:11:31]</strong> &#8220;Why compilers don&#8217;t have a #pragma DONT_REMOVE, #pragma END_DONT_REMOVE to make our lives easier instead of writing assembly code to do fake reads and writes for measuring performance for a block of code?&#8221;</p></li><li><p><strong>[1:13:13]</strong> &#8220;I&#8217;m curious on what a web dev handmade hero would look like, because in the game version is possible to ship a commercial game without using any libraries, however I don&#8217;t think that is possible with web, since you need some libraries to deal with security/encryption like HTTPS. So how would you approach this if you were to make a handmade hero for web? Like showing how to create a substack clone, but better :)&#8221;</p></li><li><p><strong>[1:14:59] </strong>&#8220;Knowing the specs of the Lion Cove P-Core of that CPU with 3x load units/ports it makes sense that there is no additional speedup after Read_x3. What puzzles me a bit/makes me curious though is the fact that Read_x3 is consistently the fastest. I tried it numerous times, locked the program to the same single P-core, built dedicated executables to make sure it has nothing to do with some code alignment etc. but Read_x3 is always the fastest with some ~2% edge over Read_x4. Of course 2% is not a huge difference, but I would have assumed that Read_x3 and Read_x4 would converge more or less or if at all that Read_x4 would be slightly faster due to less loop overhead in total.&#8221;</p></li><li><p><strong>[1:19:22]</strong> &#8220;Now that you&#8217;re mainly on Linux, have you been using any of the profiling tools that Linux provides in &lt;linux/perf_event.h&gt; and if you do, what are your thoughts on them?&#8221; / &#8220;In a recent standup I heard how you are now fully switched to Linux and never going back to Windows. I would like to know, what are you now then using for debugging on Linux? As raddbg is not yet ready, though getting closer&#8230;&#8221;</p></li></ul>
      <p>
          <a href="https://www.computerenhance.com/p/q-and-a-85-2026-05-26">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Let's Answer Ray's Question!]]></title><description><![CDATA[Ramon Santamaria asked why one compiler appeared to produce different behavior than others. The underlying technical reason is much more interesting than a simple answer of "undefined behavior".]]></description><link>https://www.computerenhance.com/p/lets-answer-rays-question</link><guid isPermaLink="false">https://www.computerenhance.com/p/lets-answer-rays-question</guid><dc:creator><![CDATA[Casey Muratori]]></dc:creator><pubDate>Mon, 04 May 2026 18:07:14 GMT</pubDate><enclosure url="https://substackcdn.com/image/youtube/w_728,c_limit/zRLnZhhJqpg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div id="youtube2-zRLnZhhJqpg" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;zRLnZhhJqpg&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/zRLnZhhJqpg?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>A few days ago, Ramon &#8220;Ray&#8221; Santamaria, author of the popular library <a href="https://www.raylib.com/">Raylib</a>, posted <a href="https://x.com/raysan5/status/2049451452997742657">the following code snippet and question</a> on X:</p><div class="twitter-embed" data-attrs="{&quot;url&quot;:&quot;https://x.com/raysan5/status/2049451452997742657&quot;,&quot;full_text&quot;:&quot;Why C compilers can't agree in how a standard C library function should works? &#9785;&#65039;\n\nAnd better not to talk about strncpy()... &quot;,&quot;username&quot;:&quot;raysan5&quot;,&quot;name&quot;:&quot;Ray&quot;,&quot;profile_image_url&quot;:&quot;https://pbs.substack.com/profile_images/1147456686623469568/4SL9jI5P_normal.png&quot;,&quot;date&quot;:&quot;2026-04-29T11:31:18.000Z&quot;,&quot;photos&quot;:[{&quot;img_url&quot;:&quot;https://pbs.substack.com/media/HHEcqXybMAAm214.png&quot;,&quot;link_url&quot;:&quot;https://t.co/emqE1q4MVb&quot;}],&quot;quoted_tweet&quot;:{},&quot;reply_count&quot;:79,&quot;retweet_count&quot;:22,&quot;like_count&quot;:516,&quot;impression_count&quot;:96142,&quot;expanded_url&quot;:null,&quot;video_url&quot;:null,&quot;video_preview_media_key&quot;:null,&quot;belowTheFold&quot;:false}" data-component-name="Twitter2ToDOM"></div><p>As you can see from the screenshot, GCC and MSVC x64 appear to create binaries that behave &#8220;correctly&#8221; - or at least not obviously wrong - whereas MSVC x86 appears to produce a binary that behaves &#8220;incorrectly&#8221;.</p><p>Although many people replied to Ray&#8217;s post by saying, &#8220;it&#8217;s undefined behavior&#8221; - which is true, because there&#8217;s a missing null terminator - that&#8217;s not a complete answer. That only says why the execution is <em>allowed</em> to be different, not how it actually differs.</p><p>I thought this was a great opportunity to show how we would investigate behavior like this to determine the root cause. I&#8217;ve prepared two videos (and some &#8220;outtakes&#8221; with esoterica) that show this process.</p><p>In this first video, I walk through the entire &#8220;source language&#8221; side of the behavior to show what is actually causing it. I will be posting a second video shortly for people who can read ASM which shows how to go one layer deeper and look at an even more precise answer.</p><p><em>If you&#8217;d like to be emailed when the second video is posted, you can subscribe your email address to either our free or paid tiers using the button below.</em></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.computerenhance.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.computerenhance.com/subscribe?"><span>Subscribe now</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[Block Interleaving]]></title><description><![CDATA[Breaking up dependency chains to better suit the processor's out-of-order scheduling gets most of the benefit of in-order interleaving without requiring a fully interleaved instruction stream.]]></description><link>https://www.computerenhance.com/p/block-interleaving</link><guid isPermaLink="false">https://www.computerenhance.com/p/block-interleaving</guid><pubDate>Tue, 28 Apr 2026 22:45:56 GMT</pubDate><enclosure url="https://substack-video.s3.amazonaws.com/video_upload/post/195810514/9101c701-4c74-4b8f-a18d-de21b13ce504/transcoded-44129.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!fEGb!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F704fff5b-a28e-4f85-9ea7-c36f478d496f_1920x826.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!fEGb!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F704fff5b-a28e-4f85-9ea7-c36f478d496f_1920x826.jpeg 424w, https://substackcdn.com/image/fetch/$s_!fEGb!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F704fff5b-a28e-4f85-9ea7-c36f478d496f_1920x826.jpeg 848w, https://substackcdn.com/image/fetch/$s_!fEGb!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F704fff5b-a28e-4f85-9ea7-c36f478d496f_1920x826.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!fEGb!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F704fff5b-a28e-4f85-9ea7-c36f478d496f_1920x826.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!fEGb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F704fff5b-a28e-4f85-9ea7-c36f478d496f_1920x826.jpeg" width="1456" height="626" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/704fff5b-a28e-4f85-9ea7-c36f478d496f_1920x826.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:626,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:625880,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.computerenhance.com/i/195810514?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F704fff5b-a28e-4f85-9ea7-c36f478d496f_1920x826.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!fEGb!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F704fff5b-a28e-4f85-9ea7-c36f478d496f_1920x826.jpeg 424w, https://substackcdn.com/image/fetch/$s_!fEGb!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F704fff5b-a28e-4f85-9ea7-c36f478d496f_1920x826.jpeg 848w, https://substackcdn.com/image/fetch/$s_!fEGb!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F704fff5b-a28e-4f85-9ea7-c36f478d496f_1920x826.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!fEGb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F704fff5b-a28e-4f85-9ea7-c36f478d496f_1920x826.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>This is the eleventh video in Part 5 of the Performance-Aware Programming series. Please see the <a href="https://www.computerenhance.com/p/table-of-contents">Table of Contents</a> to quickly navigate through the rest of the course as it is updated, and <a href="https://github.com/cmuratori/computer_enhance">the code repository</a> for downloadable code listings.</em></p>
      <p>
          <a href="https://www.computerenhance.com/p/block-interleaving">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[The Ethics of Generative AI]]></title><description><![CDATA[Listen now | What is the appropriate ethical framework for thinking about generative AI?]]></description><link>https://www.computerenhance.com/p/the-ethics-of-generative-ai</link><guid isPermaLink="false">https://www.computerenhance.com/p/the-ethics-of-generative-ai</guid><pubDate>Thu, 23 Apr 2026 16:05:46 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/194373057/df928c7c189c8d054e8d2a2e64758656.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<div id="youtube2-bjO-s4rNPlY" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;bjO-s4rNPlY&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/bjO-s4rNPlY?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>The legal issues surrounding generative AI are something only the court system can decide. The ethical issues, on the other hand, are things that everyone must decide for themselves. Different people with different value systems will come to different conclusions.</p><p>In this episode, <a href="https://demetrispanos.com/">Demetri</a> and I open the can of worms that is &#8220;AI ethics&#8221; and walk through a series of incremental steps people should think through when deciding for themselves if they think generative AI is ethical.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.computerenhance.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.computerenhance.com/subscribe?"><span>Subscribe now</span></a></p><p><em>As always, the art for the thumbnail, podcast cover, and banner of Wading Through AI were all hand-drawn by <a href="https://x.com/aerettberg">Anna Rettberg</a> in her signature style. We do not currently use generative AI here at <a href="https://mollyrocket.com/">Molly Rocket</a>.</em></p>]]></content:encoded></item><item><title><![CDATA[Q&A #84 (2026-04-20)]]></title><description><![CDATA[Answers to questions from the last Q&A thread.]]></description><link>https://www.computerenhance.com/p/q-and-a-84-2026-04-20</link><guid isPermaLink="false">https://www.computerenhance.com/p/q-and-a-84-2026-04-20</guid><pubDate>Tue, 21 Apr 2026 02:46:08 GMT</pubDate><enclosure url="https://substack-video.s3.amazonaws.com/video_upload/post/194840638/9e584af3-4ea6-4c55-ba8d-3951879bbcc0/transcoded-61489.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>In each Q&amp;A video, I answer questions from the comments on the previous Q&amp;A video, which can be from any part of the course.</em></p><p>The questions addressed in this video are:</p><ul><li><p><strong>[00:04]</strong> &#8220;Quick question (for Casey or anyone with a suggestion!): I am neither a novice nor an experienced programmer, and would like to learn enough C++ to write some useful code, but I am struggling to find good material.&#8221;</p></li><li><p><strong>[02:18]</strong> &#8220;In the episode &#8216;In-order Interleaving&#8217;, you have a loop that handles multiple elements per loop iteration. When the list of elements isn&#8217;t a multiple of your &#8216;elements per loop&#8217;, we need something after the loop to handle the last few remaining elements. My question is: Is there a particular way to write this &#8216;residual handling&#8217; part? Whenever I&#8217;ve had to do this in my own code it always felt a little awkward.&#8221;</p></li><li><p><strong>[13:25]</strong> &#8220;Hey Casey, what&#8217;s your take on Arm making their own chips now? Sincerely, an Arm engineer.&#8221;</p></li><li><p><strong>[17:05]</strong> &#8220;On the topic of growable arenas, concretely, how do you implement them with respect to the &#8216;layered&#8217; architecture? To grow them, naturally you would need to mmap or VirtualAlloc more memory, but if you&#8217;re far removed from the platform layer and aren&#8217;t writing a program that is frame-based (for example, a compiler) and thus have no opportune time to go back to the platform layer and request more memory, what are your strategies? I can only come up with round-tripping back to the OS using a platform-layer API like &#8216;RequestMoreMemory()&#8217;, or something like this. For more context, this would be for the kind of program that also cannot place upper-bounds on memory usage (again, like in a compiler), but still does not want to be malloc&#8217;ing/free&#8217;ing excessively. I&#8217;m keen to hear how you would approach this problem?&#8221;</p></li><li><p><strong>[26:14]</strong> &#8220;Have you had occasion to use coroutines to write algorithms that must pause/resume? E.g., protocols in networking or software in a hardware simulator.&#8221;</p></li></ul>
      <p>
          <a href="https://www.computerenhance.com/p/q-and-a-84-2026-04-20">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA["Am I Crazy?"]]></title><description><![CDATA[Listen now | Why do people seem to be having such drastically different experiences with AI from one another?]]></description><link>https://www.computerenhance.com/p/am-i-crazy</link><guid isPermaLink="false">https://www.computerenhance.com/p/am-i-crazy</guid><dc:creator><![CDATA[Casey Muratori]]></dc:creator><pubDate>Thu, 16 Apr 2026 16:05:44 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/194370214/dbf03eabf21a7deb4403ee2883d2e758.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<div id="youtube2-Sp1EmFRDquA" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;Sp1EmFRDquA&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/Sp1EmFRDquA?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>When it comes to AI, people seem to be having very disparate experiences. Some people become enthusiastic, while others become frustrated, even when apparently attempting similar tasks.</p><p>In this episode of <em>Wading Through AI</em>, <a href="https://demetrispanos.com/">Demetri</a> and I address the root causes of the feeling a lot of people - both pro- and anti-AI - are having that either <em>they</em> must be crazy, or <em>everyone else</em> must be, because their experiences seem to differ so dramatically from what they are hearing from others.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.computerenhance.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.computerenhance.com/subscribe?"><span>Subscribe now</span></a></p><p><em>As always, the art for the thumbnail, podcast cover, and banner of Wading Through AI were all hand-drawn by <a href="https://x.com/aerettberg">Anna Rettberg</a> in her signature style. We do not currently use generative AI here at <a href="https://mollyrocket.com/">Molly Rocket</a>.</em></p>]]></content:encoded></item><item><title><![CDATA[In-order Interleaving]]></title><description><![CDATA[By handing the CPU an instruction stream it can execute in order, we can exceed the limits we hit when we rely on its out-of-order execution capabilities.]]></description><link>https://www.computerenhance.com/p/in-order-interleaving</link><guid isPermaLink="false">https://www.computerenhance.com/p/in-order-interleaving</guid><pubDate>Thu, 16 Apr 2026 03:09:52 GMT</pubDate><enclosure url="https://substack-video.s3.amazonaws.com/video_upload/post/194365258/709f78f7-1627-4ee5-bf05-c53a76e185a0/transcoded-47060.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!CKM1!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc63b4f35-7718-4927-85e6-2f53f12fff82_5634x2864.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!CKM1!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc63b4f35-7718-4927-85e6-2f53f12fff82_5634x2864.jpeg 424w, https://substackcdn.com/image/fetch/$s_!CKM1!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc63b4f35-7718-4927-85e6-2f53f12fff82_5634x2864.jpeg 848w, https://substackcdn.com/image/fetch/$s_!CKM1!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc63b4f35-7718-4927-85e6-2f53f12fff82_5634x2864.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!CKM1!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc63b4f35-7718-4927-85e6-2f53f12fff82_5634x2864.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!CKM1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc63b4f35-7718-4927-85e6-2f53f12fff82_5634x2864.jpeg" width="1456" height="740" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c63b4f35-7718-4927-85e6-2f53f12fff82_5634x2864.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:740,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2362184,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.computerenhance.com/i/194365258?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc63b4f35-7718-4927-85e6-2f53f12fff82_5634x2864.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!CKM1!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc63b4f35-7718-4927-85e6-2f53f12fff82_5634x2864.jpeg 424w, https://substackcdn.com/image/fetch/$s_!CKM1!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc63b4f35-7718-4927-85e6-2f53f12fff82_5634x2864.jpeg 848w, https://substackcdn.com/image/fetch/$s_!CKM1!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc63b4f35-7718-4927-85e6-2f53f12fff82_5634x2864.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!CKM1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc63b4f35-7718-4927-85e6-2f53f12fff82_5634x2864.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>This is the tenth video in Part 5 of the Performance-Aware Programming series. Please see the <a href="https://www.computerenhance.com/p/table-of-contents">Table of Contents</a> to quickly navigate through the rest of the course as it is updated, and <a href="https://github.com/cmuratori/computer_enhance">the code repository</a> for downloadable code listings.</em></p>
      <p>
          <a href="https://www.computerenhance.com/p/in-order-interleaving">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[My Thoughts on Notch's DLSS Post]]></title><description><![CDATA[The creator of Minecraft recently made a (controversial?) post about DLSS. I wanted to add some relevant context about GPU hardware.]]></description><link>https://www.computerenhance.com/p/my-thoughts-on-notchs-dlss-post</link><guid isPermaLink="false">https://www.computerenhance.com/p/my-thoughts-on-notchs-dlss-post</guid><dc:creator><![CDATA[Casey Muratori]]></dc:creator><pubDate>Fri, 03 Apr 2026 07:35:09 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/193044322/6404dc04de8b3718f207f10ec0f09064.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p>Recently, Minecraft creator Markus &#8220;Notch&#8221; Persson used his popular X account to express a negative opinion of DLSS:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!gTQ8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc02332bc-3125-43ee-b8a7-48f0df0ed4f0_588x315.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!gTQ8!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc02332bc-3125-43ee-b8a7-48f0df0ed4f0_588x315.png 424w, https://substackcdn.com/image/fetch/$s_!gTQ8!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc02332bc-3125-43ee-b8a7-48f0df0ed4f0_588x315.png 848w, https://substackcdn.com/image/fetch/$s_!gTQ8!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc02332bc-3125-43ee-b8a7-48f0df0ed4f0_588x315.png 1272w, https://substackcdn.com/image/fetch/$s_!gTQ8!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc02332bc-3125-43ee-b8a7-48f0df0ed4f0_588x315.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!gTQ8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc02332bc-3125-43ee-b8a7-48f0df0ed4f0_588x315.png" width="588" height="315" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c02332bc-3125-43ee-b8a7-48f0df0ed4f0_588x315.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:315,&quot;width&quot;:588,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:27737,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.computerenhance.com/i/193044322?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc02332bc-3125-43ee-b8a7-48f0df0ed4f0_588x315.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!gTQ8!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc02332bc-3125-43ee-b8a7-48f0df0ed4f0_588x315.png 424w, https://substackcdn.com/image/fetch/$s_!gTQ8!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc02332bc-3125-43ee-b8a7-48f0df0ed4f0_588x315.png 848w, https://substackcdn.com/image/fetch/$s_!gTQ8!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc02332bc-3125-43ee-b8a7-48f0df0ed4f0_588x315.png 1272w, https://substackcdn.com/image/fetch/$s_!gTQ8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc02332bc-3125-43ee-b8a7-48f0df0ed4f0_588x315.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Notch&#8217;s <a href="https://x.com/notch/status/2039561278495068337">post on X</a> about DLSS.</figcaption></figure></div><p>Technically, it was dated April 1st, so it may all have been a ruse! But April Fools joke or not, the vast majority of replies took it seriously.</p><p>While anyone can subjectively agree or disagree with Notch on the value of DLSS, there&#8217;s an underlying objective question regarding his use of the phrase &#8220;<em>THE SAME HARDWARE</em>&#8221;. Many replies took issue with this wording, claiming it was a clear sign Notch did not understand how DLSS worked.</p><p>I&#8217;m not so sure about that.</p><p>I think there is a good case to be made that - given what little NVIDIA tells us - Notch is not objectively wrong about NVIDIA hardware. I didn&#8217;t feel like a contorted X post would be the best way to elaborate on this, so I livestreamed my thoughts on <a href="https://www.twitch.tv/molly_rocket">Twitch</a>, <a href="https://www.youtube.com/mollyrocket">YouTube</a>, and here on Substack.</p><p>The video is included above for those of you that missed the stream.</p>]]></content:encoded></item><item><title><![CDATA[Making Sense of the Hype]]></title><description><![CDATA[Listen now (74 mins) | Using the Anthropic C compiler post as an example, Demetri proposes a two-axis approach for assessing claims about AI.]]></description><link>https://www.computerenhance.com/p/making-sense-of-the-hype</link><guid isPermaLink="false">https://www.computerenhance.com/p/making-sense-of-the-hype</guid><dc:creator><![CDATA[Casey Muratori]]></dc:creator><pubDate>Fri, 13 Mar 2026 17:14:46 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/190781016/078fefeb331e8140f60a7167645512fe.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<div id="youtube2-HgNKa9UlRF8" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;HgNKa9UlRF8&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/HgNKa9UlRF8?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>In this second episode of <em>Wading Through AI</em>, <a href="https://demetrispanos.com/">Demetri</a> and I discuss the recent <a href="https://www.anthropic.com/engineering/building-c-compiler">Anthropic blog post about &#8220;parallel Claudes&#8221; building a C Compiler</a>, and use it as a case study for how to assess AI announcements.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.computerenhance.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.computerenhance.com/subscribe?"><span>Subscribe now</span></a></p><p><em>As always, the art for the thumbnail, podcast cover, and banner of Wading Through AI were all hand-drawn by <a href="https://x.com/aerettberg">Anna Rettberg</a> in her signature style. We do not currently use generative AI here at <a href="https://mollyrocket.com/">Molly Rocket</a>.</em></p>]]></content:encoded></item></channel></rss>