<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="/assets/css/rss.xsl" type="text/xsl"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>dbushell.com (notes)</title>
    <description>David Bushell’s Notes only feed</description>
    <link>https://dbushell.com/notes/</link>
    <lastBuildDate>Sat, 15 Aug 2026 06:22:00 GMT</lastBuildDate>
    <atom:link href="https://dbushell.com/rss.xml" rel="self" type="application/rss+xml"/>
    <author>David Bushell</author>
    <language>en-GB</language>
<item>
  <description>Slop watermarks are coming to Claude and all LLMs, thanks EU! They use a seeded pseudo-random number generator to ensure the next word is still random, but can be matched back to the seed. It’s clever, and hilarious how often Anthropic use “random” to explain how LLMs work. The current crop of “AI detectors” are absolute bogus. When Anthropic releases their watermark detection API a strong positive should be fairly trustworthy for long prose. In theory the same API could help to lower a watermark score with trial and error. Use a second LLM to replace potential watermark candidates with synonyms; frankenslop. I really don’t like vibecusation. That is just as dehumanising as everything else the AI industry has polluted our culture with. AI disclosure should be mandatory, watermarks and auto-detection warnings are the second best option (if they work).</description>
  <link>https://dbushell.com/notes/2026-08-15T06:22Z/</link>
  <guid isPermaLink="true">https://dbushell.com/notes/2026-08-15T06:22Z/</guid>
  <pubDate>Sat, 15 Aug 2026 06:22:00 GMT</pubDate>
  <content:encoded><![CDATA[<p><a href="https://www.anthropic.com/news/claude-text-watermark" rel="noopener noreferrer" target="_blank">Slop watermarks</a> are coming to Claude and all LLMs, thanks EU!</p><p>They use a seeded pseudo-random number generator to ensure the next word is still random, but can be matched back to the seed. It’s clever, and hilarious how often Anthropic use “random” to explain how LLMs work.</p><p>The current crop of “AI detectors” are absolute bogus. When Anthropic releases their watermark detection API a strong positive should be fairly trustworthy for long prose. In theory the same API could help to lower a watermark score with trial and error. Use a second LLM to replace potential watermark candidates with synonyms; frankenslop.</p><p>I really don’t like <a href="https://dbushell.com/notes/2026-04-09T05:29Z/">vibecusation</a>. That is just as dehumanising as everything else the AI industry has polluted our culture with. AI disclosure should be mandatory, watermarks and auto-detection warnings are the second best option (if they work).</p>
<hr>
<p>
Thanks for reading! Follow me on <a href="https://dbushell.com/mastodon/">Mastodon</a> and <a href="https://dbushell.com/bluesky/">Bluesky</a>.
Subscribe to my <a href="https://dbushell.com/rss.xml">Blog</a> and <a href="https://dbushell.com/notes/rss.xml">Notes</a> or <a href="https://dbushell.com/merge/rss.xml">Combined</a> feeds.
</p>
]]></content:encoded>
</item>
<item>
  <description>I jumped in at the hour mark of Miriam Suzanne’s chat with Brad Frost around the time they discuss the true costs of AI. Miriam’s words are incredible. Brad nods along seemingly agreeing, but fails to see he’s part of the problem by using (and selling) this stuff. I was hoping to better understand the perspective of someone like Brad but I’m more confused than ever.</description>
  <link>https://dbushell.com/notes/2026-08-13T10:14Z/</link>
  <guid isPermaLink="true">https://dbushell.com/notes/2026-08-13T10:14Z/</guid>
  <pubDate>Thu, 13 Aug 2026 10:14:00 GMT</pubDate>
  <content:encoded><![CDATA[<p>I jumped in at the hour mark of <a href="https://share.transistor.fm/s/921996f6" rel="noopener noreferrer" target="_blank">Miriam Suzanne’s chat with Brad Frost</a> around the time they discuss the true costs of AI. Miriam’s words are incredible. Brad nods along seemingly agreeing, but fails to see he’s part of the problem by using (and selling) this stuff. I was hoping to better understand the perspective of someone like Brad but I’m more confused than ever.</p>
<hr>
<p>
Thanks for reading! Follow me on <a href="https://dbushell.com/mastodon/">Mastodon</a> and <a href="https://dbushell.com/bluesky/">Bluesky</a>.
Subscribe to my <a href="https://dbushell.com/rss.xml">Blog</a> and <a href="https://dbushell.com/notes/rss.xml">Notes</a> or <a href="https://dbushell.com/merge/rss.xml">Combined</a> feeds.
</p>
]]></content:encoded>
</item>
<item>
  <description>I had this drafted on my big blog under the title “Abattoirs of taste” which I felt was too killer to waste, so I’m dropping it here unfinished. After reading it back though I had to ask myself: why am I bothering? This nonsense is not what I should be focusing on! I keep seeing the word “taste” pop up in conjunction with AI usage in web development. According to Syntax episode #1027 it is “taste” that now defines the “design engineer”. “I do think that this role in particular is such a huge role in the future now, of the world that we exist in with AI and all these things. And somebody who has design taste and design style is gonna be able to create some really amazing stuff. 5:57 - Scott Tolinski”Scott and Wes define a “design engineer” as someone who uses AI to be an expert in all roles. “It’s like, can somebody just look at a website that you’re building and say, that’s not the right tagline. That’s not the right copy. You don’t have to go through this whole thing of, like, oh, let’s get the copywriter involved. 7:15 - Wes Bos”You must listen to the audio to hear the disrespect dripping off that last line. I’m guessing these are vibe-transcribed quotes so listen to the first 15 minutes for the full conversation. Forget expertise, forget qualifications. Forget a career of research and training to deeply understand a profession. It’s all fair game for a design engineer with taste. I hate to burst your bubble lads, but that is not a “design engineer” you’re describing, that’s a Jackass of all trades with an LLM addiction. Your “taste” is defined less by knowledge and more by financial privilege to afford another round of crackers to feed the stochastic parrot. Wes stops reading the Vercel article being referenced before the important part: “We collaborate on everything because of each person’s unique background and skills. While each person can execute independently, we’ve found that our best work is done through collaboration. None of us is process/tools-driven. We care about the outcome, not the process/tool. Design Engineering at Vercel”Vercel stress collaboration, not “tools” (AI is not just a tool.) The reality is that LLM-driven development is the great leveller. Developers with access to the same LLMs are hitting their heads on the same skill ceiling. For those suffering imposter syndrome this is a relief. AI work mandates enable the quiet quitting their bosses feared. The 10x unicorns love the taste of their own slop. Their dilemma is attesting superiority. The coping mechanism has become: “You’re prompting it wrong!” — think “MCP”, “skills”, “loops”, etc. Everyone believes they can rub the magic lamp more effectively. “Taste” in this context is the opposite end of the extrusion. They go off vibes because they never learnt what it takes to reason about good design. They’re overconfident in their ability because of limited exposure to real expertise. They don’t know what they don’t know. So yeah, this design engineering defined by AI and “taste” is a bit silly, if you ask me.</description>
  <link>https://dbushell.com/notes/2026-08-12T08:21Z/</link>
  <guid isPermaLink="true">https://dbushell.com/notes/2026-08-12T08:21Z/</guid>
  <pubDate>Wed, 12 Aug 2026 08:21:00 GMT</pubDate>
  <content:encoded><![CDATA[<p>I had this drafted on my big blog under the title <em>“Abattoirs of taste”</em> which I felt was too killer to waste, so I’m dropping it here unfinished. After reading it back though I had to ask myself: why am I bothering? This nonsense is not what I should be focusing on!</p><hr/><p>I keep seeing the word “taste” pop up in conjunction with AI usage in web development.</p><p>According to <a href="https://syntax.fm/show/1027/the-rise-of-the-design-engineer/" rel="noopener noreferrer" target="_blank">Syntax episode #1027</a> it is “taste” that now defines the “design engineer”.</p><blockquote><p>I do think that this role in particular is such a huge role in the future now, of the world that we exist in with AI and all these things. And somebody who has design taste and design style is gonna be able to create some really amazing stuff.</p><p><cite><a href="https://syntax.fm/show/1027/the-rise-of-the-design-engineer/transcript#:~:text=I%20do%20think%20that%20this%20role%20in%20particular%20is%20such%20a%20huge%20role%20in%20the%20future%20now%2C%20of%20the%20world%20that%20we%20exist%20in%20with%20AI%20and%20all%20these%20things.%20And%20somebody%20who%20has%20design%20taste%20and%20design%20style%20is%20gonna%20be%20able%20to%20create%20some%20really%20amazing%20stuff." rel="noopener noreferrer" target="_blank">5:57 - Scott Tolinski</a></cite></p></blockquote><p>Scott and Wes define a “design engineer” as someone who uses AI to be an expert in all roles.</p><blockquote><p>It’s like, can somebody just look at a website that you’re building and say, that’s not the right tagline. That’s not the right copy. You don’t have to go through this whole thing of, like, oh, let’s get the copywriter involved.</p><p><cite><a href="https://syntax.fm/show/1027/the-rise-of-the-design-engineer/transcript#:~:text=That%20that%27s%20a%20big%20one%20as%20well.%20It%27s%20like%2C%20can%20somebody%20just%20look%20at%20a%20website%20that%20you%27re%20building%20and%20say%2C%20that%27s%20not%20the%20right%20tagline.%20That%27s%20not%20the%20right%20copy.%20You%20don%27t%20have%20to%20go%20through%20this%20whole%20thing%20of%2C%20like%2C%20oh%2C%20let%27s%20get%20the%20copywriter%20involved." rel="noopener noreferrer" target="_blank">7:15 - Wes Bos</a></cite></p></blockquote><p>You must listen to the audio to hear the disrespect dripping off that last line.</p><p><small>I’m guessing these are vibe-transcribed quotes so listen to the first 15 minutes for the full conversation.</small></p><p>Forget expertise, forget qualifications. Forget a career of research and training to deeply understand a profession. It’s all fair game for a design engineer with taste.</p><p>I hate to burst your bubble lads, but that is not a “design engineer” you’re describing, that’s a Jackass of all trades with an LLM addiction. Your “taste” is defined less by knowledge and more by financial privilege to afford another round of crackers to feed the stochastic parrot.</p><p>Wes stops reading the Vercel article being referenced before the important part:</p><blockquote><p>We collaborate on everything because of each person’s unique background and skills. While each person can execute independently, we’ve found that our best work is done through collaboration. None of us is process/tools-driven. We care about the outcome, not the process/tool.</p><p><a href="https://vercel.com/blog/design-engineering-at-vercel#:~:text=We%20collaborate%20on%20everything%20because%20of%20each%20person%E2%80%99s%20unique%20background%20and%20skills.%20While%20each%20person%20can%20execute%20independently%2C%20we%E2%80%99ve%20found%20that%20our%20best%20work%20is%20done%20through%20collaboration.%20None%20of%20us%20is%20process/tools%2Ddriven.%20We%20care%20about%20the%20outcome%2C%20not%20the%20process/tool." rel="noopener noreferrer" target="_blank">Design Engineering at Vercel</a></p></blockquote><p>Vercel stress collaboration, not “tools” (<a href="https://dbushell.com/2026/04/28/alternative-thoughts/#its-just-a-tool">AI is not just a tool.</a>)</p><p>The reality is that LLM-driven development is the great leveller. Developers with access to the same LLMs are hitting their heads on the same skill ceiling. For those suffering imposter syndrome this is a relief. AI work mandates enable the quiet quitting their bosses feared.</p><p>The 10x unicorns love the taste of their own slop. Their dilemma is attesting superiority. The coping mechanism has become: <em>“You’re prompting it wrong!”</em> — think “MCP”, “skills”, “loops”, etc. Everyone believes they can rub the magic lamp more effectively. “Taste” in this context is the opposite end of the extrusion. They go off vibes because they never learnt what it takes to reason about good design. They’re overconfident in their ability because of limited exposure to real expertise. They don’t know what they don’t know.</p><p>So yeah, this design engineering defined by AI and “taste” is a bit silly, if you ask me.</p>
<hr>
<p>
Thanks for reading! Follow me on <a href="https://dbushell.com/mastodon/">Mastodon</a> and <a href="https://dbushell.com/bluesky/">Bluesky</a>.
Subscribe to my <a href="https://dbushell.com/rss.xml">Blog</a> and <a href="https://dbushell.com/notes/rss.xml">Notes</a> or <a href="https://dbushell.com/merge/rss.xml">Combined</a> feeds.
</p>
]]></content:encoded>
</item>
<item>
  <description>WordPress if famous for its backwards compatibility. That’s if you ignore its non-existent CSS strategy. Over seven years ago the Gutenberg block editor was rushed into v5.0. Ever since, WordPress has polluted the front-end with impossible to manage styles. I’ve written for years about how WordPress breaks CSS and how horrendous theming has become the norm. I tried to raise issues but they went nowhere. My last remaining issue was closed today, unresolved. After all this time the only manageable way to build bespoke WordPress themes is to disable the block editor entirely. I haven’t bothered to write up my approach but it’s very similar to Amber Weinberg’s “Building Modular Themes with ACF Flexible Content” — pair that with Terrence Eden’s “A big list of things I disable in WordPress” and you’ve got a similar base theme to mine. I shared a tip recently to wrangle plugin CSS into a cascade layer. Perhaps a similar approach, with hooks or output buffering, can rein in WordPress pollution. It’s such a moving target though, I’d hate to maintain that. These days I strongly advise clients to question whether WordPress is worth the investment. Most websites can be static with their infrequent content updates. Use a headless CMS for regular news/blogs if that’s cost effective.</description>
  <link>https://dbushell.com/notes/2026-08-11T05:54Z/</link>
  <guid isPermaLink="true">https://dbushell.com/notes/2026-08-11T05:54Z/</guid>
  <pubDate>Tue, 11 Aug 2026 05:54:00 GMT</pubDate>
  <content:encoded><![CDATA[<p>WordPress if famous for its backwards compatibility. That’s <em>if</em> you ignore its non-existent CSS strategy. Over seven years ago the Gutenberg block editor was <a href="https://dbushell.com/2021/08/03/wordpress-has-a-gutenberg-problem/">rushed into v5.0.</a> Ever since, WordPress has polluted the front-end with impossible to manage styles.</p><p>I’ve written for years about how <a href="https://dbushell.com/2023/08/16/wordpress-6-3-breaking-decades-of-css/">WordPress breaks CSS</a> and how <a href="https://dbushell.com/2024/05/07/modern-wordpress-themes-yikes/">horrendous theming</a> has become the norm. I tried to raise <a href="https://github.com/WordPress/gutenberg/issues/53717" rel="noopener noreferrer" target="_blank">issues</a> but they went nowhere. My last remaining issue was closed today, unresolved.</p><p>After all this time the only manageable way to build bespoke WordPress themes is to disable the block editor entirely. I haven’t bothered to write up my approach but it’s very similar to Amber Weinberg’s <a href="https://amberweinberg.com/building-modular-themes-with-acf-flexible-content-instead-of-buggy-builder-frameworks/" rel="noopener noreferrer" target="_blank">“Building Modular Themes with ACF Flexible Content”</a> — pair that with Terrence Eden’s <a href="https://shkspr.mobi/blog/2025/11/a-big-list-of-things-i-disable-in-wordpress/" rel="noopener noreferrer" target="_blank">“A big list of things I disable in WordPress”</a> and you’ve got a similar base theme to mine.</p><p>I shared a tip recently to <a href="https://dbushell.com/notes/2026-04-01T13:51Z/">wrangle plugin CSS</a> into a cascade layer. Perhaps a similar approach, with hooks or <a href="https://www.php.net/manual/en/book.outcontrol.php" rel="noopener noreferrer" target="_blank">output buffering</a>, can rein in WordPress pollution. It’s such a moving target though, I’d hate to maintain that.</p><p>These days I strongly advise clients to question whether WordPress is worth the investment. Most websites can be static with their infrequent content updates. Use a headless CMS for regular news/blogs if that’s cost effective.</p>
<hr>
<p>
Thanks for reading! Follow me on <a href="https://dbushell.com/mastodon/">Mastodon</a> and <a href="https://dbushell.com/bluesky/">Bluesky</a>.
Subscribe to my <a href="https://dbushell.com/rss.xml">Blog</a> and <a href="https://dbushell.com/notes/rss.xml">Notes</a> or <a href="https://dbushell.com/merge/rss.xml">Combined</a> feeds.
</p>
]]></content:encoded>
</item>
<item>
  <description>This story is wild. Where to start? John Gruber posts “App Store Rejection of the Week: Dark Hours” (now retracted) about Terry Godier’s “Browsers have standards, the App Store has judgment” (since edited). Godier claimed to have built an astronomy app called Dark Hours over four months, and that Apple rejected the app “on the grounds that it was Astrology”. Gruber ran with the story, heavily criticising Apple. The next day Gruber retracted his post. The app rejected by Apple was called Asterly, not Dark Hours, and did in fact contain astrology, as Godier later admits. Gruber even gave Godier a draft before publishing his original post and Godier “offered not a word of caution”. The story doesn’t end there! The developer of an app called DarkHours called out Godier on Bluesky citing similar features and bugs. Godier quickly posts Mea Culpa - Dark Hours blaming AI and Claude for the rip off. Godier redirected his domain to the original app. The original DarkHours also appears to be heavily vibe-coded. It’s MIT licensed too, so a simple attribution would have been sufficient. Comments on Mastodon suggest “It’s slop all the way down.” Whatever the truth, these are dark hours for open source, that’s for sure.</description>
  <link>https://dbushell.com/notes/2026-08-10T08:33Z/</link>
  <guid isPermaLink="true">https://dbushell.com/notes/2026-08-10T08:33Z/</guid>
  <pubDate>Mon, 10 Aug 2026 08:33:00 GMT</pubDate>
  <content:encoded><![CDATA[<p>This story is wild. Where to start?</p><p>John Gruber posts <a href="https://daringfireball.net/misc/2026/08/app_store_rejection_of_the_week_dark_hours.text" rel="noopener noreferrer" target="_blank">“App Store Rejection of the Week: Dark Hours”</a> (now retracted) about Terry Godier’s <a href="https://web.archive.org/web/20260807141155/https://blog.terrygodier.com/2026/08/07/browsers-have-standards-the-app.html" rel="noopener noreferrer" target="_blank">“Browsers have standards, the App Store has judgment”</a> (since edited).</p><p>Godier claimed to have built an astronomy app called <em>Dark Hours</em> over four months, and that Apple rejected the app “on the grounds that it was Astrology”. Gruber ran with the story, heavily criticising Apple.</p><p>The next day <a href="https://daringfireball.net/2026/08/retraction_app_store_rejection_of_the_week" rel="noopener noreferrer" target="_blank">Gruber retracted</a> his post. The app rejected by Apple was called <em>Asterly</em>, not <em>Dark Hours</em>, and did in fact contain astrology, as Godier later admits. Gruber even gave Godier a draft before publishing his original post and Godier “offered not a word of caution”.</p><p>The story doesn’t end there!</p><p>The developer of an app called <em>DarkHours</em> <a href="https://bsky.app/profile/terrygodier.com/post/3ms2lm4kcfc2j" rel="noopener noreferrer" target="_blank">called out Godier on Bluesky</a> citing similar features and bugs. Godier quickly posts <a href="https://blog.terrygodier.com/2026/08/09/mea-culpa-dark-hours.html" rel="noopener noreferrer" target="_blank">Mea Culpa - Dark Hours</a> blaming AI and Claude for the rip off. Godier redirected his domain to the original app.</p><p>The original <em>DarkHours</em> also appears to be heavily vibe-coded. It’s MIT licensed too, so a simple attribution would have been sufficient. <a href="https://c.im/@dpnash/117067117683917033" rel="noopener noreferrer" target="_blank">Comments on Mastodon</a> suggest “It’s slop all the way down.”</p><p>Whatever the truth, these are dark hours for open source, that’s for sure.</p>
<hr>
<p>
Thanks for reading! Follow me on <a href="https://dbushell.com/mastodon/">Mastodon</a> and <a href="https://dbushell.com/bluesky/">Bluesky</a>.
Subscribe to my <a href="https://dbushell.com/rss.xml">Blog</a> and <a href="https://dbushell.com/notes/rss.xml">Notes</a> or <a href="https://dbushell.com/merge/rss.xml">Combined</a> feeds.
</p>
]]></content:encoded>
</item>
<item>
  <description>I read: “We Stopped Using RSC on TanStack.com” and it’s incredible. They were shipping 1.1 MiB of JavaScript to the browser to render markdown and syntax highlight code examples — in the browser. They moved this work to the server (good) using React Server Components (bad). RSC proved to be unbearable, even by TanStack standards. They then wrote their own markdown parser and syntax highlighter, and despite using SSR for the initial page load, they’re back to rendering markdown in the browser. At no point in this palaver did anyone stop to ask, why are we re-rendering the same markdown for every request?</description>
  <link>https://dbushell.com/notes/2026-08-09T08:32Z/</link>
  <guid isPermaLink="true">https://dbushell.com/notes/2026-08-09T08:32Z/</guid>
  <pubDate>Sun, 09 Aug 2026 08:32:00 GMT</pubDate>
  <content:encoded><![CDATA[<p>I read: <a href="https://tanstack.com/blog/we-stopped-using-rsc-on-tanstack-com" rel="noopener noreferrer" target="_blank">“We Stopped Using RSC on TanStack.com”</a> and it’s incredible.</p><p>They were shipping 1.1 MiB of JavaScript to the browser to render markdown and syntax highlight code examples — <em>in the browser.</em></p><p>They moved this work to the server (good) using React Server Components (bad).</p><p>RSC proved to be unbearable, even by TanStack standards. They then wrote their own markdown parser and syntax highlighter, and despite using SSR for the initial page load, they’re back to rendering markdown <strong>in the browser.</strong></p><p>At no point in this palaver did anyone stop to ask, why are we re-rendering the same markdown for <em>every request?</em></p>
<hr>
<p>
Thanks for reading! Follow me on <a href="https://dbushell.com/mastodon/">Mastodon</a> and <a href="https://dbushell.com/bluesky/">Bluesky</a>.
Subscribe to my <a href="https://dbushell.com/rss.xml">Blog</a> and <a href="https://dbushell.com/notes/rss.xml">Notes</a> or <a href="https://dbushell.com/merge/rss.xml">Combined</a> feeds.
</p>
]]></content:encoded>
</item>
<item>
  <description>I watched a recent Jeff Geerling video (YouTube) and couldn’t believe what I was seeing. The current price of a Raspberry Pi is an absolute rip off. I checked The Pi Hut and Pimoroni both are priced the same for the UK market. Raspberry Pi 5 for £292.80? Who in their right mind would buy that? I see they introduced a 1GB model for £43.20. A 1GB Pi 5 has extremely limited use, a Pi 4 or even Pi 3 with more RAM would be a better choice. 1GB is a marketing scam. They can claim “from £43.20” and maybe trick a few unobservant suckers. I bought my 8GB Pi 5 for £65.75 in 2023 and even that was way too expensive. I’ve noted similar price hikes for computer parts. The PC and self-hosted hobby is dead right now. Guess who ruined it?</description>
  <link>https://dbushell.com/notes/2026-08-04T05:12Z/</link>
  <guid isPermaLink="true">https://dbushell.com/notes/2026-08-04T05:12Z/</guid>
  <pubDate>Tue, 04 Aug 2026 05:12:00 GMT</pubDate>
  <content:encoded><![CDATA[<p>I watched a recent <a href="https://www.youtube.com/watch?v=53AkaYvw63U" rel="noopener noreferrer" target="_blank">Jeff Geerling video (YouTube)</a> and couldn’t believe what I was seeing. The current price of a <a href="https://www.raspberrypi.com/" rel="noopener noreferrer" target="_blank">Raspberry Pi</a> is an absolute rip off.</p><p>I checked <a href="https://thepihut.com/products/raspberry-pi-5?variant=53972414431617" rel="noopener noreferrer" target="_blank">The Pi Hut</a> and <a href="https://shop.pimoroni.com/products/raspberry-pi-5?variant=54937425674619" rel="noopener noreferrer" target="_blank">Pimoroni</a> both are priced the same for the UK market.</p><figure class="Image"><img src="https://dbushell.com/images/blog/2026/raspberrypi.avif" alt="Raspberry Pi 5 16GB priced £292.80 (incl. VAT)" width="428" height="298" decoding="async" fetchpriority="low" loading="lazy" id="--img-38e866c4"/></figure><p>Raspberry Pi 5 for £292.80? Who in their right mind would buy that?</p><p>I see they introduced a 1GB model for £43.20. A 1GB Pi 5 has extremely limited use, a Pi 4 or even Pi 3 with more RAM would be a better choice. 1GB is a marketing scam. They can claim “from £43.20” and maybe trick a few unobservant suckers.</p><p>I bought my 8GB Pi 5 for £65.75 in 2023 and even that was way too expensive.</p><p>I’ve noted <a href="https://dbushell.com/notes/2026-06-21T10:53Z/">similar price hikes</a> for computer parts. The PC and self-hosted hobby is dead right now. Guess who ruined it?</p>
<hr>
<p>
Thanks for reading! Follow me on <a href="https://dbushell.com/mastodon/">Mastodon</a> and <a href="https://dbushell.com/bluesky/">Bluesky</a>.
Subscribe to my <a href="https://dbushell.com/rss.xml">Blog</a> and <a href="https://dbushell.com/notes/rss.xml">Notes</a> or <a href="https://dbushell.com/merge/rss.xml">Combined</a> feeds.
</p>
]]></content:encoded>
</item>
<item>
  <description>I really don’t understand the purpose of Homebrew anymore. Today I tried to rebuild my Tauri app and I get a weird error. I run tauri info to find: Weird, I thought I had installed Rust via Homebrew. I run which rustup to find: I run rustup and everything updates. I check ~/.cargo/bin and see all the Rust tools are symlinked to /opt/homebrew/bin/rustup-init — the rustup-init file does not exist. I delete everything and reinstall: Only to be notified: What does this mean? I’m using Homebrew because a package manager is supposed to be convenient. I’m not here for cryptic beer metaphors. What’s the point if it can’t install usable packages? This happens so often. Homebrew package break, I’m left trawling GitHub issues trying to make heads or tails. So I give up and go to the original source piping install scripts straight to bash. I get that Homebrew is an open source volunteer project. I don’t want to sound complainy. I just don’t understand what it’s supposed to do anymore.</description>
  <link>https://dbushell.com/notes/2026-08-02T11:09Z/</link>
  <guid isPermaLink="true">https://dbushell.com/notes/2026-08-02T11:09Z/</guid>
  <pubDate>Sun, 02 Aug 2026 11:09:00 GMT</pubDate>
  <content:encoded><![CDATA[<p>I really don’t understand the purpose of <a href="https://brew.sh/" rel="noopener noreferrer" target="_blank">Homebrew</a> anymore.</p><p>Today I tried to rebuild <a href="https://dbushell.com/2025/07/18/croissant-is-coming-for-you/">my Tauri app</a> and I get a weird error.</p><p>I run <code>tauri info</code> to find:</p><pre data-lang="text" tabindex="0" translate="no" id="pre-a69395ae"><code><span class="line"><span>[✘]</span><span class="space"> </span><span>Environment</span></span>
<span class="line"><span class="space"> </span><span class="space"> </span><span class="space"> </span><span class="space"> </span><span>✘</span><span class="space"> </span><span>rustc:</span><span class="space"> </span><span>not</span><span class="space"> </span><span>installed!</span></span>
<span class="line"><span class="space"> </span><span class="space"> </span><span class="space"> </span><span class="space"> </span><span class="space"> </span><span class="space"> </span><span>Maybe</span><span class="space"> </span><span>you</span><span class="space"> </span><span>don't</span><span class="space"> </span><span>have</span><span class="space"> </span><span>rust</span><span class="space"> </span><span>installed!</span><span class="space"> </span><span>Visit</span><span class="space"> </span><span>https://rustup.rs/</span></span>
<span class="line"><span class="space"> </span><span class="space"> </span><span class="space"> </span><span class="space"> </span><span>✘</span><span class="space"> </span><span>Cargo:</span><span class="space"> </span><span>not</span><span class="space"> </span><span>installed!</span></span>
<span class="line"><span class="space"> </span><span class="space"> </span><span class="space"> </span><span class="space"> </span><span class="space"> </span><span class="space"> </span><span>Maybe</span><span class="space"> </span><span>you</span><span class="space"> </span><span>don't</span><span class="space"> </span><span>have</span><span class="space"> </span><span>rust</span><span class="space"> </span><span>installed!</span><span class="space"> </span><span>Visit</span><span class="space"> </span><span>https://rustup.rs/</span></span>
<span class="line"><span class="space"> </span><span class="space"> </span><span class="space"> </span><span class="space"> </span><span>✔</span><span class="space"> </span><span>rustup:</span><span class="space"> </span><span>1.29.0</span><span class="space"> </span><span>(2026-03-05)</span></span>
<span class="line"><span class="space"> </span><span class="space"> </span><span class="space"> </span><span class="space"> </span><span>✔</span><span class="space"> </span><span>Rust</span><span class="space"> </span><span>toolchain:</span><span class="space"> </span><span>stable-aarch64-apple-darwin</span><span class="space"> </span><span>(default)</span></span></code></pre><p>Weird, I thought I had installed Rust via Homebrew.</p><p>I run <code>which rustup</code> to find:</p><pre data-lang="text" tabindex="0" translate="no" id="pre-0a907281"><code><span class="line"><span>/opt/homebrew/bin/rustup</span></span></code></pre><p>I run <code>rustup</code> and everything updates.</p><p>I check <code>~/.cargo/bin</code> and see all the Rust tools are symlinked to <code>/opt/homebrew/bin/rustup-init</code> — the <code>rustup-init</code> file does not exist.</p><p>I delete everything and reinstall:</p><pre data-lang="sh" tabindex="0" translate="no" id="pre-cc3b702d"><code><span class="line"><span class="syntax-c01639ae">brew</span><span class="space"> </span><span class="syntax-e661ac3e">install</span><span class="space"> </span><span class="syntax-e661ac3e">rustup</span></span></code></pre><p>Only to be notified:</p><pre data-lang="text" tabindex="0" translate="no" id="pre-8b797a2a"><code><span class="line"><span>This</span><span class="space"> </span><span>formula</span><span class="space"> </span><span>no</span><span class="space"> </span><span>longer</span><span class="space"> </span><span>provides</span><span class="space"> </span><span>`rustup-init`.</span></span>
<span class="line"><span></span></span>
<span class="line"><span>rustup</span><span class="space"> </span><span>is</span><span class="space"> </span><span>keg-only,</span><span class="space"> </span><span>which</span><span class="space"> </span><span>means</span><span class="space"> </span><span>it</span><span class="space"> </span><span>was</span><span class="space"> </span><span>not</span><span class="space"> </span><span>symlinked</span><span class="space"> </span><span>into</span><span class="space"> </span><span>/opt/homebrew,</span></span>
<span class="line"><span>because</span><span class="space"> </span><span>it</span><span class="space"> </span><span>conflicts</span><span class="space"> </span><span>with</span><span class="space"> </span><span>rust.</span></span></code></pre><p>What does this mean? I’m using Homebrew because a package manager is supposed to be convenient. I’m not here for cryptic beer metaphors. What’s the point if it can’t install usable packages? This happens so often. Homebrew package break, I’m left trawling GitHub issues trying to make heads or tails.</p><p>So I give up and go to the <a href="https://rust-lang.org/tools/install/" rel="noopener noreferrer" target="_blank">original source</a> piping install scripts straight to bash.</p><p>I get that Homebrew is an open source volunteer project. I don’t want to sound complainy. I just don’t understand what it’s supposed to do anymore.</p>
<hr>
<p>
Thanks for reading! Follow me on <a href="https://dbushell.com/mastodon/">Mastodon</a> and <a href="https://dbushell.com/bluesky/">Bluesky</a>.
Subscribe to my <a href="https://dbushell.com/rss.xml">Blog</a> and <a href="https://dbushell.com/notes/rss.xml">Notes</a> or <a href="https://dbushell.com/merge/rss.xml">Combined</a> feeds.
</p>
]]></content:encoded>
</item>
<item>
  <description>Cold opens are the worst new trend in podcasting. Random talking with no context. I’m supposed to guess who is speaking and what they’re rambling on about? I look forward to the vague deja vu I get when it’s repeated in 40 minutes 🙄 This ain’t TikTok. Nobody is getting hooked on a poorly chosen mid-sentence quote that isn’t half as profound and the editor imagined. I’m getting real tired of hitting fast-forward an unknown number of times to find the actual start. Much easier to hit unsubscribe.</description>
  <link>https://dbushell.com/notes/2026-08-02T09:12Z/</link>
  <guid isPermaLink="true">https://dbushell.com/notes/2026-08-02T09:12Z/</guid>
  <pubDate>Sun, 02 Aug 2026 09:12:00 GMT</pubDate>
  <content:encoded><![CDATA[<p>Cold opens are the worst new trend in podcasting.</p><p>Random talking with no context. I’m supposed to guess who is speaking and what they’re rambling on about? I look forward to the vague deja vu I get when it’s repeated in 40 minutes 🙄</p><p>This ain’t TikTok. Nobody is getting hooked on a poorly chosen mid-sentence quote that isn’t half as profound and the editor imagined.</p><p>I’m getting real tired of hitting fast-forward an unknown number of times to find the actual start. Much easier to hit unsubscribe.</p>
<hr>
<p>
Thanks for reading! Follow me on <a href="https://dbushell.com/mastodon/">Mastodon</a> and <a href="https://dbushell.com/bluesky/">Bluesky</a>.
Subscribe to my <a href="https://dbushell.com/rss.xml">Blog</a> and <a href="https://dbushell.com/notes/rss.xml">Notes</a> or <a href="https://dbushell.com/merge/rss.xml">Combined</a> feeds.
</p>
]]></content:encoded>
</item>
<item>
  <description>I am listening to The Licanius Trilogy by James Islington. The Wheel of Time influence is obvious. The audiobooks are read by Michael Kramer who is the voice of the high fantasy genre. I’m not convinced half way into the first book but I’ll see it through.</description>
  <link>https://dbushell.com/notes/2026-08-02T05:41Z/</link>
  <guid isPermaLink="true">https://dbushell.com/notes/2026-08-02T05:41Z/</guid>
  <pubDate>Sun, 02 Aug 2026 05:41:00 GMT</pubDate>
  <content:encoded><![CDATA[<p>I am listening to <a href="https://en.wikipedia.org/wiki/The_Shadow_of_What_Was_Lost" rel="noopener noreferrer" target="_blank">The Licanius Trilogy</a> by <em>James Islington</em>. The <a href="https://en.wikipedia.org/wiki/The_Wheel_of_Time" rel="noopener noreferrer" target="_blank">Wheel of Time</a> influence is obvious. The audiobooks are read by <em>Michael Kramer</em> who is <em>the</em> voice of the high fantasy genre. I’m not convinced half way into the first book but I’ll see it through.</p>
<hr>
<p>
Thanks for reading! Follow me on <a href="https://dbushell.com/mastodon/">Mastodon</a> and <a href="https://dbushell.com/bluesky/">Bluesky</a>.
Subscribe to my <a href="https://dbushell.com/rss.xml">Blog</a> and <a href="https://dbushell.com/notes/rss.xml">Notes</a> or <a href="https://dbushell.com/merge/rss.xml">Combined</a> feeds.
</p>
]]></content:encoded>
</item>
<item>
  <description>After a long absence I’m back coding with Sublime Text. I can’t remember when or why I switched to VS Code. I moved to VSCodium for a short period last year and then gave Zed a spin. These modern apps and their “developer experience” suck. Sublime Text with five minutes of configuration in a breath of fresh air.</description>
  <link>https://dbushell.com/notes/2026-07-27T15:44Z/</link>
  <guid isPermaLink="true">https://dbushell.com/notes/2026-07-27T15:44Z/</guid>
  <pubDate>Mon, 27 Jul 2026 15:44:00 GMT</pubDate>
  <content:encoded><![CDATA[<p>After a long absence I’m back coding with <a href="https://www.sublimetext.com/" rel="noopener noreferrer" target="_blank">Sublime Text</a>.</p><p>I can’t remember when or why I switched to VS Code. I moved to VSCodium for a short period last year and then gave Zed a spin.</p><p>These <a href="https://dbushell.com/2026/07/02/the-modern-app/">modern apps</a> and their <smart-arse>“developer experience”</smart-arse> suck.</p><p>Sublime Text with five minutes of configuration in a breath of fresh air.</p>
<hr>
<p>
Thanks for reading! Follow me on <a href="https://dbushell.com/mastodon/">Mastodon</a> and <a href="https://dbushell.com/bluesky/">Bluesky</a>.
Subscribe to my <a href="https://dbushell.com/rss.xml">Blog</a> and <a href="https://dbushell.com/notes/rss.xml">Notes</a> or <a href="https://dbushell.com/merge/rss.xml">Combined</a> feeds.
</p>
]]></content:encoded>
</item>
<item>
  <description>Lightning CSS is not fit for purpose. (╯°□°)╯︵ ┻━┻ It’s practically impossible to control what CSS is actually output. The documentation and config are infuriating on missing details. It’s not a problem until it’s a problem. As soon as you try to fix issues like animation shorthand a side effect is triggered elsewhere. Lightning CSS is like one of those mini-games where you have to activate a row of switches but when you toggle one switch others are inverted. That game sucks. I’m back to using ESBuild to bundle and minify CSS. If minification doesn’t matter, and it rarely does with HTTP compression, I’m using ten lines of janky Node.js to bundle CSS imports myself. ESBuild is annoying too. I had to write a custom plugin shim to flag font and image URLs and “external” otherwise it cried about path resolution. I just want to bundle imports! Why is there no option to do the most basic thing? I’m convinced none of these tool developers ever build real websites. Modern dev tools all have main character syndrome. Sorry, you’re not that important. By all means have your cryptic JSON dot file and CLIs for the converted. But please just export the no-nonsense primitive parts as a code library.</description>
  <link>https://dbushell.com/notes/2026-07-26T08:20Z/</link>
  <guid isPermaLink="true">https://dbushell.com/notes/2026-07-26T08:20Z/</guid>
  <pubDate>Sun, 26 Jul 2026 08:20:00 GMT</pubDate>
  <content:encoded><![CDATA[<p><a href="https://lightningcss.dev/" rel="noopener noreferrer" target="_blank">Lightning CSS</a> is not fit for purpose.</p><p role="img" aria-label="ASCII art of an incensed person flipping a table.">(╯°□°)╯︵ ┻━┻</p><p>It’s practically impossible to control what CSS is actually output. The documentation and config are infuriating on missing details.</p><p>It’s not a problem until it’s a problem. As soon as you try to fix <a href="https://github.com/parcel-bundler/lightningcss/issues/1283" rel="noopener noreferrer" target="_blank">issues like animation shorthand</a> a side effect is triggered elsewhere.</p><p>Lightning CSS is like one of those mini-games where you have to activate a row of switches but when you toggle one switch others are inverted. That game sucks.</p><p>I’m back to using <a href="https://esbuild.github.io/" rel="noopener noreferrer" target="_blank">ESBuild</a> to bundle and minify CSS. If minification doesn’t matter, and it rarely does with HTTP compression, I’m using ten lines of janky Node.js to bundle CSS imports myself.</p><p>ESBuild is annoying too. I had to write a custom plugin shim to flag font and image URLs and “external” otherwise it cried about path resolution. I just want to bundle imports! Why is there no option to do the most basic thing?</p><p>I’m convinced none of these tool developers ever build real websites. Modern dev tools all have main character syndrome. Sorry, you’re not that important. By all means have your cryptic JSON dot file and CLIs for the converted. But please just export the no-nonsense primitive parts as a code library.</p>
<hr>
<p>
Thanks for reading! Follow me on <a href="https://dbushell.com/mastodon/">Mastodon</a> and <a href="https://dbushell.com/bluesky/">Bluesky</a>.
Subscribe to my <a href="https://dbushell.com/rss.xml">Blog</a> and <a href="https://dbushell.com/notes/rss.xml">Notes</a> or <a href="https://dbushell.com/merge/rss.xml">Combined</a> feeds.
</p>
]]></content:encoded>
</item>
<item>
  <description>Apple has quietly discontinued Safari Technical Preview for macOS 15 (Sequoia). Version 245 was the last release. macOS 26 (Tahoe, aka Trainwreck) was required from version 256 onwards. For now it remains possible to install Safari 26 and apparently Safari 27 Beta on Sequoia. You just have to navigate Apple’s terrible system settings UI and dodge the deceptive patterns that trick you into a Tahoe install. Stay vigilant!</description>
  <link>https://dbushell.com/notes/2026-07-23T09:29Z/</link>
  <guid isPermaLink="true">https://dbushell.com/notes/2026-07-23T09:29Z/</guid>
  <pubDate>Thu, 23 Jul 2026 09:29:00 GMT</pubDate>
  <content:encoded><![CDATA[<p>Apple has quietly discontinued Safari Technical Preview for macOS 15 (Sequoia). <a href="https://developer.apple.com/documentation/safari-technology-preview-release-notes/stp-release-245" rel="noopener noreferrer" target="_blank">Version 245</a> was the last release. macOS 26 (Tahoe, aka Trainwreck) was required from version 256 onwards. For now it remains possible to install Safari 26 and apparently <a href="https://developer.apple.com/documentation/safari-release-notes/safari-27-release-notes" rel="noopener noreferrer" target="_blank">Safari 27 Beta</a> on Sequoia. You just have to navigate Apple’s terrible system settings UI and dodge the deceptive patterns that trick you into a Tahoe install. Stay vigilant!</p>
<hr>
<p>
Thanks for reading! Follow me on <a href="https://dbushell.com/mastodon/">Mastodon</a> and <a href="https://dbushell.com/bluesky/">Bluesky</a>.
Subscribe to my <a href="https://dbushell.com/rss.xml">Blog</a> and <a href="https://dbushell.com/notes/rss.xml">Notes</a> or <a href="https://dbushell.com/merge/rss.xml">Combined</a> feeds.
</p>
]]></content:encoded>
</item>
<item>
  <description>Codeberg is “Protecting our FLOSS commons from LLMs”. TL;DR: keep your slop on GitHub. Nice to see a project push back against the dead internet.</description>
  <link>https://dbushell.com/notes/2026-07-23T05:06Z/</link>
  <guid isPermaLink="true">https://dbushell.com/notes/2026-07-23T05:06Z/</guid>
  <pubDate>Thu, 23 Jul 2026 05:06:00 GMT</pubDate>
  <content:encoded><![CDATA[<p>Codeberg is <a href="https://blog.codeberg.org/protecting-our-floss-commons-from-llms.html" rel="noopener noreferrer" target="_blank">“Protecting our FLOSS commons from LLMs”</a>.</p><p>TL;DR: keep your slop on GitHub.</p><p>Nice to see a project push back against the dead internet.</p>
<hr>
<p>
Thanks for reading! Follow me on <a href="https://dbushell.com/mastodon/">Mastodon</a> and <a href="https://dbushell.com/bluesky/">Bluesky</a>.
Subscribe to my <a href="https://dbushell.com/rss.xml">Blog</a> and <a href="https://dbushell.com/notes/rss.xml">Notes</a> or <a href="https://dbushell.com/merge/rss.xml">Combined</a> feeds.
</p>
]]></content:encoded>
</item>
<item>
  <description>I found Lumis via the Master’s blog (new name, huh?) Lumis looks to be the new hotness in syntax highlighting. Does that mean Shiki is now old and busted? I use Shiki for better syntax highlighting but I have to jump through a few hoops. Is Lumis better? Shiki churns through all 932 code snippets on my blog in around ~1800ms. Lumis can do it in ~1400ms. On one hand that’s quite a significant saving, on the other hand it’s 2026 and I’m not running CI pipelines to rebuild the same code every commit. I hash-and-cache highlighted snippets so speed is a non-issue. And two seconds was never a problem anyway. Lumis’ gimmick is that it uses Tree-sitter to properly parse code rather than regular expression pattern matching. In theory this should produce more accurate results. Take a look at the before and after below. Lumis chokes on JavaScript template literal string interpolation. Shiki can highlight whitespace. I bodged it myself in Lumis so ignore that random bar after @layer, that’s my mess. For these examples I used the Dracula theme which is objectively the correct theme under all circumstances. I slightly modified colour values in both Shiki and Lumis to boost contrast. I did not change where colours were applied. Lumis does a better job picking up unique tokens like the CSS hex colour hash. However, I don’t think it’s always necessary to change their colour. I think hex colours should be a single highlight. The JSX example below illustrates the opposite problem. Why are the curly braces the same colour as the variables? The tokens were parsed but no colour was applied. Perhaps this is just a bad application of the Dracula theme. I’ll also concede that I’m used to seeing how Shiki does it. Theme differences can be fixed if I cared to spend the time. That highlight mistake in the JavaScript code is more off-putting. Side note: Lumis triggered GitHub’s vibe detector. There are slop commits and multiple SLOP.md files. All I’ll say is that quality of code is the least of my concerns. All in all, not enough reasons for me to change. Maybe I’ll check again later.</description>
  <link>https://dbushell.com/notes/2026-07-17T11:00Z/</link>
  <guid isPermaLink="true">https://dbushell.com/notes/2026-07-17T11:00Z/</guid>
  <pubDate>Fri, 17 Jul 2026 11:00:00 GMT</pubDate>
  <content:encoded><![CDATA[<p>I found <a href="https://lumis.sh/" rel="noopener noreferrer" target="_blank">Lumis</a> via the <a href="https://master.dev/blog/lumis-syntax-highlighter-powered-by-tree-sitter/" rel="noopener noreferrer" target="_blank">Master’s blog</a> (<a href="https://master.dev/blog/today-frontend-masters-becomes-master-dev/" rel="noopener noreferrer" target="_blank">new name</a>, huh?) Lumis looks to be the new hotness in <strong>syntax highlighting</strong>. Does that mean <a href="https://shiki.style/" rel="noopener noreferrer" target="_blank">Shiki</a> is now old and busted? I use Shiki for <a href="https://dbushell.com/2024/03/14/better-syntax-highlighting/">better syntax highlighting</a> but I have to jump through a few hoops. Is Lumis better?</p><p>Shiki churns through all 932 code snippets on my blog in around ~1800ms. Lumis can do it in ~1400ms. On one hand that’s quite a significant saving, on the other hand it’s 2026 and I’m not running CI pipelines to rebuild the same code every commit. I hash-and-cache highlighted snippets so speed is a non-issue. And two seconds was never a problem anyway.</p><p>Lumis’ gimmick is that it uses <a href="https://tree-sitter.github.io/tree-sitter/" rel="noopener noreferrer" target="_blank">Tree-sitter</a> to properly parse code rather than <glossary-term id="--term-regular-expression"><a href="https://xkcd.com/208/" rel="noopener noreferrer" target="_blank">regular expression</a></glossary-term> pattern matching. In theory this should produce more accurate results.</p><p>Take a look at the before and after below. Lumis chokes on JavaScript template literal string interpolation.</p><figure class="Image"><img src="https://dbushell.com/images/blog/2026/lumis-shiki-1.png" alt="Side-by-side comparison in syntax highlighting for JavasScript." width="800" height="134" decoding="async" fetchpriority="low" loading="lazy" id="--img-1f494311"/><figcaption>Shiki on the left, Lumis on the right.</figcaption></figure><p>Shiki can highlight whitespace. I bodged it myself in Lumis so ignore that random bar after <code>@layer</code>, that’s my mess. For these examples I used the <em>Dracula theme</em> which is objectively the correct theme under all circumstances. I slightly modified colour values in both Shiki and Lumis to boost contrast. I did not change where colours were applied.</p><p>Lumis does a better job picking up unique tokens like the CSS hex colour hash. However, I don’t think it’s always necessary to change their colour. I think hex colours should be a single highlight.</p><figure class="Image"><img src="https://dbushell.com/images/blog/2026/lumis-shiki-2.png" alt="Side-by-side comparison in syntax highlighting for CSS." width="740" height="339" decoding="async" fetchpriority="low" loading="lazy" id="--img-4b6feab8"/><figcaption>Shiki on the left, Lumis on the right.</figcaption></figure><p>The JSX example below illustrates the opposite problem.</p><figure class="Image"><img src="https://dbushell.com/images/blog/2026/lumis-shiki-3.png" alt="Side-by-side comparison in syntax highlighting for JSX." width="1240" height="313" decoding="async" fetchpriority="low" loading="lazy" id="--img-646cb5cb"/><figcaption>Shiki on the left, Lumis on the right.</figcaption></figure><p>Why are the curly braces the same colour as the variables? The tokens were parsed but no colour was applied. Perhaps this is just a bad application of the Dracula theme. I’ll also concede that I’m used to seeing how Shiki does it.</p><p>Theme differences can be fixed if I cared to spend the time. That highlight mistake in the JavaScript code is more off-putting.</p><p>Side note: Lumis triggered <a href="https://dbushell.com/notes/2026-02-18T12:52Z/">GitHub’s vibe detector</a>. There are <a href="https://github.com/leandrocp/lumis/commit/4c696f7e718edf473f2e91543418b38b23ec7475" rel="noopener noreferrer" target="_blank">slop commits</a> and multiple <code>SLOP.md</code> files. All I’ll say is that quality of code is <em>the least</em> of <a href="https://dbushell.com/ai/">my concerns</a>.</p><p>All in all, not enough reasons for me to change. Maybe I’ll check again later.</p>
<hr>
<p>
Thanks for reading! Follow me on <a href="https://dbushell.com/mastodon/">Mastodon</a> and <a href="https://dbushell.com/bluesky/">Bluesky</a>.
Subscribe to my <a href="https://dbushell.com/rss.xml">Blog</a> and <a href="https://dbushell.com/notes/rss.xml">Notes</a> or <a href="https://dbushell.com/merge/rss.xml">Combined</a> feeds.
</p>
]]></content:encoded>
</item>
<item>
  <description>“What’s !important” is a semi-regular series on CSS-Tricks by Daniel Schwarz that covers everything hot in CSS and front-end. It’s a great round up, not just because I’m in this week’s edition! It’s nice to see CSS-Tricks ramping up quality content again. Following the Digital Ocean sale it was looking rather dicey. I feared it would be another .net magazine disaster. Remember when that just got eradicated? They promised to migrate content but now links just redirect to a generic landing page.</description>
  <link>https://dbushell.com/notes/2026-07-16T07:02Z/</link>
  <guid isPermaLink="true">https://dbushell.com/notes/2026-07-16T07:02Z/</guid>
  <pubDate>Thu, 16 Jul 2026 07:02:00 GMT</pubDate>
  <content:encoded><![CDATA[<p><a href="https://css-tricks.com/whats-important-15/" rel="noopener noreferrer" target="_blank">“What’s !important”</a> is a semi-regular series on <em>CSS-Tricks</em> by Daniel Schwarz that covers everything hot in CSS and front-end. It’s a great round up, not just because I’m in this week’s edition!</p><p>It’s nice to see <em>CSS-Tricks</em> ramping up quality content again. Following the <a href="https://chriscoyier.net/2024/02/28/where-im-at-on-the-whole-css-tricks-thing/" rel="noopener noreferrer" target="_blank">Digital Ocean sale</a> it was looking rather dicey. I feared it would be another <a href="https://web.archive.org/web/20130915030309/http://www.netmagazine.com/" rel="noopener noreferrer" target="_blank">.net magazine</a> disaster. Remember when that just got eradicated? They promised to <a href="https://www.creativebloq.com/net/creative-bloq-welcomes-readers-net-magazine-9134344" rel="noopener noreferrer" target="_blank">migrate content</a> but now links just redirect to a generic landing page.</p>
<hr>
<p>
Thanks for reading! Follow me on <a href="https://dbushell.com/mastodon/">Mastodon</a> and <a href="https://dbushell.com/bluesky/">Bluesky</a>.
Subscribe to my <a href="https://dbushell.com/rss.xml">Blog</a> and <a href="https://dbushell.com/notes/rss.xml">Notes</a> or <a href="https://dbushell.com/merge/rss.xml">Combined</a> feeds.
</p>
]]></content:encoded>
</item>
<item>
  <description>I code websites for WordPress (PHP), static HTML, or my own scuffed build scripts. I have a particular project for which I decided to try one of those fancy static site generators. I asked the socials “11ty or Astro?” Both are popular but Astro had the edge. I am persevering with Astro despite spending almost an hour trying to get my code editor to recognise HTML (it’s a modern app). I was a little perturbed by Astro’s “Use minimal (empty) template” option writing a damned CLAUDE.md — come on! That’s absolute rage bait. Now that I’m settled, Astro does look well designed and documented. The website I’m building is small enough should I ever need to jump ship. If Astro makes me snap I’ll take 11ty for a spin. If that fails I’ll go back to writing HTML as god intended.</description>
  <link>https://dbushell.com/notes/2026-07-08T10:57Z/</link>
  <guid isPermaLink="true">https://dbushell.com/notes/2026-07-08T10:57Z/</guid>
  <pubDate>Wed, 08 Jul 2026 10:57:00 GMT</pubDate>
  <content:encoded><![CDATA[<p>I code websites for WordPress (PHP), static HTML, or my own <a href="https://dbushell.com/2025/05/11/the-static-site-churns/">scuffed build scripts</a>. I have a particular project for which I decided to try one of those fancy static site generators. I asked the socials “<a href="https://www.11ty.dev/" rel="noopener noreferrer" target="_blank">11ty</a> or <a href="https://astro.build/" rel="noopener noreferrer" target="_blank">Astro</a>?” Both are popular but Astro had the edge.</p><p>I am persevering with Astro despite spending almost an hour trying to get my code editor to recognise HTML (<a href="https://dbushell.com/2026/07/02/the-modern-app/">it’s a modern app</a>).</p><figure class="Image"><img src="https://dbushell.com/images/blog/2026/zed-error.avif" alt="Zed editor error confusing HTML elements with JSX. The error says: `JSX element implicitly has type &#39;any&#39; because no interface &#39;JSX.IntrinsicElements&#39; exists. (ts 7026)`" width="465" height="135" decoding="async" fetchpriority="low" loading="lazy" id="--img-8d95ce23"/></figure><p>I was a little perturbed by Astro’s <em>“Use minimal (empty) template”</em> option writing a damned <code>CLAUDE.md</code> — come on! That’s absolute rage bait.</p><p>Now that I’m settled, Astro does look well designed and documented. The website I’m building is small enough should I ever need to jump ship. If Astro makes me snap I’ll take 11ty for a spin. If that fails I’ll go back to writing HTML as god intended.</p>
<hr>
<p>
Thanks for reading! Follow me on <a href="https://dbushell.com/mastodon/">Mastodon</a> and <a href="https://dbushell.com/bluesky/">Bluesky</a>.
Subscribe to my <a href="https://dbushell.com/rss.xml">Blog</a> and <a href="https://dbushell.com/notes/rss.xml">Notes</a> or <a href="https://dbushell.com/merge/rss.xml">Combined</a> feeds.
</p>
]]></content:encoded>
</item>
<item>
  <description>Browser Hacks were a necessary evil in the Internet Explorer days. I thought they were a relic of the past but recently Safari has tempted a resurgence. Eric Meyer’s post on split-cell table headers uses @supports to detect Safari. I gave a drive-by suggestion to Sophie Koonin who adapted this for: “Time-based background colour transitions with Temporal and CSS color-mix” — that’s a really cool theme! I wish my website was themeable… I would only use such a technique on sites I actively maintain. You never know what future browser versions might do to break it!</description>
  <link>https://dbushell.com/notes/2026-07-06T07:30Z/</link>
  <guid isPermaLink="true">https://dbushell.com/notes/2026-07-06T07:30Z/</guid>
  <pubDate>Mon, 06 Jul 2026 07:30:00 GMT</pubDate>
  <content:encoded><![CDATA[<p><a href="http://browserhacks.com/" rel="noopener noreferrer" target="_blank">Browser Hacks</a> were a necessary evil in the Internet Explorer days. I thought they were a relic of the past but recently Safari has tempted a resurgence.</p><p>Eric Meyer’s post on <a href="https://meyerweb.com/eric/thoughts/2026/05/28/accessible-i-think-split-cell-table-headers/#:~:text=this%20is%20gross%20and%20I%20hate%20it%20but%20it%20works%20to%20fix%20%0A%C2%A0%20%20Safari%E2%80%99s%20layout%20of%20the%20table%E2%80%99s%20top%20headers" rel="noopener noreferrer" target="_blank">split-cell table headers</a> uses <code>@supports</code> to detect Safari. I gave a drive-by suggestion to Sophie Koonin who adapted this for: <a href="https://localghost.dev/blog/time-based-background-colour-transitions-with-temporal-and-css-color-mix/" rel="noopener noreferrer" target="_blank">“Time-based background colour transitions with Temporal and CSS color-mix”</a> — that’s a really cool theme! I wish my website was themeable…</p><p>I would only use such a technique on sites I actively maintain. You never know what future browser versions might do to break it!</p>
<hr>
<p>
Thanks for reading! Follow me on <a href="https://dbushell.com/mastodon/">Mastodon</a> and <a href="https://dbushell.com/bluesky/">Bluesky</a>.
Subscribe to my <a href="https://dbushell.com/rss.xml">Blog</a> and <a href="https://dbushell.com/notes/rss.xml">Notes</a> or <a href="https://dbushell.com/merge/rss.xml">Combined</a> feeds.
</p>
]]></content:encoded>
</item>
<item>
  <description>“Generative AI killed that career. Towards the end, I was asked to replace my thoughtful activity with ill-gotten slop. My prior activity was supported by my unique relationship with the tools and practices learned and refined over a long career of identifying patterns and differences. That experience, though shareable, was never fungible. And the sea, Dent - Chris Dent”</description>
  <link>https://dbushell.com/notes/2026-07-06T07:21Z/</link>
  <guid isPermaLink="true">https://dbushell.com/notes/2026-07-06T07:21Z/</guid>
  <pubDate>Mon, 06 Jul 2026 07:21:00 GMT</pubDate>
  <content:encoded><![CDATA[<blockquote><p>Generative AI killed that career. Towards the end, I was asked to replace my thoughtful activity with ill-gotten slop. My prior activity was supported by my unique relationship with the tools and practices learned and refined over a long career of identifying patterns and differences. That experience, though shareable, was never fungible.</p><p><cite><a href="https://anticdent.org/and-the-sea-dent.html" rel="noopener noreferrer" target="_blank">And the sea, Dent</a> - Chris Dent</cite></p></blockquote>
<hr>
<p>
Thanks for reading! Follow me on <a href="https://dbushell.com/mastodon/">Mastodon</a> and <a href="https://dbushell.com/bluesky/">Bluesky</a>.
Subscribe to my <a href="https://dbushell.com/rss.xml">Blog</a> and <a href="https://dbushell.com/notes/rss.xml">Notes</a> or <a href="https://dbushell.com/merge/rss.xml">Combined</a> feeds.
</p>
]]></content:encoded>
</item>
<item>
  <description>Edit: sorry RSS readers! I future-posted this with the wrong date. Now you’re seeing it again because I use the timestamp in the URL and the URL as the GUID… Just skip to my next note. Reading Salma’s post “Goodbye, forever, probably.” hits hard. Especially the part about AI killing developer education. I wish Salma all the best in her future. I don’t like to swear so choose your own word: #$@! the AI boosters in this industry. Those selfish despicable #$@!s are destroying the web from the inside. Personally I’m focused on my own challenge and opportunity. I’ve got no other skills to be successful offline. If I’m eventually driven away though, expect an explosive uncensored blog post! I’m half inclined to start naming and shaming these #$@! more directly. I need a cup of tea to cool down.</description>
  <link>https://dbushell.com/notes/2026-07-03T10:18Z/</link>
  <guid isPermaLink="true">https://dbushell.com/notes/2026-07-03T10:18Z/</guid>
  <pubDate>Fri, 03 Jul 2026 10:18:00 GMT</pubDate>
  <content:encoded><![CDATA[<p><strong>Edit:</strong> sorry RSS readers! I future-posted this with the wrong date. Now you’re seeing it again because I use the timestamp in the URL and the URL as the GUID…</p><p><a href="https://dbushell.com/notes/2026-07-06T10:00Z/">Just skip to my next note.</a></p><hr/><p>Reading Salma’s post <a href="https://whitep4nth3r.com/blog/goodbye-forever-probably/" rel="noopener noreferrer" target="_blank">“Goodbye, forever, probably.”</a> hits hard. Especially the part about <a href="https://whitep4nth3r.com/blog/goodbye-forever-probably/#ai-is-killing-developer-education" rel="noopener noreferrer" target="_blank">AI killing developer education</a>. I wish Salma all the best in her future.</p><p>I don’t like to swear so choose your own word: <b class="cursive" role="img" aria-label="censored word">#$@!</b> the <glossary-term id="--term-ai"><a href="https://dbushell.com/ai/">AI</a></glossary-term> boosters in this industry. Those selfish despicable <b class="cursive" role="img" aria-label="censored word">#$@!s</b> are destroying the web from the inside.</p><p>Personally I’m focused on my own <a href="https://dbushell.com/2026/06/01/challenge-and-opportunity/">challenge and opportunity</a>. I’ve got no other skills to be successful offline. If I’m eventually driven away though, expect an explosive uncensored blog post! I’m half inclined to start naming and shaming these <b class="cursive" role="img" aria-label="censored word">#$@!</b> more directly.</p><p>I need a cup of tea to cool down.</p>
<hr>
<p>
Thanks for reading! Follow me on <a href="https://dbushell.com/mastodon/">Mastodon</a> and <a href="https://dbushell.com/bluesky/">Bluesky</a>.
Subscribe to my <a href="https://dbushell.com/rss.xml">Blog</a> and <a href="https://dbushell.com/notes/rss.xml">Notes</a> or <a href="https://dbushell.com/merge/rss.xml">Combined</a> feeds.
</p>
]]></content:encoded>
</item>
</channel>
</rss>
