<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="/blog/rss.xsl" type="text/xsl" media="screen" ?>
<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/"
	>

<channel>
	<title>dnalounge - jwz</title>
	<atom:link href="https://cdn.jwz.org/blog/tag/dnalounge/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.jwz.org/blog/</link>
	<description></description>
	<lastBuildDate>Tue, 14 Apr 2026 18:16:17 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<atom:link rel="hub" href="https://pubsubhubbub.appspot.com"/>
<atom:link rel="hub" href="https://pubsubhubbub.superfeedr.com"/>
<atom:link rel="hub" href="https://websubhub.com/hub"/>
<atom:link rel="self" href="https://cdn.jwz.org/blog/tag/dnalounge/feed/"/>
	<item>
		<title>DNA Lounge: Wherein our long pizza delivery nightmare has finally reached a middle</title>
		<link>https://www.dnalounge.com/backstage/log/2026/04/14.html</link>
		
		<dc:creator><![CDATA[jwz]]></dc:creator>
		<pubDate>Tue, 14 Apr 2026 18:16:17 +0000</pubDate>
		<category><![CDATA[dnalounge]]></category>
		<guid isPermaLink="false">https://jwz.org/b/yk6M</guid>

					<description><![CDATA[Welp, that's about enough of that. We're back to not doing deliveries again. At the end of January we started using Chow Now for deliveries. It was a $50/month flat fee, and they were to drop the orders directly into our Revel POS on the back end.

Guess what, they ...]]></description>
										<content:encoded><![CDATA[Welp, that's about enough of that. We're back to not doing deliveries again. At the end of January we <A HREF="https://www.dnalounge.com/backstage/log/2026/01/31.html">started using Chow Now for deliveries</A>. It was a $50/month flat fee, and they were to drop the orders directly into our Revel POS on the back end. <P>Guess what, they completely failed at their one job. The orders would actually show up in the POS about one time in four, and they could not fix it. <P>Also we averaged $38 in online sales per week, which is like... a rounding error. <P>If you haven't read my <A HREF="https://www.dnalounge.com/backstage/log/2026/02/01.html">long post about the absolute apocalypse that has been visited upon those of us who would like to deliver food to people in this modern world</A>, maybe today's a good day to do that.]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Still seeking Basecamp alternative</title>
		<link>https://www.jwz.org/blog/2026/04/still-seeking-basecamp-alternative/</link>
					<comments>https://www.jwz.org/blog/2026/04/still-seeking-basecamp-alternative/#comments</comments>
		
		<dc:creator><![CDATA[jwz]]></dc:creator>
		<pubDate>Sun, 12 Apr 2026 03:34:31 +0000</pubDate>
		<category><![CDATA[computers]]></category>
		<category><![CDATA[corporations]]></category>
		<category><![CDATA[dnalounge]]></category>
		<category><![CDATA[firstperson]]></category>
		<category><![CDATA[lazyweb]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[www]]></category>
		<guid isPermaLink="false">https://jwz.org/b/yk6E</guid>

					<description><![CDATA[I asked this 6 months ago and got no good answers so let's try again.

Against my better judgment, I let my staff start using Basecamp about 8 years ago, and now I want to ditch it for something open source and self-hosted.

Several people suggested Nextcloud. After much ...]]></description>
										<content:encoded><![CDATA[<DIV STYLE="text-align: center; width: 35%; max-width: 1202px; margin: 0 0 1em 1em; float: right;"><A HREF="https://cdn.jwz.org/images/2024/comments/1dd6a28f022908d-1.png" data-size="1202x884"><IMG SRC="https://cdn.jwz.org/images/scaled/768/2024/comments/1dd6a28f022908d-1.png" WIDTH=1202 HEIGHT=884 STYLE="width: 100%; height: auto; border: 1px solid; margin-bottom: 0.5em" SRCSET="https://cdn.jwz.org/images/2024/comments/1dd6a28f022908d-1.png 1202w, https://cdn.jwz.org/images/scaled/1024/2024/comments/1dd6a28f022908d-1.png 1024w, https://cdn.jwz.org/images/scaled/768/2024/comments/1dd6a28f022908d-1.png 768w, https://cdn.jwz.org/images/scaled/640/2024/comments/1dd6a28f022908d-1.png 640w, https://cdn.jwz.org/images/scaled/360/2024/comments/1dd6a28f022908d-1.png 360w" SIZES="(max-width: 660px) 35vw, 26em" LOADING="lazy" data-size="1202x884"></A></DIV>I asked this <A HREF="https://www.jwz.org/blog/2025/10/basecamp-alternative/">6 months ago</A> and got no good answers so let's try again. <P>Against my better judgment, I let my staff start using Basecamp about 8 years ago, and now I want to ditch it for something open source and self-hosted. <P>Several people suggested <A HREF="https://nextcloud.com/">Nextcloud</A>. After much pain, I got that installed, and finally convinced my general manager to take a look at it. Here is his review: <P><BLOCKQUOTE STYLE="margin: 1em 0 1em 1.5em; padding: 0.75em 0.5em 0.75em 1em; border: 1px solid; border-left: 4px solid;"> <P>I spent more time poking at this today, and on several occasions it took it 20-30 seconds to respond to link clicks. <P>I've also spent some time reading the manual, and... I hate these people so much. it's all about how to access your data with various protocols, and nothing about how to use the actual software or WTF the software is expected to do or how you might use it. <P>It looks like the "todo lists" is all those "cards". They even have an example set that implies each card has more details, but opening them, it just says DESCRIPTION and you can't edit it. <P>I cannot make any sense out of this. Is it mostly hosting infrasrtucture that is used by other, more sane front-ends? it alludes to a bunch of features, but it seems like those are "apps" that you have to add. on it's own, it's about as friendly as teaching a Boomer to set up a linux desktop so they can check emails. <P>On a scale of 1 to 10, I'd rate this "I'd rather have my gums planed".</BLOCKQUOTE> <P>A few other people suggested <A HREF="https://www.openproject.org/">Openproject</A>. <P>It seems that the only method of installation that Openproject documents is "install an entire VM" or <A HREF="https://www.openproject.org/docs/installation-and-operations/installation/packaged/">"install these RPMs"</A> and of course they don't have a package for the OS that I use ("Amazon Linux 2023"). There's not a single mention of how one might go about installing from source, so I don't even know where to begin trying to test it out. <P>Also they say "whatever you do, don't install our software on a server that has anything else running on it, because we might completely scorch anything that isn't ours." Confidence-inspiring! <P>Even more confidence-inspiring: <I>"A user you've blocked has previously contributed to this repository: <u>Claude</u>".</I> So it's slopware, too. <P>I am now soliciting suggestions. Please give me <I>non-terrible</I> suggestions. <P><B>What I am seeking:</B> <P><ul> <li> Create and organize sets of documents. </li><li> Create tasks and assign them to people. </li><li> Sometimes with due dates. </li><li> In both of these things, edit text, with basic styling and inlined images, WYSIWYG, including from a phone. </li><li> Attach things like PDFs. </li><li> 100% locally hosted. </li><li> Not paying a monthly fee to an <A HREF="https://jakelazaroff.com/words/dhh-is-way-worse-than-i-thought/">unhinged fascist</A> to keep my files on their computer. </li></ul> <P><B>What I don't care about: Anything not on that list, including but not limited to:</B> <P><ul><li> <tt>git</tt>; </li><li> Markdown; </li><li> AWS buckets; </li><li> Dropbox; </li><li> Learning what business-brain buzzwords like "Gantt" or "Scrum" mean. </li></ul> <P><B>Things that should not need to be said but do:</B> <P><ul><li> Do not suggest software that you do not use. </li><li> Do not just Google it for me. </li></ul> <P><A HREF="https://www.jwz.org/blog/2025/10/basecamp-alternative/">Previously</A>, <A HREF="https://www.jwz.org/blog/2024/06/modern-web-technologies/">previously</A>.]]></content:encoded>
					
					<wfw:commentRss>https://cdn.jwz.org/blog/2026/04/still-seeking-basecamp-alternative/feed/</wfw:commentRss>
			<slash:comments>39</slash:comments>
		
		
		<enclosure url="https://cdn.jwz.org/images/2024/comments/1dd6a28f022908d-1.png" width="1202" height="884" length="1426128" type="image/png"/>
	</item>
		<item>
		<title>Popup video</title>
		<link>https://www.jwz.org/blog/2026/04/popup-video-2/</link>
					<comments>https://www.jwz.org/blog/2026/04/popup-video-2/#comments</comments>
		
		<dc:creator><![CDATA[jwz]]></dc:creator>
		<pubDate>Fri, 10 Apr 2026 22:30:45 +0000</pubDate>
		<category><![CDATA[computers]]></category>
		<category><![CDATA[dnalounge]]></category>
		<category><![CDATA[firstperson]]></category>
		<category><![CDATA[lazyweb]]></category>
		<category><![CDATA[mpegs]]></category>
		<category><![CDATA[phones]]></category>
		<category><![CDATA[www]]></category>
		<guid isPermaLink="false">https://jwz.org/b/yk6C</guid>

					<description><![CDATA[Last year I wrote popup-video.js, a Google-surveillance-defeating YouTube player. You may have noticed it in action on the DNA Lounge calendar pages and galleries but I've made some improvements recently.

The web page contains only a locally-hosted thumbnail. Nothing from ...]]></description>
										<content:encoded><![CDATA[<DIV STYLE="text-align: center; width: 30%; max-width: 400px; margin: 0 0 1em 1em; float: right;"><A HREF="https://www.jwz.org/hacks/#popup-video"><VIDEO STYLE="width: 100%; height: auto; border: 1px solid; margin-bottom: 0.5em" LOOP AUTOPLAY PLAYSINLINE MUTED WIDTH="400" HEIGHT="268"><SOURCE SRC="https://cdn.jwz.org/images/scaled/mp4/2026/429ff68b7d6e10330ab1dfecdeaf8481.mp4" TYPE="video/mp4" /></VIDEO></A></DIV><A HREF="https://www.jwz.org/blog/2025/06/popup-video/">Last year</A> I wrote <A HREF="https://www.jwz.org/hacks/#popup-video">popup-video.js</A>, a Google-surveillance-defeating YouTube player. You may have noticed it in action on the <A HREF="https://www.dnalounge.com/calendar/2026/05-15d.html">DNA Lounge calendar pages</A> and <A HREF="https://www.dnalounge.com/gallery/">galleries</A> but I've made some improvements recently. <P><ul> <li> The web page contains only a locally-hosted thumbnail. Nothing from YouTube is loaded until someone clicks play. This means no surveillance trackers on every one of your pages that has a video, and also the pages load dozens fewer megabytes. <P></li><li> When you click play, a fake-window pops up inside the page with a YouTube player. <P></li><li> Clicking anywhere makes it go away. <P></li><li> There's a "minimize" button that makes it drop back down into the place where the thumbnail was and continue playing. <P></li><li> If the inline thumb is nearly as wide as the page, it plays inline instead of doing the popup thing (this is often the case on mobile). <P></li><li> It works on <A HREF="https://www.jwz.org/blog/2026/04/jwz-mixtape-258/">playlists</A> as well as single videos. <P></li><li> For single videos, it generates an <A HREF="https://www.dnalounge.com/gallery/2026/03-28/">ad-hoc playlist</A> of all of the other YouTube videos linked on the current page, so the "previous" and "next" buttons show those. <P></li><li> It works on <A HREF="https://www.jwz.org/blog/2025/10/hand-cranked-they-live-transformation/">portrait videos</A> and <A HREF="https://www.jwz.org/blog/2026/03/monarch-title-sequence/">videos with weird aspect ratios</A>. </li></ul> <P>Dear Lazyweb, <P>If you understand the ever-changing rules about auto-play, perhaps you can offer some guidance. <P>On desktop Safari, you have to click twice to get the first video to play: the YouTube player pops up but does not then auto-play, unless you have done <I>"Website settings / Allow all auto-play"</I> for jwz.org. This is -- what's the word -- <I>fucked up,</I> because the creation of the IFRAME and the sending of the "play" event all happen underneath the user's "click" event, so this <I>should</I> be considered interactive. <P>And on mobile Safari you always have to click twice. <P>(I don't remember what the situation is on Chrome or Firefox on account of not caring.) <P><I>Anyway,</I> if you know how to make it play with one click instead of two, I would like to know how to do that. Your suggestion should take the form of, "Here's a modified version of your JS file that works". Your <I>speculation</I> is acknowledged and ignored. <P><A HREF="https://www.jwz.org/blog/2025/06/popup-video/">Previously</A>, <A HREF="https://www.jwz.org/blog/2024/06/the-ever-changing-rules-about-autoplay-2/">previously</A>, <A HREF="https://www.jwz.org/blog/2019/01/the-ever-changing-rules-about-autoplay/">previously</A>.]]></content:encoded>
					
					<wfw:commentRss>https://cdn.jwz.org/blog/2026/04/popup-video-2/feed/</wfw:commentRss>
			<slash:comments>10</slash:comments>
		
		
		<enclosure url="https://cdn.jwz.org/images/2026/429ff68b7d6e10330ab1dfecdeaf8481.gif" width="400" height="268" length="259671" type="image/gif"/>
	</item>
		<item>
		<title>SMS chatbots are going great</title>
		<link>https://www.jwz.org/blog/2026/04/sms-chatbots-are-going-great/</link>
					<comments>https://www.jwz.org/blog/2026/04/sms-chatbots-are-going-great/#comments</comments>
		
		<dc:creator><![CDATA[jwz]]></dc:creator>
		<pubDate>Sat, 04 Apr 2026 18:53:57 +0000</pubDate>
		<category><![CDATA[ai]]></category>
		<category><![CDATA[computers]]></category>
		<category><![CDATA[corporations]]></category>
		<category><![CDATA[dnalounge]]></category>
		<category><![CDATA[doomed]]></category>
		<category><![CDATA[firstperson]]></category>
		<category><![CDATA[glitch]]></category>
		<category><![CDATA[phones]]></category>
		<category><![CDATA[robots]]></category>
		<category><![CDATA[spam]]></category>
		<guid isPermaLink="false">https://jwz.org/b/yk5t</guid>

					<description><![CDATA[For a good time, call +14156261409.]]></description>
										<content:encoded><![CDATA[<DIV STYLE="border: 1px solid #AAA; font-family:Helvetica Neue,Arial,Helvetica; font-size: 12pt; max-width: 25em; margin: auto;"> <DIV STYLE="background: #F7F7F7; padding: 0.75em; border-bottom: 1px solid #408CAE" ><DIV STYLE="color: #0040DD; width: 5.5em; padding: 0 0.5em; font-weight: bold; float: left;">&lt;&nbsp;</DIV><DIV STYLE="color: #0040DD; width: 5.5em; text-align: right; padding: 0 0.5em; font-weight: bold; float: right;"><DIV STYLE="display: inline-block; border: 2px solid; border-radius: 0.75em; width: 1.3em; height: 1.3em;text-align: center; box-sizing: border-box; padding: 1px">i</DIV></DIV> <DIV STYLE="font-weight: bold; text-align: center; color: #000;">+19173986215</DIV></DIV> <div style="max-height: 40em; overflow: auto;"> <DIV STYLE="background: #FFF; padding: 0.5em 1em; line-height: 1.3em;"> <DIV STYLE="display: inline-block; max-width: 75%; margin-top: 0.25em; border: 1px solid #888; border-radius: 1em; padding: 0.5em 0.7em; overflow: hidden; box-sizing: border-box; clear: both; float: left; color: #000; background: #E5E5EA;">Hi again! Just giving you a quick nudge. If funding is still on your mind for DNA Lounge, I&apos;m here when you&apos;re ready to chat.</DIV> <DIV STYLE="display: inline-block; max-width: 75%; margin-top: 0.25em; border: 1px solid #888; border-radius: 1em; padding: 0.5em 0.7em; overflow: hidden; box-sizing: border-box; clear: both; float: right; color: #FFF; background: #1D71BF;">Hello! I am but a simple robot. Here&apos;s what we have coming up: <BR><BR>&#9;Tonight: AniClover404 (4p, 18+) <A HREF="https://dnalounge.com/b/ClBD">https://<WBR>dnalounge.<WBR>com/<WBR>b/<WBR>ClBD</A>&#9;<BR>&#9;Tonight: After Life (9:30p, 18+) <A HREF="https://dnalounge.com/b/C1BD">https://<WBR>dnalounge.<WBR>com/<WBR>b/<WBR>C1BD</A><BR>&#9;Tonight: Kiss All The Time (10p, 18+) <A HREF="https://dnalounge.com/b/CVBD">https://<WBR>dnalounge.<WBR>com/<WBR>b/<WBR>CVBD</A><BR>&#9;Tomorrow: Aesthetic Perfection (7p, all ages) <A HREF="https://dnalounge.com/b/CVBE">https://<WBR>dnalounge.<WBR>com/<WBR>b/<WBR>CVBE</A></DIV> <DIV STYLE="display: inline-block; max-width: 75%; margin-top: 0.25em; border: 1px solid #888; border-radius: 1em; padding: 0.5em 0.7em; overflow: hidden; box-sizing: border-box; clear: both; float: left; color: #000; background: #E5E5EA;">Thanks for sharing your events! If you had $50k-$200k extra, would you put it toward staffing, inventory, equipment, or marketing for DNA Lounge? Prefer a call or text to continue?</DIV> <DIV STYLE="display: inline-block; max-width: 75%; margin-top: 0.25em; border: 1px solid #888; border-radius: 1em; padding: 0.5em 0.7em; overflow: hidden; box-sizing: border-box; clear: both; float: right; color: #FFF; background: #1D71BF;">For more info, see dnalounge.com</DIV> <DIV STYLE="display: inline-block; max-width: 75%; margin-top: 0.25em; border: 1px solid #888; border-radius: 1em; padding: 0.5em 0.7em; overflow: hidden; box-sizing: border-box; clear: both; float: left; color: #000; background: #E5E5EA;">Appreciate that! If you&apos;re interested in funding for DNA Lounge, would you rather chat over text or schedule a quick call to discuss options?</DIV> <DIV STYLE="display: inline-block; max-width: 75%; margin-top: 0.25em; border: 1px solid #888; border-radius: 1em; padding: 0.5em 0.7em; overflow: hidden; box-sizing: border-box; clear: both; float: right; color: #FFF; background: #1D71BF;">For more info, see dnalounge.com</DIV> <DIV STYLE="display: inline-block; max-width: 75%; margin-top: 0.25em; border: 1px solid #888; border-radius: 1em; padding: 0.5em 0.7em; overflow: hidden; box-sizing: border-box; clear: both; float: left; color: #000; background: #E5E5EA;">Got it, thanks! If you&apos;re considering extra funding for DNA Lounge, would you like to continue over text or schedule a call to chat about your options?</DIV> <DIV STYLE="display: inline-block; max-width: 75%; margin-top: 0.25em; border: 1px solid #888; border-radius: 1em; padding: 0.5em 0.7em; overflow: hidden; box-sizing: border-box; clear: both; float: right; color: #FFF; background: #1D71BF;">For more info, see dnalounge.com</DIV> <DIV STYLE="display: inline-block; max-width: 75%; margin-top: 0.25em; border: 1px solid #888; border-radius: 1em; padding: 0.5em 0.7em; overflow: hidden; box-sizing: border-box; clear: both; float: left; color: #000; background: #E5E5EA;">Thanks for the info! If you had extra capital, would you use it for staffing, inventory, equipment, or marketing? Want to chat by text or schedule a call?</DIV> <DIV STYLE="display: inline-block; max-width: 75%; margin-top: 0.25em; border: 1px solid #888; border-radius: 1em; padding: 0.5em 0.7em; overflow: hidden; box-sizing: border-box; clear: both; float: right; color: #FFF; background: #1D71BF;">For more info, see dnalounge.com</DIV> <DIV STYLE="display: inline-block; max-width: 75%; margin-top: 0.25em; border: 1px solid #888; border-radius: 1em; padding: 0.5em 0.7em; overflow: hidden; box-sizing: border-box; clear: both; float: left; color: #000; background: #E5E5EA;">Thanks for sharing! If you&apos;re the owner or decision-maker and still interested in funding, would you like to continue over text or schedule a call to discuss options?</DIV> <DIV STYLE="display: inline-block; max-width: 75%; margin-top: 0.25em; border: 1px solid #888; border-radius: 1em; padding: 0.5em 0.7em; overflow: hidden; box-sizing: border-box; clear: both; float: right; color: #FFF; background: #1D71BF;">For more info, see dnalounge.com</DIV> <DIV STYLE="display: inline-block; max-width: 75%; margin-top: 0.25em; border: 1px solid #888; border-radius: 1em; padding: 0.5em 0.7em; overflow: hidden; box-sizing: border-box; clear: both; float: left; color: #000; background: #E5E5EA;">No worries, I just wanted to possibly find you a better small business funding solution. If that interests you, just let me know.</DIV> <DIV STYLE="display: inline-block; max-width: 75%; margin-top: 0.25em; border: 1px solid #888; border-radius: 1em; padding: 0.5em 0.7em; overflow: hidden; box-sizing: border-box; clear: both; float: right; color: #FFF; background: #1D71BF;">For more info, see dnalounge.com</DIV> <DIV STYLE="display: inline-block; max-width: 75%; margin-top: 0.25em; border: 1px solid #888; border-radius: 1em; padding: 0.5em 0.7em; overflow: hidden; box-sizing: border-box; clear: both; float: left; color: #000; background: #E5E5EA;">You&apos;re welcome! If you ever need funding info, just reach out. Have a great day!</DIV> <DIV STYLE="display: inline-block; max-width: 75%; margin-top: 0.25em; border: 1px solid #888; border-radius: 1em; padding: 0.5em 0.7em; overflow: hidden; box-sizing: border-box; clear: both; float: right; color: #FFF; background: #1D71BF;">For more info, see dnalounge.com</DIV> <DIV STYLE="display: inline-block; max-width: 75%; margin-top: 0.25em; border: 1px solid #888; border-radius: 1em; padding: 0.5em 0.7em; overflow: hidden; box-sizing: border-box; clear: both; float: left; color: #000; background: #E5E5EA;">You&apos;re welcome!</DIV> <DIV STYLE="display: inline-block; max-width: 75%; margin-top: 0.25em; border: 1px solid #888; border-radius: 1em; padding: 0.5em 0.7em; overflow: hidden; box-sizing: border-box; clear: both; float: right; color: #FFF; background: #1D71BF;">For more info, see dnalounge.com</DIV> <DIV STYLE="display: inline-block; max-width: 75%; margin-top: 0.25em; border: 1px solid #888; border-radius: 1em; padding: 0.5em 0.7em; overflow: hidden; box-sizing: border-box; clear: both; float: left; color: #000; background: #E5E5EA;">Thank you for your time, Have a nice day.</DIV> <DIV STYLE="display: inline-block; max-width: 75%; margin-top: 0.25em; border: 1px solid #888; border-radius: 1em; padding: 0.5em 0.7em; overflow: hidden; box-sizing: border-box; clear: both; float: right; color: #FFF; background: #1D71BF;">For more info, see dnalounge.com</DIV> <DIV STYLE='clear: both'></DIV> <DIV STYLE="text-align: right; color: #858585; font-weight: bold;">Delivered</DIV> </div> </DIV> <DIV STYLE="background: #F7F7F7; padding: 0.25em; font-size: 120%; height: 1.8em; border-top: 1px solid #888"><DIV STYLE="float: left; font-size: larger; vertical-align: middle; margin-top:0.25em">&#x1F4F7;&#xFE0E;</DIV><DIV STYLE="color: #6A727A; padding: 0.3em 0.25em; font-weight: bold; float: right;">Send</DIV><DIV STYLE="background: #FFF; border: 1px solid #888; border-radius: 0.4em; color: #FFF; padding: 0.25em 1em; margin-left: 3em; margin-right: 3.25em; font-weight: bold;"><BR></DIV></DIV> </DIV> <P><div align=center>For a good time, call <A HREF="sms:+14156261409">+14156261409</A>. <P><A HREF="https://www.jwz.org/blog/2021/11/whats-with-all-the-phone-spam/">Previously</A>, <A HREF="https://www.jwz.org/blog/2025/09/today-in-ticketbastard/">previously</A>, <A HREF="https://www.jwz.org/blog/2025/05/user-agent-blocking/">previously</A>, <A HREF="https://www.jwz.org/blog/2025/02/im-clicking-a-cow-4/">previously</A>, <A HREF="https://www.jwz.org/blog/2025/02/im-clicking-a-cow-3/">previously</A>, <A HREF="https://www.jwz.org/blog/2025/04/butterflymx-is-going-great/">previously</A>.</div>]]></content:encoded>
					
					<wfw:commentRss>https://cdn.jwz.org/blog/2026/04/sms-chatbots-are-going-great/feed/</wfw:commentRss>
			<slash:comments>14</slash:comments>
		
		
			</item>
		<item>
		<title>Internet advertising is going great.</title>
		<link>https://www.jwz.org/blog/2026/03/internet-advertising-is-going-great/</link>
					<comments>https://www.jwz.org/blog/2026/03/internet-advertising-is-going-great/#comments</comments>
		
		<dc:creator><![CDATA[jwz]]></dc:creator>
		<pubDate>Sat, 28 Mar 2026 18:24:51 +0000</pubDate>
		<category><![CDATA[corporations]]></category>
		<category><![CDATA[dnalounge]]></category>
		<category><![CDATA[doomed]]></category>
		<category><![CDATA[firstperson]]></category>
		<category><![CDATA[music]]></category>
		<guid isPermaLink="false">https://jwz.org/b/yk5a</guid>

					<description><![CDATA[I hear Spotify is the new hotness, let's see if they will take our money:

Ad name: DNA Lounge Bruno Mars Party.
Your ad wasn't approved for the following reasons:
Reason: Your ad contains only music.
Recommendation: Submit a new ad with a clear voiceover that explains ...]]></description>
										<content:encoded><![CDATA[<DIV STYLE="text-align: center; width: 30%; max-width: 360px; margin: 0 0 1em 1em; float: right;"><A HREF="https://www.dnalounge.com/calendar/2026/04-25.html"><IMG SRC="https://cdn.dnalounge.com/flyers/2026/04/25-1-thumb.jpg" data-size="360x450" WIDTH=360 HEIGHT=450 STYLE="width: 100%; height: auto; border: 1px solid; margin-bottom: 0.5em" ></A></DIV>I hear Spotify is the new hotness, let's see if they will take our money: <P><BLOCKQUOTE STYLE="margin: 1em 0 1em 1.5em; padding: 0.75em 0.5em 0.75em 1em; border: 1px solid; border-left: 4px solid;"><B>Ad name:</B> DNA Lounge Bruno Mars Party<BR> <B>Your ad wasn't approved for the following reasons:</B><BR> <B>Reason:</B> Your ad contains only music.<BR> <B>Recommendation:</B> Submit a new ad with a clear voiceover that explains what's being advertised.</BLOCKQUOTE> <P>Do you want TikTok AI Voice? Because this is how you get TikTok AI Voice. <P><A HREF="https://www.jwz.org/blog/2025/12/los-campesinos-on-streaming/">Previously</A>, <A HREF="https://www.jwz.org/blog/2025/11/the-algorithm-failed-music/">previously</A>, <A HREF="https://www.dnalounge.com/backstage/log/2024/12/03.html">previously</A>, <A HREF="https://www.jwz.org/blog/2020/08/billionaire-says-musicians-are-broke-because-they-dont-work-hard-enough/">previously</A>.]]></content:encoded>
					
					<wfw:commentRss>https://cdn.jwz.org/blog/2026/03/internet-advertising-is-going-great/feed/</wfw:commentRss>
			<slash:comments>17</slash:comments>
		
		
		<enclosure url="https://cdn.dnalounge.com/flyers/2026/04/25-1-thumb.jpg" width="360" height="450" type="image/jpeg"/>
	</item>
		<item>
		<title>DNA Lounge: Wherein our long SVOG audit nightmare is finally over</title>
		<link>https://www.dnalounge.com/backstage/log/2026/03/25.html</link>
		
		<dc:creator><![CDATA[jwz]]></dc:creator>
		<pubDate>Wed, 25 Mar 2026 19:32:09 +0000</pubDate>
		<category><![CDATA[dnalounge]]></category>
		<guid isPermaLink="false">https://jwz.org/b/yk5I</guid>

					<description><![CDATA[To recap...

Back in 2021 we finally received some federal grant money to keep us alive and cover the enormous costs of having been completely closed for 18 months starting in early 2020... This was the COVID-19 Shuttered Venue Operations Grant (SVOG) which I think is the ...]]></description>
										<content:encoded><![CDATA[To recap... <P>Back in 2021 we finally received some federal grant money to keep us alive and cover the enormous costs of having been completely closed for 18 months starting in early 2020... This was the COVID-19 Shuttered Venue Operations Grant (SVOG) which I <I>think</I> is the Payroll Protection Program (PPP) wearing a trenchcoat. The money was incredibly helpful! And it was incredibly difficult to get. The amount of paperwork needed to apply for and receive the grant was insane. We just about had to allocate someone to babysitting that paperwork full-time for six months. The effort and complexity was far beyond the reach of most small businesses, which is why most of the money for these grants went to billion-dollar corporate grifters instead of to the people it was supposed to help, notable examples being <A HREF="https://www.nbcnews.com/business/business-news/facing-furor-ruth-s-chris-high-end-steak-chain-returns-n1190606">Ruth's Chris Steak House</A>, <A HREF="https://missionlocal.org/2020/05/veritas-san-franciscos-largest-landlord-with-reported-3b-in-assets-received-ppp-small-business-loan/">Veritas (SF's biggest landlord)</A>, <A HREF="https://web.archive.org/web/20200415022443/https%3A//www.wsj.com/articles/big-restaurant-hotel-chains-won-exemption-to-get-small-business-loans-11586167200?mod=article_inline">Shake Shack</A>, <A HREF="https://brokeassstuart.com/2020/06/09/who-are-the-biggest-corporations-that-kept-their-ppp-loans/">Nestea, RealNetworks</A>, <A HREF="https://www.businessinsider.com/lil-wayne-chris-brown-covid-relief-funds-svog-grant-2024-12">Lil Wayne, Chris Brown, Marshmello, Steve Aoki and Alice in Chains</A>. And of course <A HREF="https://www.dnalounge.com/backstage/log/2018/01/31.html">multinational superpredator</A> LiveNation who managed to <A HREF="https://www.washingtonpost.com/business/2022/05/22/live-nation-pandemic-aid/">steal millions in Federal aid meant for independent venues</A>. <P>Anyway, it took more than a year from when we applied to when we got our first check. A year with zero customers. And then in late 2024 -- nearly <I>four years later</I> -- they did some kind of rule-changing rug-pull on us. They were "reviewing our file" and demanded that we submit an "audit report consistent with 2 CFR 200 Subpart F". <P>Just more dumb bureaucracy, right? Well. <P>Hiring someone to do that audit report correctly cost us $20,000. <I>TWENTY THOUSAND DOLLARS.</I> And had we not done it, they would have demanded we pay back <I>all</I> of the money we got in 2021. <P>In 2021, they literally told us, "You have to spend all this money. If you don't spend it all within a year, on these things, then you can't keep it." So we didn't even have the option to sit on twenty grand to pay for the eventual audit, even if they had told us that was going to happen, which they did not. <P>Couldn't they have just given us $20k <I>less</I> and paid for the audit with that? No, apparently not. <P>Anyway, the auditors decided that we had done something slightly wrong. Let's say we had expenses A through Z, and we said, "We are using the grant to pay for A, B and C." The auditors said, "Oh, you can't spend it on C. But you <I>are</I> allowed to spend it on D through F, so all you have to do is file an amendment, and it all comes out the same." <P>So we do that... and... crickets. <P>See, in between when this audit crap started, and the auditors finished, <A HREF="https://www.yahoo.com/news/doge-gutting-sba-threatens-crisis-175936602.html">DOGE had dismantled the Small Business Administration</A>, and they just... stopped answering their phones, or email. Even the auditors could not get hold of anybody and that's <I>their entire business</I>. <P>So between October 2024 and <I>March 2026</I> we were unable to get anyone at SBA to respond to our request to amend the grant! They didn't say "no" (if they said "no" they would have demanded that we pay back hundreds of thousands of dollars) but rather than saying "yes" they just kept sending us monthly automated emails from a "noreply" address noting that "your Audit Report is still outstanding" and that "Your timely response is anticipated and appreciated in order to resolve any compliance issues." <P>For two years. <P>And then today -- the rains have come and the crops are saved! <P><BLOCKQUOTE STYLE="margin:1em;border:1px solid;padding:1em"> The Small Business Administration's Shuttered Venue Operators Grant Program (SVOG) has completed its review of your audit submission package. SBA has determined that your organization has fully and materially complied with Federal grant audit requirements for fiscal year 2022. </BLOCKQUOTE> <P>Our accountant and the auditors wasted so many (billable) hours just trying to get someone on the phone to respond in any way, so the total wasn't just the $20,000 we had to pay the audit firm. It also included all the work our accountant did. Fortunately accountants are boss-level note-takers: <P><UL> <LI> 43 emails with SBA; </LI><LI> 286 emails with the audit firm; </LI><LI> 4+ multi-hour zoom calls with the audit firm; </LI><LI> Calling SBA every Wednesday to inquire on the status of our amendments, for at least a year -- 50+ calls lasting at least 30 minutes and getting nowhere, so that's 25 hours right there. </LI></UL> <P>So besides the audiors themselves, babysitting this also cost us somewhere north of 250 hours of labor from our own accountant. <P>For nothing. <P><I>Nothing.</I> <P>To get us right back to zero. <P>It's impressive how Apartheid Emerald Mine Space Karen and Cheeto Mussolini have made our government so much more "efficient". <P><HR> <P>This is where I mention that if you would like to help out with the DNA Lounge Accountancy Defense Fund, you can make a one-time <A HREF="https://www.dnalounge.com/donate/">donation</A> or join our <A HREF="https://www.patreon.com/dnalounge">Patreon</A>, which by the way is a really good deal.]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Google Pass, redux</title>
		<link>https://www.jwz.org/blog/2026/03/google-pass-redux/</link>
					<comments>https://www.jwz.org/blog/2026/03/google-pass-redux/#comments</comments>
		
		<dc:creator><![CDATA[jwz]]></dc:creator>
		<pubDate>Sat, 21 Mar 2026 20:05:00 +0000</pubDate>
		<category><![CDATA[computers]]></category>
		<category><![CDATA[corporations]]></category>
		<category><![CDATA[dnalounge]]></category>
		<category><![CDATA[firstperson]]></category>
		<category><![CDATA[lazyweb]]></category>
		<category><![CDATA[phones]]></category>
		<category><![CDATA[security]]></category>
		<guid isPermaLink="false">https://jwz.org/b/yk45</guid>

					<description><![CDATA[Dear Lazyweb,

Four years ago I asked whether "Google Pass" was a thing that I needed to give a shit about and consensus was, "no, nobody uses that." But I have heard anecdotally, recently, that this might no longer be true. Thoughts?

The goal here is, "reduce the amount of ]]></description>
										<content:encoded><![CDATA[<DIV STYLE="text-align: center; width: 30%; max-width: 640px; margin: 0 0 1em 1em; float: right;"><A HREF="https://cdn.jwz.org/images/2016/passbook.png" data-size="640x1136"><IMG SRC="https://cdn.jwz.org/images/2016/passbook.png" WIDTH=640 HEIGHT=1136 STYLE="width: 100%; height: auto; border: 1px solid; margin-bottom: 0.5em" SRCSET="https://cdn.jwz.org/images/2016/passbook.png 640w, https://cdn.jwz.org/images/scaled/360/2016/passbook.png 360w" SIZES="(max-width: 660px) 30vw, 22em" LOADING="lazy" data-size="640x1136"></A></DIV>Dear Lazyweb, <P>Four years ago I <A HREF="https://www.jwz.org/blog/2022/07/google-pass/">asked whether "Google Pass" was a thing that I needed to give a shit about</A> and consensus was, "no, nobody uses that." But I have heard anecdotally, recently, that this might no longer be true. Thoughts? <P>The goal here is, "reduce the amount of time it takes for someone standing in front of my nightclub to wave their QR code at the door staff." On iOS, Apple Wallet supports that goal very well. <P>Note: I don't use Android and know as little about its ecosystem as possible, so please use small words. <P><A HREF="https://www.jwz.org/blog/2022/07/google-pass/">Previously</A>, <A HREF="https://www.jwz.org/blog/2025/02/your-personal-information-is-very-important-to-us-part-four/">previously</A>, <A HREF="https://www.jwz.org/blog/2024/11/your-personal-information-is-very-important-to-us-part-three/">previously</A>, <A HREF="https://www.jwz.org/blog/2020/01/apples-war-on-their-developers-continues-apace/">previously</A>, <A HREF="https://www.jwz.org/blog/2022/04/qr-scanning/">previously</A>, <A HREF="https://www.jwz.org/blog/2016/01/apple-pass-push-notifications/">previously</A>, <A HREF="https://www.jwz.org/blog/2021/04/apple-pay-and-google-pay/">previously</A>, <A HREF="https://www.jwz.org/blog/2021/04/google-pay/">previously</A>, <A HREF="https://www.jwz.org/blog/2019/07/apple-pay-is-a-dumpster-fire/">previously</A>.]]></content:encoded>
					
					<wfw:commentRss>https://cdn.jwz.org/blog/2026/03/google-pass-redux/feed/</wfw:commentRss>
			<slash:comments>125</slash:comments>
		
		
		<enclosure url="https://cdn.jwz.org/images/2016/passbook.png" width="640" height="1136" length="143384" type="image/png"/>
	</item>
		<item>
		<title>A slopfondler walks into a bar</title>
		<link>https://www.jwz.org/blog/2026/03/a-slopfondler-walks-into-a-bar/</link>
					<comments>https://www.jwz.org/blog/2026/03/a-slopfondler-walks-into-a-bar/#comments</comments>
		
		<dc:creator><![CDATA[jwz]]></dc:creator>
		<pubDate>Tue, 17 Mar 2026 18:23:58 +0000</pubDate>
		<category><![CDATA[ai]]></category>
		<category><![CDATA[corporations]]></category>
		<category><![CDATA[dnalounge]]></category>
		<category><![CDATA[fanboys]]></category>
		<category><![CDATA[firstperson]]></category>
		<guid isPermaLink="false">https://jwz.org/b/yk4i</guid>

					<description><![CDATA[The shit I have to put up with:

They.
Hey. I found a good use of AI!

Me.
No you didn&apos;t.

They.
Wait let me tell you about it.

Me.
Please don&apos;t. I&apos;m begging you. Stop talking.

They.
No, you&apos;ll like this.

Me.
I assure you, I will not.

They
[ ...]]></description>
										<content:encoded><![CDATA[The shit I have to put up with: <P><TABLE CELLPADDING=4 CELLSPACING=0 BORDER=0> <TR> <TD ALIGN=LEFT VALIGN=TOP><B>They</B></TD> <TD ALIGN=LEFT VALIGN=TOP>Hey. I found a good use of AI!</TD> </TR> <TR> <TD ALIGN=LEFT VALIGN=TOP><B>Me</B></TD> <TD ALIGN=LEFT VALIGN=TOP>No you didn&apos;t.</TD> </TR> <TR> <TD ALIGN=LEFT VALIGN=TOP><B>They</B></TD> <TD ALIGN=LEFT VALIGN=TOP>Wait let me tell you about it.</TD> </TR> <TR> <TD ALIGN=LEFT VALIGN=TOP><B>Me</B></TD> <TD ALIGN=LEFT VALIGN=TOP>Please don&apos;t. I&apos;m begging you. Stop talking.</TD> </TR> <TR> <TD ALIGN=LEFT VALIGN=TOP><B>They</B></TD> <TD ALIGN=LEFT VALIGN=TOP>No, you&apos;ll like this.</TD> </TR> <TR> <TD ALIGN=LEFT VALIGN=TOP><B>Me</B></TD> <TD ALIGN=LEFT VALIGN=TOP>I assure you, I will not.</TD> </TR> <TR> <TD ALIGN=LEFT VALIGN=TOP><B>They</B></TD> <TD ALIGN=LEFT VALIGN=TOP><I> &#x5B; predictable story about how they had the plausible-text-fabricator summarize some data for them and they believed it without verifying, but they didn&apos;t <u>pay</u> for it, so it&apos;s fine ] </I></TD> </TR> <TR> <TD ALIGN=LEFT VALIGN=TOP><B>Me</B></TD> <TD ALIGN=LEFT VALIGN=TOP><I> &#x5B; and then they uncorked my 20 minute rant, my mask moist with the spittle of yelling; that&apos;s 20 minutes I will never get back, and also it made me miss the first set of the burlesque show ] </I></TD> </TR> <TR> <TD ALIGN=LEFT VALIGN=TOP><B>They</B></TD> <TD ALIGN=LEFT VALIGN=TOP>I had no idea you felt so strongly about this!</TD> </TR> <TR> <TD ALIGN=LEFT VALIGN=TOP><B>Me</B></TD> <TD ALIGN=LEFT VALIGN=TOP>Are you aware that I have a blog.</TD> </TR> <TR> <TD ALIGN=LEFT VALIGN=TOP><B>They</B></TD> <TD ALIGN=LEFT VALIGN=TOP>I read it all the time! Have you posted about this?</TD> </TR> <TR> <TD ALIGN=LEFT VALIGN=TOP><B>Me</B></TD> <TD ALIGN=LEFT VALIGN=TOP>Motherfucker, STARES IN <A HREF="https://www.jwz.org/blog/tag/ai/">&quot;AI&quot; TAG</A>!! </TD> </TR> </TABLE> <P><A HREF="https://www.jwz.org/blog/2026/03/ai-protest-music-is-a-thing-now/">Previously</A>, <A HREF="https://www.jwz.org/blog/2026/02/cocaine/">previously</A>, <A HREF="https://www.jwz.org/blog/2026/02/ai-is-a-dick-move/">previously</A>, <A HREF="https://www.jwz.org/blog/2026/01/kitten-meat-deli-slices/">previously</A>, <A HREF="https://www.jwz.org/blog/2025/12/what-if-the-torment-nexus-was-fundamental-to-wordpress/">previously</A>, <A HREF="https://www.jwz.org/blog/2025/08/i-am-an-ai-hater/">previously</A>, <A HREF="https://www.jwz.org/blog/2025/08/butlerian-jihad/">previously</A>, <A HREF="https://www.jwz.org/blog/2025/05/chatgpt-user-delighted-to-combine-sloth-with-theft/">previously</A>.]]></content:encoded>
					
					<wfw:commentRss>https://cdn.jwz.org/blog/2026/03/a-slopfondler-walks-into-a-bar/feed/</wfw:commentRss>
			<slash:comments>47</slash:comments>
		
		
			</item>
		<item>
		<title>AI protest music is a thing now</title>
		<link>https://www.jwz.org/blog/2026/03/ai-protest-music-is-a-thing-now/</link>
					<comments>https://www.jwz.org/blog/2026/03/ai-protest-music-is-a-thing-now/#comments</comments>
		
		<dc:creator><![CDATA[jwz]]></dc:creator>
		<pubDate>Sat, 14 Mar 2026 19:41:09 +0000</pubDate>
		<category><![CDATA[ai]]></category>
		<category><![CDATA[computers]]></category>
		<category><![CDATA[conspiracies]]></category>
		<category><![CDATA[corporations]]></category>
		<category><![CDATA[dnalounge]]></category>
		<category><![CDATA[firstperson]]></category>
		<category><![CDATA[mpegs]]></category>
		<category><![CDATA[music]]></category>
		<guid isPermaLink="false">https://jwz.org/b/yk4W</guid>

					<description><![CDATA[Last night at DNA Lounge, a room full of people chanted "No AI" along with Anton Corazza's song of the same name. The kids might be alright!

Rustage has entered the chat:]]></description>
										<content:encoded><![CDATA[Last night at <A HREF="https://www.dnalounge.com/calendar/2026/03-13d.html">DNA Lounge</A>, a room full of people chanted "No AI" along with Anton Corazza's song of the same name. The kids might be alright! <P><DIV STYLE="text-align: center; width: 100%; max-width: 640px; margin: 0 auto;"><DIV STYLE="display: inline-block; margin: 2px; width: 100%;" STYLE=" margin-bottom: 0.5em"><DIV STYLE="overflow: hidden; position: relative; padding-bottom: 56.25%; display: inline-block; width: 100%;" STYLE="padding-bottom: 56%"><A HREF="https://www.youtube.com/watch?v=KuzqSszluFA&amp;start=7385" ONCLICK="return popup_video(this)"><DIV STYLE="position: absolute; top: 0; left: 0; border: 0; margin: 0; padding: 0; z-index: 1; width: 100%; height: 100%;" STYLE="background-image: url('https://cdn.jwz.org/images/2026/kuzqsszlufa.jpg')"><DIV ><DIV >&#x25B6;&#xFE0E;</DIV></DIV></DIV></A></DIV></DIV> <P>Rustage has entered the chat: <P><DIV STYLE="display: inline-block; margin: 2px; width: 100%;" STYLE=" margin-bottom: 0.5em"><DIV STYLE="overflow: hidden; position: relative; padding-bottom: 56.25%; display: inline-block; width: 100%;" STYLE="padding-bottom: 56%"><A HREF="https://www.youtube.com/watch?v=_e-vssgkZ0Y" ONCLICK="return popup_video(this)"><DIV STYLE="position: absolute; top: 0; left: 0; border: 0; margin: 0; padding: 0; z-index: 1; width: 100%; height: 100%;" STYLE="background-image: url('https://cdn.jwz.org/images/2026/_e-vssgkz0y.jpg')"><DIV ><DIV >&#x25B6;&#xFE0E;</DIV></DIV></DIV></A></DIV></DIV> <P><A HREF="https://www.jwz.org/blog/2026/02/cocaine/">Previously</A>, <A HREF="https://www.jwz.org/blog/2026/01/kitten-meat-deli-slices/">previously</A>, <A HREF="https://www.jwz.org/blog/2024/10/ai-slop-music/">previously</A>.</DIV>]]></content:encoded>
					
					<wfw:commentRss>https://cdn.jwz.org/blog/2026/03/ai-protest-music-is-a-thing-now/feed/</wfw:commentRss>
			<slash:comments>5</slash:comments>
		
		
		<enclosure url="https://cdn.jwz.org/images/2026/kuzqsszlufa.jpg" length="10392" type="image/jpeg"/>
<enclosure url="https://cdn.jwz.org/images/2026/_e-vssgkz0y.jpg" length="52882" type="image/jpeg"/>
	</item>
		<item>
		<title>Demo station</title>
		<link>https://www.jwz.org/blog/2026/03/demo-station/</link>
					<comments>https://www.jwz.org/blog/2026/03/demo-station/#comments</comments>
		
		<dc:creator><![CDATA[jwz]]></dc:creator>
		<pubDate>Sat, 14 Mar 2026 18:15:32 +0000</pubDate>
		<category><![CDATA[computers]]></category>
		<category><![CDATA[dnalounge]]></category>
		<category><![CDATA[fanboys]]></category>
		<category><![CDATA[firstperson]]></category>
		<category><![CDATA[pranks]]></category>
		<category><![CDATA[xscreensaver]]></category>
		<guid isPermaLink="false">https://jwz.org/b/yk4S</guid>

					<description><![CDATA[Since we had dozens of video game demo stations at our various GDC events this week, I snuck an XScreenSaver kiosk into the mix. I'm not sure anyone noticed it.]]></description>
										<content:encoded><![CDATA[<DIV STYLE="text-align: center; width: 50%; max-width: 3589px; margin: 0 0 1em 1em; float: right;"><A HREF="https://cdn.jwz.org/images/2026/kiosk.jpg" data-size="3589x2373"><IMG SRC="https://cdn.jwz.org/images/scaled/768/2026/kiosk.jpg" WIDTH=3589 HEIGHT=2373 STYLE="width: 100%; height: auto; border: 1px solid; margin-bottom: 0.5em" SRCSET="https://cdn.jwz.org/images/2026/kiosk.jpg 3589w, https://cdn.jwz.org/images/scaled/2048/2026/kiosk.jpg 2048w, https://cdn.jwz.org/images/scaled/1920/2026/kiosk.jpg 1920w, https://cdn.jwz.org/images/scaled/1280/2026/kiosk.jpg 1280w, https://cdn.jwz.org/images/scaled/1024/2026/kiosk.jpg 1024w, https://cdn.jwz.org/images/scaled/768/2026/kiosk.jpg 768w, https://cdn.jwz.org/images/scaled/640/2026/kiosk.jpg 640w, https://cdn.jwz.org/images/scaled/360/2026/kiosk.jpg 360w" SIZES="(max-width: 660px) 50vw, 36em" LOADING="lazy" data-size="3589x2373"></A></DIV>Since we had dozens of video game demo stations at our <A HREF="https://www.dnalounge.com/calendar/2026/03.html">various GDC events this week</A>, I snuck an <A HREF="https://www.jwz.org/xscreensaver/">XScreenSaver</A> kiosk into the mix. I'm not sure anyone noticed it.]]></content:encoded>
					
					<wfw:commentRss>https://cdn.jwz.org/blog/2026/03/demo-station/feed/</wfw:commentRss>
			<slash:comments>4</slash:comments>
		
		
		<enclosure url="https://cdn.jwz.org/images/2026/kiosk.jpg" width="3589" height="2373" length="2038122" type="image/jpeg"/>
	</item>
		<item>
		<title>DNA Lounge: Wherein Live Nation / Ticketmaster slips the noose again</title>
		<link>https://www.dnalounge.com/backstage/log/2026/03/13.html</link>
		
		<dc:creator><![CDATA[jwz]]></dc:creator>
		<pubDate>Fri, 13 Mar 2026 23:04:18 +0000</pubDate>
		<category><![CDATA[dnalounge]]></category>
		<guid isPermaLink="false">https://jwz.org/b/yk4O</guid>

					<description><![CDATA[There are a lot of things to be angry about in the world today, but Ticketmaster is always one of them. Spare them a little rage if you have any left to give. When, two years ago, we heard that DOJ was moving forward with their anti-trust suit against Live Nation we all knew ]]></description>
										<content:encoded><![CDATA[There are a lot of things to be angry about in the world today, but Ticketmaster is <I>always</I> one of them. Spare them a little rage if you have any left to give. When, two years ago, <A HREF="https://www.dnalounge.com/backstage/log/2024/05/30.html">we heard that DOJ was moving forward with their anti-trust suit against Live Nation</A> we all knew it was too good to be true, and, yup, it was too good to be true. The DOJ <A HREF="https://www.nytimes.com/2026/03/09/arts/music/live-nation-ticketmaster-antitrust-suit-settled.html">folded with not even a slap on the wrist</A>. <P>And because of that, it seems that a number of state attorneys general are considering folding as well. <A HREF="https://secure.everyaction.com/sxqgae58mkiZuVtBbSm5dA2">Here's a form from NIVA to help you send email to your state's attorney general telling them to keep fighting.</A> <P><BLOCKQUOTE STYLE="margin:1em;border:1px solid;padding:1em"> <P> <b><A HREF="https://www.politico.com/news/2026/03/09/live-nation-states-oppose-settlement-agreement-00819029">Bipartisan group of states refuse to sign settlement between Justice Department and Live Nation:</A> </b> <P>New York, Arizona, California, Colorado, Connecticut, Illinois, Ohio and Kansas are just a few of the states continuing the lawsuit. <P>"The settlement recently announced with the U.S. Department of Justice fails to address the monopoly at the center of this case, and would benefit Live Nation at the expense of consumers. We cannot agree to it," New York Attorney General Letitia James said in a statement. <P>The Justice Department and some 40 attorneys general first launched the lawsuit against Live Nation in 2024 under the Biden administration, alleging the concert giant had built an illegal monopoly over live events by controlling ticketing, venues and artist promotion. In effect, they argued, Live Nation had pushed out competitors and locked venues into exclusive arrangements that harmed both artists and fans. </BLOCKQUOTE> <P>At least the suit gave us some popcorn: <P><BLOCKQUOTE STYLE="margin:1em;border:1px solid;padding:1em"> <P> <b><A HREF="https://www.hollywoodreporter.com/music/music-industry-news/live-nation-employees-gouging-fans-messages-court-docs-1236528633/">Live Nation Employees Boast About Gouging Fans With Fees:</A></b> <P>Baker, who oversees ticketing for Live Nation's venue nation unit, called some increased prices "fucking outrageous," with Weinhold replying that "I have VIP parking up to $250 lol." <P>"I almost feel bad taking advantage of them," Baker replied. <P>In another exchange, Baker shared a screenshot of premier parking costs, further stating "robbing them, blind, baby, that's how we do." Later in the exchange, Baker said, "I gouge them on ancil prices to make up for it," referring to extra ancillary fees on more standard tickets. </blockquote> <P>Satire, but who can tell: <P><BLOCKQUOTE STYLE="margin:1em;border:1px solid;padding:1em"> <P> <b><A HREF="https://www.thebeaverton.com/2026/03/live-nation-restricts-ticket-buying-and-selling-exclusively-to-bots/">Live Nation restricts ticket buying and selling exclusively to bots:</A></b> <P>"Our platform optimizes for multiple devices logged in at once and spamming the queue," notes Live Nation CEO Michael Rapino. "Once ticket sales are live, that's when the bots buy up the max tickets per person until they are all sold out in under 1 minute, though our software engineers are trying to get that down to 30 seconds." <P>Rapino adds, "Yes artists send out codes and have fan presales, but we always ensure that all of the bots get those too, since it'd be really unfair if these hardworking robots had to wait until general sale day." [...] <P>The announcement has been met with widespread support from StubHub, Viagogo, and a series of shell companies that, when contacted for comment, all responded within 0.003 seconds with identical statements saying they were "just regular fans." </blockquote> <P>The list of Live Nation's sins will not be news to anyone who has been following this blog for any length of time: <P><ul><li> <A HREF="https://www.dnalounge.com/backstage/log/2018/01/31.html">"Wherein three national corporations control nearly all of San Francisco's live music."</A> </li><li> <A HREF="https://www.dnalounge.com/backstage/log/2018/09/23.html">"Ticketmaster is recruiting professional scalpers who cheat its own system to expand its resale business and squeeze more money out of fans".</A> </li><li> <A HREF="https://www.dnalounge.com/backstage/log/2019/07/23.html">"Live Nation admits putting tickets straight on the resale market".</A> </li><li> <A HREF="https://www.dnalounge.com/backstage/log/2019/12/15.html">"Live Nation and DOJ reach 'settlement' that does nothing but extend the time period of the consent decree, with no fine."</A> </li><li> <A HREF="https://www.dnalounge.com/backstage/log/2020/05/01.html">"Saudi Arabia's Crown Prince Mohammad bin Salman, who personally ordered that Jamal Khashoggi be kidnapped and dismembered alive with a bone saw, now owns 6% of Live Nation / TicketMaster."</A> </li><li> <A HREF="https://www.jwz.org/blog/2021/09/big-music-needs-to-be-broken-up-to-save-the-industry/">"Big Music Needs to Be Broken Up to Save the Industry".</A> </li> <li><a href="https://www.dnalounge.com/backstage/log/2022/03/14.html">Wherein John Oliver reminds us that there are lots of things to be angry about, but one of them is still TicketMaster.</a></li> </ul>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>DNA Lounge: Wherein we&#039;ve got Spencer&#039;s VHS tapes</title>
		<link>https://www.dnalounge.com/backstage/log/2026/02/25.html</link>
		
		<dc:creator><![CDATA[jwz]]></dc:creator>
		<pubDate>Wed, 25 Feb 2026 23:48:51 +0000</pubDate>
		<category><![CDATA[dnalounge]]></category>
		<guid isPermaLink="false">https://jwz.org/b/yk3y</guid>

					<description><![CDATA[Spencer Coppens was DNA Lounge's general manager in the 1980s and 1990s. He was also a singer, an MC, and pretty much single-handedly started the "Swing" revival in the 80s. He passed away a few months ago, and as his friends were cleaning out his place, they came across a ...]]></description>
										<content:encoded><![CDATA[<div style="width:75%; display:inline-block; vertical-align: top;"> Spencer Coppens was DNA Lounge's general manager in the 1980s and 1990s. He was also a singer, an MC, and pretty much single-handedly started the "Swing" revival in the 80s. He passed away a few months ago, and as his friends were cleaning out his place, they came across a big pile of VHS tapes of old DNA Lounge shows! <P><A HREF="http://www.textfiles.com/">Jason Scott</A> of <A HREF="https://archive.org/">Internet Archive</A> was kind enough to digitize them for us. And these nearly-40-year-old VHS tapes turned out to be of surprisingly high quality! The <I>very</I> high resolution scans of the raw tapes are <a href="https://archive.org/details/dnalounge?tab=collection&amp;query=%28addeddate%3A2026-01%2A+OR+addeddate%3A2026-02-12%2A%29+AND+mediatype%3Amovies&amp;sort=-publicdate">at Internet Archive</a>. <P>I've also split them apart and uploaded them to YouTube, so here's a <A HREF="https://www.youtube.com/playlist?list=PLyALKMPGOR5eLq9wHAltKDDetqE9tjZ8V">playlist</A> of more than 24 hours of live performances at DNA Lounge spanning the years 1988 through 1992! Plus some other stuff. <P><DIV STYLE="text-align: center; width: 100%; max-width: 640px; margin: 0 auto;"><DIV STYLE="display: inline-block; margin: 2px; width: 100%;" STYLE=" margin-bottom: 0.5em"><DIV STYLE="overflow: hidden; position: relative; padding-bottom: 56.25%; display: inline-block; width: 100%;" STYLE="padding-bottom: 56%"><A HREF="https://www.youtube.com/view_play_list?p=PLyALKMPGOR5eLq9wHAltKDDetqE9tjZ8V" ONCLICK="return popup_video(this)"><DIV STYLE="position: absolute; top: 0; left: 0; border: 0; margin: 0; padding: 0; z-index: 1; width: 100%; height: 100%;" STYLE="background-image: url('https://i.ytimg.com/vi/eor2y3T2jZY/hqdefault.jpg')"><DIV ><DIV >&#x25B6;&#xFE0E;</DIV></DIV></DIV></A></DIV></DIV></DIV> </div><div style="width:25%; display:inline-block; vertical-align:top;"> <DIV STYLE="padding-left: 1em"><A HREF="https://www.dnalounge.com/calendar/2026/04-04a.html"><IMG SRC="https://cdn.dnalounge.com/flyers/2026/04/04a-1-thumb.jpg" data-size="360x576" WIDTH=360 HEIGHT=576 STYLE="width: 100%; height: auto; border: 1px solid; margin-bottom: 0.5em" ></A></DIV> </div> <P>We are also hosting a memorial for Spencer on the afternoon of <A HREF="https://www.dnalounge.com/calendar/2026/04-04a.html">Sat, Apr 4</A>. If you knew him, please stop by!]]></content:encoded>
					
		
		
		<enclosure url="https://i.ytimg.com/vi/eor2y3T2jZY/hqdefault.jpg" type="image/jpeg"/>
<enclosure url="https://cdn.dnalounge.com/flyers/2026/04/04a-1-thumb.jpg" width="360" height="576" type="image/jpeg"/>
	</item>
		<item>
		<title>DNA Lounge: Wherein we have more flyer screens</title>
		<link>https://www.dnalounge.com/backstage/log/2026/02/11.html</link>
		
		<dc:creator><![CDATA[jwz]]></dc:creator>
		<pubDate>Wed, 11 Feb 2026 23:43:33 +0000</pubDate>
		<category><![CDATA[dnalounge]]></category>
		<guid isPermaLink="false">https://jwz.org/b/yk3V</guid>

					<description><![CDATA[Any time I see my staff taping a paper flyer to one of our walls, what I hear is, "You are telling me there should be a flyer screen there." So we finally did that in the pizza alcove. I think they look pretty good! We just stuck the monitors into the same style of picture ...]]></description>
										<content:encoded><![CDATA[Any time I see my staff taping a paper flyer to one of our walls, what I hear is, "You are telling me there should be a <A HREF="https://www.dnalounge.com/backstage/src/screens/">flyer screen</A> there." So we finally did that in the pizza alcove. I think they look pretty good! We just stuck the monitors into the same style of picture frames we use in the DNA Pizza dining room gallery. <P><DIV STYLE="text-align: center; width: 100%; max-width: 640px; margin: 0 auto;"><DIV STYLE="display: inline-block; margin: 2px; width: 100%;" STYLE=" margin-bottom: 0.5em"><DIV STYLE="overflow: hidden; position: relative; padding-bottom: 56.25%; display: inline-block; width: 100%;" STYLE="padding-bottom: 56%"><A HREF="https://www.youtube.com/watch?v=8j34yMcGwFU" ONCLICK="return popup_video(this)"><DIV STYLE="position: absolute; top: 0; left: 0; border: 0; margin: 0; padding: 0; z-index: 1; width: 100%; height: 100%;" STYLE="background-image: url('https://i.ytimg.com/vi/8j34yMcGwFU/hqdefault.jpg')"><DIV ><DIV >&#x25B6;&#xFE0E;</DIV></DIV></DIV></A></DIV></DIV></DIV> <P>My vendetta against tape on the walls is endless. I just think it looks really tacky. Plus, one of the things about paper that it is famous for is always showing the same thing. Whereas these screens have all kinds of complications. (In watchmaking, anything that a timepiece does beyond showing hours, minutes and seconds is called a "complication", and I love that term.) <P>For example, they are sensitive to the room they are in and the genres of the show that is currently happening, so if it's a metal night, they're going to show flyers for other metal shows much more often. They are likewise skewed toward showing shows happening sooner than later. <P>And another recent complication is the dancing QR codes. I put a bunch of work into making the underlying URLs as short as possible so that the QR codes have big chunky pixels that you can scan from across the room (or <a href="https://www.dnalounge.com/backstage/log/2025/09/23.html">from space</a>.) <P>We also use a couple of screens in the Pizza checkout lane to hype our appetizers. <P>In summary, digital signage is a land of complications.]]></content:encoded>
					
		
		
		<enclosure url="https://i.ytimg.com/vi/8j34yMcGwFU/hqdefault.jpg" type="image/jpeg"/>
	</item>
		<item>
		<title>DNA Lounge: Wherein I have some thoughts on food delivery apps</title>
		<link>https://www.dnalounge.com/backstage/log/2026/02/01.html</link>
		
		<dc:creator><![CDATA[jwz]]></dc:creator>
		<pubDate>Sun, 01 Feb 2026 20:41:21 +0000</pubDate>
		<category><![CDATA[dnalounge]]></category>
		<guid isPermaLink="false">https://jwz.org/b/yk2z</guid>

					<description><![CDATA[Yesterday I mentioned that DNA Pizza takes online delivery orders again, after a year-long hiatus. Hooray...

Perhaps it has been long enough since I talked about deliveries that you have forgotten how terrible everything has been! Let's recap!

We opened DNA Pizza in 2011, ...]]></description>
										<content:encoded><![CDATA[<DIV STYLE="text-align: center; width: 40%; max-width: 1280px; margin: 0 0 1em 1em; float: right;"><A HREF="https://www.dnalounge.com/backstage/log/2012/09/cartop.html" data-size="1280x853"><IMG SRC="https://cdn.dnalounge.com/backstage/log/2012/09/cartop.jpg" data-size="1280x853" WIDTH=1280 HEIGHT=853 STYLE="width: 100%; height: auto; border: 1px solid; margin-bottom: 0.5em"></A></DIV><A HREF="https://www.dnalounge.com/backstage/log/2026/01/31.html">Yesterday I mentioned</A> that <A HREF="https://www.dnapizza.com/">DNA Pizza</A> takes <A HREF="https://www.dnapizza.com/order/">online delivery orders</A> again, after a year-long hiatus. Hooray... <P>Perhaps it has been long enough since I talked about deliveries that you have forgotten how terrible everything has been! Let's recap! <P>We opened DNA Pizza <A HREF="https://www.dnalounge.com/backstage/log/2011/03/10.html">in 2011</A>, and from then until roughly 2015, we had decent delivery business. It was a pretty significant portion of our income. In fact, our delivery business was a big part of why it sounded like a good idea at the time to open a second venue, <A HREF="https://www.codeword-sf.com/">Codeword</A> in <A HREF="https://www.dnalounge.com/backstage/log/2015/11/12.html">2015</A>. We had been having trouble keeping up with orders on weekend nights, so once Codeword opened we staged all delivery orders from there, freeing up the DNA Lounge oven for in-house slices. <P>In the early days, we employed our own delivery drivers (we had a <A HREF="https://www.dnalounge.com/backstage/log/2012/09/cartop.html">car topper</A> and everything!) And while some restaurant apps like Eat24 and Grubhub <I>existed</I> at the time, they just ran the menu-and-credit-cards system: restaurants were still responsible for doing their own deliveries. But having our own drivers just wasn't <A HREF="https://www.dnalounge.com/backstage/log/2017/06/14.html">economical</A> and in around 2014, I held my nose and we switched to using "Uber Eats" for delivery. Again, at the time, they were a <I>delivery</I> company, which is a thing that (thanks to them) no longer exists. We conducted the transaction; they put it in a car. You used the app to summon a driver to pick up a bag instead of a person. <P>But in 2017, Uber abruptly decided that if you wanted them to deliver something, you also had to allow them to operate your online store, and let them take a <I>percentage</I> of that. So we dropped them on principle, and switched to Postmates. But then eventually <A HREF="https://www.dnalounge.com/backstage/log/2020/07/10.html">Uber bought Postmates too</A>. So we switched to Grubhub, who had recently started doing deliveries as well as ordering: this gave Grubhub the same downsides as Uber Eats, but at least they weren't Uber. <P>It was between 2015 and 2017 that Grubhub and similar apps started becoming really popular, and as soon as they did, our delivery business absolutely cratered. Not only did the number of delivery orders go way down, but deliveries became damn near uneconomical due to the huge cut taken by the apps, taking <A HREF="https://www.jwz.org/blog/2022/11/grubhub-gonna-grub/">15% to 30%</A> of the <I>value of the order</I> rather than charging per mile for a delivery. Our margins were obliterated. <P>And on top of the extortionate delivery apps came the fraudulent "ghost kitchens", the fake clickbait restaurants all running out of the <A HREF="https://www.jwz.org/blog/2021/03/travis-kalanicks-ratfucking-of-the-restaurant-industry-continues-apace/">same warehouse</A> that existed only as online branding. So by 2017, Travis Kalanick's debasement and destruction of the restaurant industry was nearly complete. <P>Twelve or fifteen years ago, the idea of a pizza restaurant that made no money from deliveries would have been inconceivable. Pizza was the canonical late-night delivery food for the entirety of the Twentieth Century. But here we are, "disrupted" by techbros. <P>Over the years, besides Grubhub, we used to use some other delivery services as well (DoorDash, Slice, Allset, a few others) but we stopped because we got no business from them. Like, literally one order a month or less. And that was back in the day when we <I>did</I> get a significant number of delivery orders through Grubhub. It was just that nobody used those services. Grubhub was, at least at the time, the 800 pound gorilla, the only game in town. <P>And then around 2022, Grubhub just flat out stopped working. They were so astoundingly incompetent that we got essentially <I>zero</I> orders through them. Their web site was never showing DNA Pizza to customers, even when they searched for it directly, and for close to two years their tech support was so useless that eventually we just gave up. It was so bad that <A HREF="https://www.jwz.org/blog/2023/08/grubhub/">in 2023 I asked the Lazyweb for help</A> out of desperation, And despite turning up some technical contacts within Grubhub, nothing got better at all. So in early 2025, we just closed our Grubhub account and decided, "Welp, I guess we don't offer deliveries at all any more". <P>Then! Funny story! A couple months ago, a new "territory manager" got hired at Grubhub and hit us up with a "please come back" email. Devon's reply was so blistering that I'm just gonna include most of it here: <P><BLOCKQUOTE STYLE="margin:1em;border:1px solid;padding:1em"> <P> Your suggestions don't even begin to address the issue we had. <P>We had issues with <I>your</I> backend. Menus would vanish. I spent countless hours providing your support teams with steps to reproduce the problem. we got extremely deranked. I got support once to agree to completely rebuild our storefront from scratch so that we would be free of the various issues that support was unable to fix. Support just cloned the store and it had the same problems. <P>There was some deeply buried bug involving an integration from the otter tablet company that was disabling menus in some non-standard way. And we got de-ranked again, because our menus would turn off at inconvenient times with no way to turn them back on. Support was terrible and useless and never believed me. <P>So, no, having commissions waived won't do us any good when <I>your platform itself</I> was turning off our menus in ways that nobody who worked for you could figure out how to fix. [...] <P>I wasted easily 100 hours of my life over a few years on this nonsense. <P>Nope. Never again. Your company is terrible. You should get a job somewhere else before Grubhub gets bought again and they gut staffing even more. </BLOCKQUOTE> <P>So, let's hope this Chow Now thing works better than that. <P>As with all techbro disruption, you have to follow the money to understand this. At first glance you might think that Grubhub's customers are the <I>hungry people ordering food</I>. But Grubhub's actual income is the money that they claw back from the restaurants as subscription fees and a vig on every order, which means that their <I>actual</I> customers are the <I>restaurants</I>. And they will put the screws to each of those restaurants harder and harder, until they die off and another one is slotted in to replace them. They can do this because these days the restaurants have no other choice. This is a canonical example of the oft-misapplied term "Enshittification". <P>And the galaxy-brain version of "who are the customers?" is "the investors". It doesn't matter if Grubhub becomes so useless that it collapses entirely, so long as the VCs and C-suite get an IPO or private equity buyout just before that happens. Their victory condition is a mob bust-out, rather than a sustainable, long-term business. <P>Oh yeah! Speaking of Travis Kalanick's ratfucking of the restaurant industry, <P><BLOCKQUOTE STYLE="margin:1em;border:1px solid;padding:1em"> <P> <B>Date:</B> Wed, 8 Oct 2025 14:11:26 -0500<BR> <B>From:</B> &#x2588;&#x2588;&#x2588;&#x2588;&#x2588;&#x2588;@cloudkitchens.com<BR> <B>Subject:</B> Request to Discuss New Market Opportunity <P>DNA Pizza Team, <P>Thanks in advance for your time and attention. <P>I'd like to connect and talk with you about a possible partnership with one of our food halls in the Bay Area. Have you considered expanding your reach to other markets? I'm not sure if what we offer would work for you, however, It wouldn't hurt to hear me out, take a tour, and see what options we can offer. <P>What are your thoughts? <P>Keep up the good cooking, </BLOCKQUOTE> <P>I did not hold back: <P><BLOCKQUOTE STYLE="margin:1em;border:1px solid;padding:1em"> <P> <B>Date:</B> Wed, 8 Oct 2025 12:28:34 -0700<BR> <B>From:</B> jwz@dnalounge.com<BR> <B>To:</B> &#x2588;&#x2588;&#x2588;&#x2588;&#x2588;&#x2588;@cloudkitchens.com<BR> <B>Subject:</B> Re: Request to Discuss New Market Opportunity <P>You have got a lot of nerve. Your company single-handedly destroyed the Bay Area restaurant industry and you still have the gall to come sniffing around the corpse. Fuck you and the horse you rode in on, you absolute parasites. <P>BTW, have your Saudi owners <A HREF="https://www.dnalounge.com/backstage/log/2020/07/10.html">murdered any journalists</A> lately?<BR> </BLOCKQUOTE> <P>What I did not expect... was a reply! <P><BLOCKQUOTE STYLE="margin:1em;border:1px solid;padding:1em"> <P> <B>Date:</B> Mon, 27 Oct 2025 14:56:13 -0700<BR> <B>From:</B> &#x2588;&#x2588;&#x2588;&#x2588;&#x2588;&#x2588;@cloudkitchens.com<BR> <B>To:</B> Jamie Zawinski &lt;jwz@dnalounge.com&gt;<BR> <B>Subject:</B> Re: Request to Discuss New Market Opportunity<BR> <P>Hello Jamie, <P>Thanks for your patience with me getting back to you. <P>It's unfortunate you feel this way towards CloudKitchens and what the company is attempting to accomplish for restaurant owners and operators in the industry. However, I appreciate your candor. I'll be sure to relay your message to the proper channels. </BLOCKQUOTE> <P>In summary, running a small business is a land of contrasts. Please <A HREF="https://www.dnapizza.com/">buy our pizza</A>, it's actually really good.]]></content:encoded>
					
		
		
		<enclosure url="https://cdn.dnalounge.com/backstage/log/2012/09/cartop.jpg" width="1280" height="853" type="image/jpeg"/>
	</item>
		<item>
		<title>DNA Lounge: Wherein DNA Pizza does deliveries again</title>
		<link>https://www.dnalounge.com/backstage/log/2026/01/31.html</link>
		
		<dc:creator><![CDATA[jwz]]></dc:creator>
		<pubDate>Sun, 01 Feb 2026 00:15:12 +0000</pubDate>
		<category><![CDATA[dnalounge]]></category>
		<guid isPermaLink="false">https://jwz.org/b/yk2u</guid>

					<description><![CDATA[It's been almost a year since we closed DNA Pizza's Grubhub account, but we're back online now with Chow Now. It seems to be working ok so far?

The restaurant's hours are still tied to the nightclub, which means we only accept orders while DNA Lounge is open. This means, ...]]></description>
										<content:encoded><![CDATA[<DIV STYLE="text-align: center; width: 30%; max-width: 1072px; margin: 0 0 1em 1em; float: right;"><A HREF="https://www.dnapizza.com/order/" data-size="1072x1284"><IMG SRC="https://cdn.dnalounge.com/backstage/log/2026/01/chownow.jpg" data-size="1072x1284" WIDTH=1072 HEIGHT=1284 STYLE="width: 100%; height: auto; border: 1px solid; margin-bottom: 0.5em" ></A></DIV>It's been almost a year since we closed <A HREF="https://www.dnapizza.com/">DNA Pizza</A>'s Grubhub account, but we're back online now with <A HREF="https://www.dnapizza.com/order/">Chow Now</A>. It seems to be working ok so far? <P>The restaurant's hours are still tied to the nightclub, which means we only accept orders while DNA Lounge is open. This means, roughly, every Friday, Saturday and Monday from 8pm or 9pm to 2am; and other days of the week as the <A HREF="https://www.dnalounge.com/calendar/latest.html">event calendar</A> dictates. <P>So <A HREF="https://www.dnapizza.com/order/">give it a try</A> tonight! In... just about 4 hours. <P>This time the online ordering is (finally!) more directly integrated with our point of sale. With every other ordering system we've used in the past, when someone placed an order, it would show up on a customized, locked-down tablet provided by the outside company, and our cashiers would have to notice it ping and then transcribe the order into our system. But this new one talks to our POS directly, so it goes in like every other cashier order. <P>This means that it finally makes sense for an in-person customer to use it as a "skip the line" order -- you can place your order from the dance floor or the sidewalk, and then in a few minutes, head on over to the restaurant for pick-up. So that's kind of cool. <P>Anyway, wow do I have some <I>things to say</I> about online ordering, but writing that up has completely gotten away from me, so I'll save that for a <A HREF="https://www.dnalounge.com/backstage/log/2026/02/01.html">later post</A>.]]></content:encoded>
					
		
		
		<enclosure url="https://cdn.dnalounge.com/backstage/log/2026/01/chownow.jpg" width="1072" height="1284" type="image/jpeg"/>
	</item>
		<item>
		<title>Re-implementing Patreon</title>
		<link>https://www.jwz.org/blog/2026/01/re-implementing-patreon/</link>
					<comments>https://www.jwz.org/blog/2026/01/re-implementing-patreon/#comments</comments>
		
		<dc:creator><![CDATA[jwz]]></dc:creator>
		<pubDate>Thu, 29 Jan 2026 18:36:37 +0000</pubDate>
		<category><![CDATA[computers]]></category>
		<category><![CDATA[corporations]]></category>
		<category><![CDATA[dnalounge]]></category>
		<category><![CDATA[doomed]]></category>
		<category><![CDATA[firstperson]]></category>
		<category><![CDATA[lazyweb]]></category>
		<guid isPermaLink="false">https://jwz.org/b/yk2l</guid>

					<description><![CDATA[Dear Lazyweb,

Do you have experience implementing recurring payments using authorize.net? Specifically, I'm interested in gotchas with replaying CIM tokens; best practices for retrying declines; dealing with expired cards, changed addresses, etc. Email me.

IMPORTANT: If ...]]></description>
										<content:encoded><![CDATA[Dear Lazyweb, <P>Do you have experience implementing recurring payments using authorize.net? Specifically, I'm interested in gotchas with replaying CIM tokens; best practices for retrying declines; dealing with expired cards, changed addresses, etc. Email me. <P><B><I>IMPORTANT:</I></b> If you have never created a <tt>"create<wbr>Customer<wbr>Profile<wbr>From<wbr>Transaction<wbr>Request"</tt> XML node, this question is <b><I>not for you.</I></b> <P>I am not soliciting advice about what third party intermediary company I should pay rent to, and I don't ever want to hear the word Stripe. <P><A HREF="https://www.jwz.org/blog/2026/01/patreon-is-lying-again-and-blaming-apple-again/">Previously</A>, <A HREF="https://www.jwz.org/blog/2025/03/if-patreon-was-software-i-would-never-ever-upgrade-it/">previously</A>, <A HREF="https://www.jwz.org/blog/2024/12/chargebacks/">previously</A>, <A HREF="https://www.jwz.org/blog/2022/06/patreon-api/">previously</A>, <A HREF="https://www.jwz.org/blog/2023/09/how-to-compete-with-patreon/">previously</A>.]]></content:encoded>
					
					<wfw:commentRss>https://cdn.jwz.org/blog/2026/01/re-implementing-patreon/feed/</wfw:commentRss>
			<slash:comments>9</slash:comments>
		
		
			</item>
		<item>
		<title>Patreon is lying again, and blaming Apple, again.</title>
		<link>https://www.jwz.org/blog/2026/01/patreon-is-lying-again-and-blaming-apple-again/</link>
					<comments>https://www.jwz.org/blog/2026/01/patreon-is-lying-again-and-blaming-apple-again/#comments</comments>
		
		<dc:creator><![CDATA[jwz]]></dc:creator>
		<pubDate>Wed, 28 Jan 2026 20:26:54 +0000</pubDate>
		<category><![CDATA[computers]]></category>
		<category><![CDATA[corporations]]></category>
		<category><![CDATA[dnalounge]]></category>
		<category><![CDATA[doomed]]></category>
		<category><![CDATA[firstperson]]></category>
		<guid isPermaLink="false">https://jwz.org/b/yk2f</guid>

					<description><![CDATA[Once again, Patreon is going to strong-arm all of us into "charge at the moment of sign-up" instead of "charge on the first of the month." They have wanted this for years, and once again they are saying that Apple has given them cover to demand it.

Here's what I wrote when ...]]></description>
										<content:encoded><![CDATA[<a href="https://www.patreon.com/dnalounge"><IMG SRC="https://cdn.jwz.org/images/scaled/768/2023/patreon_goatse.png" WIDTH=1024 HEIGHT=759 STYLE="width: 35%; height: auto; max-width: 1024px; max-height: 759px; border: 0; box-sizing: border-box; margin: 0 0 1em 1em; float: right; clear: right;" SRCSET="https://cdn.jwz.org/images/2023/patreon_goatse.png 1024w, https://cdn.jwz.org/images/scaled/768/2023/patreon_goatse.png 768w, https://cdn.jwz.org/images/scaled/640/2023/patreon_goatse.png 640w, https://cdn.jwz.org/images/scaled/360/2023/patreon_goatse.png 360w" SIZES="(max-width: 660px) 35vw, 26em" LOADING="lazy" data-size="1024x759"></a> Once again, Patreon is going to strong-arm all of us into "charge at the moment of sign-up" instead of "charge on the first of the month." They have wanted this for years, and once again they are saying that Apple has given them cover to demand it. <P>Here's what I wrote when they tried to pull this shit <A HREF="https://www.jwz.org/blog/2024/08/patreon-screws-me-over-says-a-big-apple-did-it-and-ran-away/">a year and a half ago</A> and then chickened out: <P>Patreon has two billing models, monthly (bills on the first of the month, or whenever they get around to it) and daily (charges you the moment you sign up.) <P>For several years now, they have been trying <I>really</I> hard to get creators to switch to daily billing whether they like it or not, with a series of intrusive nags and dark patterns. E.g., the "Settings" tab always has an "unread" alert on it reminding me that I have not made the "recommended" change. <P>Now they're going to force everyone to switch, and they're <A HREF="https://www.patreon.com/posts/148395613">blaming Apple</A> for it. And, to be clear, fuck Apple, but also fuck Patreon, this is <I>their</I> choice and it's going to mean that I can no longer use their service. <P>Here's a support request I just sent them, again, after clicking 15 levels deep into their FAQ before finding the thing that <A HREF="https://support.patreon.com/hc/en-us/requests/new?ticket_form_id=12864137196941"><I>might</I> contact a human</A>. Since the email alerting me of this change came from a "noreply" address because of course it did. <P>Feel free to send your own: <P><BLOCKQUOTE STYLE="margin: 1em 0 1em 1.5em; padding: 0.75em 0.5em 0.75em 1em; border: 1px solid; border-left: 4px solid;"> <P><b>Subject:</b> Subscription billing is unacceptable <P>You recently sent mail saying that you're going to force me to switch from monthly billing to subscription billing. <P>Subscription billing is unacceptable for <A HREF="https://www.patreon.com/dnalounge">my Patreon</A>. It does not work. <P>I sell <I>monthly</I> memberships to a <A HREF="https://www.patreon.com/dnalounge"><I>physical nightclub.</I></A> The memberships begin on the <I>first of the month.</I> I fulfill and mail the physical membership cards on the <I>first of the month.</I> If you make me switch to daily billing, that means I will have to do merch fulfillment on a daily basis instead, and I simply cannot do that. <P>If you force me to switch from a monthly cycle to a daily cycle I will have no choice but to stop using Patreon. <P>To be clear: I do not give a shit about the iOS app. Not one fractional fuck is given. If the solution to this problem is that people cannot sign up for, or access, my Patreon from the iOS app, that is 100% acceptable to me. <P>I know <I>for a fact</I> that none -- zero, 0% -- of my patrons have signed up using the iOS app. I know this because I had to warn them away from it, due to the 30% Apple Tax, and <I>all</I> of them complied. All of them. The iOS app is utterly meaningless to me and to my patrons. <P>(Also you are blaming this on Apple's bullying, which is simply not credible. You've been nagging me to change to subscription billing for years, with the little red error icon appearing everywhere. This is your decision. You are transparently using Apple as an excuse.) <P>I said this same thing to you a year and a half ago, the last time you tried to pull this nonsense. Second verse, same as the first.</BLOCKQUOTE> <P>Last time, support replied that they "completely get why this change would be upsetting" and "will bring my feedback to the team." Uh huh. <P><I>Update:</I> This time, support just replied with "more information about to convert my account", because obviously any reading of the above would indicate that I am "confused" about it. <P>Patreon's absolutely awful level of <A HREF="https://www.jwz.org/blog/2023/08/patreon-is-lying-to-you-about-whether-your-patrons-have-paid/">service</A> and <A HREF="https://www.jwz.org/blog/2022/06/patreon-api/">support</A> has been a huge problem for quite some time, but I am really not looking forward to having to figure out how to implement recurring monthly billing on my own. <P>Patreon, <I>YOU HAD ONE JOB.</I> <P><A HREF="https://www.jwz.org/blog/2024/08/patreon-screws-me-over-says-a-big-apple-did-it-and-ran-away/">Previously</A>, <A HREF="https://www.jwz.org/blog/2025/03/if-patreon-was-software-i-would-never-ever-upgrade-it/">previously</A>, <A HREF="https://www.jwz.org/blog/2023/08/patreon-is-lying-to-you-about-whether-your-patrons-have-paid/">previously</A>, <A HREF="https://www.jwz.org/blog/2024/12/patreon/">previously</A>, <A HREF="https://www.jwz.org/blog/2022/06/patreon-api/">previously</A>, <A HREF="https://www.jwz.org/blog/2023/09/how-to-compete-with-patreon/">previously</A>.]]></content:encoded>
					
					<wfw:commentRss>https://cdn.jwz.org/blog/2026/01/patreon-is-lying-again-and-blaming-apple-again/feed/</wfw:commentRss>
			<slash:comments>17</slash:comments>
		
		
		<enclosure url="https://cdn.jwz.org/images/2023/patreon_goatse.png" width="1024" height="759" length="20756" type="image/png"/>
	</item>
		<item>
		<title>DNA Lounge: Wherein Ribley has skelbows</title>
		<link>https://www.dnalounge.com/backstage/log/2026/01/26.html</link>
		
		<dc:creator><![CDATA[jwz]]></dc:creator>
		<pubDate>Mon, 26 Jan 2026 19:18:57 +0000</pubDate>
		<category><![CDATA[dnalounge]]></category>
		<guid isPermaLink="false">https://jwz.org/b/yk2W</guid>

					<description><![CDATA[Just another minor upgrade -- our beloved skeleton now has much more expressive forearms, thanks to some after-market parts I found from a freelance osteopath on Etsy. Pictured to the right rocking out at the Black Flag show.

Here, have a photo dump:

House of Harm.

Halou ...]]></description>
										<content:encoded><![CDATA[<DIV STYLE="text-align: center; width: 35%; max-width: 1350px; margin: 0 0 1em 1em; float: right;"><A HREF="https://www.dnalounge.com/backstage/log/2026/01/skelbows.html" data-size="1350x2400"><IMG SRC="https://cdn.dnalounge.com/backstage/log/2026/01/skelbows.jpg" data-size="1350x2400" WIDTH=1350 HEIGHT=2400 STYLE="width: 100%; height: auto; border: 1px solid; margin-bottom: 0.5em" ></A></DIV>Just another minor upgrade -- our beloved skeleton now has much more expressive forearms, thanks to some after-market parts I found from a freelance osteopath on Etsy. Pictured to the right rocking out at the <A HREF="https://www.dnalounge.com/gallery/2026/01-23/">Black Flag show</A>. <P>Here, have a <A HREF="https://www.dnalounge.com/gallery/">photo dump</A>: <P><div style="max-width: 60%"> <DIV STYLE="text-align: center; font-size: smaller; width: 100%; max-width: 2160px; margin: 0 auto;"><DIV STYLE="display: flex; gap: 0.5em; margin-bottom: 1em;"><DIV STYLE="flex: 1"><A HREF="https://www.dnalounge.com/gallery/2025/12-03d/"><DIV STYLE="width: 100%; height: 0; padding-bottom: 100%; position: relative; overflow: hidden; border: 1px solid;"><DIV STYLE="position: absolute; left: -25%; width: 150%;"><IMG SRC="https://cdn.dnalounge.com/gallery/2025/12-03d/100-thumb.jpg" data-size="540x360" WIDTH=540 HEIGHT=360 STYLE="width: 100%; height: auto;"></DIV></DIV> House of Harm </A></DIV><DIV STYLE="flex: 1"><A HREF="https://www.dnalounge.com/gallery/2025/12-12d/"><DIV STYLE="width: 100%; height: 0; padding-bottom: 100%; position: relative; overflow: hidden; border: 1px solid;"><DIV STYLE="position: absolute; left: -25%; width: 150%;"><IMG SRC="https://cdn.dnalounge.com/gallery/2025/12-12d/001-thumb.jpg" data-size="540x360" WIDTH=540 HEIGHT=360 STYLE="width: 100%; height: auto;"></DIV></DIV> Halou + Vice Reine </A></DIV><DIV STYLE="flex: 1"><A HREF="https://www.dnalounge.com/gallery/2025/12-31d/"><DIV STYLE="width: 100%; height: 0; padding-bottom: 100%; position: relative; overflow: hidden; border: 1px solid;"><DIV STYLE="position: absolute; left: -25%; width: 150%;"><IMG SRC="https://cdn.dnalounge.com/gallery/2025/12-31d/028-thumb.jpg" data-size="540x360" WIDTH=540 HEIGHT=360 STYLE="width: 100%; height: auto;"></DIV></DIV> AniClover </A></DIV><DIV STYLE="flex: 1"><A HREF="https://www.dnalounge.com/gallery/2026/01-15/"><DIV STYLE="width: 100%; height: 0; padding-bottom: 100%; position: relative; overflow: hidden; border: 1px solid;"><DIV STYLE="position: absolute; left: -25%; width: 150%;"><IMG SRC="https://cdn.dnalounge.com/gallery/2026/01-15/075-thumb.jpg" data-size="540x360" WIDTH=540 HEIGHT=360 STYLE="width: 100%; height: auto;"></DIV></DIV> Micro Mania Wrestling </A></DIV></DIV><DIV STYLE="display: flex; gap: 0.5em; margin-bottom: 1em;"><DIV STYLE="flex: 1"><A HREF="https://www.dnalounge.com/gallery/2026/01-16d/"><DIV STYLE="width: 100%; height: 0; padding-bottom: 100%; position: relative; overflow: hidden; border: 1px solid;"><DIV STYLE="position: absolute; left: -31%; width: 161%;"><IMG SRC="https://cdn.dnalounge.com/gallery/2026/01-16d/003-thumb.jpg" data-size="582x360" WIDTH=582 HEIGHT=360 STYLE="width: 100%; height: auto;"></DIV></DIV> After Life </A></DIV><DIV STYLE="flex: 1"><A HREF="https://www.dnalounge.com/gallery/2026/01-18a/"><DIV STYLE="width: 100%; height: 0; padding-bottom: 100%; position: relative; overflow: hidden; border: 1px solid;"><DIV STYLE="position: absolute; left: -25%; width: 150%;"><IMG SRC="https://cdn.dnalounge.com/gallery/2026/01-18a/053-thumb.jpg" data-size="540x360" WIDTH=540 HEIGHT=360 STYLE="width: 100%; height: auto;"></DIV></DIV> Big Top Burlesque </A></DIV><DIV STYLE="flex: 1"><A HREF="https://www.dnalounge.com/gallery/2026/01-19/"><DIV STYLE="width: 100%; height: 0; padding-bottom: 100%; position: relative; overflow: hidden; border: 1px solid;"><DIV STYLE="position: absolute; left: -25%; width: 150%;"><IMG SRC="https://cdn.dnalounge.com/gallery/2026/01-19/020-thumb.jpg" data-size="540x360" WIDTH=540 HEIGHT=360 STYLE="width: 100%; height: auto;"></DIV></DIV> Death Guild </A></DIV><DIV STYLE="flex: 1"><A HREF="https://www.dnalounge.com/gallery/2026/01-23/"><DIV STYLE="width: 100%; height: 0; padding-bottom: 100%; position: relative; overflow: hidden; border: 1px solid;"><DIV STYLE="position: absolute; left: -25%; width: 150%;"><IMG SRC="https://cdn.dnalounge.com/gallery/2026/01-23/011-thumb.jpg" data-size="540x360" WIDTH=540 HEIGHT=360 STYLE="width: 100%; height: auto;"></DIV></DIV> Black Flag </A></DIV></DIV></DIV> </div>]]></content:encoded>
					
		
		
		<enclosure url="https://cdn.dnalounge.com/backstage/log/2026/01/skelbows.jpg" width="1350" height="2400" type="image/jpeg"/>
<enclosure url="https://cdn.dnalounge.com/gallery/2025/12-03d/100-thumb.jpg" width="540" height="360" type="image/jpeg"/>
<enclosure url="https://cdn.dnalounge.com/gallery/2025/12-12d/001-thumb.jpg" width="540" height="360" type="image/jpeg"/>
<enclosure url="https://cdn.dnalounge.com/gallery/2025/12-31d/028-thumb.jpg" width="540" height="360" type="image/jpeg"/>
	</item>
		<item>
		<title>DNA Lounge: Wherein the video webcast works better</title>
		<link>https://www.dnalounge.com/backstage/log/2026/01/23.html</link>
		
		<dc:creator><![CDATA[jwz]]></dc:creator>
		<pubDate>Fri, 23 Jan 2026 19:37:06 +0000</pubDate>
		<category><![CDATA[dnalounge]]></category>
		<guid isPermaLink="false">https://jwz.org/b/yk2O</guid>

					<description><![CDATA[Huh, looks like I haven't done a DNA Lounge blog post in two months. Well, there hasn't been a lot to talk about, because December and January suck. We had few events, low attendance, and one big, expensive cancellation. Hooray.

Anyway, one good thing that has happened is ...]]></description>
										<content:encoded><![CDATA[Huh, looks like I haven't done a DNA Lounge blog post in two months. Well, there hasn't been a lot to talk about, because December and January suck. We had few events, low attendance, and one big, expensive cancellation. Hooray. <P>Anyway, one good thing that has happened is that, after nearly <I>six months</I> of investigation, someone who is much better than I am at reading tcpdump logs has <I>finally</I> figured out why the <A HREF="https://www.dnalounge.com/webcast/">video webcast</A> kept stalling all the time. So now you should be able to watch it for <I>hours</I> at a time without it rebuffering, instead of <I>minutes</I>, which is where we had been for a while. <P>Our uplink from the club is MonkeyBrains, who are wireless, because nobody will sell me a fiber link. And everything about wireless is trash and <A HREF="https://www.dnalounge.com/backstage/log/2002/10/31.html">always has been</A>. <P>When using <A HREF="https://en.wikipedia.org/wiki/Real-Time_Streaming_Protocol">RTSP</A> or <A HREF="https://en.wikipedia.org/wiki/Real-Time_Messaging_Protocol">RTMP</A> for video transport, there was an unusually high number of lost and <I>reordered</I> packets. These are hallmarks of a wireless network (thanks again, MonkeyBrains), but they only seemed to show up under load; meaning that you can't see the problem using mtr, speedtest, or iperf3, all of which showed 0% loss. All of the testing apps send a bunch of evenly-spaced packets of the same size, but the stream sends unpredictable bursts (because of MPEG keyframes) that lead to loss, and eventually those (successful) retransmissions kill TCP throughput. Then the video stalls. <P>So the fix was to switch to <A HREF="https://en.wikipedia.org/wiki/Secure_Reliable_Transport">SRT</A> ("Secure Reliable Transport", not to be confused with "SubRip subtitles"), which is a UDP protocol that implements its own TCP-like retransmission within a limited window, and with bandwidth smoothing. This avoids the bursting we were seeing when RTSP would blast out many large packets at once. <P>It took <I>so long</I> to figure this out, because none of the obvious tools were indicating that anything was wrong, even though your lying eyes saw the video crapping out all the time. <P>"Why don't you fix the stupid webcast already?" Because it's fuckin' <I>hard</I>, dude. <P>Oh yeah, also I got the <A HREF="https://www.dnalounge.com/backstage/log/2016/06/17.html">payphone</A> working again. Critical stuff here. <P>Anyway, come see <A HREF="https://www.dnalounge.com/calendar/2026/01-23.html">Black Flag tonight</A>. Is fun band, you like. <P><DIV STYLE="text-align: center; width: 100%; max-width: 200px; margin: 0 auto;"><A HREF="https://www.dnalounge.com/calendar/2026/01-23.html"><IMG SRC="https://cdn.dnalounge.com/flyers/2026/01/23-1-thumb.jpg" data-size="360x540" WIDTH=360 HEIGHT=540 STYLE="width: 100%; height: auto; border: 1px solid; margin-bottom: 0.5em" ></A></DIV>]]></content:encoded>
					
		
		
		<enclosure url="https://cdn.dnalounge.com/flyers/2026/01/23-1-thumb.jpg" width="360" height="540" type="image/jpeg"/>
	</item>
		<item>
		<title>My long payphone nightmare has reached a middle</title>
		<link>https://www.jwz.org/blog/2026/01/my-long-payphone-nightmare-has-reached-a-middle/</link>
					<comments>https://www.jwz.org/blog/2026/01/my-long-payphone-nightmare-has-reached-a-middle/#comments</comments>
		
		<dc:creator><![CDATA[jwz]]></dc:creator>
		<pubDate>Mon, 19 Jan 2026 07:47:00 +0000</pubDate>
		<category><![CDATA[computers]]></category>
		<category><![CDATA[dnalounge]]></category>
		<category><![CDATA[firstperson]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mad science]]></category>
		<category><![CDATA[mpegs]]></category>
		<category><![CDATA[phones]]></category>
		<category><![CDATA[retrocomputing]]></category>
		<category><![CDATA[toys]]></category>
		<guid isPermaLink="false">https://jwz.org/b/yk2H</guid>

					<description><![CDATA[It is alive. I did not, in fact, chuck it into the bay, though it was a close thing. I hope that I do not have to struggle with my Bell System T Tool again for another four to eight years.

If you don't know what I'm talking about I have so many Previouslies for you. Almost ...]]></description>
										<content:encoded><![CDATA[<DIV STYLE="text-align: center; width: 35%; max-width: 450px; margin: 0 0 1em 1em; float: right;"><DIV STYLE="display: inline-block; margin: 2px; width: 100%;" STYLE=" margin-bottom: 0.5em"><DIV STYLE="overflow: hidden; position: relative; padding-bottom: 56.25%; display: inline-block; width: 100%;" STYLE="padding-bottom: 178%"><VIDEO STYLE="position: absolute; top: 0; left: 0; border: 0; margin: 0; padding: 0; z-index: 1; width: 100%; height: 100%;" SRC="https://cdn.jwz.org/images/2026/barjoke.mp4" PLAYSINLINE CONTROLS ALLOW="autoplay; fullscreen" ALLOWFULLSCREEN loop POSTER="https://cdn.jwz.org/images/2026/barjoke.jpg"></VIDEO></DIV></DIV></DIV>It is alive. I did not, in fact, chuck it into the bay, though it was a close thing. I hope that I do not have to struggle with my Bell System T Tool again for another four to eight years. <P><DIV STYLE="text-align: center; width: 100%; max-width: 6875px; margin: 0 auto;"><DIV STYLE="display: flex; gap: 0.5em; margin-bottom: 0.5em;"><DIV STYLE="flex: 0.5625"><A HREF="https://cdn.jwz.org/images/2018/img_0739.jpg" data-size="2475x3300"><IMG SRC="https://cdn.jwz.org/images/scaled/768/2018/img_0739.jpg" WIDTH=2475 HEIGHT=3300 STYLE="width: 100%; height: auto; border: 1px solid;" SRCSET="https://cdn.jwz.org/images/2018/img_0739.jpg 2475w, https://cdn.jwz.org/images/scaled/2048/2018/img_0739.jpg 2048w, https://cdn.jwz.org/images/scaled/1920/2018/img_0739.jpg 1920w, https://cdn.jwz.org/images/scaled/1280/2018/img_0739.jpg 1280w, https://cdn.jwz.org/images/scaled/1024/2018/img_0739.jpg 1024w, https://cdn.jwz.org/images/scaled/768/2018/img_0739.jpg 768w, https://cdn.jwz.org/images/scaled/640/2018/img_0739.jpg 640w, https://cdn.jwz.org/images/scaled/360/2018/img_0739.jpg 360w" SIZES="(max-width: 660px) 100vw, 72em" LOADING="lazy" data-size="2475x3300"></A></DIV><DIV STYLE="flex: 1"><A HREF="https://cdn.jwz.org/images/2025/img_4401.jpg" data-size="2400x1800"><IMG SRC="https://cdn.jwz.org/images/scaled/768/2025/img_4401.jpg" WIDTH=2400 HEIGHT=1800 STYLE="width: 100%; height: auto; border: 1px solid;" SRCSET="https://cdn.jwz.org/images/2025/img_4401.jpg 2400w, https://cdn.jwz.org/images/scaled/2048/2025/img_4401.jpg 2048w, https://cdn.jwz.org/images/scaled/1920/2025/img_4401.jpg 1920w, https://cdn.jwz.org/images/scaled/1280/2025/img_4401.jpg 1280w, https://cdn.jwz.org/images/scaled/1024/2025/img_4401.jpg 1024w, https://cdn.jwz.org/images/scaled/768/2025/img_4401.jpg 768w, https://cdn.jwz.org/images/scaled/640/2025/img_4401.jpg 640w, https://cdn.jwz.org/images/scaled/360/2025/img_4401.jpg 360w" SIZES="(max-width: 660px) 100vw, 72em" LOADING="lazy" data-size="2400x1800"></A></DIV></DIV></DIV> <P>If you don't know what I'm talking about I have so many Previouslies for you. Almost exactly a decade's worth! <P><A HREF="https://www.jwz.org/blog/2026/01/gpio-madness/">Previously</A>, <A HREF="https://www.jwz.org/blog/2025/11/pi-4-spi-lossage/">previously</A>, <A HREF="https://www.jwz.org/blog/2025/10/tool/">previously</A>, <A HREF="https://www.jwz.org/blog/2025/10/excluding-a-volume-from-overlayfs/">previously</A>, <A HREF="https://www.jwz.org/blog/2021/08/more-payphone-shenanigans/">previously</A>, <A HREF="https://www.jwz.org/blog/2021/07/gpio-noise/">previously</A>, <A HREF="https://www.jwz.org/blog/2020/02/payphone_mk_2/">previously</A>, <A HREF="https://www.jwz.org/blog/2018/12/advanced-linux-sound-architecture/">previously</A>, <A HREF="https://www.jwz.org/blog/2018/11/never-post-photos-of-your-keys/">previously</A>, <A HREF="https://www.jwz.org/blog/2016/01/my-payphone-runs-linux-now/">previously</A>, <A HREF="https://www.jwz.org/blog/2023/09/neuroblast-cyberdelia-simulacra-and-simulation/">previously</A>.]]></content:encoded>
					
					<wfw:commentRss>https://cdn.jwz.org/blog/2026/01/my-long-payphone-nightmare-has-reached-a-middle/feed/</wfw:commentRss>
			<slash:comments>8</slash:comments>
		
		
		<enclosure url="https://cdn.jwz.org/images/2026/barjoke.jpg" length="36240" type="image/jpeg"/>
<enclosure url="https://cdn.jwz.org/images/2018/img_0739.jpg" width="2475" height="3300" length="570528" type="image/jpeg"/>
<enclosure url="https://cdn.jwz.org/images/2025/img_4401.jpg" width="2400" height="1800" length="248803" type="image/jpeg"/>
	</item>
		<item>
		<title>GPIO madness</title>
		<link>https://www.jwz.org/blog/2026/01/gpio-madness/</link>
					<comments>https://www.jwz.org/blog/2026/01/gpio-madness/#comments</comments>
		
		<dc:creator><![CDATA[jwz]]></dc:creator>
		<pubDate>Sun, 18 Jan 2026 19:24:49 +0000</pubDate>
		<category><![CDATA[computers]]></category>
		<category><![CDATA[dnalounge]]></category>
		<category><![CDATA[firstperson]]></category>
		<category><![CDATA[lazyweb]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[phones]]></category>
		<category><![CDATA[retrocomputing]]></category>
		<category><![CDATA[toys]]></category>
		<guid isPermaLink="false">https://jwz.org/b/yk2F</guid>

					<description><![CDATA[Dear Lazyweb, riddle me this:

Boot Pi with HDMI monitor attached: works fine.
Boot without monitor: all GPIO inputs "flap" about once a second.
Plug in monitor: 10 seconds later, inputs start behaving normally.
Unplug monitor: remains good. Until reboot.

WTF?

Raspberry Pi ]]></description>
										<content:encoded><![CDATA[Dear Lazyweb, riddle me this: <P><ol> <li> Boot Pi with HDMI monitor attached: works fine. </li><li> Boot without monitor: all GPIO inputs "flap" about once a second. </li><li> Plug in monitor: 10 seconds later, inputs start behaving normally. </li><li> Unplug monitor: remains good. Until reboot. </li></ol> <P>WTF? <P>Raspberry Pi 4 Model B Rev 1.5, Debian GNU/Linux 12 (bookworm) 12.11. Two different Pis, same behavior. <P>I guess I don't care <I>why</I> it wants a monitor so badly, so I tried to fake it out and convince it that one is there. Are are all of my config.txt changes: <P><pre style="border: 1px solid; padding: 1em; margin-left: 2em">#dtoverlay=vc4-kms-v3d dtoverlay=vc4-kms-v3d,noaudio max_framebuffers=2 [all] dtoverlay=disable-wifi dtoverlay=disable-bt framebuffer_width=1280 framebuffer_height=720 hdmi_force_hotplug=1 hdmi_drive=2 core_freq_min=500 core_freq=500</pre> <P>I tried adding this to commandline.txt, didn't help: <tt>video=HDMI-A-1:1920x1080M@60</tt> <P><A HREF="https://www.jwz.org/blog/2025/11/pi-4-spi-lossage/">Previously</A>.]]></content:encoded>
					
					<wfw:commentRss>https://cdn.jwz.org/blog/2026/01/gpio-madness/feed/</wfw:commentRss>
			<slash:comments>76</slash:comments>
		
		
			</item>
		<item>
		<title>What The Fib</title>
		<link>https://www.jwz.org/blog/2026/01/what-the-fib/</link>
					<comments>https://www.jwz.org/blog/2026/01/what-the-fib/#comments</comments>
		
		<dc:creator><![CDATA[jwz]]></dc:creator>
		<pubDate>Tue, 06 Jan 2026 21:49:53 +0000</pubDate>
		<category><![CDATA[dnalounge]]></category>
		<category><![CDATA[firstperson]]></category>
		<category><![CDATA[lazyweb]]></category>
		<category><![CDATA[xscreensaver]]></category>
		<guid isPermaLink="false">https://jwz.org/b/yk1X</guid>

					<description><![CDATA[Every time I notice the layout of LEDs on these spotlights at the club, I cringe:

Why, why would you do that!

A square tiling makes sense. A triangular or hexagonal tiling makes more sense. A Fibonacci spiral makes the most sense. But what the absolute clustering-fuck is ...]]></description>
										<content:encoded><![CDATA[Every time I notice the layout of LEDs on these spotlights at the club, I cringe: <P><DIV STYLE="text-align: center; width: 100%; max-width: 300px; margin: 0 auto;"><A HREF="https://cdn.jwz.org/images/2026/img_4535.jpg" data-size="4032x3024"><IMG SRC="https://cdn.jwz.org/images/scaled/768/2026/img_4535.jpg" WIDTH=4032 HEIGHT=3024 STYLE="width: 100%; height: auto; border: 1px solid; margin-bottom: 0.5em" SRCSET="https://cdn.jwz.org/images/2026/img_4535.jpg 4032w, https://cdn.jwz.org/images/scaled/2048/2026/img_4535.jpg 2048w, https://cdn.jwz.org/images/scaled/1920/2026/img_4535.jpg 1920w, https://cdn.jwz.org/images/scaled/1280/2026/img_4535.jpg 1280w, https://cdn.jwz.org/images/scaled/1024/2026/img_4535.jpg 1024w, https://cdn.jwz.org/images/scaled/768/2026/img_4535.jpg 768w, https://cdn.jwz.org/images/scaled/640/2026/img_4535.jpg 640w, https://cdn.jwz.org/images/scaled/360/2026/img_4535.jpg 360w" SIZES="(max-width: 660px) 100vw, 72em" LOADING="lazy" data-size="4032x3024"></A></DIV> <P>Why, why would you do that! <P>A square tiling makes sense. A triangular or hexagonal tiling makes more sense. A Fibonacci spiral makes the most sense. But what the absolute clustering-fuck is this shit? This layout gets more cursed the more you look at it. <P><DIV ALIGN=CENTER><A HREF="https://www.jwz.org/blog/2022/01/cursed/">Previously</A>, <A HREF="https://www.jwz.org/blog/2023/06/projection/">previously</A>, <A HREF="https://www.jwz.org/blog/2021/04/cursed-computer-iceberg/">previously</A>, <A HREF="https://www.jwz.org/blog/2021/03/cursed-keyboard-image/">previously</A>.</DIV>]]></content:encoded>
					
					<wfw:commentRss>https://cdn.jwz.org/blog/2026/01/what-the-fib/feed/</wfw:commentRss>
			<slash:comments>34</slash:comments>
		
		
		<enclosure url="https://cdn.jwz.org/images/2026/img_4535.jpg" width="4032" height="3024" length="918401" type="image/jpeg"/>
	</item>
		<item>
		<title>Dali Clock in the wild</title>
		<link>https://www.jwz.org/blog/2026/01/dali-clock-in-the-wild/</link>
					<comments>https://www.jwz.org/blog/2026/01/dali-clock-in-the-wild/#comments</comments>
		
		<dc:creator><![CDATA[jwz]]></dc:creator>
		<pubDate>Sat, 03 Jan 2026 21:35:11 +0000</pubDate>
		<category><![CDATA[computers]]></category>
		<category><![CDATA[daliclock]]></category>
		<category><![CDATA[dnalounge]]></category>
		<category><![CDATA[firstperson]]></category>
		<category><![CDATA[mpegs]]></category>
		<category><![CDATA[retrocomputing]]></category>
		<category><![CDATA[time_t]]></category>
		<category><![CDATA[xscreensaver]]></category>
		<guid isPermaLink="false">https://jwz.org/b/yk1R</guid>

					<description><![CDATA[Our New Years Eve countdown featured Dali Clock, because we use all parts of the buffalo here at org du jwz. And yes, it was NTP synchronized to within 1 frame, thanks for asking.]]></description>
										<content:encoded><![CDATA[Our <A HREF="https://www.dnalounge.com/calendar/2025/12-31.html">New Years Eve</A> countdown featured <A HREF="https://www.jwz.org/xdaliclock/">Dali Clock</A>, because we use all parts of the buffalo here at org du jwz. And yes, it was NTP synchronized to within 1 frame, thanks for asking. <P><DIV STYLE="text-align: center; width: 100%; max-width: 640px; margin: 0 auto;"><DIV STYLE="display: inline-block; margin: 2px; width: 100%;" STYLE=" margin-bottom: 0.5em"><DIV STYLE="overflow: hidden; position: relative; padding-bottom: 56.25%; display: inline-block; width: 100%;" STYLE="padding-bottom: 56%"><A HREF="https://www.youtube.com/watch?v=v9DwxF3XCrQ" ONCLICK="return popup_video(this)"><DIV STYLE="position: absolute; top: 0; left: 0; border: 0; margin: 0; padding: 0; z-index: 1; width: 100%; height: 100%;" STYLE="background-image: url('https://cdn.jwz.org/images/2026/v9dwxf3xcrq.jpg')"><DIV ><DIV >&#x25B6;&#xFE0E;</DIV></DIV></DIV></A></DIV></DIV> <P><A HREF="https://www.jwz.org/blog/2026/01/snarkatron-appreciation-post/">Previously</A>, <A HREF="https://www.jwz.org/blog/2022/11/dali-clock-for-palmos-back-from-the-dead-and-ready-to-party/">previously</A>, <A HREF="https://www.jwz.org/blog/2022/08/dali-clock-2-45-released/">previously</A>, <A HREF="https://www.jwz.org/blog/2025/01/a-tale-from-the-time_t-mines/">previously</A>.</DIV>]]></content:encoded>
					
					<wfw:commentRss>https://cdn.jwz.org/blog/2026/01/dali-clock-in-the-wild/feed/</wfw:commentRss>
			<slash:comments>13</slash:comments>
		
		
		<enclosure url="https://cdn.jwz.org/images/2026/v9dwxf3xcrq.jpg" length="12884" type="image/jpeg"/>
	</item>
		<item>
		<title>Snarkatron appreciation post</title>
		<link>https://www.jwz.org/blog/2026/01/snarkatron-appreciation-post/</link>
					<comments>https://www.jwz.org/blog/2026/01/snarkatron-appreciation-post/#comments</comments>
		
		<dc:creator><![CDATA[jwz]]></dc:creator>
		<pubDate>Sat, 03 Jan 2026 21:17:43 +0000</pubDate>
		<category><![CDATA[dnalounge]]></category>
		<category><![CDATA[firstperson]]></category>
		<category><![CDATA[glitch]]></category>
		<category><![CDATA[retrocomputing]]></category>
		<category><![CDATA[toys]]></category>
		<guid isPermaLink="false">https://jwz.org/b/yk1P</guid>

					<description><![CDATA[I added a little self-test mode to the Snarkatron. We're missing very few of these 27 year old pixels!]]></description>
										<content:encoded><![CDATA[I added a little self-test mode to the Snarkatron. We're missing very few of these 27 year old pixels! <P><DIV STYLE="text-align: center; width: 100%; max-width: 1280px; margin: 0 auto;"><DIV STYLE="display: inline-block; margin: 2px; width: 100%;" STYLE=" margin-bottom: 0.5em"><DIV STYLE="overflow: hidden; position: relative; padding-bottom: 56.25%; display: inline-block; width: 100%;" STYLE="padding-bottom: 48%"><VIDEO STYLE="position: absolute; top: 0; left: 0; border: 0; margin: 0; padding: 0; z-index: 1; width: 100%; height: 100%;" SRC="https://cdn.jwz.org/images/2026/snarkatron.mp4" AUTOPLAY LOOP MUTED PLAYSINLINE CONTROLS ALLOW="autoplay; fullscreen" ALLOWFULLSCREEN POSTER="https://cdn.jwz.org/images/2026/snarkatron.jpg"></VIDEO></DIV></DIV></DIV> <P><A HREF="https://www.jwz.org/blog/2016/12/im-really-glad-adrians-been-getting-into-the-true-spirit-of-the-snarkatron-this-holiday-season/">Previously</A>, <A HREF="https://www.dnalounge.com/backstage/log/2016/06/17.html">previously</A>, <A HREF="https://www.dnalounge.com/backstage/log/2016/05/12.html">previously</A>.]]></content:encoded>
					
					<wfw:commentRss>https://cdn.jwz.org/blog/2026/01/snarkatron-appreciation-post/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
		<enclosure url="https://cdn.jwz.org/images/2026/snarkatron.jpg" length="61064" type="image/jpeg"/>
	</item>
		<item>
		<title>My 50 most popular blog posts in 2025</title>
		<link>https://www.jwz.org/blog/2026/01/my-50-most-popular-blog-posts-in-2025/</link>
					<comments>https://www.jwz.org/blog/2026/01/my-50-most-popular-blog-posts-in-2025/#comments</comments>
		
		<dc:creator><![CDATA[jwz]]></dc:creator>
		<pubDate>Fri, 02 Jan 2026 22:06:15 +0000</pubDate>
		<category><![CDATA[dnalounge]]></category>
		<category><![CDATA[fanboys]]></category>
		<category><![CDATA[firstperson]]></category>
		<category><![CDATA[meta]]></category>
		<category><![CDATA[spam]]></category>
		<category><![CDATA[www]]></category>
		<guid isPermaLink="false">https://jwz.org/b/yk1N</guid>

					<description><![CDATA[Here are my most popular blog posts from 2025, with the caveat that this might all be bullshit from bots.

For example, this year the number one hit was a blog post from 2022, that never had a large number of hits in any previous year, and also wasn't particularly ...]]></description>
										<content:encoded><![CDATA[Here are my most popular blog posts from 2025, with the caveat that this might all be bullshit from bots. <P>For example, this year the number one hit was a blog post from 2022, that never had a large number of hits in any previous year, and also wasn't particularly interesting or controversial. An absolutely "mid" post, as the kids say. It had more than <I>twice</I> as many hits as the number two post. 99.5% of those hits came from the user agent: <P><div style="margin-left:2em"><tt style="font-size:smaller">Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko)</tt></div> <P>which is what all modern Apple Safari browsers now claim to be. (Yes, they all claim to be Intel.) So either these hits are from lying Apple browsers, or from lying AI bots repeating Apple's lie, and there's no way to tell. <P>"Popularity" here is based on page loads, not on comments or likes or boosts or whatever. <P> <P><DIV STYLE="text-align: center; width: 100%; margin: 0 auto;"><DIV STYLE="display: inline-block; width: 20%; max-width: 768px; padding: 0 6px 1em 6px; box-sizing: border-box; vertical-align: top; white-space: normal;"><A HREF="https://www.jwz.org/blog/2025/08/blade-runners-needed/"><DIV STYLE="width: 100%; height: 0; padding-bottom: 100%; position: relative; overflow: hidden; border: 1px solid; box-sizing: border-box; margin-bottom: 0.5em;"><IMG SRC="https://cdn.jwz.org/images/2021/e9pytsnviaolfnx.jpg" STYLE="position: absolute; left: 0%; width: 100%; height: auto;" SRCSET="https://cdn.jwz.org/images/2021/e9pytsnviaolfnx.jpg 768w, https://cdn.jwz.org/images/scaled/640/2021/e9pytsnviaolfnx.jpg 640w, https://cdn.jwz.org/images/scaled/360/2021/e9pytsnviaolfnx.jpg 360w" SIZES="(max-width: 660px) 100vw, 72em" LOADING="lazy" data-size="768x768" WIDTH="768" HEIGHT="768"></DIV> 50: Blade Runners needed</A></DIV><DIV STYLE="display: inline-block; width: 20%; max-width: 1184px; padding: 0 6px 1em 6px; box-sizing: border-box; vertical-align: top; white-space: normal;"><A HREF="https://www.jwz.org/blog/2025/09/jwz-mixtape-254/"><DIV STYLE="width: 100%; height: 0; padding-bottom: 100%; position: relative; overflow: hidden; border: 1px solid; box-sizing: border-box; margin-bottom: 0.5em;"><IMG SRC="https://cdn.dnalounge.com/webcast/mixtape2.png" data-size="1184x767" STYLE="position: absolute; left: -27%; width: 154%;"></DIV> 49: jwz mixtape 254</A></DIV><DIV STYLE="display: inline-block; width: 20%; max-width: 480px; padding: 0 6px 1em 6px; box-sizing: border-box; vertical-align: top; white-space: normal;"><A HREF="https://www.jwz.org/blog/2025/08/sax-possibly-violence/"><DIV STYLE="width: 100%; height: 0; padding-bottom: 100%; position: relative; overflow: hidden; border: 1px solid; box-sizing: border-box; margin-bottom: 0.5em;"><IMG SRC="https://cdn.jwz.org/apple-touch-icon.png" STYLE="position: absolute; left: 0%; width: 100%; height: auto;" SRCSET="https://cdn.jwz.org/apple-touch-icon.png 480w, https://cdn.jwz.org/apple-touch-icon.png 360w" SIZES="(max-width: 660px) 100vw, 72em" LOADING="lazy" data-size="480x480" WIDTH="480" HEIGHT="480"></DIV> 48: Sax, possibly violence</A></DIV><DIV STYLE="display: inline-block; width: 20%; max-width: 625px; padding: 0 6px 1em 6px; box-sizing: border-box; vertical-align: top; white-space: normal;"><A HREF="https://www.jwz.org/blog/2025/08/great-moments-in-the-internet-service-industry/"><DIV STYLE="width: 100%; height: 0; padding-bottom: 100%; position: relative; overflow: hidden; border: 1px solid; box-sizing: border-box; margin-bottom: 0.5em;"><IMG SRC="https://cdn.jwz.org/images/2023/googoatse.png" STYLE="position: absolute; left: -11%; width: 122%; height: auto;" SRCSET="https://cdn.jwz.org/images/2023/googoatse.png 625w, https://cdn.jwz.org/images/scaled/360/2023/googoatse.png 360w" SIZES="(max-width: 660px) 100vw, 72em" LOADING="lazy" data-size="625x512" WIDTH="625" HEIGHT="512"></DIV> 47: Great moments in the internet service industry</A></DIV><DIV STYLE="display: inline-block; width: 20%; max-width: 720px; padding: 0 6px 1em 6px; box-sizing: border-box; vertical-align: top; white-space: normal;"><A HREF="https://www.jwz.org/blog/2025/12/four-way-stop-versus-100-billion-valuation/"><DIV STYLE="width: 100%; height: 0; padding-bottom: 100%; position: relative; overflow: hidden; border: 1px solid; box-sizing: border-box; margin-bottom: 0.5em;"><IMG SRC="https://cdn.jwz.org/images/2025/65684db45f92e460.jpg" STYLE="position: absolute; left: -5%; width: 111%; height: auto;" SRCSET="https://cdn.jwz.org/images/2025/65684db45f92e460.jpg 720w, https://cdn.jwz.org/images/scaled/640/2025/65684db45f92e460.jpg 640w, https://cdn.jwz.org/images/scaled/360/2025/65684db45f92e460.jpg 360w" SIZES="(max-width: 660px) 100vw, 72em" LOADING="lazy" data-size="720x644" WIDTH="720" HEIGHT="644"></DIV> 46: Four way stop versus $100 billion valuation</A></DIV><DIV STYLE="display: inline-block; width: 20%; max-width: 676px; padding: 0 6px 1em 6px; box-sizing: border-box; vertical-align: top; white-space: normal;"><A HREF="https://www.jwz.org/blog/2025/08/dont-let-his-based-tweets-make-you-forget-that-pick-me-presidential-hopeful-gavin-newsom-actually-sucks/"><DIV STYLE="width: 100%; height: 0; padding-bottom: 100%; position: relative; overflow: hidden; border: 1px solid; box-sizing: border-box; margin-bottom: 0.5em;"><IMG SRC="https://cdn.jwz.org/images/2025/newsom-lg.jpg" STYLE="position: absolute; left: -38%; width: 177%; height: auto;" SRCSET="https://cdn.jwz.org/images/2025/newsom-lg.jpg 676w, https://cdn.jwz.org/images/scaled/640/2025/newsom-lg.jpg 640w, https://cdn.jwz.org/images/scaled/360/2025/newsom-lg.jpg 360w" SIZES="(max-width: 660px) 100vw, 72em" LOADING="lazy" data-size="676x380" WIDTH="676" HEIGHT="380"></DIV> 45: Gavin Newsom Actually Sucks</A></DIV><DIV STYLE="display: inline-block; width: 20%; max-width: 800px; padding: 0 6px 1em 6px; box-sizing: border-box; vertical-align: top; white-space: normal;"><A HREF="https://www.jwz.org/blog/2025/11/pi-4-spi-lossage/"><DIV STYLE="width: 100%; height: 0; padding-bottom: 100%; position: relative; overflow: hidden; border: 1px solid; box-sizing: border-box; margin-bottom: 0.5em;"><IMG SRC="https://cdn.jwz.org/images/scaled/768/2025/img_4423.jpg" STYLE="position: absolute; left: -38%; width: 177%; height: auto;" SRCSET="https://cdn.jwz.org/images/2025/img_4423.jpg 800w, https://cdn.jwz.org/images/scaled/768/2025/img_4423.jpg 768w, https://cdn.jwz.org/images/scaled/640/2025/img_4423.jpg 640w, https://cdn.jwz.org/images/scaled/360/2025/img_4423.jpg 360w" SIZES="(max-width: 660px) 100vw, 72em" LOADING="lazy" data-size="800x450" WIDTH="800" HEIGHT="450"></DIV> 44: Pi 4 SPI lossage</A></DIV><DIV STYLE="display: inline-block; width: 20%; max-width: 768px; padding: 0 6px 1em 6px; box-sizing: border-box; vertical-align: top; white-space: normal;"><A HREF="https://www.jwz.org/blog/2025/08/poopin-putin/"><DIV STYLE="width: 100%; height: 0; padding-bottom: 100%; position: relative; overflow: hidden; border: 1px solid; box-sizing: border-box; margin-bottom: 0.5em;"><IMG SRC="https://cdn.jwz.org/images/2018/trumptoilet.jpg" STYLE="position: absolute; left: -19%; width: 139%; height: auto;" SRCSET="https://cdn.jwz.org/images/2018/trumptoilet.jpg 768w, https://cdn.jwz.org/images/scaled/640/2018/trumptoilet.jpg 640w, https://cdn.jwz.org/images/scaled/360/2018/trumptoilet.jpg 360w" SIZES="(max-width: 660px) 100vw, 72em" LOADING="lazy" data-size="768x549" WIDTH="768" HEIGHT="549"></DIV> 43: Poopin&#039; Putin</A></DIV><DIV STYLE="display: inline-block; width: 20%; max-width: 768px; padding: 0 6px 1em 6px; box-sizing: border-box; vertical-align: top; white-space: normal;"><A HREF="https://www.jwz.org/blog/2025/07/atomic-keyboard/"><DIV STYLE="width: 100%; height: 0; padding-bottom: 100%; position: relative; overflow: hidden; border: 1px solid; box-sizing: border-box; margin-bottom: 0.5em;"><IMG SRC="https://cdn.jwz.org/images/2025/fzbu1cmg91icmpjoschgnbgifje.png" STYLE="position: absolute; left: -38%; width: 177%; height: auto;" SRCSET="https://cdn.jwz.org/images/2025/fzbu1cmg91icmpjoschgnbgifje.png 768w, https://cdn.jwz.org/images/scaled/640/2025/fzbu1cmg91icmpjoschgnbgifje.png 640w, https://cdn.jwz.org/images/scaled/360/2025/fzbu1cmg91icmpjoschgnbgifje.png 360w" SIZES="(max-width: 660px) 100vw, 72em" LOADING="lazy" data-size="768x432" WIDTH="768" HEIGHT="432"></DIV> 42: Atomic Keyboard</A></DIV><DIV STYLE="display: inline-block; width: 20%; max-width: 480px; padding: 0 6px 1em 6px; box-sizing: border-box; vertical-align: top; white-space: normal;"><A HREF="https://www.jwz.org/blog/2025/04/tempest-pac-man/"><DIV STYLE="width: 100%; height: 0; padding-bottom: 100%; position: relative; overflow: hidden; border: 1px solid; box-sizing: border-box; margin-bottom: 0.5em;"><IMG SRC="https://cdn.jwz.org/apple-touch-icon.png" STYLE="position: absolute; left: 0%; width: 100%; height: auto;" SRCSET="https://cdn.jwz.org/apple-touch-icon.png 480w, https://cdn.jwz.org/apple-touch-icon.png 360w" SIZES="(max-width: 660px) 100vw, 72em" LOADING="lazy" data-size="480x480" WIDTH="480" HEIGHT="480"></DIV> 41: Tempest, Pac-Man</A></DIV><DIV STYLE="display: inline-block; width: 20%; max-width: 480px; padding: 0 6px 1em 6px; box-sizing: border-box; vertical-align: top; white-space: normal;"><A HREF="https://www.jwz.org/blog/2025/12/fucking-python-2/"><DIV STYLE="width: 100%; height: 0; padding-bottom: 100%; position: relative; overflow: hidden; border: 1px solid; box-sizing: border-box; margin-bottom: 0.5em;"><IMG SRC="https://cdn.jwz.org/apple-touch-icon.png" STYLE="position: absolute; left: 0%; width: 100%; height: auto;" SRCSET="https://cdn.jwz.org/apple-touch-icon.png 480w, https://cdn.jwz.org/apple-touch-icon.png 360w" SIZES="(max-width: 660px) 100vw, 72em" LOADING="lazy" data-size="480x480" WIDTH="480" HEIGHT="480"></DIV> 40: Fucking Python</A></DIV><DIV STYLE="display: inline-block; width: 20%; max-width: 465px; padding: 0 6px 1em 6px; box-sizing: border-box; vertical-align: top; white-space: normal;"><A HREF="https://www.jwz.org/blog/2025/01/the-cringeocracy/"><DIV STYLE="width: 100%; height: 0; padding-bottom: 100%; position: relative; overflow: hidden; border: 1px solid; box-sizing: border-box; margin-bottom: 0.5em;"><IMG SRC="https://cdn.jwz.org/images/2025/4000.jpg" STYLE="position: absolute; left: -25%; width: 150%; height: auto;" SRCSET="https://cdn.jwz.org/images/2025/4000.jpg 465w, https://cdn.jwz.org/images/scaled/360/2025/4000.jpg 360w" SIZES="(max-width: 660px) 100vw, 72em" LOADING="lazy" data-size="465x309" WIDTH="465" HEIGHT="309"></DIV> 39: The Cringeocracy</A></DIV><DIV STYLE="display: inline-block; width: 20%; max-width: 480px; padding: 0 6px 1em 6px; box-sizing: border-box; vertical-align: top; white-space: normal;"><A HREF="https://www.jwz.org/blog/2025/03/cia/"><DIV STYLE="width: 100%; height: 0; padding-bottom: 100%; position: relative; overflow: hidden; border: 1px solid; box-sizing: border-box; margin-bottom: 0.5em;"><IMG SRC="https://cdn.jwz.org/images/2026/hqdefault.jpg" STYLE="position: absolute; left: -16%; width: 133%; height: auto;" SRCSET="https://cdn.jwz.org/images/2026/hqdefault.jpg 480w, https://cdn.jwz.org/images/scaled/360/2026/hqdefault.jpg 360w" SIZES="(max-width: 660px) 100vw, 72em" LOADING="lazy" data-size="480x360" WIDTH="480" HEIGHT="360"></DIV> 38: CIA</A></DIV><DIV STYLE="display: inline-block; width: 20%; max-width: 480px; padding: 0 6px 1em 6px; box-sizing: border-box; vertical-align: top; white-space: normal;"><A HREF="https://www.jwz.org/blog/2025/02/waiting-for-the-worms/"><DIV STYLE="width: 100%; height: 0; padding-bottom: 100%; position: relative; overflow: hidden; border: 1px solid; box-sizing: border-box; margin-bottom: 0.5em;"><IMG SRC="https://cdn.jwz.org/images/2026/hqdefault-2.jpg" STYLE="position: absolute; left: -16%; width: 133%; height: auto;" SRCSET="https://cdn.jwz.org/images/2026/hqdefault-2.jpg 480w, https://cdn.jwz.org/images/scaled/360/2026/hqdefault-2.jpg 360w" SIZES="(max-width: 660px) 100vw, 72em" LOADING="lazy" data-size="480x360" WIDTH="480" HEIGHT="360"></DIV> 37: Waiting For The Worms</A></DIV><DIV STYLE="display: inline-block; width: 20%; max-width: 320px; padding: 0 6px 1em 6px; box-sizing: border-box; vertical-align: top; white-space: normal;"><A HREF="https://www.jwz.org/blog/2025/05/rtmp-hls-segment-corruption/"><DIV STYLE="width: 100%; height: 0; padding-bottom: 100%; position: relative; overflow: hidden; border: 1px solid; box-sizing: border-box; margin-bottom: 0.5em;"><IMG SRC="https://cdn.dnalounge.com/webcast/colorbars-anim.gif" data-size="320x160" STYLE="position: absolute; left: -50%; width: 200%;"></DIV> 36: RTMP / HLS segment corruption</A></DIV><DIV STYLE="display: inline-block; width: 20%; max-width: 650px; padding: 0 6px 1em 6px; box-sizing: border-box; vertical-align: top; white-space: normal;"><A HREF="https://www.jwz.org/blog/2025/10/perennial-fuck-the-blue-angels-post-5/"><DIV STYLE="width: 100%; height: 0; padding-bottom: 100%; position: relative; overflow: hidden; border: 1px solid; box-sizing: border-box; margin-bottom: 0.5em;"><IMG SRC="https://cdn.jwz.org/images/2015/826.png" STYLE="position: absolute; left: -15%; width: 130%; height: auto;" SRCSET="https://cdn.jwz.org/images/2015/826.png 650w, https://cdn.jwz.org/images/scaled/640/2015/826.png 640w, https://cdn.jwz.org/images/scaled/360/2015/826.png 360w" SIZES="(max-width: 660px) 100vw, 72em" LOADING="lazy" data-size="650x500" WIDTH="650" HEIGHT="500"></DIV> 35: Perennial &quot;Fuck the Blue Angels&quot; post</A></DIV><DIV STYLE="display: inline-block; width: 20%; max-width: 644px; padding: 0 6px 1em 6px; box-sizing: border-box; vertical-align: top; white-space: normal;"><A HREF="https://www.jwz.org/blog/2025/09/qualifying-conditions/"><DIV STYLE="width: 100%; height: 0; padding-bottom: 100%; position: relative; overflow: hidden; border: 1px solid; box-sizing: border-box; margin-bottom: 0.5em;"><IMG SRC="https://cdn.jwz.org/images/2025/dancig.jpg" STYLE="position: absolute; left: -17%; width: 135%; height: auto;" SRCSET="https://cdn.jwz.org/images/2025/dancig.jpg 644w, https://cdn.jwz.org/images/scaled/640/2025/dancig.jpg 640w, https://cdn.jwz.org/images/scaled/360/2025/dancig.jpg 360w" SIZES="(max-width: 660px) 100vw, 72em" LOADING="lazy" data-size="644x474" WIDTH="644" HEIGHT="474"></DIV> 34: Qualifying Conditions</A></DIV><DIV STYLE="display: inline-block; width: 20%; max-width: 600px; padding: 0 6px 1em 6px; box-sizing: border-box; vertical-align: top; white-space: normal;"><A HREF="https://www.jwz.org/blog/2023/09/wayland-and-screen-savers/"><DIV STYLE="width: 100%; height: 0; padding-bottom: 100%; position: relative; overflow: hidden; border: 1px solid; box-sizing: border-box; margin-bottom: 0.5em;"><IMG SRC="https://cdn.jwz.org/xscreensaver/logo.png" STYLE="position: absolute; left: 0%; width: 100%; height: auto;" SRCSET="https://cdn.jwz.org/xscreensaver/logo.png 600w, https://cdn.jwz.org/xscreensaver/logo.png 360w" SIZES="(max-width: 660px) 100vw, 72em" LOADING="lazy" data-size="600x600" WIDTH="600" HEIGHT="600"></DIV> 33: Wayland and screen savers <I>(2023)</I></A></DIV><DIV STYLE="display: inline-block; width: 20%; max-width: 768px; padding: 0 6px 1em 6px; box-sizing: border-box; vertical-align: top; white-space: normal;"><A HREF="https://www.jwz.org/blog/2025/12/under-attack-please-stand-by-2/"><DIV STYLE="width: 100%; height: 0; padding-bottom: 100%; position: relative; overflow: hidden; border: 1px solid; box-sizing: border-box; margin-bottom: 0.5em;"><IMG SRC="https://cdn.jwz.org/images/2013/under_attack_pleas_stand_by_by_heder.png" STYLE="position: absolute; left: -29%; width: 159%; height: auto;" SRCSET="https://cdn.jwz.org/images/2013/under_attack_pleas_stand_by_by_heder.png 768w, https://cdn.jwz.org/images/scaled/640/2013/under_attack_pleas_stand_by_by_heder.png 640w, https://cdn.jwz.org/images/scaled/360/2013/under_attack_pleas_stand_by_by_heder.png 360w" SIZES="(max-width: 660px) 100vw, 72em" LOADING="lazy" data-size="768x481" WIDTH="768" HEIGHT="481"></DIV> 32: Under Attack, Please Stand By</A></DIV><DIV STYLE="display: inline-block; width: 20%; max-width: 480px; padding: 0 6px 1em 6px; box-sizing: border-box; vertical-align: top; white-space: normal;"><A HREF="https://www.jwz.org/blog/2025/08/0xacab8647/"><DIV STYLE="width: 100%; height: 0; padding-bottom: 100%; position: relative; overflow: hidden; border: 1px solid; box-sizing: border-box; margin-bottom: 0.5em;"><IMG SRC="https://cdn.jwz.org/apple-touch-icon.png" STYLE="position: absolute; left: 0%; width: 100%; height: auto;" SRCSET="https://cdn.jwz.org/apple-touch-icon.png 480w, https://cdn.jwz.org/apple-touch-icon.png 360w" SIZES="(max-width: 660px) 100vw, 72em" LOADING="lazy" data-size="480x480" WIDTH="480" HEIGHT="480"></DIV> 31: 0xACAB8647</A></DIV><DIV STYLE="display: inline-block; width: 20%; max-width: 768px; padding: 0 6px 1em 6px; box-sizing: border-box; vertical-align: top; white-space: normal;"><A HREF="https://www.jwz.org/blog/2025/01/werewolf-futures/"><DIV STYLE="width: 100%; height: 0; padding-bottom: 100%; position: relative; overflow: hidden; border: 1px solid; box-sizing: border-box; margin-bottom: 0.5em;"><IMG SRC="https://cdn.jwz.org/images/2025/pxy4z.jpg" STYLE="position: absolute; left: -16%; width: 133%; height: auto;" SRCSET="https://cdn.jwz.org/images/2025/pxy4z.jpg 768w, https://cdn.jwz.org/images/scaled/640/2025/pxy4z.jpg 640w, https://cdn.jwz.org/images/scaled/360/2025/pxy4z.jpg 360w" SIZES="(max-width: 660px) 100vw, 72em" LOADING="lazy" data-size="768x576" WIDTH="768" HEIGHT="576"></DIV> 30: Werewolf Futures</A></DIV><DIV STYLE="display: inline-block; width: 20%; max-width: 480px; padding: 0 6px 1em 6px; box-sizing: border-box; vertical-align: top; white-space: normal;"><A HREF="https://www.jwz.org/blog/2025/04/silicon-valley-crosswalk-buttons-hacked-to-imitate-musk-zuckerberg/"><DIV STYLE="width: 100%; height: 0; padding-bottom: 100%; position: relative; overflow: hidden; border: 1px solid; box-sizing: border-box; margin-bottom: 0.5em;"><IMG SRC="https://cdn.jwz.org/apple-touch-icon.png" STYLE="position: absolute; left: 0%; width: 100%; height: auto;" SRCSET="https://cdn.jwz.org/apple-touch-icon.png 480w, https://cdn.jwz.org/apple-touch-icon.png 360w" SIZES="(max-width: 660px) 100vw, 72em" LOADING="lazy" data-size="480x480" WIDTH="480" HEIGHT="480"></DIV> 29: Crosswalks hacked to imitate Musk, Zuckerberg</A></DIV><DIV STYLE="display: inline-block; width: 20%; max-width: 600px; padding: 0 6px 1em 6px; box-sizing: border-box; vertical-align: top; white-space: normal;"><A HREF="https://www.jwz.org/blog/2025/07/xscreensaver-6-12/"><DIV STYLE="width: 100%; height: 0; padding-bottom: 100%; position: relative; overflow: hidden; border: 1px solid; box-sizing: border-box; margin-bottom: 0.5em;"><IMG SRC="https://cdn.jwz.org/xscreensaver/logo.png" STYLE="position: absolute; left: 0%; width: 100%; height: auto;" SRCSET="https://cdn.jwz.org/xscreensaver/logo.png 600w, https://cdn.jwz.org/xscreensaver/logo.png 360w" SIZES="(max-width: 660px) 100vw, 72em" LOADING="lazy" data-size="600x600" WIDTH="600" HEIGHT="600"></DIV> 28: XScreenSaver 6.12</A></DIV><DIV STYLE="display: inline-block; width: 20%; max-width: 768px; padding: 0 6px 1em 6px; box-sizing: border-box; vertical-align: top; white-space: normal;"><A HREF="https://www.jwz.org/blog/2025/03/an-off-switch-shell-get-years-for-that-2/"><DIV STYLE="width: 100%; height: 0; padding-bottom: 100%; position: relative; overflow: hidden; border: 1px solid; box-sizing: border-box; margin-bottom: 0.5em;"><IMG SRC="https://cdn.jwz.org/images/2025/zrqi30zqy5re1.jpg" STYLE="position: absolute; left: -37%; width: 174%; height: auto;" SRCSET="https://cdn.jwz.org/images/2025/zrqi30zqy5re1.jpg 768w, https://cdn.jwz.org/images/scaled/640/2025/zrqi30zqy5re1.jpg 640w, https://cdn.jwz.org/images/scaled/360/2025/zrqi30zqy5re1.jpg 360w" SIZES="(max-width: 660px) 100vw, 72em" LOADING="lazy" data-size="768x441" WIDTH="768" HEIGHT="441"></DIV> 27: &quot;An off switch? She&#039;ll get years for that.&quot;</A></DIV><DIV STYLE="display: inline-block; width: 20%; max-width: 615px; padding: 0 6px 1em 6px; box-sizing: border-box; vertical-align: top; white-space: normal;"><A HREF="https://www.jwz.org/blog/2025/12/today-in-google-broke-email-2/"><DIV STYLE="width: 100%; height: 0; padding-bottom: 100%; position: relative; overflow: hidden; border: 1px solid; box-sizing: border-box; margin-bottom: 0.5em;"><IMG SRC="https://cdn.jwz.org/images/2017/multipart.png" STYLE="position: absolute; left: -53%; width: 207%; height: auto;" SRCSET="https://cdn.jwz.org/images/2017/multipart.png 615w, https://cdn.jwz.org/images/scaled/360/2017/multipart.png 360w" SIZES="(max-width: 660px) 100vw, 72em" LOADING="lazy" data-size="615x297" WIDTH="615" HEIGHT="297"></DIV> 26: Today in &quot;Google broke email&quot;</A></DIV><DIV STYLE="display: inline-block; width: 20%; max-width: 500px; padding: 0 6px 1em 6px; box-sizing: border-box; vertical-align: top; white-space: normal;"><A HREF="https://www.jwz.org/blog/2025/10/basecamp-alternative/"><DIV STYLE="width: 100%; height: 0; padding-bottom: 100%; position: relative; overflow: hidden; border: 1px solid; box-sizing: border-box; margin-bottom: 0.5em;"><IMG SRC="https://cdn.jwz.org/images/2016/clown-computing.png" STYLE="position: absolute; left: -26%; width: 153%; height: auto;" SRCSET="https://cdn.jwz.org/images/2016/clown-computing.png 500w, https://cdn.jwz.org/images/scaled/360/2016/clown-computing.png 360w" SIZES="(max-width: 660px) 100vw, 72em" LOADING="lazy" data-size="500x325" WIDTH="500" HEIGHT="325"></DIV> 25: Basecamp alternative</A></DIV><DIV STYLE="display: inline-block; width: 20%; max-width: 768px; padding: 0 6px 1em 6px; box-sizing: border-box; vertical-align: top; white-space: normal;"><A HREF="https://www.jwz.org/blog/2025/08/cube/"><DIV STYLE="width: 100%; height: 0; padding-bottom: 100%; position: relative; overflow: hidden; border: 1px solid; box-sizing: border-box; margin-bottom: 0.5em;"><IMG SRC="https://cdn.jwz.org/images/2025/maxresdefault.jpg" STYLE="position: absolute; left: -38%; width: 177%; height: auto;" SRCSET="https://cdn.jwz.org/images/2025/maxresdefault.jpg 768w, https://cdn.jwz.org/images/scaled/640/2025/maxresdefault.jpg 640w, https://cdn.jwz.org/images/scaled/360/2025/maxresdefault.jpg 360w" SIZES="(max-width: 660px) 100vw, 72em" LOADING="lazy" data-size="768x432" WIDTH="768" HEIGHT="432"></DIV> 24: Cube</A></DIV><DIV STYLE="display: inline-block; width: 20%; max-width: 600px; padding: 0 6px 1em 6px; box-sizing: border-box; vertical-align: top; white-space: normal;"><A HREF="https://www.jwz.org/blog/2025/07/xscreensaver-wayland-and-locking/"><DIV STYLE="width: 100%; height: 0; padding-bottom: 100%; position: relative; overflow: hidden; border: 1px solid; box-sizing: border-box; margin-bottom: 0.5em;"><IMG SRC="https://cdn.jwz.org/xscreensaver/logo.png" STYLE="position: absolute; left: 0%; width: 100%; height: auto;" SRCSET="https://cdn.jwz.org/xscreensaver/logo.png 600w, https://cdn.jwz.org/xscreensaver/logo.png 360w" SIZES="(max-width: 660px) 100vw, 72em" LOADING="lazy" data-size="600x600" WIDTH="600" HEIGHT="600"></DIV> 23: XScreenSaver, Wayland and locking</A></DIV><DIV STYLE="display: inline-block; width: 20%; max-width: 768px; padding: 0 6px 1em 6px; box-sizing: border-box; vertical-align: top; white-space: normal;"><A HREF="https://www.jwz.org/blog/2025/02/marc-andreessen-murder-enthusiast/"><DIV STYLE="width: 100%; height: 0; padding-bottom: 100%; position: relative; overflow: hidden; border: 1px solid; box-sizing: border-box; margin-bottom: 0.5em;"><IMG SRC="https://cdn.jwz.org/images/2025/getty_former-marine-daniel-penny-arr.jpg" STYLE="position: absolute; left: -16%; width: 132%; height: auto;" SRCSET="https://cdn.jwz.org/images/2025/getty_former-marine-daniel-penny-arr.jpg 768w, https://cdn.jwz.org/images/scaled/640/2025/getty_former-marine-daniel-penny-arr.jpg 640w, https://cdn.jwz.org/images/scaled/360/2025/getty_former-marine-daniel-penny-arr.jpg 360w" SIZES="(max-width: 660px) 100vw, 72em" LOADING="lazy" data-size="768x581" WIDTH="768" HEIGHT="581"></DIV> 22: Marc Andreessen, Murder Enthusiast</A></DIV><DIV STYLE="display: inline-block; width: 20%; max-width: 480px; padding: 0 6px 1em 6px; box-sizing: border-box; vertical-align: top; white-space: normal;"><A HREF="https://www.jwz.org/blog/2025/05/e-bikes/"><DIV STYLE="width: 100%; height: 0; padding-bottom: 100%; position: relative; overflow: hidden; border: 1px solid; box-sizing: border-box; margin-bottom: 0.5em;"><IMG SRC="https://cdn.jwz.org/apple-touch-icon.png" STYLE="position: absolute; left: 0%; width: 100%; height: auto;" SRCSET="https://cdn.jwz.org/apple-touch-icon.png 480w, https://cdn.jwz.org/apple-touch-icon.png 360w" SIZES="(max-width: 660px) 100vw, 72em" LOADING="lazy" data-size="480x480" WIDTH="480" HEIGHT="480"></DIV> 21: E-bikes</A></DIV><DIV STYLE="display: inline-block; width: 20%; max-width: 480px; padding: 0 6px 1em 6px; box-sizing: border-box; vertical-align: top; white-space: normal;"><A HREF="https://www.jwz.org/blog/2025/05/user-agent-blocking/"><DIV STYLE="width: 100%; height: 0; padding-bottom: 100%; position: relative; overflow: hidden; border: 1px solid; box-sizing: border-box; margin-bottom: 0.5em;"><IMG SRC="https://cdn.jwz.org/apple-touch-icon.png" STYLE="position: absolute; left: 0%; width: 100%; height: auto;" SRCSET="https://cdn.jwz.org/apple-touch-icon.png 480w, https://cdn.jwz.org/apple-touch-icon.png 360w" SIZES="(max-width: 660px) 100vw, 72em" LOADING="lazy" data-size="480x480" WIDTH="480" HEIGHT="480"></DIV> 20: User agent blocking</A></DIV><DIV STYLE="display: inline-block; width: 20%; max-width: 1280px; padding: 0 6px 1em 6px; box-sizing: border-box; vertical-align: top; white-space: normal;"><A HREF="https://www.jwz.org/blog/2025/07/motherfucking-wind-farms/"><DIV STYLE="width: 100%; height: 0; padding-bottom: 100%; position: relative; overflow: hidden; border: 1px solid; box-sizing: border-box; margin-bottom: 0.5em;"><IMG SRC="https://cdn.jwz.org/images/scaled/768/2025/mfwf.jpg" STYLE="position: absolute; left: -38%; width: 177%; height: auto;" SRCSET="https://cdn.jwz.org/images/2025/mfwf.jpg 1280w, https://cdn.jwz.org/images/scaled/1024/2025/mfwf.jpg 1024w, https://cdn.jwz.org/images/scaled/768/2025/mfwf.jpg 768w, https://cdn.jwz.org/images/scaled/640/2025/mfwf.jpg 640w, https://cdn.jwz.org/images/scaled/360/2025/mfwf.jpg 360w" SIZES="(max-width: 660px) 100vw, 72em" LOADING="lazy" data-size="1280x720" WIDTH="1280" HEIGHT="720"></DIV> 19: Motherfucking Wind Farms</A></DIV><DIV STYLE="display: inline-block; width: 20%; max-width: 480px; padding: 0 6px 1em 6px; box-sizing: border-box; vertical-align: top; white-space: normal;"><A HREF="https://www.jwz.org/blog/2025/01/now-i-have-two-problems/"><DIV STYLE="width: 100%; height: 0; padding-bottom: 100%; position: relative; overflow: hidden; border: 1px solid; box-sizing: border-box; margin-bottom: 0.5em;"><IMG SRC="https://cdn.jwz.org/apple-touch-icon.png" STYLE="position: absolute; left: 0%; width: 100%; height: auto;" SRCSET="https://cdn.jwz.org/apple-touch-icon.png 480w, https://cdn.jwz.org/apple-touch-icon.png 360w" SIZES="(max-width: 660px) 100vw, 72em" LOADING="lazy" data-size="480x480" WIDTH="480" HEIGHT="480"></DIV> 18: Now I have two problems</A></DIV><DIV STYLE="display: inline-block; width: 20%; max-width: 712px; padding: 0 6px 1em 6px; box-sizing: border-box; vertical-align: top; white-space: normal;"><A HREF="https://www.jwz.org/blog/2025/08/the-mothership-vortex/"><DIV STYLE="width: 100%; height: 0; padding-bottom: 100%; position: relative; overflow: hidden; border: 1px solid; box-sizing: border-box; margin-bottom: 0.5em;"><IMG SRC="https://cdn.jwz.org/images/2025/8abe0136-84a8-46e3-9501-4ffb780c1636.jpg" STYLE="position: absolute; left: -9%; width: 118%; height: auto;" SRCSET="https://cdn.jwz.org/images/2025/8abe0136-84a8-46e3-9501-4ffb780c1636.jpg 712w, https://cdn.jwz.org/images/scaled/640/2025/8abe0136-84a8-46e3-9501-4ffb780c1636.jpg 640w, https://cdn.jwz.org/images/scaled/360/2025/8abe0136-84a8-46e3-9501-4ffb780c1636.jpg 360w" SIZES="(max-width: 660px) 100vw, 72em" LOADING="lazy" data-size="712x600" WIDTH="712" HEIGHT="600"></DIV> 17: The Mothership Vortex</A></DIV><DIV STYLE="display: inline-block; width: 20%; max-width: 480px; padding: 0 6px 1em 6px; box-sizing: border-box; vertical-align: top; white-space: normal;"><A HREF="https://www.jwz.org/blog/2025/08/fucking-python/"><DIV STYLE="width: 100%; height: 0; padding-bottom: 100%; position: relative; overflow: hidden; border: 1px solid; box-sizing: border-box; margin-bottom: 0.5em;"><IMG SRC="https://cdn.jwz.org/apple-touch-icon.png" STYLE="position: absolute; left: 0%; width: 100%; height: auto;" SRCSET="https://cdn.jwz.org/apple-touch-icon.png 480w, https://cdn.jwz.org/apple-touch-icon.png 360w" SIZES="(max-width: 660px) 100vw, 72em" LOADING="lazy" data-size="480x480" WIDTH="480" HEIGHT="480"></DIV> 16: Fucking Python</A></DIV><DIV STYLE="display: inline-block; width: 20%; max-width: 1024px; padding: 0 6px 1em 6px; box-sizing: border-box; vertical-align: top; white-space: normal;"><A HREF="https://www.jwz.org/blog/2025/01/i-prefer-to-meet-people-where-they-are-says-reasonable-sounding-white-dude-holding-court-at-a-table-in-the-back-of-a-nazi-bar-redux/"><DIV STYLE="width: 100%; height: 0; padding-bottom: 100%; position: relative; overflow: hidden; border: 1px solid; box-sizing: border-box; margin-bottom: 0.5em;"><IMG SRC="https://cdn.jwz.org/images/scaled/768/2024/blewsky_goatse.png" STYLE="position: absolute; left: -20%; width: 140%; height: auto;" SRCSET="https://cdn.jwz.org/images/2024/blewsky_goatse.png 1024w, https://cdn.jwz.org/images/scaled/768/2024/blewsky_goatse.png 768w, https://cdn.jwz.org/images/scaled/640/2024/blewsky_goatse.png 640w, https://cdn.jwz.org/images/scaled/360/2024/blewsky_goatse.png 360w" SIZES="(max-width: 660px) 100vw, 72em" LOADING="lazy" data-size="1024x727" WIDTH="1024" HEIGHT="727"></DIV> 15: &quot;I prefer to meet people where they are&quot;</A></DIV><DIV STYLE="display: inline-block; width: 20%; max-width: 768px; padding: 0 6px 1em 6px; box-sizing: border-box; vertical-align: top; white-space: normal;"><A HREF="https://www.jwz.org/blog/2025/02/on-blocking-mastodon-hoa-edition/"><DIV STYLE="width: 100%; height: 0; padding-bottom: 100%; position: relative; overflow: hidden; border: 1px solid; box-sizing: border-box; margin-bottom: 0.5em;"><IMG SRC="https://cdn.jwz.org/images/2025/drosteblock.jpg" STYLE="position: absolute; left: -22%; width: 144%; height: auto;" SRCSET="https://cdn.jwz.org/images/2025/drosteblock.jpg 768w, https://cdn.jwz.org/images/scaled/640/2025/drosteblock.jpg 640w, https://cdn.jwz.org/images/scaled/360/2025/drosteblock.jpg 360w" SIZES="(max-width: 660px) 100vw, 72em" LOADING="lazy" data-size="768x533" WIDTH="768" HEIGHT="533"></DIV> 14: On Blocking, Mastodon HOA Edition</A></DIV><DIV STYLE="display: inline-block; width: 20%; max-width: 480px; padding: 0 6px 1em 6px; box-sizing: border-box; vertical-align: top; white-space: normal;"><A HREF="https://www.jwz.org/blog/2025/01/pro-tip/"><DIV STYLE="width: 100%; height: 0; padding-bottom: 100%; position: relative; overflow: hidden; border: 1px solid; box-sizing: border-box; margin-bottom: 0.5em;"><IMG SRC="https://cdn.jwz.org/apple-touch-icon.png" STYLE="position: absolute; left: 0%; width: 100%; height: auto;" SRCSET="https://cdn.jwz.org/apple-touch-icon.png 480w, https://cdn.jwz.org/apple-touch-icon.png 360w" SIZES="(max-width: 660px) 100vw, 72em" LOADING="lazy" data-size="480x480" WIDTH="480" HEIGHT="480"></DIV> 13: Pro Tip</A></DIV><DIV STYLE="display: inline-block; width: 20%; max-width: 480px; padding: 0 6px 1em 6px; box-sizing: border-box; vertical-align: top; white-space: normal;"><A HREF="https://www.jwz.org/blog/2025/01/exterminate-all-rational-ai-scrapers/"><DIV STYLE="width: 100%; height: 0; padding-bottom: 100%; position: relative; overflow: hidden; border: 1px solid; box-sizing: border-box; margin-bottom: 0.5em;"><IMG SRC="https://cdn.jwz.org/apple-touch-icon.png" STYLE="position: absolute; left: 0%; width: 100%; height: auto;" SRCSET="https://cdn.jwz.org/apple-touch-icon.png 480w, https://cdn.jwz.org/apple-touch-icon.png 360w" SIZES="(max-width: 660px) 100vw, 72em" LOADING="lazy" data-size="480x480" WIDTH="480" HEIGHT="480"></DIV> 12: Exterminate all rational AI scrapers</A></DIV><DIV STYLE="display: inline-block; width: 20%; max-width: 768px; padding: 0 6px 1em 6px; box-sizing: border-box; vertical-align: top; white-space: normal;"><A HREF="https://www.jwz.org/blog/2025/07/you-must-listen-to-rfc-2119/"><DIV STYLE="width: 100%; height: 0; padding-bottom: 100%; position: relative; overflow: hidden; border: 1px solid; box-sizing: border-box; margin-bottom: 0.5em;"><IMG SRC="https://cdn.jwz.org/images/2025/share-image-facebook.png" STYLE="position: absolute; left: -45%; width: 190%; height: auto;" SRCSET="https://cdn.jwz.org/images/2025/share-image-facebook.png 768w, https://cdn.jwz.org/images/scaled/640/2025/share-image-facebook.png 640w, https://cdn.jwz.org/images/scaled/360/2025/share-image-facebook.png 360w" SIZES="(max-width: 660px) 100vw, 72em" LOADING="lazy" data-size="768x404" WIDTH="768" HEIGHT="404"></DIV> 11: You MUST listen to RFC 2119</A></DIV><DIV STYLE="display: inline-block; width: 20%; max-width: 768px; padding: 0 6px 1em 6px; box-sizing: border-box; vertical-align: top; white-space: normal;"><A HREF="https://www.jwz.org/blog/2025/12/the-original-mozilla-dinosaur-logo-artwork/"><DIV STYLE="width: 100%; height: 0; padding-bottom: 100%; position: relative; overflow: hidden; border: 1px solid; box-sizing: border-box; margin-bottom: 0.5em;"><IMG SRC="https://cdn.jwz.org/images/1998/mozilla/shepard-mozilla-1.png" STYLE="position: absolute; left: 0%; width: 100%; height: auto;" SRCSET="https://cdn.jwz.org/images/1998/mozilla/shepard-mozilla-1.png 768w, https://cdn.jwz.org/images/scaled/640/1998/mozilla/shepard-mozilla-1.png 640w, https://cdn.jwz.org/images/scaled/360/1998/mozilla/shepard-mozilla-1.png 360w" SIZES="(max-width: 660px) 100vw, 72em" LOADING="lazy" data-size="768x1087" WIDTH="768" HEIGHT="1087"></DIV> 10: The original Mozilla &quot;Dinosaur&quot; logo artwork</A></DIV><DIV STYLE="display: inline-block; width: 20%; max-width: 615px; padding: 0 6px 1em 6px; box-sizing: border-box; vertical-align: top; white-space: normal;"><A HREF="https://www.jwz.org/blog/2025/12/today-in-email-hegemony-2/"><DIV STYLE="width: 100%; height: 0; padding-bottom: 100%; position: relative; overflow: hidden; border: 1px solid; box-sizing: border-box; margin-bottom: 0.5em;"><IMG SRC="https://cdn.jwz.org/images/2017/multipart.png" STYLE="position: absolute; left: -53%; width: 207%; height: auto;" SRCSET="https://cdn.jwz.org/images/2017/multipart.png 615w, https://cdn.jwz.org/images/scaled/360/2017/multipart.png 360w" SIZES="(max-width: 660px) 100vw, 72em" LOADING="lazy" data-size="615x297" WIDTH="615" HEIGHT="297"></DIV> 9: Today in Email Hegemony</A></DIV><DIV STYLE="display: inline-block; width: 20%; max-width: 768px; padding: 0 6px 1em 6px; box-sizing: border-box; vertical-align: top; white-space: normal;"><A HREF="https://www.jwz.org/blog/2025/07/ambient-age-verification/"><DIV STYLE="width: 100%; height: 0; padding-bottom: 100%; position: relative; overflow: hidden; border: 1px solid; box-sizing: border-box; margin-bottom: 0.5em;"><IMG SRC="https://cdn.jwz.org/images/2025/tank_logo_1080.jpg" STYLE="position: absolute; left: 0%; width: 100%; height: auto;" SRCSET="https://cdn.jwz.org/images/2025/tank_logo_1080.jpg 768w, https://cdn.jwz.org/images/scaled/640/2025/tank_logo_1080.jpg 640w, https://cdn.jwz.org/images/scaled/360/2025/tank_logo_1080.jpg 360w" SIZES="(max-width: 660px) 100vw, 72em" LOADING="lazy" data-size="768x768" WIDTH="768" HEIGHT="768"></DIV> 8: Ambient age verification</A></DIV><DIV STYLE="display: inline-block; width: 20%; max-width: 480px; padding: 0 6px 1em 6px; box-sizing: border-box; vertical-align: top; white-space: normal;"><A HREF="https://www.jwz.org/blog/2025/03/unpopularity-contest/"><DIV STYLE="width: 100%; height: 0; padding-bottom: 100%; position: relative; overflow: hidden; border: 1px solid; box-sizing: border-box; margin-bottom: 0.5em;"><IMG SRC="https://cdn.jwz.org/apple-touch-icon.png" STYLE="position: absolute; left: 0%; width: 100%; height: auto;" SRCSET="https://cdn.jwz.org/apple-touch-icon.png 480w, https://cdn.jwz.org/apple-touch-icon.png 360w" SIZES="(max-width: 660px) 100vw, 72em" LOADING="lazy" data-size="480x480" WIDTH="480" HEIGHT="480"></DIV> 7: Unpopularity Contest</A></DIV><DIV STYLE="display: inline-block; width: 20%; max-width: 768px; padding: 0 6px 1em 6px; box-sizing: border-box; vertical-align: top; white-space: normal;"><A HREF="https://www.jwz.org/blog/2025/06/under-attack-please-stand-by/"><DIV STYLE="width: 100%; height: 0; padding-bottom: 100%; position: relative; overflow: hidden; border: 1px solid; box-sizing: border-box; margin-bottom: 0.5em;"><IMG SRC="https://cdn.jwz.org/images/2013/under_attack_pleas_stand_by_by_heder.png" STYLE="position: absolute; left: -29%; width: 159%; height: auto;" SRCSET="https://cdn.jwz.org/images/2013/under_attack_pleas_stand_by_by_heder.png 768w, https://cdn.jwz.org/images/scaled/640/2013/under_attack_pleas_stand_by_by_heder.png 640w, https://cdn.jwz.org/images/scaled/360/2013/under_attack_pleas_stand_by_by_heder.png 360w" SIZES="(max-width: 660px) 100vw, 72em" LOADING="lazy" data-size="768x481" WIDTH="768" HEIGHT="481"></DIV> 6: Under Attack, Please Stand By</A></DIV><DIV STYLE="display: inline-block; width: 20%; max-width: 450px; padding: 0 6px 1em 6px; box-sizing: border-box; vertical-align: top; white-space: normal;"><A HREF="https://www.jwz.org/blog/2025/06/wayland-screenshots/"><DIV STYLE="width: 100%; height: 0; padding-bottom: 100%; position: relative; overflow: hidden; border: 1px solid; box-sizing: border-box; margin-bottom: 0.5em;"><IMG SRC="https://cdn.jwz.org/images/2025/614-01268631en_masterfile.jpg" STYLE="position: absolute; left: -25%; width: 151%; height: auto;" SRCSET="https://cdn.jwz.org/images/2025/614-01268631en_masterfile.jpg 450w, https://cdn.jwz.org/images/scaled/360/2025/614-01268631en_masterfile.jpg 360w" SIZES="(max-width: 660px) 100vw, 72em" LOADING="lazy" data-size="450x298" WIDTH="450" HEIGHT="298"></DIV> 5: Wayland screenshots</A></DIV><DIV STYLE="display: inline-block; width: 20%; max-width: 300px; padding: 0 6px 1em 6px; box-sizing: border-box; vertical-align: top; white-space: normal;"><A HREF="https://www.jwz.org/blog/2025/04/signal-3/"><DIV STYLE="width: 100%; height: 0; padding-bottom: 100%; position: relative; overflow: hidden; border: 1px solid; box-sizing: border-box; margin-bottom: 0.5em;"><IMG SRC="https://cdn.jwz.org/images/2017/signal_goatse.png" data-size="300x300" STYLE="position: absolute; left: 0%; width: 100%;"></DIV> 4: Signal</A></DIV><DIV STYLE="display: inline-block; width: 20%; max-width: 768px; padding: 0 6px 1em 6px; box-sizing: border-box; vertical-align: top; white-space: normal;"><A HREF="https://www.jwz.org/blog/2025/09/netscape-navigator-2-0-was-released-30-years-ago-today/"><DIV STYLE="width: 100%; height: 0; padding-bottom: 100%; position: relative; overflow: hidden; border: 1px solid; box-sizing: border-box; margin-bottom: 0.5em;"><IMG SRC="https://cdn.jwz.org/images/2025/netscapenow.jpg" STYLE="position: absolute; left: -92%; width: 284%; height: auto;" SRCSET="https://cdn.jwz.org/images/2025/netscapenow.jpg 768w, https://cdn.jwz.org/images/scaled/640/2025/netscapenow.jpg 640w, https://cdn.jwz.org/images/scaled/360/2025/netscapenow.jpg 360w" SIZES="(max-width: 660px) 100vw, 72em" LOADING="lazy" data-size="768x270" WIDTH="768" HEIGHT="270"></DIV> 3: Netscape Navigator 2.0 was released 30 years ago today</A></DIV><DIV STYLE="display: inline-block; width: 20%; max-width: 480px; padding: 0 6px 1em 6px; box-sizing: border-box; vertical-align: top; white-space: normal;"><A HREF="https://www.jwz.org/blog/2025/03/dmarc-and-spf/"><DIV STYLE="width: 100%; height: 0; padding-bottom: 100%; position: relative; overflow: hidden; border: 1px solid; box-sizing: border-box; margin-bottom: 0.5em;"><IMG SRC="https://cdn.jwz.org/apple-touch-icon.png" STYLE="position: absolute; left: 0%; width: 100%; height: auto;" SRCSET="https://cdn.jwz.org/apple-touch-icon.png 480w, https://cdn.jwz.org/apple-touch-icon.png 360w" SIZES="(max-width: 660px) 100vw, 72em" LOADING="lazy" data-size="480x480" WIDTH="480" HEIGHT="480"></DIV> 2: DMARC and SPF</A></DIV><DIV STYLE="display: inline-block; width: 20%; padding: 0 6px 1em 6px; box-sizing: border-box; vertical-align: top; white-space: normal;"><A HREF="https://www.jwz.org/blog/2024/10/mosaic-netscape-0-9-was-released-30-years-ago-today/"><DIV STYLE="width: 100%; height: 0; padding-bottom: 100%; position: relative; overflow: hidden; border: 1px solid; box-sizing: border-box; margin-bottom: 0.5em;"><IMG SRC="https://cdn.jwz.org/doc/about-mcom-anim.gif" STYLE="position: absolute; left: 0%; width: 100%; background: #CCC; height: auto;" SRCSET="https://cdn.jwz.org/doc/about-mcom-anim.gif 56w" SIZES="(max-width: 660px) 100vw, 72em" LOADING="lazy" data-size="56x58" WIDTH="56" HEIGHT="58"></DIV> 1: Mosaic Netscape 0.9 was released 30 years ago today <I>(2024)</I></A></DIV> <P><A HREF="https://www.jwz.org/blog/2025/01/my-50-most-popular-blog-posts-in-2024/">Previously</A>, <A HREF="https://www.jwz.org/blog/2024/01/my-50-most-popular-blog-posts-in-2023/">previously</A>, <A HREF="https://www.jwz.org/blog/2023/01/my-50-most-popular-blog-posts-in-2022/">previously</A>, <A HREF="https://www.jwz.org/blog/2022/01/my-50-most-popular-blog-posts-from-2021/">previously</A>, <A HREF="https://www.jwz.org/blog/2021/01/my-50-most-popular-blog-posts-from-2020/">previously</A>, <A HREF="https://www.jwz.org/blog/2020/01/my-50-most-popular-blog-posts-from-2019/">previously</A>, <A HREF="https://www.jwz.org/blog/2019/01/my-50-most-popular-blog-posts-from-2018/">previously</A>, <A HREF="https://www.jwz.org/blog/2018/01/my-50-most-popular-blog-posts-from-2017-number-15-might-surprise-you/">previously</A>.</DIV>]]></content:encoded>
					
					<wfw:commentRss>https://cdn.jwz.org/blog/2026/01/my-50-most-popular-blog-posts-in-2025/feed/</wfw:commentRss>
			<slash:comments>7</slash:comments>
		
		
		<enclosure url="https://cdn.jwz.org/images/2021/e9pytsnviaolfnx.jpg" width="768" height="768" length="154641" type="image/jpeg"/>
<enclosure url="https://cdn.dnalounge.com/webcast/mixtape2.png" width="1184" height="767" type="image/png"/>
<enclosure url="https://cdn.jwz.org/apple-touch-icon.png" width="480" height="480" length="115137" type="image/png"/>
<enclosure url="https://cdn.jwz.org/images/2023/googoatse.png" width="625" height="512" length="15257" type="image/png"/>
	</item>
		<item>
		<title>Today in &quot;Google broke email&quot;</title>
		<link>https://www.jwz.org/blog/2025/12/today-in-google-broke-email-2/</link>
					<comments>https://www.jwz.org/blog/2025/12/today-in-google-broke-email-2/#comments</comments>
		
		<dc:creator><![CDATA[jwz]]></dc:creator>
		<pubDate>Mon, 29 Dec 2025 20:40:36 +0000</pubDate>
		<category><![CDATA[computers]]></category>
		<category><![CDATA[corporations]]></category>
		<category><![CDATA[dnalounge]]></category>
		<category><![CDATA[doomed]]></category>
		<category><![CDATA[firstperson]]></category>
		<category><![CDATA[lazyweb]]></category>
		<category><![CDATA[mail]]></category>
		<category><![CDATA[spam]]></category>
		<guid isPermaLink="false">https://jwz.org/b/yk1C</guid>

					<description><![CDATA[I have just learned that, beginning in 3 days, my employees will no longer be able to receive their work email.

Apparently Google is dropping support for Gmail accounts being able to fetch mail from outside accounts. At all. And they announced this change less than 60 days ...]]></description>
										<content:encoded><![CDATA[<IMG SRC="https://cdn.jwz.org/images/2017/multipart.png" STYLE="width: 30%; height: auto; max-width: 615px; max-height: 297px; border: 0; box-sizing: border-box; margin: 0 0 1em 1em; float: right; clear: right;" SRCSET="https://cdn.jwz.org/images/2017/multipart.png 615w, https://cdn.jwz.org/images/scaled/360/2017/multipart.png 360w" SIZES="(max-width: 660px) 30vw, 22em" LOADING="lazy" data-size="615x297" WIDTH="615" HEIGHT="297"> I have just learned that, beginning in 3 days, my employees will no longer be able to receive their work email. <P>Apparently Google is <A HREF="https://www.forbes.com/sites/daveywinder/2025/10/03/gmail-says-it-wont-deliver-insecure-email-from-january-2026/">dropping support</A> for Gmail accounts being able to fetch mail from outside accounts. At all. And they <A HREF="https://support.google.com/mail/answer/16604719">announced</A> this change less than 60 days ago. (The announcement was in the basement, stairs, leopard, etc.) <P>What I want to accomplish is simple: <P><ol> <li> When email arrives for <B>employee@dnalounge.com</B>, have it delivered to the inbox of <B>dna_employee@gmail.com</B>. </li><li> When that employee is logged into that gmail account, have them able to send email with <B>employee@dnalounge.com</B> in the From: header. </li></ol> <P>This cannot be accomplished by simply having <b>mail.dnalounge.com</b> forward messages for <B>employee@dnalounge.com</B> to <B>dna_employee@gmail.com</B> because SPF destroyed email forwarding. Specifically: <P><ol> <li> <B>customer@example.com</B> sends mail to <B>employee@dnalounge.com</B>. </li><li> The SPF record of <b>example.com</b> includes <tt>"-all"</tt> (strict) as is now common. </li><li> <b>mail.dnalounge.com</b> forwards that messages to <B>dna_employee@gmail.com</B>. </li><li> Gmail says, <I>"example.com does not permit dnalounge.com to send email on their behalf"</I> and rejects it with "550 SPF hard fail". </li></ol> <P>My current email flow is this: <P><ol> <li> Inbound mail: <ol type="A"> <li> Email for <B>employee@dnalounge.com</B> arrives at my server. </li><li> Message is stored in my server's Dovecot/Maildir. </li><li> <B>dna_employee@gmail.com</B> has <I>"Import emails from my other account (POP3)"</I> selected, and Gmail has a saved plaintext copy of their <b>mail.dnalounge.com</b> email password to accomplish this. </li><li> Gmail polls and downloads their email over POP3 every 30-90 minutes, sometimes longer. <b><I>&larr;&nbsp;This is the thing that is going away.</I></b> </li><li> Gmail runs their aggressive spam filtering on that, and puts some subset of it into their Gmail inbox. <P></li></ol> </li><li> Outbound mail: <ol type="A" start=6> <li> <B>dna_employee@gmail.com</B> has its outgoing From address configured as <B>employee@dnalounge.com</B> (via <I>"Add another email address"</I>). </li><li> When they use Gmail to send mail from their <B>employee@dnalounge.com</B> address, Gmail delivers it to <b>mail.dnalounge.com</b>, authenticating with the saved plaintext copy of the employee's <b>mail.dnalounge.com</b> password. </li><li> <b>mail.dnalounge.com</b> delivers it to <B>customer@example.com</B>, so the SPF record matches <b>mail.dnalounge.com</b> as the origin (and I don't have to have my SPF record say <I>"any spammer on gmail.com is allowed to send mail pretending to be any dnalounge.com address."</I>). </li></ol> </li></ol> <P>The <A HREF="https://www.forbes.com/sites/daveywinder/2025/10/03/gmail-says-it-wont-deliver-insecure-email-from-january-2026/">linked article</A> says "Gmail will continue to support IMAP" which sounds like: "Gmail can still poll your server to download email, you just have to switch from POP to IMAP". That would be fine if it were true, but it is not. Gmail does not and has never supported importing email via IMAP into the Gmail MDA/MTA. It only supports adding an IMAP server as a second account in the MUA, which is not the same thing at all. <P>Now that Google is removing the ability to have Gmail poll my server to download messages, what are my options? <P>Here are some things that people will suggest that are unacceptable: <P><ol> <li> Have the dnalounge.com MX record point to some Google thing and let them take over 100% of my company's email. Fuck no. Also it wouldn't integrate with our internal systems, store, transactional emails, bounce processing, etc. <P></li><li> Have my employees' official business email addresses end in @gmail.com. Obviously no. (Maybe @aol.com though.) <P></li><li> Use "Sender Rewriting Scheme" to have dnalounge.com rewrite <B>customer@example.com</B> to <B><u>customer%example.com</u>@dnalounge.com</B> before forwarding it to <B>dna_employee@gmail.com</B>, which is insane, but also will cause any forwarded spam to be tallied against dnalounge.com and Google will just stop delivering them. At some point, <A HREF="https://support.google.com/mail/answer/175365?hl=en">Google's "best practices for forwarding" document</A> specifically dis-recommended SRS. <P></li><li> Find some other third-party email provider that still offers the POP3-download service that Gmail used to, and tell my staff, "Great news everybody! You have to switch from Gmail to Hotmail now." </li></ol> <P>So the only options that I think I have left are: <P><ol start=5> <li> Self-host IMAP. <ol type="A"> <li> Every employee gets their own IMAP account, hosted on my own server. </li><li> They can add that account to the Gmail mobile app or whatever, as a second IMAP account that is not Gmail. Which is apparently still supported. For now. </li><li> My server is now responsible for storing all of their messages, including all of their spam. It is a vast amount of data. I will have to implement quotas. </li><li> My employees will be wasting a bunch of time trying to find and delete emails with the same giant attachment in each of the 30 messages in the same thread, and if they don't, mail to them will bounce. </li><li> "I can't find that old email any more" is a conversation that we will be having all the time. </li><li> My employees will be receiving <I>way</I> more spam, since Gmail's spam filtering is (presumably?) still more effective than what I can accomplish with some stock set of spamassassin rules. </li></ol> <P></li><li> Walk North until I reach the nearest fjord, board an ice floe, lie down, and wait for my bones to turn to dust. The ocean will sequester my carbon. I hope this email does not find you. </li></ol> <P>Do I have other options? <P>In summary, everything is terrible. <P><A HREF="https://www.jwz.org/blog/2022/08/today-in-google-broke-email/">Previously</A>, <A HREF="https://www.jwz.org/blog/2025/12/today-in-email-hegemony-2/">previously</A>, <A HREF="https://www.jwz.org/blog/2025/03/dmarc-and-spf/">previously</A>, <A HREF="https://www.jwz.org/blog/2025/01/new-gmail-war-crime-spotted-in-the-wild/">previously</A>, <A HREF="https://www.jwz.org/blog/2024/09/ses-or-staring-down-the-dragon/">previously</A>, <A HREF="https://www.jwz.org/blog/2024/02/spamnesty/">previously</A>, <A HREF="https://www.jwz.org/blog/2022/09/the-oligopoly-has-won/">previously</A>.]]></content:encoded>
					
					<wfw:commentRss>https://cdn.jwz.org/blog/2025/12/today-in-google-broke-email-2/feed/</wfw:commentRss>
			<slash:comments>196</slash:comments>
		
		
		<enclosure url="https://cdn.jwz.org/images/2017/multipart.png" width="615" height="297" length="27614" type="image/png"/>
	</item>
		<item>
		<title>Today in Email Hegemony</title>
		<link>https://www.jwz.org/blog/2025/12/today-in-email-hegemony-2/</link>
					<comments>https://www.jwz.org/blog/2025/12/today-in-email-hegemony-2/#comments</comments>
		
		<dc:creator><![CDATA[jwz]]></dc:creator>
		<pubDate>Tue, 09 Dec 2025 03:05:22 +0000</pubDate>
		<category><![CDATA[corporations]]></category>
		<category><![CDATA[dnalounge]]></category>
		<category><![CDATA[mail]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[spam]]></category>
		<category><![CDATA[www]]></category>
		<guid isPermaLink="false">https://jwz.org/b/yk0O</guid>

					<description><![CDATA[Here are the 2025 top ten domains from orders placed on the DNA Lounge store. Remember this the next time someone uses email as an example of a federation success story.

73.0%
gmail.com.

8.5%
yahoo.com.

7.1%
icloud.com.

2.6%
hotmail.com.

0.7%
outlook.com.

0.6% ...
]]></description>
										<content:encoded><![CDATA[<IMG SRC="https://cdn.jwz.org/images/2017/multipart.png" STYLE="width: 35%; height: auto; max-width: 615px; max-height: 297px; border: 0; box-sizing: border-box; margin: 0 0 1em 1em; float: right; clear: right;" SRCSET="https://cdn.jwz.org/images/2017/multipart.png 615w, https://cdn.jwz.org/images/scaled/360/2017/multipart.png 360w" SIZES="(max-width: 660px) 35vw, 26em" LOADING="lazy" data-size="615x297" WIDTH="615" HEIGHT="297"> Here are the 2025 top ten domains from orders placed on the <A HREF="https://www.dnalounge.com/">DNA Lounge store</A>. Remember this the next time someone uses email as an example of a federation success story. <P><table style="margin-left: 4em"> <tr><td align=right>73.0%</td><td>gmail.com</td></tr> <tr><td align=right>8.5%</td><td>yahoo.com</td></tr> <tr><td align=right>7.1%</td><td>icloud.com</td></tr> <tr><td align=right>2.6%</td><td>hotmail.com</td></tr> <tr><td align=right>0.7%</td><td>outlook.com</td></tr> <tr><td align=right>0.6%</td><td>aol.com</td></tr> <tr><td align=right>0.5%</td><td>comcast.net</td></tr> <tr><td align=right>0.5%</td><td>me.com</td></tr> <tr><td align=right>0.4%</td><td>sbcglobal.net</td></tr> <tr><td align=right>0.3%</td><td>live.com</td></tr> <tr><td align=right>5.8%</td><td><i>everything else</i></td></tr></table> <P><A HREF="https://www.jwz.org/blog/2023/09/today-in-email-hegemony/">Previously</A>, <A HREF="https://www.jwz.org/blog/2014/05/google-has-most-of-my-email-because-it-has-all-of-yours/">previously</A>.]]></content:encoded>
					
					<wfw:commentRss>https://cdn.jwz.org/blog/2025/12/today-in-email-hegemony-2/feed/</wfw:commentRss>
			<slash:comments>101</slash:comments>
		
		
		<enclosure url="https://cdn.jwz.org/images/2017/multipart.png" width="615" height="297" length="27614" type="image/png"/>
	</item>
		<item>
		<title>DNA Lounge: Wherein I love watching changeover</title>
		<link>https://www.dnalounge.com/backstage/log/2025/11/18.html</link>
		
		<dc:creator><![CDATA[jwz]]></dc:creator>
		<pubDate>Tue, 18 Nov 2025 21:59:26 +0000</pubDate>
		<category><![CDATA[dnalounge]]></category>
		<guid isPermaLink="false">https://jwz.org/b/ykxl</guid>

					<description><![CDATA[One of my favorite things is watching the crew turn over the room when we have both an early and late show. Our staff have that down, so it just like... competence porn. But it is so many moving parts! I think that if most venues had someone say to them, "Hey, you wanna do a ]]></description>
										<content:encoded><![CDATA[One of my favorite things is watching the crew turn over the room when we have both an early and late show. Our staff have that <I>down</I>, so it just like... competence porn. But it is so many moving parts! I think that if most venues had someone say to them, "Hey, you wanna do a 4 act metal show that ends at 10pm, and then turn the room over in 30 minutes for a headlining dubstep DJ?" they'd say, "LOL no, that's impossible." <P>But we do it pretty regularly. <P>Even more often recently, now that so many bands actually <I>want</I> the show to end by 10pm or earlier. Kids today I tell you, get off of my lawn. <P>Last Saturday we actually had <I>three</I> shows: we had the <A HREF="https://www.dnalounge.com/calendar/2025/11-15a.html">four metal bands in main</A>, with a <A HREF="https://www.dnalounge.com/calendar/2025/11-15.html">dubstep party after</A>, and we also had <A HREF="https://www.dnalounge.com/calendar/2025/11-15d.html">three industrial bands in Above DNA</A> icn an unrelated event. <P>Here's Saturday's timeline: <P><style TYPE="text/css">.changeover_table th { padding-right: 0.5em; }</style> <TABLE BORDER=0 CELLPADDING=2 > <TR> <TH VALIGN=TOP ALIGN=RIGHT NOWRAP>1:30pm:</TH> <TH VALIGN=TOP ALIGN=RIGHT NOWRAP>Main Room:</TH> <TD VALIGN=TOP>Load-in and sound check for the Krisiun show.</TD> </TR> <TR> <TH></TH> <TH></TH> <TD VALIGN=TOP>We stage what gear we can on stage, the rest in the green room or on the balcony.</TD> </TR> <TR> <TH VALIGN=TOP ALIGN=RIGHT NOWRAP>5:30pm:</TH> <TH VALIGN=TOP ALIGN=RIGHT NOWRAP>Above DNA:</TH> <TD VALIGN=TOP>Load-in and sound check for the Suicide Queen show.</TD> </TR> <TR> <TH VALIGN=TOP ALIGN=RIGHT NOWRAP>6:00pm:</TH> <TH VALIGN=TOP ALIGN=RIGHT NOWRAP>Main Room:</TH> <TD VALIGN=TOP>Doors open.</TD> </TR> <TR> <TH VALIGN=TOP ALIGN=RIGHT NOWRAP>6:30pm:</TH> <TH></TH> <TD VALIGN=TOP>Gorgatron, 30 minute set, 15 minute stage changeover.</TD> </TR> <TR> <TH VALIGN=TOP ALIGN=RIGHT NOWRAP>7:15pm:</TH> <TH></TH> <TD VALIGN=TOP>Pyrexia, 30 minute set, 15 minute stage changeover.</TD> </TR> <TR> <TH VALIGN=TOP ALIGN=RIGHT NOWRAP>8:00pm:</TH> <TH></TH> <TD VALIGN=TOP>Abysmal Dawn, 45 minute set, 15 minute stage changeover.</TD> </TR> <TR> <TH></TH> <TH VALIGN=TOP ALIGN=RIGHT NOWRAP>Above DNA:</TH> <TD>Doors open.</TD> </TR> <TR> <TH VALIGN=TOP ALIGN=RIGHT NOWRAP>8:30pm:</TH> <TH VALIGN=TOP ALIGN=RIGHT NOWRAP></TH> <TD VALIGN=TOP>Our Graves, 45 minute set, 15 minute stage changeover.</TD> </TR> <TR> <TH VALIGN=TOP ALIGN=RIGHT NOWRAP>9:00pm:</TH> <TH VALIGN=TOP ALIGN=RIGHT NOWRAP>Main Room:</TH> <TD VALIGN=TOP>Krisiun, 60 minute set.</TD> </TR> <TR> <TH VALIGN=TOP ALIGN=RIGHT NOWRAP>9:30pm:</TH> <TH VALIGN=TOP ALIGN=RIGHT NOWRAP></TH> <TD VALIGN=TOP>Front door box office flips from Krisiun to Sanzu.</TD> </TR> <TR> <TH></TH> <TH VALIGN=TOP ALIGN=RIGHT NOWRAP>Above DNA:</TH> <TD VALIGN=TOP>Vile Augury, 45 minute set, 15 minute stage changeover.</TD> </TR> <TR> <TH VALIGN=TOP ALIGN=RIGHT NOWRAP>10:00pm:</TH> <TH VALIGN=TOP ALIGN=RIGHT NOWRAP>Main Room:</TH> <TD VALIGN=TOP>Krisiun: <I>"Thank you good night! Hail Satan!"</I></TD> </TR> <TR> <TH></TH> <TH></TH> <TD VALIGN=TOP> We strike the gear near the front of the stage (wedges, mic stands, etc.) and immediately begin building a DJ coffin there (table, mixers, CDJs, monitors).</TD> </TR> <TR> <TH></TH> <TH></TH> <TD VALIGN=TOP>Meanwhile, we rope off the right side of the room under the balcony and start staging gear load-out there, hauling cases down from the balcony and green room.</TD> </TR> <TR> <TH VALIGN=TOP ALIGN=RIGHT NOWRAP>10:15pm:</TH> <TH></TH> <TD VALIGN=TOP>DJ coffin is live. DJ Zarkin gets a brief sound check.</TD> </TR> <TR> <TH></TH> <TH></TH> <TD VALIGN=TOP>We gently chase the bands out of the green room because it's Sanzu's green room now.</TD> </TR> <TR> <TH VALIGN=TOP ALIGN=RIGHT NOWRAP>10:20pm:</TH> <TH></TH> <TD VALIGN=TOP>Bands verify that what's downstairs under the balcony is all of their stuff, and we start hauling it out to the busses.</TD> </TR> <TR> <TH VALIGN=TOP ALIGN=RIGHT NOWRAP>10:30pm:</TH> <TH></TH> <TD VALIGN=TOP>Doors are open for Sanzu. Music is playing, customers are coming in.</TD> </TR> <TR> <TH></TH> <TH VALIGN=TOP ALIGN=RIGHT NOWRAP>Above DNA:</TH> <TD VALIGN=TOP> Suicide Queen begins their 60 minute set.</TD> </TR> <TR> <TH VALIGN=TOP ALIGN=RIGHT NOWRAP>11:00pm:</TH> <TH VALIGN=TOP ALIGN=RIGHT NOWRAP>Main Room:</TH> <TD VALIGN=TOP>Krisiun's merch booth in DNA Pizza finally loads out.</TD> </TR> <TR> <TH VALIGN=TOP ALIGN=RIGHT NOWRAP>11:30pm:</TH> <TH VALIGN=TOP ALIGN=RIGHT NOWRAP>Above DNA:</TH> <TD VALIGN=TOP> Suicide Queen ends, and we exit the Above customers into Main. (Always exit through the gift shop! Always!)</TD> </TR> <TR> <TH VALIGN=TOP ALIGN=RIGHT NOWRAP>2:30am:</TH> <TH VALIGN=TOP ALIGN=RIGHT NOWRAP>Main Room:</TH> <TD VALIGN=TOP><I>Wub wub wub wub wub scritch "Thank you good night!"</I></TD> </TR> </TABLE> <P>So that's... a lot. It is such a frenetic mess of activity, and it's <I>all over in 20 minutes</I>, because of <I>planning</I> and <I>checklists</I>. <P>It's like that at Cyberdelia too: striking the <A HREF="https://www.dnalounge.com/calendar/2025/12-06.html">movie screen</A> and ~100 chairs and transforming back into a dance club takes like... 5 minutes. Maybe 10. Blink and you'll miss it. <P>In Summary: Go Team! <P>Come to our <A HREF="https://www.dnalounge.com/calendar/2025/11-21.html">40th Anniversary Party this Friday</A> and tell our crew how awesome they are.]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>DNA Lounge: Wherein our FORTIETH anniversary is next Friday!</title>
		<link>https://www.dnalounge.com/backstage/log/2025/11/10.html</link>
		
		<dc:creator><![CDATA[jwz]]></dc:creator>
		<pubDate>Mon, 10 Nov 2025 21:50:17 +0000</pubDate>
		<category><![CDATA[dnalounge]]></category>
		<guid isPermaLink="false">https://jwz.org/b/ykxM</guid>

					<description><![CDATA[DNA Lounge opened on November 21st, 1985.

Reagan was president, Back to the Future, Rambo and Rocky IV were the highest-grossing films, the number one song that week was We Built This City, and Microsoft Windows 1.0 had been released the day before. It was not a great ...
]]></description>
										<content:encoded><![CDATA[<DIV STYLE="text-align: center; font-size: smaller; width: 35%; max-width: 360px; margin: 0 0 2em 2em; float: right;"><A HREF="https://www.dnalounge.com/gallery/1985/"><IMG SRC="https://cdn.dnalounge.com/gallery/1985/005-thumb.jpg" data-size="360x241" WIDTH=360 HEIGHT=241 STYLE="width: 100%; height: auto; border: 1px solid; margin-bottom: 0.5em"> Check out these photos from opening night!</A></DIV>DNA Lounge opened on <A HREF="https://www.dnalounge.com/gallery/1985/">November 21st, 1985</A>. <P>Reagan was president, <I>Back to the Future</I>, <I>Rambo</I> and <I>Rocky IV</I> were the highest-grossing films, the number one song that week was <A HREF="https://www.youtube.com/watch?v=K1b8AhIsSYQ"><I>We Built This City</I></A>, and Microsoft Windows 1.0 had been released the day before. It was not a great year. <P>I was not here in 1985. My tenure running DNA Lounge began a mere <I>twenty-six</I> years ago, in 1999 (Clinton, <I>Phantom Menace</I>, <I>The Matrix</I>, <A HREF="https://www.youtube.com/watch?v=E1fzJ_AYajA"><I>Steal My Sunshine</I></A>, Napster). <P>The earliest show I can clearly remember seeing at DNA Lounge was the <A HREF="https://www.dnalounge.com/calendar/1985-1999.html#1992"><I>Machines of Loving Grace</I> show in 1992</A>. I know I had seen shows here before that, though. Probably <A HREF="https://www.dnalounge.com/flyers/1985-1999/1990-04-24.html"><I>Thrill Kill Kult</I> in 1990</A>, and I was almost certainly at this <A HREF="https://www.youtube.com/watch?v=zMmLwKKCpnc"><I>Consolidated</I> show in 1991</A>, which is amongst our <A HREF="https://www.youtube.com/playlist?list=PLyALKMPGOR5fKGlhuveCSFI0b2NETSU4L">earliest known video evidence</A> of the club! <P>So what is your earliest memory of DNA Lounge? Share it in the comments. <P>Even you youngsters, I wanna hear from you too. <P>(I asked that question of one of my staff last night, and they said, "Oh that's easy! It was the <A HREF="https://www.dnalounge.com/gallery/2002/06-03/"><I>KMFDM</I> show in 2002</A> and you kicked me out for being under age!") <P><HR> <P><DIV STYLE="text-align: center; width: 25%; max-width: 360px; margin: 0 0 1em 1em; float: right;"><A HREF="https://www.dnalounge.com/calendar/2025/11-21.html"><IMG SRC="https://cdn.dnalounge.com/flyers/2025/11/21-1-thumb.jpg" data-size="360x540" WIDTH=360 HEIGHT=540 STYLE="width: 100%; height: auto; border: 1px solid; margin-bottom: 0.5em" ></A></DIV> <P>Anyway, forty years is a long-assed time, so we're celebrating with a big party: <A HREF="https://www.dnalounge.com/calendar/2025/11-21.html">three rooms of DJs, plus four live bands!</A> <P><ul><li> <b>In the Main Room:</b> the return of <A HREF="https://www.meatsf.com/">Meat vs. Death Guild</A>, our blood-spattered BBQ-themed industrial party that originally ran from <A HREF="https://www.dnalounge.com/gallery/2006/02-16/">2003</A> through <A HREF="https://www.dnalounge.com/gallery/2012/02-09/">2011</A>. <P></li><li><b>In the Lounge:</b> the return of <A HREF="https://www.facebook.com/groups/turbodrive/">Turbo Drive</A>, our Synthwave party that originally ran from <A HREF="https://www.dnalounge.com/gallery/2013/06-14d/">2012</A> through <A HREF="https://www.dnalounge.com/gallery/2022/08-26/">2022</A>. <P></li><li> <b>In the Dazzle Room:</b> <A HREF="http://www.8bitsf.com/">8bitSF</A>, our Chiptunes party that we have been hosting irregularly since <A HREF="https://www.dnalounge.com/gallery/2014/01-16d/">2009</A>. <P></li><li> <b>And in Above DNA:</b> live performances from <A HREF="https://www.halou.com/"><B>Halou</B></A> (who first performed here <A HREF="https://www.dnalounge.com/gallery/2002/02-07/">in 2002</A>!) <A HREF="https://hectorine.bandcamp.com/"><B>Hectorine</B></A>, <A HREF="https://identicalhomes.bandcamp.com/"><B>Identical Homes</B></A>, plus a "Midnight Massacre" performance by <A HREF="https://www.sharkinthewater.net/"><B>Shark in the Water</B></A>. </li></ul> <P>Hope to see you there... <P><hr> <P>Also, photos are up of our <I>epic</I> <A HREF="https://www.dnalounge.com/gallery/2025/10-31/">Twenty-Fifth Halloween party</A>. We had a great showing in the costume contest this year: sometimes I'll feel a bit judgy about who wins, but this year everyone who made it to the finalist round was extremely worthy. Great job, everybody! You got the memo. <P>The zeitgeisty winner was, of course, Luigi (a Mario/Mangione mashup with a Nintendo light gun!) The crowd went absolutely nuts for that one; like twice as loud as for second place. <P><DIV STYLE="text-align: center; width: 100%; max-width: 1962px; margin: 0 auto;"><DIV STYLE="display: flex; gap: 0.5em; margin-bottom: 0.5em;"><DIV STYLE="flex: 0.8929"><A HREF="https://www.dnalounge.com/gallery/2025/10-31/"><IMG SRC="https://cdn.dnalounge.com/gallery/2025/10-31/042-thumb.jpg" data-size="450x360" WIDTH=450 HEIGHT=360 STYLE="width: 100%; height: auto; border: 1px solid;"></A></DIV><DIV STYLE="flex: 1"><A HREF="https://www.dnalounge.com/gallery/2025/10-31/"><IMG SRC="https://cdn.dnalounge.com/gallery/2025/10-31/038-thumb.jpg" data-size="504x360" WIDTH=504 HEIGHT=360 STYLE="width: 100%; height: auto; border: 1px solid;"></A></DIV><DIV STYLE="flex: 1"><A HREF="https://www.dnalounge.com/gallery/2025/10-31/"><IMG SRC="https://cdn.dnalounge.com/gallery/2025/10-31/055-thumb.jpg" data-size="504x360" WIDTH=504 HEIGHT=360 STYLE="width: 100%; height: auto; border: 1px solid;"></A></DIV><DIV STYLE="flex: 1"><A HREF="https://www.dnalounge.com/gallery/2025/10-31/"><IMG SRC="https://cdn.dnalounge.com/gallery/2025/10-31/063-thumb.jpg" data-size="504x360" WIDTH=504 HEIGHT=360 STYLE="width: 100%; height: auto; border: 1px solid;"></A></DIV></DIV></DIV>]]></content:encoded>
					
		
		
		<enclosure url="https://cdn.dnalounge.com/gallery/1985/005-thumb.jpg" width="360" height="241" type="image/jpeg"/>
<enclosure url="https://cdn.dnalounge.com/flyers/2025/11/21-1-thumb.jpg" width="360" height="540" type="image/jpeg"/>
<enclosure url="https://cdn.dnalounge.com/gallery/2025/10-31/042-thumb.jpg" width="450" height="360" type="image/jpeg"/>
<enclosure url="https://cdn.dnalounge.com/gallery/2025/10-31/038-thumb.jpg" width="504" height="360" type="image/jpeg"/>
	</item>
		<item>
		<title>jwzsheet</title>
		<link>https://www.jwz.org/blog/2025/11/jwzsheet/</link>
					<comments>https://www.jwz.org/blog/2025/11/jwzsheet/#comments</comments>
		
		<dc:creator><![CDATA[jwz]]></dc:creator>
		<pubDate>Sat, 08 Nov 2025 06:14:35 +0000</pubDate>
		<category><![CDATA[computers]]></category>
		<category><![CDATA[dnalounge]]></category>
		<category><![CDATA[firstperson]]></category>
		<category><![CDATA[www]]></category>
		<guid isPermaLink="false">https://jwz.org/b/ykxG</guid>

					<description><![CDATA[Here's a thing I wrote last month: jwzsheet.

It is a small and self-contained PHP and JavaScript library for generating HTML tables of spreadsheet-like reports, including arithmetically-computed cell values.

I did this while refactoring some of DNA Lounge's internal ...]]></description>
										<content:encoded><![CDATA[<DIV STYLE="text-align: center; width: 50%; max-width: 18em; margin: 0 0 1em 1em; float: right;"><A HREF="https://www.jwz.org/jwzsheet/" data-size="569x444"><IMG SRC="https://cdn.jwz.org/images/2025/jwzsheet.jpg" WIDTH=569 HEIGHT=444 STYLE="width: 100%; height: auto; border: 1px solid; margin-bottom: 0.5em" SRCSET="https://cdn.jwz.org/images/2025/jwzsheet.jpg 569w, https://cdn.jwz.org/images/scaled/360/2025/jwzsheet.jpg 360w" SIZES="(max-width: 660px) 50vw, 36em" LOADING="lazy" data-size="569x444"></A></DIV>Here's a thing I wrote last month: <A HREF="https://www.jwz.org/jwzsheet/"><b>jwzsheet</b></A>. <P>It is a small and self-contained PHP and JavaScript library for generating HTML tables of spreadsheet-like reports, including arithmetically-computed cell values. <P>I did this while refactoring some of <A HREF="https://www.dnalounge.com/">DNA Lounge</A>'s internal business systems to have simpler code and less duplicated logic. This let me delete so much code! <P>But it took me a while to actually bite the bullet and do it. "I am not going to write a spreadsheet", I kept saying to myself, "that's stupid." <P>"Ok, maybe just a <I>little bit</I> of a spreadsheet. This far no farther." <P>"Ok, maybe just a little bit more." <P>As the Big Black song says, <I>"I tell myself I will not go, even as a drive there."</I> <P> <A HREF="https://www.jwz.org/blog/2024/06/wherein-wrapping-text-remains-the-hardest-problem-in-computer-science/">Previously</A>.]]></content:encoded>
					
					<wfw:commentRss>https://cdn.jwz.org/blog/2025/11/jwzsheet/feed/</wfw:commentRss>
			<slash:comments>22</slash:comments>
		
		
		<enclosure url="https://cdn.jwz.org/images/2025/jwzsheet.jpg" width="569" height="444" length="53971" type="image/jpeg"/>
	</item>
	</channel>
</rss>
