Shellsharks Blogroll - BlogFlock https://blogflock.com/list/xJ8yq 2026-09-19T08:09:00.000Z BlogFlock shellsharks Amelia the Chicken - Kev Quirk https://kevquirk.com/amelia-the-chicken 2026-09-19T08:09:00.000Z Kev Quirk <p>We lost our favourite chicken last night. I know, just a chicken, right? Big deal. It's not like we lost a pet.</p> <p>But that's the thing, Amelia was more than <em>just a chicken</em>. She <em>was</em> a pet. She was very tame and would often come into the house to sit with one of us.</p> <p><img loading="lazy" src="https://kevquirk.com/content/images/amelia-the-chicken/1000006903.webp" alt="Amelia in the kitchen" /></p> <p>She would scratch around the kitchen while we were eating breakfast then quietly cluck at one of us to be picked up for cuddle.</p> <p><img loading="lazy" src="https://kevquirk.com/content/images/amelia-the-chicken/1000006905.webp" alt="Me and Amelia in the kitchen" /></p> <p>We named her after <a href="https://en.wikipedia.org/wiki/Amelia_Earhart" rel="noopener noreferrer">Amelia Earhart</a> because she was always the first of all our chickens to go exploring. Right from the moment we got our first 6 chickens, Amelia came up to us while the others hid. Often posing for photos.</p> <p><img loading="lazy" src="https://kevquirk.com/content/images/amelia-the-chicken/1000011914.webp" alt="Amelia on day 1, posing for a photo" /> <em>Amelia on day 1, posing for a photo</em></p> <p>It's very sad when you lose a pet, and although this won't hit us as hard as when we inevitably lose one of our dogs, it's still really sad. Both my wife and I have shed a few tears for Amelia this morning.</p> <p>We'll miss you, girl. x</p> <p><img loading="lazy" src="https://kevquirk.com/content/images/amelia-the-chicken/1000011915.webp" alt="the lovely Amelia" /></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=Amelia%20the%20Chicken">reply to this post by email</a>, or <a href="https://kevquirk.com/amelia-the-chicken#comments">leave a comment</a>.</p> </div> A day is short, a life is long - Kev Quirk https://kevquirk.com/a-day-is-short-a-life-is-long 2026-09-18T20:30:00.000Z Kev Quirk <div class="link card"><h2>A day is short, a life is long</h2><p class="post-author">by Kevin Wammer</p><p>Kevin talks about some of the stuff he's figured out in his life now that he's turned 35.</p><p><a class="button" target="_blank" href="https://overkill.wtf/posts/short-day-long-life">Read post ➡</a></p></div> <hr> <p>Really enjoyed this post because it's honest, level headed, and real. Since <a href="https://kevquirk.com/career-update">stepping down in work myself</a>, I too have realised that good enough is...<em>good enough</em>.</p> <p>Funny, huh?</p> <p>Kevin talks about a lot more than just his career, but I won't ruin a great read for you. Go check it out.</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=A%20day%20is%20short%2C%20a%20life%20is%20long">reply to this post by email</a>, or <a href="https://kevquirk.com/a-day-is-short-a-life-is-long#comments">leave a comment</a>.</p> </div> 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> Weeknote #2018 - Robb Knight • Posts • Atom Feed https://rknight.me/blog/weeknote-2018/ 2026-09-18T17:26:00.000Z Robb Knight <p>We've added new stickers to the St Jude fundraiser including a sparkly <a href="https:/jimothy.rknight.me">Jimothy</a>. You're gunna want this one. <a href="https://rknight.me/stjude">Donate here</a>.</p> <p>We've got a new garage door going in next week which means I'll be able to actually use the space to it's full potential. I'm more excited than I should be.</p> <p>Alex has been <a href="https://alexwlchan.net/2026/glancecast/">abusing ID3 chapters</a> to make "video" podcasts by setting chapter art every few seconds. This is glorious and terrible and I love it.</p> <p>I like the look of <a href="https://www.penaddict.com/blog/2026/9/14/platinum-komono-pq-1500-fountain-pen-review">the Platinum Komono</a> as a pen, but I am not a fan of any of the colours. Going to give this one a miss.</p> <p>These <a href="https://bungu.store/products/limited-campus-mountain-sticky-notes-kokuyo">mountain sticky notes</a> are amazing but I can't justify the shipping cost. If they pop up in the UK somewhere, I'll be getting them.</p> <p>Zach open-sourced his <a href="https://www.zachleat.com/web/solar-eclipse/">light/dark toggle component</a> <em>after</em> I implemented mine. Rude.</p> <p><a href="https://www.gameuidatabase.com/index.php">Game UI Database</a> is a fun resource.</p> <p>Andy added <a href="https://bell.bz/an-rss-feed-for-a-daily-album-recommendation/">an RSS feed that posts a random album</a> from his collection every day.</p> <p><a href="https://jakeasmith.com/blog/http-build-url/">My temporary PHP fix from 2014 has nearly 20M installs. Today I'm deprecating it</a>. Fun story.</p> <p>Wake up babe, <a href="https://www.nationalgeographic.com/animals/article/meet-the-first-new-cat-species-discovered-in-100-years">new cat just dropped</a>.</p> Who is my (pixel) neighbor? - Joel's Log Files https://joelchrono.xyz/blog/who-is-my-pixel-neighbor 2026-09-18T15:25:00.000Z joelchrono <p>A couple weeks ago I got an email from a guy named Oleh, mentioning that they added me to a new website/project called <a href="https://pxlarea.com">Pixel Area</a>, it is a 100x100 field of pixels, each of which can link to the blog or personal website of whoever claims it first.</p> <p>My spider senses tingled, because the email’s writing felt cold and distant, as if it was generated/translated by an LLM. However, the website looked legit, fun, and it was a genuinely interesting idea. Despite this, the footer featured links to a Bluesky (fine), Mastodon (good!) and… an X account (meh). I wondered if this was something I wanted to be involved, and continued my research.</p> <p>I checked the Mastodon account and saw a thread <a href="https://brennan.day">with Brennan</a>, who was questioning who was behind the site, if it was vibecoded, and if the blogs linked on it where added with permission.</p> <p>You can see <a href="https://social.lol/@brennan/117189929760185628">the short conversation there</a>, but I also decided to reach out about it by replying to the email I got, Oleh replied back soon enough.</p> <p>He seemed to me like a pretty honest guy who just doesn’t speak English very well and didn’t have a lot of experience programming websites. I am not going to quote things since I didn’t ask for permission, but Oleh confirmed it was assisted by an LLM, just like he did to Brennan, and mentioned all the work he did himself too, in the span of multiple months.</p> <p>I dislike the use of AI, I (hopefully) have been very clear about it, I think it can end up as a stain on what would otherwise be an awesome thing. I believe a project which is tied to technologies that have stolen and caused harm is not in the spirit of the indieweb or my blog.</p> <p>But, I also believe that a person or a project can be decent and improve for the better, despite our disagreement on that front.</p> <p>After all, <a href="https://bubbles.town">Bubbles</a>, a beloved project by a lot of the blogging community <a href="https://brennan.day/floating-up-an-interview-with-the-creator-of-bubbles-town-benjamin-behnke/">has used AI</a>, been criticized for it, and learned and improved because of it. I think that Pixel Area, which is a lot smaller in scope, can end up being a nice thing too and slowly get better. There is a human in there who did plenty of work one way or another. I also know the blogs there were picked by a person.</p> <p>I noticed too, that Oleh removed the link to X from the footer, a very good sign to me. I didn’t request for that to happen, I wonder if some others did, but I appreciate it nonetheless.</p> <p>Because of all of this, I decided to be OK with the project, and I even did my own pixel-art button on my footer, since the one in the website had a whole different style for my taste… Soon enough Oleh even asked me for permission to change his own design to be pixel art too, so if you now have a super cool 88x31 pixelart button, you can thank me for that ;)</p> <p>At the end of the day, it is a glorified and super cool blogroll, and I honestly can’t have enough of those.</p> <p>Many of the bloggers I follow were already there, some of them have already written about it.</p> <ul> <li><a href="https://wrywriter.ca/posts/pixel-area">Alex Wolf</a></li> <li><a href="https://mihobu.lol/weeknotes-week-37-2026#cool-stuff-on-the-web">Michael Burkhardt</a></li> <li><a href="https://theresmiling.eu/blog/2026/09/weeknotes-2026-37.html">theresmiling (Elena)</a></li> <li><a href="http://82mhz.net/posts/2026/09/linkdump-no-125/">82MHz (Andreas)</a></li> <li><a href="https://blog.avas.space/pxlarea/">Ava</a></li> </ul> <p>You can check the <a href="https://pxlarea.com/directory.html">full directory of websites</a> and see if you were added already. You can also request to be removed.</p> <p>Perhaps not all of the people I just linked above were aware of the fact some LLM assistance was used for this, and I am sorry if that has kind of ruined the enthusiasm.</p> <p>I hope Oleh learns and understands the craft that goes behind coding a website by hand, and hope he can rework and revise things in the future with a new perspective, maybe the community also reaches out to help reshape and guide the website together.</p> <p>A part of me still feels like a walking contradiction because of this, don’t get me wrong. Nut it’s how I feel at the moment! I like pixels what can I say?</p> <p>So, back to the question in the title! Right now you can find me at the <a href="https://pxlarea.com/x85y10">X:85, Y:10</a> coordinates, in the “Echo Heights” district. There are not a lot of neighbors in that area just yet, so if you want to be close to me and you are not part of Pixel Area yet, claim your pixel!</p> <p>This is day 39 of <a href="https://100DaysToOffload.com">#100DaysToOffload</a></p> <p> <a href="mailto:me@joelchrono.xyz?subject=Who is my (pixel) neighbor?">Reply to this post via email</a> | <a href="https://fosstodon.org/@joel/117292800028021721">Reply on Fediverse</a> </p> 2026-09-18 15:33: Finally! #ClicksCommunicator - Kev Quirk https://kevquirk.com/2026-09-18-1533 2026-09-18T14:33:00.000Z Kev Quirk <p>Finally! #ClicksCommunicator</p> <p><img loading="lazy" src="https://kevquirk.com/content/images/2026-09-18-1533/Screenshot-from-2026-09-18-15-32-37.webp" alt="Screenshot-from-2026-09-18-15-32-37" /></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=2026-09-18%2015%3A33">reply to this post by email</a>, or <a href="https://kevquirk.com/2026-09-18-1533#comments">leave a comment</a>.</p> </div> 2026-09-18 13:33: Absolutely gorgeous sky this morning. - Kev Quirk https://kevquirk.com/2026-09-18-1333 2026-09-18T12:33:00.000Z Kev Quirk <p>Absolutely gorgeous sky this morning.</p> <p><img loading="lazy" src="https://kevquirk.com/content/images/2026-09-18-1333/PXL_20260918_054140371.webp" alt="PXL_20260918_054140371" /></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=2026-09-18%2013%3A33">reply to this post by email</a>, or <a href="https://kevquirk.com/2026-09-18-1333#comments">leave a comment</a>.</p> </div> Theatre Review: The School for Wives - at Riverside Studios ★★★★★ - Terence Eden’s Blog https://shkspr.mobi/blog/?p=75485 2026-09-18T11:34:51.000Z Terence Eden’s Blog <p>The <a href="https://flywheeltheatre.com/">Flywheel theatre company</a> are reviving the rep tradition by having five actors perform five different plays in five weeks. Their interpretation of Molière's classic is gaudy and hilarious. Even the lighting cues are funny!</p> <p>It is fair to say that School for Wives isn't exactly an uncontroversial play. The plot basically boils down to "Women! Eh? You can't live with them, you can't easily groom them from the age of four and keep them imprisoned so they become perfect submissives."</p> <p>Is the fear of cuckoldry funny? Is it OK to laugh at a jealous rage which leads to controlling behaviour? Should we find joy in the emotional torment of our characters?</p> <p>Yes! Yes! And yes!</p> <p>The cast squeeze every last drop of humour from the script, the direction is nimble, and the play has been edited down to a more manageable 75ish minutes (plus extra time for corpsing and applause).</p> <p>A simply joyous production which left us grinning throughout.</p> <p>You can <a href="https://riversidestudios.co.uk/whats-on/uqe-rep-radical-classical/">see all their upcoming shows</a> - which are very reasonably priced.</p> <h2 id="pre-show-and-post-show"><a href="https://shkspr.mobi/blog/2026/09/theatre-review-the-school-for-wives/#pre-show-and-post-show">Pre-Show and Post-Show</a></h2> <p>I'm a believer in making the entire visit to the theatre a special experience. Riverside Studio, Hammersmith is a great venue with generous foyer space and more than adequate toilet provision. Not a given in London theatres!</p> <p>The theatre programme is digital and provided via QR code. No £6 rip off for a booklet full of adverts here.</p> <p>As we walked in, the cast were dotted around the stage an in the auditorium doing various bits of business which made for a jolly start.</p> <p>Post curtain call there was a lovely speech from the cast thanking us for attending and letting us know about their future projects. Nothing wrong with a piece of shameless advertising to a captive audience 😄</p> <p>Overall an excellent theatrical experience.</p> <img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=75485&HTTP_REFERER=Atom" alt width="1" height="1" loading="eager"> Shotbox - Robb Knight • Posts • Atom Feed https://rknight.me/blog/shotbox/ 2026-09-18T11:07:52.000Z Robb Knight <p>Since I made <a href="https://doodlescan.rknight.me">Doodle Scan</a> I've had a bunch of ideas of things I can do with image manipulation — it led to me finally doing <a href="https://favicons.rknight.me">my favicon generator</a>. The third idea, the tool trilogy if you will, was to replicate a simple version of what <a href="https://cleanshot.com">CleanShot</a> does — adding a background, padding, and rounding corners to a screenshot.</p> <p>I have CleanShot but sometimes I'm on my phone or a computer that doesn't have it installed. I like to think I'm pretty good at naming things but this is not one I'm particularly happy with. Regardless, <a href="https://shotbox.rknight.me">ShotBox</a> is live and does the main thing I use the CleanShot editor for — padding, coloured backgrounds, add shadow, download it as a PNG. Simple.</p> <figure><img src="https://cdn.rknight.me/site/2026/shotbox-example.jpg" alt="A screenshot of my website with a pink and purple gradient in the background" /></figure> Auditing in the age of (good enough) AI - Trail of Bits Blog https://blog.trailofbits.com/2026/09/18/auditing-in-the-age-of-good-enough-ai/ 2026-09-18T11:00:00.000Z Trail of Bits Blog <p>Security firms have published numerous blog posts describing how they pointed their agent harness at a codebase and found dozens of bugs (<a href="https://blog.trailofbits.com/tags/patch-the-planet/">we’re one of them</a>). However, these posts tend to focus on agentic code review, which is just one aspect of how we use AI in our security reviews. We want to give a different perspective: before code review even starts, agents now allow us to build custom tooling and formal models that improve the quality and depth of our reviews.</p> <p>We recently reviewed the Miden VM, a new zero-knowledge VM with its own custom assembly language and almost no developer tooling. To prepare, we spent six months having our agents build an <a href="https://github.com/trailofbits/masm-lsp">LSP server</a>, a <a href="https://github.com/trailofbits/masm-decompiler">decompiler</a>, a <a href="https://github.com/trailofbits/masm-lsp/tree/main/crates/masm-analysis">static analysis engine</a>, and a <a href="https://github.com/trailofbits/masm-lean">Lean model of the VM executor</a> from scratch. These tools found real security issues, like an unvalidated prover-supplied input that would let a malicious prover forge Falcon signatures and steal funds from Miden account holders. Additionally, the Lean work produced 95 machine-checked correctness proofs, covering a large component of the Miden core library.</p> <h2 id="auditing-the-miden-zkvm">Auditing the Miden zkVM</h2> <p>In late 2025, the Miden team came to us to have parts of their <a href="https://docs.miden.xyz/reference/miden-vm/">zero-knowledge VM</a> reviewed before launch. Part of the review was scoped to cover the Miden core library, which contains a small set of cryptographic primitives written in a custom assembly language called <a href="https://docs.miden.xyz/reference/miden-vm/user_docs/assembly/">Miden assembly</a> (MASM). This made us genuinely excited, as it was right up our alley: a high-assurance project writing complex cryptographic code in a low-level custom assembly language that we had never seen before. At the same time, it also presented some unique challenges.</p> <p> <figure> <img src="https://blog.trailofbits.com/2026/09/18/auditing-in-the-age-of-good-enough-ai/auditing-ai-figure-1_hu_e9e13470729ab3cb.webp" alt="“Two code listings side by side: a MASM procedure computing the XOR of two 128-bit values, and the same procedure implemented in 32-bit x86 assembly”" width="1200" height="500" loading="lazy" decoding="async" /> <figcaption>Figure 1: The left image shows a MASM procedure computing the XOR of two 128-bit values (represented as 32-bit limbs). The right image shows the same procedure implemented using 32-bit x86 assembly code.</figcaption> </figure> </p> <p>To start, the Miden VM implements a <a href="https://en.wikipedia.org/wiki/Stack_machine">stack-machine architecture</a>. This means that each instruction operates on values read from the stack, and the result of the instruction is then written back to the top of the stack. While conceptually simple, this makes code written in MASM challenging to review, since instruction inputs and outputs are read from the stack and are always implicit. Additionally, since the Miden VM is a completely new architecture, very little existed in terms of developer tooling like IDE support, Language Server Protocol (LSP) servers, and linters.</p> <p>We knew that we had six months to prepare for the review, since the implementation was not yet feature complete, so we asked ourselves: <em>“What could we spend our time and tokens on to make sure that the review would root out as many bugs as possible in the codebase?”</em></p> <!-- markdownlint-disable MD026 --> <h2 id="building-all-the-tools">Building all the tools!</h2> <!-- markdownlint-enable MD026 --> <p>Since MASM lacked developer tooling, we started out by asking ourselves what kind of tools we would like to have available when the project started. We typically use VS Code to review code, and syntax highlighting and code navigation are essential for readability and being able to follow data flow throughout a codebase. We needed an LSP server and a corresponding VS Code extension for this, and within a few days we had Claude build a <a href="https://github.com/trailofbits/masm-lsp">working prototype</a> that provided most of the functionality we wanted: features like syntax highlighting, goto definition, finding code references, and displaying procedure docstrings on hover. With these fundamental features in place, we also decided to add more language-specific features like displaying inline instruction documentation, and stack effects for individual instructions.</p> <p> <figure> <img src="https://blog.trailofbits.com/2026/09/18/auditing-in-the-age-of-good-enough-ai/auditing-ai-figure-2_hu_a8d3f4dbce9cf99f.webp" alt="“Figure showing code annotated with inline stack effects and instruction documentation helps prevent the context switch required to look up instruction semantics elsewhere”" width="1200" height="724" loading="lazy" decoding="async" /> <figcaption>Figure 2: Annotating the code with inline stack effects and instruction documentation helps prevent the context switch required to look up instruction semantics elsewhere.</figcaption> </figure> </p> <p>Having built the LSP server, we started thinking about other ways to provide high-level semantic information to support manual and agent-driven review. We thought it would be interesting to see if we could provide faithful decompilation for MASM procedures inside the VS Code UI, to help the reviewer quickly understand the high-level control flow and data flow of the procedures they were looking at. For MASM, this is a harder problem than it first appears. Stack machine lifting and decompilation is a well-studied problem, but decompiling hand-written MASM is still difficult for a number of reasons.</p> <ol> <li> <p>Most procedures in the core library do not have declared signatures, which means that the number of inputs and outputs must be inferred from context.</p> </li> <li> <p>MASM procedures do not conform to a well-defined calling convention, and the net stack effect of such calls is generally impossible to determine statically. This means that all analysis failures propagate up the call chain.</p> </li> <li> <p>While-loops do not need to be stack neutral, which means that the while-loop condition may occupy a different stack slot in each iteration. This also makes it impossible to map instruction inputs to stack slots for subsequent instructions.</p> </li> <li> <p>Different branches in conditional statements may have different stack effects, which similarly makes stack tracking and signature inference challenging.</p> </li> </ol> <p>This meant that we could not expect to be able to decompile all MASM procedures if we also wanted the decompiled output to be correct. We therefore focused on decompiling a well-defined subset of MASM correctly. During the development of the decompiler, we alternated between using Claude for planning and development and Codex for code review. Whenever we had implemented a new feature, we had agents decompile a randomized set of procedures from the core library and compare the result to the original MASM to look for regressions. Any issues found were added as regression tests to be fixed by the model.</p> <figure> <p> <img src="https://blog.trailofbits.com/2026/09/18/auditing-in-the-age-of-good-enough-ai/auditing-ai-figure-3_hu_c721639b7435d1e3.webp" alt="“The eqz MASM procedure shown above its decompiled pseudocode”" width="1200" height="467" loading="lazy" decoding="async" /> </p> <figcaption>Figure 3: The <code>eqz</code> procedure, which tests if a 256-bit integer (represented as eight 32-bit limbs) is equal to zero, together with the corresponding decompiled pseudocode</figcaption> </figure> <p><a href="https://github.com/trailofbits/masm-decompiler">The decompiler</a> represented the single largest effort of the tooling development for this project, with over 100 AI-generated commits over multiple months. The main benefit of this work turned out to be the decompiler’s internal analysis frameworks and intermediate representation, which we could reuse for static analysis, rather than the full decompilation pipeline.</p> <p>With the decompiler in place, we had access to an intermediate representation of each procedure, with instruction inputs and outputs populated as expressions. This allowed us to bring all the standard static analysis machinery (like data flow analysis) to bear on the problem of finding bugs in the MASM code. We used this to <a href="https://github.com/trailofbits/masm-lsp/tree/main/crates/masm-analysis">build a number of analysis passes</a> over the intermediate representation, answering questions like the following:</p> <ol> <li> <p>Are prover-supplied advice values<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup> like remainders and modular inverses properly validated?</p> </li> <li> <p>Are type constraints (e.g. an input being a 32-bit integer or a boolean) enforced?</p> </li> <li> <p>Are local variables initialized across all execution paths?</p> </li> </ol> <p>One way to explore these issues is abstract interpretation. The idea behind this technique is simple. Instead of running the program with real numbers, the analysis tracks the types of values that could be on the stack at each step, like “a 32-bit integer” or “unknown.” It walks through the code again and again until no new information is found. Since it always keeps track of every possible value (with a little extra room), it can never miss a real case. So if a check passes in the analysis, it is guaranteed to hold in every actual run of the program.</p> <p>We used Claude and Codex to build a general abstract interpretation engine, and then implemented a number of concrete analysis passes on top of it, having the agents switch between development and code review as described above. We also decided to have the agents design and build command-line interfaces for both the decompiler and a new MASM linter to make the new tools available to agent-driven code-review workflows as well.</p> <!-- markdownlint-disable MD026 --> <h2 id="finding-all-the-bugs">Finding all the bugs!</h2> <!-- markdownlint-enable MD026 --> <p>During the actual review, these analyses identified over 400 unique locations<sup id="fnref:2"><a href="#fn:2" class="footnote-ref" role="doc-noteref">2</a></sup> where type validation could be improved (all of them reachable from the public API of the library) as well as one high-severity finding.</p> <p> <figure> <img src="https://blog.trailofbits.com/2026/09/18/auditing-in-the-age-of-good-enough-ai/auditing-ai-figure-4_hu_8efce6f8bb58483a.webp" alt="“Figure showing the remainder read from the advice stack, but not validated to ensure that it is a valid 64-bit integer”" width="1200" height="870" loading="lazy" decoding="async" /> <figcaption>Figure 4: The remainder is read from the advice stack, but is not validated to ensure that it is a valid 64-bit integer.</figcaption> </figure> </p> <p>The high-severity issue was due to an underconstrained advice value in the <code>mod_12289</code> procedure, which reduces a 64-bit value modulo <code>12289</code>, with a quotient and remainder provided as advice values by the prover. The quotient is checked to ensure that it is a valid 64-bit value (represented as two 32-bit limbs), but the remainder is never validated before it is passed to the 32-bit instruction <code>u32overflowing_sub</code>. By carefully varying the quotient and remainder to ensure they still satisfy the constraints imposed by the subtraction, we found that it was possible to have <code>mod_12289</code> return a value that is not the correct remainder. A malicious prover could exploit this to forge Falcon signatures and drain any Miden account controlled by a Falcon key pair.</p> <h2 id="but-what-if-there-are-no-bugs">But what if there are no bugs?</h2> <p>All this work meant that we had a comprehensive set of tools to support both manual and agent-driven code review coming into the audit. However, we’d had a long time to think about other ways to support the manual review process, and we had more ideas that we wanted to test. For example, if the procedures in the core library were implemented correctly and did not contain bugs, would it be possible to prove this using a proof assistant like <a href="https://lean-lang.org/">Lean</a>?</p> <p>It turns out that the Miden VM is very amenable to formal modeling, since the instruction set is small and most instructions are side-effect free. To formally model MASM, we started by implementing a minimal <a href="https://github.com/trailofbits/masm-lean">Miden VM executor in Lean</a>, and had Claude build an automatic translator from MASM procedures to Lean. During the review, we had multiple agents working in parallel to prove correctness of as many procedures as possible across the library. Since the Lean kernel could validate that the generated proofs were correct, we only needed to manually audit the theorem statements to ensure that each theorem proved the right correctness property for the corresponding procedure. To ensure that the theorems were easy to review, we introduced Lean types for field elements and the integer types implemented in the core library. This meant that at a high level, most correctness properties could be expressed in the following form:</p> <figure> <blockquote> <p>If the stack is given by <code>[x<sub>1</sub>, x<sub>2</sub>, x<sub>3</sub>, ..., x<sub>n</sub>, ...]</code> and we execute the procedure <code>P</code>, then <code>P</code> terminates and the stack is given by <code>[P(x<sub>1</sub>, x<sub>2</sub>, x<sub>3</sub>, ..., x<sub>n</sub>), ...]</code>.</p> </blockquote> <figcaption>Figure 5: High-level statement of correctness for the procedure <code>P</code> with <code>n</code> arguments</figcaption> </figure> <p>Our agent-driven formal modeling efforts resulted in 95 correctness proofs that covered all of the binary arithmetic components of the core library. This work also identified two subtle bugs that the existing unit test suite did not catch. The first was an edge case in the 64-bit right-rotation <code>rotr</code>, which behaved incorrectly on large inputs greater than the Goldilocks prime if the rotational shift was a multiple of 32. The second was an issue in the 256-bit multiplication <code>wrapping_mul</code>, which dropped caller-owned values from the stack before returning.</p> <figure> <p> <img src="https://blog.trailofbits.com/2026/09/18/auditing-in-the-age-of-good-enough-ai/auditing-ai-figure-6_hu_d39d76732eadbe64.webp" alt="“Figure showing manual review results”" width="1200" height="174" loading="lazy" decoding="async" /> </p> <figcaption>Figure 6: Manual review identified that the correctness proof for the 64-bit <code>rotr</code> procedure required an additional assumption (that <code>shift mod 32 ≠ 0</code>) to allow the proof to go through.</figcaption> </figure> <h2 id="why-we-couldnt-have-done-this-two-years-ago">Why we couldn’t have done this two years ago</h2> <p>The tools we developed leading up to this engagement, and the Lean libraries and proofs generated during the review, are all side projects that we wouldn’t have been able to dedicate time or resources to just one or two years ago. Projects like these are often highly exploratory in nature, and the end results and potential payoff may be difficult to predict. In practice, this means that it is hard to sell clients on them in advance. However, over the last year, agents became good enough to carry non-essential projects like these with only light supervision, which completely changed the economics of which projects are worth pursuing. Today, a failed side project only costs tokens.</p> <p>With Miden, the benefits of all this preparatory work were clear. The LSP server and static analysis engine improved our manual review coverage, strengthened agent-driven reviews, and identified real security issues in the codebase that could have led to millions of dollars in lost funds. The AI-generated Lean correctness proofs also improved assurance across a large and fundamental component of the library, allowing the team to continue building on it with confidence. The team has adopted the static analysis engine developed for the review, which means that our side project will now also help secure future updates to the Miden core library.</p> <p>On a personal note, this has been one of the more interesting projects I have worked on during my years at Trail of Bits. If you find this type of work interesting, or if you are building something similar, <a href="https://trailofbits.com/contact/">get in touch</a>. We want to hear about it!</p> <div class="footnotes" role="doc-endnotes"> <hr> <ol> <li id="fn:1"> <p>These are precomputed inputs that are supplied via a separate advice stack by the prover, and need to be validated carefully. <a href="#fnref:1" class="footnote-backref" role="doc-backlink">↩︎</a></p> </li> <li id="fn:2"> <p>Most of these findings were due to the fact that almost all procedures in the core library were part of the public API, which meant that third-party developers could call them without proper validation. <a href="#fnref:2" class="footnote-backref" role="doc-backlink">↩︎</a></p> </li> </ol> </div> 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">