<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[Let's Build Something]]></title><description><![CDATA[The US struggles to build the housing we need. Let's work to fix that and build better cities. I struggled with housing for years, so I decided to get involved in the local government to fix it and use my engineering skills to find solutions. ]]></description><link>https://sub.zacbowling.com</link><image><url>https://substackcdn.com/image/fetch/$s_!sd_p!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d44185a-79e8-4b1c-b3dc-54933e551ee5_864x864.png</url><title>Let&apos;s Build Something</title><link>https://sub.zacbowling.com</link></image><generator>Substack</generator><lastBuildDate>Sun, 26 Apr 2026 12:44:20 GMT</lastBuildDate><atom:link href="https://sub.zacbowling.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Zac Bowling 🥑]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[zacbowling@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[zacbowling@substack.com]]></itunes:email><itunes:name><![CDATA[Zac Bowling 🥑]]></itunes:name></itunes:owner><itunes:author><![CDATA[Zac Bowling 🥑]]></itunes:author><googleplay:owner><![CDATA[zacbowling@substack.com]]></googleplay:owner><googleplay:email><![CDATA[zacbowling@substack.com]]></googleplay:email><googleplay:author><![CDATA[Zac Bowling 🥑]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[I Built an AI Terminator to Declare War on Email Marketing Spam]]></title><description><![CDATA[How I vibe-coded an AI terminator for my inbox using Gemini, Cursor, and a headless browser that hunts down dark patterns.]]></description><link>https://sub.zacbowling.com/p/i-built-an-ai-terminator-to-declare</link><guid isPermaLink="false">https://sub.zacbowling.com/p/i-built-an-ai-terminator-to-declare</guid><dc:creator><![CDATA[Zac Bowling 🥑]]></dc:creator><pubDate>Wed, 03 Dec 2025 07:33:16 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!tj1W!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff21ebbc2-9d1f-4eed-8a68-0cbfbd7eae6d_580x313.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I have &#8220;Inbox Zero&#8221; aspirations but an &#8220;Inbox Infinity&#8221; reality. My Gmail account has been around since the early Gmail beta, for nearly 21 years and some 455,000 still unread emails</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!tj1W!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff21ebbc2-9d1f-4eed-8a68-0cbfbd7eae6d_580x313.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!tj1W!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff21ebbc2-9d1f-4eed-8a68-0cbfbd7eae6d_580x313.png 424w, https://substackcdn.com/image/fetch/$s_!tj1W!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff21ebbc2-9d1f-4eed-8a68-0cbfbd7eae6d_580x313.png 848w, https://substackcdn.com/image/fetch/$s_!tj1W!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff21ebbc2-9d1f-4eed-8a68-0cbfbd7eae6d_580x313.png 1272w, https://substackcdn.com/image/fetch/$s_!tj1W!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff21ebbc2-9d1f-4eed-8a68-0cbfbd7eae6d_580x313.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!tj1W!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff21ebbc2-9d1f-4eed-8a68-0cbfbd7eae6d_580x313.png" width="580" height="313" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f21ebbc2-9d1f-4eed-8a68-0cbfbd7eae6d_580x313.png&quot;,&quot;srcNoWatermark&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/79042428-622a-4542-bcc3-e5012bf48c46_580x313.png&quot;,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:313,&quot;width&quot;:580,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:16606,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://sub.zacbowling.com/i/180579117?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79042428-622a-4542-bcc3-e5012bf48c46_580x313.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!tj1W!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff21ebbc2-9d1f-4eed-8a68-0cbfbd7eae6d_580x313.png 424w, https://substackcdn.com/image/fetch/$s_!tj1W!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff21ebbc2-9d1f-4eed-8a68-0cbfbd7eae6d_580x313.png 848w, https://substackcdn.com/image/fetch/$s_!tj1W!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff21ebbc2-9d1f-4eed-8a68-0cbfbd7eae6d_580x313.png 1272w, https://substackcdn.com/image/fetch/$s_!tj1W!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff21ebbc2-9d1f-4eed-8a68-0cbfbd7eae6d_580x313.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Somewhere between signing up for a 10% discount on socks in 2014 and handing my email over to every SaaS tool I&#8217;ve ever trialed, my Gmail became a wasteland. I was drowning in &#8220;newsletter&#8221; updates, &#8220;last chance&#8221; sales, and those sneaky emails that look like personal correspondence but are actually just trying to sell me enterprise software.</p><p>The worst part? The unsubscribe process. It&#8217;s a minefield of dark patterns. You click a tiny link buried in 6pt font at the bottom of an email, and it takes you to a page that requires you to log in (I don&#8217;t remember my password!), or asks you to uncheck 50 boxes, or just gives you a 404 error.</p><p>I was sick of it. So, I decided to fight fire with fire. I built a robot to fight the marketing robots.</p><h2><strong>Meet gmail-ai-unsub</strong></h2><p>I spent a day &#8220;vibe coding&#8221; with Cursor (an AI-powered code editor), Claude, and Google&#8217;s new Gemini experimental models. The result is a CLI tool that ruthlessly cleans your inbox using the latest in AI and browser automation. It&#8217;s written in Python, uses LangChain, a dozen models, browser automation, and the Gmail API.</p><p>It&#8217;s open source, it&#8217;s effective, and it&#8217;s completely overkill. And I love it.</p><p><a href="https://github.com/zbowling/gmail-ai-unsub">Check it out on GitHub</a></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://sub.zacbowling.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://sub.zacbowling.com/subscribe?"><span>Subscribe now</span></a></p><h2><strong>How It Works: A Two-Stage Rocket</strong></h2><p>I didn&#8217;t want an AI just blindly deleting emails. I wanted control. So I designed this as a two-stage system that uses Gmail labels to manage state.</p><h3><strong>Stage 0: Setup</strong></h3><p>Install (if you don&#8217;t get it from source, which at this stage, might be wise)</p><pre><code># pipx
pipx install gmail-ai-unsub

