Shellsharks Blogroll - BlogFlock https://blogflock.com/list/xJ8yq 2026-09-18T19:43:11.000Z BlogFlock shellsharks What a time to be alive - The Weblog of fLaMEd https://flamedfury.com/posts/what-a-time-to-be-alive/ 2026-09-18T19:43:11.000Z fLaMEd <p>What’s going on, Internet? Today just seems like one of those days. It’s Friday evening and I’m standing here at my desk with a beer, messing with the blog. Placeholding some later posts that I meant to write but time got away on me. Listening to new music, playing new computer games, and watching new favourite old TV shows.</p> <p>Kids are in bed, and asleep.</p> <p>New golf clubs arrived. I got to have a swing at the range.</p> <p>New Miley Cyrus album. <a href="https://flamedfury.com/posts/miley-cyrus-whats-going-on/">I was onto something</a>, wasn’t I? Check out <a href="https://www.youtube.com/watch?v=aWpw-Ynl0Yc" rel="noopener">Bass Persuades</a>, and the second single <a href="https://www.youtube.com/watch?v=qwaVhOZkAek" rel="noopener">Let’s Get Married</a>.</p> <p>Blizzcon was last weekend. New Warcraft III expansion, <a href="https://www.youtube.com/watch?v=I1kXClUCyuA" rel="noopener">Forsaken Kingdom</a>. Which sets the story for the new World Of Warcraft game; <a href="https://www.youtube.com/watch?v=xXaXYxcbA6A" rel="noopener">Forever</a>.</p> <p>New South Park, with a new <a href="https://www.youtube.com/watch?v=KEO7R_EgpUo" rel="noopener">intro song</a>. Let’s hope it’s less whatshisface this year.</p> <p>And don’t mind those blank posts you’ve seen pop up in the feed, I’m staging them as a encouragement for me to finish writing them.</p> <p>Hey, thanks for reading this post in your feed reader! Want to chat? <a href="mailto:hello@flamedfury.com?subject=RE: What a time to be alive">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/what-a-time-to-be-alive/#webmention">webmention</a>. Check out the <a href="https://flamedfury.com/posts/">posts archive</a> on the website.</p> London Hardhouse Reunion 2026 - The Weblog of fLaMEd https://flamedfury.com/posts/london-hardhouse-reunion-2026/ 2026-09-18T19:08:30.000Z fLaMEd <p>What’s going on, Internet? Later post. Write me.</p> <p>Hey, thanks for reading this post in your feed reader! Want to chat? <a href="mailto:hello@flamedfury.com?subject=RE: London Hardhouse Reunion 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/london-hardhouse-reunion-2026/#webmention">webmention</a>. Check out the <a href="https://flamedfury.com/posts/">posts archive</a> on the website.</p> Open Tabs August 2026 - The Weblog of fLaMEd https://flamedfury.com/posts/open-tabs-august-2026/ 2026-09-18T19:01:52.000Z fLaMEd <p>What’s going on, Internet? If you don’t folllow 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 August. Enjoy.</p> <ul class="list"> <li><a href="https://mouseling.net/posts/2025-09-12-hypertextmuckup" rel="noopener">MOUSELING.net - Hyper Text Muck-up Language</a> Solid tips for budding webmasters</li> <li><a href="https://www.goodinternetmagazine.com/the-web-we-lost/" rel="noopener">Welcome to the web we lost</a> Sacha Judd tracing the good internet through X-Files fandom and webrings, and it’s still out there in the corners.</li> <li><a href="https://time.com/article/2026/05/07/how-to-fix-the-internet/" rel="noopener">How to Fix the Internet</a> Not everything is fine on the Internet, but there’s an opportunity, and it starts with choosing what you pay attention to yourself.</li> <li><a href="https://hawksley.org/2026/02/17/timeframe.html" rel="noopener">How I built Timeframe, our family e-paper dashboard - Joel Hawksley</a> Definitely keen to build one of these for our home! So cool!</li> <li><a href="https://www.pcgamer.com/games/action/conceived-in-a-secure-military-facility-this-jedi-knight-fansite-has-been-running-consistently-for-almost-30-years-it-looks-really-close-to-what-it-did-back-in-1998/" rel="noopener">Conceived in a secure military facility, this Jedi Knight fansite has been running consistently for almost 30 years: ‘It looks really close to what it did back in 1998’ | PC Gamer</a> A community site for Star Wars Jedi Knight: Dark Forces II, still active and still looking like 1998.</li> <li><a href="https://notes.jordanscales.com/its-a-website" rel="noopener">It’s just a website</a> The humble website 😃</li> <li><a href="https://turbiegaming.bearblog.dev/i-wonder-how-many-is-too-many-when-it-comes-to-adding-pages/" rel="noopener">I Wonder How Many is Too Many When it Comes to Adding Pages – The Land Where Turbie Posts</a> How many pages is too many? As many as you want 😃</li> <li><a href="https://owlhari.neocities.org/shrines/guide/" rel="noopener">owls’ guide to webshrines</a> A sweeet practical guide for creating your own “shrines”, mini sites for any one of your interests.</li> <li><a href="https://fanhosting.co.uk/creating-a-successful-fansite-a-comprehensive-guide/" rel="noopener">Creating a Successful Fansite: A Comprehensive Guide</a> A comprehensive guide for getting started creating your own fansite. Go build one.</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 August 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-august-2026/#webmention">webmention</a>. Check out the <a href="https://flamedfury.com/posts/">posts archive</a> on the website.</p> Beervana 2026 - The Weblog of fLaMEd https://flamedfury.com/posts/beervana-2026/ 2026-09-18T18:59:28.000Z fLaMEd <p>What’s going on, Internet? Later post. Write me.</p> <p>Hey, thanks for reading this post in your feed reader! Want to chat? <a href="mailto:hello@flamedfury.com?subject=RE: Beervana 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/beervana-2026/#webmention">webmention</a>. Check out the <a href="https://flamedfury.com/posts/">posts archive</a> on the website.</p> Gaming in public - Joel's Log Files https://joelchrono.xyz/blog/gaming-in-public 2026-09-17T23:00:00.000Z joelchrono <p>When was the last time you were standing somewhere public, took the phone out of your pocket, scrolled on some app for a while, and then left it, and moved on?</p> <p>When was the last time you did that while still walking? perhaps almost crashing on someone in front of you?</p> <p>Even if you haven’t done that yourself—I’m very sure you have seen some other people staring at those phone screens, even when others are present, without really thinking much about it.</p> <p>It is normalized behavior. At the end of the day, one shouldn’t really care about it very much.</p> <p>However, it seems like when it comes to videogame handhelds, things feel a little different…</p> <p>After all, when was the last time you played on a handheld console in public, or saw someone else doing so?</p> <p>It’s like something in our heads tells us that you shouldn’t be gaming when others are seeing. Is it a sense of cringe? as if it would ruin our public image? making us seem childish or immature?</p> <p>Obviously things have a time and a place, but it does seem like even people who are otherwise big into gaming can get self-conscious about others knowing that’s the case.</p> <p>Yesterday my family went to the supermarket. My father and I went to the clothing section. I was done putting my stuff on my cart, so I was waiting on the others to be done. That’s when I remembered I had my Play Station Portable on my pocket, since I suddenly decided to return to <em>Final Fantasy IV</em> on the car trip there.</p> <p>So I pull out the device, I flick up the power switch, and in a second, I was able to resume my exploration of the <em>Lair of the Father</em>, located somewhere on the Moon, experiencing the quintessential ATB combat the series is known for.</p> <p>I continue playing, defeating some of the toughest enemies in the game, teleporting out of the dungeon to heal up and venturing back into danger, almost managing to reach the last boss. By the time I realized, I was standing there, looking down at my PSP and having the time of my life, even walking back and forth on the aisles with the victory fanfare playing at full volume while I reap my rewards.</p> <p>And you know what? Nobody cared that much, and I don’t care about what they say either!</p> <p>Looking through the shirts in the aisles, I saw a couple with cool graphics, one of them had design of a retro-looking NES controller, even my dad pointed it out it was there, but nah, wearing that in public would be way too embarrassing for me ;)</p> <figure> <img src="/assets/img/blogs/2026-09-17-psp.webp" /> <figcaption>My PSP displaying the game. I was not bold enough to take a picture of me actually playing this on the supermarket, apologies</figcaption> </figure> <p>This is day 38 of <a href="https://100DaysToOffload.com">#100DaysToOffload</a></p> <p> <a href="mailto:me@joelchrono.xyz?subject=Gaming in public">Reply to this post via email</a> | <a href="https://fosstodon.org/@joel/117288946100776212">Reply on Fediverse</a> </p> Agent email is spam - Posts feed https://www.coryd.dev/posts/2026/agent-email-is-spam 2026-09-17T22:57:00.000Z Posts feed <div class="e-content block-subcanvas"><p>I've been getting more email from agents lately and it's all both formulaic and irritating. My favorites (sarcasm) are the ones that cite a post where I explain a problem I'd already solved and then offer me a solution. They all read the same: polite, bland, slop.</p> <p>Agent email lives at the intersection of slop and spam. Nobody wants to read or receive either.</p> <p>I have a running sieve rule that I expect to grow and it looks like this:</p> <pre class="code-block"><code>if address :domain :matches "from" ["ilands.app", "*.ilands.app", "robotomail.co", "*.robotomail.co", "agentmail.to", "*.agentmail.to", "agentsmail.org", "*.agentsmail.org", "agentsmail.net", "*.agentsmail.net"] { fileinto :create "Junk"; stop; } </code></pre> <p>I expect this to grow as I find more slop spam (slam?) purveyors. It's clearly a problem that's only going to get worse, much like crawlers. I guess this post doesn't have a solution, but please, dear clankers, don't offer me one.</p> </div> Favorite origami I've memorized - Joel's Log Files https://joelchrono.xyz/blog/favorite-memorized-origami 2026-09-17T19:10:00.000Z joelchrono <p>As my blog has developed over time, somehow I ended up writing about reading, videogames and technology above all, but the J in my logo is themed after folded paper for a reason.</p> <p>I love origami! And it was about time I wrote about it some more. My story with it and the like will have to wait for later, at the moment, I just want to focus on the title of this blogpost.</p> <p>On a very lovely email, a reader of my blog asked me this:</p> <blockquote> <p>What’s a model you still enjoy folding even though you’ve long since figured it out?</p> </blockquote> <p>I would like to say that to me this question has a couple of premises that don’t really apply to me!</p> <p>“Figuring out” a model isn’t really something I think about? Like, I either memorize the folding steps/crease pattern, or I don’t, and I just follow the diagram and not worry too much. My assumption is that what you mean is memorization here, so I’ll only focus on models I can do on a whim without looking at some instructions online.</p> <p>I enjoy when the final result looks traditional, if I can fold it in under 20 minutes, or if it takes me 2 hours, I don’t really mind, as long as the design looks effortless. Unfortunately I can’t quite memorize all the steps of some of my favorites, but there’s still plenty of options to choose from.</p> <p>And because there are so many options, I’m not going to share just one favorite, but five of them!</p> <h2 id="dollar-bill-camera-by-won-park">Dollar Bill Camera by Won Park</h2> <p><img src="/assets/img/blogs/2026-09-17-camera.webp" alt="camera" /></p> <p>When it comes to orgami made with dollar bills, few models get close to this one. This is such a simple design that only takes a few steps to fold, and the last result is extremely pretty and instantly recognizable.</p> <p>The only caveat for this design, in my opinion, is the way the camera lens is kept in shape. It is just very reliable, and will often slowly unfold, unless you use a clip or something to keep it together. Making the model with a bigger paper helps fix this though, although it looks less impressive than using an actual bill-sized sheet.</p> <p>Diagram found at <em>Dollar Origami</em> by Won Park</p> <h2 id="dollar-caterpillarfireworks-by-jeremy-shafer">Dollar Caterpillar/Fireworks by Jeremy Shafer</h2> <p><img src="/assets/img/blogs/2026-09-17-fireworks.webp" alt="fireworks" /></p> <p>Jeremy Shafer is one of the most prolific designers and very active on YouTube. This model of his is extremely entertaining to make, consisting of a rather easy pattern done over and over again! It was one of the first models I learned how to do from a YouTube tutorial, and I remember making dozens of them for my friends.</p> <p>After all, this is fun to fold, and it doubles as an amazing fidget toy to have at the office or the school desk or wherever.</p> <p><a href="https://www.youtube.com/watch?v=RyWIRl-xlQE">Video Tutorial freely available</a></p> <h2 id="full-rigged-ship-by-patricia-crawford">Full-Rigged Ship by Patricia Crawford</h2> <p><img src="/assets/img/blogs/2026-09-17-ship.webp" alt="ship" /></p> <p>Perhaps this is one where I may consult a diagram for a certain step, but I still had to include it as a favorite. This is one of the best looking designs I have seen, and to think that it’s only a few steps beyond a traditional bird base boggles my mind.</p> <p>Doing this with a big dual-sided sheet is an absolute treat, you can fold this and put it on a stand, this one is an artpiece and a joy to fold as well, unless you go too small, since some paper layers can overlap and thicken it a bit. No matter, a truly gorgeous model.</p> <p>Diagram found on <em>Creating Origami</em> by J.C. Nolan</p> <h2 id="rat-by-eric-joisel">Rat by Eric Joisel</h2> <p><img src="/assets/img/blogs/2026-09-17-rat.webp" alt="rat" /></p> <p>If something that comes from a bird base sounds impressive, a design made from the fish base, and from none other than Eric Joisel. This guy was a beast, you only need to look up the work he did during his lifetime to understand.</p> <p>The Rat is easily on my top 5 of all time, memorized or not. The fact that I can fold it by memory is only a blessing for me. It can suffer a bit when done with thick office paper though, this one definitely deserves to be made with quality origami sheets. This is a true piece of art and the artist behind it was one of a kind.</p> <p><a href="https://www.happyfolding.com/files/Joisel-Rat_0.pdf">Origami Diagram freely available</a></p> <h2 id="origami-human-by-claudio-acuña-j">Origami Human by Claudio Acuña J.</h2> <p><img src="/assets/img/blogs/2026-09-17-human.webp" alt="human" /></p> <p>However, if there is one model that I can do with my eyes closed, over and over again, this one has to be it! This is my most folded model ever, I’m sure. It was not just entertaining to fold, but super fun to play with!</p> <p>After all, you basically had a super cheap, barebones action figure you could play with without worrying about anything at all. I did this every single day at school, I carried one with me during trips.</p> <p>In my mind, this model turned into a superhero, doing parkour on the walls and dodging bullets in slow motion—there was just no limit to my imagination!</p> <p><a href="https://www.youtube.com/watch?v=fmiNk5An00k">Video Tutorial freely available</a></p> <h2 id="finishing-thoughts">Finishing thoughts</h2> <p>Joisel’s Rat may be my favorite masterpiece to show off what origami is capable to look like, but toy-like nature and simplicity of Acuña’s model was just enough to make it a favorite for me, and the design I’ve folded more than anything else in the list, and maybe second of all time, only behind the traditional crane.</p> <p>I took the time to link tutorials for some of these models when they are available with the author’s permission.</p> <p>If you read this, let me know if you also do origami, and what your favorite model to fold by memory is! Did you know the ones I showed here, or was any of these a surprise? Happy to talk more about it.</p> <p>This is day 37 of <a href="https://100DaysToOffload.com">#100DaysToOffload</a></p> <p> <a href="mailto:me@joelchrono.xyz?subject=Favorite origami I've memorized">Reply to this post via email</a> | <a href="https://fosstodon.org/@joel/117288024578515017">Reply on Fediverse</a> </p> Pen N Review - Robb Knight • Posts • Atom Feed https://rknight.me/blog/pen-n-review/ 2026-09-17T12:30:00.000Z Robb Knight <p>Back in July I broke own rule of never backing a hardware Kickstarter and backed a hardware Kickstarter for a <a href="https://www.kickstarter.com/projects/antou/penn-minimal-by-design-built-for-versatile-writing/description">Pen N</a> — a pen that supports <a href="https://docs.google.com/spreadsheets/d/1rn92Q2QfAQGHrn2EXhfDBHUF2MPFzFOB-Cb0IEzsDio/edit?gid=0#gid=0">100s of refills</a> with a universal clamp that screws into the barrel. I paid $55 for it plus another $20 for shipping.</p> <figure><img src="https://cdn.rknight.me/site/2026/pen-n-pen-only.jpg" alt="A silver pen with an orange clip on a green cutting board" /><figcaption>I paid the extra $5 for the orange clip because I was feeling fancy</figcaption></figure> <p>When it arrived I tried it with a bunch of different refills I had including zento, jetstream, Muji, and they all worked great. No wobbling, exactly as described. It came with a Zebra gel refill which is the one I've kept in it for the past week.</p> <p>As a pen for grabbing quickly to jot something down, it does the trick but as a pen for writing for long periods of time it's not ideal - this pen is <em>thick</em>. There's no tapering towards the tip so you're just holding a heavy metal sausage<sup class="footnote-ref"><a href="#fn1" id="fnref1">[1]</a></sup>. I could only get through the first verse of Michelle Branch's classic "Everywhere" before I stopped filling in the page because it wasn't comfortable.</p> <figure><img src="https://cdn.rknight.me/site/2026/pen-n-writing-sample.jpg" alt="A notepad with a metal pen on top of it. The writing is the first verse to Michelle Branch Everywhere, noted at the top of the page" /><figcaption>Because you're everywhereeeeeeeeee to me 🎵</figcaption></figure> <p>2026 being <a href="https://rknight.me/notes/202608122206/">the year of pens on carabiners</a>, I opted to pay for the Pen N leather sheath. The pen slips into the sheath, clips in at the top, then can be pulled out the bottom leaving the cap in place near the carabiner hole. Right out the packaging, this was a really tight fit and almost impossible to use but with some finessing and squeezing I was able to loosen the leather up a bit and it works nicely now. This is the spot I like the Pen N the most — as a pen I can clip to my bag and grab it when I need it.</p> <figure><img src="https://cdn.rknight.me/site/2026/pen-n-unsheathed.jpg" alt="A leather sleeve and pen on a green cutting board. The leather sleeve has a carabiner attached to it" /><figcaption>Unsheathed and ready to write</figcaption></figure> <p>This is a well built pen and the sheath is great but the lack of tapering on the end makes this a pretty uncomfortable pen to use for me so I suspect this is just going to live in my bag or my car for those occasions where I need a pen in a pinch.</p> <figure><img src="https://cdn.rknight.me/site/2026/pen-n-comparison.jpg" alt="Four pens of different sizes on a cutting board showing the size different between the Pen N and the other pens" /></figure> <hr class="footnotes-sep" /> <section class="footnotes"> <ol class="footnotes-list"> <li id="fn1" class="footnote-item"><p>Also the name of my Metallica cover band <a href="#fnref1" class="footnote-backref">⤾</a></p> </li> </ol> </section> On (disabling) suggested filenames on macOS 27 - James' Coffee Blog https://jamesg.blog/2026/09/17/macos-suggested-filenames 2026-09-17T00:00:00.000Z James' Coffee Blog <p>This week I was writing a story and noticed something strange: I didn’t give the document a title, but, after saving it, the document had a title that I did not expect. If I don’t have a name for a story yet, or if I am doing free writing, I will often not give a document a title, instead allowing the default behaviour in the tool I use to write, <a href="https://typora.io">Typora</a>, which is to take the first few words or maybe sentence of the document, or the first line. In the case of markdown, the first line is almost always my title, and so this default behaviour worked out well; where the first line was a paragraph, the first part of the document was taken as the title.</p> <p style="text-align: center;">⁂ ⁂ ⁂</p> <p>As a writer, every detail of my words matter to me: the punctuation, the grammar, the italics, the capitals (or lack thereof) the titles. Everything has meaning. When I noticed the unfamiliar title, I was displeased, because I am used to the software working in a certain way. If I don’t have a title, a fragment of the start of the document should be taken. I don’t want a “Suggested” title. I want a predictable title I set or one taken from the first few words of the piece, as was the previous behaviour.</p> <p>Today I think I finally figured out why the document title had changed. macOS 27 has a feature called “Suggest file names”, whose description, listed in the Finder Settings, reads:</p> <blockquote> <p>Suggested names when renaming, saving and editing files are based on file content and the names of other files in the folder.</p> </blockquote> <p>The suggested name for this document is “Typora Document” :facepalm:</p> <p>Here is a screenshot I took of an earlier post I was planning to draft where I finally saw the behaviour in action:</p> <p><figure><picture><img alt='A screenshot of an open Typora window with a heading on the first line of the document that says "Upcoming web and writing events" but a "Suggested" title at the top of the window that reads "Web and Writing Events"' loading="lazy" src="https://jamesg.blog/assets/uploads/suggestedtitle.png" style=" max-width: 130%;"/></picture><div class="alt"><label><input aria-label="Toggle image alt text on screen" type="checkbox"/>ALT</label><div class="content">A screenshot of an open Typora window with a heading on the first line of the document that says "Upcoming web and writing events" but a "Suggested" title at the top of the window that reads "Web and Writing Events"</div></div></figure></p> <p>I found a <a href="https://www.reddit.com/r/MacOS/comments/1wia14h/settings_to_disable_some_ai_features_in_macos_27/">Reddit thread with instructions on how to disable the feature</a>, which offers the following instructions to disable suggested file names (bold text removed):</p> <blockquote> <p>Finder → Settings → General → uncheck Suggest file names.</p> </blockquote> <p>I have disabled this feature, and do not intend on turning it back on.</p> <p style="text-align: center;">⁂ ⁂ ⁂</p> <p>Encountering this “feature” was jarring to me because it violated my long-learned expectations of how the software I use to write every day, and have used for years, works. In this case it appears as if the suggestions for the title were coming from the system, which are doubly concerning.</p> <p>Indeed, it took me a while to figure out exactly what was going on. I looked at Typora’s documentation earlier today and saw their latest major update was on the <a href="https://support.typora.io/what%27s-new/">19th of July 2026</a>. That ruled out Typora. Then I did some digging and found reports of this related to macOS in general, the aforementioned Reddit thread informing me that what I had run into was an implemented system feature.</p> <p>I don’t usually write about my qualms with software: there are many other things about which I would rather write. But this one was so close to the heart of what I do. I reiterate: I don’t want my computer to “suggest” titles. How I title a document is a decision I want to make personally, and should never have to assume will be “suggested”.</p> <p style="text-align: center;">⁂ ⁂ ⁂</p> <p>Post Script —— I don't like posting negative things; this post is an aberration in tone compared to my other writings. I would be dismayed if you left this page feeling frustrated. Intead, I want you to leave reading this post with something more fun and interesting to think about. If you have time, maybe you would like to <a href="https://web-weaving.jamesg.blog">listen to a podcast about all the amazing things people are doing on the indie web</a>, or a take the <a href="https://jamesg.blog/2026/09/14/eight-bit-day">challenge to make a tiny web page in celebration of 8-Bit Day</a> (since passed, but it's still a fun challenge), or read a <a href="https://jamesg.blog/2026/09/13/the-coffee">story about a delicious cup of coffee I had recently</a>, or print <a href="https://jamesg.blog/2026/09/05/creative-web-guide-zine">a zine about personal websites and share it with your friends or community members</a>, or participate in <a href="https://jamesg.blog/2026/09/01/iwfc-moonlight">this month's IndieWeb Fiction Carnival</a>.</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:'a3c9322968794756',t:'MTc4OTY1OTQ4NQ=='};var a=document.createElement('script');a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';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://jamesg.blog/2026/09/01/iwfc-moonlight">this month's IndieWeb Fiction Carnival</a> <a class="tag" href="https://jamesg.blog/2026/09/05/creative-web-guide-zine">a zine about personal websites and share it with your friends or community members</a> <a class="tag" href="https://jamesg.blog/2026/09/13/the-coffee">story about a delicious cup of coffee I had recently</a> <a class="tag" href="https://jamesg.blog/2026/09/14/eight-bit-day">challenge to make a tiny web page in celebration of 8-Bit Day</a> <a class="tag" href="https://support.typora.io/what%27s-new/">19th of July 2026</a> <a class="tag" href="https://typora.io">Typora</a> <a class="tag" href="https://web-weaving.jamesg.blog">listen to a podcast about all the amazing things people are doing on the indie web</a> <a class="tag" href="https://www.reddit.com/r/MacOS/comments/1wia14h/settings_to_disable_some_ai_features_in_macos_27/">Reddit thread with instructions on how to disable the feature</a> Apple Notes now available in the LAS/SBS downloads - Johnny.Decimal https://johnnydecimal.com/blog/0251-apple-notes-download/ 2026-09-16T23:27:16.000Z Johnny.Decimal <p>Our pre-built systems, which come with files for you to build your JDex, have never supported Apple Notes. I tried! You've no idea how hard I tried. But previous versions of Notes just didn't have an import feature that worked. I mean it <em>worked</em> but your notes ended up in 8pt Times New Roman, it looked ridiculous.</p> <p>Well <em>finally</em> Apple spent some of that $5 trillion and they built an import feature that doesn't suck! Yay. You need to be on Tahoe (26) or above – I'm stuck here on Sequoia because I refuse to have Liquid Glass in my life.</p> <p>Anyway. There you go. It's in the folder of JDex downloads, let me know if you have any problems with it. There's a <a href="https://discord.com/channels/822215537589354566/1274252172707495958/1549598025897218109">Discord thread here</a>.</p> How to get a DOI for your blog posts - Terence Eden’s Blog https://shkspr.mobi/blog/?p=74717 2026-09-16T11:34:28.000Z Terence Eden’s Blog <p>Each new post on this blog now has a <a href="https://www.doi.org/">Digital Object Identifier</a>. This post looks at the how and the why of getting one, whether it is useful, and any issues you might experience if you go down this path.</p> <p></p><nav role="doc-toc"><menu><li><h2 id="table-of-contents"><a href="https://shkspr.mobi/blog/2026/09/how-to-get-a-doi-for-your-blog-posts/#table-of-contents">Table of Contents</a></h2><menu><li><a href="https://shkspr.mobi/blog/2026/09/how-to-get-a-doi-for-your-blog-posts/#background">Background</a></li><li><a href="https://shkspr.mobi/blog/2026/09/how-to-get-a-doi-for-your-blog-posts/#getting-a-doi-the-easy-way">Getting a DOI the easy way</a></li><li><a href="https://shkspr.mobi/blog/2026/09/how-to-get-a-doi-for-your-blog-posts/#lets-go-rogue">Let's Go Rogue!</a></li><li><a href="https://shkspr.mobi/blog/2026/09/how-to-get-a-doi-for-your-blog-posts/#automatic-submission-of-new-content">Automatic Submission of New Content</a></li><li><a href="https://shkspr.mobi/blog/2026/09/how-to-get-a-doi-for-your-blog-posts/#manual-submission-of-old-content">Manual Submission of Old Content</a></li><li><a href="https://shkspr.mobi/blog/2026/09/how-to-get-a-doi-for-your-blog-posts/#getting-the-doi">Getting the DOI</a></li><li><a href="https://shkspr.mobi/blog/2026/09/how-to-get-a-doi-for-your-blog-posts/#generating-your-own-doi">Generating your own DOI</a></li><li><a href="https://shkspr.mobi/blog/2026/09/how-to-get-a-doi-for-your-blog-posts/#making-the-doi-discoverable-in-html">Making the DOI discoverable in HTML</a></li><li><a href="https://shkspr.mobi/blog/2026/09/how-to-get-a-doi-for-your-blog-posts/#downsides">Downsides</a><menu><li><a href="https://shkspr.mobi/blog/2026/09/how-to-get-a-doi-for-your-blog-posts/#loss-of-control">Loss of Control</a></li><li><a href="https://shkspr.mobi/blog/2026/09/how-to-get-a-doi-for-your-blog-posts/#tracking-citations">Tracking Citations</a></li><li><a href="https://shkspr.mobi/blog/2026/09/how-to-get-a-doi-for-your-blog-posts/#licencing">Licencing</a></li><li><a href="https://shkspr.mobi/blog/2026/09/how-to-get-a-doi-for-your-blog-posts/#verification">Verification</a></li><li><a href="https://shkspr.mobi/blog/2026/09/how-to-get-a-doi-for-your-blog-posts/#excluding-content">Excluding Content</a></li><li><a href="https://shkspr.mobi/blog/2026/09/how-to-get-a-doi-for-your-blog-posts/#deleting-content">Deleting Content</a></li><li><a href="https://shkspr.mobi/blog/2026/09/how-to-get-a-doi-for-your-blog-posts/#affiliations">Affiliations</a></li><li><a href="https://shkspr.mobi/blog/2026/09/how-to-get-a-doi-for-your-blog-posts/#more-vanity">More Vanity</a></li><li><a href="https://shkspr.mobi/blog/2026/09/how-to-get-a-doi-for-your-blog-posts/#humility">Humility</a></li></menu></li><li><a href="https://shkspr.mobi/blog/2026/09/how-to-get-a-doi-for-your-blog-posts/#is-it-worth-it">Is it worth it?</a></li></menu></li></menu></nav><p></p> <h2 id="background"><a href="https://shkspr.mobi/blog/2026/09/how-to-get-a-doi-for-your-blog-posts/#background">Background</a></h2> <p>A few years ago, I documented <a href="https://shkspr.mobi/blog/2021/09/how-to-add-issn-metadata-to-a-web-page/">how to to get an International Standard Serial Number for a blog</a>. An ISSN uniquely identifies a publication, which makes it easier for scholars and researchers to reference it. Getting one depends a little on whether a national institution is willing to accept your application.</p> <p>Similarly, I also got an <a href="https://orcid.org/">ORCiD</a> which is used to uniquely identify researchers. That means it is possible to disambiguate "Einstein, A" the eminent physicist from "Einstein, A" a lovely chap called Allen who researches invasive slugs in Paraguay.</p> <p>My blog posts are <a href="https://shkspr.mobi/blog/citations/">regularly referenced in academic papers, books, conferences, and news articles</a>. The way most scholars cite a work is using a Digital Object Identifier. The idea is that a DOI is a unique and persistent code which can be used to refer to a specific article. If I ever stop using <code>shkspr.mobi</code> as my domain, or re-order my website, the DOI can be redirected to the article's new home. Future scholars will be able to follow a reference more easily than hoping <code>https://example.com/article123</code> still exists.</p> <h2 id="getting-a-doi-the-easy-way"><a href="https://shkspr.mobi/blog/2026/09/how-to-get-a-doi-for-your-blog-posts/#getting-a-doi-the-easy-way">Getting a DOI the easy way</a></h2> <p>If you're an academic, your institution will have a paid subscription to a service which will "mint" a new DOI for all your articles.</p> <p>If not, you can upload your paper to a service like arXiv and they'll mint a DOI for you. That's how <a href="https://shkspr.mobi/blog/2023/04/i-got-a-doi-from-arxiv-for-my-msc/">I got a DOI for my MSc</a>.</p> <p>What about people who aren't traditional academics or who want to keep their content on their own website? There are a variety of paid-for services, some of which charge an eye-watering amount of money to create a DOI for you.</p> <p>Or, there's Rogue Scholar.</p> <h2 id="lets-go-rogue"><a href="https://shkspr.mobi/blog/2026/09/how-to-get-a-doi-for-your-blog-posts/#lets-go-rogue">Let's Go Rogue!</a></h2> <p>So what is <a href="https://rogue-scholar.org/overview">Rogue-Scholar.org</a>?</p> <blockquote><p>Rogue Scholar is an open access archive and registry for science blogs. It preserves science blog posts, makes them citable via DOI, and ensures their long-term discoverability alongside formal scholarly literature.</p></blockquote> <p>Nifty! My blog <em>just about</em> sneaks in to their "Computer Science" category. They require you to have a full-text feed of your posts. You also need to licence your content to them as Creative Commons Attribution.</p> <p>Applying wasn't too difficult. I filled in their form, then jumped into their Slack. We had a bit of a discussion about what I needed to change in order to be approved.</p> <p>A few days later, I was live at <a href="https://rogue-scholar.org/communities/shkspr/">https://rogue-scholar.org/communities/shkspr/</a></p> <p>Which means, if you visit <a href="https://doi.org/10.59350/395ha-fss97">https://doi.org/10.59350/395ha-fss97</a> you'll be redirected to one of my blog posts.</p> <h2 id="automatic-submission-of-new-content"><a href="https://shkspr.mobi/blog/2026/09/how-to-get-a-doi-for-your-blog-posts/#automatic-submission-of-new-content">Automatic Submission of New Content</a></h2> <p>Rogue Scholar automatically polls my feed, ingests my content, and then mints a DOI for every new post they encounter. There's nothing manual I have to do.</p> <p>That's all very well for new content. But I have posts on here going <em>way</em> back to 1986. How can they get discovered and DOI'd?</p> <h2 id="manual-submission-of-old-content"><a href="https://shkspr.mobi/blog/2026/09/how-to-get-a-doi-for-your-blog-posts/#manual-submission-of-old-content">Manual Submission of Old Content</a></h2> <p>By default, Rogue Scholar ingested the 40 most recent posts from my blog. Actually, that's not quite accurate. It got the 40 most recently <em>updated</em> posts. As I'd recently edited a few older posts, they got themselves a DOI.</p> <p>I don't know how often Rogue Scholar polls my blog's feed. In my experiments, adding a new post resulted in a DOI being issued a couple of minutes after publication.</p> <p>At the moment, there doesn't seem to be an easy way to add older content. I'm working on a WordPress plugin to retroactively add DOIs and make them discoverable.</p> <h2 id="getting-the-doi"><a href="https://shkspr.mobi/blog/2026/09/how-to-get-a-doi-for-your-blog-posts/#getting-the-doi">Getting the DOI</a></h2> <p>The Rogue Scholar API is based on <a href="https://inveniordm.docs.cern.ch/reference/metadata/">InvenioDRM</a>.</p> <p>Retrieving the DOI via their API requires you to make an unauthenticated request to:</p> <p><code>https://rogue-scholar.org/api/records?q=metadata.identifiers.identifier%3A%22https%3A%2F%2Fexample.com%2Fwhatever%22</code></p> <p>That's your URl, wrapped in quotes, and the whole thing URl encoded. <a href="https://rogue-scholar.org/api/records?q=metadata.identifiers.identifier%3A%22https%3A%2F%2Fshkspr.mobi%2Fblog%2F2026%2F09%2Fthe-purpose-of-dns-is-to-spread-scams%2F%22">Visit this example</a>. You can also use your post's GUID.</p> <p>That gets back a rather detailed JSON document. The DOI is noted in several locations, but is easiest to find in hits→hits→0→links→doi</p> <p>It's important to note that <a href="https://rogue-scholar.org/help/versioning">Rogue Scholar generates <em>two</em> DOIs for your post</a>. One for the post, another for the specific version of the post. If you update a post, it should get a new DOI. That way someone can refer to the post where you said your favourite band was the Spice Girls and not the edited one where you changed it to say B*Witched.</p> <p>Alternatively, you can use the CrossRef search if you want to look at HTML results. See <a href="https://search.crossref.org/search/works?q=https%3A%2F%2Fshkspr.mobi%2Fblog%2F2026%2F09%2Fthe-purpose-of-dns-is-to-spread-scams%2F&from_ui=yes">this CrossRef example</a>.</p> <p>As an aside, once you have the DOI, it's possible to create a <em>short</em> DOI at <a href="https://shortdoi.org/">https://shortdoi.org/</a> - I'll be honest, I've never seen these in the wild and <a href="https://www.crossref.org/display-guidelines/#shortdoi">they are not recommended for use</a>. Nevertheless, the API is pretty simple - <a href="https://shortdoi.org/10.59350/395ha-fss97?format=json">https://shortdoi.org/10.59350/395ha-fss97?format=json</a> will return a shorter URl like <a href="https://doi.org/rnjj">https://doi.org/rnjj</a></p> <p>Finally, there's a "vanity" DOI for the entire blog. In my case <a href="https://doi.org/10.59350/shkspr"><code>10.59350/shkspr</code></a>.</p> <h2 id="generating-your-own-doi"><a href="https://shkspr.mobi/blog/2026/09/how-to-get-a-doi-for-your-blog-posts/#generating-your-own-doi">Generating your own DOI</a></h2> <p>Your blog posts can self-attest a DOI - when Rogue Scholar sees that in your Atom feed, it will register it on your behalf.</p> <p><a href="https://github.com/inveniosoftware/base32-lib/blob/master/base32_lib/base32.py">The code for generating a valid DOI</a> is relatively straightforward.</p> <ul> <li>Generate a random number between 0 and 1,099,511,627,775.</li> <li>Convert it to a Base 32 string.</li> <li>Add a two character checksum to the end.</li> <li>Prefix it with <code>10.59350/</code></li> </ul> <p>Your new DOI can be made discoverable in your Atom feed by adding this to a post:</p> <pre><code class="language-xml"><id>https://do.org/10.59350/12345-67890</id> </code></pre> <p>Shortly after publication, it will be "minted" and be linkable.</p> <h2 id="making-the-doi-discoverable-in-html"><a href="https://shkspr.mobi/blog/2026/09/how-to-get-a-doi-for-your-blog-posts/#making-the-doi-discoverable-in-html">Making the DOI discoverable in HTML</a></h2> <p>How do you semantically add a DOI to your HTML's metadata? By far the most popular citation manager is <a href="https://www.zotero.org/">Zotero</a>. They maintain <a href="https://www.zotero.org/support/dev/exposing_metadata">a page describing the metadata they look for</a>. According to them, this needs to be in your page's <code><head></code>:</p> <pre><code class="language-html"><meta name=citation_doi content=10..../...> </code></pre> <p>They don't say whether it requires the <code>https://doi.org/</code> prefix - but looking at <a href="https://www.mendeley.com/guides/information-for-publishers">Mendeley</a> and <a href="https://help.altmetric.com/en/articles/9806913">AltMetric</a>, it appears not.</p> <p>To use <a href="https://www.dublincore.org/specifications/dublin-core/dcmi-terms/terms/identifier/">DublinCore</a>, the <a href="https://help.altmetric.com/en/articles/9803009">AltMetric recommended syntax</a> is:</p> <pre><code class="language-html"><meta name=DC.Identifier content=doi:10..../...> </code></pre> <p>Within the HTML, there's no specific Microdata syntax, but <a href="https://schema.org/ScholarlyArticle#eg-0399">Schema.org recommends the <code>sameAs</code> property</a>. Something like:</p> <pre><code class="language-html"><a itemprop="sameAs" href="https://doi.org/10.../...">10.../...</a> </code></pre> <h2 id="downsides"><a href="https://shkspr.mobi/blog/2026/09/how-to-get-a-doi-for-your-blog-posts/#downsides">Downsides</a></h2> <p>OK, it isn't all flowers and kittens. There are a few things you ought to know before proceeding down this path.</p> <h3 id="loss-of-control"><a href="https://shkspr.mobi/blog/2026/09/how-to-get-a-doi-for-your-blog-posts/#loss-of-control">Loss of Control</a></h3> <p>For the IndieWeb / ReDeCentralise / Self-Hosing crowd, it's important to realise that DOI is a somewhat centralised services. Yes, <a href="https://www.doi.org/the-community/existing-registration-agencies/">lots of different orgs can mint a DOI</a>, but as each ID has to be globally unique, doi.org sits in the middle as a benevolent gatekeeper. If DOI.org went bust or became evil, all the <code>https://doi.org/10....</code> links would die. There are many other services like <a href="https://datacite.org/">DataCite</a> and <a href="https://www.crossref.org/">CrossRef</a> which can resolve a DOI - but it might turn out to be a bit fragile.</p> <p>Similarly, if Rogue Scholar ever goes <em>properly</em> rogue then they can redirect my DOI to wherever they like. That level of control is useful if my site disappears; they can redirect to an archive. But if they get hacked, it could redirect somewhere unsavoury.</p> <p>Having my site's content backed-up somewhere is useful but, again, without control or <a href="https://shkspr.mobi/blog/2026/09/how-to-get-a-doi-for-your-blog-posts/#verification">verification</a> I worry that I might not be able to effectively manage it.</p> <p>I use CSS to control the layout of my work but once it is archived as plain HTML or PDF, that formatting can disappear.</p> <p>I don't know what will happen if I ever change DOI issuer.</p> <h3 id="tracking-citations"><a href="https://shkspr.mobi/blog/2026/09/how-to-get-a-doi-for-your-blog-posts/#tracking-citations">Tracking Citations</a></h3> <p>I have a Google Scholar alert set up for my domain <code>shkspr.mobi</code>. That picks up people who make reference to this site. Hurrah! But, if they use <code>https://doi.org/10....</code> rather than <code>https://shkspr.mobi/...</code> I won't get alerted.</p> <p>Luckily, <a href="https://doi.org/10.53731/zyg15-qv911">Rogue Scholar offer Citation Tracking</a> which <em>should</em> autopopulate their API with any backlinks from other sources. I'm yet to discover how that works in practice. I don't think it will give me an email alert though.</p> <p>On a vanity issue, the DOI metadata shows the publisher of my posts as Rogue Scholar's parent organisation - <a href="https://front-matter.de/">Front Matter</a>.</p> <p>If you look at the API response from <a href="https://api.crossref.org/works/10.59350/5ck9b-kjv69">https://api.crossref.org/works/10.59350/5ck9b-kjv69</a> you'll see something like:</p> <pre><code class="language-json">{ "message": { "institution": [ { "name": "Front Matter" } ], "group-title": "Terence Eden's Blog", "publisher": "Front Matter", "DOI": "10.59350/5ck9b-kjv69", "author": [ { "ORCID": "https://orcid.org/0000-0002-9265-9069", "given": "Terence", "family": "Eden" } ] } } </code></pre> <p>Some citation managers will show the publication name as "Terence Eden's Blog" - others as "Front Matter".</p> <h3 id="licencing"><a href="https://shkspr.mobi/blog/2026/09/how-to-get-a-doi-for-your-blog-posts/#licencing">Licencing</a></h3> <p>Rogue Scholar has a hard requirement that all content be Creative Commons Attribution (CC BY). There's no ability (yet) to choose different licences. Personally, I prefer Attribution ShareAlike (CC BY-SA). I've allowed Rogue Scholar to use CC BY for my work which, of course, means if you get my posts through them you are also allowed to use CC BY.</p> <p>If you get my work through my own website it is the slightly more restrictive CC BY-SA.</p> <p>Does that make a practical difference? I don't know.</p> <h3 id="verification"><a href="https://shkspr.mobi/blog/2026/09/how-to-get-a-doi-for-your-blog-posts/#verification">Verification</a></h3> <p>A DOI is persistent. That doesn't mean it is verifiable. If this blog ever goes offline the DOI will redirect to an archive - but there's no real way to tell that the text in that archive is accurate. There's no hashing or cryptographic signing. Yes, those things are rather brittle, but I think it would be helpful for the long-term integrity of citation chains.</p> <h3 id="excluding-content"><a href="https://shkspr.mobi/blog/2026/09/how-to-get-a-doi-for-your-blog-posts/#excluding-content">Excluding Content</a></h3> <p>Suppose there is content you <em>don't</em> want to receive a DOI, what do you do? You'll need to generate an RSS feed which excludes those specific posts.</p> <p>For WordPress, you can do something like <code>/feed/atom/?cat=-1234</code> to exclude posts which have a category with the ID of 1234.</p> <p>There are some filters on the Rogue Scholar site which you might also be able to use.</p> <h3 id="deleting-content"><a href="https://shkspr.mobi/blog/2026/09/how-to-get-a-doi-for-your-blog-posts/#deleting-content">Deleting Content</a></h3> <p>I don't think there's a way to delete or retract content from Rogue Scholar's DOI system yet. If you accidentally publish something you didn't mean to, it'll live on in the archives forever.</p> <h3 id="affiliations"><a href="https://shkspr.mobi/blog/2026/09/how-to-get-a-doi-for-your-blog-posts/#affiliations">Affiliations</a></h3> <p>My ORCiD lists where I worked on certain dates. Initially, Rogue Scholar linked those to blog posts I wrote during my employment. However, all my posts were written in a personal capacity. It is possible to get those affiliations removed if they are inaccurate.</p> <h3 id="more-vanity"><a href="https://shkspr.mobi/blog/2026/09/how-to-get-a-doi-for-your-blog-posts/#more-vanity">More Vanity</a></h3> <p>I initially tried generating DOIs like <code>edent-00f47</code> - although it's a valid Base 32 string with a checksum, it carries semantic meaning (my name) so shouldn't really be used. Ah well! Back to random strings.</p> <h3 id="humility"><a href="https://shkspr.mobi/blog/2026/09/how-to-get-a-doi-for-your-blog-posts/#humility">Humility</a></h3> <p>Is this a valid use of the DOI ecosystem? A surprising number of my posts <a href="https://shkspr.mobi/blog/citations">have been referenced in academic papers</a> - but surely not <em>all</em> of my posts are worthy of getting a DOI? The problem is, I don't know when <a href="https://shkspr.mobi/blog/2018/06/how-i-became-leonardo-da-vinci-on-the-blockchain/">a shitpost</a> will hit the zeitgeist and become quoted in papers, books, and articles.</p> <p>It feels a bit self-indulgent and a little pretentious to mint a new DOI for every previous and future post on this site. But it isn't like the DOI system is running out of space, is it?</p> <h2 id="is-it-worth-it"><a href="https://shkspr.mobi/blog/2026/09/how-to-get-a-doi-for-your-blog-posts/#is-it-worth-it">Is it worth it?</a></h2> <p>For me? Yes.</p> <p>I think it is important that <a href="https://doi.org/10.64000/552ec-b8g03">scholarly blogs are properly referenced</a>. True, not <em>all</em> of my posts are cutting-edge research - but I'm always surprised which ones end up in someone's thesis or become part of a set-text.</p> <p>I'm excited to see if this leads to an increase <em>or</em> decrease in my blog's visibility in academia.</p> <p>If you have strong feelings either way about DOIs and/or blogs, please drop a comment in the box.</p> <p>You may cite this post using <a href="https://doi.org/10.59350/5ck9b-kjv69">https://doi.org/10.59350/5ck9b-kjv69</a> 😃</p> <img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=74717&HTTP_REFERER=Atom" alt width="1" height="1" loading="eager"> Buy my house! - Werd I/O 6aaa349f59292a0001889bc7 2026-09-16T10:01:56.000Z Werd I/O <img src="https://storage.ghost.io/c/18/7c/187cc681-d3f3-49fc-87de-b01d06b76821/content/images/2026/09/148f98e53d6ce71962114f3cddaf4164-uncropped_scaled_within_1536_1152.webp" alt="Buy my house!"><p>This is, perhaps, an unusual post for me in this space, but: I’m selling my home, it's a great house, and I want you to know about it.</p><p><a href="https://redf.in/nsPDEP">7 Windsor Ave, Elkins Park, PA</a> was built in 1925. Set on half an acre of land, it’s a beautiful Tudor home with a ton of space and flexibility. <a href="https://www.zillow.com/homedetails/7-Windsor-Ave-Elkins-Park-PA-19027/9918234_zpid/">The photos speak for themselves.</a></p><p>I loved living here. Its second floor rooms are well-suited to being set up as spacious work-from-home offices, which is what we did — the whole family comfortably worked from the house. I commuted into the offices in Manhattan and DC many times a month, which I found both easy and genuinely fun via train — and the rest of the time I enjoyed the leafy, peaceful neighborhood. It’s very close to schools and daycares, and it felt like a privilege to be able to do drop-off and pick-up on foot.</p><p>I’ve headed west for an opportunity I couldn’t say no to, but it was emotionally hard to part with it. I fell in love with it in many ways — there’s no way I could have this level of space and peace while maintaining proximity to major cities at this price in California.</p> <!--kg-card-begin: html--> <div style="margin-left: auto; margin-right: auto"><blockquote class="instagram-media" data-instgrm-permalink="https://www.instagram.com/reel/DcthrS-PxKI/?utm_source=ig_embed&utm_campaign=loading" data-instgrm-version="14" style=" background:#FFF; border:0; border-radius:3px; box-shadow:0 0 1px 0 rgba(0,0,0,0.5),0 1px 10px 0 rgba(0,0,0,0.15); margin: 1px; max-width:540px; min-width:326px; padding:0; width:99.375%; width:-webkit-calc(100% - 2px); width:calc(100% - 2px);"><div style="padding:16px;"> <a href="https://www.instagram.com/reel/DcthrS-PxKI/?utm_source=ig_embed&utm_campaign=loading" style=" background:#FFFFFF; line-height:0; padding:0 0; text-align:center; text-decoration:none; width:100%;" target="_blank"> <div style=" display: flex; flex-direction: row; align-items: center;"> <div style="background-color: #F4F4F4; border-radius: 50%; flex-grow: 0; height: 40px; margin-right: 14px; width: 40px;"></div> <div style="display: flex; flex-direction: column; flex-grow: 1; justify-content: center;"> <div style=" background-color: #F4F4F4; border-radius: 4px; flex-grow: 0; height: 14px; margin-bottom: 6px; width: 100px;"></div> <div style=" background-color: #F4F4F4; border-radius: 4px; flex-grow: 0; height: 14px; width: 60px;"></div></div></div><div style="padding: 19% 0;"></div> <div style="display:block; height:50px; margin:0 auto 12px; width:50px;"><svg width="50px" height="50px" viewBox="0 0 60 60" version="1.1" xmlns="https://www.w3.org/2000/svg" xmlns:xlink="https://www.w3.org/1999/xlink"><g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"><g transform="translate(-511.000000, -20.000000)" fill="#000000"><g><path d="M556.869,30.41 C554.814,30.41 553.148,32.076 553.148,34.131 C553.148,36.186 554.814,37.852 556.869,37.852 C558.924,37.852 560.59,36.186 560.59,34.131 C560.59,32.076 558.924,30.41 556.869,30.41 M541,60.657 C535.114,60.657 530.342,55.887 530.342,50 C530.342,44.114 535.114,39.342 541,39.342 C546.887,39.342 551.658,44.114 551.658,50 C551.658,55.887 546.887,60.657 541,60.657 M541,33.886 C532.1,33.886 524.886,41.1 524.886,50 C524.886,58.899 532.1,66.113 541,66.113 C549.9,66.113 557.115,58.899 557.115,50 C557.115,41.1 549.9,33.886 541,33.886 M565.378,62.101 C565.244,65.022 564.756,66.606 564.346,67.663 C563.803,69.06 563.154,70.057 562.106,71.106 C561.058,72.155 560.06,72.803 558.662,73.347 C557.607,73.757 556.021,74.244 553.102,74.378 C549.944,74.521 548.997,74.552 541,74.552 C533.003,74.552 532.056,74.521 528.898,74.378 C525.979,74.244 524.393,73.757 523.338,73.347 C521.94,72.803 520.942,72.155 519.894,71.106 C518.846,70.057 518.197,69.06 517.654,67.663 C517.244,66.606 516.755,65.022 516.623,62.101 C516.479,58.943 516.448,57.996 516.448,50 C516.448,42.003 516.479,41.056 516.623,37.899 C516.755,34.978 517.244,33.391 517.654,32.338 C518.197,30.938 518.846,29.942 519.894,28.894 C520.942,27.846 521.94,27.196 523.338,26.654 C524.393,26.244 525.979,25.756 528.898,25.623 C532.057,25.479 533.004,25.448 541,25.448 C548.997,25.448 549.943,25.479 553.102,25.623 C556.021,25.756 557.607,26.244 558.662,26.654 C560.06,27.196 561.058,27.846 562.106,28.894 C563.154,29.942 563.803,30.938 564.346,32.338 C564.756,33.391 565.244,34.978 565.378,37.899 C565.522,41.056 565.552,42.003 565.552,50 C565.552,57.996 565.522,58.943 565.378,62.101 M570.82,37.631 C570.674,34.438 570.167,32.258 569.425,30.349 C568.659,28.377 567.633,26.702 565.965,25.035 C564.297,23.368 562.623,22.342 560.652,21.575 C558.743,20.834 556.562,20.326 553.369,20.18 C550.169,20.033 549.148,20 541,20 C532.853,20 531.831,20.033 528.631,20.18 C525.438,20.326 523.257,20.834 521.349,21.575 C519.376,22.342 517.703,23.368 516.035,25.035 C514.368,26.702 513.342,28.377 512.574,30.349 C511.834,32.258 511.326,34.438 511.181,37.631 C511.035,40.831 511,41.851 511,50 C511,58.147 511.035,59.17 511.181,62.369 C511.326,65.562 511.834,67.743 512.574,69.651 C513.342,71.625 514.368,73.296 516.035,74.965 C517.703,76.634 519.376,77.658 521.349,78.425 C523.257,79.167 525.438,79.673 528.631,79.82 C531.831,79.965 532.853,80.001 541,80.001 C549.148,80.001 550.169,79.965 553.369,79.82 C556.562,79.673 558.743,79.167 560.652,78.425 C562.623,77.658 564.297,76.634 565.965,74.965 C567.633,73.296 568.659,71.625 569.425,69.651 C570.167,67.743 570.674,65.562 570.82,62.369 C570.966,59.17 571,58.147 571,50 C571,41.851 570.966,40.831 570.82,37.631"/></g></g></g></svg></div><div style="padding-top: 8px;"> <div style=" color:#3897f0; font-family:Arial,sans-serif; font-size:14px; font-style:normal; font-weight:550; line-height:18px;">View this post on Instagram</div></div><div style="padding: 12.5% 0;"></div> <div style="display: flex; flex-direction: row; margin-bottom: 14px; align-items: center;"><div> <div style="background-color: #F4F4F4; border-radius: 50%; height: 12.5px; width: 12.5px; transform: translateX(0px) translateY(7px);"></div> <div style="background-color: #F4F4F4; height: 12.5px; transform: rotate(-45deg) translateX(3px) translateY(1px); width: 12.5px; flex-grow: 0; margin-right: 14px; margin-left: 2px;"></div> <div style="background-color: #F4F4F4; border-radius: 50%; height: 12.5px; width: 12.5px; transform: translateX(9px) translateY(-18px);"></div></div><div style="margin-left: 8px;"> <div style=" background-color: #F4F4F4; border-radius: 50%; flex-grow: 0; height: 20px; width: 20px;"></div> <div style=" width: 0; height: 0; border-top: 2px solid transparent; border-left: 6px solid #f4f4f4; border-bottom: 2px solid transparent; transform: translateX(16px) translateY(-4px) rotate(30deg)"></div></div><div style="margin-left: auto;"> <div style=" width: 0px; border-top: 8px solid #F4F4F4; border-right: 8px solid transparent; transform: translateY(16px);"></div> <div style=" background-color: #F4F4F4; flex-grow: 0; height: 12px; width: 16px; transform: translateY(-4px);"></div> <div style=" width: 0; height: 0; border-top: 8px solid #F4F4F4; border-left: 8px solid transparent; transform: translateY(-4px) translateX(8px);"></div></div></div> <div style="display: flex; flex-direction: column; flex-grow: 1; justify-content: center; margin-bottom: 24px;"> <div style=" background-color: #F4F4F4; border-radius: 4px; flex-grow: 0; height: 14px; margin-bottom: 6px; width: 224px;"></div> <div style=" background-color: #F4F4F4; border-radius: 4px; flex-grow: 0; height: 14px; width: 144px;"></div></div></a><p style=" color:#c9c8cd; font-family:Arial,sans-serif; font-size:14px; line-height:17px; margin-bottom:0; margin-top:8px; overflow:hidden; padding:8px 0 7px; text-align:center; text-overflow:ellipsis; white-space:nowrap;"><a href="https://www.instagram.com/reel/DcthrS-PxKI/?utm_source=ig_embed&utm_campaign=loading" style=" color:#c9c8cd; font-family:Arial,sans-serif; font-size:14px; font-style:normal; font-weight:normal; line-height:17px; text-decoration:none;" target="_blank">A post shared by Charlotte Marinello Pellechia (@charpellechia)</a></p></div></blockquote> <script async src="//www.instagram.com/embed.js"></script></div> <!--kg-card-end: html--> <p>Elkins Park is an architecturally significant suburb of Philadelphia: <a href="https://www.bethsholompreservation.org/">Frank Lloyd Wright’s only synagogue</a> and <a href="https://lynnewoodhallpreservation.org/">Lynnewood Hall</a> are both in the neighborhood, and the homes are magnificent. And as I mentioned above, it’s also a very accessible commute into New York City. There’s public transit within a few minutes’ walk, which takes you into Philadelphia, <a href="https://www.amtrak.com/stations/phl">30th Street Station</a>, and <a href="https://www.phl.org/">Philadelphia International Airport</a> without changes. Elkins Park itself has restaurants, a coffee roastery, and <a href="https://openbookphilly.square.site/" rel="noreferrer">a great bookstore</a>. The <a href="https://www.penguinrandomhouse.com/books/612676/crying-in-h-mart-by-michelle-zauner/"><em>Crying in H Mart</em></a> H Mart is also here; the Korean restaurants in the neighborhood are so good that people travel from NYC to eat there. It’s just a few minutes away from Glenside — the <a href="https://www.keswicktheatre.com/">Keswick Theatre</a> there hosts acts like the Magnetic Fields and John Waters — and Jenkintown, which is home to breweries, indie movie houses, and more.</p><p>7 Windsor Ave is represented by Charlotte Pellechia at Kurfiss Sotheby’s. <a href="https://www.zillow.com/homedetails/7-Windsor-Ave-Elkins-Park-PA-19027/9918234_zpid/">You can book a viewing via its Zillow listing</a> or <a href="https://www.sothebysrealty.com/kurfiss/eng/sales/detail/717-l-85065-jc4d2n/7-windsor-avenue-elkins-park-pa-19027">contact Charlotte directly</a>.</p><figure class="kg-card kg-image-card kg-width-wide"><a href="https://www.zillow.com/homedetails/7-Windsor-Ave-Elkins-Park-PA-19027/9918234_zpid/?utm_campaign=zillowwebmessage&utm_medium=referral&utm_source=txtshare"><img src="https://storage.ghost.io/c/18/7c/187cc681-d3f3-49fc-87de-b01d06b76821/content/images/2026/09/6a30e9d4e6ab5c105036528c74c35c78-uncropped_scaled_within_1536_1152.webp" class="kg-image" alt="Buy my house!" loading="lazy" width="1440" height="959" srcset="https://storage.ghost.io/c/18/7c/187cc681-d3f3-49fc-87de-b01d06b76821/content/images/size/w600/2026/09/6a30e9d4e6ab5c105036528c74c35c78-uncropped_scaled_within_1536_1152.webp 600w, https://storage.ghost.io/c/18/7c/187cc681-d3f3-49fc-87de-b01d06b76821/content/images/size/w1000/2026/09/6a30e9d4e6ab5c105036528c74c35c78-uncropped_scaled_within_1536_1152.webp 1000w, https://storage.ghost.io/c/18/7c/187cc681-d3f3-49fc-87de-b01d06b76821/content/images/2026/09/6a30e9d4e6ab5c105036528c74c35c78-uncropped_scaled_within_1536_1152.webp 1440w" sizes="(min-width: 1200px) 1200px"></a></figure><figure class="kg-card kg-image-card kg-width-wide"><a href="https://www.zillow.com/homedetails/7-Windsor-Ave-Elkins-Park-PA-19027/9918234_zpid/?utm_campaign=zillowwebmessage&utm_medium=referral&utm_source=txtshare"><img src="https://storage.ghost.io/c/18/7c/187cc681-d3f3-49fc-87de-b01d06b76821/content/images/2026/09/image.png" class="kg-image" alt="Buy my house!" loading="lazy" width="1440" height="960" srcset="https://storage.ghost.io/c/18/7c/187cc681-d3f3-49fc-87de-b01d06b76821/content/images/size/w600/2026/09/image.png 600w, https://storage.ghost.io/c/18/7c/187cc681-d3f3-49fc-87de-b01d06b76821/content/images/size/w1000/2026/09/image.png 1000w, https://storage.ghost.io/c/18/7c/187cc681-d3f3-49fc-87de-b01d06b76821/content/images/2026/09/image.png 1440w" sizes="(min-width: 1200px) 1200px"></a></figure><figure class="kg-card kg-image-card kg-width-wide"><a href="https://www.zillow.com/homedetails/7-Windsor-Ave-Elkins-Park-PA-19027/9918234_zpid/?utm_campaign=zillowwebmessage&utm_medium=referral&utm_source=txtshare"><img src="https://storage.ghost.io/c/18/7c/187cc681-d3f3-49fc-87de-b01d06b76821/content/images/2026/09/image-1.png" class="kg-image" alt="Buy my house!" loading="lazy" width="1440" height="959" srcset="https://storage.ghost.io/c/18/7c/187cc681-d3f3-49fc-87de-b01d06b76821/content/images/size/w600/2026/09/image-1.png 600w, https://storage.ghost.io/c/18/7c/187cc681-d3f3-49fc-87de-b01d06b76821/content/images/size/w1000/2026/09/image-1.png 1000w, https://storage.ghost.io/c/18/7c/187cc681-d3f3-49fc-87de-b01d06b76821/content/images/2026/09/image-1.png 1440w" sizes="(min-width: 1200px) 1200px"></a></figure><figure class="kg-card kg-image-card kg-width-wide"><a href="https://www.zillow.com/homedetails/7-Windsor-Ave-Elkins-Park-PA-19027/9918234_zpid/?utm_campaign=zillowwebmessage&utm_medium=referral&utm_source=txtshare"><img src="https://storage.ghost.io/c/18/7c/187cc681-d3f3-49fc-87de-b01d06b76821/content/images/2026/09/image-2.png" class="kg-image" alt="Buy my house!" loading="lazy" width="1440" height="1080" srcset="https://storage.ghost.io/c/18/7c/187cc681-d3f3-49fc-87de-b01d06b76821/content/images/size/w600/2026/09/image-2.png 600w, https://storage.ghost.io/c/18/7c/187cc681-d3f3-49fc-87de-b01d06b76821/content/images/size/w1000/2026/09/image-2.png 1000w, https://storage.ghost.io/c/18/7c/187cc681-d3f3-49fc-87de-b01d06b76821/content/images/2026/09/image-2.png 1440w" sizes="(min-width: 1200px) 1200px"></a></figure> How I organised 15 years worth of passwords (video) - Johnny.Decimal https://johnnydecimal.com/blog/0250-15-years-of-passwords/ 2026-09-16T04:05:35.000Z Johnny.Decimal <div style="padding:56.25% 0 0 0;position:relative;"><iframe src="https://player.vimeo.com/video/1227173082?badge=0&autopause=0&player_id=0&app_id=58479" frameborder="0" allow="autoplay; fullscreen; picture-in-picture; clipboard-write; encrypted-media; web-share" referrerpolicy="strict-origin-when-cross-origin" style="position:absolute;top:0;left:0;width:100%;height:100%;" title="W0219 How I organised 15 years worth of passwords"></iframe></div> This week at JDHQ – 2026-09-15 - Johnny.Decimal https://johnnydecimal.com/blog/0249-this-week-2026-09-16/ 2026-09-16T00:31:14.000Z Johnny.Decimal <blockquote> <p>Originally sent to the <a href="https://johnnydecimal.com/support/contact-community/mailing-list-rss-social">mailing list</a> on Tuesday 2026-09-15.</p> </blockquote> <p>Hey everyone. This week: updates to the Small Business System (SBS), thoughts on <em>not</em> using AI to do your creative work, but using it to solve the biggest chore of all: organising your existing stuff into our pre-built systems. I've built that, it works, it's amazing, and you can use it today.</p> <h2 id="sbs-improvements">SBS improvements</h2> <p>Lucy just added a whole bunch of links to the Small Business System. She's into '<a href="https://johnnydecimal.com/blog/0248-lucy-boring-functional-govt-info">unsexy, boring, functional, government information</a>'<sup><a href="#user-content-fn-1" id="user-content-fnref-1" data-footnote-ref="true" aria-describedby="footnote-label" class="footnote">1</a></sup> – and she's right: there's <em>so much stuff</em> out there if you go looking for it. We get most of ours from the Australian government; much of it has broader relevance, but if you need help dealing with administration, make yourself familiar with your local, state, and national government's resources. There's more there than you expect, it's often really good, <em>and you've already paid for it</em>!</p> <h2 id="ai-grunt-work-human-creative-stuff">AI: grunt work. Human: creative stuff</h2> <p>Speaking of government advice, Lucy also subscribes to a bunch of newsletters and she noted last week that much of the guidance around AI seems to be to use it for your marketing. I suspect this is advice given without much thought, so I'm not criticising those that give it – they're probably not AI experts, and they're certainly not being paid to be.</p> <p>But: it's awful advice! Your customers can smell AI generated ideas, copy, and images a mile off and we all hate it! <em>You</em> hate it: why would you think your customers wouldn't?</p> <p>As with so much technology advice, I think it's given by people who aren't technologists; who don't understand what you <em>can</em> do with AI, and who, asked to give advice in a newsletter, fall back to the obvious stuff. Everyone understands words and pictures, so they become the go-to.</p> <p>Instead, think about how it can take some of the burden from your back-office chores. The other day I recorded a video showing how I use Johnny.Decimal to keep my password manager organised. (Lucy's editing it now; <a href="https://youtube.com/@johnny.decimal">out soon</a>.) Rather than worry about showing my own data, I wanted to create a bunch of realistic demo logins that I could show without Lucy having to blur them out.</p> <p>AI is <em>amazing</em> at this sort of thing. Because it's technical, repetitive grunt-work. It's work that I <em>could</em> have done, had I wanted to spend two of the most boring hours of my life creating fake logins. Is that a good use of my time? It is not.</p> <p>In the past, you needed to be a computer programmer to do this sort of thing. You needed to know a scripting language. It still <em>helps</em> to have this base knowledge, and we're not yet at the point where you can just say 'computer' into the air and have it know exactly what you want, no mistakes. But we're a long way from me needing to write a script, and I think that's great. It's going to be incredibly democratising. (I recorded a rough video showing that process too.)</p> <p>Get your AI to do the boring work, so you have more time to do the creative stuff. Don't ever give that up.</p> <h2 id="i-can-now-move-you-in-to-life-admin-or-small-business">I can now 'move you in' to Life Admin or Small Business</h2> <p>Speaking of the boring work – what's the hardest part about getting organised? It's doing the work of actually <em>getting organised</em>. What if someone could take your existing stuff, analyse it all, apply all the rules I've developed over the last 15 years, and move it into a fresh copy of the LAS or SBS for you?</p> <p>This is live, now, on the <a href="https://johnnydecimal.com/jdhq/mcp-server">MCP server</a>. I've tested it on my manufactured 'messy company' data set and it scores up in the 90% range.<sup><a href="#user-content-fn-2" id="user-content-fnref-2" data-footnote-ref="true" aria-describedby="footnote-label" class="footnote">2</a></sup></p> <p>The bad news is that it can take as long as … half an hour. ;-)</p> <p>Just briefly, because I'll get up a proper blog post shortly, here's what happens.</p> <ol> <li>You connect the server (<a href="https://youtu.be/r-aXuBXEq94">video here</a>). You might need to be using a terminal version of your software, i.e. Claude Code, Codex. The GUI versions might work, I haven't tested.</li> <li>Ask it to help you 'move in' to a new JD system.</li> <li>It'll analyse your system, asking you clarifying questions.</li> <li>It'll download and configure the CLI, my <a href="https://github.com/johnnydecimal/skills">skills</a>, and the LAS or SBS as required.</li> <li>It'll show you, step by step, what it plans to do. You approve, it moves. Job done.</li> </ol> <p>Importantly, I've built it so your LLM doesn't move files directly. It depends on the <a href="https://johnnydecimal.com/jdhq/jd-cli">JD CLI</a> which now has a <strong>jd move</strong> command. That command records a log of every move (at <strong>~/.jd/journal.jsonl</strong>), so you have a full history of everything that happened. Moves are undoable. The <strong>jd</strong> command can't delete files.</p> <p>The overall process is logged at <strong>00.05</strong> in the target system's JDex, and is resumable via this log. You can ask it to move you in category by category and check out partial results.</p> <p>This is still very early, and it's behind a 'beta' flag. Your agent will ask you to turn that on. I'm confident that this won't wreck your life, but as with anything AI, be cautious. LLMs are unpredictable <em>by design</em>. It's what makes them useful. <strong>Have backups</strong>. Seriously, not kidding, have backups.</p> <p>I'd love to hear from you if you use it. I think it's amazing. It needs a Pro account or higher. I've recorded a video, it's in the editing queue.</p> <h2 id="lunch">Lunch?</h2> <p>Last week, we met our first Decimal!<sup><a href="#user-content-fn-3" id="user-content-fnref-3" data-footnote-ref="true" aria-describedby="footnote-label" class="footnote">3</a></sup> We caught up for lunch in Sapporo. It was life-affirming, really, to look someone in the eye who uses this thing we make. Next week we're heading to South Korea – let us know if you're there.<sup><a href="#user-content-fn-4" id="user-content-fnref-4" data-footnote-ref="true" aria-describedby="footnote-label" class="footnote">4</a></sup></p> <p>Talk soon,<br> j.</p> <div data-footnotes="true" class="footnotes"><h2 class="sr-only" id="footnote-label">Footnotes</h2> <ol> <li id="user-content-fn-1"> <p>A strong argument for the Oxford comma. <a href="#user-content-fnref-1" data-footnote-backref="" aria-label="Back to reference 1" class="data-footnote-backref footnoteBackLink">↩</a></p> </li> <li id="user-content-fn-2"> <p>The messy data generator knows, ideally, in which ID the messy data should be stored. It scores the 'move in' result against this ideal. <a href="#user-content-fnref-2" data-footnote-backref="" aria-label="Back to reference 2" class="data-footnote-backref footnoteBackLink">↩</a></p> </li> <li id="user-content-fn-3"> <p>Actually I met a lovely Decimal in Canberra one time, but I won't count that as it's where we lived, and Lucy wasn't there. Hi, Joel! <a href="#user-content-fnref-3" data-footnote-backref="" aria-label="Back to reference 3" class="data-footnote-backref footnoteBackLink">↩</a></p> </li> <li id="user-content-fn-4"> <p>I'll email you, Caleb. <a href="#user-content-fnref-4" data-footnote-backref="" aria-label="Back to reference 4" class="data-footnote-backref footnoteBackLink">↩</a></p> </li> </ol> </div> More meaningful online interactions, please - Joel's Log Files https://joelchrono.xyz/blog/meaningful-online-interactions 2026-09-15T23:40:00.000Z joelchrono <p>Scrolling through the timeline, these are only a few of the things I’ve seen today, people on different perspectives and paths, perhaps someone…</p> <ul> <li>That finally managed to fix their printer after a system update</li> <li>Talking about seeing someone else make a funny typo</li> <li>Sharing their progress on a software project</li> <li>Letting everyone know about a cool update on their favourite game</li> <li>Celebrating being done with the work day and going home</li> <li>Coming up with a random pun/name for a pet</li> <li>Criticizing people in power that do bad things</li> <li>Saddened by all the AI and LLMs submitting bad code</li> <li>Thanking a developer for adding a new feature</li> <li>Uploading a picture of their new book they’re reading</li> <li>Sharing a picture of their super cute cat</li> </ul> <p>I look at the replies, and the ones with more comments are from people complaining about AI, or from people annoyed at bad people doing bad things (or the cat, but that’s a phenomenon I’m not getting into)</p> <p>The point is a lot of people engage with the negative, bad news, and such, nothing wrong with that of course, but it got me thinking…</p> <p>I have around 2900 followers on my profile—a meaningless sum in the grand scheme of things—I have made lots of posts, I share my blogposts, I share my progress on my videogames, or when there is some celebration, or when I’m reading a book, or when I get stuck under the rain.</p> <p>I always try to share something positive or that I find amusing or fulfilling, or just nice.</p> <p>Today alone, between both of my fediverse accounts, without counting boosts, I’ve made a grand total of only 3 original posts, not a lot to be fair, but an okay amount for a regular guy like me.</p> <p>The oldest one was 11 hours ago, the latest is 3 hours ago, as of the time of writing this post. I have 18 favorites (one post with 11 favorites using a popular hashtag), and 4 boosts.</p> <p>None of them have a reply.</p> <p>I have done my due diligence and replied about 15 times in the last 11 hours, to ongoing conversations, giving advice about watches, or surprised that someone followed me, or something else.</p> <p>Only 5 of them go a reply back. I didn’t bother to count favorites/boosts for these.</p> <p>A part of me feels like I am begging for attention, that I want people to reply to me or to say things to me, but really, the initial list above this post was from lots of people I stumbled upon, and they also were simply shouting to the void with nobody on the other side.</p> <p>I am also fully aware, of the amount of people who can’t handle social interaction much, and prefer to acknowledge a post with a favorite and move on. With nothing to add to the conversation, this is very fair.</p> <p>But why does it seem like everyone has something to say about the negative things going on? Why do people come together only to complain about things that a lot of the time don’t make us feel good?</p> <p>Don’t get me wrong, mobilizing and raising our voices against evil is noteworthy. But many times we fall on nihilism and doom instead, and we don’t actually do any better after that.</p> <p>This post is somewhat inspired by Ana Rodrigues’s post: <a href="https://ohhelloana.blog/tell-the-speakers/">“Tell the speakers that you liked their talks “</a>, and in my head still lingers a post from Jane saying <a href="https://janerationx.me/posts/i-quit-mastodon">she quit Mastodon</a>. Give them a read if you want to.</p> <p>I am not quitting or anything, but I feel like the Fediverse and most social media with humans using it, has become a little more silent than before when it comes to talking about normal everyday things, focusing too much on big themes and controversies or something along those lines.</p> <p>To be clear, the Fediverse doesn’t use an algorithm, the reach of what I share is limited to the chronological timeline, so things can vary because of many factors I can’t really account for.</p> <p>Even so, I don’t know, just food for thought…</p> <p>On a positive note, the stars aligned and I somehow got like 5 emails on my inbox this week, one of them in the last 24 hours, so that’s always a win in my books!</p> <p>And I still have plenty of fun on the Signal groups and Discord communities I’m on, so yeah, who knows.</p> <p>Maybe I am just an attention-seeker who is annoyed at the lack of comments on my posts. I work very hard to come up with them!!</p> <p>Okay, but, for real, I think we should choose to engage with things that make us happier! So if the post or article or picture a person shares does that, I invite you to let them know!</p> <p>This is day 36 of <a href="https://100DaysToOffload.com">#100DaysToOffload</a></p> <p> <a href="mailto:me@joelchrono.xyz?subject=More meaningful online interactions, please">Reply to this post via email</a> | <a href="https://fosstodon.org/@joel/117277705867528500">Reply on Fediverse</a> </p> Summer Game Challenge 2026 results! - Joel's Log Files https://joelchrono.xyz/blog/summer-games-completed 2026-09-15T18:30:00.000Z joelchrono <p>Back in May <a href="/blog/summer-game-challenge-2026/">I decided to participate</a> in the challenge mentioned in the title. From May 25 to September 7 (Memorial and Labour Day in the US), the goal was to make a list of at least ten games, and try to beat a minimum of four before the due date. As a Mexican, I gave myself some extra time, until September 16, which is Mexican Independence Day.</p> <p>The goal is to make some progress on the backlog and well, play videogames! And that’s exactly what I did, I think!</p> <p>My friend Bobby also participated in the challenge, <a href="https://bobbyhiltz.com/posts/2026/08/summer-game-challenge-2026-end/index.html">check out his blogpost!</a></p> <p>My original list consisted of fiftheen titles, although again, I only needed to beat four of them!</p> <ul> <li>Grapple Dog</li> <li>Terranigma</li> <li>Hades</li> <li>Outer Wilds</li> <li>Silksong</li> <li>Resident Evil 3: Nemesis</li> <li>Metroid Prime Remastered</li> <li>Chants of Sennaar</li> <li>Emio the Smiling Man</li> <li>Pipistrello and the Cursed YoYo</li> <li>Gris</li> <li>Super Mario 3D World</li> <li>Metroid Fusion</li> <li>CrossCode</li> <li>The Hundred Line: Last Defense Academy</li> <li>Transistor (an addition early on!)</li> </ul> <h2 id="the-completed-ones">The completed ones</h2> <p>In the end, from that list <strong>I managed to beat 6/15 games!</strong></p> <table> <thead> <tr> <th style="text-align: left">Title</th> <th style="text-align: right">Playtime</th> </tr> </thead> <tbody> <tr> <td style="text-align: left">Hades</td> <td style="text-align: right">42:30</td> </tr> <tr> <td style="text-align: left">Metroid Prime Remastered</td> <td style="text-align: right">25:15</td> </tr> <tr> <td style="text-align: left">Transistor</td> <td style="text-align: right">05:50</td> </tr> <tr> <td style="text-align: left">Gris</td> <td style="text-align: right">04:15</td> </tr> <tr> <td style="text-align: left">Outer Wilds</td> <td style="text-align: right">32:30</td> </tr> <tr> <td style="text-align: left">Emio: The Smiling Man</td> <td style="text-align: right">13:20</td> </tr> </tbody> </table> <p>I made a neat collage of the art of all the completed games, APPRECIATE IT!</p> <p><img src="/assets/img/blogs/2026-09-15-summer-games.webp" alt="Collage with artwork of the completed games" /></p> <p>And here are some extra thoughts if you want—most of them have reviews you can check out.</p> <h3 id="hades"><a href="/blog/hades/">Hades</a></h3> <p>I was already on the last stretch after managing to defeat Hades a couple times before the challenge started, and by May 31st, I rolled credits and got some closure for one of the best titles of the decade.</p> <p>I know there is still a lot this game has to offer, and I may return eventually for it, but I also don’t want to end up trapped giving dozens of extra hours to this game, which as fun as it may be, wouldn’t let me get other things done!</p> <h3 id="metroid-prime-remastered"><a href="/blog/metroid-prime-remastered/">Metroid Prime Remastered</a></h3> <p>This is probably my favorite game that I both started and beat during the challenge! Playing continuously from June 1 to 12. A perfect transition to 3D done by Retro Studios that I loved from beginning to end!</p> <p>The game was absolutely beautiful too, this is the best looking game in the Nintendo Switch as far as I’m concerned, and a pleasure to experience without any hiccups or issues at all. The challenge, the world design and upgrades were all fun. While it does have outdated elements, they weren’t a big deal for me at all. I love Metroid.</p> <h3 id="transistor"><a href="/blog/transistor/">Transistor</a></h3> <p>This one was not on my original list, but I still want to count it since I reaplced it very early on in the the challenge, to be honest, swapping it with <em>Chants of Sennar</em> or something akin.</p> <p>The combat and the story were the highlight here, a very interesting mix of turn based and action gameplay. The way the plot unfolded was incredible to see, the voice acting and score is also a highlight. There were a couple new things I could try starting a New Game+, but I got my fill, and it was great.</p> <h3 id="gris"><a href="/blog/gris/">Gris</a></h3> <p>An unexpected choice for me given my options, I was home alone for a couple of days and decided to go ahead and give it a go. The experience was incredible. Going through it all while nobody else was around, letting the soundtrack play at max volume on my TV, with all the lights turned off, it was great.</p> <p>The story and art, so beautiful, the platforming and the puzzles were light and elegant, and the vibes were just right for this one, a pleasure to have it finished.</p> <h3 id="outer-wilds"><a href="/blog/outer-wilds/">Outer Wilds</a></h3> <p>But what else can I say about such a perfect experience? This game does not have the prettiest graphics on the Switch, and the performance is not ideal. However, I still pushed through it, and it was still incredible.</p> <p>I had played like fourteen hours earlier in the year, and I went through almost twenty more as I resumed my journey and simply lived in the moment every time. The story, the mechanics, the characters, the discoveries. The planets aligned for once in a lifetime, they gave us a beautiful arrangement, it shall never be equaled.</p> <h3 id="emio-the-smiling-man">Emio: The Smiling Man</h3> <p>My review for this title is still only a draft in my head, but it’s a detective story and visual novel where we are the main protagonist, a young detective who has to work on a rather creepy case and get to the truth of it all.</p> <p>The art of this game is truly beautiful, the writing was also awesome, drip-feeding information in a great way, the mystery of it all, the score. It is a great visual novel with great production values that I devoured in just three days! I got stuck a couple of times, but not a detriment at all.</p> <h2 id="the-forgotten-ones">The forgotten ones</h2> <p>During all of the challenge, none of these got a time to shine at all, for one reason or another! They are all pretty great games though, but well, time management, procrastination, and stuff.</p> <ul> <li> <p><strong>Grapple Dog</strong> - Even though I have progress on this game, and it really is a fun time, I pretty much didn’t touch it at all during the whole challenge, it kind of ended up shelved for the sake of other titles.</p> </li> <li> <p><strong>Resident Evil 3: Nemesis</strong> - I think I booted this up once, but my retro handheld use saw itself diminished and I pretty much forgot for a while until it was too late! Definitely still thinking of playing though.</p> </li> <li> <p><strong>Chants of Sennaar</strong> - I would have loved to get to this one, but I didn’t even install it. Besides, after <em>Outer Wilds</em> it was probably better to wait some time to get to this one.</p> </li> <li> <p><strong>Pipistrello and the Cursed YoYo</strong> - This is another one that I didn’t even boot up, it stayed in the box for the whole duration of the challenge, I chose to unbox <em>Emio: The Smiling Man</em> instead.</p> </li> <li> <p><strong>The Hundred Line: Last Defense Academy</strong> - I am actually surprised I didn’t get at least one more ending of this for so many months. Definitely looking forward to a return though, there’s dozens of hours left for me to experience here!</p> </li> <li> <p><strong>Metroid Fusion</strong> - I guess I just feel like I could beat this in an afternoon and didn’t really bother to check. It’s a fantastic game though, I just wanted new experiences, and <em>Prime</em> provided that Metroid sauce anyway.</p> </li> </ul> <h2 id="the-works-in-progress">The works in progress</h2> <p>Even though these games were not quite completed (I technically rolled credits on Silksong when getting Act 3 though), I still enjoyed a bunch of my time playing a bit of some of them.</p> <ul> <li> <p><strong>Silksong</strong> - Honestly I am extremely pleased with the progress I’ve made on Silksong, from getting a lot of extra wishes and items, to finally unlocking Act 3 and starting to face against some new enemies, bosses and new areas that I have loved (and hated) to explore! Will definitely continue this adventure.</p> </li> <li> <p><strong>Terranigma</strong> - To be quite fair, I only played this gem for a couple short sessions, I even forgot to update my journal about it. In any case, I know how good this game is and I have to catch up with <a href="https://thetangent.space">Sam</a> soon.</p> </li> <li> <p><strong>Super Mario 3D World</strong> - My friends and I simply didn’t pick this one up enough times… I am very close to the finale though, but we are also collecting all the stars and stamps!</p> </li> <li> <p><strong>CrossCode</strong> - Some of my friends kind of lost steam, and I refuse to go without them even now, I hope they regain their morale and get into this journey again, it has been so nice!</p> </li> </ul> <h2 id="the-extras">The extras…</h2> <p>During the timespan of the challenge, <strong>I completed 9 more titles!</strong>—including some DLC and shorter indie games.</p> <table> <thead> <tr> <th style="text-align: left">Title</th> <th style="text-align: right">Playtime</th> </tr> </thead> <tbody> <tr> <td style="text-align: left">Monument Valley: Ida’s Dream</td> <td style="text-align: right">00:20</td> </tr> <tr> <td style="text-align: left">Monument Valley: Forgotten Shores</td> <td style="text-align: right">01:00</td> </tr> <tr> <td style="text-align: left">Monument Valley II</td> <td style="text-align: right">01:45</td> </tr> <tr> <td style="text-align: left">Monument Valley II: The Lost Forest</td> <td style="text-align: right">00:20</td> </tr> <tr> <td style="text-align: left">Monument Valley III</td> <td style="text-align: right">03:16</td> </tr> <tr> <td style="text-align: left">Monument Valley III: The Garden of Life</td> <td style="text-align: right">01:00</td> </tr> <tr> <td style="text-align: left">Jabberwocky</td> <td style="text-align: right">00:20</td> </tr> <tr> <td style="text-align: left">The Two Rivers Hypothesis</td> <td style="text-align: right">00:40</td> </tr> </tbody> </table> <ul> <li> <p><strong>Monument Valley (overall)</strong> - This was a wonderful set of levels and artistic visuals that kind of blew me away from beginning to end! The overall puzzle design wasn’t always consistent, and some of the ideas were not explored as much as I would have liked, but everything there is was always a joy!</p> </li> <li> <p><strong>Jabberwocky</strong> - This was just a short indie Game Boy game that I beat in twenty minutes, a fun story you can <a href="">get for free on itch.io</a></p> </li> <li> <p><strong>The Two Rivers Hypothesis</strong> - Another short indie title, with a much more serious existential horror theme, it is pretty quick to finish, and it’s a nice time if you are into speculative fiction stuff. <a href="">Free on itch.io!</a></p> </li> </ul> <h2 id="and-the-never-ending">And the never ending…</h2> <p>There is always a big supply of other titles I’m playing, trying them out here and there. Games I got started with, games I’ve been poking at for years, you already know many of them!</p> <ul> <li> <p><em>Fire Emblem Awakening</em> and <em>Ocarina of Time</em> have been an absolute menace on my Nintendo 3DS, with a lot of story yet to experience.</p> </li> <li> <p><em>Faster Than Light</em> and <em>Minecraft</em> have gotten plenty of playtime on my PC, especially the latter on a server with friends.</p> </li> <li> <p><em>Donkey Kong</em> , <em>Astro Boy Omega Factor</em> and the lovely <em>Final Fantasy VI</em> are still ongoing, claiming their spot on my emulation handheld.</p> </li> <li> <p><em>Black Rock Shooter</em>, <em>Ys I & II Chronicles</em>, <em>Final Fantasy IV</em> or <em>Ridge Racer</em>, keeping me busy whenever I give my PSP some love.</p> </li> </ul> <p>And of course, my Nintendo Switch alone has its own set of problems! From <em>Kirby and the Forgotten Land</em> which I’m barely getting started on, or the many little gems in <em>UFO 50</em>. The fantastic <em>Tomodachi Life: Living The Dream</em> which ate a bunch of my summer when it came out, and <em>Super Smash Bros</em>, still king of my multiplayer afternoons.</p> <p>Not much else to say by now. The challenge is completed! It was a success, I played a bunch, and I had a lot of fun, I am probably going to try to keep a list going for the rest of the year too, but nothing as structural as this. Time to wait for the year’s recap and see how things turn out with only a few months left for 2026.</p> <p>This is day 35 of <a href="https://100DaysToOffload.com">#100DaysToOffload</a></p> <p> <a href="mailto:me@joelchrono.xyz?subject=Summer Game Challenge 2026 results!">Reply to this post via email</a> | <a href="https://fosstodon.org/@joel/117276526303242739">Reply on Fediverse</a> </p> Read "Inside 'Project Lily': The Humans Reading Your ChatGPT Chats" - Molly White's activity feed 6aa962730db40ecf5ef3e0b4 2026-09-15T15:21:23.000Z Molly White <article class="entry h-entry hentry"><header><div class="description">Read: </div></header><div class="content e-content"><div class="article h-cite hcite"><div class="title"><a class="u-url u-repost-of" href="https://www.404media.co/inside-project-lily-the-humans-reading-your-chatgpt-chats/" rel="bookmark">“<span class="p-name">Inside 'Project Lily': The Humans Reading Your ChatGPT Chats</span>”</a>. </div><div class="byline"><span class="p-author h-card">Joseph Cox</span> in <i class="p-publication">404 Media</i>. <span class="read-date"> Published <time class="dt-published published" datetime="2026-09-14">September 14, 2026</time>.</span></div><blockquote class="summary p-summary entry-summary">Humans are reading ChatGPT users' prompts to improve OpenAI's models, and those chats can include sensitive, personal information, according to leaked internal documents and real prompts seen by 404 Media.</blockquote><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><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">Posted: <time class="dt-published" datetime="2026-09-15T15:21:23+00:00" title="September 15, 2026 at 3:21 PM UTC">September 15, 2026 at 3:21 PM UTC</time>. </div></div></footer></article> [RSS Club] Sorry for breaking your feed readers! - Terence Eden’s Blog https://shkspr.mobi/blog/?p=75570 2026-09-15T11:34:26.000Z Terence Eden’s Blog <p><mark>You're part of the Groovy Gang because you're a member of <a href="https://daverupert.com/rss-club/">RSS Club</a>! These posts are only available on my RSS and Atom feed. This post is <strong>not</strong> available in the shops, on the web, via FTP, or anywhere else.</mark></p> <p>So, yeah, sorry! My last post apparently broke some people's RSS readers. I had a code sample which said <code><marquee></code> - despite being properly escaped, some feed readers double-decoded it and turned it into a literal marquee element!</p> <p><video width="270" height="585" muted="" autoplay="" loop="" style="display:inline" src="https://shkspr.mobi/blog/wp-content/uploads/2026/09/feedscroll2.webm"></video><video width="270" height="600" muted="" autoplay="" loop="" style="display:inline" src="https://shkspr.mobi/blog/wp-content/uploads/2026/09/feedscroll.webm"></video?</video></p> <p>With thanks to Neil and CaféHaine for the videos.</p> <p>I got several reports that people's readers started scrolling like that and they'd <a href="https://github.com/nextcloud/news-android/issues/1719">raised issues with their feed reader</a>. Ooops! Sorry!</p> <p>That said, as far as I can tell, the feed <em>is</em> escaped correctly and shouldn't cause problems.</p> <p>Here's the code (I've added in some spaces to ensure it doesn't cause any issues):</p> <pre><code class="language-xml"><content type="html"> <![CDATA[< p> Lorem ipsum <code>& lt;marquee></code> dolor sed.</p> </code></pre> <p>So what's going on? The feed is generated by the latest version of WordPress which <a href="https://github.com/WordPress/wordpress-develop/blob/99e2de78a828d4fe472e37cf25fb0b2173e65c86/src/wp-includes/feed-atom.php#L89">uses <code>CDATA</code> to wrap HTML</a> in a feed.</p> <p>There is a <a href="https://core.trac.wordpress.org/ticket/9992">17 year old discussion about whether this is conformant</a> on the WordPress issue tracker with the conclusion that it isn't incorrect and seems to work fine.</p> <p>Is it OK? Is my feed broken or are a bunch of readers non-compliant? Let's go back to basics. The Atom spec says</p> <blockquote><p>If the value of "type" is "html", the content of atom:content MUST NOT contain child elements and SHOULD be suitable for handling as <a href="https://www.rfc-editor.org/info/rfc4287/#ref-HTML">HTML</a>. The HTML markup MUST be escaped; for example, "<code><br></code>" as "<code><br></code>".</p> <p><a href="https://www.rfc-editor.org/info/rfc4287/#section-4.1.3.3">RFC 4287: The Atom Syndication Format</a></p></blockquote> <p>Hmmmm. That would indicate that ampersand-l-t-semicolon should be interpreted as a less-than sign.</p> <p>However, the whole thing is wrapped in <code><![CDATA[</code> which according to the XML spec means:</p> <blockquote><p>CDATA sections may occur anywhere character data may occur; they are used to escape blocks of text containing characters which would otherwise be recognized as markup.</p> <p><a href="https://www.w3.org/TR/REC-xml/#sec-cdata-sect">Extensible Markup Language (XML) 1.0 (Fifth Edition)</a></p></blockquote> <p>So I <em>think</em> that a sensible feed-reader should see the CDATA block, grab the HTML inside it, and display it as-is. No need to unescape anything.</p> <p>That said, I'll see if I can change my feed to <em>not</em> need this hybrid format. There's <a href="https://waspdev.com/articles/2026-05-11/avoid-using-cdata-in-rss">a brilliant blog post by Suren Enfiajyan</a> which makes the case that regular escaping is <em>probably</em> good enough.</p> <p>If you've experienced this bug - or think that I'm generating my feeds in the wrong way - <a href="https://edent.tel">please get in touch</a>.</p> <img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=75570&HTTP_REFERER=Atom" alt width="1" height="1" loading="eager"> 1Password's AI patching benchmark is misleading - Trail of Bits Blog https://blog.trailofbits.com/2026/09/15/1passwords-ai-patching-benchmark-is-misleading/ 2026-09-15T11:00:00.000Z Trail of Bits Blog <p>1Password’s <a href="https://1password.com/blog/why-ai-generated-patches-still-require-human-review">FLAWED report</a>, published on August 6, 2026, gives defenders a misleading picture of AI patching. Its headline says models produced clean fixes only 26% of the time. That figure includes experiments that deliberately instructed agents to apply the wrong fix, along with experiments in which agents could not compile or test their patches.</p> <p>The report risks making defenders less effective by discouraging them from using technology that could help them fix more vulnerabilities. Teams that take its headline at face value may leave repairable vulnerabilities unaddressed.</p> <p>We want our work to help defenders fix more vulnerabilities. This post shares real-world data on human and agent patch quality from our consulting projects and Patch the Planet. We’re also releasing two agent skills: <a href="https://github.com/trailofbits/skills/tree/main/plugins/post-patch-validation">post-patch-validation</a> to help agents test fixes, and <a href="https://github.com/trailofbits/skills/tree/main/plugins/review-walkthrough">review-walkthrough</a> to help engineers review them.</p> <h2 id="how-the-experiment-produces-a-misleading-headline">How the experiment produces a misleading headline</h2> <p>Our review of 1Password’s <a href="https://github.com/Off-by-1-Labs/FLAWED/tree/2d3d15693b155873709bcf0daa247c2f0221d694">code and data</a> found four choices that make its 26% clean-fix rate a misleading guide to ordinary patching work.<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup></p> <ul> <li><strong>The sample was selected for difficult fixes.</strong> The authors chose six vulnerabilities because their fixes were complex. Clean-fix rates ranged from 3% to 60% across those bugs, so the average depends heavily on which vulnerabilities made the list.<sup id="fnref:2"><a href="#fn:2" class="footnote-ref" role="doc-noteref">2</a></sup></li> <li><strong>Two prompts tell agents to apply the wrong fix.</strong> Those prompts account for 22% of the data. Combining them with ordinary repair attempts makes the reported rate depend partly on how often the researchers chose to give agents bad advice.</li> <li><strong>More than a third of the trials prohibit testing.</strong> One evaluation mode prevents agents from building or running code and accounts for 36% of the data. The headline combines those trials with experiments in which agents could test their patches and act on the results.</li> <li><strong>The models ran at different reasoning settings.</strong> GPT-5.5 ran at medium effort and Opus 4.8 at high. These were the tools’ defaults. Neither model was tested at its highest available setting, and the authors did not measure how increasing effort affected the results.</li> </ul> <p>1Password’s headline also obscures a useful result in its own data. We reanalyzed the patches and recorded test results published with the study, keeping trials where agents could run code and were not instructed to apply the wrong fix. <strong>In those trials, 2,634 of 3,067 patches generated by 1Password’s models (86%) blocked the supplied exploit.</strong> We excluded runs that the study classified as having consulted the upstream fix. Blocking that exploit does not establish a complete repair, but these results show useful patching capability under reasonable working conditions that the headline fails to convey.</p> <p>The instructions and grading introduce further problems, several of which <a href="https://www.flyingpenguin.com/disinformation-pushed-by-1password-ai-patching-report-is-false/">Davi Ottenheimer</a> has also highlighted:</p> <ul> <li><strong>The stopping rule and grading criteria disagree.</strong> Agents given a proof-of-concept exploit were instructed to stop once their patch defeated it. The grader then evaluated vulnerable paths that the supplied exploit did not exercise.</li> <li><strong>The grading penalizes intended behavior changes.</strong> Agents were told to leave existing tests untouched, even though a correct fix can require updating tests to reflect changed behavior. We found that 8% of ActiveMQ verdicts penalized an intended behavior change as a regression.</li> <li><strong>The automated grades disagree with human review.</strong> Models grading their own patches matched human reviewers on the full five-category outcome in 65.9% of reviewed cases. Agreement was 87.7% for whether the original bug was fixed and 70.5% for whether new bugs were introduced. (<a href="https://1password.com/files/resources/frontier-models-vulnerability-patches-flawed.pdf#page=17">Table 24</a>)</li> <li><strong>Changing the reviewer changes the result.</strong> The two models assigned different outcomes to 36.8% of the same patches. The headline averages their assessments. (<a href="https://1password.com/files/resources/frontier-models-vulnerability-patches-flawed.pdf#page=16">Table 20</a>)</li> <li><strong>The Linux reference fix contains a vulnerability.</strong> The authors found 248 generated patches that repeated an off-by-one error in the upstream fix. The automated grader caught that new vulnerability in only 24 of them. (<a href="https://1password.com/files/resources/frontier-models-vulnerability-patches-flawed.pdf#page=20">Section 4.4</a>)</li> <li><strong>The Chromium grader accepts incomplete repairs.</strong> It marked many patches as clean even though they left a use-after-free vulnerability in a callback. (<a href="https://1password.com/files/resources/frontier-models-vulnerability-patches-flawed.pdf#page=24">Section 4.9</a>)</li> </ul> <p>The grading errors can penalize valid fixes and let vulnerable patches pass. Combined with the handpicked sample and deliberately bad instructions, they leave the report without a credible basis for its headline. <strong>Defenders should not take 1Password’s headline rate seriously as a measure of AI patching ability.</strong></p> <h2 id="developers-get-one-in-eight-fixes-wrong-under-ideal-conditions">Developers get one in eight fixes wrong under ideal conditions</h2> <p>Understanding agent failures also requires understanding how often developers submit incomplete fixes. Our security consulting work gives us a detailed record of how developers repair vulnerabilities in their own software. We give clients detailed vulnerability reports, then conduct a “<a href="https://github.com/trailofbits/publications">fix review</a>” to check whether their proposed patches fully resolve the issues.</p> <p>Our records connect each vulnerability to the developer’s first proposed fix and our assessment of whether it worked. They preserve unsuccessful attempts that developers revise before an issue is considered resolved.</p> <p>We reviewed the first fixes submitted for 2,265 vulnerabilities across 236 Trail of Bits security assessments from 2024 to 2026. The developers maintained the affected software, had detailed reports from our engineers, and knew we would review their patches. Even under those favorable conditions, 283 first fixes failed to fully resolve the reported issue: 12.5%, or one in eight.</p> <p> <figure> <img src="https://blog.trailofbits.com/2026/09/15/1passwords-ai-patching-benchmark-is-misleading/1password-image1_hu_34d317e989dba7a7.webp" alt="“Figure showing first fix submission outcomes”" width="1200" height="720" loading="lazy" decoding="async" /> <figcaption>Figure showing first fix submission outcomes</figcaption> </figure> </p> <p>Accounting for multiple fixes from the same assessment, the 95% confidence interval is <strong>10.5% to 14.5%</strong>. Sometimes we point out a mistake in a client’s patch during an informal conversation, and they correct it before the formal fix review. Those early failures may never appear in the review record, so our data can undercount failed first attempts. We also excluded cases where the available records did not establish whether the fix worked. A direct comparison with agents would require the same tasks and working conditions.</p> <h2 id="what-happened-to-our-patches-in-real-projects">What happened to our patches in real projects</h2> <p>Through Patch the Planet, our joint initiative with OpenAI, Trail of Bits has co-authored <a href="https://trailofbits.com/patch-the-planet/dashboard/">hundreds of patches</a> for widely used open-source projects. Agents wrote the patches with engineers directing the work and checking the results. Project maintainers then decided whether to merge, revise, or reject each submission.</p> <h2 id="how-maintainers-reviewed-patch-the-planet-patches">How maintainers reviewed Patch the Planet patches</h2> <p>We examined the public review history of every Patch the Planet submission in our dataset that maintainers had merged or closed by September 14, 2026: 186 pull requests. 1Password’s benchmark used six vulnerabilities selected because their fixes were complex.</p> <p>Maintainers merged 126 of our 186 pull requests, an acceptance rate of 67.7%.<sup id="fnref:3"><a href="#fn:3" class="footnote-ref" role="doc-noteref">3</a></sup> <strong>In 91 of those 126 pull requests (72.2%), maintainers accepted the security fix we originally proposed.</strong></p> <table> <thead> <tr> <th style="text-align: left">Review outcome</th> <th style="text-align: left">PRs</th> <th style="text-align: left">% of merged PRs</th> </tr> </thead> <tbody> <tr> <td style="text-align: left">Total merged</td> <td style="text-align: left">126</td> <td style="text-align: left">100%</td> </tr> <tr> <td style="text-align: left">Accepted with no security-relevant revision observed</td> <td style="text-align: left">91</td> <td style="text-align: left">72.2%</td> </tr> <tr> <td style="text-align: left">Accepted with security-relevant revision observed</td> <td style="text-align: left">33</td> <td style="text-align: left">26.2%</td> </tr> <tr> <td style="text-align: left">Indeterminate</td> <td style="text-align: left">2</td> <td style="text-align: left">1.6%</td> </tr> </tbody> </table> <p><em>Table 1: Changes requested by maintainers for 126 merged Patch the Planet pull requests. Security-related revisions include repairs to a proposed fix and expansions of its security coverage.</em></p> <p>Maintainer acceptance does not establish that every patch is correct.</p> <p>Maintainers closed the other 60 submissions without merging them. Most were superseded by other work or declined for policy, process, scope, or maintenance reasons. Four were explicitly rejected on technical grounds.</p> <table> <thead> <tr> <th style="text-align: left">Reason for closure</th> <th style="text-align: left">PRs</th> <th style="text-align: left">% of closed PRs</th> </tr> </thead> <tbody> <tr> <td style="text-align: left">Total closed without merge</td> <td style="text-align: left">60</td> <td style="text-align: left">100%</td> </tr> <tr> <td style="text-align: left">Superseded, reimplemented, or re-landed elsewhere</td> <td style="text-align: left">36</td> <td style="text-align: left">60.0%</td> </tr> <tr> <td style="text-align: left">Policy, process, scope, or maintenance reasons</td> <td style="text-align: left">14</td> <td style="text-align: left">23.3%</td> </tr> <tr> <td style="text-align: left">Duplicate or convergent with another fix</td> <td style="text-align: left">3</td> <td style="text-align: left">5.0%</td> </tr> <tr> <td style="text-align: left">Explicitly rejected on technical grounds</td> <td style="text-align: left">4</td> <td style="text-align: left">6.7%</td> </tr> <tr> <td style="text-align: left">Other or indeterminate</td> <td style="text-align: left">3</td> <td style="text-align: left">5.0%</td> </tr> </tbody> </table> <p><em>Table 2: Reasons maintainers closed 60 Patch the Planet pull requests without merging</em></p> <p>One of those closed submissions was our freenginx patch.</p> <h2 id="a-maintainer-and-an-agent-introduced-the-same-freenginx-crash">A maintainer and an agent introduced the same freenginx crash</h2> <p>1Password’s case study examines a Patch the Planet fix for a memory-safety bug in freenginx’s embedded Perl module. An agent wrote our patch under the direction of a Trail of Bits engineer. It left one vulnerable code path open and introduced a new crash during request cleanup. The paper’s criticism of our patch is correct.</p> <p>The maintainer closed <a href="https://github.com/freenginx/nginx/pull/35">our pull request</a> and committed <a href="https://github.com/freenginx/nginx/commit/cf26435a029e75af7b0a2e8a26b1eefe445890c6">a separate fix</a>. That fix covered all three vulnerable code paths but introduced the same crash during cleanup. The paper documents the maintainer’s regression too.</p> <p>Both authors encountered the same trap. The original bug allowed Perl to destroy a callback before freenginx used it.</p> <p>Both fixes kept the callback alive so freenginx could use it later. But if the request timed out first, freenginx would make the request unusable and then release the callback. Releasing it could run Perl code that still tried to use the request, crashing the worker. Both authors missed a problem their fix could cause later, during cleanup. Catching it required looking beyond the original bug to what happened when a request ended early.</p> <p>Two authors, one human and one agent, working separately, made the same mistake on the same bug. Readers deciding whether to use agents need to know how their failures compare with those of human developers. Establishing which is more reliable requires measuring both under comparable conditions.</p> <h2 id="we-checked-what-happened-after-our-patches-were-merged">We checked what happened after our patches were merged</h2> <p>We examined about 33,500 subsequent commits in Patch the Planet projects. When a later commit changed a file our patch had modified, we investigated whether it fixed a problem our patch had introduced. For each suspected regression, an agent attempted to demonstrate its impact with a proof of concept. Other agents and our engineers then challenged the findings.</p> <p>The review found at least ten functional bugs; four build, test, or release automation bugs; and one performance bug. It found no exploitable security vulnerabilities. Two examples illustrate the problems we identified:</p> <ul> <li>In go-jose, <a href="https://github.com/go-jose/go-jose/pull/240">PR #240</a> fixed a missing-header crash but exposed an existing validation gap, allowing encrypted messages to succeed even when their key length contradicted the declared algorithm. <a href="https://github.com/go-jose/go-jose/pull/266">PR #266</a> added explicit key-length checks before decryption.</li> <li>In Noble FROST, <a href="https://github.com/paulmillr/noble-curves/pull/250">PR #250</a> returned cached round-two results without first checking whether a retry contained the same authenticated transcript. Changed or stale retry data could therefore bypass that check. The maintainer <a href="https://github.com/paulmillr/noble-curves/commit/27a2133d492f7ec355caf41a45d40a51f0edb9ad">corrected the behavior</a> by validating retries against the original transcript before returning cached results.</li> </ul> <p>We are extending this investigation to every patch we authored, including patches with maintainer contributions. The findings will help us add checks that catch these failures before we submit future patches.</p> <h2 id="agent-skills-for-better-security-patches">Agent skills for better security patches</h2> <p>We are releasing two agent skills alongside this post: <a href="https://github.com/trailofbits/skills/tree/main/plugins/post-patch-validation">post-patch-validation</a> to help agents test security fixes, and <a href="https://github.com/trailofbits/skills/tree/main/plugins/review-walkthrough">review-walkthrough</a> to help engineers review code changes.</p> <p>Post-patch-validation is a new skill we wrote to help agents catch incomplete fixes and regressions before submitting patches for review. It was not used in the Patch the Planet work described above.</p> <p>The skill starts with a vulnerability report and the code before and after the patch. It guides the agent through four tasks:</p> <ul> <li><strong>Reproduce the original bug.</strong> The agent writes a check that must fail on the vulnerable code and pass on the patched version. A test that passes on both revisions cannot demonstrate a fix.</li> <li><strong>Test another path to the same failure.</strong> The skill requires at least one distinct variant based on the bug’s root cause, such as a different caller or a cleanup path.</li> <li><strong>Check for regressions and new vulnerabilities.</strong> It compares behavior that should remain unchanged and tests security properties around the modified code. The plan must also include project tests, a sanitizer check, or a bounded fuzzing run.</li> <li><strong>Treat broken test runs as inconclusive.</strong> A failed build or missing dependency must not be mistaken for evidence that a vulnerability was reproduced.</li> </ul> <p>Failed checks give the agent specific problems to investigate and repair before submitting its patch. The skill saves the tests and results so maintainers can see what was checked.</p> <p>To try post-patch-validation, <a href="https://github.com/trailofbits/skills/tree/main/plugins/post-patch-validation#installation">install the skill</a> and give your agent the vulnerability report and the vulnerable and patched revisions:</p> <p>“Use post-patch-validation to validate the patch in HEAD against <vulnerable-commit>, using the vulnerability report in <report-path>.”</p> <p><a href="https://github.com/trailofbits/skills/tree/main/plugins/review-walkthrough">Review-walkthrough</a> helps engineers review the patches they are responsible for merging. It turns a branch’s complete diff into an interactive walkthrough that explains the changes in a logical reading order. Review findings appear beside the relevant code, where engineers can inspect them and draft their own comments. The walkthrough can also prepare a GitHub review for submission. Follow the <a href="https://github.com/trailofbits/skills/tree/main/plugins/review-walkthrough#quick-start">quick start</a> to generate a walkthrough for your branch.</p> <p>These releases join our other public agent skills for improving security patches:</p> <ul> <li><a href="https://github.com/trailofbits/skills/tree/main/plugins/variant-analysis">variant-analysis</a> helps agents find related defects elsewhere in the codebase.</li> <li><a href="https://github.com/trailofbits/skills/tree/main/plugins/property-based-testing">property-based-testing</a> helps them test behavior across generated inputs.</li> <li><a href="https://github.com/trailofbits/skills/tree/main/plugins/mutation-testing">mutation-testing</a> helps them determine whether their tests detect incorrect behavior and identify missing assertions.</li> </ul> <p>We publish these methods so other teams can use them to examine and improve their own patches.</p> <h2 id="what-a-useful-patching-benchmark-should-measure">What a useful patching benchmark should measure</h2> <p>A useful patching benchmark should measure whether agents help developers produce correct fixes and how much review those fixes require. The principles in our <a href="https://blog.trailofbits.com/2018/10/05/how-to-spot-good-fuzzing-research/">2018 guide to evaluating fuzzing research</a> apply here:</p> <ol> <li><strong>Choose a sample that matches the research question.</strong> Explain how the sample was chosen and which repair work it represents. Difficult cases can expose failure modes. General failure rates require a representative sample.</li> <li><strong>Measure the effects of working conditions.</strong> Give agents appropriate tools and instructions. Report model configurations and test how reasoning settings affect results. Report misleading prompts and restricted tool access separately.</li> <li><strong>Make correctness verifiable.</strong> Check that patches fix the vulnerability beyond the supplied exploit. Test for security, functional, and performance regressions. Validate grades against expert review and publish the tests, configurations, and results.</li> <li><strong>Show how results vary.</strong> Report per-vulnerability outcomes and variation across repeated attempts. Repeating trials on the same bugs cannot establish that those bugs represent everyday patching.</li> <li><strong>Measure what agents contribute to the repair process.</strong> Compare developers working with and without agents on comparable tasks and under comparable conditions. Measure initial patch quality and the review and revision needed to reach a correct fix.</li> </ol> <p>We are optimistic about AI’s usefulness to defenders. Through Patch the Planet, we are committing engineering time to fixing vulnerabilities alongside the people who maintain the affected software. We examine failures so we can improve our methods.</p> <p>We will keep putting agents to work on difficult security problems and making the tools and lessons public. We want other teams to test our conclusions and take these methods further. Our goal is to give maintainers without dedicated security teams the ability to find and fix vulnerabilities that would otherwise go unaddressed.</p> <div class="footnotes" role="doc-endnotes"> <hr> <ol> <li id="fn:1"> <p>The paper defines a clean fix as fully resolving the vulnerability without materially changing application behavior. <a href="#fnref:1" class="footnote-backref" role="doc-backlink">↩︎</a></p> </li> <li id="fn:2"> <p>The six-target mean has a standard error of about nine percentage points, which the report does not disclose. <a href="#fnref:2" class="footnote-backref" role="doc-backlink">↩︎</a></p> </li> <li id="fn:3"> <p>As of September 14, 2026, our dataset contained 240 public upstream pull requests. We excluded the 54 submissions still open from the outcome analysis. We count pull requests, each of which can contain more than one patch, and exclude maintainer-written replacements from our merged total. <a href="#fnref:3" class="footnote-backref" role="doc-backlink">↩︎</a></p> </li> </ol> </div> It's Never Too Late to Learn - Kev Quirk https://kevquirk.com/its-never-too-late-to-learn 2026-09-15T10:21:00.000Z Kev Quirk <p>Last weekend my wife called me over to show me something on her phone. She was going through her old emails and came across some emails we had passed back and forth, from when we first met.</p> <p>She and I met in a club and went on a couple of dates, but then I deployed to Afghanistan with the Army. We continued to converse via email mostly, and phone where possible - this was before the days of FaceTime etc. - and the rest is history. That was in 2006, and 20 years later we're still very happily married with a couple kids.</p> <p>Anyway, upon reading the emails I immediately wanted the ground to swallow me up. Not because they were overly mushy or lovey dovey (they were), but because the spelling and grammar were <em>horrendous</em>. I was never a particularly academic kid - in fact, I was mostly disengaged in school and really didn't try. I was clever, but I never applied myself. I was too busy being a stupid teenager. As a result, my written English was awful (it's still not great now, but it's better).</p> <p>For example, I didn't know the difference between "<em>there</em>", "<em>they're</em>", and "<em>their</em>". And you can forget about "<em>your</em>" versus "<em>you're</em>". "<em>Too</em>" vs "<em>to</em>"? Not a chance. <em>Where</em>, <em>were</em>, and <em>we're</em> baffled me. I had no idea where a comma was supposed to go in a sentence, and I'd never even heard of an <em><a href="https://en.wikipedia.org/wiki/Serial_comma" rel="noopener noreferrer">Oxford comma</a></em>.</p> <p>You get the idea.</p> <h2>Fixing the problem</h2> <p>During my time in the Army, written English wasn't really needed, so I wasn't too concerned. But after getting out and finding a job in IT, it quickly became apparent that my lack of basic English knowledge would hold me back. So I decided to fix it, and enrolled in a night school course.</p> <p>To my surprise I <em>really</em> enjoyed it. It turned out that writing and learning are a lot of fun, and I was <em>constantly</em> looking for ways to practice my new found writing skills. I think that's part of why I still love typing - I just find creating words on a screen a lot of fun. Yeah, I'm weird. I know.</p> <p>So I completed the night school course and came away with much improved grammar and a desire to write all the things. But replying to emails and writing reports in work wasn't scratching the creative itch for me.</p> <h2>Discovering blogging</h2> <p>One of the services the IT company I worked for offered was web hosting. I'd never really got involved in any of that, so learning about DNS, web servers, MySQL etc. was really interesting. I'd done a bit of basic web design during my college IT course, but never anything more.</p> <p class="notice">"College" in the UK is different to college in the US. We call that <em>university</em> here. In <em>college</em> we do our A-levels, which are intermediate qualifications between high school and university. I don't have a degree.</p> <p>A few of our customers had WordPress sites, and it blew my mind. Here is a web application that I can host myself, on my own server, with my own domain name. Furthermore, I can write what I want <em>and</em> publish it on the web for anyone to read. This was the creative outlet I'd been looking for!</p> <p>So in 2010 I registered <code>kevquirk.com</code>, set up WordPress on a shared host, and started writing. Sixteen years later I'm still here, and still thoroughly enjoying writing on the web. Albeit <a href="https://kevquirk.com/design-history">no longer on WordPress</a>.</p> <h2>Final thoughts</h2> <p>It's funny how these seemingly unrelated things connect together in retrospect and take us down a road we never thought we'd walk. Back in 2000, when I was leaving high school, if you'd have asked my high school English teacher (<em>hi Mrs Daniels!</em>) if she thought I'd be producing creative writing on the web for 16 years, she'd have laughed in your face. Hard.</p> <p>But I am. And it's all thanks to a basic written English course that I attended for a couple of months, just to improve my writing to help me with work.</p> <p>I'm not really sure how to wrap this one up. I suppose my <em>final thought</em> is that it's never too late to learn. And you never know where it will take you. A simple thing like a basic English night course could end up forming the longest running, most enjoyable hobby you have in your life.</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=It%27s%20Never%20Too%20Late%20to%20Learn">reply to this post by email</a>, or <a href="https://kevquirk.com/its-never-too-late-to-learn#comments">leave a comment</a>.</p> </div>