<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	 xmlns:friends="wordpress-plugin-friends:feed-additions:1" >

<channel>
	<title>avdi.codes</title>
	<atom:link href="https://avdi.codes/feed/" rel="self" type="application/rss+xml" />
	<link>https://avdi.codes</link>
	<description>Avdi Grimm, Code Cleric</description>
	<lastBuildDate>Thu, 17 Sep 2026 17:26:54 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.1</generator>

<image>
	<url>https://avdi.codes/wp-content/uploads/2019/06/cropped-favicon-extraced-from-linda-kerr-loga-32x32.png</url>
	<title>avdi.codes</title>
	<link>https://avdi.codes</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title></title>
		<link>https://avdi.codes/184910-2/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=184910-2</link>
					<comments>https://avdi.codes/184910-2/#respond</comments>
		
		<dc:creator><![CDATA[Avdi Grimm]]></dc:creator>
		<pubDate>Thu, 17 Sep 2026 17:26:54 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">https://avdi.codes/184910-2/</guid>

					<description><![CDATA[An open fascist is building one of the bigger sources of funding for open source fully under his individual control and sucks up a lot of money that otherwise might have gone to liberatory projects. Community projects. Antifascist projects. tante: Power Grab]]></description>
										<content:encoded><![CDATA[<blockquote class="wp-block-quote">
<p>An open fascist is building one of the bigger sources of funding for open source fully under his individual control and sucks up a lot of money that otherwise might have gone to liberatory projects. Community projects. Antifascist projects.</p>
<p>  <cite>tante: <em><a href="https://tante.cc/2026/09/11/power-grab/">Power Grab</a></em></cite>
</p></blockquote>
]]></content:encoded>
					
					<wfw:commentRss>https://avdi.codes/184910-2/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<friends:post-format>quote</friends:post-format>
	</item>
		<item>
		<title></title>
		<link>https://avdi.codes/183665-2/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=183665-2</link>
					<comments>https://avdi.codes/183665-2/#comments</comments>
		
		<dc:creator><![CDATA[Avdi Grimm]]></dc:creator>
		<pubDate>Tue, 08 Sep 2026 14:30:49 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">https://avdi.codes/?p=183665</guid>

					<description><![CDATA[Making a Claude plugin named Bill Gates that makes Claude put a dollar in the swear jar every time it says &#8220;gate&#8221;.]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Making a Claude plugin named Bill Gates that makes Claude put a dollar in the swear jar every time it says &#8220;gate&#8221;.</p>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
					<wfw:commentRss>https://avdi.codes/183665-2/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		<friends:post-format>status</friends:post-format>
	</item>
		<item>
		<title></title>
		<link>https://avdi.codes/182978-2/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=182978-2</link>
		
		<dc:creator><![CDATA[Avdi Grimm]]></dc:creator>
		<pubDate>Thu, 03 Sep 2026 16:01:03 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">https://avdi.codes/182978-2/</guid>

					<description><![CDATA[My position on AI has been extremely boring and is basically, &#8220;if something is currently happening, the people who are saying that it&#8217;s impossible that it will ever happen are probably wrong&#8221;. danluu.com: How Accurate Have Ed Zitron&#8217;s AI Skeptic Predictions Been?]]></description>
										<content:encoded><![CDATA[<blockquote class="wp-block-quote">
<p>My position on AI has been extremely boring and is basically, &#8220;if something is currently happening, the people who are saying that it&#8217;s impossible that it will ever happen are probably wrong&#8221;.</p>
<p>  <cite>danluu.com: <em><a href="https://danluu.com/zitron/">How Accurate Have Ed Zitron&#8217;s AI Skeptic Predictions Been?</a></em></cite>
</p></blockquote>
]]></content:encoded>
					
		
		
		<friends:post-format>quote</friends:post-format>
	</item>
		<item>
		<title></title>
		<link>https://avdi.codes/182801-2/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=182801-2</link>
		
		<dc:creator><![CDATA[Avdi Grimm]]></dc:creator>
		<pubDate>Wed, 02 Sep 2026 14:53:53 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">https://avdi.codes/182801-2/</guid>

					<description><![CDATA[We’ve spent years loading an extraordinary number of responsibilities onto the humble code review: quality gate, security check, architecture review, mentoring mechanism, knowledge-sharing system, ownership model. Rachel Laycock (rlaycock@thoughtworks.com): Maybe We Shouldn&#8217;t Be Reviewing All This Code]]></description>
										<content:encoded><![CDATA[<blockquote class="wp-block-quote">
<p>We’ve spent years loading an extraordinary number of responsibilities onto the humble code review: quality gate, security check, architecture review, mentoring mechanism, knowledge-sharing system, ownership model.</p>
<p>  <cite>Rachel Laycock (rlaycock@thoughtworks.com): <em><a href="https://martinfowler.com/rachels-ramblings/code-review.html">Maybe We Shouldn&#8217;t Be Reviewing All This Code</a></em></cite>
</p></blockquote>
]]></content:encoded>
					
		
		
		<friends:post-format>quote</friends:post-format>
	</item>
		<item>
		<title>Pulp Opus</title>
		<link>https://avdi.codes/pulp-opus/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=pulp-opus</link>
					<comments>https://avdi.codes/pulp-opus/#comments</comments>
		
		<dc:creator><![CDATA[Avdi Grimm]]></dc:creator>
		<pubDate>Mon, 31 Aug 2026 18:54:13 +0000</pubDate>
				<category><![CDATA[Humor]]></category>
		<guid isPermaLink="false">https://avdi.codes/?p=182460</guid>

					<description><![CDATA[]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-full"><img fetchpriority="high" decoding="async" width="912" height="500" src="https://avdi.codes/wp-content/uploads/2026/08/image-1.png" alt="" class="wp-image-182461" srcset="https://avdi.codes/wp-content/uploads/2026/08/image-1.png 912w, https://avdi.codes/wp-content/uploads/2026/08/image-1-300x164.png 300w, https://avdi.codes/wp-content/uploads/2026/08/image-1-768x421.png 768w" sizes="(max-width: 912px) 100vw, 912px" /></figure>
]]></content:encoded>
					
					<wfw:commentRss>https://avdi.codes/pulp-opus/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
		<friends:post-format>image</friends:post-format>
	</item>
		<item>
		<title>Moon Crimes</title>
		<link>https://avdi.codes/moon-crimes/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=moon-crimes</link>
					<comments>https://avdi.codes/moon-crimes/#comments</comments>
		
		<dc:creator><![CDATA[Avdi Grimm]]></dc:creator>
		<pubDate>Fri, 28 Aug 2026 22:08:22 +0000</pubDate>
				<category><![CDATA[Rants]]></category>
		<category><![CDATA[security]]></category>
		<guid isPermaLink="false">https://avdi.codes/?p=181957</guid>

					<description><![CDATA[Shopping for an anonymous VPN service is so weird because all the marketing and all the reviews are like DO YOU WANT TO DO CRIMES? DO YOU WANT TO DO DOUBLE SECRET CRIMES? DO YOU WANT YOUR PACKETS TO COME FROM THE MOON? DO YOU WANT TO DO MOON CRIMES WHILE WE PROJECT A PLAUSIBLE [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Shopping for an anonymous VPN service is so weird because all the marketing and all the reviews are like DO YOU WANT TO DO CRIMES? DO YOU WANT TO DO DOUBLE SECRET CRIMES? DO YOU WANT YOUR PACKETS TO COME FROM THE MOON? DO YOU WANT TO DO MOON CRIMES WHILE WE PROJECT A PLAUSIBLE HOLOGRAM OF YOU IN TIMES SQUARE? DO YOU WANT NO LOGS OF YOUR CRIMES? DO YOU WANT US TO ERASE THE GOVERNMENT WHEN THEY ASK FOR YOUR LOGS?</p>



<p class="wp-block-paragraph">And here I am just wanting decently fast secure connections from coffee shop wifi without every website being like &#8220;um, your IP is listed in our database as &#8216;MOONCRIME6&#8217;, are you sure you aren&#8217;t a crimebot?&#8221;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://avdi.codes/moon-crimes/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
		<friends:post-format>aside</friends:post-format>
	</item>
		<item>
		<title></title>
		<link>https://avdi.codes/181574-2/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=181574-2</link>
					<comments>https://avdi.codes/181574-2/#comments</comments>
		
		<dc:creator><![CDATA[Avdi Grimm]]></dc:creator>
		<pubDate>Wed, 26 Aug 2026 03:10:26 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">https://avdi.codes/?p=181574</guid>

					<description><![CDATA[I was trying to describe what working on code with AI while *all this* [waves vaguely] is going on. What came to mind is: imagine spending a couple years in the desert learning to harness petroleum to power tractors and cranes. Then you visit the big city, and everyone is putting crude oil in their [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">I was trying to describe what working on code with AI while *all this* [waves vaguely] is going on. What came to mind is: imagine spending a couple years in the desert learning to harness petroleum to power tractors and cranes. Then you visit the big city, and everyone is putting crude oil in their hair and on their pizza and using it for sex.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://avdi.codes/181574-2/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		<friends:post-format>aside</friends:post-format>
	</item>
		<item>
		<title>Output Field Separator in Ruby</title>
		<link>https://avdi.codes/output-record-separator-in-ruby/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=output-record-separator-in-ruby</link>
		
		<dc:creator><![CDATA[Avdi Grimm]]></dc:creator>
		<pubDate>Tue, 25 Aug 2026 19:12:20 +0000</pubDate>
				<category><![CDATA[Technologies]]></category>
		<category><![CDATA[Ruby]]></category>
		<guid isPermaLink="false">https://avdi.codes/?p=181503</guid>

					<description><![CDATA[Chris Oliver asked on LinkedIn: I left a comment there, but I wanted to preserve it here as well: There is no &#8220;global variable for nil&#8221;. $, is the &#8220;output field separator&#8221;. Known as OFS in AWK, it is known shorthand-mnemonically as $, in both Perl and Ruby &#8211; the mnemonic being that &#8220;comma&#8221; is [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Chris Oliver <a href="https://www.linkedin.com/posts/excid3_spotted-this-in-the-rails-source-today-the-activity-7494096955933872128-R3eW/">asked on LinkedIn</a>:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Spotted this in the Rails source today. The trailing comma made me think it was a typo at first glance but it uses the $, global variable for nil instead of nil directly. Anyone know the reason for this?</p>



<figure class="wp-block-image size-full"><img decoding="async" width="800" height="489" src="https://avdi.codes/wp-content/uploads/2026/08/image.png" alt="" class="wp-image-181504" srcset="https://avdi.codes/wp-content/uploads/2026/08/image.png 800w, https://avdi.codes/wp-content/uploads/2026/08/image-300x183.png 300w, https://avdi.codes/wp-content/uploads/2026/08/image-767x469.png 767w" sizes="(max-width: 800px) 100vw, 800px" /></figure>
</blockquote>



<p class="wp-block-paragraph">I left a comment there, but I wanted to preserve it here as well:</p>



<p class="wp-block-paragraph">There is no &#8220;global variable for nil&#8221;. <code class="" data-line="">$,</code> is the &#8220;output field separator&#8221;. Known as <code class="" data-line="">OFS</code> in AWK, it is known shorthand-mnemonically as <code class="" data-line="">$,</code> in both Perl and Ruby &#8211; the mnemonic being that &#8220;comma&#8221; is a very common output field separator (think: comma-separated values). The default value of &#8220;nil&#8221; simply means &#8220;no separator&#8221;. But setting it to something else can be quite useful!</p>



<p class="wp-block-paragraph">For example, to use Ruby from the command-line to convert my /etc/passwd file to CSV, sure you could do this (nowadays; there wasn&#8217;t always a stdlib CSV library &#8211; thanks, James Edward Gray!)</p>



<pre class="wp-block-code"><code class="" data-line="">ruby -retc -rcsv -e &#039;Etc.passwd { puts CSV.generate_line it.to_a }&#039;</code></pre>



<p class="wp-block-paragraph">But you don&#8217;t need the CSV library when you can do this:</p>



<pre class="wp-block-code"><code class="" data-line="">ruby -retc -e &#039;$,=&quot;,&quot;; $\=&quot;\n&quot;; Etc.passwd{ print *it }&#039;</code></pre>



<p class="wp-block-paragraph">(We are also setting the Output Record Separator, <code class="" data-line="">$\</code>, here)</p>



<p class="wp-block-paragraph">This reflects a bygone UNIX-style of record-processing in which &#8220;how to recognize/format a record&#8221; was separated from &#8220;where to find or write the records&#8221;. Modern front-end programmers may recognize this pattern as a kind of rudimentary stylesheet: first define how to display values; then separately produce the semantic values themselves.</p>



<p class="wp-block-paragraph">So to pop the stack back to the original question, the Rails codebase is not setting <code class="" data-line="">sep</code> to <code class="" data-line="">nil</code>; it is setting it to &#8220;the current global output field separator&#8221; in order to comply with programmer expectations.</p>



<p class="wp-block-paragraph">This mnemonic variable is deprecated in Ruby 4.0; as always, in any non-one-liner context it is preferable to use the <code class="" data-line="">English</code> module aliases e.g. <code class="" data-line="">$OUTPUT_FIELD_SEPARATOR</code>.</p>
]]></content:encoded>
					
		
		
		<friends:post-format>standard</friends:post-format>
	</item>
		<item>
		<title></title>
		<link>https://avdi.codes/175297-2/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=175297-2</link>
		
		<dc:creator><![CDATA[Avdi Grimm]]></dc:creator>
		<pubDate>Fri, 24 Jul 2026 14:16:45 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">https://avdi.codes/175297-2/</guid>

					<description><![CDATA[Creation is now near-free. Verification/understanding is not, yet. It&#8217;s time to engineer away the slop. Geoffrey Huntley: Engineer Away the Slop]]></description>
										<content:encoded><![CDATA[<blockquote class="wp-block-quote">
<p>Creation is now near-free. Verification/understanding is not, yet. It&#8217;s time to engineer away the slop.</p>
<p>  <cite>Geoffrey Huntley: <em><a href="https://ghuntley.com/slop/?utm_source=tldrnewsletter">Engineer Away the Slop</a></em></cite>
</p></blockquote>
]]></content:encoded>
					
		
		
		<friends:post-format>quote</friends:post-format>
	</item>
		<item>
		<title></title>
		<link>https://avdi.codes/163761-2/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=163761-2</link>
		
		<dc:creator><![CDATA[Avdi Grimm]]></dc:creator>
		<pubDate>Sat, 04 Jul 2026 13:48:25 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">https://avdi.codes/163761-2/</guid>

					<description><![CDATA[developers in Learning &#038; Belonging cultures, who endorse a &#8220;coding is learnable&#8221; set of beliefs, experience this moment very differently. Their identity threat was cut in half. Mastodon: @grimalkina@mastodon.social]]></description>
										<content:encoded><![CDATA[<blockquote class="wp-block-quote">
<p>developers in Learning &#038; Belonging cultures, who endorse a &#8220;coding is learnable&#8221; set of beliefs, experience this moment very differently. Their identity threat was cut in half.</p>
<p>  <cite>Mastodon: <em><a href="https://mastodon.social/@grimalkina/116788957437281634">@grimalkina@mastodon.social</a></em></cite>
</p></blockquote>
]]></content:encoded>
					
		
		
		<friends:post-format>quote</friends:post-format>
	</item>
	</channel>
</rss>
