1<!DOCTYPE html> 2<html lang="en"> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 5
5<script> 6 /* Night printing resolver â runs before CSS so first paint is correct. 7 3-state: localStorage "wtfjht-theme" = "day" | "night" | absent (= AUTO, follow OS). */ 8 (function () { 9 var KEY = 'wtfjht-theme', root = document.documentElement, mq = null; 10 function stored() { 11 var v = null; 12 try { v = localStorage.getItem(KEY); } catch (e) { return null; } 13 if (v === 'day' || v === 'night') return v; 14 if (v !== null) { try { localStorage.removeItem(KEY); } catch (e) {} } 15 return null; 16 } 17 function apply(pref) { 18 var night = pref ? pref === 'night' : !!(mq && mq.matches); 19 root.classList.add('theme-snap'); // suppress transitions: theme flips are instant 20 if (night) root.setAttribute('data-theme', 'night'); 21 else root.removeAttribute('data-theme'); 22 if (window.requestAnimationFrame) { 23 requestAnimationFrame(function () { requestAnimationFrame(function () { root.classList.remove('theme-snap'); }); }); 24 } else { root.classList.remove('theme-snap'); } 25 } 26 try { mq = window.matchMedia('(prefers-color-scheme: dark)'); } catch (e) {} 27 function onOsChange() { if (stored() === null) apply(null); } 28 if (mq) { 29 if (mq.addEventListener) { mq.addEventListener('change', onOsChange); } 30 else if (mq.addListener) { mq.addListener(onOsChange); } 31 } 32 window.addEventListener('storage', function (e) { 33 if (e.key === KEY || e.key === null) { apply(stored()); } 34 }); 35 window.WTFTheme = { KEY: KEY, stored: stored, apply: apply }; 36 apply(stored()); 37 })(); 38 </script>
38 39 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 40 <meta name="theme-color" content="#000000"> 41 <meta name="color-scheme" content="light dark"> 42 43 <!-- AnchorJS styles, pre-supplied WITHOUT its embedded icon font: the library 44 only injects its own <style> (incl. @font-face) if style.anchorjs is absent. 45 Icon is a text glyph via data-anchorjs-icon, so it never enters textContent 46 (share cards, selection copy stay clean). --> 47 <style class="anchorjs">.anchorjs-link{opacity:0;text-decoration:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*:hover>.anchorjs-link,.anchorjs-link:focus{opacity:1}[data-anchorjs-icon]::after{content:attr(data-anchorjs-icon)}</style> 48 <meta name="apple-mobile-web-app-title" content="WTFJHT" /> 49 50 <!-- Preconnect to external origins for faster resource loading --> 51 <link rel="preconnect" href="https://www.googletagmanager.com" crossorigin> 52 <link rel="dns-prefetch" href="https://www.googletagmanager.com"> 53 54 55 <!-- Preload critical above-the-fold image --> 56 <link rel="preload" href="https://whatthefuckjusthappenedtoday.com/favicon.svg?v=3" as="image" type="image/svg+xml"> 57 58 <link rel="stylesheet" href="https://whatthefuckjusthappenedtoday.com/styles.css?v=1790254453" type="text/css"> 59 <link rel="manifest" href="https://whatthefuckjusthappenedtoday.com/manifest.json?v=3"> 60 <link rel="icon" href="https://whatthefuckjusthappenedtoday.com/favicon.ico?v=3"> 61 <link rel="icon" type="image/png" sizes="96x96" href="https://whatthefuckjusthappenedtoday.com/favicon-96x96.png?v=3"> 62 <link rel="icon" type="image/png" sizes="32x32" href="https://whatthefuckjusthappenedtoday.com/favicon-32x32.png?v=3"> 63 <link rel="icon" type="image/png" sizes="16x16" href="https://whatthefuckjusthappenedtoday.com/favicon-16x16.png?v=3"> 64 <link rel="icon" type="image/svg+xml" href="https://whatthefuckjusthappenedtoday.com/favicon.svg?v=3"> 65 <link rel="apple-touch-icon" sizes="180x180" href="https://whatthefuckjusthappenedtoday.com/apple-touch-icon.png?v=3" /> 66 <link rel="alternate" type="application/rss+xml" title="WTFJHT (RSS)" href="https://whatthefuckjusthappenedtoday.com/rss.xml"> 67 <link rel="alternate" type="application/atom+xml" title="WTFJHT (Atom)" href="https://whatthefuckjusthappenedtoday.com/atom.xml"> 68 <link rel="alternate" type="application/feed+json" title="WTFJHT (JSON)" href="https://whatthefuckjusthappenedtoday.com/feed.json"> 69 70 71 <!-- Begin Jekyll SEO tag v2.8.0-wtfjht(WTFJHT Customized) --> 72<title>Political News for Normal People. | What The Fuck Just Happened Today?</title> 73<meta name="generator" content="Jekyll v3.10.0" /> 74<meta property="og:title" content="Political News for Normal People." /> 75<meta name="author" content="Matt Kiser" /> 76<meta property="og:locale" content="en_US" /> 77<meta name="description" content="Your essential guide to the shock and awe in national politics. A sane, once-a-day newsletter helping normal people make sense of the news." /> 78<meta property="og:description" content="Your essential guide to the shock and awe in national politics. A sane, once-a-day newsletter helping normal people make sense of the news." /> 79<link rel="canonical" href="https://whatthefuckjusthappenedtoday.com/" /> 80<meta property="og:url" content="https://whatthefuckjusthappenedtoday.com/" /> 81<meta property="og:site_name" content="What The Fuck Just Happened Today?" /> 82<meta property="og:image" content="https://whatthefuckjusthappenedtoday.com/uploads/og-image.jpg" /> 83<meta property="og:type" content="website" /> 84<meta name="twitter:card" content="summary_large_image" /> 85<meta property="twitter:image" content="https://whatthefuckjusthappenedtoday.com/uploads/og-image.jpg" /> 86<meta property="twitter:title" content="Political News for Normal People." /> 87<meta property="twitter:description" content="Your essential guide to the shock and awe in national politics. A sane, once-a-day newsletter helping normal people make sense of the news." /> 88<meta name="twitter:site" content="@WTFJHT" /> 89<meta name="twitter:creator" content="@matt_kiser" /> 90<meta property="fb:admins" content="29904434" /> 91<meta property="article:publisher" content="1415262761838827" /> 92<meta property="fb:app_id" content="601457263382211" />
93<script type="application/ld+json"> 94{"@context": "https://schema.org", 95"@type": "WebSite", 96"name": "What The Fuck Just Happened Today?", 97"url": "https://whatthefuckjusthappenedtoday.com", 98"description": "Your essential guide to the shock and awe in national politics. Read in moderation.", 99"potentialAction": {"@type": "SearchAction", 100"target": {"@type": "EntryPoint", 101"urlTemplate": "https://whatthefuckjusthappenedtoday.com/?q={search_term_string}" 102 }, 103"query-input": "required name=search_term_string" 104 }}</script>
104 105<!-- End Jekyll SEO tag --> 106 107 108 109 <meta property="fb:pages" content="1415262761838827" /> 110 <meta name="google-site-verification" content="ny31Ianz2HLvyY_ynQAoMvX8_F8asoIbuBo3PnnDbRo" /> 111 112
112<script src="https://whatthefuckjusthappenedtoday.com/public/js/subscribe.js" defer></script>
vendor: 73 bytes, lines 112-114
112 113 114 <script async src="https://www.googletagmanager.com/gtag/js?id=
114G-P3G02CXQXW
vendor: 16 bytes, lines 114-115
114"></script> 115
115<script> 116
vendor: 145 bytes, lines 116-119
116window.dataLayer = window.dataLayer || []; 117 function gtag(){dataLayer.push(arguments);} 118 gtag('js', new Date()); 119 gtag('config', '
119G-P3G02CXQXW
vendor: 8 bytes, lines 119-120
119'); 120
120</script>
120 121
121<script> 122 document.addEventListener('DOMContentLoaded', function() { 123 document.querySelectorAll('form[action*="list-manage.com/subscribe"]').forEach(function(form) { 124 form.addEventListener('submit', function(event) { 125 // public/js/subscribe.js preventDefaults this submit and fires sign_up 126 // itself once the worker confirms the address, so counting here too 127 // would count the addresses the worker rejects. Anything that still 128 // posts natively to Mailchimp is counted here, on intent. 129 if (event.defaultPrevented) return; 130 gtag('event', 'sign_up', { 131 // Split into the STANDARD method param on purpose: a custom param 132 // would need a dimension registered in the GA4 admin to be reportable. 133 method: /^\/unsubscribe(\/|$)/.test(window.location.pathname) ? 'newsletter-resubscribe' : 'newsletter' 134 }); 135 }); 136 }); 137 138 // Member CTA click 139 var memberCta = document.querySelector('a.nav-cta[href*="membership"]'); 140 if (memberCta) { 141 memberCta.addEventListener('click', function() { 142 if (typeof gtag === 'function') gtag('event', 'member_cta_click'); 143 }); 144 } 145 146 // Scroll depth tracking (25%, 50%, 75%, 100%) 147 var scrollThresholds = [25, 50, 75, 100]; 148 var scrollFired = {}; 149 function checkScrollDepth() { 150 var docHeight = document.documentElement.scrollHeight - window.innerHeight; 151 if (docHeight <= 0) return; 152 var percent = Math.round((window.scrollY / docHeight) * 100); 153 for (var i = 0; i < scrollThresholds.length; i++) { 154 var t = scrollThresholds[i]; 155 if (percent >= t && !scrollFired[t]) { 156 scrollFired[t] = true; 157 if (typeof gtag === 'function') gtag('event', 'scroll_depth', { percent: t }); 158 } 159 } 160 } 161 var scrollTimer; 162 window.addEventListener('scroll', function() { 163 clearTimeout(scrollTimer); 164 scrollTimer = setTimeout(checkScrollDepth, 150); 165 }, { passive: true }); 166 167 // On This Day link clicks 168 var otdLinks = document.querySelectorAll('.historical-posts__item'); 169 for (var oi = 0; oi < otdLinks.length; oi++) { 170 otdLinks[oi].addEventListener('click', function() { 171 var yearsEl = this.querySelector('.historical-posts__years'); 172 var years = yearsEl ? parseInt(yearsEl.textContent) : 0; 173 if (typeof gtag === 'function') gtag('event', 'on_this_day_click', { years_ago: years }); 174 }); 175 } 176 177 // Read complete â fires once when bottom of post content is reached 178 var postContent = document.querySelector('.post-content'); 179 if (postContent && window.IntersectionObserver) { 180 var sentinel = document.createElement('div'); 181 sentinel.style.height = '1px'; 182 postContent.appendChild(sentinel); 183 var readObserver = new IntersectionObserver(function(entries) { 184 if (entries[0].isIntersecting) { 185 if (typeof gtag === 'function') gtag('event', 'read_complete'); 186 readObserver.disconnect(); 187 } 188 }, { threshold: 1.0 }); 189 readObserver.observe(sentinel); 190 } 191 192 }); 193 </script>
193 194 195 </head> 196 <body> 197 <a href="#main-content" class="skip-link">Skip to main content</a> 198 <div class="container content"> 199 <nav class="site-nav" aria-label="Main navigation"> 200 <div class="nav-container"> 201 <div class="nav-left"> 202 <a href="https://whatthefuckjusthappenedtoday.com/" class="nav-home" aria-label="WTF Just Happened Today Home"> 203 <img src="https://whatthefuckjusthappenedtoday.com/favicon.svg?v=3" alt="WTFJHT" class="nav-logo" width="32" height="32"> 204 </a> 205 <ul class="nav-quick"> 206 <li><a href="/2026/09/23/day-2073/">Latest</a></li> 207 <li><a href="/2026/09/22/day-2072/">Previous</a></li> 208 </ul> 209 </div> 210 211 <ul class="nav-links" role="list"> 212 <li><a href="https://whatthefuckjusthappenedtoday.com/about/">About</a></li> 213 <li><a href="https://whatthefuckjusthappenedtoday.com/subscribe/">Newsletter</a></li> 214 <li><a href="https://whatthefuckjusthappenedtoday.com/membership/" class="nav-cta">Become a Member</a></li> 215 </ul> 216 </div> 217 </nav> 218 219 <header class="masthead"> 220 <p class="masthead-title"> 221 <a href="https://whatthefuckjusthappenedtoday.com/" title="What The Fuck Just Happened Today?">What The Fuck Just Happened Today?</a> 222 </p> 223 <p class="masthead-description">Your essential guide to the shock and awe in national politics. Read in moderation.</p> 224 <p class="masthead-meta"> 225 Curated by <a href="https://whatthefuckjusthappenedtoday.com/author/matt-kiser/">Matt Kiser</a> 226 </p> 227 228 <div class="wtf-search" role="search"> 229 <div class="outer-wrapper"> 230 <div class="input-wrapper"> 231 232<svg class="icon" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="11" cy="11" r="8"/><path d="m21 21-4.35-4.35"/></svg> 233 234 235 <input type="text" class="algolia__input js-algolia__input" autocomplete="off" name="query" placeholder="Search articles..." aria-label="Search articles" /> 236 </div> 237 </div> 238 </div> 239 </header> 240 241 242 243 <main id="main-content"> 244 <div class="wtf-search-results"> 245 <div class="algolia__search-content js-algolia__search-content"> 246 <h2 class="search-results__title">Search Results</h2> 247 <div class="posts algolia__results" aria-live="polite"></div> 248 </div> 249 </div> 250 251 <div class="algolia__initial-content js-algolia__initial-content"> 252 <div class="posts"> 253 254 <article class="post" 255 data-post-url="/2026/09/23/day-2073/" 256 data-carousel-day="2073" 257 data-carousel-desc="âDoing the best that he can.â" 258 data-carousel-date="Sep 23, 2026" 259 data-carousel-midterms="2026-11-03" 260 data-carousel-presidential="2028-11-07" 261 data-carousel-tios="Iran vowed to fight âuntil our last breathâ and ânever bow our head or bend at the kneeâ to Trumpâs demands; the Justice Department urged a federal judge to uphold Trumpâs ban of CNN, MS NOW, and Politico from the White House, arguing that âaccess to the White House is a privilege â not a rightâ; the FBI was hacked and âvery sensitive dataâ on nearly all agents and job applicants was stolen; 17 Democratic senators urged Trump to seek an AI agreement with China to establish âguardrailsâ around development; the first architect for Trumpâs White House ballroom resigned after warning that the preliminary design violated building safety codes; Melania Trump said Trump is âdoing the best that he canâ; and 56% of Americans say the rule of law in the U.S. is weaker now than it was 10 years ago."> 262 263 264 265 266 267 268 269 <div class="subscribe-box"> 270 <h2 class="subscribe-box__title">A political newsletter for normal people.</h2> 271 <p class="lead">WTF Just Happened Today? is a sane, once-a-day newsletter helping normal people make sense of the news. Curated daily and delivered to 200,000+ people every afternoon around 3 pm Pacific.</p> 272 <div class="subscribe-form"> 273 <form action="https://whatthefuckjusthappenedtoday.us7.list-manage.com/subscribe/post?u=104aa3abb9fec8b4d037ed51d&id=9813b73b1a" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank" novalidate data-subscribe-api="https://wtfjht-just-asking-questions.matt-kiser.workers.dev"> 274 <div class="subscribe-form__row">
275 <label for="mce-EMAIL" class="sr-only">Email address</label> 276 <input type="email" value="" name="EMAIL" class="subscribe-form__input" id="mce-EMAIL" placeholder="Type your email..." autocomplete="email" required> 277 <input type="submit" value="Subscribe for free" name="subscribe" id="mc-embedded-subscribe" class="subscribe-form__button"> 278 </div> 279 <div style="position:absolute;left:-5000px;" aria-hidden="true"> 280 <input type="text" name="website" tabindex="-1" value="" autocomplete="off"> 281 <input type="text" name="b_104aa3abb9fec8b4d037ed51d_9813b73b1a" tabindex="-1" value="" autocomplete="off"> 282 </div><div class="cf-turnstile" data-sitekey="0x4AAAAAADAzC0xAFcUN12kn" data-appearance="interaction-only" data-execution="execute" data-callback="wtfjhtSubscribeToken" data-error-callback="wtfjhtSubscribeError" data-response-field-name="cf-turnstile-response"></div><p class="subscribe-form__trust" role="status" aria-live="polite">Free. No spam. Unsubscribe anytime.</p> 283 </form> 284</div> 285 286</div> 287 <hr> 288 289 290<h1 class="post-title"> 291 <a href="/2026/09/23/day-2073/"> 292 Day 2073: 293 <span class="post-small">âDoing the best that he can.â</span></a> 294</h1> 295 296 297<div class="post-meta"> 298 <div class="post-meta__main"> 299 <div class="post-meta__details"> 300 301 <span class="post-meta__author">By <a href="/author/matt-kiser/">Matt Kiser</a></span><span class="post-meta__sep" aria-hidden="true">·</span> 302 303 304 <time class="post-meta__date" datetime="2026-09-23T14:05:27-07:00">Sep 23, 2026, 2:05pm PT</time> 305 </div> 306 <div class="post-meta__stats"><span>628 words</span><span class="post-meta__sep" aria-hidden="true">·</span><span>3‑min read</span><span class="post-meta__sep" aria-hidden="true">·</span><span>~14 min saved</span> 307</div> 308 </div> 309 <div class="post-meta__actions"> 310 311 312 <div class="share-widget" data-share-url="https://whatthefuckjusthappenedtoday.com/2026/09/23/day-2073/" data-share-title="Day 2073: "Doing the best that he can.""> 313 <button type="button" class="share-widget__trigger" aria-label="Share this article" aria-expanded="false"> 314 315<svg class="icon" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8"/><polyline points="16 6 12 2 8 6"/><line x1="12" x2="12" y1="2" y2="15"/></svg> 316 317 Share 318 </button> 319 <div class="share-widget__card" aria-hidden="true"> 320 <button type="button" class="share-widget__option" data-action="copy"> 321 <span class="share-widget__icon"> 322<svg class="icon" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"/><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"/></svg> 323 324</span> 325 <span class="share-widget__label">Copy link</span> 326 </button> 327 <button type="button" class="share-widget__option share-widget__native" data-action="native-share" hidden> 328 <span class="share-widget__icon"> 329<svg class="icon" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="m22 2-7 20-4-9-9-4 20-7z"/><path d="M22 2 11 13"/></svg> 330 331</span> 332 <span class="share-widget__label">Send</span> 333 </button> 334 <a class="share-widget__option" href="/cdn-cgi/l/email-protection#fcc38f899e96999f88c1ba8e9391d9ceccaba8bad9ceccb6898f88d9ceccb49d8c8c99929998d9cecca893989d85d9cfbdd9ceccb89d85d9cecccecccbcfd9cfbdd9ceccd9ceceb89395929bd9cecc889499d9cecc9e998f88d9cecc88949d88d9cecc9499d9cecc9f9d92d2d9ceceda9d918cc79e939885c19488888c8fc6d3d38b949d888894999a899f9796898f88949d8c8c999299988893989d85d29f9391d3cecccecad3ccc5d3cecfd3989d85d1cecccbcfd3"> 335 <span class="share-widget__icon"> 336<svg class="icon" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect width="20" height="16" x="2" y="4" rx="2"/><path d="m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7"/></svg> 337 338</span>
339 <span class="share-widget__label">Email</span> 340 </a> 341 <a class="share-widget__option" href="https://wa.me/?text=Day%202073%3A%20%22Doing%20the%20best%20that%20he%20can.%22%20https://whatthefuckjusthappenedtoday.com/2026/09/23/day-2073/" target="_blank" rel="noopener"> 342 <span class="share-widget__icon"> 343<svg class="icon" width="18" height="18" viewBox="0 0 24 24" fill="currentColor"><path d="M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347m-5.421 7.403h-.004a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.26c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.885 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.157 11.892c0 2.096.547 4.142 1.588 5.945L.057 24l6.305-1.654a11.882 11.882 0 005.683 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 00-3.48-8.413z"/></svg> 344 345</span> 346 <span class="share-widget__label">WhatsApp</span> 347 </a> 348 <a class="share-widget__option" href="https://www.facebook.com/sharer/sharer.php?u=https://whatthefuckjusthappenedtoday.com/2026/09/23/day-2073/" target="_blank" rel="noopener"> 349 <span class="share-widget__icon"> 350<svg class="icon" width="18" height="18" viewBox="0 0 24 24" fill="currentColor"><path d="M24 12.073c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.99 4.388 10.954 10.125 11.854v-8.385H7.078v-3.47h3.047V9.43c0-3.007 1.792-4.669 4.533-4.669 1.312 0 2.686.235 2.686.235v2.953H15.83c-1.491 0-1.956.925-1.956 1.874v2.25h3.328l-.532 3.47h-2.796v8.385C19.612 23.027 24 18.062 24 12.073z"/></svg> 351 352</span> 353 <span class="share-widget__label">Facebook</span> 354 </a> 355 <a class="share-widget__option" href="https://bsky.app/intent/compose?text=Day%202073%3A%20%22Doing%20the%20best%20that%20he%20can.%22%0A%0Ahttps://whatthefuckjusthappenedtoday.com/2026/09/23/day-2073/" target="_blank" rel="noopener"> 356 <span class="share-widget__icon"> 357<svg class="icon" width="18" height="18" viewBox="0 0 24 24" fill="currentColor"><path d="M12 10.8c-1.087-2.114-4.046-6.053-6.798-7.995C2.566.944 1.561 1.266.902 1.565.139 1.908 0 3.08 0 3.768c0 .69.378 5.65.624 6.479.815 2.736 3.713 3.66 6.383 3.364.136-.02.275-.039.415-.056-.138.022-.276.04-.415.056-3.912.58-7.387 2.005-2.83 7.078 5.013 5.19 6.87-1.113 7.823-4.308.953 3.195 2.05 9.271 7.733 4.308 4.267-4.882 1.172-6.498-2.74-7.078a8.741 8.741 0 0 1-.415-.056c.14.017.279.036.415.056 2.67.297 5.568-.628 6.383-3.364.246-.828.624-5.79.624-6.478 0-.69-.139-1.861-.902-2.206-.659-.298-1.664-.62-4.3 1.24C16.046 4.748 13.087 8.687 12 10.8Z"/></svg> 358 359</span> 360 <span class="share-widget__label">Bluesky</span> 361 </a> 362 <a class="share-widget__option" href="https://threads.com/intent/post?text=Day%202073%3A%20%22Doing%20the%20best%20that%20he%20can.%22%20https://whatthefuckjusthappenedtoday.com/2026/09/23/day-2073/" target="_blank" rel="noopener"> 363 <span class="share-widget__icon"> 364<svg class="icon" width="18" height="18" viewBox="0 0 192 192" fill="currentColor"><path d="M141.537 88.9883C140.71 88.5919 139.87 88.2104 139.019 87.8451C137.537 60.5382 122.616 44.905 97.5619 44.745C97.4484 44.7443 97.3355 44.7443 97.222 44.7443C82.2364 44.7443 69.7731 51.1409 62.102 62.7807L75.881 72.2328C81.6116 63.5383 90.6052 61.6848 97.2286 61.6848C97.3051 61.6848 97.3819 61.6848 97.4576 61.6855C105.707 61.7381 111.932 64.1366 115.961 68.814C118.893 72.2193 120.854 76.925 121.825 82.8638C114.511 81.6207 106.601 81.2385 98.145 81.7233C74.3247 83.0954 59.0111 96.9879 60.0396 116.292C60.5615 126.084 65.4397 134.508 73.775 140.011C80.8224 144.663 89.899 146.938 99.3323 146.423C111.79 145.74 121.563 140.987 128.381 132.296C133.559 125.696 136.834 117.143 138.28 106.366C144.217 109.949 148.617 114.664 151.047 120.332C155.179 129.967 155.42 145.8 142.501 158.708C131.182 170.016 117.576 174.908 97.0135 175.059C74.2042 174.89 56.9538 167.575 45.7381 153.317C35.2355 139.966 29.8077 120.682 29.6052 96C29.8077 71.3178 35.2355 52.0336 45.7381 38.6827C56.9538 24.4249 74.2039 17.11 97.0132 16.9405C119.988 17.1113 137.539 24.4614 149.184 38.788C154.894 45.8136 159.199 54.6488 162.037 64.9503L178.184 60.6422C174.744 47.9622 169.331 37.0357 161.965 27.974C147.036 9.60668 125.202 0.195148 97.0695 0H96.9569C68.8816 0.19447 47.2921 9.6418 32.7883 28.0793C19.8819 44.4864 13.2244 67.3157 13.0007 95.9325L13 96L13.0007 96.0675C13.2244 124.684 19.8819 147.514 32.7883 163.921C47.2921 182.358 68.8816 191.806 96.9569 192H97.0695C122.03 191.827 139.624 185.292 154.118 170.811C173.081 151.866 172.51 128.119 166.26 113.541C161.776 103.087 153.227 94.5962 141.537 88.9883ZM98.4405 129.507C88.0005 130.095 77.1544 125.409 76.6196 115.372C76.2232 107.93 81.9158 99.626 99.0812 98.6368C101.047 98.5234 102.976 98.468 104.871 98.468C111.106 98.468 116.939 99.0737 122.242 100.233C120.264 124.935 108.662 128.946 98.4405 129.507Z"/></svg> 365 366</span>
367 <span class="share-widget__label">Threads</span> 368 </a> 369 <a class="share-widget__option" href="https://twitter.com/intent/tweet?text=Day%202073%3A%20%22Doing%20the%20best%20that%20he%20can.%22&url=https://whatthefuckjusthappenedtoday.com/2026/09/23/day-2073/" target="_blank" rel="noopener"> 370 <span class="share-widget__icon"> 371<svg class="icon" width="18" height="18" viewBox="0 0 24 24" fill="currentColor"><path d="M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z"/></svg> 372 373</span> 374 <span class="share-widget__label">X</span> 375 </a> 376 <a class="share-widget__option" href="https://mastodonshare.com/?text=Day%202073%3A%20%22Doing%20the%20best%20that%20he%20can.%22&url=https://whatthefuckjusthappenedtoday.com/2026/09/23/day-2073/" target="_blank" rel="noopener"> 377 <span class="share-widget__icon"> 378<svg class="icon" width="18" height="18" viewBox="0 0 24 24" fill="currentColor"><path d="M23.268 5.313c-.35-2.578-2.617-4.61-5.304-5.004C17.51.242 15.792 0 11.813 0h-.03c-3.98 0-4.835.242-5.288.309C3.882.692 1.496 2.518.917 5.127.64 6.412.61 7.837.661 9.143c.074 1.874.088 3.745.26 5.611.118 1.24.325 2.47.62 3.68.55 2.237 2.777 4.098 4.96 4.857 2.336.792 4.849.923 7.256.38.265-.061.527-.132.786-.213.585-.184 1.27-.39 1.774-.753a.057.057 0 0 0 .023-.043v-1.809a.052.052 0 0 0-.02-.041.053.053 0 0 0-.046-.01 20.282 20.282 0 0 1-4.709.545c-2.73 0-3.463-1.284-3.674-1.818a5.593 5.593 0 0 1-.319-1.433.053.053 0 0 1 .066-.054c1.517.363 3.072.546 4.632.546.376 0 .75 0 1.125-.01 1.57-.044 3.224-.124 4.768-.422.038-.008.077-.015.11-.024 2.435-.464 4.753-1.92 4.989-5.604.008-.145.03-1.52.03-1.67.002-.512.167-3.63-.024-5.545Zm-3.748 9.195h-2.561V8.29c0-1.309-.55-1.976-1.67-1.976-1.23 0-1.846.79-1.846 2.35v3.403h-2.546V8.663c0-1.56-.617-2.35-1.848-2.35-1.112 0-1.668.668-1.67 1.977v6.218H4.822V8.102c0-1.31.337-2.35 1.011-3.12.696-.77 1.608-1.164 2.74-1.164 1.311 0 2.302.5 2.962 1.498l.638 1.06.638-1.06c.66-.999 1.65-1.498 2.96-1.498 1.13 0 2.043.395 2.74 1.164.675.77 1.012 1.81 1.012 3.12v6.406Z"/></svg> 379 380</span> 381 <span class="share-widget__label">Mastodon</span> 382 </a> 383 <a class="share-widget__option" href="https://www.linkedin.com/sharing/share-offsite/?url=https://whatthefuckjusthappenedtoday.com/2026/09/23/day-2073/" target="_blank" rel="noopener"> 384 <span class="share-widget__icon"> 385<svg class="icon" width="18" height="18" viewBox="0 0 24 24" fill="currentColor"><path d="M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433c-1.144 0-2.063-.926-2.063-2.065 0-1.138.92-2.063 2.063-2.063 1.14 0 2.064.925 2.064 2.063 0 1.139-.925 2.065-2.064 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z"/></svg> 386 387</span> 388 <span class="share-widget__label">LinkedIn</span> 389 </a> 390 <a class="share-widget__option" href="https://www.reddit.com/submit?url=https://whatthefuckjusthappenedtoday.com/2026/09/23/day-2073/&title=Day%202073%3A%20%22Doing%20the%20best%20that%20he%20can.%22" target="_blank" rel="noopener"> 391 <span class="share-widget__icon"> 392<svg class="icon" width="18" height="18" viewBox="0 0 24 24" fill="currentColor"><path d="M12 0A12 12 0 0 0 0 12a12 12 0 0 0 12 12 12 12 0 0 0 12-12A12 12 0 0 0 12 0zm5.01 4.744c.688 0 1.25.561 1.25 1.249a1.25 1.25 0 0 1-2.498.056l-2.597-.547-.8 3.747c1.824.07 3.48.632 4.674 1.488.308-.309.73-.491 1.207-.491.968 0 1.754.786 1.754 1.754 0 .716-.435 1.333-1.01 1.614a3.111 3.111 0 0 1 .042.52c0 2.694-3.13 4.87-7.004 4.87-3.874 0-7.004-2.176-7.004-4.87 0-.183.015-.366.043-.534A1.748 1.748 0 0 1 4.028 12c0-.968.786-1.754 1.754-1.754.463 0 .898.196 1.207.49 1.207-.883 2.878-1.43 4.744-1.487l.885-4.182a.342.342 0 0 1 .14-.197.35.35 0 0 1 .238-.042l2.906.617a1.214 1.214 0 0 1 1.108-.701zM9.25 12C8.561 12 8 12.562 8 13.25c0 .687.561 1.248 1.25 1.248.687 0 1.248-.561 1.248-1.249 0-.688-.561-1.249-1.249-1.249zm5.5 0c-.687 0-1.248.561-1.248 1.25 0 .687.561 1.248 1.249 1.248.688 0 1.249-.561 1.249-1.249 0-.687-.562-1.249-1.25-1.249zm-5.466 3.99a.327.327 0 0 0-.231.094.33.33 0 0 0 0 .463c.842.842 2.484.913 2.961.913.477 0 2.105-.056 2.961-.913a.361.361 0 0 0 .029-.463.33.33 0 0 0-.464 0c-.547.533-1.684.73-2.512.73-.828 0-1.979-.196-2.512-.73a.326.326 0 0 0-.232-.095z"/></svg> 393 394</span>
395 <span class="share-widget__label">Reddit</span> 396 </a> 397 <button type="button" class="share-widget__option" data-action="print"> 398 <span class="share-widget__icon"> 399<svg class="icon" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 6 2 18 2 18 9"/><path d="M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2"/><rect width="12" height="8" x="6" y="14"/></svg> 400 401</span> 402 <span class="share-widget__label">Print</span> 403 </button> 404 </div> 405</div> 406 407 408 <button type="button" class="carousel-toggle" aria-label="View as cards" title="View as cards"> 409 410<svg class="icon" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="2" y="1" width="14" height="17.5" rx="3"/><path d="M8 22h8a3 3 0 0 0 3-3V8"/></svg> 411 412 413 </button> 414 415 <div class="more-menu"> 416 <button type="button" class="more-menu__trigger" aria-label="More options" aria-expanded="false"> 417 418<svg class="icon" width="16" height="16" viewBox="0 0 24 24" fill="currentColor"><circle cx="12" cy="12" r="2"/><circle cx="5" cy="12" r="2"/><circle cx="19" cy="12" r="2"/></svg> 419 420 421 </button> 422 <div class="more-menu__card" aria-hidden="true"> 423 <a class="more-menu__option" href="https://github.com/mkiser/WTFJHT/blob/master/_posts/2026-09-23-day-2073.markdown" target="_blank" rel="noopener"> 424 <span class="more-menu__icon"> 425<svg class="icon" width="14" height="14" viewBox="0 0 24 24" fill="currentColor"><path d="M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04a.996.996 0 0 0 0-1.41l-2.34-2.34a.996.996 0 0 0-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z"/></svg> 426 427</span> 428 <span class="more-menu__label">Improve this article</span> 429 </a> 430 <a class="more-menu__option" href="https://github.com/mkiser/WTFJHT/commits/master/_posts/2026-09-23-day-2073.markdown" target="_blank" rel="noopener"> 431 <span class="more-menu__icon"> 432<svg class="icon" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8"/><path d="M3 3v5h5"/><path d="M12 7v5l4 2"/></svg> 433 434</span> 435 <span class="more-menu__label">Revision history</span> 436 </a> 437 438 <button type="button" class="more-menu__option" data-action="open-tios"> 439 <span class="more-menu__icon"> 440<svg class="icon" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="2" y="1" width="14" height="17.5" rx="3"/><path d="M8 22h8a3 3 0 0 0 3-3V8"/></svg> 441 442</span> 443 <span class="more-menu__label">Today in One Sentence</span> 444 </button> 445 446 </div> 447 </div> 448 </div> 449</div> 450 451 452 453 <hr> 454 455 <div class="post-content"> 456 457 <p class="tios"> 458 <span class="tios__title"><span class="tios__prefix">Today in </span><strong>One Sentence</strong><span class="tios__dot">.</span></span> 459 <span class="tios__divider"></span> 460 <span class="tios__body">Iran vowed to fight âuntil our last breathâ and ânever bow our head or bend at the kneeâ to Trumpâs demands<span class="sr-only">; </span> <span class="tios__pilcrow" aria-hidden="true">¶</span> the Justice Department urged a federal judge to uphold Trumpâs ban of CNN, MS NOW, and Politico from the White House, arguing that âaccess to the White House is a privilege â not a rightâ<span class="sr-only">; </span> <span class="tios__pilcrow" aria-hidden="true">¶</span> the FBI was hacked and âvery sensitive dataâ on nearly all agents and job applicants was stolen<span class="sr-only">; </span> <span class="tios__pilcrow" aria-hidden="true">¶</span> 17 Democratic senators urged Trump to seek an AI agreement with China to establish âguardrailsâ around development<span class="sr-only">; </span> <span class="tios__pilcrow" aria-hidden="true">¶</span> the first architect for Trumpâs White House ballroom resigned after warning that the preliminary design violated building safety codes<span class="sr-only">; </span> <span class="tios__pilcrow" aria-hidden="true">¶</span> Melania Trump said Trump is âdoing the best that he canâ<span class="sr-only">; </span> <span class="tios__pilcrow" aria-hidden="true">¶</span> and 56% of Americans say the rule of law in the U.S. is weaker now than it was 10 years ago<span class="tios__dot">.</span></span> 461 </p> 462 <hr> 463 464 <p>1/ <strong>Iran vowed to fight âuntil our last breathâ and ânever bow our head or bend at the kneeâ to Trumpâs demands</strong>. Iranian President Masoud Pezeshkian, speaking at the United Nations General Assembly, declared that Iran was ready to negotiate with the U.S., but wouldnât give up its civilian nuclear program or accept what he called Washingtonâs âlanguage of force.â His address came a day after Trump threatened to âannihilateâ Iran if the nearly seven-month war ends without a deal. (<a href="https://www.nytimes.c
464om/2026/09/23/world/middleeast/iran-president-un-speech.html" target="_blank" rel="noopener" class="external">New York Times</a> / <a href="https://www.washingtonpost.com/world/2026/09/23/irans-president-address-un-general-assembly-after-trump-threatens-annihilation/" target="_blank" rel="noopener" class="external">Washington Post</a> / <a href="https://www.nbcnews.com/world/iran/irans-president-strikes-defiant-tone-un-trump-threats-rcna599372" target="_blank" rel="noopener" class="external">NBC News</a> / <a href="https://www.wsj.com/world/middle-east/irans-president-says-open-to-talks-but-wont-bow-to-u-s-35f44f25" target="_blank" rel="noopener" class="external">Wall Street Journal</a> / <a href="https://apnews.com/article/iran-pezeshkian-united-nations-general-assembly-trump-war-210d432587bb8dc2d7303ca4c8ea67b6" target="_blank" rel="noopener" class="external">Associated Press</a> / <a href="https://www.cnn.com/2026/09/23/world/live-news/united-nations-general-assembly-iran-trump-ukraine" target="_blank" rel="noopener" class="external">CNN</a>)</p> 465<p>2/ <strong>The Justice Department urged a federal judge to uphold Trumpâs ban of CNN, MS NOW, and Politico from the White House, arguing that âaccess to the White House is a privilege â not a right.â</strong> The administration claimed the outlets violated âstandards of professionalism and decorumâ by âtrafficking in verifiable falsehoods about national security and other issues, and publishing sensitive or classified information.â The White House cited reporting about the Iran war, U.S. munitions, and White House construction and security as justification for the ban. The Justice Department also asked the courts to overturn a 49-year-old precedent protecting journalistsâ access to the White House.(<a href="https://apnews.com/article/news-media-ban-cnn-white-house-access-a3471270b8db89f6067c54528ed0a340" target="_blank" rel="noopener" class="external">Associated Press</a> / <a href="https://www.nytimes.com/2026/09/23/business/trump-cnn-politico-ms-now-ban.html" target="_blank" rel="noopener" class="external">New York Times</a> / <a href="https://www.washingtonpost.com/business/2026/09/23/trump-tells-judge-media-ban-is-necessary-protect-national-security/" target="_blank" rel="noopener" class="external">Washington Post</a> / <a href="https://abcnews.com/Politics/doj-defends-white-house-news-bans-access-privilege/story?id=136674586" target="_blank" rel="noopener" class="external">ABC News</a> / <a href="https://www.bloomberg.com/news/articles/2026-09-23/doj-tells-judge-trump-white-house-media-ban-is-lawful" target="_blank" rel="noopener" class="external">Bloomberg</a> / <a href="https://www.cnn.com/2026/09/22/politics/trump-admin-responds-press-lawsuit-white-house-access" target="_blank" rel="noopener" class="external">CNN</a> / <a href="https://www.politico.com/news/2026/09/23/trump-press-ban-brief" target="_blank" rel="noopener" class="external">Politico</a> / <a href="https://www.cbsnews.com/news/doj-defends-trump-white-house-media-ban/" target="_blank" rel="noopener" class="external">CBS News</a> / <a href="https://www.cnbc.com/2026/09/23/trump-white-house-ban-media-doj-cnn-msnow-politico.html" target="_blank" rel="noopener" class="external">CNBC</a> / <a href="https://www.nbcnews.com/politics/politics-news/trump-media-ban-white-house-access-privilege-national-security-doj-rcna599347" target="_blank" rel="noopener" class="external">NBC News</a>)</p> 466<p>3/ <strong>The FBI was hacked and âvery sensitive dataâ on nearly all agents and job applicants was stolen</strong>, including names, home addresses, Social Security numbers, assignments and, in some cases, information about family members. The bureau hasnât determined âthe point of breachâ and whether the information came from FBI systems or a third-party provider. ShinyHunters, meanwhile, demanded that the FBI revise or remove a May advisory describing the group as specializing in large-scale data breaches and extortion. (<a href="https://www.404media.co/we-hacked-the-fbi-hackers-say-they-have-data-on-all-fbi-employees/" target="_blank" rel="noopener" class="external">404 Media</a>
466 / <a href="https://www.nytimes.com/2026/09/23/us/politics/fbi-hack-shinyhunters-data.html" target="_blank" rel="noopener" class="external">New York Times</a> / <a href="https://techcrunch.com/2026/09/22/hacking-group-shinyhunters-claims-it-breached-the-fbi-stole-agents-and-applicants-data/" target="_blank" rel="noopener" class="external">TechCrunch</a> / <a href="https://www.politico.com/news/2026/09/22/shinyhunters-fbi-cyber-hack-01088494" target="_blank" rel="noopener" class="external">Politico</a> / <a href="https://apnews.com/article/fbi-criminal-hacking-group-jobs-website-beach-d627cbc6811344e7ad41e9f164cdf1c9" target="_blank" rel="noopener" class="external">Associated Press</a> / <a href="https://www.reuters.com/world/shinyhunters-hackers-say-they-breached-federal-bureau-investigation-no-immediate-2026-09-22/" target="_blank" rel="noopener" class="external">Reuters</a> / <a href="https://www.cnn.com/2026/09/22/politics/fbi-investigating-stolen-agents-data-hackers" target="_blank" rel="noopener" class="external">CNN</a> / <a href="https://abcnews.com/US/wireStory/fbi-investigates-apparent-breach-jobs-website-hackers-claim-136686678" target="_blank" rel="noopener" class="external">ABC News</a>)</p> 467<p>4/ <strong>Seventeen Democratic senators urged Trump to seek an AI agreement with China to establish âguardrailsâ around development</strong>. The senators argued that âAI technology is too powerful, and its risks too many, for the U.S. and China to forgo discussions,â and urged Trump to discuss slowing or pausing development with Chinese leader Xi Jinping. However, earlier this week, Trump declared that âIâm not going to stifle growth of anything thatâs going to be bigger than the Industrial Revolution.â (<a href="https://www.politico.com/news/2026/09/23/dems-urge-trump-to-seek-ai-deal-with-china-01089253" target="_blank" rel="noopener" class="external">Politico</a> / <a href="https://www.washingtonpost.com/politics/2026/09/23/trump-xi-jinping-will-talk-about-ai-they-arent-close-deal/" target="_blank" rel="noopener" class="external">Washington Post</a>)</p> 468<p>5/ <strong>The first architect for Trumpâs White House ballroom resigned after warning that the preliminary design violated building safety codes</strong>. Trump reportedly responded that no building codes apply to White House construction, because âI am the code.â White House records, however, show officials continued to discuss life-safety issues, like adequate emergency exits and fire-containment measures, after James McCrery II resigned. (<a href="https://www.washingtonpost.com/investigations/2026/09/23/i-am-code-trump-clashed-with-ballroom-architect-over-safety-issues/" target="_blank" rel="noopener" class="external">Washington Post</a>)</p> 469<ul> 470<li> 471<strong>Trump administration officials have discussed attaching Trumpâs name to Fordâs Theatre</strong>. The federal historic site where Abraham Lincoln was assassinated is owned by the Interior Department, and its name is set by federal law, meaning a formal renaming would require an act of Congress. (<a href="https://www.ms.now/news/trump-fords-theatre-name-kennedy-center" target="_blank" rel="noopener" class="external">MS Now</a>)</li> 472</ul> 473<p>poll/ <strong>56% of Americans say the rule of law in the U.S. is weaker now than it was 10 years ago</strong>. 14% say itâs stronger. (<a href="https://www.gallup.com/analytics/697985/democracy-for-all.aspx" target="_blank" rel="noopener" class="external">Gallup</a>)</p> 474<p>poll/ <strong>33% of Americans approve of the job Trump is doing as president</strong>, while 63% disapprove. (<a href="https://www.gelliottmorris.com/p/2026-09-23-september-strength-in-numbers-verasight-poll-release" target="_blank" rel="noopener" class="external">Strength in Numbers</a>)</p> 475<p>poll/ <strong>49% of voters say theyâll support the Democratic candidate for Congress</strong>, compared with 41% whoâd support a Republican. 68% call the economy âextremely important,â while 27% of Americans approve of Trumpâs handling of the economy and 20% approve of his handling of inflation. Two-thirds say Trump has worsened economic conditions. (<a href="https://www.cnn.com/2026/09/23/politics/cnn-poll-donald-trump-economy-midterms-vis" target="_blank" rel="noopener" class="external">CNN</a>)</p> 476<p><strong>ð Well, thatâs fantastic: Melania Trump said Trump is âdoing the best that he can.â</strong>
476 âHeâs very focused. He has a lot on his plate,â she said, adding: âItâs very different whatâs going on around the world now. But I think heâs doing the best that he can.â Trump, however, faces weak approval ratings and voter dissatisfaction over the Iran war, the economy, and other priorities ahead of the midterms. Melania added that Trump âworks nonstopâ and âhas the most energy than anybody.â (<a href="https://www.axios.com/2026/09/23/trump-melania-president-fox-news" target="_blank" rel="noopener" class="external">Axios</a>)</p> 477<p><em>The 2026 midterms are in 41 days; the 2028 presidential election is in 776 days.</em></p> 478 479 </div> 480 481 482 <div class="post-tags"> 483 484 485 486 487 488 <a href="/tags/iran/" class="post-tag">Iran</a> 489 490 491 492 493 494 <a href="/tags/media/" class="post-tag">Media</a> 495 496 497 498 499 500 <a href="/tags/white-house/" class="post-tag">White House</a> 501 502 503 504 505 506 <a href="/tags/national-security/" class="post-tag">National Security</a> 507 508 </div> 509 510 511 <nav class="post-footer-nav" aria-label="Post navigation"><a href="/2026/09/22/day-2072/" class="post-footer-nav__link post-footer-nav__link--prev"> 512 â Previous: Day 2072 513 </a></nav> 514 515 516 <div class="historical-posts" data-on-this-day='[{"years_ago":7,"direction":"ago","title":"Day 977","desc":"\"It doesn't matter.\"","summary":"","url":"/2019/09/23/day-977/"},{"years_ago":6,"direction":"ago","title":"Day 1343","desc":"\"Distressed.\"","summary":"","url":"/2020/09/23/day-1343/"},{"years_ago":2,"direction":"ago","title":"Day 1343","desc":"\"Balance of power.\"","summary":"","url":"/2024/09/23/day-1343/"},{"years_ago":1,"direction":"ago","title":"Day 1708","desc":"\"Stupid people.\"","summary":"","url":"/2025/09/23/day-1708/"}]'> 517 <h3 class="historical-posts__title">On this day</h3> 518 519 <a href="https://whatthefuckjusthappenedtoday.com/2019/09/23/day-977/" class="historical-posts__item"> 520 <span class="historical-posts__years"> 521 7 years ago 522 </span> 523 <span class="historical-posts__headline">Day 977: "It doesn't matter."</span> 524 </a> 525 526 <a href="https://whatthefuckjusthappenedtoday.com/2020/09/23/day-1343/" class="historical-posts__item"> 527 <span class="historical-posts__years"> 528 6 years ago 529 </span> 530 <span class="historical-posts__headline">Day 1343: "Distressed."</span> 531 </a> 532 533 <a href="https://whatthefuckjusthappenedtoday.com/2024/09/23/day-1343/" class="historical-posts__item"> 534 <span class="historical-posts__years"> 535 2 years ago 536 </span> 537 <span class="historical-posts__headline">Day 1343: "Balance of power."</span> 538 </a> 539 540 <a href="https://whatthefuckjusthappenedtoday.com/2025/09/23/day-1708/" class="historical-posts__item"> 541 <span class="historical-posts__years"> 542 1 year ago 543 </span> 544 <span class="historical-posts__headline">Day 1708: "Stupid people."</span> 545 </a> 546 547 548 <a href="/on-this-day/september-23/" class="historical-posts__see-all">See all September 23 posts →</a> 549 </div> 550 551 552 553 554 555 </article> 556</div> 557 558 559 560 561 562 </div> 563 </main> 564 <footer class="footer"> 565 <section class="ft-subscribe"> 566 <h3 class="ft-subscribe__title">A political newsletter for normal people.</h3> 567 <p class="ft-subscribe__desc">A sane, once-a-day newsletter helping normal people make sense of the news. </p> 568 <div class="subscribe-form"> 569 <form action="https://whatthefuckjusthappenedtoday.us7.list-manage.com/subscribe/post?u=104aa3abb9fec8b4d037ed51d&id=9813b73b1a" method="post" id="mc-embedded-subscribe-form-ft" name="mc-embedded-subscribe-form" class="validate" target="_blank" novalidate data-subscribe-api="https://wtfjht-just-asking-questions.matt-kiser.workers.dev"> 570 <div class="subscribe-form__row">
571 <label for="mce-EMAIL-ft" class="sr-only">Email address</label> 572 <input type="email" value="" name="EMAIL" class="subscribe-form__input" id="mce-EMAIL-ft" placeholder="Type your email..." autocomplete="email" required> 573 <input type="submit" value="Subscribe for free" name="subscribe" id="mc-embedded-subscribe-ft" class="subscribe-form__button"> 574 </div> 575 <div style="position:absolute;left:-5000px;" aria-hidden="true"> 576 <input type="text" name="website" tabindex="-1" value="" autocomplete="off"> 577 <input type="text" name="b_104aa3abb9fec8b4d037ed51d_9813b73b1a" tabindex="-1" value="" autocomplete="off"> 578 </div><div class="cf-turnstile" data-sitekey="0x4AAAAAADAzC0xAFcUN12kn" data-appearance="interaction-only" data-execution="execute" data-callback="wtfjhtSubscribeToken" data-error-callback="wtfjhtSubscribeError" data-response-field-name="cf-turnstile-response"></div><p class="subscribe-form__trust" role="status" aria-live="polite">Free. No spam. Unsubscribe anytime.</p> 579 </form> 580</div> 581 582 </section> 583 584 <section class="ft-main"> 585 <div class="ft-main-item"> 586 <h3 class="ft-title">About</h3> 587 <ul> 588 <li><a href="https://whatthefuckjusthappenedtoday.com/about/">About</a></li> 589 <li><a href="https://whatthefuckjusthappenedtoday.com/faq/">FAQ</a></li> 590 <li><a href="https://whatthefuckjusthappenedtoday.com/corrections/">Corrections</a></li> 591 <li><a href="https://whatthefuckjusthappenedtoday.com/membership/">Membership</a></li> 592 <li><a href="https://wtfjht.memberful.com/account" target="_blank" rel="noopener">Member Sign-in</a></li> 593 <li><a href="https://cottonbureau.com/people/wtf-just-happened-today" target="_blank" rel="noopener">Merch</a></li> 594 595 </ul> 596 </div> 597 598 <div class="ft-main-item"> 599 <h3 class="ft-title">Resources</h3> 600 <ul> 601 <!-- <li><a href="https://whatthefuckjusthappenedtoday.com/podcasts/">Podcast</a></li> --> 602 <li><a href="https://whatthefuckjusthappenedtoday.com/subscribe/">Newsletter</a></li> 603 <li><a href="https://whatthefuckjusthappenedtoday.com/do-something/">Do Something.</a></li> 604 <li><a href="https://currentstatus.io/" target="_blank" rel="noopener">Current Status</a></li> 605 <li><a href="https://www.amazon.com/shop/matt_kiser?listId=MX8CHE4TE8JY" target="_blank" rel="noopener">Recommended Books</a></li> 606 <li><a href="https://whatthefuckjusthappenedtoday.com/big-grid/">The Big Grid.â¢</a></li> 607 <li><a href="https://whatthefuckjusthappenedtoday.com/big-board/">The Big Board.â¢</a></li> 608 <li><a href="https://whatthefuckjusthappenedtoday.com/big-dumb-dashboard/">The Big Dumb Dashboard.â¢</a></li> 609 </ul> 610 </div> 611 612 <div class="ft-main-item"> 613 <h3 class="ft-title">Archives</h3> 614 <ul> 615 <li><a href="https://whatthefuckjusthappenedtoday.com/archive/">Archives</a></li> 616 <li><a href="https://whatthefuckjusthappenedtoday.com/trump-first-100-days/">Trump's First 100 Days</a></li> 617 <li><a href="https://whatthefuckjusthappenedtoday.com/biden-first-100-days/">Biden's First 100 Days</a></li> 618 <li><a href="https://whatthefuckjusthappenedtoday.com/trump-second-100-days/">Trump's Second 100 Days</a></li> 619 </ul> 620 </div> 621 </section> 622 623 <section class="ft-connect"> 624 <div class="ft-row"> 625 <span class="ft-row-label">Follow</span> 626 <ul class="ft-icon-list"> 627 <li><a href="https://bsky.app/profile/whatthefuckjusthappenedtoday.com" target="_blank" rel="noopener" aria-label="Bluesky"> 628<svg class="icon" width="18" height="18" viewBox="0 0 24 24" fill="currentColor"><path d="M12 10.8c-1.087-2.114-4.046-6.053-6.798-7.995C2.566.944 1.561 1.266.902 1.565.139 1.908 0 3.08 0 3.768c0 .69.378 5.65.624 6.479.815 2.736 3.713 3.66 6.383 3.364.136-.02.275-.039.415-.056-.138.022-.276.04-.415.056-3.912.58-7.387 2.005-2.83 7.
628078 5.013 5.19 6.87-1.113 7.823-4.308.953 3.195 2.05 9.271 7.733 4.308 4.267-4.882 1.172-6.498-2.74-7.078a8.741 8.741 0 0 1-.415-.056c.14.017.279.036.415.056 2.67.297 5.568-.628 6.383-3.364.246-.828.624-5.79.624-6.478 0-.69-.139-1.861-.902-2.206-.659-.298-1.664-.62-4.3 1.24C16.046 4.748 13.087 8.687 12 10.8Z"/></svg> 629 630</a></li> 631 <li><a href="https://www.threads.net/@wtfjht" target="_blank" rel="noopener" aria-label="Threads"> 632<svg class="icon" width="18" height="18" viewBox="0 0 192 192" fill="currentColor"><path d="M141.537 88.9883C140.71 88.5919 139.87 88.2104 139.019 87.8451C137.537 60.5382 122.616 44.905 97.5619 44.745C97.4484 44.7443 97.3355 44.7443 97.222 44.7443C82.2364 44.7443 69.7731 51.1409 62.102 62.7807L75.881 72.2328C81.6116 63.5383 90.6052 61.6848 97.2286 61.6848C97.3051 61.6848 97.3819 61.6848 97.4576 61.6855C105.707 61.7381 111.932 64.1366 115.961 68.814C118.893 72.2193 120.854 76.925 121.825 82.8638C114.511 81.6207 106.601 81.2385 98.145 81.7233C74.3247 83.0954 59.0111 96.9879 60.0396 116.292C60.5615 126.084 65.4397 134.508 73.775 140.011C80.8224 144.663 89.899 146.938 99.3323 146.423C111.79 145.74 121.563 140.987 128.381 132.296C133.559 125.696 136.834 117.143 138.28 106.366C144.217 109.949 148.617 114.664 151.047 120.332C155.179 129.967 155.42 145.8 142.501 158.708C131.182 170.016 117.576 174.908 97.0135 175.059C74.2042 174.89 56.9538 167.575 45.7381 153.317C35.2355 139.966 29.8077 120.682 29.6052 96C29.8077 71.3178 35.2355 52.0336 45.7381 38.6827C56.9538 24.4249 74.2039 17.11 97.0132 16.9405C119.988 17.1113 137.539 24.4614 149.184 38.788C154.894 45.8136 159.199 54.6488 162.037 64.9503L178.184 60.6422C174.744 47.9622 169.331 37.0357 161.965 27.974C147.036 9.60668 125.202 0.195148 97.0695 0H96.9569C68.8816 0.19447 47.2921 9.6418 32.7883 28.0793C19.8819 44.4864 13.2244 67.3157 13.0007 95.9325L13 96L13.0007 96.0675C13.2244 124.684 19.8819 147.514 32.7883 163.921C47.2921 182.358 68.8816 191.806 96.9569 192H97.0695C122.03 191.827 139.624 185.292 154.118 170.811C173.081 151.866 172.51 128.119 166.26 113.541C161.776 103.087 153.227 94.5962 141.537 88.9883ZM98.4405 129.507C88.0005 130.095 77.1544 125.409 76.6196 115.372C76.2232 107.93 81.9158 99.626 99.0812 98.6368C101.047 98.5234 102.976 98.468 104.871 98.468C111.106 98.468 116.939 99.0737 122.242 100.233C120.264 124.935 108.662 128.946 98.4405 129.507Z"/></svg> 633 634</a></li> 635 <li><a href="https://x.com/wtfjht" target="_blank" rel="noopener" aria-label="Twitter/X"> 636<svg class="icon" width="18" height="18" viewBox="0 0 24 24" fill="currentColor"><path d="M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z"/></svg> 637 638</a></li> 639 <li><a href="https://mastodon.social/@wtfjht" target="_blank" rel="noopener" aria-label="Mastodon"> 640<svg class="icon" width="18" height="18" viewBox="0 0 24 24" fill="currentColor"><path d="M23.268 5.313c-.35-2.578-2.617-4.61-5.304-5.004C17.51.242 15.792 0 11.813 0h-.03c-3.98 0-4.835.242-5.288.309C3.882.692 1.496 2.518.917 5.127.64 6.412.61 7.837.661 9.143c.074 1.874.088 3.745.26 5.611.118 1.24.325 2.47.62 3.68.55 2.237 2.777 4.098 4.96 4.857 2.336.792 4.849.923 7.256.38.265-.061.527-.132.786-.213.585-.184 1.27-.39 1.774-.753a.057.057 0 0 0 .023-.043v-1.809a.052.052 0 0 0-.02-.041.053.053 0 0 0-.046-.01 20.282 20.282 0 0 1-4.709.545c-2.73 0-3.463-1.284-3.674-1.818a5.593 5.593 0 0 1-.319-1.433.053.053 0 0 1 .066-.054c1.517.363 3.072.546 4.632.546.376 0 .75 0 1.125-.01 1.57-.044 3.224-.124 4.768-.422.038-.008.077-.015.11-.024 2.435-.464 4.753-1.92 4.989-5.604.008-.145.03-1.52.03-1.67.002-.512.167-3.63-.024-5.545Zm-3.748 9.195h-2.561V8.29c0-1.309-.55-1.976-1.67-1.976-1.23 0-1.846.79-1.846 2.35v3.403h-2.546V8.663c0-1.56-.617-2.35-1.848-2.35-1.112 0-1.668.668-1.67 1.977v6.218H4.822V8.102c0-1.31.337-2.35 1.011-3.12.696-.77 1.608-1.164 2.74-1.164 1.311 0 2.302.5 2.962 1.498l.638 1.06.638-1.06c.66-.999 1.65-1.498 2.96-1.498 1.13 0 2.043.395 2.74 1.164.675.77 1.012 1.81 1.012 3.12v6.406Z"/></svg> 641 642</a></li> 643 <li><a href="https://www.instagram.com/wtfjht/" target="_blank" rel="noopener" aria-label="Instagram"> 644<svg class="icon" width="18" height="18" viewBox="0 0 24 24" fill="currentColor"><path d="M12 2.163c3.204 0 3.584.012 4.85.07 3.252.148 4.771 1.691 4.919 4.919.058 1.265.069 1.645.069 4.849 0 3.205-.012 3.584-.069 4.849-.149 3.225-1.664 4.771-4.919 4.919-1.266.058-1.644.07-4.85.07-3.204 0-3.584-.012-4.849-.07-3.26-.149-4.771-1.699-4.919-4.92-.058-1.265-.07-1.644-.07-4.849 0-3.204.013-3.583.07-4.849.149-3.227 1.664-4.771 4.919-4.919 1.266-.057 1.645-.069 4.849-.069zM12 0C8.741 0 8.333.014 7.053.072 2.695.272.273 2.69.073 7.052.014 8.333 0 8.741 0 12c0 3.259.014 3.668.072 4.948.2 4.358 2.618 6.78 6.98 6.98C8.333 23.986 8.741 24 12 24c3.259 0 3.668-.014 4.948-.072 4.354-.2 6.782-2.618 6.979-6.98.059-1.28.073-1.689.073-4.948 0-3.259-.014-3.667-.072-4.947-.196-4.354-2.617-6.78-6.979-6.98C15.668.014 15.259 0 12 0zm0 5.838a6.162 6.162 0 100 12.324 6.162 6.162 0 000-12.324zM12 16a4 4 0 110-8 4 4 0 010 8zm6.406-11.845a1.44 1.44 0 100 2.881 1.44 1.44 0 000-2.881z"/></svg> 645 646</a></li> 647 <li><a href="https://www.facebook.com/wtfjht" target="_blank" rel="noopener" aria-label="Facebook"> 648<svg class="icon" width="18" height="18" viewBox="0 0 24 24" fill="currentColor"><path d="M24 12.073c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.99 4.388 10.954 10.125 11.854v-8.385H7.078v-3.47h3.047V9.43c0-3.007 1.792-4.669 4.533-4.669 1.312 0 2.686.235 2.686.235v2.953H15.83c-1.491 0-1.956.925-1.956 1.874v2.25h3.328l-.532 3.47h-2.796v8.385C19.612 23.027 24 18.062 24 12.073z"/></svg> 649 650</a></li> 651 <li><a href="https://github.com/mkiser/WTFJHT" target="_blank" rel="noopener" aria-label="GitHub"> 652<svg class="icon" width="18" height="18" viewBox="0 0 24 24" fill="currentColor"><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></svg> 653 654</a></li> 655 </ul> 656 </div> 657 <div class="ft-row">
658 <span class="ft-row-label">Feeds</span> 659 <ul class="ft-icon-list ft-feeds"> 660 <li><a href="https://whatthefuckjusthappenedtoday.com/rss.xml">RSS</a></li> 661 <li><a href="https://whatthefuckjusthappenedtoday.com/atom.xml">Atom</a></li> 662 <li><a href="https://whatthefuckjusthappenedtoday.com/feed.json">JSON</a></li> 663 </ul> 664 </div> 665 </section> 666 667 <section class="ft-legal"> 668 <p> 669 <a href="https://whatthefuckjusthappenedtoday.com/archive/" id="random-post-link" class="easter-egg" aria-label="Random post">©</a> 670 2017â2026 671 <a href="https://whatthefuckjusthappenedtoday.com/about/">WTF Just Happened? LLC</a> 672 · <a href="https://creativecommons.org/licenses/by-nc-sa/4.0/" target="_blank" rel="noopener">CC BY-NC-SA 4.0</a> 673 · <a href="https://whatthefuckjusthappenedtoday.com/license/">Content license & trademarks</a> 674 </p> 675 <p class="theme-control" role="radiogroup" aria-label="Appearance"> 676 <span class="theme-control__label">Appearance:</span> 677 <button type="button" role="radio" class="theme-control__btn" data-theme-pref="auto">Auto</button> 678 <span aria-hidden="true">·</span> 679 <button type="button" role="radio" class="theme-control__btn" data-theme-pref="day">Day</button> 680 <span aria-hidden="true">·</span> 681 <button type="button" role="radio" class="theme-control__btn" data-theme-pref="night">Night</button> 682 </p> 683 </section> 684 </footer> 685 </div> 686 <!-- SEARCH (lazy-loaded on first interaction) -->
vendor: 115 bytes, lines 686-687
686 687 <script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script>
687<script src="https://whatthefuckjusthappenedtoday.com/public/js/search.js?v=1790254453" defer></script>
687 688
688<script src="https://whatthefuckjusthappenedtoday.com/public/js/randomPost.js?v=1790254453" defer></script>
688 689
689<script src="https://whatthefuckjusthappenedtoday.com/public/js/theme-control.js?v=1790254453" defer></script>
689 690 <!-- PWA SERVICE WORKER --> 691
691<script> 692 window.addEventListener('load', function() { 693 var sw = document.createElement('script'); 694 sw.src = 'https://whatthefuckjusthappenedtoday.com/register-sw.js'; 695 document.body.appendChild(sw); 696 }); 697 </script>
697 698 699 700
700<script src="https://whatthefuckjusthappenedtoday.com/public/js/anchor.min.js" defer></script>
700 701 702 703 704 <!-- POST-ONLY SCRIPTS --> 705 706
706<script src="https://whatthefuckjusthappenedtoday.com/public/js/carousel.js" defer></script>
706 707 708 709 710 711 <!-- ANCHORS FOR POSTS --> 712
712<script> 713 document.addEventListener("DOMContentLoaded", function(event) { 714 anchors.options = { 715 placement: 'left', 716 visible: 'hover', 717 truncate: "36", 718 icon: '\u00a7' 719 }; 720 anchors.add('.post-content > p, .post > p, .post li, .post blockquote p, .post-content h3'); 721 anchors.remove('.post ol li, div.post.archive p.archive-year, div.post.archive ul.archive-months li, .tios, .masthead-title, li.header, .historical-posts, .historical-posts__title, footer, footer *'); 722 723 // Homepage: rewrite anchor hrefs to the canonical post permalink so copied 724 // links survive the next day's publish (a bare /#id rots within 24 hours) 725 var article = document.querySelector('article.post[data-post-url]'); 726 if (article) { 727 var postUrl = article.getAttribute('data-post-url'); 728 document.querySelectorAll('.anchorjs-link').forEach(function(a) { 729 a.href = postUrl + a.getAttribute('href'); 730 }); 731 } 732 733 }); 734 </script>
734 735 736 737 738 739 740 <!-- Highlight-to-share --> 741
741<script> 742 (function() { 743 var tooltip = null; 744 var selectedText = ''; 745 var selectedUrl = ''; 746 var mouseDown = false; 747 var interactingUntil = 0; 748 var timer = null; 749 var SHAPE = /^(STRONG|EM|SPAN|H[1-6])$/; 750 var LIST = /^(LI|UL|OL)$/; 751 752 // Create tooltip element 753 function createTooltip() { 754 var el = document.createElement('div'); 755 el.className = 'share-tooltip'; 756 el.innerHTML = 757 '<button type="button" data-action="copy">' + 758 '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="9" y="9" width="13" height="13" rx="2"/><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/></svg>' + 759 'Copy' + 760 '</button>' + 761 '<button type="button" data-action="share">' + 762 '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8"/><polyline points="16 6 12 2 8 6"/><line x1="12" x2="12" y1="2" y2="15"/></svg>' + 763 'Share' + 764 '</button>'; 765 el.addEventListener('mousedown', function(e) { 766 e.preventDefault(); 767 interactingUntil = Date.now() + 700; 768 }); 769 el.addEventListener('touchstart', function() { 770 interactingUntil = Date.now() + 700; 771 }, { passive: true }); 772 return el; 773 } 774 775 // Show tooltip above selection 776 function showTooltip(rect) { 777 if (!tooltip) { 778 tooltip = createTooltip(); 779 document.body.appendChild(tooltip); 780 } 781 782 var top = rect.top + window.scrollY - tooltip.offsetHeight - 10; 783 if (rect.top - tooltip.offsetHeight - 10 < 0) { 784 top = rect.bottom + window.scrollY + 10; 785 } 786 top = Math.max(window.scrollY + 10, Math.min(top, window.scrollY + window.innerHeight - tooltip.offsetHeight - 10)); 787 var left = rect.left + window.scrollX + (rect.width / 2) - (tooltip.offsetWidth / 2); 788 789 // Keep tooltip within viewport 790 left = Math.max(10, Math.min(left, window.innerWidth - tooltip.offsetWidth - 10)); 791 792 tooltip.style.top = top + 'px'; 793 tooltip.style.left = left + 'px'; 794 } 795 796 // Hide tooltip 797 function hideTooltip() { 798 clearTimeout(timer); 799 if (tooltip && tooltip.parentNode) { 800 tooltip.parentNode.removeChild(tooltip); 801 tooltip = null; 802 } 803 selectedText = ''; 804 selectedUrl = ''; 805 } 806 807 function elementOf(node) { 808 return node.nodeType === 1 ? node : node.parentNode; 809 } 810 811 function childId(el, tag) { 812 for (var c = el.firstElementChild; c; c = c.nextElementSibling) { 813 if (c.tagName === tag && c.id) return c.id; 814 if (tag === 'STRONG' && c.tagName === 'SMALL') { 815 var inner = childId(c, 'STRONG'); 816 if (inner) return inner; 817 } 818 } 819 return ''; 820 } 821 822 function leadInId(el) { 823 if (el.tagName === 'P') return childId(el, 'STRONG'); 824 if (el.tagName === 'H3') return childId(el, 'EM'); 825 return ''; 826 } 827 828 function pageAnchorId(start, scope) { 829 var node = elementOf(start); 830 while (node && node !== scope && node !== document.body) { 831 if (node.id && SHAPE.test(node.tagName)) return node.id; 832 var id = leadInId(node); 833 if (id) return id; 834 if (LIST.test(node.tagName)) { 835 var list = node; 836 while (list.parentNode && LIST.test(list.parentNode.tagName)) list = list.parentNode; 837 var prev = list.previousElementSibling; 838 for (var i = 0; prev && i < 4; i++, prev = prev.previousElementSibling) { 839 id = leadInId(prev); 840 if (id) return id; 841 if (/^(P|H[1-6])$/.test(prev.tagName)) break; 842 } 843 return ''; 844 } 845 node = node.parentNode; 846 } 847 return ''; 848 } 849 850 function postAnchorId(start) { 851 var node = elementOf(start); 852 while (node && node !== document.body) { 853 if (node.id) return node.id; 854 node = node.parentNode; 855 } 856 return ''; 857 } 858 859 function evaluate() { 860 if (mouseDown || Date.now() < interactingUntil) return; 861 var selection = window.getSelection(); 862 var text = selection && selection.rangeCount ? selection.toString().trim() : ''; 863 864 if (text.length > 5) { 865 var range = selection.getRangeAt(0); 866 var scope = elementOf(range.commonAncestorContainer); 867 var page = scope && scope.closest ? scope.closest('article.page') : null; 868 var post = page || !scope || !scope.closest ? null : scope.closest('.post-content'); 869 var id = page ? pageAnchorId(range.startContainer, page) : (post ? postAnchorId(range.startContainer) : ''); 870 871 if (page ? id : post) { 872 var article = scope.closest('article.post[data-post-url]'); 873 var base = article ? article.getAttribute('data-post-url') : window.location.pathname; 874 selectedText = text; 875 selectedUrl = id ? window.location.origin + base + '#' + id : window.location.href; 876 showTooltip(range.getBoundingClientRect()); 877 return; 878 } 879 } 880 881 hideTooltip(); 882 } 883 884 function schedule(delay) { 885 clearTimeout(timer); 886 timer = setTimeout(evaluate, delay); 887 } 888 889 // Show toast 890 function showToast(message) { 891 var existing = document.querySelector('.share-toast'); 892 if (existing) existing.remove(); 893 894 var toast = document.createElement('div'); 895 toast.className = 'share-toast'; 896 toast.textContent = message; 897 document.body.appendChild(toast); 898 setTimeout(function() { 899 toast.classList.add('fade-out'); 900 setTimeout(function() { toast.remove(); }, 300); 901 }, 1500); 902 } 903 904 // Handle text selection 905 document.addEventListener('mousedown', function() { 906 mouseDown = true; 907 }); 908 document.addEventListener('touchend', function() { 909 mouseDown = false;
910 }, { passive: true }); 911 window.addEventListener('blur', function() { 912 mouseDown = false; 913 }); 914 document.addEventListener('mouseup', function(e) { 915 mouseDown = false; 916 // Ignore if clicking inside tooltip 917 if (e.target.closest('.share-tooltip')) return; 918 schedule(10); 919 }); 920 document.addEventListener('selectionchange', function() { 921 if (mouseDown || Date.now() < interactingUntil) return; 922 schedule(120); 923 }); 924 925 // Handle tooltip button clicks 926 document.addEventListener('click', function(e) { 927 var btn = e.target.closest('.share-tooltip button'); 928 if (!btn) return; 929 930 var action = btn.dataset.action; 931 var url = selectedUrl; 932 var quotedText = '"' + selectedText + '"'; 933 if (quotedText.length > 280) { 934 quotedText = '"' + selectedText.substring(0, 250) + '..."'; 935 } 936 // Combine text + URL for better compatibility 937 var fullText = quotedText + '\n\n' + url; 938 939 if (typeof gtag === 'function') gtag('event', 'highlight_share', { method: action }); 940 941 if (action === 'share' && navigator.share) { 942 navigator.share({ 943 text: fullText 944 }).catch(function(err) { 945 if (err.name !== 'AbortError') console.log('Share failed:', err); 946 }); 947 } else if (navigator.clipboard && navigator.clipboard.writeText) { 948 navigator.clipboard.writeText(fullText).then(function() { 949 showToast('Copied to clipboard!'); 950 }).catch(function() { 951 prompt('Copy this:', fullText); 952 }); 953 } else { 954 prompt('Copy this:', fullText); 955 } 956 957 interactingUntil = 0; 958 hideTooltip(); 959 window.getSelection().removeAllRanges(); 960 }); 961 962 // Hide tooltip on scroll or escape 963 document.addEventListener('scroll', function() { 964 if (tooltip) schedule(120); 965 }); 966 document.addEventListener('keydown', function(e) { 967 if (e.key === 'Escape') hideTooltip(); 968 }); 969 })(); 970 </script>
970 971 972 973 <!-- Dropdown menus (share widget & more menu) --> 974
974<script> 975 (function() { 976 // Show native share button if supported 977 if (navigator.share) { 978 document.querySelectorAll('.share-widget__native').forEach(function(btn) { 979 btn.removeAttribute('hidden'); 980 }); 981 } 982 983 // Close all dropdown cards 984 function closeAllCards() { 985 document.querySelectorAll('.share-widget__card.is-open, .more-menu__card.is-open').forEach(function(card) { 986 card.classList.remove('is-open'); 987 card.setAttribute('aria-hidden', 'true'); 988 var trigger = card.previousElementSibling; 989 if (trigger) trigger.setAttribute('aria-expanded', 'false'); 990 }); 991 } 992 993 // Event delegation 994 document.addEventListener('click', function(e) { 995 // Toggle share card 996 var shareTrigger = e.target.closest('.share-widget__trigger'); 997 if (shareTrigger) { 998 e.preventDefault(); 999 var card = shareTrigger.nextElementSibling; 1000 var isOpen = card.classList.contains('is-open'); 1001 closeAllCards(); 1002 if (!isOpen) { 1003 card.classList.add('is-open'); 1004 card.setAttribute('aria-hidden', 'false'); 1005 shareTrigger.setAttribute('aria-expanded', 'true'); 1006 } 1007 return; 1008 } 1009 1010 // Toggle more menu card 1011 var moreTrigger = e.target.closest('.more-menu__trigger'); 1012 if (moreTrigger) { 1013 e.preventDefault(); 1014 var card = moreTrigger.nextElementSibling; 1015 var isOpen = card.classList.contains('is-open'); 1016 closeAllCards(); 1017 if (!isOpen) { 1018 card.classList.add('is-open'); 1019 card.setAttribute('aria-hidden', 'false'); 1020 moreTrigger.setAttribute('aria-expanded', 'true'); 1021 } 1022 return; 1023 } 1024 1025 // Open TIOS carousel 1026 var tiosBtn = e.target.closest('[data-action="open-tios"]'); 1027 if (tiosBtn) { 1028 e.preventDefault(); 1029 closeAllCards(); 1030 if (typeof openTiosCarousel === 'function') { 1031 try { openTiosCarousel(0); } catch (err) { console.error('TIOS carousel error:', err); } 1032 } 1033 return; 1034 } 1035 1036 // Copy link 1037 var copyBtn = e.target.closest('.share-widget [data-action="copy"]'); 1038 if (copyBtn) { 1039 e.preventDefault(); 1040 if (typeof gtag === 'function') gtag('event', 'share_widget', { method: 'copy' }); 1041 var widget = copyBtn.closest('.share-widget'); 1042 var url = widget.dataset.shareUrl; 1043 navigator.clipboard.writeText(url).then(function() { 1044 var span = copyBtn.querySelector('.share-widget__label'); 1045 var original = span.textContent; 1046 span.textContent = 'Copied!'; 1047 setTimeout(function() { span.textContent = original; }, 1500); 1048 }).catch(function() { 1049 prompt('Copy this link:', url); 1050 }); 1051 return; 1052 } 1053 1054 // Native share 1055 var nativeShareBtn = e.target.closest('[data-action="native-share"]'); 1056 if (nativeShareBtn && navigator.share) { 1057 e.preventDefault(); 1058 if (typeof gtag === 'function') gtag('event', 'share_widget', { method: 'native' }); 1059 var widget = nativeShareBtn.closest('.share-widget'); 1060 var url = widget.dataset.shareUrl; 1061 var title = widget.dataset.shareTitle || document.title; 1062 navigator.share({ title: title, url: url }).then(function() { 1063 closeAllCards(); 1064 }).catch(function(err) { 1065 // User cancelled or error - silently ignore 1066 if (err.name !== 'AbortError') console.log('Share failed:', err); 1067 }); 1068 return; 1069 } 1070 1071 // Social share link clicks 1072 var shareOption = e.target.closest('.share-widget__card a.share-widget__option'); 1073 if (shareOption) { 1074 var label = shareOption.querySelector('.share-widget__label'); 1075 if (typeof gtag === 'function') gtag('event', 'share_widget', { method: label ? label.textContent.toLowerCase() : 'social' }); 1076 } 1077 1078 // Print 1079 var printBtn = e.target.closest('[data-action="print"]'); 1080 if (printBtn) { 1081 e.preventDefault(); 1082 if (typeof gtag === 'function') gtag('event', 'share_widget', { method: 'print' }); 1083 closeAllCards(); 1084 window.print(); 1085 return; 1086 } 1087 1088 // Close cards when clicking outside 1089 if (!e.target.closest('.share-widget') && !e.target.closest('.more-menu')) { 1090 closeAllCards(); 1091 } 1092 }); 1093 1094 // Close on escape key 1095 document.addEventListener('keydown', function(e) { 1096 if (e.key === 'Escape') closeAllCards(); 1097 }); 1098 1099 // Random post (footer easter egg); falls back to /archive/ if the JS failed to load 1100 var rnd = document.getElementById('random-post-link'); 1101 if (rnd) rnd.addEventListener('click', function (e) { 1102 if (typeof randomPost === 'function') { e.preventDefault(); randomPost(); } 1103 }); 1104 1105 })(); 1106 </script>
1106 1107 1108 <!-- Keyboard navigation: j/Right = newer, k/Left = older --> 1109
1109<script> 1110 (function() { 1111 document.addEventListener('keydown', function(e) { 1112 // Ignore if user is typing in an input 1113 if (e.target.tagName === 'INPUT' || e.target.tagName === 'TEXTAREA' || e.target.isContentEditable) { 1114 return; 1115 } 1116 1117 if (document.body.classList.contains('carousel-open')) return; 1118 1119 // Get nav links for homepage navigation 1120 var navLinks = document.querySelector('.nav-quick'); 1121 var latestLink = navLinks ? navLinks.querySelector('a:first-of-type') : null; 1122 var prevLink = navLinks ? navLinks.querySelectorAll('a')[1] : null; 1123 1124 if (e.key === 'j' || e.key === 'ArrowRight' || e.key === 'k' || e.key === 'ArrowLeft') { 1125 if (typeof gtag === 'function') gtag('event', 'keyboard_nav'); 1126 } 1127 1128 if (e.key === 'j' || e.key === 'ArrowRight') { 1129 // j/Right = go to newer post 1130 1131 if (latestLink) window.location.href = latestLink.href; 1132 1133 } else if (e.key === 'k' || e.key === 'ArrowLeft') { 1134 // k/Left = go to older post 1135 1136 if (prevLink) window.location.href = prevLink.href; 1137 1138 } 1139 }); 1140 })(); 1141 </script>
1141 1142 1143
1143<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"4fc0bdeab84b4e5ca656c4c0b31de3ac","r":1,"spa":2}' crossorigin="anonymous"></script>
1143 1144</body> 1145</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.