# uv (I recomend installing UV)
uvx install gmail-ai-unsub</code></pre><blockquote><p><strong>Be sure to read the <a href="https://github.com/zbowling/gmail-ai-unsub/blob/main/README.md#gmail-api-setup-required">README.md</a> file for instructions on setting up an app with Google in the Google Cloud Console, granting it Gmail permissions, and properly setting up environment variables. Until I get this app reviewed by Google you have to do this yourself for now.</strong></p></blockquote><p>Now run setup:</p><pre><code>gmail-unsub setup
</code></pre><p>This will take you through a bit of a wizard.</p><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;9f521e77-c943-48b9-94e0-80df36e33b63&quot;,&quot;duration&quot;:null}"></div><h3><strong>Stage 1: The Scan</strong></h3><p>First, the tool scans your inbox. It grabs the text of your emails and feeds them to a Large Language Model (LLM). You can use Google&#8217;s Gemini, Anthropic&#8217;s Claude, or OpenAI.</p><p>I&#8217;m using Google&#8217;s new Gemini models because they are incredibly fast and cheap for this. The AI analyzes the email to decide: <em>&#8220;Is this marketing?&#8221;</em></p><p>If it is, it applies a label: <strong>Unsubscribe</strong>.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!V4UA!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15de7a27-c791-4fd2-964c-a73d235d62ec_1600x1200.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!V4UA!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15de7a27-c791-4fd2-964c-a73d235d62ec_1600x1200.png 424w, https://substackcdn.com/image/fetch/$s_!V4UA!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15de7a27-c791-4fd2-964c-a73d235d62ec_1600x1200.png 848w, https://substackcdn.com/image/fetch/$s_!V4UA!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15de7a27-c791-4fd2-964c-a73d235d62ec_1600x1200.png 1272w, https://substackcdn.com/image/fetch/$s_!V4UA!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15de7a27-c791-4fd2-964c-a73d235d62ec_1600x1200.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!V4UA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15de7a27-c791-4fd2-964c-a73d235d62ec_1600x1200.png" width="1456" height="1092" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/15de7a27-c791-4fd2-964c-a73d235d62ec_1600x1200.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1092,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:269974,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://sub.zacbowling.com/i/180579117?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15de7a27-c791-4fd2-964c-a73d235d62ec_1600x1200.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!V4UA!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15de7a27-c791-4fd2-964c-a73d235d62ec_1600x1200.png 424w, https://substackcdn.com/image/fetch/$s_!V4UA!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15de7a27-c791-4fd2-964c-a73d235d62ec_1600x1200.png 848w, https://substackcdn.com/image/fetch/$s_!V4UA!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15de7a27-c791-4fd2-964c-a73d235d62ec_1600x1200.png 1272w, https://substackcdn.com/image/fetch/$s_!V4UA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15de7a27-c791-4fd2-964c-a73d235d62ec_1600x1200.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>It even gives you a reason <em>why</em> it flagged it. &#8220;Promotional content,&#8221; &#8220;Discount offer,&#8221; etc. It&#8217;s surprisingly good at distinguishing between a newsletter I actually read and &#8220;CYBER MONDAY EXTENDED AGAIN.&#8221;</p><p>Crucially, this gives you a chance to review. You can hop into Gmail, check the &#8220;Unsubscribe&#8221; label, and if it caught something you want to keep, just remove the label. You are in control.</p><h3><strong>Stage 2: The Terminator</strong></h3><p>This is where the magic happens. You run the unsubscribe command.</p><pre><code>&gt; gmail-ai-unsub unsubscribe</code></pre><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!2kPx!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3284bbf-54d3-4d29-ae44-80164b6e2e2e_1614x592.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!2kPx!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3284bbf-54d3-4d29-ae44-80164b6e2e2e_1614x592.png 424w, https://substackcdn.com/image/fetch/$s_!2kPx!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3284bbf-54d3-4d29-ae44-80164b6e2e2e_1614x592.png 848w, https://substackcdn.com/image/fetch/$s_!2kPx!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3284bbf-54d3-4d29-ae44-80164b6e2e2e_1614x592.png 1272w, https://substackcdn.com/image/fetch/$s_!2kPx!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3284bbf-54d3-4d29-ae44-80164b6e2e2e_1614x592.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!2kPx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3284bbf-54d3-4d29-ae44-80164b6e2e2e_1614x592.png" width="1456" height="534" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d3284bbf-54d3-4d29-ae44-80164b6e2e2e_1614x592.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:534,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:197302,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://sub.zacbowling.com/i/180579117?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3284bbf-54d3-4d29-ae44-80164b6e2e2e_1614x592.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!2kPx!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3284bbf-54d3-4d29-ae44-80164b6e2e2e_1614x592.png 424w, https://substackcdn.com/image/fetch/$s_!2kPx!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3284bbf-54d3-4d29-ae44-80164b6e2e2e_1614x592.png 848w, https://substackcdn.com/image/fetch/$s_!2kPx!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3284bbf-54d3-4d29-ae44-80164b6e2e2e_1614x592.png 1272w, https://substackcdn.com/image/fetch/$s_!2kPx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3284bbf-54d3-4d29-ae44-80164b6e2e2e_1614x592.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The tool looks at everything in that <strong>Unsubscribe</strong> label and goes to work on multiple fronts:</p><ol><li><p><strong>One-Click Unsub:</strong> If the email supports the modern standard (RFC 8058), it just sends the command. Done.</p></li></ol><ol><li><p><strong>The &#8220;Mailto&#8221; method:</strong> It will craft and send an unsubscribe email for you if that&#8217;s what the headers require.</p></li></ol><ol><li><p><strong>Browser Automation:</strong> This is the cool part. If it finds a link, it spins up a headless browser using browser-use. It literally navigates to the page, uses computer vision to &#8220;see&#8221; the page, finds the unsubscribe button (even if it&#8217;s hidden or confusing), clicks it, handles the &#8220;Are you sure?&#8221; prompts, and verifies success.</p></li></ol><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;3333ed33-b5c5-44f6-8a4c-b753b0f1e56c&quot;,&quot;duration&quot;:null}"></div><p>If it succeeds, it moves the email to an <strong>Unsubscribed</strong> label so you have a record. If it fails (because some sites are truly broken), it marks it <strong>Unsubscribe-Failed</strong> so you can deal with it later.</p><h2><strong>It&#8217;s Not For Everyone (Yet)</strong></h2><p>I want to be honest: this is currently a tool for developers or power users. There is no shiny &#8220;Install&#8221; button.</p><p>To get this running, you need to:</p><ol><li><p><strong>Set up a Google Cloud Project:</strong> You need to create OAuth credentials to let the script access your Gmail.</p></li></ol><ol><li><p><strong>Get API Keys:</strong> You need an API key for Gemini, Claude, or OpenAI.</p></li></ol><ol><li><p><strong>Install Python:</strong> You need to know your way around a terminal slightly.</p></li></ol><p>It&#8217;s not &#8220;super friendly&#8221; for basic folks yet. It requires some setup. But once it&#8217;s running? It saves <em>hours</em> of clicking and scrolling.</p><h1><strong>Why I Built It</strong></h1><p>I built this primarily because I needed it. But I also wanted to test the limits of modern AI coding workflows. Using Cursor and the latest models, I was able to scaffold, refine, and polish this tool in roughly 24 hours. It felt less like writing code line-by-line and more like directing an orchestra of intelligent agents.</p><p>It handles:</p><ul><li><p><strong>State Tracking:</strong> It remembers what it&#8217;s tried, so it doesn&#8217;t loop forever.</p></li></ul><ul><li><p><strong>Dark Patterns:</strong> The browser agent is surprisingly good at navigating those &#8220;I want to stay subscribed&#8221; vs &#8220;No, really, let me go&#8221; trick questions.</p></li></ul><ul><li><p><strong>Rate Limits:</strong> It respects API quotas so you don&#8217;t get banned.</p></li></ul><h1><strong>Give It a Shot</strong></h1><p>If you are technical and tired of spam, give it a spin.</p><ul><li><p><strong>Repo:</strong> <a href="https://github.com/zbowling/gmail-ai-unsub">https://github.com/zbowling/gmail-ai-unsub</a></p></li></ul><ul><li><p><strong>License:</strong> MIT (Open source, do what you want with it)</p></li></ul><p>I&#8217;m open to contributors! If you want to help make the installation easier or improve the browser agent, send a PR.</p><p>And if this tool saves your sanity, you can <a href="https://buymeacoffee.com/zbowling">**buy me a coffee**</a> (or sponsor me on GitHub).</p><p>Now, if you&#8217;ll excuse me, I have a few thousand more emails to nuke. </p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://sub.zacbowling.com/p/i-built-an-ai-terminator-to-declare?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://sub.zacbowling.com/p/i-built-an-ai-terminator-to-declare?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[I Went to South Korea and Accidentally Ended Up at APEC with Trump]]></title><description><![CDATA[I finally took a vacation after working at a burnout-inducing pace for a year and chose Seoul because I love cities that actually work.]]></description><link>https://sub.zacbowling.com/p/i-went-to-south-korea-and-accidentally</link><guid isPermaLink="false">https://sub.zacbowling.com/p/i-went-to-south-korea-and-accidentally</guid><dc:creator><![CDATA[Zac Bowling 🥑]]></dc:creator><pubDate>Sat, 29 Nov 2025 15:41:19 GMT</pubDate><enclosure url="https://images.unsplash.com/photo-1525762867061-21c9fb70b15a?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwxM3x8a29yZWF8ZW58MHx8fHwxNzY0NTM1MjUxfDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://images.unsplash.com/photo-1525762867061-21c9fb70b15a?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwxM3x8a29yZWF8ZW58MHx8fHwxNzY0NTM1MjUxfDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://images.unsplash.com/photo-1525762867061-21c9fb70b15a?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwxM3x8a29yZWF8ZW58MHx8fHwxNzY0NTM1MjUxfDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 424w, https://images.unsplash.com/photo-1525762867061-21c9fb70b15a?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwxM3x8a29yZWF8ZW58MHx8fHwxNzY0NTM1MjUxfDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 848w, https://images.unsplash.com/photo-1525762867061-21c9fb70b15a?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwxM3x8a29yZWF8ZW58MHx8fHwxNzY0NTM1MjUxfDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 1272w, https://images.unsplash.com/photo-1525762867061-21c9fb70b15a?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwxM3x8a29yZWF8ZW58MHx8fHwxNzY0NTM1MjUxfDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 1456w" sizes="100vw"><img src="https://images.unsplash.com/photo-1525762867061-21c9fb70b15a?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwxM3x8a29yZWF8ZW58MHx8fHwxNzY0NTM1MjUxfDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080" width="6000" height="4000" data-attrs="{&quot;src&quot;:&quot;https://images.unsplash.com/photo-1525762867061-21c9fb70b15a?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwxM3x8a29yZWF8ZW58MHx8fHwxNzY0NTM1MjUxfDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:4000,&quot;width&quot;:6000,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;people walking between tall buildings&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="people walking between tall buildings" title="people walking between tall buildings" srcset="https://images.unsplash.com/photo-1525762867061-21c9fb70b15a?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwxM3x8a29yZWF8ZW58MHx8fHwxNzY0NTM1MjUxfDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 424w, https://images.unsplash.com/photo-1525762867061-21c9fb70b15a?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwxM3x8a29yZWF8ZW58MHx8fHwxNzY0NTM1MjUxfDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 848w, https://images.unsplash.com/photo-1525762867061-21c9fb70b15a?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwxM3x8a29yZWF8ZW58MHx8fHwxNzY0NTM1MjUxfDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 1272w, https://images.unsplash.com/photo-1525762867061-21c9fb70b15a?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwxM3x8a29yZWF8ZW58MHx8fHwxNzY0NTM1MjUxfDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Photo by <a href="https://unsplash.com/@shawnanggg">Shawn</a> on <a href="https://unsplash.com">Unsplash</a></figcaption></figure></div><p>I finally took a vacation after working at a burnout-inducing pace for a year and chose Seoul because I love cities that actually work. South Korea offers a masterclass in building density, transit, and public spaces that America still struggles to understand. I wanted a break, street food, and a chance to ignore the words &#8220;Planning Board packet&#8221; or &#8220;objectives and key results&#8221; for at least a week.</p><p>Instead, my trip was hijacked by APEC, a surprise visit from Trump, and anti-Trump protests popping up like random side quests. So, I turned the whole experience into an urbanism field trip, a political anthropology lesson, and a shopping spree rolled into one.</p><h1>Seoul Hits You with Competence Immediately</h1><p>Within an hour of arriving, I was already frustrated that America doesn&#8217;t have what Seoul offers. The city&#8217;s underground pedestrian tunnels are better than our above-ground sidewalks. While still putting cars at grade and some priority, they create nice spaces for people in a world that is human-sized and walkable. At first glance, they look like fancy subway entrances. Then you realize they&#8217;re entire networks&#8212;shops, food stalls, convenience stores, and escalators&#8212;all connected underneath massive arterial roads.</p><p>What amazed me is that these tunnels double as civil defense shelters. North Korea is close enough that air raid drills are a regular part of urban life, so Seoul built beautiful, life-saving infrastructure that is also functional. Imagine that: infrastructure with a dual purpose.</p><p>Meanwhile, back home, we can&#8217;t even stripe a protected bike lane without someone complaining about the &#8220;tyranny of paint,&#8221; or proclaiming that only a small percentage of people bike, so are we wasting our time helping build bike infrastructure (an endless argument every week that if these folks actually travel, they would see the benefits immediately but I digress).</p><h2>The High-Speed Train Was Therapy</h2><p>We took the KTX from Seoul to Gyeongju, which pulled me more into the APEC circus. High-speed rail in Korea is quiet, clean, seamless, and affordable&#8212;truly a stark contrast to Amtrak. You simply get on, sit down, and two hours later, you&#8217;ve crossed half the country. No drama, no freight trains delaying your schedule, and no 19th-century vibes. Even with high-speed internet the whole time.</p><p>America pretends we can&#8217;t achieve this, but Korea just did it. This KTX line was half that of the California High Speed rail being built, but it goes through wild terrain. I know if we can get things organized, we can have this at home.</p><p>And yes, I captured a lot of footage. I&#8217;m definitely turning this into a video because you wouldn&#8217;t believe how pleasant public transportation can be in a place that hasn&#8217;t decided &#8220;cars forever&#8221; is a constitutional amendment.</p><h2>APEC Turned My &#8220;Relaxing Trip&#8221; into a Soft Launch of WWIII</h2><p>I didn&#8217;t realize Trump would be appearing at the APEC meeting until police lines, metal barricades, and protests surrounded me. My hotel in Seoul was across the street from the Chinese embassy, which was already surrounded by what felt like half the national police force. Add an international summit and the chaos magnet that is Donald Trump, and you suddenly feel like you&#8217;re in a mashup of *The West Wing* and *Snowpiercer*.</p><p>Anti-Trump protests erupted everywhere with handmade signs, chants, organized groups, and random people shouting into megaphones. I captured plenty of that, too. You can feel that Koreans take democratic norms seriously; they don&#8217;t shrug off authoritarian vibes the way too many Americans do. They&#8217;ve lived through a dictatorship and fought to overcome it. Not sure if the leadership listens much to the Korean Democratic/Progressive factions based on their gifts to Trump, but the people were against using their wealth to prop up the US. The ICE raid of the Korean car manufacturing plant in the US did not do well here, putting Korean citizens into chain-gang style cuffs. It feels like we travel, I have to constantly apologize for our embarrassing leadership to folks I meet around the world, and the conversation steers uncomfortably towards these subjects.</p><p>Honestly, witnessing a crowd of people loudly reject authoritarian politics in another country was energizing. It served as a powerful reminder of what democratic engagement can look like when people truly care.</p><h1>American Politics Feels Stale Next to Cities That Actually Work</h1><p>Walking around Seoul, it&#8217;s impossible not to notice how much better their planning is. There are dense neighborhoods, mixed-use developments, and a transit system that just works. Housing is built where people want to live, and entire districts have sprung up in the last decade, already looking more functional than projects we&#8217;ve been &#8220;studying&#8221; for 30 years.</p><p>If you ever want motivation to keep fighting for YIMBY (Yes In My Backyard) policies in the U.S., travel to a place that builds housing as if it&#8217;s a normal human activity. Korea had to rebuild a war-torn country from scratch seventy years ago, and they still outpace us.</p><p>That&#8217;s why I can&#8217;t take American anti-density complaints seriously. Travel. See what a city can be when it&#8217;s not held hostage by parking minimums and fear.</p><h1>Consumer Brain Turned On</h1><p>Everything was cheaper in Korea. My wife bought half the country&#8217;s skincare products, while I purchased a drone, a gimbal, and other gadgets I didn&#8217;t really need but convinced myself were &#8220;for content.&#8221; As foreigners, we don&#8217;t pay the full sales taxes either. While Trump did away with de minimis exemptions on imports, personal exemptions when traveling back still are there to avoid import duties, so we made heavy use of that, which honestly, the savings covered a portion of the travel costs. Especially with Trump banning products like the new DJI drones so I bought all the stuff illegal now to sell under his regime</p><p>We also tried banana milk coffee, loved it, and immediately hunted down banana milk back home at World Market. Definitely a trend worth trying. However, the banana milk here doesn&#8217;t hit the same.</p><h2>A Meal Worth Flying Back For</h2><p>We splurged on dinner at Jungsik in Seoul, easily one of the best meals of my life. I&#8217;ve dined at plenty of Michelin-starred restaurants that cost twice as much and provided half the experience. Korean fine dining is truly exceptional. If you visit Seoul and skip this place, that&#8217;s on you.</p><h2>Tourist Trap Tip: Skip the Tower</h2><p>Don&#8217;t waste your time at N Seoul Tower unless you enjoy waiting in lines reminiscent of theme-park torture. There are better views, better experiences, and more valuable ways to spend your time in the city.</p><h1>The Takeaway: Korea is the Future We Keep Pretending We Can&#8217;t Have</h1><p>This trip wasn&#8217;t meant to be a political pilgrimage, but it turned into one. Observing a functioning city thrive while American infrastructure lags behind was eye-opening.</p><p>Cities are choices. Housing production is a choice. Transit investment is a choice. Democracy is a choice.</p><p>Korea keeps moving forward. America keeps choosing nostalgia and excuses.</p><p>I came home more convinced than ever that we can build something better here. We have to stop pretending it&#8217;s impossible. Now, if you'll excuse me, I need to book another ticket back.</p>]]></content:encoded></item><item><title><![CDATA[Unlimited Density" is misleading in the Alameda Housing Element]]></title><description><![CDATA[The NIMBYs made the point to keep calling this one out over and over, that the housing element changes zoning to allow unlimited units with unlimited densities allowed in certain areas. NIMBY is gonna]]></description><link>https://sub.zacbowling.com/p/unlimited-density-is-misleading-in</link><guid isPermaLink="false">https://sub.zacbowling.com/p/unlimited-density-is-misleading-in</guid><dc:creator><![CDATA[Zac Bowling 🥑]]></dc:creator><pubDate>Tue, 01 Apr 2025 04:12:57 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Yw05!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a50aec7-771e-4b08-9ef9-87846c04bb4f_1600x900.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div><hr></div><p>I regret I didn&#8217;t ask that the city use the term &#8220;form-based limits&#8221; instead of &#8220;unlimited densities&#8221; in our <a href="https://www.alameda2040.org/housing">new Housing Element</a>. I honestly didn&#8217;t think it was a detail that mattered much. In hindsight, it would&#8217;ve stopped the NIMBYs from misleading folks and saying &#8220;unlimited units&#8221; were being allowed in Alameda.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Yw05!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a50aec7-771e-4b08-9ef9-87846c04bb4f_1600x900.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Yw05!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a50aec7-771e-4b08-9ef9-87846c04bb4f_1600x900.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Yw05!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a50aec7-771e-4b08-9ef9-87846c04bb4f_1600x900.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Yw05!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a50aec7-771e-4b08-9ef9-87846c04bb4f_1600x900.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Yw05!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a50aec7-771e-4b08-9ef9-87846c04bb4f_1600x900.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Yw05!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a50aec7-771e-4b08-9ef9-87846c04bb4f_1600x900.jpeg" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0a50aec7-771e-4b08-9ef9-87846c04bb4f_1600x900.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Yw05!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a50aec7-771e-4b08-9ef9-87846c04bb4f_1600x900.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Yw05!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a50aec7-771e-4b08-9ef9-87846c04bb4f_1600x900.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Yw05!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a50aec7-771e-4b08-9ef9-87846c04bb4f_1600x900.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Yw05!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a50aec7-771e-4b08-9ef9-87846c04bb4f_1600x900.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">The so-called &#8220;Unlimited Density&#8221;</figcaption></figure></div><p>Anywhere we removed any explicit DU/ac limits, it got referred to as &#8220;unlimited density&#8221; in the Housing Element, which, in hindsight, is a little misleading. That &#8220;unlimited density&#8221; is limited by the form limits that put practical constraints that cap density instead of listing an explicit DU/ac in the code.</p><p>We still have height limits (at least 40 feet for transit overlay), setbacks, lot coverage rules, and other design criteria. There are also practical limits to the minimum size of a unit of housing that can be up to code and usable.</p><p>It&#8217;s hard to go much smaller than 500 square sqft and still meet code (around the size of a J-ADU). A typical one-bedroom is closer to 750 sqft. You can start working out the math of what is possible to figure out the effective maximum DU/ac.</p><div><hr></div><p>Let&#8217;s do a thought experiment with R-1 zoned areas but with a transit overlay (with so-called &#8220;unlimited density&#8221;) and calculate the likely number of units and DU/ac we will have on those lots:</p><ul><li><p>An average Alameda R-1 lot is around 5000 sqft.</p></li><li><p>We have a 60% lot coverage maximum limit</p></li><li><p>That leaves you 3,000 square feet.</p></li><li><p>Subtract some for exterior features (usable interior square footage isn&#8217;t equal to exterior lot coverage usage). That&#8217;s maybe a 2500 sqft usable base floor.</p></li><li><p>The transit overlay gives you a 40-foot height cap anywhere in Alameda, around 3 stories. 2500sqft x 3 stories is 7500sqft usable floor space.</p></li><li><p>Ball parking here, but let's say you need 2000 sqft for stairs/common areas, leaving about 5500 sqft for usable unit space.</p></li></ul><p>So let's say you want to build some small one-bedroom apartments at 750 sqft each. With 5500 sqft. of usable space at 750 sqft. per apartment, you can build about 7 apartments. That&#8217;s 63 DU/ac and would end up looking something like the one that we already have in Alameda.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!WH3P!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e72aa69-85d6-4afb-9186-1f0fb1eeef87_593x467.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!WH3P!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e72aa69-85d6-4afb-9186-1f0fb1eeef87_593x467.png 424w, https://substackcdn.com/image/fetch/$s_!WH3P!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e72aa69-85d6-4afb-9186-1f0fb1eeef87_593x467.png 848w, https://substackcdn.com/image/fetch/$s_!WH3P!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e72aa69-85d6-4afb-9186-1f0fb1eeef87_593x467.png 1272w, https://substackcdn.com/image/fetch/$s_!WH3P!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e72aa69-85d6-4afb-9186-1f0fb1eeef87_593x467.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!WH3P!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e72aa69-85d6-4afb-9186-1f0fb1eeef87_593x467.png" width="593" height="467" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0e72aa69-85d6-4afb-9186-1f0fb1eeef87_593x467.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:467,&quot;width&quot;:593,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!WH3P!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e72aa69-85d6-4afb-9186-1f0fb1eeef87_593x467.png 424w, https://substackcdn.com/image/fetch/$s_!WH3P!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e72aa69-85d6-4afb-9186-1f0fb1eeef87_593x467.png 848w, https://substackcdn.com/image/fetch/$s_!WH3P!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e72aa69-85d6-4afb-9186-1f0fb1eeef87_593x467.png 1272w, https://substackcdn.com/image/fetch/$s_!WH3P!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e72aa69-85d6-4afb-9186-1f0fb1eeef87_593x467.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I think I can safely say you won&#8217;t see anything bigger than that being built where there are allowed &#8220;unlimited densities&#8221; in R-1 to R-3.</p>]]></content:encoded></item><item><title><![CDATA[Exposing the Phoenix Project: How San Francisco's Anti-Housing Crusaders Brought Their Nonsense to Oakland]]></title><description><![CDATA[The Phoenix Project brands itself as a watchdog group, but its actions tell a much different story. From ethical red flags to hyper-editorialized smears against housing advocates.]]></description><link>https://sub.zacbowling.com/p/exposing-the-phoenix-project-how</link><guid isPermaLink="false">https://sub.zacbowling.com/p/exposing-the-phoenix-project-how</guid><dc:creator><![CDATA[Zac Bowling 🥑]]></dc:creator><pubDate>Mon, 31 Mar 2025 06:10:54 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/58fcac6f-0caf-4b4e-bf9b-9d5fb29527f9_3836x5754.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><a href="https://sub.zacbowling.com/p/the-conspiracy-chart-to-end-all-conspiracy">As a follow-up to my post yesterday</a>, I started to dig into who exactly is bringing the SF political drama to the East Bay. Who is this Phoenix Project that created this one-sided anti-housing &#8220;astroturfing&#8221; infographic? </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!uvrQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59839dd4-efc6-4773-8ff0-7bd4be05fd43_960x741.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!uvrQ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59839dd4-efc6-4773-8ff0-7bd4be05fd43_960x741.jpeg 424w, https://substackcdn.com/image/fetch/$s_!uvrQ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59839dd4-efc6-4773-8ff0-7bd4be05fd43_960x741.jpeg 848w, https://substackcdn.com/image/fetch/$s_!uvrQ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59839dd4-efc6-4773-8ff0-7bd4be05fd43_960x741.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!uvrQ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59839dd4-efc6-4773-8ff0-7bd4be05fd43_960x741.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!uvrQ!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59839dd4-efc6-4773-8ff0-7bd4be05fd43_960x741.jpeg" width="354" height="273.24375" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/59839dd4-efc6-4773-8ff0-7bd4be05fd43_960x741.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:741,&quot;width&quot;:960,&quot;resizeWidth&quot;:354,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="https://substackcdn.com/image/fetch/$s_!uvrQ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59839dd4-efc6-4773-8ff0-7bd4be05fd43_960x741.jpeg 424w, https://substackcdn.com/image/fetch/$s_!uvrQ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59839dd4-efc6-4773-8ff0-7bd4be05fd43_960x741.jpeg 848w, https://substackcdn.com/image/fetch/$s_!uvrQ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59839dd4-efc6-4773-8ff0-7bd4be05fd43_960x741.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!uvrQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59839dd4-efc6-4773-8ff0-7bd4be05fd43_960x741.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>This Phoenix Project meticulously details funds flowing to groups opposing candidates they seemingly favor, like Carroll Fife and Nikki Fortunato Bas. Still, it entirely overlooks the substantial financial support that helped elect these candidates in their selective &#8220;astroturfing&#8221; map. </p><div><hr></div><h2>Union Money and Mega-Donors: The Data They Missed</h2><p>Take Carroll Fife as an example (I&#8217;m not at all personally opposed to Carrol Fife but this is illustrative). Although Phoenix Project paints her as a victim of shadowy &#8220;dark money,&#8221; the reality is that Fife&#8217;s campaign was heavily bolstered by union-sponsored PACs. </p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!9ipB!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f5fa928-be43-4f97-b49c-1ba58520ce1b_978x196.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!9ipB!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f5fa928-be43-4f97-b49c-1ba58520ce1b_978x196.png 424w, https://substackcdn.com/image/fetch/$s_!9ipB!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f5fa928-be43-4f97-b49c-1ba58520ce1b_978x196.png 848w, https://substackcdn.com/image/fetch/$s_!9ipB!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f5fa928-be43-4f97-b49c-1ba58520ce1b_978x196.png 1272w, https://substackcdn.com/image/fetch/$s_!9ipB!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f5fa928-be43-4f97-b49c-1ba58520ce1b_978x196.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!9ipB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f5fa928-be43-4f97-b49c-1ba58520ce1b_978x196.png" width="614" height="123.05112474437628" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4f5fa928-be43-4f97-b49c-1ba58520ce1b_978x196.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:196,&quot;width&quot;:978,&quot;resizeWidth&quot;:614,&quot;bytes&quot;:73122,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://sub.zacbowling.com/i/160212287?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f5fa928-be43-4f97-b49c-1ba58520ce1b_978x196.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!9ipB!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f5fa928-be43-4f97-b49c-1ba58520ce1b_978x196.png 424w, https://substackcdn.com/image/fetch/$s_!9ipB!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f5fa928-be43-4f97-b49c-1ba58520ce1b_978x196.png 848w, https://substackcdn.com/image/fetch/$s_!9ipB!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f5fa928-be43-4f97-b49c-1ba58520ce1b_978x196.png 1272w, https://substackcdn.com/image/fetch/$s_!9ipB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f5fa928-be43-4f97-b49c-1ba58520ce1b_978x196.png 1456w" sizes="100vw"></picture><div></div></div></a><figcaption class="image-caption">One of the independent expenditure PACs &#8220;Fix Our City Oakland&#8221; spending so called &#8220;Dark Money&#8221; selectively missed by Phoenix Project</figcaption></figure></div><p>Data from official FPPC filings show that nearly <strong>$475,000</strong> flowed from local labor organizations into a committee created specifically to support Fife&#8217;s re-election. (<a href="https://oaklandside.org/2024/10/29/who-are-oaklands-unions-backing-in-this-election/#:~:text=Oaklandside%20oaklandside,for%20City%20Council%20and">The Oaklandside</a>) These aren&#8217;t nefarious, secret contributions&#8212;they&#8217;re openly reported and sourced from powerful unions that believe more affordable housing and tenant protections are essential.</p><p>Similarly, for Nikki Fortunato Bas (another candidate I have no issue with), her campaign raised over <strong>$450,000</strong> in 2024 alone. A significant portion of that funding came from mega-donors and union-backed PACs. For instance, Bas received around <strong>$20,000 from the Alameda Labor Council&#8217;s &#8220;Unity&#8221; PAC</strong> and similar sums from the Building Trades Council. Moreover, well-known progressive benefactors like Quinn Delaney and Wayne Jordan contributed sizable donations. These funds, which Phoenix Project conveniently leaves off its map, underscore that Bas&#8217;s success wasn&#8217;t a grassroots fluke&#8212;it was supported by a robust network of labor and ideological allies.</p><p>For the two recall efforts (and for the record I was personally publically against both), this chart blaring leaves off the money that went into the campaigns against the recall. <strong>Over 60% of anti-recall funding for Pam Price came from outside Alameda County</strong>, according to campaign finance data. Major national PACs poured money into that race. <br><br>Now even in the current Oakland mayoral race, former Rep. Barbara Lee, a candidate seemingly favored by the Phoenix Project supporters, has amassed significant financial backing. Recent reports indicate that Lee's campaign has raised approximately $694,000, with major contributions from city unions, building trades, and corporations like PG&amp;E. (<a href="https://www.sfchronicle.com/eastbay/article/oakland-mayor-election-money-20232846.php">SF Chronical</a>) While these contributions are legally disclosed, the broader network of political action committees (PACs) and nonprofit organizations supporting her may not fully reveal their donor bases, raising concerns about transparency.&#8203; And maybe that race is too recent for them to capture; they are trying to capture her presumed front-running competitor, Lauren Taylor, and his affiliated group. </p><h2>Who&#8217;s Behind the Curtain?</h2><p>The Phoenix Project was founded in early 2024 by a small clique of San Francisco progressive operatives &#8212; and yes, NIMBYs &#8212; with long histories of fighting pro-housing legislation. The leadership is stacked with DSA-adjacent and SF DCCC insiders:</p><ul><li><p><strong>Julie Pitta</strong>, President &#8212; Fired as a local journalist for tearing down a moderate candidate&#8217;s campaign sign of moderate candidate Marjan Philhour &#8212; an action the paper called "unethical" and "unacceptable for a journalist" (<a href="https://www.sfchronicle.com/politics/article/sf-pitta-philhour-chan-sign-18649735.php#:~:text=already%20heated,window%2C%20and%20then%20walked%20outside">SF Standard</a>). Instead of backing off, Pitta doubled down, launching the Phoenix Project as a platform to continue her fight against SF&#8217;s moderate and left of center faction.</p></li><li><p><strong>Jeremy Mack</strong>, Executive Director &#8212; Former staffer to Supervisor Dean Preston, one of the city's most vocal opponents of state housing reforms and a longtime antagonist of Senator Scott Wiener. Mack&#8217;s political instincts were forged inside Preston&#8217;s combative office, which regularly attacked pro-housing legislation like SB50 and SB9 (<a href="https://sfstandard.com/2024/02/07/phoenix-project-targets-garry-tan-san-francisco-moderates/#:~:text=The%20project%E2%80%99s%20other%20participants%20include,according%20to%20his%20LinkedIn%20page">SF Standard</a>).</p></li><li><p><strong>Anabel Ibanez</strong>, Vice President &#8212; Former SF DCCC officer, known for weaponizing party rules to block moderate Democrats. She was among the progressives who attempted to block the chartering of a moderate parents' club by labeling them the "Moms for Liberty of San Francisco" &#8212; a baseless smear that fell apart under scrutiny (<a href="https://www.sfchronicle.com/sf/bayarea/heatherknight/article/westside-family-democratic-club-18119572.php#:~:text=%E2%80%9CThe%20Republicans%20have%20their%20Moms,attend%2C%20opposed%20the%20club%E2%80%99s%20charter">SF Chronicle</a>).</p></li></ul><p>The Phoenix Project&#8217;s leadership is composed almost entirely of partisan activists from SF&#8217;s left/anti-housing aligned wing &#8211; people deeply involved in the local Democratic Party wars and hostile to pro-housing YIMBY activists.</p><p>This is not a coalition of neutral observers &#8212; it's a &#8220;who' s who&#8221; of San Francisco's anti-growth political machine disguised as a public interest group.</p><div><hr></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://sub.zacbowling.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://sub.zacbowling.com/subscribe?"><span>Subscribe now</span></a></p><h2>The Anti-YIMBY Agenda</h2><p>From day one, the Phoenix Project has pushed a narrative that all pro-housing organizations are tools of tech billionaires. They smear YIMBY groups, reformers, and even labor unions that support housing construction. In their world:</p><ul><li><p>Tenant unions = Good</p></li><li><p>Unions that build housing = Bad</p></li><li><p>Public money for legacy nonprofits = Pure</p></li><li><p>Private donations to any moderate candidate = Sinister Corruption</p></li></ul><p>Their framing is entirely one-sided. While real concerns about big money exist, Phoenix only sees "dark money" when it helps people they don&#8217;t like. They are a partisan opposition research team pretending to be journalists.</p><p>In social media posts and interviews, Phoenix leadership routinely dismisses YIMBY Action and housing groups like SPUR and GrowSF as &#8220;fake grassroots&#8221; funded by oligarchs. They ignore the fact that these groups publicly disclose their donors and operate within campaign finance law. In contrast, Phoenix Project is a 501(c)(4) and <strong>has refused to disclose its own donors</strong> &#8212; the very definition of dark money.</p><p>They aren&#8217;t against dark money &#8212; they&#8217;re against <strong>your</strong> dark money.</p><div><hr></div><h2>From SF Grudges to Oakland Smears</h2><p>This Phoenix Project "Oakland Astroturf Map" is the clearest example yet of their agenda: taking SF's political feuds and exporting them across the Bay.</p><ul><li><p>They accuse pro-housing Oakland PACs of being fronts for billionaires while ignoring massive labor and nonprofit spending for their preferred candidates and initiatives.</p></li><li><p>They link Oakland candidates to SF political groups like the SF DCCC or Senator Scott Wiener (who doesn&#8217;t even represent Oakland! but somehow he needs to be on here?)</p></li><li><p>They draw lines from unions, nonprofits, and housing orgs based on the flimsiest of associations &#8212; someone once served on a board together? (Scandal!) Some of these are all just leaf nodes that aren&#8217;t outwardly connected to anything but they seemingly just want to make a connection in this smear campaign.</p></li></ul><p>This isn&#8217;t watchdog journalism - it&#8217;s guilt by association at its laziest. </p><p>It&#8217;s like if you once shared a consultant or served on a board together then you&#8217;re on the map. Even groups like the Housing Action Coalition, which works across the entire region, were smeared as shady simply for endorsing housing-focused candidates.</p><div><hr></div><h2>The Real Agenda: Selective Outrage and Partisan Smears</h2><p>Phoenix Project claims to oppose dark money in politics. But their outrage is <strong>deeply selective</strong>. They ignore millions spent by labor PACs and other foundations that bankroll their allies.</p><p>From watching who shared early versions of the map coming into shared spaces of local political groups from well-known anti-growth advocates, many of whom have faced ethics complaints and campaign finance issues and who have ran on a staunch anti-YIMBY platform, it&#8217;s clear this is not grassroots research &#8212; it&#8217;s an insider oppo.</p><div><hr></div><h2>What Real Transparency Looks Like</h2><p>Money in politics <em>is</em> a problem. But a real transparency effort would:</p><ul><li><p>Track all PACs &#8212; not just the ones they disagree with.</p></li><li><p>Call out hypocrisy across the spectrum &#8212; including unions and left-leaning mega-donors too.</p></li><li><p>Avoid using visual propaganda to imply wrongdoing where there is none.</p></li></ul><p>If this Phoenix Project really cared about transparency, they&#8217;d disclose their own donors <a href="https://www.sfchronicle.com/sf/article/sf-moderates-vs-progressive-politics-phoenix-proje-18622186.php#:~:text=Mack%20said%20the%20group%20is,more%20information%20on%20their%20donors">as they said they would</a>. And they&#8217;d admit their maps are editorial. And they&#8217;d stop pretending that normal campaign activities &#8212; like mailers, texting, or endorsements &#8212; are evidence of corruption..</p><p>The Phoenix Project isn&#8217;t cleaning up politics. It&#8217;s <strong>repackaging San Francisco&#8217;s feux progressive feuds and dragging them into East Bay elections</strong>. They aren&#8217;t truth-tellers &#8212; they&#8217;re operatives with grudges, repackaging old beefs as new scandals.</p><p>If we want real political reform, we need real transparency. Not weaponized infographics. Not selectively edited PDFs. And definitely not another political machine pretending it&#8217;s journalism. <br><br>How about instead, lets work to get money out of politics completely. End independent expenditure PACs that can spend ridiculous amounts of money on all sides. It&#8217;s hurting Democracy. </p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://sub.zacbowling.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Let's Build Something! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[The Conspiracy Chart to End All Conspiracy Charts
]]></title><description><![CDATA[A Satirical Tour Through East Bay NIMBY Brainrot]]></description><link>https://sub.zacbowling.com/p/the-conspiracy-chart-to-end-all-conspiracy</link><guid isPermaLink="false">https://sub.zacbowling.com/p/the-conspiracy-chart-to-end-all-conspiracy</guid><dc:creator><![CDATA[Zac Bowling 🥑]]></dc:creator><pubDate>Sat, 29 Mar 2025 01:17:08 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!uvrQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59839dd4-efc6-4773-8ff0-7bd4be05fd43_960x741.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!uvrQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59839dd4-efc6-4773-8ff0-7bd4be05fd43_960x741.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!uvrQ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59839dd4-efc6-4773-8ff0-7bd4be05fd43_960x741.jpeg 424w, https://substackcdn.com/image/fetch/$s_!uvrQ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59839dd4-efc6-4773-8ff0-7bd4be05fd43_960x741.jpeg 848w, https://substackcdn.com/image/fetch/$s_!uvrQ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59839dd4-efc6-4773-8ff0-7bd4be05fd43_960x741.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!uvrQ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59839dd4-efc6-4773-8ff0-7bd4be05fd43_960x741.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!uvrQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59839dd4-efc6-4773-8ff0-7bd4be05fd43_960x741.jpeg" width="960" height="741" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/59839dd4-efc6-4773-8ff0-7bd4be05fd43_960x741.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:741,&quot;width&quot;:960,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:0,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!uvrQ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59839dd4-efc6-4773-8ff0-7bd4be05fd43_960x741.jpeg 424w, https://substackcdn.com/image/fetch/$s_!uvrQ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59839dd4-efc6-4773-8ff0-7bd4be05fd43_960x741.jpeg 848w, https://substackcdn.com/image/fetch/$s_!uvrQ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59839dd4-efc6-4773-8ff0-7bd4be05fd43_960x741.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!uvrQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59839dd4-efc6-4773-8ff0-7bd4be05fd43_960x741.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>There&#8217;s a new infographic circulating around the Oakland leftist listserv scene &#8212; and it&#8217;s a doozy. It calls itself the &#8220;Oakland Astroturf Network Map,&#8221; but it might as well be titled &#8220;Pepe Silvia: The Urbanist Edition.&#8221;</p><p>This technicolor wall of paranoia tries to connect every local housing advocate, moderate candidate, school reformer, and actual union (yes, really) into a vast shadowy conspiracy funded by tech billionaires, real estate barons, and presumably the ghost of Ronald Reagan.</p><p>It&#8217;s dumb. And it&#8217;s absolutely begging to be mocked.</p><h2>If You&#8217;ve Ever Met a Tech Bro, You Might Be in a Vast Conspiracy</h2><p>The central thesis of this chart &#8212; and I use &#8220;thesis&#8221; generously &#8212; is that if someone donated to a campaign, shared a nonprofit board at any point in the last decade, or once attended a mixer with someone who works in tech&#8230; they are part of a coordinated plot to destroy Oakland.</p><p>Example: if a tech investor gave $20K to a PAC that supported a moderate candidate, and someone else once worked for that investor&#8217;s startup? Boom &#8212; CONNECTION. Evidence of coordination. Throw it on the chart.</p><p>It&#8217;s like Six Degrees of Kevin Bacon, except instead of Kevin Bacon it&#8217;s &#8220;people who want more housing.&#8221;</p><h2>The Carpenters&#8217; Union: Secret YIMBY Operatives</h2><p>Nothing says &#8220;out-of-touch&#8221; quite like calling the Northern California Carpenters Union &#8220;pro-YIMBY&#8221; like it&#8217;s a slur.</p><p>You know what Carpenters do? Build things. Like&#8230; housing. You&#8217;d think that wouldn&#8217;t be controversial in a place with skyrocketing rents and a decades-long housing shortage. But to the conspiracy brain behind this map, it&#8217;s proof of corruption.</p><p>Yes, the people who swing hammers for a living are apparently doing the bidding of tech oligarchs by&#8230; wanting to build things they can get paid to build.</p><p>God forbid labor aligns with pro-housing policy.</p><h2>YIMBY Action: Dark Money Boogeyman or Just People Who Think You Should Build Homes?</h2><p>In classic tinfoil-hat fashion, the map devotes multiple glowing tendrils to groups like YIMBY Action, Housing Action Collation, and Abundance Network. Because nothing screams &#8220;deep state&#8221; like a group of painfully earnest millennials who think zoning reform is exciting.</p><p>Never mind that these groups disclose donors, post public endorsements, and write white papers so dry they could be weaponized. To the folks pushing this map, YIMBYs aren&#8217;t just wrong &#8212; they&#8217;re sinister.</p><p>Forget that many YIMBYs are lifelong progressives, renters, transit nerds, union members, or working-class folks who just want to live near their jobs. The map tells you they&#8217;re puppets of billionaires, because someone once got a check from someone who invested in a crypto company.</p><h2>The Candidate List That Accidentally Admits They&#8217;re Losing</h2><p>The infographic goes full &#8220;red string on corkboard&#8221; to connect anyone who dared run against the DSA-anointed slate.</p><p>John Bauters? Suspiciously electable.</p><p>Warren Logan? Once worked for the Mayor, so obviously part of a cabal.</p><p>Leronne Armstrong? Backed by someone with money? How dare he.</p><p>But here&#8217;s the kicker: they highlight all these candidates because they&#8217;re winning or nearly winning. The obsession with &#8220;anti-Carroll Fife&#8221; or &#8220;anti-Nikki Fortunato Bas&#8221; campaigns unintentionally reveals the actual fear: their rigid political orthodoxy is falling out of favor, and the electorate wants something else.</p><p>This isn&#8217;t a scandal. It&#8217;s democracy working.</p><h2>&#8220;This Is Who We&#8217;re Fighting&#8221;: A Movement Built on Vibes, Not Policy</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!HcXo!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa06f7e39-9b62-4e3c-82c9-82816ab7ef72_1179x889.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!HcXo!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa06f7e39-9b62-4e3c-82c9-82816ab7ef72_1179x889.jpeg 424w, https://substackcdn.com/image/fetch/$s_!HcXo!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa06f7e39-9b62-4e3c-82c9-82816ab7ef72_1179x889.jpeg 848w, https://substackcdn.com/image/fetch/$s_!HcXo!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa06f7e39-9b62-4e3c-82c9-82816ab7ef72_1179x889.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!HcXo!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa06f7e39-9b62-4e3c-82c9-82816ab7ef72_1179x889.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!HcXo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa06f7e39-9b62-4e3c-82c9-82816ab7ef72_1179x889.jpeg" width="1179" height="889" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a06f7e39-9b62-4e3c-82c9-82816ab7ef72_1179x889.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:889,&quot;width&quot;:1179,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:0,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!HcXo!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa06f7e39-9b62-4e3c-82c9-82816ab7ef72_1179x889.jpeg 424w, https://substackcdn.com/image/fetch/$s_!HcXo!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa06f7e39-9b62-4e3c-82c9-82816ab7ef72_1179x889.jpeg 848w, https://substackcdn.com/image/fetch/$s_!HcXo!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa06f7e39-9b62-4e3c-82c9-82816ab7ef72_1179x889.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!HcXo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa06f7e39-9b62-4e3c-82c9-82816ab7ef72_1179x889.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Which brings us to the listserv email that inspired this post. Kalimah Priforce, an Emeryville councilmember with&#8230; let&#8217;s say &#8220;a record,&#8221; proudly declared:</p><blockquote><p>&#8220;For the politicians who are dubbed &#8216;progressives&#8217; who aren&#8217;t named on this map, but are connected to this map &#8212; this is who we are fighting.&#8221;</p></blockquote><p>Fighting what, exactly? People who want to build more housing? Support safer streets? Fund schools and teacher raises? Pass pro-labor housing legislation like SB4?</p><p>This is what happens when your politics are built on vibes, not outcomes. You start drawing lines between random donors and then pretending you&#8217;re part of the French Resistance.</p><p>And since he inserted himself into this conversation &#8212; let&#8217;s talk about Kalimah.</p><p>This is the same guy currently under investigation by the FPPC for failing to file campaign finance reports. The same guy who was reprimanded for ethics violations, can&#8217;t keep his filings straight, and has turned the Emeryville Council into a circus act.</p><p><a href="https://evilleeye.com/news-commentary/priforce-censure-resolution-passed-amid-circus-like-council-chambers-atmosphere/">https://evilleeye.com/news-commentary/priforce-censure-resolution-passed-amid-circus-like-council-chambers-atmosphere/</a></p><p>Weirdly enough, this map lines up almost too well with the stuff he&#8217;s been ranting about for months. </p><p>He is also doing the bidding of the NIMBY lobby by signatory on the failed statewide segregation-forever ballot initiative (<a href="https://ourneighborhoodvoices.com">https://ourneighborhoodvoices.com</a>).</p><p>Is he behind it? Maybe. Maybe not. Either way, it&#8217;s the height of irony to see someone with real, actual transparency problems cheering on a document accusing others of &#8220;shadowy influence.&#8221;</p><h2>The &#8220;Real Agenda&#8221; Behind This</h2><p>Let&#8217;s be honest: this map isn&#8217;t meant to inform. It&#8217;s an intimidation tactic. It&#8217;s a lazy, paranoid smear campaign targeting anyone who dares challenge the increasingly brittle ideological hegemony of Oakland&#8217;s activist left &#8212; especially if they want to build homes, fix schools, or run for office without kissing specific rings.</p><p>This is the politics of purity tests, dressed up in bad graphic design.</p><p>And it&#8217;s backfiring. Because regular people don&#8217;t look at a list of folks supporting housing, safety, and functioning city services and think, &#8220;Oh no, a conspiracy!&#8221; They think, &#8220;Wait, I actually like most of this stuff.&#8221; That&#8217;s how we have been able to grow our collations.</p><h2>TL;DR: You Can&#8217;t Meme Your Way Out of a Housing Crisis</h2><p>If you&#8217;re mad that voters didn&#8217;t buy your narrative, that your preferred candidates lost, that your ideology isn&#8217;t resonating anymore &#8212; that&#8217;s a you problem. Don&#8217;t build a conspiracy map. Build better ideas. Better coalitions. Hell, build a duplex.</p><p>Many of the people and orgs being smeared in this map are guilty of nothing more than trying to make cities work. You know &#8212; with housing, transportation, education, governance. The basics. The stuff that doesn&#8217;t get hearts on Instagram but actually changes lives.</p><p>What we need are results. Housing that gets built. Schools that work. Streets that are safe and accessible. Sometimes, that means forming imperfect coalitions. Working with people who don&#8217;t agree with you on everything. It&#8217;s not selling out - it&#8217;s called governing.</p><h2>Share It. Screenshot It. Giggle at It.</h2><p>So yeah &#8212; the map is dumb. The narrative is dumber. And the whole the thing reeks of political desperation from a faction that&#8217;s out of ideas and running out of time.</p><p>Now if you&#8217;ll excuse me, I need to go call my landlord, my tech boss, and my shadowy crypto handler to get their approval before I hit publish.</p><p></p><p></p>]]></content:encoded></item><item><title><![CDATA[Let Oakland Airport rename to San Francisco Bay Oakland Airport]]></title><description><![CDATA[This lawsuit by San Francisco is dumb]]></description><link>https://sub.zacbowling.com/p/let-oakland-airport-rename-to-san</link><guid isPermaLink="false">https://sub.zacbowling.com/p/let-oakland-airport-rename-to-san</guid><dc:creator><![CDATA[Zac Bowling 🥑]]></dc:creator><pubDate>Sun, 28 Apr 2024 00:33:04 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/144084950/567d0788d96c9337e98a423e7444cf92.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p>I did this TikTok the other day with my thoughts. Let the OAK rename. SFO isn&#8217;t even in San Francisco</p><div id="tiktok-iframe?media=1&amp;app=1&amp;url=https%3A%2F%2Fwww.tiktok.com%2F%40yesinmybackyard%2Fvideo%2F7362231783393447211&amp;key=e27c740634285c9ddc20db64f73358dd" class="tiktok-wrap outer" data-attrs="{&quot;url&quot;:&quot;https://www.tiktok.com/@yesinmybackyard/video/7362231783393447211&quot;,&quot;title&quot;:&quot;San Francisco Bay Oakland international airport naming controversy is the funniest thing to me&quot;,&quot;thumbnail_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/797dfa04-3249-455d-af6f-33fd83d1eda7_1080x1920.jpeg&quot;,&quot;author&quot;:&quot;YIMBY Zac Bowling&quot;,&quot;embed_url&quot;:&quot;https://cdn.iframe.ly/api/iframe?media=1&amp;app=1&amp;url=https%3A%2F%2Fwww.tiktok.com%2F%40yesinmybackyard%2Fvideo%2F7362231783393447211&amp;key=e27c740634285c9ddc20db64f73358dd&quot;,&quot;author_url&quot;:&quot;https://www.tiktok.com/@yesinmybackyard&quot;,&quot;belowTheFold&quot;:false}" data-component-name="TikTokCreateTikTokEmbed"><iframe id="iframe-tiktok-iframe?media=1&amp;app=1&amp;url=https%3A%2F%2Fwww.tiktok.com%2F%40yesinmybackyard%2Fvideo%2F7362231783393447211&amp;key=e27c740634285c9ddc20db64f73358dd" class="tiktok-iframe" src="https://cdn.iframe.ly/api/iframe?media=1&amp;app=1&amp;url=https%3A%2F%2Fwww.tiktok.com%2F%40yesinmybackyard%2Fvideo%2F7362231783393447211&amp;key=e27c740634285c9ddc20db64f73358dd" frameborder="0" allow="autoplay; fullscreen; encrypted-media" allowfullscreen="" scrolling="no"></iframe><iframe src="https://team-hosted-public.s3.amazonaws.com/set-then-check-cookie.html" id="third-party-iframe-tiktok-iframe?media=1&amp;app=1&amp;url=https%3A%2F%2Fwww.tiktok.com%2F%40yesinmybackyard%2Fvideo%2F7362231783393447211&amp;key=e27c740634285c9ddc20db64f73358dd" class="third-party-cookie-check-iframe" style="display: none;"></iframe><div class="tiktok-wrap static" data-component-name="TikTokCreateStaticTikTokEmbed"><a href="https://www.tiktok.com/@yesinmybackyard/video/7362231783393447211" target="_blank"><img class="tiktok thumbnail" src="https://substackcdn.com/image/fetch/$s_!53-f!,w_640,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F797dfa04-3249-455d-af6f-33fd83d1eda7_1080x1920.jpeg" style="background-image: url(https://substackcdn.com/image/fetch/$s_!53-f!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F797dfa04-3249-455d-af6f-33fd83d1eda7_1080x1920.jpeg);"></a><div class="content"><a class="author" href="https://www.tiktok.com/@yesinmybackyard" target="_blank">@yesinmybackyard</a><a class="title" href="https://www.tiktok.com/@yesinmybackyard/video/7362231783393447211" target="_blank">San Francisco Bay Oakland international airport naming controversy is the funniest thing to me</a></div></div><div class="fallback-failure" id="fallback-failure-tiktok-iframe?media=1&amp;app=1&amp;url=https%3A%2F%2Fwww.tiktok.com%2F%40yesinmybackyard%2Fvideo%2F7362231783393447211&amp;key=e27c740634285c9ddc20db64f73358dd"><div class="error-content"><img class="error-icon" src="https://substackcdn.com//img/alert-circle.svg">Tiktok failed to load.<br><br>Enable 3rd party cookies or use another browser</div></div></div>]]></content:encoded></item><item><title><![CDATA[My Policy Positions]]></title><description><![CDATA[I'm Zac Bowling, and I'm running for a seat on the Alameda County Democratic Central Committee.]]></description><link>https://sub.zacbowling.com/p/policy-positions</link><guid isPermaLink="false">https://sub.zacbowling.com/p/policy-positions</guid><dc:creator><![CDATA[Zac Bowling 🥑]]></dc:creator><pubDate>Sat, 27 Jan 2024 00:00:00 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!sd_p!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d44185a-79e8-4b1c-b3dc-54933e551ee5_864x864.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I'm Zac Bowling, and I'm running for a seat on the Alameda County Democratic Central Committee. As a dedicated advocate for affordable housing and a leader in East Bay YIMBY, my commitment to social equity, economic justice, and sustainable development is unwavering. My platform is built on the belief that everyone deserves a fair wage, accessible education, and the right to live in dignity and security.<br><br>My campaign is about bringing bold, progressive changes to Alameda County. I stand for raising the minimum wage, ensuring fair labor practices, and creating employment opportunities that serve our community&#8217;s needs. I am deeply committed to enhancing our educational system, making higher education accessible to all, and integrating climate consciousness into our schools.</p><p>Housing is a right, not a privilege. I advocate for expanded affordable housing initiatives, support for renters, and comprehensive policies to address homelessness. My vision is for a county where diversity is celebrated, and every resident has the opportunity to thrive.</p><p>As your representative on the Democratic Central Committee, I will fight tirelessly for policies that promote equity, justice, and environmental sustainability. Together, we can build a more inclusive, prosperous, and resilient Alameda County, and I will only vote to endorse candidates who share these values.</p><p>Here are just some of the policy positions I stand for:</p><h3><strong>Economic Justice and Labor Rights</strong></h3><ul><li><p><strong>Federal Minimum Wage Increase</strong>:</p><ul><li><p>Raise the federal minimum wage to $17/hour.</p></li><li><p>Eliminate the tipped wage system, ensuring fair wages for all workers.</p></li></ul></li><li><p><strong>Federal Job Guarantee</strong>:</p><ul><li><p>Implement a program guaranteeing employment for all, focusing on community needs and infrastructure.</p></li></ul></li><li><p><strong>Strengthen Unions</strong>:</p><ul><li><p>Increase support for unionization efforts.</p></li><li><p>Enhance legislative and financial backing for the NLRB to combat union-busting practices.</p></li></ul></li><li><p><strong>Expand Social Security</strong>:</p><ul><li><p>Ensure a robust social safety net by expanding Social Security benefits.</p></li></ul></li><li><p><strong>4-Day Workweek</strong>:</p><ul><li><p>Advocate for a shorter workweek to improve work-life balance and productivity.</p></li></ul></li><li><p><strong>Universal Broadband Access</strong>:</p><ul><li><p>Provide free, high-speed internet access nationwide.</p></li></ul></li><li><p><strong>Tax Reform</strong>:</p><ul><li><p>Increase corporate taxes and introduce a wealth tax on the ultra-rich.</p></li></ul></li></ul><h3><strong>Education for All</strong></h3><ul><li><p><strong>Free Public Higher Education</strong>:</p><ul><li><p>Guarantee free tuition for undergraduate programs at public institutions.</p></li></ul></li><li><p><strong>Student Debt Relief</strong>:</p><ul><li><p>Cancel all existing student loan debt.</p></li></ul></li><li><p><strong>Green Public Schools</strong>:</p><ul><li><p>Implement the Green New Deal for Public Schools, incorporating climate education.</p></li></ul></li><li><p><strong>Universal Free School Meals</strong>:</p><ul><li><p>Provide free meals to all K-12 students.</p></li></ul></li></ul><h3><strong>Housing and Homelessness</strong></h3><ul><li><p><strong>Expand Affordable Housing</strong>:</p><ul><li><p>Increase the LIHTC and make funding for Section 8 and public housing mandatory.</p></li></ul></li><li><p><strong>Eviction Moratorium</strong>:</p><ul><li><p>Implement a nationwide eviction moratorium for renters in federally funded properties.</p></li></ul></li></ul><h3><strong>Social Equity and Justice</strong></h3><ul><li><p><strong>End Systemic Discrimination</strong>:</p><ul><li><p>Tackle racial discrimination in various sectors.</p></li><li><p>End mass incarceration and the criminalization of homelessness and addiction.</p></li></ul></li><li><p><strong>Legalize Marijuana</strong>:</p><ul><li><p>Federally legalize marijuana and expunge past convictions.</p></li></ul></li><li><p><strong>Voting Rights and Democracy Reform</strong>:</p><ul><li><p>Advocate for comprehensive voting rights legislation.</p></li><li><p>Abolish the filibuster, ban voter ID laws, and reform electoral systems.</p></li></ul></li></ul><h3><strong>LGBTQ+ Rights</strong></h3><ul><li><p><strong>Equality Act and ERA</strong>:</p><ul><li><p>Pass the Equality Act and codify the Equal Rights Amendment.</p></li></ul></li><li><p><strong>Protect LGBTQ+ Healthcare</strong>:</p><ul><li><p>Safeguard access to gender-affirming healthcare.</p></li></ul></li></ul><h3><strong>Environmental Justice and Climate Action</strong></h3><ul><li><p><strong>Green New Deal</strong>:</p><ul><li><p>Embrace the principles of the Green New Deal across all policy areas.</p></li></ul></li><li><p><strong>Combat Environmental Racism</strong>:</p><ul><li><p>Address and mitigate the impacts of environmental racism.</p></li></ul></li></ul><h3><strong>Immigration Reform</strong></h3><ul><li><p><strong>Close Detention Camps</strong>:</p><ul><li><p>End the inhumane detention of immigrants and replace surveillance practices.</p></li></ul></li><li><p><strong>Pathway to Citizenship</strong>:</p><ul><li><p>Create accessible pathways to citizenship for all undocumented individuals.</p></li></ul></li><li><p><strong>Protect Immigrant Communities</strong>:</p><ul><li><p>Strengthen sanctuary policies and ensure immigrants&#8217; access to essential services.</p></li></ul></li></ul><h3><strong>Gun Control and Safety</strong></h3><ul><li><p><strong>Comprehensive Gun Reform</strong>:</p><ul><li><p>Enforce universal background checks and establish red flag laws.</p></li></ul></li></ul><h3><strong>Political and Electoral Reform</strong></h3><ul><li><p><strong>Overturn Citizens United</strong>:</p><ul><li><p>Advocate for the reversal of the Citizens United decision.</p></li></ul></li></ul>]]></content:encoded></item><item><title><![CDATA[“Unlimited Density” is misleading in the Alameda Housing Element]]></title><description><![CDATA[The NIMBYs made the point to keep calling this one out over and over, that the housing element changes zoning to allow unlimited units with unlimited densities allowed in certain areas.]]></description><link>https://sub.zacbowling.com/p/unlimited-density-is-misleading-in-the-alameda-housing-element-b06f1e64f4cb</link><guid isPermaLink="false">https://sub.zacbowling.com/p/unlimited-density-is-misleading-in-the-alameda-housing-element-b06f1e64f4cb</guid><dc:creator><![CDATA[Zac Bowling 🥑]]></dc:creator><pubDate>Thu, 17 Nov 2022 07:40:02 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/2b0e2d86-775e-4bf4-99da-1d132d9395c6_1024x576.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>The NIMBYs made the point to keep calling this one out over and over, that the housing element changes zoning to allow unlimited units with unlimited densities allowed in certain areas. NIMBY is gonna NIMBY, but the Housing Element terminology really helped them sell the&nbsp;fear.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!5tMb!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3e84164-18a6-4a1d-bd3e-88eef6620842_1024x576.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!5tMb!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3e84164-18a6-4a1d-bd3e-88eef6620842_1024x576.jpeg 424w, https://substackcdn.com/image/fetch/$s_!5tMb!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3e84164-18a6-4a1d-bd3e-88eef6620842_1024x576.jpeg 848w, https://substackcdn.com/image/fetch/$s_!5tMb!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3e84164-18a6-4a1d-bd3e-88eef6620842_1024x576.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!5tMb!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3e84164-18a6-4a1d-bd3e-88eef6620842_1024x576.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!5tMb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3e84164-18a6-4a1d-bd3e-88eef6620842_1024x576.jpeg" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a3e84164-18a6-4a1d-bd3e-88eef6620842_1024x576.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!5tMb!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3e84164-18a6-4a1d-bd3e-88eef6620842_1024x576.jpeg 424w, https://substackcdn.com/image/fetch/$s_!5tMb!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3e84164-18a6-4a1d-bd3e-88eef6620842_1024x576.jpeg 848w, https://substackcdn.com/image/fetch/$s_!5tMb!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3e84164-18a6-4a1d-bd3e-88eef6620842_1024x576.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!5tMb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3e84164-18a6-4a1d-bd3e-88eef6620842_1024x576.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a><figcaption class="image-caption">The so-called &#8220;Unlimited Density&#8221;</figcaption></figure></div><p>I regret I didn&#8217;t ask that the city use the term &#8220;form-based limits&#8221; instead of &#8220;unlimited densities&#8221; in our <a href="https://www.alameda2040.org/housing">new Housing Element</a>. I honestly didn&#8217;t think it was a detail that mattered much. In hindsight, it would&#8217;ve stopped the NIMBYs from misleading folks and saying &#8220;unlimited units&#8221; were being allowed in&nbsp;Alameda.</p><p>Anywhere we removed any explicit DU/ac limits, it ended up getting referred to as &#8220;unlimited density&#8221; in the Housing Element, which in hindsight, is a little misleading. That &#8220;unlimited density&#8221; is really limited by the form limits that put practical constraints that really cap density instead of listing an explicit DU/ac in the&nbsp;code.</p><p>The fact is that we still have height limits (at least 40 feet for transit overlay), setbacks, lot coverage rules, and other design criteria. There are also practical limits to the minimum size you can make a unit of housing to be up to code and&nbsp;usable.</p><p>It&#8217;s hard to go much smaller than 500 square sqft and still meet code (which is around the size of a jADU). Atypical one-bedroom is closer to 750sqft. You can start to work out the math of what is possible from that to figure out the effective maximum&nbsp;DU/ac.</p><p>Let&#8217;s do a thought experiment with R-1 zoned areas but with a transit overlay (with so-called &#8220;unlimited density&#8221;) and calculate the likely number of units and DU/ac we will have on those&nbsp;lots:</p><ul><li><p>An average Alameda R-1 lot is around 5000&nbsp;sqft.</p></li><li><p>We have a 60% lot coverage maximum&nbsp;limit</p></li><li><p>That leaves you 3000sqft.</p></li><li><p>Subtract some for exterior features (usable interior square footage isn&#8217;t equal to exterior lot coverage usage). That&#8217;s maybe a 2500 sqft usable base&nbsp;floor.</p></li><li><p>The transit overlay gives you a 40-foot height cap anywhere in Alameda, which is around 3 stories. 2500sqft x 3 stories is 7500sqft usable floor&nbsp;space.</p></li><li><p>Ball parking here, but let's say you need 2000sqft for stairs/common areas leaving about 5500sqft for usable unit&nbsp;space.</p></li></ul><p>So let's say you want to build some small one-bedroom apartments at 750 sqft apartment each. With 5500 sqft usable space at 750qft per apartment, you can build about 7 apartments. That&#8217;s 63 DU/ac and would end up looking something like this that we already have in&nbsp;Alameda.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!rHR2!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf986dfc-40ce-4088-acfa-cc9f37cc5980_593x467.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!rHR2!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf986dfc-40ce-4088-acfa-cc9f37cc5980_593x467.png 424w, https://substackcdn.com/image/fetch/$s_!rHR2!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf986dfc-40ce-4088-acfa-cc9f37cc5980_593x467.png 848w, https://substackcdn.com/image/fetch/$s_!rHR2!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf986dfc-40ce-4088-acfa-cc9f37cc5980_593x467.png 1272w, https://substackcdn.com/image/fetch/$s_!rHR2!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf986dfc-40ce-4088-acfa-cc9f37cc5980_593x467.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!rHR2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf986dfc-40ce-4088-acfa-cc9f37cc5980_593x467.png" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/af986dfc-40ce-4088-acfa-cc9f37cc5980_593x467.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!rHR2!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf986dfc-40ce-4088-acfa-cc9f37cc5980_593x467.png 424w, https://substackcdn.com/image/fetch/$s_!rHR2!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf986dfc-40ce-4088-acfa-cc9f37cc5980_593x467.png 848w, https://substackcdn.com/image/fetch/$s_!rHR2!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf986dfc-40ce-4088-acfa-cc9f37cc5980_593x467.png 1272w, https://substackcdn.com/image/fetch/$s_!rHR2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf986dfc-40ce-4088-acfa-cc9f37cc5980_593x467.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>I think I can safely say you won&#8217;t see anything bigger than that being built where there are allowed &#8220;unlimited densities&#8221; in R-1 to&nbsp;R-3.</p>]]></content:encoded></item><item><title><![CDATA["Outsiders" not the problem in Alameda]]></title><description><![CDATA[Freelance writer and local resident of Alameda resident, Ralph Jennings, penned an article for East Bay Express entitled &#8220;Life on the Fast Lane: Outside drivers shop and speed in once placid Alameda&#8221;.]]></description><link>https://sub.zacbowling.com/p/outsiders-not-the-problem-in-alameda</link><guid isPermaLink="false">https://sub.zacbowling.com/p/outsiders-not-the-problem-in-alameda</guid><dc:creator><![CDATA[Zac Bowling 🥑]]></dc:creator><pubDate>Thu, 28 Apr 2022 00:22:00 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!sd_p!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d44185a-79e8-4b1c-b3dc-54933e551ee5_864x864.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Freelance writer and local resident of Alameda resident,  Ralph Jennings, penned an article for East Bay Express entitled <a href="https://eastbayexpress.com/life-on-the-fast-lane-outside-drivers-shop-and-speed-in-once-placid-alameda/">&#8220;Life on the Fast Lane: Outside drivers shop and speed in once placid Alameda&#8221;</a>. </p><p>I can&#8217;t disagree more with the premise and narrative of this whole article.  Even the title referencing to Alameda as &#8220;once placid&#8221; as if Alameda&#8217;s is no longer a calm place. The article draws a comparison between Alameda as it was in 2015 to that of today. </p><p>Before diving in the article two much we have to go back to November 28th. Before, writing this article, Mr. Jennings had posted on Nextdoor saying he was writing an article for the EBX and had few questions that he wanted to get comment on. From the jump, the questions were slightly leading.  </p><blockquote><p>Seeking comment for East Bay Express story on traffic in Alameda.<br>Hi Alameda neighbors,</p><p>I'm a freelance East Bay Express writer working on a story about Oakland's influence on traffic in Alameda. </p><p>I'm looking for a few good comments from residents of Alameda. </p><p>Questions are:</p><p>1. Where do you see traffic getting heavier around Alameda and since about when did it increase?</p><p>2. From your personal observations, why do people from Oakland visit Alameda? What activities are most popular?</p><p>3. If you believe Oakland is a source of extra-heavy traffic, please say what might be a good solution.</p><p>4. If you're from Oakland and reading this, what are your motivations for visiting Alameda and how do you find the traffic here?</p></blockquote><p>It was clear that Mr. Jennings had a goal in mind to paint &#8220;outsiders&#8221; visiting Alameda as the problem. </p><p>I was the first to respond to Mr. Jennings Nextdoor post where I pointed out that the only traffic is traffic backing up from Oakland&#8217;s highways during early commute hours and on the rare first Sunday when thousands flock to the <a href="https://alamedapointantiquesfaire.com/">Alameda Point Antique Faire</a>.  Andy Murdock followed up and also made a similar point that traffic only exists once leaving the island but not much traffic within the island. </p><p>There were only four comments left on the Nextdoor request and my comments were not included in the final story and it seems that Mr. Jennings did selectively quote Mr. Murdock&#8217;s comment but seems to have completely glossed over or missed the point of his comments.</p><p>Get back to the article, right out of the gate, Mr. Jennings quotes Tracy Roberts, a resident that seemly distains the drivers who come from Oakland. She has even goes so far to follow these people off the island. Making bold claims that some have paper plates or no license plates at all. Mr. Jennings backs Tracy Robert&#8217;s comments up with non-specific complaints he as also seen on Nextdoor about &#8220;speeders, drivers who do donuts in intersections and unprecedented traffic gridlock.&#8221; </p><p>I will agree that speeders are legitimate issue but there evidence of that being non-residents. Complaints about about folks doing donuts were more an issue out on the excessively wide roads and parking lots of Alameda Point&#8217;s former navel infrastructure and less so within Alameda itself and more recently was remedied with recently installed break walls to shrink the usable areas of the roads out there.  But &#8220;unprecedented traffic gridlock&#8221;? No. The only &#8220;gridlock&#8221; have is when a drawbridge is lifted to let a boat through which typically lasts 10 minutes. </p><p>One nit here is Mr. Jennings claims that Alameda has a uniform 25 mph speed limit. This is not actually entirely accurate. Webster and Pose tubes are 45 mph, Doolittle Drive is also 45mph. We also have several roads that allow for 35 mph including Main Street, Tilden Way, Webster (north of Atlantic), Harbor Bay Parkway, South Loop, and North Loop Roads. Residential streets are generally limited to 25 mph.</p><p>He goes on to quote the Books&#8217; Inc owner who speaks about a lack of parking on Park Street at 5:30 during commute hours and opines that this likely people from Oakland and San Leandro coming to Alameda to eat dinner. This doesn&#8217;t track with my experience as Park Street has a multistory parking structure and two surface level public parking lots, and having been to Park Street quite frequently around that time, I never seen the city parking garage completely full once. </p><p>I will say that, yes, we have measurable but not terrible amount of traffic leaving the island through the Posey tube but only regularly on one Sunday a month during the Antique Faire and during pre-pandemic during morning commute hours.</p><p>I completely disagree with how Mr. Jenning&#8217;s inflates this when asserts: </p><blockquote><p>&#8220;Traffic backs up a quarter mile some weekend days, through the Posey and Webster Street tubes from Alameda to Oakland Chinatown, all the worse if it&#8217;s congested already on the Oakland side or someone crashes in a tube.&#8221; </p></blockquote><p>Only Posey, which is the tube that leaves the island, that sees traffic. The Webster tube entering the city, is never backed up with any regularity.</p><p>On the East End he claims:</p><blockquote><p>&#8220;Commuters, parents picking up school children and food grab-and-goers congest Park Street on a typical late afternoon. Each car waits two turns and maybe more at a single red light, especially near the drawbridge to Oakland.&#8221;</p></blockquote><p>This doesn&#8217;t track with my experience. Yes there is more traffic but it remans moving. It&#8217;s gridlock or overwhelming congestion. He also doesn&#8217;t qualify this to say which of our 3 drawbridges (or 4 if you include to Bay Farm) we have into Alameda. I&#8217;m assuming he must be referring to the Park Street bridge. I don&#8217;t think I&#8217;ve waited more than a single light at any hour include commute hours in the afternoon.</p><blockquote><p>Among the aggravations: Parking in [near Park Street] or near Webster Street in West Alameda can be as competitive as parking in downtown Berkeley.</p></blockquote><p>What? Is this satire? Am I getting punked? No it&#8217;s not. Like ever. </p><p>The article goes to paint Alameda the place people come because Oakland and San Leandro are not as good because we have a couple nice restaurants and shops, a bowling alley, and a movie theatre. Maybe this is based on inherit bias of Mr. Jennings, a local resident, and the Alameda business owners and residents he interviewed (or maybe simply how they are being quoted) playing up that that Alameda is better. Oakland has theatres, bowling allies, and cute shops. Some even better than ours. </p><p>He claims:</p><blockquote><p>Now, nearby parts of Oakland, such as downtown and Chinatown, lack Main Street business districts with &#8220;cute little restaurants&#8221; and locally owned merchants, to use Fisher&#8217;s words.</p></blockquote><p>I can name more &#8220;cute little restaurants&#8221; in Oakland&#8217;s Chinatown, Downtown, Old Oakland, Jack London, and Lake Merritt areas. Old Oakland, Grand Lake, Jack London, and Temescal have total Main Street business vibes too. </p><p>Yes, some folks might be coming to Alameda for variety, but this narrative that it&#8217;s because we are better or they don&#8217;t have anything nice is just elitist bullshit. </p><p>He goes on to use as one bit of data to try show this is outsiders causing all these undesirable effects is because &#8220;police data shows that 64.7% of total arrests were made against city residents in 2015, whereas just half were made against residents in 2019.&#8221; I don&#8217;t even know where to start on this. Correlation is not causation comes to mind. Especially when we have had a long history of Alameda Police targeting people of color we can&#8217;t simply assume that there isn&#8217;t some bias to who is being targeted for arrest and who is being let go. There is a lot could be at play with this stat. He mentions that city officials declined to explain the data he requested. Probably because of the issues where is drawing this supposition from.  </p><blockquote><p>But the cars keep coming. A deficiency plan to mitigate traffic near the 215-acre Catellus Mixed Use Development that includes the ever-popular Alameda Landing mall near the two tubes indicates that as many as 1,000 more cars would come and go from Oakland. It suggests that &#8220;improvements&#8221; on the Oakland side could accommodate that traffic.</p></blockquote><p>Cherry picking one development here but these homes do not encouraging cars like older developments did. We have data that shows the folks living in these housing developments are using the ferry more, they live on high frequency bus lines, and they have less parking per unit that older homes. </p><p>This second point about &#8220;improvements&#8221; on the Oakland side, he must be alluding to the massive <a href="https://www.oaklandalamedaaccessproject.com/">Alameda Oakland Access Project</a> which reroute traffic out of Alameda&#8217;s Posey tube to give more direct access to 880 without going through Oakland&#8217;s Chinatown.  </p><p>I don&#8217;t want to critique every part of this but it&#8217;s hard not to, like the calls for more police and more tiresome Nextdoor complaints, often from the same folks that trump of traffic complaints to use as an excuse to try and deny housing. </p>]]></content:encoded></item><item><title><![CDATA[AB 1322 does what?]]></title><description><![CDATA[It&#8217;s difficult to decide where to start with breaking down the absurdities in this terrible piece of reporting that ran on the 48 Hills blog discussing California Assembly Bill 1322.]]></description><link>https://sub.zacbowling.com/p/ab-1322-does-what-350f766f95bc</link><guid isPermaLink="false">https://sub.zacbowling.com/p/ab-1322-does-what-350f766f95bc</guid><dc:creator><![CDATA[Zac Bowling 🥑]]></dc:creator><pubDate>Tue, 08 Jun 2021 22:07:46 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/9a9713d7-19df-4070-8518-162f655ad346_1024x812.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!zqf4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F113ab445-9213-4f86-b048-053a636e03b4_1024x812.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!zqf4!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F113ab445-9213-4f86-b048-053a636e03b4_1024x812.png 424w, https://substackcdn.com/image/fetch/$s_!zqf4!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F113ab445-9213-4f86-b048-053a636e03b4_1024x812.png 848w, https://substackcdn.com/image/fetch/$s_!zqf4!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F113ab445-9213-4f86-b048-053a636e03b4_1024x812.png 1272w, https://substackcdn.com/image/fetch/$s_!zqf4!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F113ab445-9213-4f86-b048-053a636e03b4_1024x812.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!zqf4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F113ab445-9213-4f86-b048-053a636e03b4_1024x812.png" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/113ab445-9213-4f86-b048-053a636e03b4_1024x812.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!zqf4!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F113ab445-9213-4f86-b048-053a636e03b4_1024x812.png 424w, https://substackcdn.com/image/fetch/$s_!zqf4!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F113ab445-9213-4f86-b048-053a636e03b4_1024x812.png 848w, https://substackcdn.com/image/fetch/$s_!zqf4!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F113ab445-9213-4f86-b048-053a636e03b4_1024x812.png 1272w, https://substackcdn.com/image/fetch/$s_!zqf4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F113ab445-9213-4f86-b048-053a636e03b4_1024x812.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a><figcaption class="image-caption">Insane article from 48&nbsp;Hills</figcaption></figure></div><p>It&#8217;s difficult to decide where to start with breaking down the absurdities in <a href="https://48hills.org/2021/06/a-sneak-attack-on-rent-control-and-affordable-housing-in-sacramento/">this terrible piece of reporting that ran on the 48 Hills blog</a> discussing California <a href="https://leginfo.legislature.ca.gov/faces/billTextClient.xhtml?bill_id=202120220AB1322">Assembly Bill&nbsp;1322</a>.</p><p><strong>To get straight to the point, the author is entirely 100% wrong with his conclusion. In no way would AB 1322 affect any locally passed voter initiatives related to rent control, eviction limits, or condo conversion.</strong></p><p>AB 1322 only deals with a community&#8217;s ability to certify a new Housing Element every 7 years and can only be used when a previously passed local voter initiative would prevent it from from complying with state law around forming a Housing Element. The author&#8217;s attempt to spin this as anti-tenant is misguided, misplaced, and frankly confusing given that it&#8217;s supported by both pro-tenant and pro-housing groups.</p><p>It&#8217;s as if the author did not actually take the time to read the bill or <a href="https://leginfo.legislature.ca.gov/faces/billAnalysisClient.xhtml?bill_id=202120220AB1322">even any of the staff analysis</a> of the bill. The author could have also Googled AB 1322 and found one of <a href="https://alamedasun.com/news/putting-ab-1322-its-proper-context">my many op-eds</a> on the&nbsp;bill.</p><p>It seems as if he read one line in the middle of the bill and cherry picked one part of the process the bill uses to allow cities to comply with state law and assumes it can be used in other cases. He then speculates that this then allows to the bill to do terrible things that the bill directly expressly does not allow. Impossible scenarios like where it could be used to cities avoid things like voter passed rent control&nbsp;laws.</p><h3>What does AB 1322 actually&nbsp;do?</h3><p>Let&#8217;s start with the facts about AB&nbsp;1322:</p><ul><li><p>Cities and counties are currently required to enforce and defend both state law and locally passed voter initiatives. We currently don&#8217;t have a simple process to handle when local voter initiatives become out of compliance with state law as state law evolves outside of asking the voters to repeal the law (often at the next general election). In the meantime cities are left in a bit of a catch-22/quagmire.</p></li><li><p>For land-use related laws this is especially a problem. The changes in state law, new RHNA requirements, and these locally pass voter initiatives that limit housing can often prevent a city from finding a resolution and figuring out a way to form and submit a compliant Housing Element on time under California&#8217;s tight deadlines. Between receiving a RHNA and having to certify is on average around 18 months so there isn&#8217;t much time to fix land use legislation at the ballot box in a costly election in that time frame. Some changes can also only be done at the general election which is too late to meet certain deadlines.</p></li><li><p>AB 1322 creates an optional process that cities can use to recognize when these conflicts occur that could prevent them from forming a compliant Housing Element. The process involves a public meeting on the issue where it can be analyzed and planning staff and the public can weigh&nbsp;in.</p></li><li><p>Then, and only after going through that process, AB 1322 would allow the city to vote to suspend (in part or in full) the conflicting voter initiative by a simple majority of the governing body.</p></li><li><p>That action then allows the city to resolve their issue with compliance with state law in a timely manner to meet the strict timing deadlines by the state with forming a Housing&nbsp;Element.</p></li><li><p>Interested 3rd parties have a short period to appeal to the decision by the body to a judge who would then be able to determine if the decision was made in good faith given all the evidence.</p></li><li><p>The city is then guarded against most of the legal risk it currently faces by not following the local voter measure as it makes local changes to meet its housing requirements under state&nbsp;law.</p></li></ul><p>AB 1322 expressly deals with Housing Elements and nothing else. <br>Housing Elements are plans that communities must update and submit to the state every 7 years. In these plans cities have to designate and zone for a minimum amount of new housing units or RHNA (the RHNA is a number of units a community must allow defined by a state body who determines need before the Housing Element process begins). That plan must allow new homes that meet a range of densities and that target different incomes in the city, among following other rules around affirmatively improving equity and access to new residents in the community. The penalties for not forming a compliant Housing Element are severe so it&#8217;s in the city&#8217;s best interest to comply with state&nbsp;law.</p><p>In the 48 Hills article, the author opines that the bill could be used to end locally passed rent control laws, however, rent control is not a land-use issue that could ever be something that could prevent a compliant Housing Element for any community so AB 1322 would never come into play. The same goes for eviction rules and condo conversions. These expressly are not issues that could prevent a compliant Housing Element to be formed so AB 1322 could not be used in these circumstances. Only the restrictions on the ability of the community to build new housing would realistically be at play in the process created by AB 1322 to override those types of local voter initiatives.</p><p>This legislation is nothing more than a bug fix for a situation that was not conceived of when different housing laws and voter initiative laws we originally passed, but now is a real problem for several cities in the state that this directly helps including Alameda, Piedmont, Encinitas, San Jose, and Monterey&nbsp;Park.</p><p>The author also opines that the bill is an attack on democracy when in fact it preserves local control by allowing locally elected representatives to decide what action to take instead of the state legislature.</p><p>The bill sponsored by pro-tenant and pro-housing advocates alike. The only opponents are NIMBY groups like Livable California that are pushing to increase local voter control of zoning to the detriment of finding real solutions to the housing&nbsp;crisis.</p>]]></content:encoded></item><item><title><![CDATA[Putting AB 1322 in its Proper Context]]></title><description><![CDATA[Third in a 3 part op-ed that I authored for the Alamada Sun. Printed May 13, 2021.]]></description><link>https://sub.zacbowling.com/p/putting-ab-1322-in-its-proper-context-3180bda393df</link><guid isPermaLink="false">https://sub.zacbowling.com/p/putting-ab-1322-in-its-proper-context-3180bda393df</guid><dc:creator><![CDATA[Zac Bowling 🥑]]></dc:creator><pubDate>Thu, 13 May 2021 08:00:00 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!sd_p!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d44185a-79e8-4b1c-b3dc-54933e551ee5_864x864.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Third in a 3 part op-ed that I authored for the <a href="https://alamedasun.com/">Alamada Sun</a>. Printed May 13,&nbsp;2021.</em></p><p>Previously in this series, we covered how Alameda has to form a Housing Element in the next year, and we dived into the costly and perilous legal position the city&nbsp;faces.</p><p>The city is stuck in a Catch- 22. It must choose either to violate the City Charter or violate state law around forming a Housing Element plan. Either way, the city risks years of costly litigation.</p><p>Cities are charged with defending and implementing both locally passed voter measures and state law around housing, but there are no easy remedies today when those obligations conflict.</p><p>Given statements made by City Council in 1990 around the Guyton v. Alameda settlement, we know that any litigation over Article 26 of the City Charter also brings the risk of a judge finding it in conflict with state law and putting it aside after what may be a long and costly legal battle for the&nbsp;city.</p><p>City Council was provided a confidential legal analysis by the City Attorney&#8217;s office that likely covers all of the issues raised as was implied at a council meeting in February.</p><p>Assembly Bill (AB) 1322, if signed into law, would give Alameda a solution to this problem, one where the city would have an optional process to be able to comply with state law and pass a compliant Housing Element while protecting the city from litigation.</p><p>Like Alameda, the cities of Piedmont, Encinitas, San Jose, and Monterey Park are all among the cities facing similar problems and would also be able to use the process provided by this&nbsp;bill.</p><p>For Alameda, this bill would allow the city to do something that it has already done before&#8202;&#8212;&#8202;certify a Housing Element plan with the state that is in conflict with the City Charter&#8202;&#8212;&#8202;but this time, do so without the same legal risk it faces&nbsp;now.</p><p>The city may also run into issues with using the multi-family overlay solution given comments by HCD Director Paul McDougal at a City Council meeting in February referring to new laws passed by the&nbsp;state.</p><p>The bill works by providing local governments a way to recognize when there is a conflict and then allows the city to call a special meeting to resolve that conflict.</p><p>In that meeting, it could allow planning staff to bring forward comments to show how it&#8217;s not possible to pass a substantially compliant Housing Element given the constraints imposed by the past voter measure. The public would also be able to weigh in at this special&nbsp;meeting.</p><p>The governing body would then, after hearing all the comments, be able to make a motion to suspend the conflicting parts of a voter measure. That would then allow the city to be able to comply with its duty under state law in a timely fashion and meet strict deadlines imposed on it. The bill also creates an appeal process where a judge can review if a decision was &#8220;arbitrary and capricious or substantially unsupported by the evidence considered&#8221; at the special&nbsp;meeting.</p><p>Because this process is optional&#8202;&#8212;&#8202;the state is not declaring that certain voter measures are in conflict, instead leaving it to the locally elected leaders to make that determination with public input&#8202;&#8212;&#8202;the bill ultimately protects local&nbsp;control.</p><p>Our City Council has a fiscal responsibility to avoid pushing the city into costly litigation, so the process created by AB 1322 would be the best path forward for the city, assuming the bill is signed into&nbsp;law.</p><p>Zac Bowling lives in&nbsp;Alameda.</p><p><em>Originally published at <a href="https://alamedasun.com/news/putting-ab-1322-its-proper-context-1">https://alamedasun.com</a> on May 13,&nbsp;2021.</em></p>]]></content:encoded></item><item><title><![CDATA[Putting AB 1322 in its Proper Context]]></title><description><![CDATA[Second in a 3 part op-ed that I authored for the Alamada Sun. Printed May 5, 2021]]></description><link>https://sub.zacbowling.com/p/putting-ab-1322-in-its-proper-context-3b0e91aaa9b2</link><guid isPermaLink="false">https://sub.zacbowling.com/p/putting-ab-1322-in-its-proper-context-3b0e91aaa9b2</guid><dc:creator><![CDATA[Zac Bowling 🥑]]></dc:creator><pubDate>Wed, 05 May 2021 07:00:00 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!sd_p!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d44185a-79e8-4b1c-b3dc-54933e551ee5_864x864.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Second in a 3 part op-ed that I authored for the <a href="https://alamedasun.com/">Alamada Sun</a>. Printed May 5,&nbsp;2021</em></p><p>In January 2023, Alameda must submit a plan that shows how it intends to comply with the state-mandated allocation.</p><p>If there is litigation (over the city&#8217;s not complying with state law) a judge could find Article 26 in conflict with state law and declare it unenforceable.</p><p>Last week, as part of this series of putting Assembly Bill (AB) 1322 into context, I laid out how the state Housing Element process ensures that much-needed housing is built in the state, how there can be conflicts between local voter initiatives and state law around forming a Housing Element, and how Article 26 of Alameda&#8217;s City Charter (added in 1973 via Measure A) creates one of those conflicts. This week I&#8217;ll dive more into that conflict.</p><p>In January 2023, Alameda must submit a Housing Element plan to the state that shows how it intends to comply with the state-mandated Regional Housing Needs Allocation (RHNA).</p><p>For the 2023&#8211;2031 cycle, the proposed number from the state is 5,406 new units of housing. This number must be planned and allowed for in Alameda before 2031. Some of those units will have to be high-density, multi-family housing under the&nbsp;rules.</p><p>Just like several other cities in the state, however, Alameda has a locally passed voter initiative, Article 26, in the City Charter. Article 26 gets in the way of complying with state law. Simply put, state law requires some areas to be zoned for new multi-family housing, while Article 26 explicitly requires that only single-family homes be built. State law also requires that some land be zoned for 30 units per acre, but the Charter explicitly only allows up to 21 units per&nbsp;acre.</p><p>This conflict isn&#8217;t new. In 2012 the City Council finally certified a Housing Element for the first time since 1990. They used something called a multi-family (MF) district overlay, which allows for multi-family housing and the densities required by law in specific parts of&nbsp;Alameda.</p><p>This overlay violates the charter. The city chose this route weighing the legal risks of violating state law versus upholding the charter and risking the city not having a certified Housing Element. This kept the city out of the cross-hairs of the state&#8217;s Department of Housing and Community Development (HCD) and from a lawsuit threatened against the&nbsp;city.</p><p>This RHNA cycle, the state has passed new laws and created a budget to strengthen HCD&#8217;s ability to enforce compliance by cracking down on cities that fail to do their part in solving the state&#8217;s housing&nbsp;crisis.</p><p>This direct conflict with state law was one of the primary rea sons why Measure Z, which would have repealed Article 26 entirely, was put on the ballot last November.</p><p>With the failure of Measure Z, the city has essentially two options: comply with state law and violate the City Charter by trying to use the MF district over lay again in more places or com ply with the City Charter and violate state law by not filing a Housing&nbsp;Element.</p><p>In either case, the city risks a lawsuit either for violating state law or violating the City Charter. The city is left in a potentially costly quagmire of litigation. The city could also owe legal fees if it loses to any&nbsp;party.</p><p>If there is litigation, a judge could find Article 26 in conflict with state law and declare it unenforceable. In 1990, to avoid this potential challenge and protect Article 26, the City Council voted to settle a case (Guyton v. Alameda) before the judge could render a&nbsp;verdict.</p><p>This was also the last year Alameda filed a Housing Element until 2012 when the city was threatened with another&nbsp;lawsuit.</p><p>As I noted in last week&#8217;s piece, if the city fails to certify a Housing Element, it risks losing funding and local planning control. A developer could bring a project to a judge, who could grant approval to build it, bypassing much of our city&#8217;s zoning and planning&nbsp;rules.</p><p>This is the situation Alameda faces today, and it&#8217;s not alone. A number of cities have exclusionary zoning laws, untenable height caps and floor area restrictions, passed by the initiative process, which would prevent those cities from forming a Housing Element without legal risk&nbsp;today.</p><p>In part 3, I&#8217;ll dive more into how AB 1322 comes into play, and how, if signed into law in its current form, it will give Alameda a third option to certify a Housing Element while protecting us from costly litigation and legal&nbsp;fees.</p><p>Zac Bowling lives in&nbsp;Alameda.</p><p><em>Originally published at <a href="https://alamedasun.com/news/putting-ab-1322-its-proper-context-0">https://alamedasun.com</a> on May 5,&nbsp;2021.</em></p>]]></content:encoded></item><item><title><![CDATA[Putting AB 1322 in its Proper Context]]></title><description><![CDATA[First in a 3 part op-ed that I authored for the Alamada Sun. Printed April 28, 2021.]]></description><link>https://sub.zacbowling.com/p/putting-ab-1322-in-its-proper-context-94ffe9cf941c</link><guid isPermaLink="false">https://sub.zacbowling.com/p/putting-ab-1322-in-its-proper-context-94ffe9cf941c</guid><dc:creator><![CDATA[Zac Bowling 🥑]]></dc:creator><pubDate>Wed, 28 Apr 2021 07:00:00 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!sd_p!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d44185a-79e8-4b1c-b3dc-54933e551ee5_864x864.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>First in a 3 part op-ed that I authored for the <a href="https://alamedasun.com/">Alamada Sun</a>. Printed April 28,&nbsp;2021.</em></p><p>Last week, the Sun ran a story describing Assembly Bill (AB) 1322 (&#8220;Bill Could Circumvent City Charter,&#8221; April 22), explaining how the bill works. Space restraints did not allow description of the bill&#8217;s history and purpose: to assist cities with issues during the Housing Element&nbsp;process.</p><p>Having seen some confusion and speculation in Alameda and given that I&#8217;ve provided input on amendments to this bill in the past, I felt it was important to explain the issues. Given the complexity, this will be a three-part series as the bill progresses through the legislature.</p><p>AB 1322, as written today, helps a number of cities, including Alameda, avoid a potentially costly legal situation when conflicts arise between locally passed voter initiatives and state laws about forming a Housing Element. The bill gives Alameda a tool to allow the city to do something close to what it&#8217;s done twice before, but without incurring the legal risk it has in the&nbsp;past.</p><p>First some background. Right now the state is dealing with an unprecedented housing crisis: we&#8217;re not building enough housing for our population. Skyrocketing housing costs, displacement and homelessness are all a&nbsp;result.</p><p>The state must solve this problem. One of the systems at the state&#8217;s disposal to drive the development of new housing is the Housing Element&nbsp;process.</p><p>Since 1969, the state has required municipalities to write a new Housing Element and get it accepted by the state every eight years. A Housing Element is a plan where the city shows where they will allow for the Regional Housing Needs Allocation (RHNA), the amount of new low income, median income, and market-rate housing required by the state. For the 2022&#8211;2030 housing element cycle, Alameda&#8217;s currently proposed RHNA is 5406 new units of&nbsp;housing.</p><p>There are a lot of rules with forming a Housing Element, including showing that housing is zoned appropriately, that some of it is multi-family, that the plan is feasible, that there is reasonable or expected interest to build new housing where it&#8217;s specified, and that the plan doesn&#8217;t just stick all the new housing in one spot but spreads it out to improve&nbsp;equity.</p><p>Local planning staff is tasked with putting these plans together, with community input, and they often have to change zoning codes, height limits and other local rules to be able to&nbsp;comply.</p><p>The penalties for not complying are severe. Previously the state didn&#8217;t have the resources to enforce compliance, but this has changed this cycle with new laws and funding to finally crack down on&nbsp;cities.</p><p>With the laws in place today, a city can essentially lose all local control on housing if they fail to certify. Developers would have the freedom to bypass local zoning and restrictions and to build new housing if they can show a judge it would help meet the RHNA and provide some affordable housing. The city would also lose access to needed funding for infrastructure and other projects, like parks if they fail to&nbsp;certify.</p><p>This would be an absolutely terrible situation. You want the city to have a compliant Housing Element. For Alameda, this could even jeopardize the city&#8217;s ability to receive funding for the completion of Jean Sweeney&nbsp;Park.</p><p>Now let&#8217;s say your city is trying to put together a Housing Element and in doing so it realizes that it can&#8217;t comply with state law because of a past voter initiative that places restrictions on new housing. When passed, these initiatives may have not forced the city out of compliance but now, as state law has evolved, they prevent the city from being able to achieve a compliant Housing&nbsp;Element.</p><p>For Alameda, this situation is a reality. Article 26 of the City Charter (inserted in the charter in 1973 via Measure A) has both density restrictions and single-family home restrictions, which put us in direct conflict with the state requirement to pass a compliant Housing Element. This conflict isn&#8217;t new,&nbsp;however.</p><p>In the next part of this series, I&#8217;ll dive more into this conflict in detail, how Alameda has dealt with it before, current options given new laws this cycle, and the potential costly legal situation it faces&nbsp;now.</p><p>Zac Bowling lives in&nbsp;Alameda.</p><p><em>Originally published at <a href="https://alamedasun.com/news/putting-ab-1322-its-proper-context">https://alamedasun.com</a> on April 28,&nbsp;2021.</em></p>]]></content:encoded></item><item><title><![CDATA[Improving civic engagement with AB 339]]></title><description><![CDATA[AB 339 is an interesting bill.]]></description><link>https://sub.zacbowling.com/p/improving-civic-engagement-with-ab-339-510e37ca0204</link><guid isPermaLink="false">https://sub.zacbowling.com/p/improving-civic-engagement-with-ab-339-510e37ca0204</guid><dc:creator><![CDATA[Zac Bowling 🥑]]></dc:creator><pubDate>Tue, 27 Apr 2021 16:41:12 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/541c8fa5-8ea8-457e-bfff-3733932411a6_1024x572.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!JjDF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0af2645d-2440-4000-a7d4-1ea26528b8a2_1024x572.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!JjDF!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0af2645d-2440-4000-a7d4-1ea26528b8a2_1024x572.png 424w, https://substackcdn.com/image/fetch/$s_!JjDF!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0af2645d-2440-4000-a7d4-1ea26528b8a2_1024x572.png 848w, https://substackcdn.com/image/fetch/$s_!JjDF!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0af2645d-2440-4000-a7d4-1ea26528b8a2_1024x572.png 1272w, https://substackcdn.com/image/fetch/$s_!JjDF!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0af2645d-2440-4000-a7d4-1ea26528b8a2_1024x572.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!JjDF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0af2645d-2440-4000-a7d4-1ea26528b8a2_1024x572.png" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0af2645d-2440-4000-a7d4-1ea26528b8a2_1024x572.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!JjDF!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0af2645d-2440-4000-a7d4-1ea26528b8a2_1024x572.png 424w, https://substackcdn.com/image/fetch/$s_!JjDF!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0af2645d-2440-4000-a7d4-1ea26528b8a2_1024x572.png 848w, https://substackcdn.com/image/fetch/$s_!JjDF!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0af2645d-2440-4000-a7d4-1ea26528b8a2_1024x572.png 1272w, https://substackcdn.com/image/fetch/$s_!JjDF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0af2645d-2440-4000-a7d4-1ea26528b8a2_1024x572.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p>AB 339 is an interesting bill. It would make public comment via the internet and telephone, at state and local government meetings, permanent even after the pandemic is over and the governor&#8217;s executive order expires. These iconic zoom public meetings where we can tell our officials to <a href="https://twitter.com/ianamurray/status/1267986139488624640">&#8220;suck my dick and choke on it&#8221;</a> could be something we continue to see for years to&nbsp;come.</p><p>Public comment and civic engagement in local and state government since the pandemic started has dramatically increased. It has in some ways made some minor issues more political and caused local officials to be more performative because of the exposure each item gets. The mundane and routine business some bodies have to do has become a bit more dramatic.</p><p>But on the flip side is the sheer number of public comments has dramatically increased in local government and people are paying more attention. This ultimately is a good&nbsp;thing.</p><p>Before the pandemic, if you wanted to participate you had to show up at your town hall and wait in person for the item to come. You had to commit. If you are not retired or have a flexible schedule it really could interrupt your ability to get involved. Now we are seeing more younger folks get involved because the government is more accessible to&nbsp;them.</p><p>Now, for me as a person with a full-time job, I can hit 2 or 3 public meetings in a single day across the state. This is important when you live in an area with multiple overlapping jurisdictions and those bodies that don&#8217;t always coordinate a schedule to keep you from having conflicts. I&#8217;ve been able to attend public meetings around the state ferry agency (WETA), Oakland Airport, and city council in a single&nbsp;night.</p><p>Local governments have had to adapt a bit. I don&#8217;t think the Brown Act (and the similar act that covers state bodies) conceived of this situation the way it was written. It does give local bodies some flexibility but a lot is vague (intentionally). The amount of time each person can speak has decreased across in many bodies. The only move some of them can use to get through an agenda. We may need a system for constitutions to simply note in public comment if they are in support or against an item to simply log that and avoid taking time giving a long-winded opinion repeating points already&nbsp;made.</p><p>Sometimes public comment can go completely off the rails. Often people use the time to just hear themselves speak now or speak to a base when they have the microphone for a sec. I get it and there is some value to that but sometimes it&#8217;s a complete waste of time. I wonder though, are you try to speak more to everyone else and have your comment heard by everyone, or are you trying to sway the body to vote in a certain direction? Before meetings were streamed, recorded, and more than just the minutes were published, it was more common for people to speak to the body rather than the public itself. Now people are speaking to the body and to the crowd. Dynamics have&nbsp;shifted.</p><p>Just last week there was someone that called into one meeting where I don&#8217;t think he paid attention to what the item was (relating to routine budget approval), and I&#8217;m pretty sure he was high. He started talking about buying tablets for schools and wanting to go eat tacos with everyone. It was entertaining but that sort of thing prevents the body from completing an agenda. In effect, the public comment could in theory create a type of citizen filibuster.</p><p>One solution I&#8217;ve seen one planning board do is to hold public comment for contentious issues on a different day. Essentially to pull this off they would put the item on a separate agenda, have the reading of the item and presentation, hold any clarifying questions by the body, and then suspend the agenda. Later they would schedule a meeting at an hour during the day that wasn&#8217;t the normal meeting time and in that meeting, they would resume the agenda, hold public comment, let people get their say, and then suspend the agenda after it was over. Then later they would have a 3rd meeting where they would unsuspended the agenda yet again, complete the discussion on the item, make a motion, and close the item. Doing this would push all the public comments to a time where people can speak unbounded on the item and the public comments wouldn&#8217;t disrupt the normal flow of the meeting. You could tell that the body members were busy doing other things while people were speaking at public comment so I&#8217;m not sure if they were fully listening to what was being said but for them it kept things moving so government could function.</p><p>I&#8217;m fully in favor of AB 339 but I very much expect that later we will have new bills to amend the Brown Act as we continue to adapt how public comment works&nbsp;now.</p>]]></content:encoded></item><item><title><![CDATA[Alameda Sun — Measure Z LTE]]></title><description><![CDATA[Measure Z for a more equitable Alameda]]></description><link>https://sub.zacbowling.com/p/alameda-sun-measure-z-lte-bfb8f5fa842e</link><guid isPermaLink="false">https://sub.zacbowling.com/p/alameda-sun-measure-z-lte-bfb8f5fa842e</guid><dc:creator><![CDATA[Zac Bowling 🥑]]></dc:creator><pubDate>Wed, 23 Sep 2020 17:37:13 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/845dc7be-6e22-49a1-94d9-7bf9b2023946_1024x897.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!KoY2!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e94bab6-0167-480a-ba9d-b08a9999b79f_1024x897.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!KoY2!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e94bab6-0167-480a-ba9d-b08a9999b79f_1024x897.jpeg 424w, https://substackcdn.com/image/fetch/$s_!KoY2!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e94bab6-0167-480a-ba9d-b08a9999b79f_1024x897.jpeg 848w, https://substackcdn.com/image/fetch/$s_!KoY2!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e94bab6-0167-480a-ba9d-b08a9999b79f_1024x897.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!KoY2!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e94bab6-0167-480a-ba9d-b08a9999b79f_1024x897.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!KoY2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e94bab6-0167-480a-ba9d-b08a9999b79f_1024x897.jpeg" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2e94bab6-0167-480a-ba9d-b08a9999b79f_1024x897.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!KoY2!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e94bab6-0167-480a-ba9d-b08a9999b79f_1024x897.jpeg 424w, https://substackcdn.com/image/fetch/$s_!KoY2!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e94bab6-0167-480a-ba9d-b08a9999b79f_1024x897.jpeg 848w, https://substackcdn.com/image/fetch/$s_!KoY2!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e94bab6-0167-480a-ba9d-b08a9999b79f_1024x897.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!KoY2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e94bab6-0167-480a-ba9d-b08a9999b79f_1024x897.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a><figcaption class="image-caption">My wife showing our Alameda YIMBY&nbsp;pride</figcaption></figure></div><h3>Measure Z for a more equitable Alameda</h3><p>In Alameda California, we have had 47 year old apartment ban. We enshrined a racist housing law in our city&#8217;s charter. This year we get to vote to&nbsp;remove.</p><p>Here is the unabridged letter that I submitted to the Alameda Sun, our local paper of record, asking we repeal Measure&nbsp;Z:</p><blockquote><p><em>One of the questions we require before allowing anyone to join the Alameda Peeps Facebook group is, &#8220;Do you currently live in Alameda?&#8221;.</em></p></blockquote><blockquote><p><em>Too many responses are of people displaced from Alameda because of high rents wanting to move back. Sometimes it&#8217;s people who work in Alameda, teachers, baristas, and city employees who can&#8217;t afford the skyrocketing rents but still feel part of this community.</em></p></blockquote><blockquote><p><em>I&#8217;m so grateful to own a home now, especially in Alameda. It wasn&#8217;t easy to pull that off. Still, I&#8217;ve come to realize my privilege of calling Alameda home as someone who can afford it, seeing so many that&nbsp;can&#8217;t.</em></p></blockquote><blockquote><p><em>So many of the people who work in Alameda, including many of our essential workers and first responders, can&#8217;t afford to live here&#8202;&#8212;&#8202;completely priced out by a scarcity of affordable options. Workers have become forced to commute long distances as housing costs rise. All while many of the people who live here commute off the island. It&#8217;s unfortunate and, in many ways, not&nbsp;fair.</em></p></blockquote><blockquote><p><em>This mismatch drives up the costs of everything in town; it hurts local businesses trying to attract talent and causes the traffic we all hate while contributing to climate&nbsp;change.</em></p></blockquote><blockquote><p><em>This path we are on is not sustainable.</em></p></blockquote><blockquote><p><em>Some do not think Alameda should have any additional housing. Nevertheless, the state requires cities to make available areas to build additional homes. We must do our part to deal with the housing crisis we face. Being an island does not excuse our legal or moral responsibility.</em></p></blockquote><blockquote><p><em>The state says how much we have to build, not the City Charter. But then the charter explicitly requires that we only build the largest, most expensive types of homes that add the most cars, hurting public transit, adding to our traffic woes. We should instead be shooting to have housing that is more affordable to a broader range of people. That required new housing could encourage less car use if built near our mass-transit corridors.</em></p></blockquote><blockquote><p><em>Article 26 is obsolete, and it&#8217;s holding us back from doing what is right by our community. Forty-seven years is long enough. Exclusionary zoning has no place in our city&#8217;s charter. Alamedans need housing they can afford before rising housing costs displace any more of our neighbors. That&#8217;s why I&#8217;m voting yes on Z. I hope you do&nbsp;too.</em></p></blockquote><blockquote><p><em>Learn more about Measure Z in Alameda at <a href="https://www.yesonmeasurez.com/">https://www.yesonmeasurez.com/</a></em></p></blockquote>]]></content:encoded></item><item><title><![CDATA[GTFO of my menu bar]]></title><description><![CDATA[November 30, 2013]]></description><link>https://sub.zacbowling.com/p/gtfo-of-my-menu-bar-a7f308d96245</link><guid isPermaLink="false">https://sub.zacbowling.com/p/gtfo-of-my-menu-bar-a7f308d96245</guid><dc:creator><![CDATA[Zac Bowling 🥑]]></dc:creator><pubDate>Sat, 25 Feb 2017 04:20:05 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/9da4f81b-8c72-4b48-9b28-f31e4ef4f642_158x21.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>November 30,&nbsp;2013</p><p>Seriously apps. This is my space and you are trespassing.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Bv30!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7db52cb1-1f51-472b-a8a7-09b5baee250c_158x21.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Bv30!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7db52cb1-1f51-472b-a8a7-09b5baee250c_158x21.png 424w, https://substackcdn.com/image/fetch/$s_!Bv30!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7db52cb1-1f51-472b-a8a7-09b5baee250c_158x21.png 848w, https://substackcdn.com/image/fetch/$s_!Bv30!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7db52cb1-1f51-472b-a8a7-09b5baee250c_158x21.png 1272w, https://substackcdn.com/image/fetch/$s_!Bv30!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7db52cb1-1f51-472b-a8a7-09b5baee250c_158x21.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Bv30!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7db52cb1-1f51-472b-a8a7-09b5baee250c_158x21.png" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7db52cb1-1f51-472b-a8a7-09b5baee250c_158x21.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!Bv30!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7db52cb1-1f51-472b-a8a7-09b5baee250c_158x21.png 424w, https://substackcdn.com/image/fetch/$s_!Bv30!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7db52cb1-1f51-472b-a8a7-09b5baee250c_158x21.png 848w, https://substackcdn.com/image/fetch/$s_!Bv30!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7db52cb1-1f51-472b-a8a7-09b5baee250c_158x21.png 1272w, https://substackcdn.com/image/fetch/$s_!Bv30!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7db52cb1-1f51-472b-a8a7-09b5baee250c_158x21.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p>I don&#8217;t mind after I install your app that you add a menu while you are&nbsp;running.</p><p>I don&#8217;t mind you sticking around up there if there is an expectation that you have some usefulness running in the background for me (IM clients, syncing tools, quick access to hardware features, etc).</p><p><strong>But what I can&#8217;t stand is you moving in unannounced and not giving me an easy preference or option to kill your damn icon.</strong> It seems the most useless apps and features (usually bundled with other bigger apps like updaters) are also the ones that seem to want to move in. I have no use for you so why the hell do I have to look at&nbsp;you?</p><p>I&#8217;m looking at&nbsp;you:</p><p>People care about this space. It&#8217;s valuable real estate. One of my old favorite tumblr&#8217;s is <a href="http://macmenubars.com/">MacMenuBars</a> where people display their menu bars and link the apps they have deemed as worthy of showcasing. It&#8217;s so valuable that apps like <a href="http://www.macbartender.com/">bartender</a> exist to help you get it under control. It&#8217;s sacred space and you think developers would get a&nbsp;hint.</p><p>If you want to be in my menu bar you follow these simple&nbsp;rules:</p><ul><li><p>Be easy to&nbsp;kill</p></li><li><p>Provide retina icons (it&#8217;s been over a year already since the rMBP came&nbsp;out)</p></li><li><p>Provide black icons or an option to enable them. Apple doesn&#8217;t make colorful icons (except the keyboard switcher).</p></li></ul>]]></content:encoded></item></channel></rss>