Shellsharks Blogroll - BlogFlock https://blogflock.com/list/xJ8yq 2026-11-01T17:10:00.000Z BlogFlock shellsharks How I Customised Pure Blog for This Site - Kev Quirk https://kevquirk.com/how-i-customised-pure-blog-for-this-site 2026-11-01T17:10:00.000Z Kev Quirk <p>A few people have reached out to me to ask how I did X, or Y with my site, so I thought I'd talk about the customisations I've made to this site, and how they work.</p> <p>Firstly, this site runs on <a href="https://pureblog.org" rel="noopener noreferrer">Pure Blog</a>, a CMS that I've been building over the last year or so. As it's matured, I've added features that allow more advanced users to do clever things without having to fiddle with the core platform. This means that people generally shouldn't have to fork the project and should continue to get all the new goodness as I release it.</p> <p>This site is no different. I haven't done anything clever that Pure Blog can't do out of the box - everything is <a href="https://docs.pureblog.org" rel="noopener noreferrer">documented</a> so by reading the docs and using a bit of creativity, you can do quite a lot with this plucky little CMS. I'll link out to the appropriate docs as we go through this post.</p> <p>Ok, so what customisations have I made? This is going to be a fairly long post, so I'll list them here with links to each header so you can jump around and read the parts that interest you.</p> <ol> <li><a href="https://kevquirk.com/how-i-customised-pure-blog-for-this-site#post-layouts">Post layouts</a></li> <li><a href="https://kevquirk.com/how-i-customised-pure-blog-for-this-site#hooks-automations">Hooks and automations</a></li> <li><a href="https://kevquirk.com/how-i-customised-pure-blog-for-this-site#templates-partials">Templates and partials</a></li> <li><a href="https://kevquirk.com/how-i-customised-pure-blog-for-this-site#rss">RSS feed enhancements</a></li> <li><a href="https://kevquirk.com/how-i-customised-pure-blog-for-this-site#newsletter">Newsletter subscriptions</a></li> <li><a href="https://kevquirk.com/how-i-customised-pure-blog-for-this-site#functions-helpers">Functions and helpers</a></li> <li><a href="https://kevquirk.com/how-i-customised-pure-blog-for-this-site#design">Design and typography</a></li> <li><a href="https://kevquirk.com/how-i-customised-pure-blog-for-this-site#data-pages">Data driven pages</a></li> <li><a href="https://kevquirk.com/how-i-customised-pure-blog-for-this-site#htacces">.htaccess rules</a></li> <li><a href="https://kevquirk.com/how-i-customised-pure-blog-for-this-site#final-thoughts">Final thoughts</a></li> </ol> <p class="notice">If you want to see specific code examples for any of these customisations, feel free to <a href="https://kevquirk.com/contact">contact me</a>.</p> <h2>Post layouts <a id="post-layouts"></a></h2> <p>I have three custom post types on this site - <a href="https://kevquirk.com/?type=notes">notes</a>, <a href="https://kevquirk.com/?type=link">links</a>, and <a href="https://kevquirk.com/?type=book">books</a>. Notes are used as short-form social media type posts, links are links to other blog posts that I've enjoyed, and books are short reviews of the books I read.</p> <p>Each has their own layout and in the case of notes, they have a different view on the homepage too. To do this I've created a custom <code>post-list.php</code> partial, but we will come to that later.</p> <p>I <em>could</em> just use the default post type for all these posts, but I prefer to have a customised UI at the back-end for each. Here's what books and links look like in my editor:</p> <div class="gallery"> <figure class="gallery-item"> <a href="https://kevquirk.com/content/images/how-i-customised-pure-blog-for-this-site/book-editor.webp" class="gallery-link" data-pb-lightbox data-caption="Book editor layout"> <img src="https://kevquirk.com/content/images/how-i-customised-pure-blog-for-this-site/book-editor.webp" alt="book-editor" loading="lazy"> </a> <figcaption class="gallery-caption">Book editor layout</figcaption> </figure> <figure class="gallery-item"> <a href="https://kevquirk.com/content/images/how-i-customised-pure-blog-for-this-site/link-editor.webp" class="gallery-link" data-pb-lightbox data-caption="Link editor layout"> <img src="https://kevquirk.com/content/images/how-i-customised-pure-blog-for-this-site/link-editor.webp" alt="link-editor" loading="lazy"> </a> <figcaption class="gallery-caption">Link editor layout</figcaption> </figure> </div> <p>Notes are a little different as I use a custom page for them that only I can access. This looks more like a social media post window than a blog post window:</p> <p><img loading="lazy" src="https://kevquirk.com/content/images/how-i-customised-pure-blog-for-this-site/publish-note.webp" alt="publish-note" /></p> <p><a class="button" target="_blank" href="https://docs.pureblog.org/custom-post-layouts">Read the custom post layout docs ➡</a></p> <h2>Hooks and automations <a id="hooks-automations"></a></h2> <p>I like to think of hooks as little tripwires that are set to go off when certain conditions are met. For example, something happens when an image is uploaded, or a new post is published. They're <em>extremely</em> useful and I have a number of them on this site:</p> <ul> <li><strong>Email Obfuscation (<code>on_filter_content</code>)</strong>: Scans rendered content and encodes the site email address into hexadecimal HTML entities to protect against scrapers. This has been pretty effective at reducing spam - I wrote more about this feature in <a href="https://kevquirk.com/obfuscating-my-contact-email">this post</a>.</li> <li><strong>Post Sanitisation & Metadata Preservation (<code>on_filter_post</code>)</strong>:<ul> <li>Automatically generates date/time titles for new notes.</li> <li>Normalises layout values by stripping quotes (turning layout: "notes" into layout: notes), ensuring posts written in external editors like Obsidian don't break layout checks.</li> <li>Preserves <code>mastodon_url</code> in post frontmatter when saving via the admin interface so the Mastodon card at the bottom of every post continues to work.</li> </ul> </li> <li><strong>Image Optimisation (<code>on_image_uploaded</code>)</strong>: Automatically resizes images exceeding 2560px width whilst maintaining aspect ratio, also converts them to lossless WebP, and cleans up original unoptimised files.</li> <li><strong>Mastodon Cross-Posting & Syndication (<code>on_post_published</code>)</strong>: Automatically crossposts all published post types to <a href="https://fosstodon.org" rel="noopener noreferrer">Fosstodon</a> via the Mastodon API.<ul> <li>Notes posts are cross-posted with full body text and media attachments (uploaded to Mastodon's media endpoint).</li> <li>Articles, links, and books are crossposted with their description and permalink URL.</li> <li>Captures the returned Mastodon status URL and automatically persists <code>mastodon_url</code> into the post's frontmatter which is then used for the Mastodon card at the bottom of every post.</li> </ul> </li> <li><strong>Custom Font for Open Graph Images (<code>on_og_image_font</code>)</strong>: Makes dynamic Open Graph image generation to use my custom font.</li> </ul> <p><a class="button" target="_blank" href="https://docs.pureblog.org/using-hooks/">Read the hooks docs ➡</a></p> <h2>Templates and partials <a id="templates-partials"></a></h2> <p>Beyond custom post types, Pure Blog lets you drop PHP files into <code>content/includes/</code>. These can either override default pieces of the site (like navigation or post footers), or serve as entirely bespoke standalone pages, like my quick-publish notes screen, or the <a href="https://kevquirk.com/2026-10-29-1456">terminal 404 page</a>.</p> <p>Here's a full list of the templates and partials used on this site:</p> <ul> <li><strong><code>post-list.php</code> (partial)</strong>: This replaces the default <code>post-list.php</code> and adds post-type filter buttons, preserving query parameters across pagination. It also displays notes in full, while other post types show only the title and excerpt.</li> <li><strong><code>post-meta.php</code> (partial)</strong>: A customised version of the default <code>post-meta.php</code> file from Pure Blog. On top of the default tag list and post pagination, this version adds the obfuscated "Reply by email" button, a client-side Mastodon conversation card displaying live stats (favourites, boosts, replies) as well as a link to the post on Fosstodon, <a href="https://purecomments.org" rel="noopener noreferrer">Pure Comments</a> integration, and a subscription call-to-action.</li> <li><strong><code>discover.php</code> (template)</strong>: Dedicated <a href="https://kevquirk.com/discover">discovery hub</a> combining Pure Blog's full-text search with an alphabetical, weighted tag cloud showing post frequencies.</li> <li><strong><code>sitemap.php</code> (template)</strong>: An <a href="https://kevquirk.com/sitemap">interactive metro map</a> that lists all of the pages on this site. There's also an option to see the pages as a list.</li> <li><strong><code>social.php</code> (template)</strong>: My quick-publish admin screen for composing and publishing short-form note posts.</li> <li><strong><code>100.php</code> (template)</strong>: Dashboard for <a href="https://kevquirk.com/100">tracking the 100 Days to Offload challenge streaks</a> in batches of 100 posts.</li> <li><strong><code>masthead.php</code> (partial)</strong>: This replaces the default <code>masthead</code> template in Pure Blog. It adds a custom layout, as well as 404 handoff (<code>$is404</code>) to render the custom <code>404.php</code> template without modifying core Pure Blog files.</li> <li><strong><code>404.php</code> (template)</strong>: A fun <a href="https://kevquirk.com/bfreberb">interactive terminal-styled 404 page</a> with custom commands that include goats!</li> <li><strong><code>random-post.php</code> (template)</strong>: Endpoint that resolves and redirects visitors to a <a href="https://kevquirk.com/random-post">randomly chosen published post</a>.</li> </ul> <p><a class="button" target="_blank" href="https://docs.pureblog.org/layout-partials/">Read the layout partials docs ➡</a></p> <h2>RSS feed enhancements <a id="rss"></a></h2> <p>I've replaced the default feed with one that allows for filtering on post type. So one feed file, 5 feeds - one for each post type, and a fifth for everything.</p> <p>My custom feed template allows you to visit <code>/feed/</code> for everything, or <code>/feed/[post-type]</code> (e.g. <code>/feed/books</code>) for the posts of that particular type. This custom feed file lives in <code>/content</code> and I then used <code>.htaccess</code> redirects to redirect the default <code>/feed</code> URL to <code>/content/feed.php</code>.</p> <p>All the feed URLs are <a href="https://kevquirk.com/subscribe">available here</a>.</p> <h2>Newsletter subscriptions <a id="newsletter"></a></h2> <p>I use a self-hosted instance of <a href="https://sendy.co" rel="noopener noreferrer">Sendy</a> to send out email "newsletters" whenever I publish a new post. These emails always contain the entire post, so people can read my content from their inbox if they wish.</p> <p>Because I write notes much more frequently than long-form posts, I let readers choose what they receive: everything, long-form content only, or notes only.</p> <p>To make that work without sending people through clunky third-party forms, I wrote a custom server-side handler (<code>content/subscribe-handler.php</code>). When someone submits the form on the <a href="https://kevquirk.com/subscribe#email">subscribe page</a>, the handler:</p> <ol> <li>Checks a simple verification question ("What is Kev's surname?") to keep bots at bay.</li> <li>Silently discards submissions that trigger a honeypot field, or exceed IP rate limits.</li> <li>Subscribes the user to the correct Sendy list(s) via Sendy's API in a single click.</li> </ol> <p>This not only helps segregate the emails people receive, but it has also had a dramatic effect on spammy sign ups. Which, if you've ever run a newsletter, you will know is a common problem.</p> <h2>Functions and helpers <a id="functions-helpers"></a></h2> <p>Pure Blog allows you to add your own PHP helper functions for all kinds of things. On my site, I only have 1 function defined:</p> <p><code>render_star_rating(string $rating)</code> which transforms fractional score strings in my book posts (e.g. <code>"4/5"</code>) into accessible star glyph strings (e.g. <code>"★★★★☆"</code>). I just think that <code>"★★★★☆"</code> looks far nicer in a post than <code>"4/5"</code>.</p> <p>But how is this star rating accessible? Well, it's rendered on the front-end like this so screen readers can parse it:</p> <pre><code class="language-html"><span class="star-rating"> <span class="star-rating" aria-label="4/5 ★★★★☆">★★★☆☆</span> </span></code></pre> <p><a class="button" target="_blank" href="https://docs.pureblog.org/custom-functions/">Read the custom functions docs ➡</a></p> <h2>Design and typography <a id="design"></a></h2> <p>I don't do anything magical with the design on this site. I use the <a href="https://rubjo.github.io/victor-mono/" rel="noopener noreferrer">Victor Mono font</a>, and around 850 lines of CSS, which I've added to the custom CSS field within settings. Combined with the custom <code>masthead</code>, <code>post-list</code> and <code>post-meta</code> files above, it gives me everything I need to customise the site from the <a href="https://demo.pureblog.org" rel="noopener noreferrer">default look</a> to what you see now.</p> <p>I have a custom theme palette that I've defined too, also in settings. The colours used can be found at the bottom of my <a href="https://kevquirk.com/colophon">colophon</a>.</p> <p><a class="button" target="_blank" href="https://docs.pureblog.org/customising-your-pure-blog/">Read the design customisation docs ➡</a></p> <h2>Data driven pages <a id="data-pages"></a></h2> <p>One of the most powerful things about using a static site generator is the ability to use data files. With data files you can have a structure data file, like YAML, that contains repeated data, which can then be looped through on the front-end to render content.</p> <p>I <em>really</em> wanted Pure Blog to be able to support data files, so I added support very early on. Personally, I use two data files on this site:</p> <ul> <li><code>data/blogroll.yml</code> which is then used to render <a href="https://kevquirk.com/blogroll">my blogroll page</a>.</li> <li><code>data/projects.yml</code> which is used for <a href="https://kevquirk.com/projects">my projects</a>.</li> </ul> <p>Data files are fantastic as they reduce the amount of repetitive code you have to write. Instead of typing <code>div</code>, after <code>div</code>, after <code>div</code> manually, you write your <code>div</code> once, then loop through it with a data file and Pure Blog does the rest.</p> <p><a class="button" target="_blank" href="https://docs.pureblog.org/working-with-data-files/">Read the data files docs ➡</a></p> <h2><code>.htaccess</code> rules <a id="htaccess"></a></h2> <p>The final thing I customise is my <code>.htaccess</code> file. There's a number of things I do to the standard Pure Blog <code>.htaccess</code> file to either redirect URLs, or protect various locations:</p> <ul> <li><strong>Admin Access Restriction</strong>: I restricts <code>/admin/</code> access to specific allowed IP addresses.</li> <li><strong>Legacy URL & Feed Redirects</strong>:<ul> <li>301 redirects mapping historical <code>/blog/*</code> and <code>/categories/*</code> URLs to clean root and <code>/tag/*</code> routes that Pure Blog uses.</li> <li>Redirects for legacy feed and social endpoints (<code>/feed.xml</code>, <code>/social-feed</code>, <code>/social-feed.xml</code>, <code>/rss</code>, <code>/blog.rss</code>, etc.) to <code>/feed</code> or <code>/feed/notes</code> to make sure the feed URLs from <a href="https://kevquirk.com/design-history">various versions of this site</a> don't break.</li> </ul> </li> <li><strong>Route Rewrites</strong>: clean URL routing for all my RSS feeds so they have simple to share URLs.</li> </ul> <h2>Final thoughts <a id="final-thoughts"></a></h2> <p>This ended up being an even longer post than I anticipated, but hopefully it shows just how much you can bend Pure Blog to your will, <strong>by design</strong>. </p> <p>None of this requires hacks to the core code, or maintaining your own fork. Everything you see here is achieved using Pure Blog as designed: settings, custom CSS, hooks, custom layouts, and partials. Because all these files live inside <code>/content</code>, <code>/config</code>, and <code>/data</code>, I can upgrade Pure Blog the moment a new release drops without worrying about overwriting my site's bespoke features.</p> <p>That was always my goal with Pure Blog - a super simple, distraction-free blogging platform out of the box, with enough flexibility under the hood for tinkerers (like me!) to build whatever they want.</p> <p>If you're running Pure Blog and have built your own customisations, or if this post inspired you to try something new with your setup, hit the reply button below, or find me on Mastodon. I'd love to see what you've done with it.</p> <div class="email-hidden"> <hr /> <p>Thanks for reading this post via RSS. RSS is ace, and so are you. ❤️</p> <p>You can <a href="mailto:19gy@qrk.one?subject=How%20I%20Customised%20Pure%20Blog%20for%20This%20Site">reply to this post by email</a>, or <a href="https://kevquirk.com/how-i-customised-pure-blog-for-this-site#comments">leave a comment</a>.</p> </div> Note published on November 1, 2026 at 3:17 PM UTC - Molly White's activity feed 6ae75814b6faaacba7235015 2026-11-01T15:17:40.000Z Molly White <article><div class="entry h-entry hentry"><header></header><div class="content e-content"><div class="quote"><blockquote>If you are reading this, you are someone who reads the news, and if you are someone reading the news, that hand is throttling your heart right now. On some level, you know this, but you are likely so used to it that you do not really know how hard it’s squeezing, and how much it saps your strength.</blockquote></div><div class="quote"><blockquote>There is a difference between burying your head in the sand and periodically reminding ourselves that the world can be beautiful and good. We have somehow become convinced that turning away even for a second is a betrayal of the most vulnerable amongst us, but constant activation paralyzes us with dread and leaves us too exhausted to take action. Hyperawareness is not a virtue, it’s a symptom of mental illness—ask your complex post-traumatic stress disorder friends about it sometime. We are not betraying the cause by turning off our phones for a few hours; we are not lazy pieces of shit who deserve to be poor when we opt for sleep over pseudoproductivity.</blockquote></div><div class="related-post"><div class="article h-cite hcite"><div class="title"><a class="u-url u-repost-of u-in-reply-to" href="https://slate.com/news-and-politics/2026/11/smartphones-politics-hegseth-detox.html" rel="bookmark">“<span class="p-name">After a Tragedy, I Spent a Month Away From Our Online Dystopia. It Changed Me.</span>”</a></div><div class="byline"><span class="p-author h-card">Laura Jedeed</span> in <i class="p-publication">Slate</i>. <span class="read-date"></span></div></div></div><img src="https://www.mollywhite.net/assets/images/placeholder_social.png" alt="Illustration of Molly White sitting and typing on a laptop, on a purple background with 'Molly White' in white serif." style="display: none;"/></div><footer class="footer"><div class="flex-row post-meta"><div class="timestamp-block"><div class="timestamp">Posted: <a class="u-url" href="https://www.mollywhite.net/micro/entry/202611011015"><time class="dt-published" datetime="2026-11-01T15:17:40+00:00" title="November 1, 2026 at 3:17 PM UTC">November 1, 2026 at 3:17 PM UTC</time>. </a></div></div><div class="social-links"> <span> Also posted to: </span><a class="social-link u-syndication bluesky" href="https://bsky.app/profile/molly.wiki/post/3mzb3y6p7hk2b" title="Bluesky" rel="syndication">Bluesky</a></div></div><div class="bottomRow"><div class="tags">Tagged: <a class="tag p-category" href="https://www.mollywhite.net/micro/tag/extremism" title="See all micro posts tagged "extremism"" rel="category tag">extremism</a>, <a class="tag p-category" href="https://www.mollywhite.net/micro/tag/self_care" title="See all micro posts tagged "self-care"" rel="category tag">self-care</a>, <a class="tag p-category" href="https://www.mollywhite.net/micro/tag/us_politics" title="See all micro posts tagged "US politics"" rel="category tag">US politics</a>. </div></div></footer></div></article> Note published on November 1, 2026 at 2:48 PM UTC - Molly White's activity feed 6ae7514cb6faaacba7234fc4 2026-11-01T14:48:44.000Z Molly White <article><div class="entry h-entry hentry"><header></header><div class="content e-content"><p>The healthcare marketplace would like me, a self-employed person with no recorded disabilities who has never served in the military, to prove that I DON’T have insurance through an employer, the VA, or Medicare.</p><p>Apparently I am meant to do this with things like a letter from my employer saying they don’t over me coverage?? “Dear me, I regret to inform us...”</p><img src="https://www.mollywhite.net/assets/images/placeholder_social.png" alt="Illustration of Molly White sitting and typing on a laptop, on a purple background with 'Molly White' in white serif." style="display: none;"/></div><footer class="footer"><div class="flex-row post-meta"><div class="timestamp-block"><div class="timestamp">Posted: <a class="u-url" href="https://www.mollywhite.net/micro/entry/202611010944"><time class="dt-published" datetime="2026-11-01T14:48:44+00:00" title="November 1, 2026 at 2:48 PM UTC">November 1, 2026 at 2:48 PM UTC</time>. </a></div></div><div class="social-links"> <span> Also posted to: </span><a class="social-link u-syndication mastodon" href="https://hachyderm.io/@molly0xfff/117541734004198498" title="Mastodon" rel="syndication">Mastodon, </a><a class="social-link u-syndication bluesky" href="https://bsky.app/profile/molly.wiki/post/3mzb2k6uvf622" title="Bluesky" rel="syndication">Bluesky</a></div></div><div class="bottomRow"><div class="tags">Tagged: <a class="tag p-category" href="https://www.mollywhite.net/micro/tag/healthcare" title="See all micro posts tagged "healthcare"" rel="category tag">healthcare</a>. </div></div></footer></div></article> 10 Years on Mastodon - Terence Eden’s Blog https://shkspr.mobi/blog/?p=65267 2026-11-01T12:34:18.000Z Terence Eden’s Blog <p>As of today, I've been on the Mastodon social network for 10 years. I think that deserves a little reflection and celebration.</p> <blockquote class="mastodon-embed" data-embed-url="https://mastodon.social/@Edent/55342/embed" style="background: #FCF8FF; border-radius: 8px; border: 1px solid #C9C4DA; margin: 0; max-width: 540px; min-width: 270px; overflow: hidden; padding: 0;"> <a href="https://mastodon.social/@Edent/55342" target="_blank" style="align-items: center; color: #1C1A25; display: flex; flex-direction: column; font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Oxygen, Ubuntu, Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', Roboto, sans-serif; font-size: 14px; justify-content: center; letter-spacing: 0.25px; line-height: 20px; padding: 24px; text-decoration: none;"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="32" height="32" viewBox="0 0 79 75"><path d="M63 45.3v-20c0-4.1-1-7.3-3.2-9.7-2.1-2.4-5-3.7-8.5-3.7-4.1 0-7.2 1.6-9.3 4.7l-2 3.3-2-3.3c-2-3.1-5.1-4.7-9.2-4.7-3.5 0-6.4 1.3-8.6 3.7-2.1 2.4-3.1 5.6-3.1 9.7v20h8V25.9c0-4.1 1.7-6.2 5.2-6.2 3.8 0 5.8 2.5 5.8 7.4V37.7H44V27.1c0-4.9 1.9-7.4 5.8-7.4 3.5 0 5.2 2.1 5.2 6.2V45.3h8ZM74.7 16.6c.6 6 .1 15.7.1 17.3 0 .5-.1 4.8-.1 5.3-.7 11.5-8 16-15.6 17.5-.1 0-.2 0-.3 0-4.9 1-10 1.2-14.9 1.4-1.2 0-2.4 0-3.6 0-4.8 0-9.7-.6-14.4-1.7-.1 0-.1 0-.1 0s-.1 0-.1 0 0 .1 0 .1 0 0 0 0c.1 1.6.4 3.1 1 4.5.6 1.7 2.9 5.7 11.4 5.7 5 0 9.9-.6 14.8-1.7 0 0 0 0 0 0 .1 0 .1 0 .1 0 0 .1 0 .1 0 .1.1 0 .1 0 .1.1v5.6s0 .1-.1.1c0 0 0 0 0 .1-1.6 1.1-3.7 1.7-5.6 2.3-.8.3-1.6.5-2.4.7-7.5 1.7-15.4 1.3-22.7-1.2-6.8-2.4-13.8-8.2-15.5-15.2-.9-3.8-1.6-7.6-1.9-11.5-.6-5.8-.6-11.7-.8-17.5C3.9 24.5 4 20 4.9 16 6.7 7.9 14.1 2.2 22.3 1c1.4-.2 4.1-1 16.5-1h.1C51.4 0 56.7.8 58.1 1c8.4 1.2 15.5 7.5 16.6 15.6Z" fill="currentColor"></path></svg> <div style="color: #787588; margin-top: 16px;">Post by @Edent@mastodon.social</div> <div style="font-weight: 500;">View on Mastodon</div> </a> </blockquote> <script data-allowed-prefixes="https://mastodon.social/" async="" src="https://mastodon.social/embed.js"></script> <p>Social networks often launch in a blaze of glory but limp out of existence within a year or so<sup id="fnref:arse"><a href="https://shkspr.mobi/blog/2026/11/10-years-on-mastodon/#fn:arse" class="footnote-ref" title="I'm pulling these numbers out of my arse. But, come on, that feels about right, doesn't it?" role="doc-noteref">0</a></sup>. How many services have you signed up to, only to gradually drift away from? If you're anything like me<sup id="fnref:pu"><a href="https://shkspr.mobi/blog/2026/11/10-years-on-mastodon/#fn:pu" class="footnote-ref" title="Poor you!" role="doc-noteref">1</a></sup>, your password manager is a graveyard of unloved services and your MFA app is filled with icons of websites you barely remember.</p> <p>It could easily have been that way with Mastodon. I gradually drifted away from Slashdot. Despite a promising start, <a href="https://shkspr.mobi/blog/tag/app-net/">AppDotNet</a> died an untimely death. Slack works as a meta-social-network - but there are half-a-dozen communities which I know I'll never check in on. Once in a blue moon I'll think about uploading a photo to Flickr. I tried <a href="https://shkspr.mobi/blog/2012/09/i-didnt-quit-twitter-twitter-quit-me/">quitting Twitter</a> several times - only to walk away cold turkey to prevent my soul being polluted by its filth.</p> <p>I lurk on LinkedIn mainly to gawp at the brainworms. Threads just pushed too much crap into my feed. I <em>think</em> I have a tumblr and a dozen other social media accounts which fell into disrepair.</p> <p>So what made Mastodon so sticky for me?</p> <h2 id="silence-brand"><a href="https://shkspr.mobi/blog/2026/11/10-years-on-mastodon/#silence-brand">Silence Brand</a></h2> <p>Brands on social networks is an anti-pattern. You cannot be friends with a company.</p> <p>In the early days of Twitter, brands were <em>desperate</em> to join the global conversation. They saw people complaining about them and wanted to intercede. Sadly that just promoted maladaptive behaviour as people (especially those with large followings) found they could bully brands into submission.</p> <p>So brands retreated into the only thing they know how to do; advertise.</p> <p>Mastodon has been remarkably resistant to corporations coming along to plant their flags. The few that are on there are either genuinely interested in the technology or are broadcast only.</p> <h2 id="algorithms-and-filters"><a href="https://shkspr.mobi/blog/2026/11/10-years-on-mastodon/#algorithms-and-filters">Algorithms and Filters</a></h2> <p>It's wrong to say that Mastodon doesn't have an algorithm. It displays posts in chronological order - that's an algorithm. It has decent enough spam filtering - again, an algorithm. But it never tries to promote far-right hate posts to me.</p> <p>Even better, it has proper support for a user's personalised filters. I can easily block discussion of politics<sup id="fnref:names"><a href="https://shkspr.mobi/blog/2026/11/10-years-on-mastodon/#fn:names" class="footnote-ref" title="I am grateful that so many politicians have reasonably unique names!" role="doc-noteref">2</a></sup> and sport. I can turn off reposts from individual accounts that I follow - you know the guy who reposts every puppy video he finds.</p> <p>That makes for a relaxing and stress-free experience.</p> <h2 id="fun-technology"><a href="https://shkspr.mobi/blog/2026/11/10-years-on-mastodon/#fun-technology">Fun Technology</a></h2> <p>I wasted years on the Twitter API. While I got some lovely swag from Twitter for faffing about with their tech, it was always clear that certain sections of Twitter's leadership hated that 3rd parties could use their APIs. Similarly, Facebook's API started as fun but quickly descended into a locked-down corporate hellscape.</p> <p>Mastodon's API is mostly a delight to use. There aren't weird and arbitrary restrictions. Even better, because of the inherent open nature of the Fediverse, I can write my own ActivityPub software to interact with it.</p> <p><a href="https://shkspr.mobi/blog/2026/08/activitybot-is-the-recipient-of-an-nlnet-grant/">I'm even getting paid to develop ActivityBot</a>!</p> <h2 id="nice-people"><a href="https://shkspr.mobi/blog/2026/11/10-years-on-mastodon/#nice-people">Nice People</a></h2> <p>Most of the people who join Mastodon<sup id="fnref:fedi"><a href="https://shkspr.mobi/blog/2026/11/10-years-on-mastodon/#fn:fedi" class="footnote-ref" title="Yes, I know it is the Fediverse and they're not all on one platform. Cut me some slack." role="doc-noteref">3</a></sup> feel rejected from more corporate social media. They've either made an active choice to try something different or they've been thrown off the mainstream apps. That's (mostly) good - and means that they're invested in making work something that's different.</p> <p>I'd be lying if I said I didn't miss some of the people from Twitter. I think most of them are on BlueSky now - so I'm on there as well. Think of it like quitting smoking by taking up vaping. Sure, not ideal, but better than the alternative.</p> <h2 id="what-it-is-missing"><a href="https://shkspr.mobi/blog/2026/11/10-years-on-mastodon/#what-it-is-missing">What it is missing</a></h2> <p>I can't pretend everything is brilliant. In no particular order, here are some of the papercuts which annoy me daily.</p> <h3 id="reply-controls"><a href="https://shkspr.mobi/blog/2026/11/10-years-on-mastodon/#reply-controls">Reply Controls</a></h3> <p>BlueSky allows me to set a limit on who can reply to my posts. It is <em>bliss</em>. Sometimes I don't want the world chatting back to me. Yes, there's the ability to restrict who can see my posts in the first place, or who can quote my posts, but it isn't the same.</p> <h3 id="super-block"><a href="https://shkspr.mobi/blog/2026/11/10-years-on-mastodon/#super-block">Super Block</a></h3> <p>Similarly, I want to be able to remove replies to me. If someone is being abusive or annoying, I don't want my friends to see that. If I block them, I want their replies to vanish from view in my threads.</p> <p>I can moderate replies to my blog posts - why can't I moderate replies to my microblog posts?</p> <h3 id="reply-guys"><a href="https://shkspr.mobi/blog/2026/11/10-years-on-mastodon/#reply-guys">Reply Guys</a></h3> <p>The two issues above are caused by the same strain of reply-guy. There's something about Mastodon which attracts <a href="https://german.millermanschool.com/">a certain class of person</a>. I get so many replies from people who either have never heard of this Earth concept called humour, or think that their inexpert Googling is helpful, or want to argue about something I haven't said.</p> <p>It can be infuriating and I understand why it drives people away.</p> <h3 id="geolocation"><a href="https://shkspr.mobi/blog/2026/11/10-years-on-mastodon/#geolocation">Geolocation</a></h3> <p>I just think <a href="https://shkspr.mobi/blog/2026/07/scattered-thoughts-on-social-geolocation/">social geolocation would be nifty</a>!</p> <h3 id="more-people"><a href="https://shkspr.mobi/blog/2026/11/10-years-on-mastodon/#more-people">More People</a></h3> <p>I'm in two minds about this. Services like <a href="https://brid.gy/">Brid.gy</a> allow me to follow my BSky friends on Masto, and vice-versa. Having more people on the Fediverse and away from corporate-owned social media would (hopefully) make it more viable in the long-term.</p> <p>But more people means more spammers, grifters, and <i lang="fr">agents provocateur</i>. There's a delicate balance to be found - not enough people and the network fails, too many people and it collapses.</p> <p>I don't know what the right number is.</p> <p>The nice thing about the Fediverse is that it literally cannot fail completely. Much like IRC survives despite "everyone" moving to Discord and WhatsApp, it chugs along in the background. ActivityPub servers will be around for the foreseeable future. So I'll be available on Mastodon (or its successor) until the bitter end.</p> <h2 id="heres-to-the-next-ten-years"><a href="https://shkspr.mobi/blog/2026/11/10-years-on-mastodon/#heres-to-the-next-ten-years">Here's to the next ten years!</a></h2> <p>I'm looking forward to seeing what happens to Mastodon (and the Fediverse as a whole) by 2036. I am sure it'll have some wobbles, I hope it will see a renaissance, I look forward to shitposting far into the future.</p> <p>You can follow me on Mastodon - <a href="https://mastodon.social/@edent">@edent@mastodon.social</a>.</p> <div id="footnotes" role="doc-endnotes"> <hr aria-label="Footnotes"> <ol start="0"> <li id="fn:arse"> <p>I'm pulling these numbers out of my arse. But, come on, that feels about right, doesn't it? <a href="https://shkspr.mobi/blog/2026/11/10-years-on-mastodon/#fnref:arse" class="footnote-backref" role="doc-backlink">↩︎</a></p> </li> <li id="fn:pu"> <p>Poor you! <a href="https://shkspr.mobi/blog/2026/11/10-years-on-mastodon/#fnref:pu" class="footnote-backref" role="doc-backlink">↩︎</a></p> </li> <li id="fn:names"> <p>I am grateful that so many politicians have reasonably unique names! <a href="https://shkspr.mobi/blog/2026/11/10-years-on-mastodon/#fnref:names" class="footnote-backref" role="doc-backlink">↩︎</a></p> </li> <li id="fn:fedi"> <p>Yes, I <em>know</em> it is the Fediverse and they're not all on one platform. Cut me some slack. <a href="https://shkspr.mobi/blog/2026/11/10-years-on-mastodon/#fnref:fedi" class="footnote-backref" role="doc-backlink">↩︎</a></p> </li> </ol> </div> <img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=65267&HTTP_REFERER=Atom" alt width="1" height="1" loading="eager"> in their season - James' Coffee Blog https://jamesg.blog/2026/11/01/in-their-season 2026-11-01T00:00:00.000Z James' Coffee Blog <p>The leaves are in their “flying season".<br/> Coating the skies in colour, brilliantly.</p> <p>The trees are in their “wintering season".<br/> Branches bearing and silvering, beautifully.</p> <p>The sunrises are in their “November season".<br/> Pink comes later in the day, unpredictably.</p> <p>Leaves, trees, sunrises and all, perpetually<br/> Delighting day, cyclically.</p> Weeknotes W3 - James' Coffee Blog https://jamesg.blog/2026/11/01/weeknotes-w3 2026-11-01T00:00:00.000Z James' Coffee Blog <p>Today I got to see one of my favourite places in the world – a park I really like – in its full autumn colours. The paths were lined with autumn trees and scattered with yellows and oranges and reds. I heard crisp sounds with almost every step on certain straights of the walk. <em>I forgot how beautiful the trees get here.</em> The colours get more beautiful by the day, even though the trees are more sparse.</p> <p>For the first time this autumn, I thought to myself that it will only be a few weeks before the oranges and reds will be mostly gone. I will have to make the most of the next few weeks and soak myself in the colours of the season for as long as I can.</p> <h2 id="the-highlights">The highlights</h2> <p>After last weekend’s storm had me inside for the weekend, I was especially excited to get out this weekend. I went for a long walk – one of my longest this year – and enjoyed the weather. I was surprised by how warm it was, though; I was expecting a chillier air. I went to places I haven’t visited in weeks, visited a new bookshop (where I bought a poetry zine with a layout that caught my eye), and generally appreciated all the time outside, breathing in the fresh air of day.</p> <p>Today – Sunday – I spent the whole day away from the computer. When I sat down this evening to check in with notifications and prepare to write this weeknote, I realised that the day passed by quickly and I seldom thought of my computer. So too was true of yesterday: I spent many hours walking, checking my phone occasionally. I love being outside.</p> <p>I spent some time in a coffee shop and started journaling. I am still not in the mood for reading on the weekends, but I was in the mood for writing. I let my stream of consciousness flood onto the pages, writing about all that came to mind while I looked around and watched the world go by. I haven’t written as much prose by hand in quite some time, even though the sum of my writing was less than a page in my writing journal. I wonder if I will write more on paper in the coming weeks. I did enjoy the experience.</p> <p>In terms of studying, I got back my final grades for last year. I am pleased with how I did. Admittedly I am a bit nervous for my first art history assignment this year, but I am sure I will get through it. This is the first time I have felt nervous about an assignment weeks before it is due, and before we have even been fully introduced to it. I have a lecture about the topic of the assignment tomorrow, on Monday, in which I expect to take many notes. I am already feeling more confident by the day.</p> <p>In the creative writing section of my studies. I submitted my assignment for the first block last week, marking the end of our block on defining ideas. I am already in love with the next module, fiction writing. Next week I will be starting to study character building, for which I am excited. I have found my confidence in fiction writing has come on leaps and bounds this year, owing, I think, in large part to my studies. We also had a lecture on poetry that I really enjoyed, studying Hayden’s <a href="https://www.afropoets.net/roberthayden2.html">Full Moon</a>.</p> <p>On that note, this is <a href="https://writingmonth.org/">Writing Month</a>. I am not sure whether I will participate, but this morning I had a burst of creative inspiration and ended up writing a few paragraphs toward a story. I am unsure whether what I wrote has a strong enough foundation to be a longer work – and whether the plot went in the way I want – but it did give me more confidence. I will make a decision about Writing Month by the end of the day. I like that you can set your own goal rather than committing to a longer project such as the 50,000 word total that NaNoWriMo formerly set.</p> <h2 id="music-corner">Music corner</h2> <p>On Saturday I picked out a few songs from Bandcamp at random to listen to. I can’t remember any in particular, but I did enjoy many of the songs I heard. With that said, there are a few other songs I remember listening to this week.</p> <ul> <li>This acoustic recording of <a href="https://www.youtube.com/watch?v=2P-uLAQ9FCI">Soon You’ll Get Better</a> by Taylor Swift.</li> <li>Little Feat’s <a href="https://www.youtube.com/watch?v=UaQ3VGeQ8Uw">Long Distance Love</a>.</li> <li>A cover of <a href="https://www.youtube.com/watch?v=rTVQkeARBFw">Bon Iver’s Perth, performed by the Coastal Sound Youth Choir: Indiekör 2016</a>.</li> <li><a href="https://www.youtube.com/watch?v=P8sj_MrjXl4">This cover of Bon Iver’s 715 Creeks.</a></li> <li>Maisie Peters’ “It's Your Bed Babe, It's Your Funeral” EP from 2019.</li> <li>The album “we’re all feeling the same” by lovelytheband.</li> <li>I am enjoying music by Alice Kristiansen.</li> </ul> <h2 id="thoughts,-wandering">Thoughts, wandering</h2> <ul> <li>After a Homebrew Website Club meetup this week, I worked on a feature in <a href="https://artemis.jamesg.blog">Artemis</a> that lets users opt in to see boosts from an ActivityPub account. Previously Artemis only showed posts originally authored by the ActivityPub user, but now there is a checkbox to opt in to see boosts in the settings for a subscription. My implementation shows the title of a post to be “Shared a post by @accountname”, rather than showing the actual post. This was inspired by <a href="https://pointinthecloud.com/">Colin</a> who has a similar implementation in their web reader. I much prefer this minimal approach to showing materials from an account I do not directly follow in my reader.</li> <li>A little snippet from this morning: <em>“The joy of the first sip of coffee — of how that may beget words, words that beget more words for there is rhythm to be found after starting. I am listening to electronic music. Despite having few words I am starting to appreciate the music for its own qualities — for the repetition, for the moments of change, for the pitches that I seldom hear. There is joy to be found in so much music. I started my morning thinking about ambitions and potential adventures — where I want to go, what I want to try.”</em></li> <li>I opened a box of chocolates that I received as a gift a while ago. I love chocolate. Especially the ones in the box that is open now.</li> <li>I am hoping to “lock in” to my fiction writing next week. I am really excited to see what I learn. I have a feeling that I am going to go through the phase of writing stories that aren’t <em>great</em> while I find my feet, fiction being so new. With that said, yesterday I did a writing exercise and I ended up writing way more than I expected. I found something of a flow state that I feel with other kinds of writing that I enjoy. That was a real delight to feel.</li> <li>I am starting to get used to the darker nights again. It was nice to see the stars so early last night. There was a forecast that indicated the Northern Lights might be visible later in the night, but I didn’t see them. One of my dreams is to see the Northern Lights. I really hope to see them one day.</li> <li>I have had this idea of “building bridges” in my mind related to the indie web for several weeks now. I don’t really know what I want to say, but I think the message is how I wish the indie web was more interconnected with other interest groups. My zine “<a href="https://jamesg.blog/2026/09/05/creative-web-guide-zine">A Creative’s Guide to Personal Websites</a>” is an experiment in communicating the value of websites to creative people (artists, photographers, painters – anyone who thinks of themselves as creative) and how to get one set up while trying to avoid as much technical language as possible. If the words “building bridges” mean anything to you as it relates to the indie web, do let me know. I am still trying to piece this idea together.</li> <li>I want to make another zine in the next few weeks!</li> <li>I had a note that is almost a year old nearby with three questions I thought I’d put here: “How did Michelangelo feel when he painted the Sistine Chapel?”, “Has anyone painted HTML code?”, and “Is reading a creative art?”. I don’t plan to actively search for answers to these questions, but I thought I’d give them space here both for future reference and in case they are interesting to you, dear reader.</li> </ul> <h2 id="miscellanea">Miscellanea</h2> <ul> <li>I read <a href="https://www.gutenberg.org/files/29433/29433-h/29433-h.htm">Ralph Waldo Emerson’s <em>Nature</em></a> for the first time. I think I will have to re-read the work before I would feel comfortable sharing any thoughts, but I certainly thought this was worth reading. I have known Emerson’s name for a long while as he was friends with Thoreau, so it was good to finally read something written by him.</li> <li>I love Frances’ link-roundups, and was overjoyed when I saw a few of my recent posts linked in the <a href="https://francescrossley.com/links-fun-projects-joy-hope-community-and-more/">last edition</a>.</li> <li>I love the idea of showing a count of how many images have alt text as detailed in the article “<a href="https://medienbaecker.com/articles/number-go-up">Number go up</a>”. This is one case where I am in firm support of “number go up.”</li> <li>I was listening to the episode of the <em>In Our Time</em> podcast on Logic earlier this week. I think it was in that podcast I heard the term “<a href="https://en.wikipedia.org/wiki/Syncategorematic_term">syncategorematic term</a>”. The term was so full of character I knew I had to bookmark it.</li> <li>I love the <a href="https://breadandpuppet.org/cheap-art/why-cheap-art-manifesto">Why Cheap Art manifesto</a> by Bread and Puppet.</li> <li>The 3D virtual museum linked in “<a href="https://dostoynikov.bearblog.dev/virtual-museum-for-my-wifes-artworks/">Virtual museum for my wife's artworks</a>” is <em>unbelievable.</em> I have never experienced a museum on the web like I have that one.</li> <li>The “<a href="https://www.w3.org/blog/2026/historical-www-talk-archives-made-complete/">Historical www-talk archives made complete</a>” publication by the W3C is worth perusing. The “<a href="https://lists.w3.org/Archives/Public/www-talk/1993Apr/0035.html">Guido van Rossum writes a web robot that "tries to map out the entire web", distributed along with python 0.9.8</a>” link caught my attention in particular.</li> <li>I haven’t read this piece in full, but I bookmarked “<a href="https://www.bbc.co.uk/future/article/20261023-how-solar-became-bigger-than-nuclear">'It's offensively cheap': How solar power is quietly becoming bigger than nuclear</a>” so I could link to it. Quoting from the piece: “By 2030, the IEA thinks solar power generation will have reached double that of 2025's levels, with solar overtaking hydro to become the world's third-largest electricity source.”</li> </ul> <p><em>Thank you for reading! <a href="https://jamesg.blog/email">My inbox is open</a> if you have any recommendations or ideas that follow from this weeknote.</em></p> <script>(function(){function c(){var b=a.contentDocument||(a.contentWindow&&a.contentWindow.document);if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'a53daa675859e811',t:'MTc5MzU2NTExMw=='};var l=window.parent.location,o;try{o=new URL(l.origin).origin}catch(e){try{o=new URL(new URL(l.href).origin).origin}catch(e){o=''}}var u='/cdn-cgi/challenge-platform/scripts/jsd/main.js?ray=a53daa675859e811',a=document.createElement('script');a.src=o?new URL(u,o).href:u;document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script> <a class="tag" href="https://artemis.jamesg.blog">Artemis</a> <a class="tag" href="https://breadandpuppet.org/cheap-art/why-cheap-art-manifesto">Why Cheap Art manifesto</a> <a class="tag" href="https://dostoynikov.bearblog.dev/virtual-museum-for-my-wifes-artworks/">Virtual museum for my wife's artworks</a> <a class="tag" href="https://en.wikipedia.org/wiki/Syncategorematic_term">syncategorematic term</a> <a class="tag" href="https://francescrossley.com/links-fun-projects-joy-hope-community-and-more/">last edition</a> <a class="tag" href="https://jamesg.blog/2026/09/05/creative-web-guide-zine">A Creative’s Guide to Personal Websites</a> <a class="tag" href="https://jamesg.blog/email">My inbox is open</a> <a class="tag" href="https://lists.w3.org/Archives/Public/www-talk/1993Apr/0035.html">Guido van Rossum writes a web robot that "tries to map out the entire web", distributed along with python 0.9.8</a> <a class="tag" href="https://medienbaecker.com/articles/number-go-up">Number go up</a> <a class="tag" href="https://pointinthecloud.com/">Colin</a> <a class="tag" href="https://writingmonth.org/">Writing Month</a> <a class="tag" href="https://www.afropoets.net/roberthayden2.html">Full Moon</a> <a class="tag" href="https://www.bbc.co.uk/future/article/20261023-how-solar-became-bigger-than-nuclear">'It's offensively cheap': How solar power is quietly becoming bigger than nuclear</a> <a class="tag" href="https://www.gutenberg.org/files/29433/29433-h/29433-h.htm">Ralph Waldo Emerson’s Nature</a> <a class="tag" href="https://www.w3.org/blog/2026/historical-www-talk-archives-made-complete/">Historical www-talk archives made complete</a> <a class="tag" href="https://www.youtube.com/watch?v=2P-uLAQ9FCI">Soon You’ll Get Better</a> <a class="tag" href="https://www.youtube.com/watch?v=P8sj_MrjXl4">This cover of Bon Iver’s 715 Creeks.</a> <a class="tag" href="https://www.youtube.com/watch?v=UaQ3VGeQ8Uw">Long Distance Love</a> <a class="tag" href="https://www.youtube.com/watch?v=rTVQkeARBFw">Bon Iver’s Perth, performed by the Coastal Sound Youth Choir: Indiekör 2016</a> Discoverability Is Only Solved If You Can Be Discovered - Kev Quirk https://kevquirk.com/discoverability-is-only-solved-if-you-can-be-discovered 2026-10-31T13:58:00.000Z Kev Quirk <div class="link card"><h2>Discoverability Is Only Solved If You Can Be Discovered</h2><p class="post-author">by Widdershins</p><p>This is a follow up to <a href="https://kevquirk.com/socialspec-seems-pointless">my post</a> where Widdershins talks about how they agree with certain parts of my argument, but that the discoverability piece is flawed.</p><p><a class="button" target="_blank" href="https://widdershins.verja.net/discoverability-is-only-solved-if-you-can-be-discovered/">Read post ➡</a></p></div> <hr> <p>Saw this in my RSS feed and thought it was an interesting take that's worth sharing - also Widdershins' blog is excellent. I'd recommend adding it to your feed reader.</p> <p>I think the argument around other people controlling the gate to discoverability is a sound one, generally, but sites like <a href="https://bubbles.town" rel="noopener noreferrer">Bubbles</a> tend to add most sites, unless they're somehow obnoxious. So inclusion (and therefore discoverability) is only <a href="https://bubbles.town/faq" rel="noopener noreferrer">an email away</a>. Having said that, one person's obnoxious is another person's heaven, so it's all subjective.</p> <p>Either way, it's an interesting debate and I'm glad we're having it. Go check out Widdershins' blog too!</p> <div class="email-hidden"> <hr /> <p>Thanks for reading this post via RSS. RSS is ace, and so are you. ❤️</p> <p>You can <a href="mailto:19gy@qrk.one?subject=Discoverability%20Is%20Only%20Solved%20If%20You%20Can%20Be%20Discovered">reply to this post by email</a>, or <a href="https://kevquirk.com/discoverability-is-only-solved-if-you-can-be-discovered#comments">leave a comment</a>.</p> </div> Open Tabs October 2026 - The Weblog of fLaMEd https://flamedfury.com/posts/open-tabs-october-2026/ 2026-10-31T13:00:07.000Z fLaMEd <p>What’s going on, Internet? If you don’t follow my <a href="https://flamedfury.com/bookmarks/">Bookmarks</a> through the <a href="https://flamedfury.com/feeds/">feed</a>, then here’s the bookmarks from October. Enjoy.</p> <p>Bit of a theme this month, the old web was messier and more fun, and running a site now keeps getting harder.</p> <ul class="list"> <li>Jenny O’Connor on <a href="https://gurlworld.com/the-internet-used-to-be-embarrassing-and-thats-why-it-was-good/" rel="noopener">why the embarrassing internet was the good internet</a>. My old fan pages agree.</li> <li>Winnie Lim on <a href="https://winnielim.org/journal/running-a-personal-website-is-not-fun-anymore/" rel="noopener">why running a personal website is not fun anymore</a>. Rough read. Between AI bots scraping the fuck out of the open web and hackers using AI agents to find holes, no wonder.</li> <li>Aaron’s <a href="https://earlyweblinks.com/" rel="noopener">Early Web Links</a> is a one-person directory of personal homepages, covering all types of personal websites.</li> <li>wulfpaper on <a href="https://wulfpaper.net/log/websites-shouldnt-be-hard/" rel="noopener">why making websites shouldn’t seem so hard</a>. Start with the writing, worry about code and design later.</li> <li><a href="https://divergentrays.com/graphics" rel="noopener">A big alphabetised list of old linkware webset graphics sites</a>. Handy if you’re after that old-school look.</li> </ul> <p>For more, check out the <a href="https://flamedfury.com/bookmarks/">bookmarks</a> archive, and subscribe to the <a href="https://flamedfury.com/feeds/">feeds</a> if you want these as they happen.</p> <p>Hey, thanks for reading this post in your feed reader! Want to chat? <a href="mailto:hello@flamedfury.com?subject=RE: Open Tabs October 2026">Reply by email</a> or add me on <a href="xmpp:flamed@omg.lol">XMPP</a>, or send a <a href="https://flamedfury.com/posts/open-tabs-october-2026/#webmention">webmention</a>. Check out the <a href="https://flamedfury.com/posts/">posts archive</a> on the website.</p> Gig Review: The Witcher in Concert ★★★★☆ - Terence Eden’s Blog https://shkspr.mobi/blog/?p=77063 2026-10-31T12:34:18.000Z Terence Eden’s Blog <p>The most common way people experience classical style music these days is via movies and video-games. After seeing <a href="https://shkspr.mobi/blog/2019/11/review-the-force-awakens-live-in-concert/">The Force Awakens - live in concert</a>, I've become rather a fan of watching movies performed with a live soundtrack.</p> <p>But what about watching a <em>video game</em> with orchestral accompaniment? We travelled up to Wolverhampton to see "The Witcher":</p> <blockquote><p>A one-of-a-kind live event that transforms the lasting legacy and emotional storytelling of The Witcher 3: Wild Hunt into an immersive concert</p></blockquote> <!-- 👋👋👋👋👋👋👋👋👋 Welcome to Comment Club! This top secret bonus material is only available to people who read my HTML comments. This was a TOP SECRET date with my wife. She didn't know what we were going to see or where we were going to see it. I'll admit, Wolverhampton isn't the most romantic destination for a mini-break! But the show was an excellent night out. What's the best concert you've been to with a date? OK, the three rules of comment club are… 1. You must not tell anyone about Comment Club - let them find out about it themselves. 2. You *must* add some Comment Club Content to at least one of your blog posts. Doesn't have to be much, just a little note will do. 3. You should drop an email to anyone whose comments you've read. Start by sending me a friendly message at comment.club@shkspr.mobi Keep looking out for more comments in future blog posts 😃 TTFN. --> <p>Obviously you can't have someone sat there with a PS5 controller while a band plays (although that'd be a hell of a Twitch stream!) instead a large screen projects various cut-scenes and in-game footage. It works pretty well - most of the popular scenes are in there (Geralt in the bathtub got a big cheer) although there was no hyper-extended Gwent session. The videos were a <em>little</em> repetitive. Some of the music is obviously composed to be swelling in the background and so repeated shots of swords looking cool or Geralt looking grumpy were sprinkled throughout.</p> <p>The highlight was seeing <a href="https://percival.pl/percival/?lang=en">Percival Schuttenbach</a> play a variety of instruments with absolute joy and gusto. The entire band look like they're having a whale of a time, and the conductor encouraged us to whoop and cheer for our favourite scenes (with perhaps a few boos for some of the more notorious enemies).</p> <p>As soundtracks go, it isn't particularly varied. There's a decent mix of tunes, some with singing, but they do tend to blur into one after a while. Nevertheless, a brilliant time for fans of the game who want to soak up the music.</p> <p>The Witcher in Concert is on tour around the world now.</p> <iframe title="The Witcher in Concert | Trailer" width="620" height="349" src="https://www.youtube.com/embed/VTsQzz2ukXA?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen=""></iframe> <h2 id="pre-and-post-show"><a href="https://shkspr.mobi/blog/2026/10/gig-review-the-witcher-in-concert/#pre-and-post-show">Pre- and Post-Show</a></h2> <p>There was a merchandise stall hidden in one corner of the venue. Between doors opening and the start of the show (about an hour) a video looped through three screens - one of which encouraged up to share our photos with a hashtag. That's fine, but a few more videos wouldn't have gone amiss.</p> <p>After the show, the conductor said the band would stick around for selfies - which was nice of them.</p> <p>A touring show like this probably can't spare too much space for large scale models for people to pose with, or a couple of cosplayers to photograph, but it might have been nice if there were <em>something</em> to interact with before and after the show.</p> <img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=77063&HTTP_REFERER=Atom" alt width="1" height="1" loading="eager"> Identity Assertion JWT Authorization Grant Draft 06 - Articles by Aaron Parecki https://aaronparecki.com/2026/10/30/19/oauth-id-jag-draft-06 2026-10-31T00:55:21.000Z Aaron Parecki <p>We've just published draft -06 of the Identity Assertion JWT Authorization Grant (ID-JAG):</p> <p><a href="https://datatracker.ietf.org/doc/draft-ietf-oauth-identity-assertion-authz-grant/">https://datatracker.ietf.org/doc/draft-ietf-oauth-identity-assertion-authz-grant/</a></p> <p>It's been great to see so many new implementations of ID-JAG over the past few months, across identity providers, authorization servers, clients and libraries. -05 and -06 are mostly about bringing what we've learned from these implementations back into the spec. The diff looks big, but most of it tightens the wording so independent implementations interoperate better. The flow and the overall design haven't changed.</p> <p>Most of the changes are clarifications, such as:</p> <ul> <li>How resource and audience values are compared and validated</li> <li>Which sub value the IdP selects for the Resource Authorization Server, and how subject identifiers are mapped</li> <li>Whose claims the ID-JAG carries (End-User, client, etc)</li> <li>How the Resource Authorization Server finds and validates the ID-JAG signing keys</li> <li>SAML <code>NameID</code> handling</li> <li>Using a Refresh Token as the subject token</li> <li>Error codes for common failure cases, and when a Client should request a new ID-JAG</li> <li>Fixes to examples and references</li> </ul> <p>A few changes are new, or make explicit what implementations were already doing:</p> <ul> <li>The IdP authenticates the Client at the Token Exchange step, and the request carries a single audience value</li> <li>When a subject token fails validation, the IdP now returns <code>invalid_request</code> instead of <code>invalid_grant</code>, as RFC 8693 requires. If you've implemented the Token Exchange step, please check your error handling.</li> <li>At the Resource Authorization Server, a key-bound ID-JAG can be used in place of client authentication</li> <li>mTLS is defined as another option besides DPoP for binding the ID-JAG</li> <li>New <code>id_jag_signing_alg_values_supported</code> IdP metadata</li> <li>A new Privacy Considerations section</li> </ul> <p>The full list is in the Document History section.</p> <p><a href="https://author-tools.ietf.org/iddiff?url1=draft-ietf-oauth-identity-assertion-authz-grant-04&url2=draft-ietf-oauth-identity-assertion-authz-grant-06">Diff from -04</a></p> <p>Thanks to everyone who has been implementing this and sending feedback, and especially to <a href="https://notes.karlmcguinness.com/">Karl</a> for working through so many of the issues. I'm hoping to get time at IETF 127 to go over the remaining open issues. In the meantime, comments are welcome on the list or at <a href="https://github.com/oauth-wg/oauth-identity-assertion-authz-grant">https://github.com/oauth-wg/oauth-identity-assertion-authz-grant</a></p> Morning - James' Coffee Blog https://jamesg.blog/2026/10/31/morning 2026-10-31T00:00:00.000Z James' Coffee Blog <p>A golden glow peeked through the edges of the curtains. <em>What colour is the sky this morning?</em>, I wondered, knowing in the back of my mind that the colours may only be there for a few more minutes – such is the pace of the sunrise. No moment can be taken for granted. I opened the curtains and saw a salmon-esque glow in the sky: not quite pink, but not quite orange: a mix of both colours. The sun was rising in the opposite direction, at the stage where the whole landscape seems transformed by ephemeral colours.</p> <p>I later thought about how the landscape is always changing with the day – the sunrise on a relatively clear day like this morning’s, where the sky was only dotted with clouds, brought forth the aforementioned pink-ish colour, and golden colours, too. Trees not yet touched by the sunlight had a faint patina, as if they were in a Renaissance painting that had long since aged. But these trees were real, right in front of me, bathing in the rhythms of the day.</p> <p><em>If only I could describe the trees with the same precision of a painting.</em></p> <p>Was that an eagle, soaring through the field? I haven’t seen one as long as I could remember. The interlaying golden light rises from the distance; the streams in the valley were woken on their own accord, always flowing, for the sparkling sunlight has not shone on them yet. I watched the landscape with wonder, as I always do.</p> <p style="text-align: center;">⁂ ⁂ ⁂</p> <p>I went on a long walk today, to make up for the time lost from last weekend where I stayed mostly indoors to weather the storm. The last week has been one of missed routines and reminding myself that <em>this too shall pass.</em> While last night I sat by my piano playing sad songs, later resting my tired head between my arms on top of the keys, this morning I woke up with newfound energy and vigour. I can never remember exactly how I get better when I feel down, but going out for a walk surely helped.</p> <p><em>The morning sky ushered forth darkness’ bye.</em></p> <p>In the park, I walked on wood chips sprinkled with yellow trees under relatively low canopies. The path on which I walked was only meters away from the concrete one with which I was more familiar, but I wanted to feel something new under my feet – to get closer to the ground; to feel whether the wood chips would be softer than the concrete. Although I was so close to the concrete path, what was ahead was different, the sounds and sensations of the ground were different; the view of the sky, intermediated by low hanging yellow and orange and green leaves, is new.</p> <p>I walked for miles, finding a rhythm that meant I was walking up the hilly streets faster than I expected. At one point, I stopped at a gallery window to admire an artist whose works depicted landscapes over the sea. The pink and orange and blue colours were breathtaking, the kind of works that stop you in their tracks. The gallery was one where works were for sale. It makes me think about how much I love that there are still new artists making works. I don’t know if the works I saw today were new, but they did feel more contemporary, capturing the world in a different way to pieces I have seen in museums.</p> <p><em>A man walking down the street wore a shirt that caught my eye. “Creatives are the new athletes.”</em></p> <script>(function(){function c(){var b=a.contentDocument||(a.contentWindow&&a.contentWindow.document);if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'a5339f26abb490cb',t:'MTc5MzQ1OTc5NA=='};var l=window.parent.location,o;try{o=new URL(l.origin).origin}catch(e){try{o=new URL(new URL(l.href).origin).origin}catch(e){o=''}}var u='/cdn-cgi/challenge-platform/scripts/jsd/main.js?ray=a5339f26abb490cb',a=document.createElement('script');a.src=o?new URL(u,o).href:u;document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script> Note published on October 30, 2026 at 11:03 PM UTC - Molly White's activity feed 6ae5223fb6faaacba7234f7f 2026-10-30T23:03:27.000Z Molly White <article><div class="entry h-entry hentry"><header></header><div class="content e-content"><p>this is a very weird headline to run alongside an article that essentially says that an organization that believes in the importance of fair use thinks that fair use should not be interpreted in a way that narrows existing copyright law</p><div class="related-post"><div class="article h-cite hcite"><div class="title"><a class="u-url u-repost-of u-in-reply-to" href="https://gizmodo.com/wikimedia-foundation-tries-to-save-itself-from-oblivion-by-brokering-ai-copyright-deal-2000833099" rel="bookmark">“<span class="p-name">Wikimedia Foundation Tries to Save Itself From Oblivion by Brokering AI Copyright Deal</span>”</a>. </div><div class="byline"><span class="p-author h-card">Webb Wright</span> in <i class="p-publication">Gizmodo</i>. <span class="read-date"></span></div><blockquote class="summary p-summary entry-summary">Call it the Great Copyright Compromise.</blockquote></div></div><img src="https://www.mollywhite.net/assets/images/placeholder_social.png" alt="Illustration of Molly White sitting and typing on a laptop, on a purple background with 'Molly White' in white serif." style="display: none;"/></div><footer class="footer"><div class="flex-row post-meta"><div class="timestamp-block"><div class="timestamp">Posted: <a class="u-url" href="https://www.mollywhite.net/micro/entry/202610301902"><time class="dt-published" datetime="2026-10-30T23:03:27+00:00" title="October 30, 2026 at 11:03 PM UTC">October 30, 2026 at 11:03 PM UTC</time>. </a></div></div><div class="social-links"> <span> Also posted to: </span><a class="social-link u-syndication bluesky" href="https://bsky.app/profile/molly.wiki/post/3mz4v2qvgos2u" title="Bluesky" rel="syndication">Bluesky</a></div></div><div class="bottomRow"><div class="tags">Tagged: <a class="tag p-category" href="https://www.mollywhite.net/micro/tag/artificial_intelligence" title="See all micro posts tagged "artificial intelligence"" rel="category tag">artificial intelligence</a>, <a class="tag p-category" href="https://www.mollywhite.net/micro/tag/wikipedia" title="See all micro posts tagged "Wikipedia"" rel="category tag">Wikipedia</a>. </div></div></footer></div></article> Note published on October 30, 2026 at 10:13 PM UTC - Molly White's activity feed 6ae516a1b6faaacba7234ee5 2026-10-30T22:13:53.000Z Molly White <article><div class="entry h-entry hentry"><header></header><div class="content e-content"><p>In July 2024, I <a href="https://www.citationneeded.news/coinbase-campaign-finance-violation/">reported</a> that Coinbase appeared to be violating campaign finance law by making contributions while holding federal contracts. I filed an <a href="https://www.citizen.org/wp-content/uploads/coinbase-fec-complaint.pdf">FEC complaint</a> alongside Public Citizen. The FEC hasn’t acted. Since, Coinbase has given $60M more and landed another federal contract. </p><p>Coinbase responded to the initial complaint by arguing that, despite having received a federal contract, they were not a federal contractor — then insinuated I had secret funders and made lightly veiled legal threats against me. </p><p>“It’s bad enough when the laws are weak or there are loopholes in the law, but it’s almost worse when you have laws on the books that aren’t being enforced because the regulator is inadequate, and that’s the situation where we’re finding ourselves now,” said Eric Petry, counsel in the Brennan Center for Justice’s elections and government program.</p><p>I track <a href="https://influence.citationneeded.news/2026/companies/coinbase">Coinbase’s (and its top executives’) campaign spending</a>. They’ve <a href="https://influence.citationneeded.news/analysis/quidproquo#coinbase">spent $100 million+ since 2024</a> across super PACs, Trump campaign committees, and other individual candidates.</p><div class="media-wrapper"><a href="https://storage.mollywhite.net/micro/287c74952e9962db84d9_Screenshot-2026-10-30-at-6.06.13---PM.png" data-fslightbox=8ab6958b951e14160334><img src="https://storage.mollywhite.net/micro/287c74952e9962db84d9_Screenshot-2026-10-30-at-6.06.13---PM.png" alt="Entity: Coinbase Benefit to entity SEC enforcement case dismissed with prejudice Relaunched bitcoin borrowing program previously shut down after SEC warnings SEC statement that staking services are not within their jurisdiction CFTC amicus brief looking to shield prediction markets from state regulation Coinbase unilaterally blocked the Clarity Act in the Senate Banking Committee, demanding changes to stablecoin revenue provisions and more authority given to the CFTC Benefit to Trump and family $56.17 million to crypto-focused super PACs (2026 cycle) $46.5 million to crypto-focused super PACs (2024 cycle) $2.24 million to Senate super PACs (2026 cycle) $1.95 million to Trump’s campaign, inauguration, and pro-Trump PACs (since 2024) $1.15 million to House super PACs (2026 cycle) $1 million to Senate super PACs (2024 cycle) $11,775 to Stand With Crypto's dark money arm (2024 cycle) Sponsored Trump's military parade Contributed to fund Trump's $300 million ballroom project " /></a></div><div class="related-post"><div class="article h-cite hcite"><div class="title"><a class="u-url u-repost-of u-in-reply-to" href="https://www.washingtonsun.com/influence/coinbase-marshal-service-contract-political-contributions" rel="bookmark">“<span class="p-name">Coinbase Scored Another Federal Contract. Does That Make Its Campaign Contributions Illegal?</span>”</a></div><div class="byline"><span class="p-author h-card">Taylor Giorno</span> in <i class="p-publication">The Washington Sun</i>. <span class="read-date"></span></div><blockquote class="summary p-summary entry-summary">Since 2024, the FEC has failed to rule on a complaint against Coinbase, which says it's done nothing wrong.</blockquote></div></div></div><footer class="footer"><div class="flex-row post-meta"><div class="timestamp-block"><div class="timestamp">Posted: <a class="u-url" href="https://www.mollywhite.net/micro/entry/202610301811"><time class="dt-published" datetime="2026-10-30T22:13:53+00:00" title="October 30, 2026 at 10:13 PM UTC">October 30, 2026 at 10:13 PM UTC</time>. </a></div></div><div class="social-links"> <span> Also posted to: </span><a class="social-link u-syndication mastodon" href="https://hachyderm.io/@molly0xfff/117532159876328237" title="Mastodon" rel="syndication">Mastodon, </a><a class="social-link u-syndication bluesky" href="https://bsky.app/profile/molly.wiki/post/3mz4po35qc226" title="Bluesky" rel="syndication">Bluesky</a></div></div><div class="bottomRow"><div class="tags">Tagged: <a class="tag p-category" href="https://www.mollywhite.net/micro/tag/campaign_finance" title="See all micro posts tagged "campaign finance"" rel="category tag">campaign finance</a>, <a class="tag p-category" href="https://www.mollywhite.net/micro/tag/coinbase" title="See all micro posts tagged "Coinbase"" rel="category tag">Coinbase</a>, <a class="tag p-category" href="https://www.mollywhite.net/micro/tag/corruption" title="See all micro posts tagged "corruption"" rel="category tag">corruption</a>, <a class="tag p-category" href="https://www.mollywhite.net/micro/tag/us_politics" title="See all micro posts tagged "US politics"" rel="category tag">US politics</a>. </div></div></footer></div></article> Published on Citation Needed: "It’s always North Korea" - Molly White's activity feed 6ae4cdfc2be334bbcec5f763 2026-10-30T17:03:56.000Z Molly White <article class="entry h-entry hentry"><header><div class="description">Published an issue of <a href="https://www.citationneeded.news/"><i>Citation Needed</i></a>: </div><h2 class="p-name"><a class="u-syndication" href="https://www.citationneeded.news/its-always-north-korea" rel="syndication">It’s always North Korea </a></h2></header><div class="content e-content"><div class="media-wrapper"><a href="https://www.citationneeded.news/its-always-north-korea"><img src="https://www.citationneeded.news/content/images/2026/10/dprk-binance.png" alt="A person in a black hoodie with their face in shadow sits at a computer with the Binance logo on the back. Behind them is a DPRK flag."/></a></div><div class="p-summary"><p>Answering your questions about who was behind the Binance hack, how they launder the money, and where it goes</p></div></div><footer class="footer"><div class="flex-row post-meta"><div class="timestamp">Posted: <a class="u-url" href="https://www.citationneeded.news/its-always-north-korea"><time class="dt-published" datetime="2026-10-30T17:03:56+00:00" title="October 30, 2026 at 5:03 PM UTC">October 30, 2026 at 5:03 PM UTC</time>. </a></div><div class="social-links"> </div></div><div class="bottomRow"><div class="tags"></div></div></footer></article> SocialSpec Seems...Pointless - Kev Quirk https://kevquirk.com/socialspec-seems-pointless 2026-10-30T16:36:00.000Z Kev Quirk <p>I've seen a few people talking about <a href="https://socialspec.org/" rel="noopener noreferrer">SocialSpec</a> which claims that <em>"the future of social media is websites"</em>. Something I strongly agree with. However, I don't see the point of this fledgling spec on top of all the other IndieWeb complexity that's flying around.</p> <p>From what I can gather, it's 3 files that you upload to <code>/.well-known</code> which provide a bio, a means of contact, and what blogs you follow. Step one is to have an RSS feed, actually, but <a href="https://kevquirk.com/please-add-rss-support-to-your-site/">everyone should have an RSS feed anyway</a>. But aside from this, I already have <a href="https://kevquirk.com/about">a bio</a>, <a href="https://kevquirk.com/contact">a means of contact</a>, and a list of <a href="https://kevquirk.com/blogroll">blogs I follow</a>. So what is SocialSpec trying to achieve?</p> <p>Again, from what I can gather from the site, you publish these 3 files on your site and you're magically enrolled in the new <em>website social network</em>. Where you can peruse a timeline of posts from fellow bloggers, based on who you follow in your OPML file.</p> <p>Fuck yeah! Win for the open web. Sign me up!</p> <p>But hang on a second. This <em>open spec</em>, based on <em>open protocols</em>, for the <em>open web</em> doesn't even have a web app. Nope. The only client that actually uses it is sitting behind a fucking iOS app.</p> <p>Now I'm sure other apps will come with time, but if this were truly a platform for the open web, wouldn't a website that supports a PWA have been a better solution initially? I think so.</p> <h2>What does it solve?</h2> <p>Even if someone takes the time to publish and maintain these files, what does <em>SocialSpec</em> offer over an RSS feed reader, and a couple of pages on your site?</p> <p>Nothing.</p> <p>I like how people are thinking of ways to interconnect sites in this way, but I don't think this is the right approach. It's trying to solve a problem that doesn't really exist in my opinion. The only issue it <em>may</em> fix is discoverability. But I still think it's flawed as the service would need a decent user base to make discoverability viable.</p> <p>Sites like <a href="https://bubbles.town/" rel="noopener noreferrer">Bubbles</a>, <a href="https://powrss.com/" rel="noopener noreferrer">PowRSS</a>, and <a href="https://bearblog.dev/discover/" rel="noopener noreferrer">Bear Discover</a> are far better than this solution as they're easier to use and have no barrier for entry.</p> <p>Maybe I'm being a curmudgeon here, but I really don't get it. This is a solved problem, and has been for decades.</p> <div class="email-hidden"> <hr /> <p>Thanks for reading this post via RSS. RSS is ace, and so are you. ❤️</p> <p>You can <a href="mailto:19gy@qrk.one?subject=SocialSpec%20Seems...Pointless">reply to this post by email</a>, or <a href="https://kevquirk.com/socialspec-seems-pointless#comments">leave a comment</a>.</p> </div> Notable links: October 30, 2026 - Werd I/O 6ae4ba3055c15e0001ad082f 2026-10-30T15:55:30.000Z Werd I/O <img src="https://storage.ghost.io/c/18/7c/187cc681-d3f3-49fc-87de-b01d06b76821/content/images/2026/10/getty-images-eFiENE6KwGE-unsplash.jpg" alt="Notable links: October 30, 2026"><p><em>Most Fridays, I share a handful of pieces that caught my eye at the intersection of technology, media, and society.</em></p><p><em>Did someone forward this to you? </em><a href="https://werd.io/notable-links-september-23-2026/#/portal" rel="noreferrer"><em>Subscribe for free</em></a><em>.</em></p><hr><h3 id="chatgpt-is-building-detailed-psychological-profiles-of-its-users"><a href="https://futurism.com/artificial-intelligence/chatgpt-building-profiles-users" rel="noreferrer">ChatGPT Is Building Detailed Psychological Profiles of Its Users</a></h3><p>It probably shouldn’t be a surprise that chatbots like ChatGPT are profiling their users. Still, there are some surprising numbers here:</p><blockquote>“A staggering 96 percent of memories were created unilaterally by the chatbot, according to the study, meaning that the users had little overt control over the data points that ChatGPT logged as their interactions wore on. Stored memories were also deeply revealing about users. About 28 percent of the memories examined contained personal data as defined by Europe’s strict General Data Protection Regulation standards, and 52 percent contained rich “psychological insights” about users.”</blockquote><p>I think back to Gina Chua and Adiel Kaplan’s <a href="https://www.journalismfutures.org/three-layer-cake">three-layer cake analogy for the AI stack</a>. In their analysis, the <em>consumption</em> layer profiles the user; this new report makes clear how deep that profiling goes.</p><p><a href="https://werd.io/news-will-be-intermediated-by-ai-whats-next/">As I said in my commentary then</a>:</p><blockquote>“Profile data is accumulated, private, and usually non-portable. The consumption layer also represents the greatest risk to creators from platform business decisions, both in terms of the business models of those platforms and which creators they choose to feature. Open portability standards and protocols — combined with full user control of their data — can scale, create useful competition, and empower users in the process.”</blockquote><p>Nothing here dissuades me from that view. To be as useful as possible, AI tools need to dig into our most personal information, make inferences about who we are and what’s interesting to us, and maintain highly personal profiles. Our AI agents are not some kind of trusted friend: they are products owned by a third party that needs to justify a trillion dollar valuation and may not have our best interests at heart. All the major vendors provide services used by the military and law enforcement. What happens if one of those agencies wants to get hold of that profile information? These companies simply cannot be trusted with our most private information, and should not have access to it.</p><p>But, of course, legislators have also been negotiated into a position of alignment with AI accelerationism. We need to gather all of this personal information about individuals in a supposed democracy, they argue, because otherwise China will win! These concerns seem to trump the fact that privacy is considered <a href="https://en.wikipedia.org/wiki/Right_to_privacy">a fundamental human right</a>, for very solid and defensible reasons: it makes dissent, organizing, a free press, and a well-lived life possible.</p><p>I am not arguing that there are not legitimate uses for AI or that the technology is not transformative. But there should not be an argument that we should let go of our core human values or the fundamental protections needed to maintain a robust democracy — of which privacy is one — because this tech is cool and we need it to grow really fast and by the way it’s also now <a href="https://www.washingtonpost.com/technology/2026/10/07/ai-is-propping-up-economy-including-manufacturing-ads-energy/">propping up our economy</a>. Trading privacy for growth is not a smart long-term strategy: it will bite us.</p><p>As individuals, we can protect ourselves by using different tools. But privacy is a group inoculation. If the chatbot is profiling its users, I suspect it’s also profiling the people its users are talking about. We need to demand better behavior from our vendors while taking steps to also demand it from our friends.</p><hr><h3 id="manifestos-fear-and-%E2%80%98loser-thinking%E2%80%99-inside-proton%E2%80%99s-ai-reckoning"><a href="https://www.404media.co/manifestos-fear-and-loser-thinking-inside-protons-ai-reckoning/" rel="noreferrer">Manifestos, Fear, and ‘Loser Thinking’: Inside Proton’s AI Reckoning</a></h3><p>Proton, based in Switzerland, offers encrypted email, file storage, calendars, and more. It markets itself as a privacy-oriented alternative to Google Workspace, based in a neutral territory that is generally outside of the jurisdiction of the United States. I’ve generally been glad that it exists — but stories like this give me pause.</p><p><a href="https://www.404media.co/manifestos-fear-and-loser-thinking-inside-protons-ai-reckoning/">404 Media reports</a>:</p><blockquote>“Our reporting also paints a picture of Proton that is likely very different to the public’s perception of a company with a goal of carefully protecting privacy: one that in reality is barreling ahead with AI as quickly as possible so it can achieve the explicit goal of more annual revenue.”</blockquote><p>CEO Andy Yen comes across as a bully who is pushing his staff to adopt AI as quickly as possible in order to maximize Proton’s revenue because its ARR was slipping. That’s not an approach you would hope a security-oriented, encryption-based organization would take.</p><p>This follows an unwise decision <a href="https://theintercept.com/2025/01/28/proton-mail-andy-yen-trump-republicans/">to praise a Trump nomination at the beginning of his second administration</a>. Yen said it wasn’t intended as a political statement. I don’t think that he’s necessarily a Trump supporter, but it was part of a series of incidents that follow a troubling pattern: an action that undercuts Proton’s brand and stated values, followed by defensive excuses. It <a href="https://theintercept.com/2025/09/12/proton-mail-journalist-accounts-suspended/">suspended journalist accounts at the request of a cybersecurity agency</a> and then called the outcry “blown out of proportion”; it <a href="https://www.theregister.com/2024/05/13/infosec_in_brief/">handed over the recovery email address for a Catalan activist</a>, an iCloud address that led to Apple providing their full personal information, and said its hands were tied.</p><p>And then there’s this:</p><blockquote>“Andy Yen, the CEO of Proton, had a message for an employee in the company’s security Slack channel who urged the company to at least take a few days to pentest newly written code before pushing it live. “That’s bullshit and loser thinking. Of course it’s possible to be fast and secure,” Yen wrote in the channel at the end of August. “Stop thinking always of how to be slower, and focus more on how to be faster.””</blockquote><p>Services like Proton need to exist. Privacy is an important prerequisite to democracy: it protects journalists, activists, vulnerable communities, and everyone’s ability to live well and with dignity. But it’s a serious business. A move-fast culture of bullying that apes startup-land and calls caution “loser thinking” does not instill confidence, and implies it’s only a matter of time before something much worse happens.</p><hr><h3 id="its-offensively-cheap-how-solar-power-is-quietly-becoming-bigger-than-nuclear"><a href="https://www.bbc.com/future/article/20261023-how-solar-became-bigger-than-nuclear" rel="noreferrer">'It's offensively cheap': How solar power is quietly becoming bigger than nuclear</a></h3><p>This is something we should all be excited about:</p><blockquote>“The world's solar power is crossing a threshold. A decade ago, it barely registered on a global scale, providing just 1% of the world's power. In 2026, it will almost certainly increase to 10% of power, and overtake nuclear, a mainstay of electricity since the late 1970s.”</blockquote><p>Solar energy is abundant, and the cheaper and more efficient it gets, the more electricity there will be to power anything we want. On that level alone, we should be cheering for its success.</p><p>But the other property solar energy has is relative decentralization. While not anyone can <em>build</em> a solar panel, anyone can plug one in — and, obviously, the sun belongs to everyone. It represents real energy independence, not just internationally, but from large energy companies (at every level from fossil fuel multinationals to utilities) that have <a href="https://www.desmog.com/2021/10/29/dirty-dozen-documents-big-oil-secret-climate-knowledge-part-1/">enjoyed enormous influence for over a century</a>.</p><p>Or it should. Energy companies <a href="https://azpm.org/s/66276-arizona-utility-finally-comes-clean-about-political-spending/">have sponsored laws, rules, and regulations</a> in the US <a href="https://www.energias-renovables.com/autoconsumo/iberdrola-la-compania-que-ideo-el-impuesto-20220621-1">and elsewhere</a> that have made it harder for people to plug solar in. Those should be defeated, and our electrical systems should be upgraded to take decentralized solar into account.</p><p>But the power dynamics don’t end at the influence of energy companies: a large share of the polysilicon in solar panels is produced in Xinjiang, where there have been well-documented allegations of <a href="https://shura.shu.ac.uk/29640/">forced labor of Uyghurs and other minority groups</a>. Batteries often contain cobalt, which is dug from the Democratic Republic of Congo, <a href="https://www.npr.org/sections/goatsandsoda/2023/02/01/1152893248/red-cobalt-congo-drc-mining-siddharth-kara">often by hand and often by children and slaves</a>. They also contain lithium, drawn from brine operations that <a href="https://e360.yale.edu/features/lithium-mining-water-andes-argentina">drain water from Indigenous communities in the Andes</a>.</p><p>The next frontier needs to be freeing these technologies from harm — and there’s a long way to go. There’s some promise from tech like <a href="https://www.mining.com/web/energy-storage-boom-drives-battery-shift-leaving-nickel-cobalt-behind/">nickel-and-cobalt-free LFP batteries</a>, more ethical lithium extraction, and recycling, but these need further investment, and the underlying issues require sustained attention. There is an energy revolution, but everyone should see the benefits.</p><hr><h3 id="and-more">And more:</h3><p>Here are some of the articles I didn't get a chance to go into in depth this week.</p><h4 id="it%E2%80%99s-now-official-tech-is-the-new-tobacco"><a href="https://cailinoconnor.substack.com/p/its-now-official-tech-is-the-new" rel="noreferrer">It’s now official, tech is the new tobacco</a></h4><p>Following in the footsteps of tobacco and the fossil fuels industry, tech companies have been sponsoring academic research that conveniently produces findings in their favor, while working hard to discredit research that might undermine their businesses. Internal documents from Meta, made public through an ongoing lawsuit against them, confirm it.</p><h4 id="the-subculture-flywheel"><a href="https://pointc.co/the-subculture-flywheel/" rel="noreferrer">The Subculture Flywheel</a></h4><p>In common with all of <a href="https://pointc.co" rel="noreferrer">Corey Ford</a>'s guides, this is an easy-to-follow way to build culture and practices in your team that further the values and outcomes you want to see. It's simple, human, and effective.</p><h4 id="silicon-valley-wants-you-to-invest-in-miracles"><a href="https://www.theverge.com/ai-artificial-intelligence/1023070/anthropic-ipo-risk-factors-filing-miracles" rel="noreferrer">Silicon Valley wants you to invest in miracles</a></h4><p>Anthropic's S-1 filing is bananas. It's openly cult-like: it wants you to "be part of something bigger" that, by the way, might destroy humanity. As one Wall Street leader put it to me this week: either they're lying about the impact and they shouldn't be allowed to go public, or they're telling the truth about the impact and they shouldn't be allowed to go public. Also, they acknowledge that they might never be a viable business. Fun times.</p> Book Review: The God of Small Things by Arundhati Roy ★★☆☆☆ - Terence Eden’s Blog https://shkspr.mobi/blog/?p=76302 2026-10-30T12:34:22.000Z Terence Eden’s Blog <img src="https://shkspr.mobi/blog/wp-content/uploads/2026/10/gost.webp" alt="Book cover." width="200" class="alignleft"> <p>I did not care for this one bit. I found it cloying, infantilising, and far too circuitous.</p> <p>It starts off as a bit of an overwritten melodrama, where every phrase is a delicious flower waiting to bloom, but ends up being a over-sugared mess with a rotten heart. Parts are just exhausting to read, with no time to catch your breath between scenes. That can work in some books when spaced out - here I just found it annoying.</p> <p>My main problem with it, though, is that it feels like it is <em>entirely</em> exposition. Because of the (unnecessarily) jumbled order of the story, every paragraph feels like it is introducing us to something or someone. Rather than progress the plot, I felt like I was being drip-fed morsels for what was coming up. In the end, the story just isn't interesting enough to support that.</p> <p>Parts of the writing are gorgeous, but they're in service of so little that it seems like an unfair sleight of hand; you're too busy admiring the prose to realise how dull and uneventful everything is. The repetition hammers away like a vocal tic - wearing out its welcome by the tenth occurrence. The mannered spelling, punctuation, and extemporising is similarly grating after a while.</p> <p>I don't mind characters being unsympathetic - but every single one is painted as a monster or a simpleton. It's hard to keep reading when nearly all the main characters are so relentlessly unlikeable. I know I'm not a big fan of sad or upsetting books, but there was so <em>little</em> joy or happiness in this one that I felt grimy reading it. Afterwards I was left wondering what the point of it was. I do not doubt that the depictions of casteism were well done but, again, to what end?</p> <p>I read this for a book club and wondered what my fellow readers made of it. All of us found it a challenging read, with most raising similar criticisms to mine. We all found the prose to be beautiful but the plot lacking. Only one of use gave it a positive review - but we all agreed it was a fascinating book to discuss.</p> <p>Perhaps we were all just philistines? Yet each of us came up with a compelling reason why we found it so unpalatable. There truly was something for everyone to complain about.</p> <img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=76302&HTTP_REFERER=Atom" alt width="1" height="1" loading="eager"> Weeknote #2024 - Robb Knight • Posts • Atom Feed https://rknight.me/blog/weeknote-2024/ 2026-10-30T11:06:00.000Z Robb Knight <p><a href="https://titleart.dvy.io">WordArt is back, baby</a>.</p> <figure><img src="https://cdn.rknight.me/site/2026/weeknotes-2024.jpg" alt="Weeknotes 2024 written in WordArt" /></figure> <p>This is fun. Put in a postcode or area and <a href="https://edjefferson.com/localwiki/">Local Wikipedia</a> shows you articles local to you.</p> <p><a href="https://www.postmarkgames.com/games">Postmark</a> make games that are printable and just need common game components like cards or dice to play. Neat.</p> <p>Wonders of Web Weaving, a podcast I was a guest on back <a href="https://rknight.me/blog/i-was-a-guest-on-web-weaving/">in August</a>, has <a href="https://web-weaving.jamesg.blog/25">just published it's 25th and final episode</a>. James has some <a href="https://jamesg.blog/2026/10/27/www-bts">behind the scenes</a> info here about the show.</p> <p><a href="https://shep.online">Shep</a>, a prolific maker of web things, posted about <a href="https://instantfail.me">Instant Fail</a> which is a soundboard of fail sounds and that led me to find his <a href="https://dumbfun.lol/F16bit/">F16 Bit</a> project — "<em>Real Formula 1 race data, redrawn as a 16-bit arcade broadcast</em>". So good.</p> <p><a href="https://www.youtube.com/watch?v=Z-NTmezsVds">Stupid game trailer made me feel things</a>.</p> <p>Lou <a href="https://mastodon.social/@loucyx/117516068666699626">reminded me I needed to do my llms.txt</a>. So <a href="/llms.txt">I did</a>.</p> <p>The <a href="https://www.youtube.com/watch?v=nIw1O3zvOfE">trailer for the new Jumanji</a> dropped and it looks as stupid as ever. I can't wait.</p> <p>I learned about <a href="https://www.psalty.com">Psalty</a> and I can never unsee it.</p> Proton is AI-pilled and calls caution "loser thinking". - Werd I/O 6ae40e3c55c15e0001ad06e9 2026-10-30T03:25:48.000Z Werd I/O <p>Link: <a href="https://www.404media.co/manifestos-fear-and-loser-thinking-inside-protons-ai-reckoning/"><em>Manifestos, Fear, and ‘Loser Thinking’: Inside Proton’s AI Reckoning, by Joseph Cox at 404 Media</em></a></p><p>Proton is a service based in Switzerland that offers encrypted email, file storage, calendars, and more. It markets itself as a privacy-oriented alternative to Google Workspace, based in a neutral territory that is generally outside of the jurisdiction of the United States. I’ve generally been glad that it exists — but stories like this give me pause.</p><p><a href="https://www.404media.co/manifestos-fear-and-loser-thinking-inside-protons-ai-reckoning/">404 Media reports</a>:</p><blockquote>“Our reporting also paints a picture of Proton that is likely very different to the public’s perception of a company with a goal of carefully protecting privacy: one that in reality is barreling ahead with AI as quickly as possible so it can achieve the explicit goal of more annual revenue.”</blockquote><p>CEO Andy Yen comes across as a bully who is pushing his staff to adopt AI as quickly as possible in order to maximize Proton’s revenue because its ARR was slipping. That’s not an approach you would hope a security-oriented, encryption-based organization would take.</p><p>This follows an unwise decision <a href="https://theintercept.com/2025/01/28/proton-mail-andy-yen-trump-republicans/">to praise a Trump nomination at the beginning of his second administration</a>. Yen said it wasn’t intended as a political statement. I don’t think that he’s necessarily a Trump supporter, but it was part of a series of incidents that follow a troubling pattern: an action that undercuts Proton’s brand and stated values, followed by defensive excuses. It <a href="https://theintercept.com/2025/09/12/proton-mail-journalist-accounts-suspended/">suspended journalist accounts at the request of a cybersecurity agency</a> and then called the outcry “blown out of proportion”; it <a href="https://www.theregister.com/2024/05/13/infosec_in_brief/">handed over the recovery email address for a Catalan activist</a>, an iCloud address that led to Apple providing their full personal information, and said its hands were tied.</p><p>And then there’s this:</p><blockquote>“Andy Yen, the CEO of Proton, had a message for an employee in the company’s security Slack channel who urged the company to at least take a few days to pentest newly written code before pushing it live. “That’s bullshit and loser thinking. Of course it’s possible to be fast and secure,” Yen wrote in the channel at the end of August. “Stop thinking always of how to be slower, and focus more on how to be faster.””</blockquote><p>Services like Proton need to exist. Privacy is an important prerequisite to democracy: it protects journalists, activists, vulnerable communities, and everyone’s ability to live well and with dignity. But it’s a serious business. A move-fast culture of bullying that apes startup-land and calls caution “loser thinking” does not instill confidence, and implies it’s only a matter of time before something much worse happens.</p> Proton is AI-pilled and calls caution "loser thinking". - Werd I/O 6ae40cc055c15e0001ad06d1 2026-10-30T03:21:00.000Z Werd I/O <p>Link: <a href="https://www.404media.co/manifestos-fear-and-loser-thinking-inside-protons-ai-reckoning/" rel="noreferrer"><em>Manifestos, Fear, and ‘Loser Thinking’: Inside Proton’s AI Reckoning, by Joseph Cox at 404 Media</em></a></p><p>Proton, based in Switzerland, offers encrypted email, file storage, calendars, and more. It markets itself as a privacy-oriented alternative to Google Workspace, based in a neutral territory that is generally outside of the jurisdiction of the United States. I’ve generally been glad that it exists — but stories like this give me pause.</p><p><a href="https://www.404media.co/manifestos-fear-and-loser-thinking-inside-protons-ai-reckoning/">404 Media reports</a>:</p><blockquote>“Our reporting also paints a picture of Proton that is likely very different to the public’s perception of a company with a goal of carefully protecting privacy: one that in reality is barreling ahead with AI as quickly as possible so it can achieve the explicit goal of more annual revenue.”</blockquote><p>CEO Andy Yen comes across as a bully who is pushing his staff to adopt AI as quickly as possible in order to maximize Proton’s revenue because its ARR was slipping. That’s not an approach you would hope a security-oriented, encryption-based organization would take.</p><p>This follows an unwise decision <a href="https://theintercept.com/2025/01/28/proton-mail-andy-yen-trump-republicans/">to praise a Trump nomination at the beginning of his second administration</a>. Yen said it wasn’t intended as a political statement. I don’t think that he’s necessarily a Trump supporter, but it was part of a series of incidents that follow a troubling pattern: an action that undercuts Proton’s brand and stated values, followed by defensive excuses. It <a href="https://theintercept.com/2025/09/12/proton-mail-journalist-accounts-suspended/">suspended journalist accounts at the request of a cybersecurity agency</a> and then called the outcry “blown out of proportion”; it <a href="https://www.theregister.com/2024/05/13/infosec_in_brief/">handed over the recovery email address for a Catalan activist</a>, an iCloud address that led to Apple providing their full personal information, and said its hands were tied.</p><p>And then there’s this:</p><blockquote>“Andy Yen, the CEO of Proton, had a message for an employee in the company’s security Slack channel who urged the company to at least take a few days to pentest newly written code before pushing it live. “That’s bullshit and loser thinking. Of course it’s possible to be fast and secure,” Yen wrote in the channel at the end of August. “Stop thinking always of how to be slower, and focus more on how to be faster.””</blockquote><p>Services like Proton need to exist. Privacy is an important prerequisite to democracy: it protects journalists, activists, vulnerable communities, and everyone’s ability to live well and with dignity. But it’s a serious business. A move-fast culture of bullying that apes startup-land and calls caution “loser thinking” does not instill confidence, and implies it’s only a matter of time before something much worse happens.</p>