Shellsharks Blogroll - BlogFlock2026-05-21T21:15:24.695ZBlogFlockAdepts of 0xCC, destructured, fLaMEd, Trail of Bits Blog, Aaron Parecki, Westenberg, James' Coffee Blog, gynvael.coldwind//vx.log (pl), joelchrono, Evan Boehs, cool-as-heck, Kev Quirk, Posts feed, Sophie Koonin, cmdr-nova@internet:~$, <span>Songs</span> on the Security of Networks, Johnny.Decimal, Werd I/O, Robb Knight, Molly White, Hey, it's Jason!, Terence Eden’s BlogWhy micropayments can't save news - Werd I/O6a0f15982862270001fd47472026-05-21T14:29:00.000Z<img src="https://storage.ghost.io/c/18/7c/187cc681-d3f3-49fc-87de-b01d06b76821/content/images/2026/05/evelyn-clement-TjvEfjXIb_s-unsplash.jpg" alt="Why micropayments can't save news"><p>In an interview with Nicholas Thompson last month, <a href="https://www.niemanlab.org/2026/05/sam-altman-backs-micropayment-model-for-ai-agents-to-compensate-publishers/?ref=werd.io">OpenAI CEO Sam Altman backed a micropayments strategy for news</a>:</p><blockquote>“What really makes sense in a world of agents is we try a sort of micropayment-based approach. […] My agent can read it, pay $0.17, and give me a summary of that. If I want to go read the whole article, pay $1, or however that works. If my agent wants to calculate something for me that’s really difficult to do, it can go rent some cloud compute somewhere and pay for that, but I think there will be need to be a new economic model for these agents doing lots of small transactions and exchanges of value with each other on behalf of their human controllers or whatever, all of the time.”</blockquote><p>What he describes is a combination of pay-per-view and a utility model. In pay-per-view, you’re paying a custom price set by the publisher in order to access a resource; you as the user might get a prompt asking whether you approve the transaction, or you might just give it an approved budget. When he talks about an agent renting cloud compute, it would likely be paying based on usage like a utility, with financial transactions similarly carried out behind the scenes. It’s not really different from the Spotify model in the sense that artists are paid per stream; there it’s a percentage of your total listens, whereas here it’s probably a total budget that you preload into a wallet.</p><p>This keeps coming up in software circles: I’ve heard, again and again, that an approach like Altman describes would help provide revenue for publishers in an AI-intermediated information ecosystem. I disagree; while I think there’s certainly value for utility-style pricing on the web, proposals to use it for news are based on a misunderstanding of how journalism is valued and paid for today, set up the wrong incentives for publishers, and conflate every kind of publisher into one very flat model.</p><p>So, let’s talk about it.</p><p>First, it’s important to understand what a micropayment actually <em>is</em>. Then I’ll discuss the incentives micropayments create, how they might apply to different kinds of publishers, where micropayments <em>might</em> be useful, and how platform owners might embrace the needs of publishers more directly in an agentic ecosystem.</p><h3 id="what-is-a-micropayment">What is a micropayment?</h3><p>Micropayments are small payments — sometimes a fraction of a cent — that are charged to access digital goods or services. Usually, this happens more or less automatically: you load a wallet connected to your web browser or AI agent, and then when you or your agent visit a resource, a small payment is made. This could be a flat fee or it could be charged as a percentage of your total browsing for the month.</p><p>There have been a number of attempts to make micropayments work on the web. <a href="https://en.wikipedia.org/wiki/Flattr?ref=werd.io">Flattr</a> was an early example: a browser extension that paid for content on your behalf. It struggled with getting enough people to fund their wallets and was faced with the high underlying transaction fees associated with credit card payments. It ultimately shut down in 2023. The Brave browser <a href="https://brave.com/blog/introducing-brave-payments/?ref=werd.io">attempts something similar through cryptocurrency</a>.</p><p>Today, the <a href="https://interledger.org/?ref=werd.io">Interledger Foundation</a> is working on creating an open protocol that can be used for micropayments, among other kinds of compensation. The protocol is intended to overcome the kinds of financial friction that Flattr experienced. The Foundation is working hard on the problems I’ll raise here in the rest of the piece.</p><h3 id="we%E2%80%99ll-make-it-up-in-volume">We’ll make it up in volume</h3><p>Clickbait is enabled at scale on the web by display advertising. Because the revenue received by a publisher is directly connected to the number of pageviews they receive, publishers that are entirely tethered to this model have two incentives:</p><ol><li>To drive as much traffic as possible to their articles</li><li>To lower the cost of each individual article as much as possible</li></ol><p>That’s led to an information ecosystem where many publishers produce low-quality content with misleading headlines in an effort to get as many people as possible to look at them. For many, it doesn’t even matter if the article is true; the reader doesn’t build a long-term trust relationship with the publisher and likely won’t come back unless they’ve been hoodwinked into looking at another one. These publishers are the tourist traps of the internet. There’s no ongoing relationship, so there’s no duty of care.</p><p>Micropayments are effectively this model, with the difference that nobody has to look at an ad. Revenue is directly tethered to traffic, like a display ad model; the difference is that the money for a publisher comes from the reader’s pocket instead of the advertiser’s.</p><p>Not only does this continue to incentivize clickbait, but these publishers are now competing for the checkbooks of millions of people rather than a few well-funded advertisers. In an advertising-based world, every visitor is highly likely (ad blockers excepted) to produce a small amount of revenue; in a distributed wallet world, we’re relying on individuals to be well-funded.</p><p>It’s also worth considering the full user journey. For a reader to arrive at a particular article, one of two things is happening:</p><ol><li>The reader has discovered the article off-platform, perhaps through a social media post or a search engine result</li><li>The reader already trusts the publication and is seeking out their information specifically</li></ol><p>In the first case, the publisher is incentivized to find ways to surface their work. That will be through a combination of tried and tested methods like social media audience work, paid acquisition, and SEO. But they have to do this work <em>for every single article, for every single reader</em>. The most efficient thing they can do is try to build an ongoing relationship with that reader so they don’t have to work as hard for that reader’s second pageview. In other words, the most desirable end state for a cold interaction with a reader is some kind of trusted relationship: they want the reader to sign up for a membership.</p><p>In the second case, a trust relationship has already been established. Here, too, the most desirable end state is for the reader to have a membership. Because the reader already trusts the publication, it’s the most desirable end state for <em>them</em>, too: they likely want to prioritize this publication over other sources that are less trusted by them.</p><h3 id="okay-but-what-about-agents">Okay, but what about agents?</h3><p>There’s an argument to be made that, in an agentic world, the relationship isn’t between the publication and the reader; instead, the AI vendor sits in the middle as an intermediary. That’s much worse. Rather than allowing every reader to build their own information landscape, the decisions made by companies like OpenAI about which sources are trustworthy will affect the information that <em>everybody</em> receives. If agents build their own trust relationships with publications, the underlying assumptions that dictate how those agents select sources and process their information govern how everybody learns about the world around them.</p><p>Micropayments probably <em>are</em> the financial backbone of that world, but I’d argue that it’s not a world we want to live in. On the other hand, if agents act based on human reader preferences, then the relationship returns to being between the publication and the reader, and we’re back to the incentives <em>for both readers and publishers</em> tending towards membership.</p><p>If an agent-first world really is coming — and, to be clear, the jury’s still out — then finding ways to encode memberships into the underlying protocols and mechanisms is important. Micropayments are ephemeral.</p><h3 id="publishers-are-not-monolithic">Publishers are not monolithic</h3><p>When we talk about “publishers” we miss a ton of nuance. What works for a local for-profit paper is not the same as what works for a non-profit national news website is not the same as what works for a premium international newspaper. These businesses all try to serve their communities with information, but they have different financial dynamics, communities, and needs. There are multiple overlapping spectra of business models, information types, communities served, publishing surfaces, and more.</p><p>At some intersections, micropayments might make more sense than others. For example, if a local for-profit paper is serving event listings for the area, it might quite reasonably charge an agent to access it as a dataset on a utility basis. In general, micropayments do make sense as a way to access raw datasets or lists of facts; you don’t establish a trust relationship with a spreadsheet.</p><p>But even then, it’s heavily dependent on the nature of the publisher. If it’s a non-profit paper, those charges might not fit within its mission. If we’re instead talking about ongoing, in-depth qualitative reporting on the characters behind a neighborhood, rather than flat facts, or an ongoing series by a journalist with a specific point of view, a reader might want to establish a subscriber or member relationship. But that, in turn, might make more sense for a for-profit publisher, while a non-profit might be serving its articles for free but asking for a donation. (Or it might not! There’s nothing <em>requiring</em> that it does this.)</p><p>The medium matters, too: some models work better with the ways people interact with text, others with the ways people watch video. You also need to consider the characteristics of the intended audience. <em>Can</em> they pay for a micropayment or a membership, or does informing them require some other kind of underwriting like non-profit donations from an institutional backer or, yes, advertising? If we only inform audiences who can pay, we create news deserts in the communities that might need real reporting the most.</p><p>There’s no single solution. Every publisher needs to figure out the business model that’s right for it based on its specific context, mission, audience, and focus.</p><p>There’s a real distinction between commodity facts (a stock price, a sports score, an event listing) and the analytical, contextual, investigative work that makes journalism valuable. The latter is an ongoing process of building trust. It’s not ephemeral; it is relationship-based. And although, as I’ve discussed, there are also real differences across publisher type, medium, and community, it’s generally not a good fit for micropayments.</p><h3 id="so-what-should-platforms-do">So what should platforms do?</h3><p>I’ve discussed that publishers need to navigate all their contextual factors and choose the business model that’s right for them from first principles. Platform owners would likely prefer that publishers all use the same template — it’s much easier to build a scalable platform that way. Sam Altman isn’t just thinking about how to provide compensation to publishers; he’s also considering what would result in the least friction for his business.</p><p>Micropayments are useful for people who build agentic platforms because they reduce friction. The user asks for information (or the system contextually decides they need to see it); the system serves up that information. The micropayment transaction happens behind the scenes in a non-interruptive way.</p><p>Supporting trust relationships can be similarly non-interruptive, but they require a little more thought. Today, the thinking is that AI agents will use protocols like MCP to request information from sources. The protocol might change in the future, but the principle probably remains the same: it’s an API that happens to be designed for AI systems rather than traditional client applications.</p><p>Adding a mechanism for explicit calls to action would be a great start. This would allow the publisher to prompt the user to start a membership. The publisher would receive more information about the reader, as well as potentially some revenue; in turn, the reader would receive access to more articles or data that their agent could use.</p><p>One embodiment of this is that a user could subscribe to a publisher and receive its articles in a reader, perhaps even using an existing substrate like RSS; they could then use their accumulated corpus of subscribed articles with their AI agent. The agent is not intermediating a relationship with the publisher; the relationship is with the human subscriber, and the agent then operates on what they’ve subscribed to. This doesn’t just build trust in the publisher: it builds a loyalty relationship with the AI platform too. Both the publisher and the AI platform build a stronger relationship with the reader.</p><p>Membership-first platforms like Ghost are already approaching this as they start to add more affordances for AI. It wouldn’t surprise me to see existing publisher platforms move in this direction, building more foundational AI technology for memberships in the process.</p><p>Publishers don’t need to compromise on their relationships with their communities in order to adopt new technology. Platforms don’t need to flatten relationships in order to achieve scale. There’s a lot to be gained by working together and understanding each other — and remembering that human relationships build the kind of trust and loyalty that an ephemeral transaction never could.</p>Going to try shutting down my laptop every night - Johnny.Decimalhttps://johnnydecimal.com/blog/0206-shutdown-to-force-your-hand/2026-05-21T13:00:38.000Z<p>When you have the safety net of 'never close anything', you don't really have to think about where a thing goes. You can just leave things open in a window, unsaved, hoping that someone else will think about it at some point in the future.</p>
<p>Starting today I'm going to quit every app and shut down my laptop at the end of the night.</p>
<p>Will I find it all again in the morning?</p>Context switching - Johnny.Decimalhttps://johnnydecimal.com/blog/0205-baserow-reveals-context-switching/2026-05-21T12:21:48.000Z<p>Still on a quest to figure out the right pattern for <a href="https://johnnydecimal.com/blog/0161/">work logs</a> (also <a href="https://johnnydecimal.com/blog/0183/">here</a> and <a href="https://johnnydecimal.com/jdu/taskpm/290-work-log-and-dashboard/">this episode of the Task & Project Management course</a>), I've been tracking what I'm doing in a really simple Baserow table for a couple of days.</p>
<p>It's just thing, started, and finished. If an item isn't finished, it groups up to the top (not shown here), so I have a simple list of stuff I'm still doing. It's been <em>really</em> helpful and I'll keep doing it. (Idea is to template this out as something you can duplicate.)</p>
<figure class="figure jdimage jdimage--auto-dark jdimage--drop-shadow"> <picture> <img class="figure__inner" alt="Screenshot of a database table. It shows 21 rows, each one a thing I was doing at some time today or yesterday." height="562" loading="lazy" src="https://johnnydecimal.com/blog/0205-Baserow-1904x1124@2x.png" width="852"> </picture> </figure>
<p>That's me working on 21 separate tasks, across the breadth of my business, in just 2 days. And I'm sure there are more: I haven't added a row for the fact that I'm typing out this blog post.</p>
<p>The modern world is <em>insane</em>. You can do so much. And at the end of the day your brain is broken. It's pretty obvious why.</p>
<p>I'm not sure what I do with this data yet. It's not like I want to slow down. But this doesn't feel sustainable? (Not complaining! Love my job. Just an observation.)</p>Graduation Day - Cool As Heckhttps://cool-as-heck.blog/graduation-day2026-05-21T11:34:16.000Z<div>Today is graduation day for my twin girls, Moxie and Clarity.</div>
<div><br></div>
<div>They've gone through a lot of things I didn't have to go through when I was a kid: divorce, moving, changing schools, going back and forth between two parents. Yet they turned out much wiser than I was at their age. They've both strived to be great students and challenge themselves, attending college-level classes at the high school or classes at the local community college during their senior year. They joined clubs, made art, inspired change, built solid friend groups, and advocated for their fellow students. I know that they're ready for college and the new challenges ahead. I'm so proud of them.</div>
<div><br></div>
<div>Today my heart is full.</div>Whale Fall - Terence Eden’s Bloghttps://shkspr.mobi/blog/?p=700002026-05-21T11:34:15.000Z<p>Somewhere, in the endless blue ocean, a gigantic mammal shudders as it takes its last breath. Thanks to science, we know that all dogs go to heaven, but all whales descend through the murky depths until their carcasses litter the seabed.</p>
<p>Imagine a giant dying. You can't. They are huge and endless. A towering presence which, so it seems, has <em>always</em> been part of our world. They dominate and are indomitable. It is simply unfathomable that they can ever end. Yet end they must.</p>
<p>As the whale dies, we do not know what passes through its cavernous brain. But we do know what the rest of the ocean thinks.</p>
<p>Lunch.</p>
<p>The death of a whale is a thing to be celebrated. The thump of their still-warm body onto the floor is the starting bell for a feast. Some larger predators sense an easy meal and tear off the choicest morsels. But what of the scavengers? What about the new life not yet established? What happens to the weird little creatures just waiting for an energy boost?</p>
<p>In many ways, it was fortuitous that Twitter pre-signalled its death with the Fail Whale.</p>
<p>The twitching corpse is gently floating down to its watery grave. Some of the older and more established social networks have bitten out chunks of the still-fresh body and have run away with their spoils. But the fascinating thing is watching all the <em>new</em> services benefit from the death of a giant. Mastodon, Discord, BlueSky, Qaplion, Nostr, and a bunch of others hollowing out the rotting husk and using it to power their own growth.</p>
<p>Will those .meow social networks ever become a gigaton behemoth capable of ruling the waves? Maybe not, but size is not the only metric of success. Finding and defending an ecological niche is its own reward. Evolution abhors a monoculture.</p>
<p>Several bloated bodies meander through the brine, each one confident that its ageless wisdom will outlast the others. Had they any self-awareness, the hubris would gnaw at their tattered souls until the crushing realisation of their impending doom drove them mad.</p>
<p>Perhaps it will happen to GitHub next. The endless downtime and forced injection of crappy AI will start a death spiral. Already established forges are waiting to pounce once they smell blood in the water. But what critters will emerge to suck the bones of the old giant and develop in unexpected ways? Some bizarre fungal growth will devour the stinking jelly unlocked from those shattered bones and a new ecosystem will emerge.</p>
<p>Will WordPress's increasingly erratic leadership and tangle of legal disputes cause it fatal damage? Once minnows darted away from its presence; now they cautiously nip at its greying skin. Its mighty bellow still echoes through the clammy waters, but there's a tinge of frailty in its song.</p>
<p>Everything dies eventually.</p>
<p>The internal flora and fauna - be they parasitic or symbiotic - eagerly await their host's downfall. A chance to break free and explore new strange new world. A chance to begin a new relationship and co-evolve in unexpected ways.</p>
<p>The biological pump is primed, the hungry jaws of an uncountable fleet of new ideas is just waiting to pounce, the giants swim on in blissful ignorance.</p>
<p>You can read more about <a href="https://en.wikipedia.org/wiki/Whale_fall">Whale Fall on Wikipedia</a>.</p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=70000&HTTP_REFERER=Atom" alt width="1" height="1" loading="eager">New miniseries: 'Everyday Obsidian' - Johnny.Decimalhttps://johnnydecimal.com/support/updates/2026-05-21-everyday-obsidian/2026-05-21T06:22:57.000Z<p>We added the first episodes in a new JDU miniseries: <a href="https://johnnydecimal.com/jdu/obsidian/">Everyday Obsidian</a>.</p>
<p>In this free series I'll show Lucy practical everyday tips for Obsidian. This is 'how normal people use it every day', not 'how to become an Obsidian guru'.</p>PSA: PDFs leak data - Johnny.Decimalhttps://johnnydecimal.com/blog/0204-psa-pdfs-leak-metadata/2026-05-21T05:48:15.000Z<p>Lucy just noticed that a PDF she was viewing in her browser revealed something about its history when she hovered over the browser tab. In her case, harmless enough: the shameful fact that she created one of her lovely <a href="https://johnnydecimal.com/jdu/excel/">Excel summary sheets</a> in PowerPoint. (Not even Keynote!)</p>
<figure class="figure jdimage jdimage--auto-dark jdimage--bare"> <picture> <img class="figure__inner" alt="Screenshot of a Firefox tab which has a PDF open. The tab reveals the inner 'title' of the PDF, which in turn reveals Lucy's shame: that she created it in PowerPoint." height="867" loading="lazy" src="https://johnnydecimal.com/blog/0204A-Browser-tab-leaking-PDF-2440x1734@2x.png" width="1220"> </picture> </figure>
<h2 id="pdfs-are-full-of-invisible-data">PDFs are full of invisible data</h2>
<p>Chock-full of it. Here's how this can trip you up. Let's say Jim is leaving so the team writes him a lovely message. Nobody really likes Jim, so you save the file on your Desktop with a snarky title.</p>
<figure class="figure jdimage jdimage--auto-dark jdimage--bare"> <picture> <img class="figure__inner" alt="Screenshot of a Word doc. The text wishes Jim well, but the document's title on disk is 'We all hate Jim really because he's a piece of work'." height="700" loading="lazy" src="https://johnnydecimal.com/blog/0204B-Jim-Word-1908x1400@2x.png" width="454"> </picture> </figure>
<p>Then you <strong>Print > Save as PDF…</strong>, and of course you save the file as <code>Good luck Jim!.pdf</code>.</p>
<figure class="figure jdimage jdimage--auto-dark jdimage--bare"> <picture> <img class="figure__inner" alt="Screenshot of us saving as PDF. We've renamed the PDF as it will be saved on disk, but forgotten about its 'title'." height="843" loading="lazy" src="https://johnnydecimal.com/blog/0204C-Save-as-PDF-1422x1686@2x.png" width="711"> </picture> </figure>
<p>Oooh but you didn't notice the <strong>Title</strong> field there, and now that's embedded in the PDF. Jim can just inspect the file or, if you're unlucky, he'll open it in Firefox on the farewell Zoom call and it'll be visible to everyone. <em>Em-barrassing!</em></p>
<figure class="figure jdimage jdimage--auto-dark jdimage--bare"> <picture> <img class="figure__inner" alt="Screenshot of the macOS file info pane clearly showing the original file title." height="637" loading="lazy" src="https://johnnydecimal.com/blog/0204D-Info-pane-754x1274@2x.png" width="377"> </picture> </figure>
<p>You think this will never happen to you? <a href="https://kagi.com/search?q=data+leaks+embedded+pdf+title&r=au&sh=kmkyiIB6yZMU6rRsHZIZhQ">Oh sweet child, it happens all the time</a>. And there's not really much you can do about it other than be aware of it, and remember not to do it.</p>
<p>PDFs contain a <em>lot</em> more information than you can see. Be careful.</p>Nobody is destined for greatness. - Westenberg6a0e5fd5fdaca50001ddbba12026-05-21T01:31:20.000Z<img src="https://www.joanwestenberg.com/content/images/2026/05/photo-1632083955294-9be78257202c.jpeg" alt="Nobody is destined for greatness."><p>Demosthenes lost his first appearance before the Athenian assembly. His voice came out thin and failed him mid-sentence, and the crowd laughed him off the platform. Plutarch tells us he walked home with his cloak pulled over his face, certain his public life had ended before it started.</p><p>What he did next settled the rest of his career. He dug out an underground study and shaved half his head, so that he'd stay indoors at his exercises for months, too ashamed to be seen. He crammed pebbles into his mouth and made himself speak around them. Climbing steep ground, he recited long passages, and he pitched his voice against the crash of the sea so that a hostile crowd could never break his rhythm again. He walked out of that hole as the finest orator Greece produced, the man who roused Athens against Philip of Macedon.</p><p>Nobody handed him any of it. He built it out of repeated failure and a stubborn refusal to accept the verdict of one bad afternoon.</p><h2 id="the-story-we-keep-telling">The story we keep telling</h2><p>We tell ourselves a flattering story about greatness. Some people get born for it, the gift already in them, coiled and waiting. We keep that story alive because it lets everyone off the hook. If you have to be marked for it from the start, then the people who reach it were always going to, the rest of us were never meant to, and nobody has to attempt anything that might hurt.</p><p>Anyone who reads the biographies finds the opposite. The people we file under genius turn out to be the ones who put in absurd quantities of hard, unwitnessed work before anyone noticed them. Some of them carried obvious aptitude, sure, but they fed it for years before they made it into something worth paying to see.</p><h2 id="where-the-naturals-come-from">Where the "naturals" come from...</h2><p>People reach for Mozart first to defend the destiny myth. They point at a child composing music at 5, call it proof of something supernatural in the blood, then skip what came before: Leopold Mozart, a professional teacher who wanted a prodigy for a son, started drilling the boy before he could read. By the time Wolfgang wrote anything we still perform, his father had put him through daily lessons for more than a decade.</p><p>The psychologist Anders Ericsson studied expert performers for most of his life and set out his findings in <em>Peak</em>, published in 2016. He found the same thing wherever he looked, among violinists, chess players, athletes and surgeons. The standout was the person who started young and put in more hours, whatever wiring they happened to be born with.</p><p>Ted Williams, who has a fair claim to being the best hitter baseball has seen, swung until the skin came off his hands. He liked to point out that nobody turned into a hitter by strolling up to the plate. Eliud Kipchoge, in his 40s, still grinds through the same training blocks he ran as a nobody, out of a bare camp in Kenya's Rift Valley, logging every kilometre by hand.</p><p>James Dyson built 5,126 failed prototypes of his bagless vacuum cleaner across the early 1980s before the 5,127th held together. No factory backed him and no investor believed in the idea. The established manufacturers turned him away one after another, because they made their margin selling bags and his machine needed none. The man with a multibillion-pound company today was broke through all of it, alone in a workshop, getting it wrong more than 5,000 times before anyone called him an inventor.</p><p>None of these people waited for a calling. They went and earned the thing, one repetition at a time, while it was still ugly and unrewarded.</p><h2 id="and-what-the-myth-costs">...And what the myth costs</h2><p>People who believe in destiny pay a price for it. They turn brittle, because they take their first hard setback as proof they were wrong about themselves, a sign the gift has run dry. Carol Dweck documented this in <em>Mindset</em> in 2006. Children praised for being clever, rather than for effort, dodged hard problems and folded when stuck, because failing one would expose the label as a lie.</p><p>The rest of us sit on our hands. People wait for a sign that they belong, and no one ever sends it, because that's not how any of this happens. Demosthenes got no sign. He got an underground hole, a half-shaved head, a mouthful of pebbles and the roar of the sea.</p><p>The people who make it tell the destiny story too, once they've arrived. Looking back, they compress the grind into a clean line and leave the years of doubt out, until what remains sounds like a gift that unfolded on schedule. By retelling it that way, they teach everyone behind them the wrong lesson, and another generation believes it.</p><p>Earned greatness looks nothing like the myth. </p><p>Picture the thousandth repetition of a thing you fumbled on your first attempt, and the long stretch when nobody is watching. Behind that are the friends who lose patience, the savings that drain, the steadier job you turned down and the years that pass with no proof you were right. Other people add the glamour later, once the result is plain to see and you've already paid for it.</p><p>There's a version of you that keeps waiting to feel chosen, and a version that goes down into the hole and gets to work. The first one keeps waiting.</p><p>Nobody is born holding greatness. </p><p>People build it in the dark, with pebbles in the mouth, long before anyone arrives to applaud.</p>Lifting Mastodon rate limits - Posts feedhttps://www.coryd.dev/posts/2026/lifting-mastodon-rate-limits2026-05-20T22:04:00.000Z<p>I'm a reluctant Bluesky user and a new Bluesky user. I expanded my site's syndication implementation to support Bluesky and updated my links implementation to support tagging authors on Bluesky. Why join now? I'm not totally sure. Indigo launching was a factor. It looked like (and is) a lovely app.</p>[RSS Club] Let's meet up AFK - Terence Eden’s Bloghttps://shkspr.mobi/blog/?p=715192026-05-20T11:34:04.000Z<p><mark><em>Shhhh!</em> This post is only available to RSS subscribers like you</mark> 😊</p>
<p>My wife and I are preparing for a big Interrail journey through Europe. Whenever we go on holiday, we like to meet up with friendly locals to have a drink and chat. <a href="https://shkspr.mobi/blog/2025/06/meeting-my-fedifriends-afk/">We did this on our last journey and it was great</a>.</p>
<p>So, if you're a member of RSS club and fancy showing some tourists a cool bar, awesome restaurant (with vegan options), local tech conference, or nifty museum - please <a href="https://edent.tel/">get in touch</a>.</p>
<p>Our exact dates aren't finalised yet, but from now until the beginning of July, we'll be taking roughly this route:</p>
<ul>
<li>🇩🇪 Hamburg →</li>
<li>🇩🇰 Copenhagen →</li>
<li>🇸🇪 Gothenburg →</li>
<li>🇳🇴 Oslo →</li>
<li>🇸🇪 Stockholm →</li>
<li>🇫🇮 Helsinki →</li>
<li>🇪🇪 Tallinn →</li>
<li>🇱🇻 Riga →</li>
<li>🇱🇹 Vilnius →</li>
<li>🇵🇱 Warsaw →</li>
<li>🇩🇪 Berlin → Munich →</li>
<li>🇮🇹 Verona → Milan →</li>
<li>🇨🇭 Basel →</li>
<li>🇫🇷 Paris</li>
</ul>
<p>If you're in one of those cities and fancy a beer & veggie burger, please give us a shout. We won't be able to meet everyone as we do have some existing plans and tight connections but, as they say, it's nice to <a href="https://www.youtube.com/watch?v=JhVRzh4_j50">go where everybody knows your name</a>.</p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=71519&HTTP_REFERER=Atom" alt width="1" height="1" loading="eager">Exporting Vinted Sold Data - Robb Knight • Posts • Atom Feedhttps://rknight.me/blog/exporting-vinted-sold-data/2026-05-20T10:58:13.000Z<p>Over the past month or so I've sold a bunch of stuff on <a href="https://vinted.co.uk">Vinted</a> and I wanted to know how much I've made but Vinted don't give you that data, at least not in a nice way. They have monthly reports but that shows what you started with and ended with which only works if you don't withdraw or spend anything, which I had.</p>
<p>So I went to the <a href="https://www.vinted.co.uk/my_orders?order_type=sold">sold page</a>, scrolled the infinite scroll list until it had loaded the months worth of stuff and whipped up this snippet to take the price and title of the item and add it to the clipboard.</p>
<pre class="language-js"><code class="language-js">list <span class="token operator">=</span> document<span class="token punctuation">.</span><span class="token function">getElementsByClassName</span><span class="token punctuation">(</span><span class="token string">'my-orders-content'</span><span class="token punctuation">)</span><span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><br />items <span class="token operator">=</span> Array<span class="token punctuation">.</span><span class="token function">from</span><span class="token punctuation">(</span>list<span class="token punctuation">.</span><span class="token function">querySelectorAll</span><span class="token punctuation">(</span><span class="token string">'a .web_ui__Cell__content'</span><span class="token punctuation">)</span><span class="token punctuation">)</span><br />data <span class="token operator">=</span> items<span class="token punctuation">.</span><span class="token function">map</span><span class="token punctuation">(</span><span class="token parameter">i</span> <span class="token operator">=></span> <span class="token punctuation">{</span><br /> price <span class="token operator">=</span> i<span class="token punctuation">.</span><span class="token function">getElementsByClassName</span><span class="token punctuation">(</span><span class="token string">'web_ui__Text__text'</span><span class="token punctuation">)</span><span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">.</span>innerText<br /> title <span class="token operator">=</span> i<span class="token punctuation">.</span><span class="token function">getElementsByClassName</span><span class="token punctuation">(</span><span class="token string">'web_ui__Cell__title'</span><span class="token punctuation">)</span><span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">.</span>innerText<br /><br /> <span class="token keyword">return</span> <span class="token template-string"><span class="token template-punctuation string">`</span><span class="token interpolation"><span class="token interpolation-punctuation punctuation">${</span>price<span class="token interpolation-punctuation punctuation">}</span></span><span class="token string"> // </span><span class="token interpolation"><span class="token interpolation-punctuation punctuation">${</span>title<span class="token interpolation-punctuation punctuation">}</span></span><span class="token template-punctuation string">`</span></span><br /><span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">join</span><span class="token punctuation">(</span><span class="token string">'\n'</span><span class="token punctuation">)</span><br /><span class="token function">copy</span><span class="token punctuation">(</span>data<span class="token punctuation">)</span></code></pre>
<p>The output will look something like this which I can then paste into <a href="https://numi.app">Numi</a> or <a href="https://soulver.app/">Soulver</a> to give me a total. Bundles don't have a useful title because that's not available on the page.</p>
<figure><img src="https://cdn.rknight.me/site/2026/vinted-data-in-numi.jpg" alt="Numi app showing sales data across three lines and a total at the end" /></figure>JDU 'preview mode' - Johnny.Decimalhttps://johnnydecimal.com/support/updates/2026-05-20-preview-mode/2026-05-20T04:36:09.000Z<p>We've added a 'preview mode' for signed-in users with a free account. You can preview a handful of <a href="https://johnnydecimal.com/jdu/taskpm/">Task & Project Management</a> episodes today, and in the next few days we'll do the same for the <a href="https://johnnydecimal.com/jdu/workshop/">Workshop</a> and <a href="https://johnnydecimal.com/jdu/excel/">Learn with Lucy – Excel</a>.</p>Why wouldn't every meeting have an ID? - Johnny.Decimalhttps://johnnydecimal.com/blog/0203-ids-in-your-calendar/2026-05-20T02:24:10.000Z<p>After our <a href="https://johnnydecimal.com/blog/0199/">meeting on Monday</a> I'm feeling hyper-organised. All of our active work has a project in Things, which I'll show another day. What I'm doing now is scheduling some of this work, including a meeting with Lucy tomorrow.</p>
<p>For that meeting I've created a work package – again, details to follow – but what's interesting here is that I've used the IDs of all of these things <em>in the appointment title</em>.</p>
<figure class="figure jdimage jdimage--auto-dark"> <picture> <img class="figure__inner" alt="Screenshot of 2 days from my calendar. A handful of meetings are shown, each of which starts with an ID like the one I mention in the text below." height="635" loading="lazy" src="https://johnnydecimal.com/blog/0203-fantastical-light-770x1270@2x.png" width="385"> </picture> </figure>
<p>I don't see a reason why every single one of my future meetings won't have an ID. (Unless it's just me blocking time/reminding myself to stand up and have a break – see that work/break pair, which I move around throughout the day.)</p>
<p>Right now, in the context of setting up this meeting, I know what it's about. I <em>just</em> created work package <code>W0159~21.39 Home page re-jiggering to make it more SBS-focused</code>. It's in-memory, as we say. So why let it fall <em>out</em> of memory, only to have to recall it tomorrow?</p>
<p>It's these tiny optimisations, applied consistently, that'll make you 1% more efficient.</p>Performative Blogging - Joel's Log Fileshttps://joelchrono.xyz/blog/performative-blogging2026-05-19T22:00:00.000Z<p><img src="/assets/img/blogs/2026-05-19-typing.webp" alt="A gentleman typing in an old computer" /></p>
<p><em>Photo from <a href="https://unsplash.com/photos/man-in-uniform-types-on-vintage-computer-terminal-oaPhR4_967Q">Unsplash</a></em></p>
<p>Don’t worry, I am not going to expose anyone but myself here.</p>
<p>A few weeks ago I saw a YouTube video: <a href="https://youtu.be/nuFMnlrDofk"><em>The Performative Epidemic</em></a> (<a href="https://inv.nadeko.net/watch?v=nuFMnlrDofk">Invidious</a>) by <a href="https://www.youtube.com/@chon.digital">chon digital</a>, that was about something I think everyone has heard about in one way or another.</p>
<p>Basically, people that pretend to do or engage in a certain activity and post about it online. All with the hopes of getting engagement and make themselves known or internet famous, although sometimes they genuinely want to form connections with people but end up looking like attention-seekers anyway.</p>
<p>I will be honest. I do like to be known and to have some fame. <a href="/blog/blogging-expectations/">I am not going to pretend otherwise</a>, but I have also tried my best to write about whatever I am feeling like writing, and to do so without worrying much about what is trending or popular.</p>
<p>However, I’ve been very, <em>very</em> tempted lately, to go ahead and copy whatever is going on in the online circles around me.</p>
<p>Seriously though, I look at what’s on the top of the <a href="https://bubbles.town">Bubbles</a> frontpage every couple of days and often think <em>“how did I not write about that sooner?”</em> Even more so when there’s a trending post that caused a lot of public responses—such as <a href="https://forkingmad.blog/hey-you-start-communicating/"><em>Hey you, start communicating!</em></a> by David, and many others before it!—that I could have contributed to—and I may do so even after they are not trendy anyway.</p>
<p>I just need to admit it. I am a little jealous, because a lot of the posts are kind of obvious. They are meta-posts about blogging, about being yourself, about the indie web, about socializing in the internet, a rant against AI, someone who switched to Linux, or whatever in between!</p>
<p>And you know? Writing this, I think it has been holding me back. A part of me wants to write about the next big thing that will get a lot of clicks, and that has stopped me on my tracks from writing about what my brain would usually come up with.</p>
<p>Look at my <a href="/tags/weeknotes/">weeknotes</a> that mention what I actually do and engage with, and you can see a lot of themes that would usually be expanded upon from a paragraph to a whole blog!</p>
<p>Maybe about my return to <em>Monster Hunter Freedom Unite</em>, a guide on how to get started through the early stages of the game or set up online multiplayer rooms for it via emulation! I’ve even been asked for this by a friend already!</p>
<p>It could be a tour through the Miis and experiences I’ve had on <em>Tomodachi Life: Living The Dream</em>, sharing some funny screenshots and recordings of the game that I’ve saved with hilarious moments, and some thoughts about it.</p>
<p>Or it could be that post about cycling through my city! I experienced a lot of things as I’ve gotten started on this hobby/transportation method, and I could even do a tour through some neat places I’ve seen on my rides, although I prefer to keep where I live private for the most part.</p>
<p>Perhaps a nostalgia trip through <em>Max Steel</em>, the toy franchise that heavily influenced my life through its movies—which I’ve been bingewatching for a few days—and their action figures I wanted as a kid</p>
<p>But like, who wants to read a young adult rambling about a toy from the early 2000s and its low budget movies with PS2 quality graphics? Why would one care about the early beginnings of yet another hobby of mine when there’s a dozen I’ve written about already? How trendy can a blogpost about an old PSP game with terrible controls and lots of grinding really get? Tomodachi Life is the one somewhat trendy topic, but whatever.</p>
<p>Funnily enough, some of those themes are things friends have already asked me about a couple times, I am just being deaf here for no reason—nobody cared about <em>Max Steel</em> though unfortunately.</p>
<p>Of course there are readers for everything, and I’ve been reassured by many of my online friends about how they like that I write about whatever all the time.</p>
<p>And yet here I am, writing my own meta-blogpost, with a title that is likely to make it to the top for once.</p>
<p>Is this the ultimate move of “performative” blogging? Am I being as hypocritical and desperate as it can get while writing about the fact that I should not write about trendy topics just to get attention for it?</p>
<p>Perhaps I am, but I will write about my little niches soon enough too. Now click that upvote button in the comments section for me okay? Or just send me an email, I love them very much too. 😁</p>
<p>To make it clear again, a lot of the people who have blogposts that get to the top are actually awesome. They, like me, have plenty of variety and themes and shenanigans they share online. I am definitely not saying they are being performative and it’s something that is hard to judge anyway. If anything, I’m the one being a little childish about it. But hey, that’s just my brain sometimes.</p>
<p><em>Now I just need to share this post at the perfect time to get the largest amount of readers as possible…</em></p>
<p>NO, STOP IT, END OF LINE.</p>
<p>This is day 67 of <a href="https://100daystooffload.com">#100DaysToOffload</a></p>
<p>
<a href="mailto:me@joelchrono.xyz?subject=Performative Blogging">Reply to this post via email</a> |
<a href="https://fosstodon.org/@joel/116603580589976840">Reply on Fediverse</a>
</p>Got mail, and went cycling! - W20 - Joel's Log Fileshttps://joelchrono.xyz/blog/w202026-05-19T17:00:00.000Z<p>It is incredible to think about the fact that twenty weeks of the year are already over. I still feel like 2026 is barely getting started, but at the same time I’ve already done quite a bit of cool stuff. This was a pretty neat week and I went out a lot!</p>
<ul>
<li>
<p>🗒️ I have a few drafts and ideas in my head that I just can’t get myself to write about. More thoughts on my new bike, an updated Every Day Carry, an updated What’s On My Phone, a tour through my physical game collection, I want to recommend some apps, write about recommendations to get started into Manga, or Monster Hunter, and also about a childhood hero of mine and stuff. I don’t knowww.</p>
</li>
<li>
<p>🚲 Tried cycling on the streets! On Friday and Saturday I went out for a few hours to get a taste of my bicycle and commuting around my city. I did about 13 km on my first ride, and 20 km on the second one. I had a lot of fun as I went through some roads I hadn’t seen before. I didn’t know that there’s a very small bike lane close to the city’s downtown. I saw some other people in bicycles and had some experiences I’ll write about in a future post. I also want to buy a bike lock and other accesories and tools for my commute, if you have some recommendations, let me know by contacting me via email or leaving a comment!</p>
</li>
<li>
<p>🛍️ Went out with my mom to do some shopping due to Mother’s Day! I got her a dress and some new shoes! Of course we ate at a restaurant in the mall as well, and watched a movie which I’ll mention below. I love my Mom, this is is nothing compared to what she has given me.</p>
</li>
<li>
<p>📚 While out with my mom we stopped at a library and I ended up buying a copy of <em>Dune Messiah</em> by Frank Herbert. While scrolling through the Kobo shop, I also stumbled upon <em>Spin</em> by Robert Charles Wilson, which is a Hugo award winning novel. Without any more receipts, I decided to buy it and I plan to read it once I’m done with <em>The Expanse</em>!</p>
</li>
<li>
<p>📧 I got a couple of great emails this week due to some of my posts and also the currently trending post from David about <a href="https://forkingmad.blog/hey-you-start-communicating/">engaging in communication with others!</a>. That was awesome. Always great to know I am read by some cool people. I was also reminded about how cool the <a href="https://radiorentalusa.com/">Radio Rental</a> podcast is.</p>
</li>
<li>
<p>🌮 On Sunday night we went out to get some tacos, my mom actually tried her new dress there so that was nice. The tacos of course are always great.</p>
</li>
</ul>
<p><img src="/assets/img/blogs/2026-05-19-week.webp" alt="Collage or the Week" /></p>
<h2 id="gaming">Gaming</h2>
<ul>
<li>
<p>🥐 <strong>CrossCode</strong> - I finally completed the last big dungeon, closing the chapter 8 of the game. That was some incredible puzzle design and a very fun boss fight as well. The story continues to get stranger and I am really looking forward to what the 9th chapter has to reveal for me. I am now waiting for the rest of my friend group to catch up.</p>
</li>
<li>
<p>👾 <strong>UFO 50</strong> - I played a bit more of <em>Bug Hunter</em> and it kind of clicked but I was not good at it, eventually had to “return” it and went for <em>Ninpek</em> instead, an infinite side-scroller similar to <em>Ninja Gaiden</em>, but it’s kinda terrible in my opinion, much more simplistic than the previous two titles… Now, on a certain day a friend of mine visited and “brought” his own multiplayer “carts”! We played (and actually finished) <em>Mooncat</em>, and THAT game will be awesome once I “rent” it for myself…</p>
</li>
<li>
<p>🐉 <strong>Monster Hunter Freedom Unite</strong> - My hunts continued for a bit more! I went for a Yian Garuga this time around, the little purple chicken managed to knock me out twice before I got the final blow. Then I tried to hunt a Lunastra but she has proven to be much more challenging than I remembered.</p>
</li>
<li>
<p>🏠 <strong>Tomodachi Life: Living The Dream</strong> - Keeping up with my Miis! Oh and my Mii has a baby now, with Lucca (from Chrono Trigger) and her name is Lily, so that’s… interesting.</p>
</li>
<li>
<p>🎲 <strong>Slice & Dice</strong> - It has been a while, but an old friend has returned. I am playing a chill match of Blursed mode!</p>
</li>
</ul>
<h2 id="watching">Watching</h2>
<ul>
<li>
<p><strong>Max Steel: Dark Rival</strong> - I continued going through my childhood memories and saw this movie at last. This is the one DVD that I owned as a kid! I convinced my parents to get a candy box that contained it, and I still have it with me to this day. This movie introduces Max Steel’s greatest rival in extreme sports, now turned into a villain that can extract the energy of any life form and transform in it! It’s still awesome and I wanted all of these toys as a kid.</p>
</li>
<li>
<p><strong>The Devil Wears Prada 2</strong> - Had to check this film out since we all love Anne Hathaway. I had zero expectations and I was definitely entertained. There were some interesting story moments but honestly I was just there for the character interactions. Not a very memorable plot or cool sequence, but I had fun! I was also quite nostalgic about it even though I never watched the original film in full, only bits and pieces.</p>
</li>
<li>
<p><strong>The Intern</strong> - So I decided to watch the original <em>The Devil Wears Prada</em> but ended up finding this instead. Robert DeNiro as a retired old man who wants a routine in life and becomes an intern for Anne Hathaway’s start-up fashion company. Very different but very fun to see the interactions yet again. The story was mixed, funny sometimes and way too serious and emotional in others, but I still enjoyed it.</p>
</li>
</ul>
<h2 id="reading">Reading</h2>
<ul>
<li>
<p><strong>Tiamat’s Wrath</strong> - Up to chapter 9. I am finally getting some steam reading this book from The Expanse! which isn’t that much but I hope I get a grip and power through. I am really liking the direction so far though, a lot of things have changed yet again and I’m a little scared.</p>
</li>
<li>
<p><strong>Heavenly Delusion</strong> - Up to chapter 58. A very interesting arc just concluded, answering some questions that had been around since the beginning of the story! However, more mysteries arise. This keeps being awesome!</p>
</li>
<li>
<p><strong>Shikimori’s Not Just A Cutie</strong> - Up to chapter 110. Still enjoying my return to this romcom. There have been some rather emotional moments lately and I feel bad that I left it so long because they didn’t land with me as well. Still reading though!</p>
</li>
</ul>
<h2 id="around-the-web">Around the Web</h2>
<p>Some cool posts about people, some more videos about cycling and house stuff, and a new handheld review!</p>
<h3 id="blog-posts">Blog posts</h3>
<ul>
<li>
<p><a href="https://notes.jeddacp.com/an-intro-to-life-lately/">An Intro to Life Lately</a> - Jedda is back to writing about events and happenings of her life! But in order to do that, she doesn’t want the pressure of weeknotes, so she made this instead!</p>
</li>
<li>
<p><a href="https://syl.weblog.lol/2026/05/a-new-week-notes-blog">A New Week Notes Blog</a> - On the other hand, Syl, a friend of mine with an <a href="https://syls.blog">awesome blog</a> made this separate one for weeknotes only! I for once cannot be happier to see more slice of life type of posts. weekly, monthly, or at any pace one may need.</p>
</li>
<li>
<p><a href="https://brainbaking.com/post/2026/05/the-death-of-the-brick-and-mortar-toy-store/">The Death of the Brick & Mortar Toy Store</a> - This is a sad recurrence. Online shopping has taken over a lot of the local businesses and it’s kind of sad. It is not very common here in Mexico, I should write about it soon.</p>
</li>
<li>
<p><a href="https://basic.bearblog.dev/goodbye-rss/">Goodbye RSS</a> - Jon decided to just stick to visiting websites and blogs every once in a while instead of the constant pressure and the thousands of unread emails. There’s something enticing about that, I must admit.</p>
</li>
</ul>
<h3 id="youtube">YouTube</h3>
<ul>
<li>
<p><a href="https://youtu.be/aPphCZvKaSs">Making my small apartment feel bigger</a> - I keep being in love with these house improvement style videos! They are fun to have in the background while I clean up and change up my bedroom… Yes definitely only in the background.</p>
</li>
<li>
<p><a href="https://youtu.be/_qdxEQ1nrRc">I Cycled $1 Bike From London To Paris</a> - This was a very fun journey! Just an enjoyable ride where friendships and memories were made.</p>
</li>
<li>
<p><a href="https://youtu.be/j0Jp6w4_T1E">Finally! Something NEW! // RG Rotate REVIEW</a> - As amazing and unique as this handheld is I am actually not as interested on it as I thought. I hope a slimmer PSP Go style console comes soon.</p>
</li>
<li>
<p><a href="https://youtu.be/bVLAbmw96ew?si=AMxv-fKTh0ZNuAgH">The biggest barriers to bike commuting and tips for overcoming them</a> - One of those cool videos with a self-describing title.</p>
</li>
</ul>
<p>This is day 66 of <a href="https://100daystooffload.com">#100DaysToOffload</a></p>
<p>
<a href="mailto:me@joelchrono.xyz?subject=Got mail, and went cycling! - W20">Reply to this post via email</a> |
<a href="https://fosstodon.org/@joel/116602369604209150">Reply on Fediverse</a>
</p>Book Review: Terrible Worlds: Destinations by Adrian Tchaikovsky ★★★★★ - Terence Eden’s Bloghttps://shkspr.mobi/blog/?p=717102026-05-19T11:34:17.000Z<img src="https://shkspr.mobi/blog/wp-content/uploads/2026/05/tw-destinations-470.webp" alt="Book cover." width="235" height="369" class="alignleft size-full wp-image-71711">
<p>What's better than one Adrian Tchaikovsky novella? <em>Three</em> Adrian Tchaikovsky novellæ! Or is it "novellii"? Either way, a delightful triptych of stories on a common theme. On the surface, they're about travelling to a new destination (Space! The Future! For-Copyright-Reasons Not Narnia!)</p>
<p>Except, deep down, they're about loneliness. No matter how far or fast we run, no matter where or when we go, we can't outrun ourselves. When you enter the void, sometimes the void enters you.</p>
<p>There's also the constant theme about the hunter becoming the hunted. All three of the stories reminded me a bit of <a href="https://shkspr.mobi/blog/2022/04/book-review-piranesi-by-susanna-clarke/">Piranesi by Susanna Clarke</a> - in that I was never quite sure if the characters were simply delusional and waging war on an enemy of their own making.</p>
<p>It brims with a pathos which I find rare in modern science fiction. That's offset with the perfectly placed <em>British</em> humour within it. Yes, there's a touch of the Weir/Scalzi "Only I, a nerdy guy, can save the universe in a self-knowing way" - but those authors aren't brave enough to mention Reading town centre or have their hero hail from Stevenage. Whereas Tchaikovsky knows what's up with the Furries.</p>
<p>An excellent collection of tales.</p>
<p>Many thanks to NetGalley for the review copy. The book is available to buy now.</p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=71710&HTTP_REFERER=Atom" alt width="1" height="1" loading="eager">SBS Zoom sessions tomorrow are open to the public - Johnny.Decimalhttps://johnnydecimal.com/blog/0201-sbs-zoom-open-session/2026-05-19T09:01:19.000Z<p>We have 2 'welcome and roadmap' Zoom sessions already scheduled for SBS tomorrow. I'm going to set up properly-advertised public sessions for those of you interested in but not yet members of SBS, but while I get round to that I thought I'd just open up tomorrow's sessions.</p>
<p>I'll briefly summarise what we're up to, and then it'll be a session for questions. Very casual. No need to register, just turn up.</p>
<h2 id="session-1">Session 1</h2>
<ul>
<li>Best for USA (afternoon/evening) or Oceania (morning)</li>
<li><a href="https://www.worldtimebuddy.com/?qm=1&lid=5368361,5128581,2643743,2950159,292223,1583992,1880252,1835848,2147714,2193733&h=2147714&date=2026-5-20&sln=9-9.5&hf=undefined&c=1963">May 20, 2026 06:00 Asia/Ho_Chi_Minh</a>
<ul>
<li>Click the link for timezone conversions.</li>
</ul>
</li>
<li><a href="https://us06web.zoom.us/j/85248298935?pwd=dRg70bukVpu8ERtBQAtUDb8Fiaa2Sk.1">Zoom link</a>.</li>
<li><a href="https://johnnydecimal.com/calendar/SBS-welcome-and-roadmap-2026-05-20-06-00.ics">Click to add to your calendar</a>.</li>
</ul>
<h2 id="session-2">Session 2</h2>
<ul>
<li>Best for Europe (morning/mid-morning) and Asia (morning/afternoon)</li>
<li><a href="https://www.worldtimebuddy.com/?qm=1&lid=5368361,5128581,2643743,2950159,292223,1583992,1880252,1835848,2147714,2193733&h=2147714&date=2026-5-20&sln=21-21.5&hf=undefined&c=1963">May 20, 2026 18:00 Asia/Ho_Chi_Minh</a>
<ul>
<li>Click the link for timezone conversions.</li>
</ul>
</li>
<li><a href="https://us06web.zoom.us/j/82735810953?pwd=tpcI9AZFvr38Lb1MXTqngdkRgb1pjN.1">Zoom link</a>.</li>
<li><a href="https://johnnydecimal.com/calendar/SBS-welcome-and-roadmap-2026-05-20-18-00.ics">Click to add to your calendar</a>.</li>
</ul>undermanager: Three things about data - Johnny.Decimalhttps://johnnydecimal.com/blog/0200-three-things-about-data/2026-05-19T01:41:39.000Z<p>Great post by Russel Davies at undermanager: '<a href="https://www.undermanager.com/three-things-about-data/">Three things about data</a>'.</p>
<blockquote>
<span class="h2-emulation-in-blockquote">Gather less of it</span>
<p>a. Data is a risk. Every bit of data has to be managed/looked after/cared for. That costs time and money. And most of it is useless.</p>
<p>b. Data is distracting. Most of it is just noise. You're gathering it because you can, just in case, because it seems valuable.</p>
</blockquote>
<p>I couldn't agree more. This was the root cause of <a href="https://johnnydecimal.com/blog/0186/">my data leak</a> the other month, and is a pattern I've come to recognise over the years. We assume that more data is better. And in the past that might have been the case.</p>
<p>But the landscape has shifted. The risks are greater. How about this doozy from Krebs on Security today: <a href="https://krebsonsecurity.com/2026/05/cisa-admin-leaked-aws-govcloud-keys-on-github/">CISA Admin Leaked AWS GovCloud Keys on Github</a>.</p>
<blockquote>
<p>"Passwords stored in plain text in a csv, backups in git, explicit commands to disable GitHub secrets detection feature," Valadon wrote in an email. "I honestly believed that it was all fake before analyzing the content deeper. This is indeed the worst leak that I've witnessed in my career. It is obviously an individual's mistake, but I believe that it might reveal internal practices."</p>
</blockquote>
<p><strong>Critically analyse all data that you hold</strong>, especially if it identifies your customers. If you don't need it, purge it. It's time to start shifting our habits away from collecting this stuff in the first place.</p>
<p>There's a lot more in Russell's post. Worth a read.</p>Practical Deep Dive into Kubernetes Security (Szkolenie) - gynvael.coldwind//vx.log (pl)https://gynvael.coldwind.pl/?id=8082026-05-19T00:13:28.000Z<a href="https://hackarcana.com/practical-k8s-sec"><img src="https://gynvael.coldwind.pl/img/k8s.jpg" style="float: right; max-width: 33%; height: auto; margin: 0; margin-left: 0.5em; margin-bottom: 0.5em; border: 1px solid #b7b7f7; border-radius: 15px;"></a>
<p>Kubernetes jest fundamentem nowoczesnej infrastruktury - i jednym z najbardziej atrakcyjnych celów dla atakujących. W związku z tym z wielką przyjemnością chciałbym dać znać, że na moim serwisie szkoleniowych hackArcana pojawiły się <a href="https://hackarcana.com/practical-k8s-sec">praktyczne warsztaty poświęcone bezpieczeństwu Kubernetes</a>. Oto garść informacji na ich temat:</p>
<ul>
<li>Szkolenie: <b><a href="https://hackarcana.com/practical-k8s-sec">Practical Deep Dive into Kubernetes Security</a></b></li>
<li>Format: <b>Online, na żywo (z trenerami), szkolenie z ćwiczeniami</b></li>
<li>Trenerzy: <b>Jarosław Jedynak, Michał Leszczyński</b> (miałem okazję pracować / robić CTF z nimi, są solidni!)</li>
<li>Czas trwania: <b>18 godzin rozbite na 6 tygodni (6 modułów)</b></li>
<li>Nagrania: <b>Wszystkie sesje będą nagrywane a nagrania będą dostępne minimum 3 miesiące</b></li>
<li>Harmonogram: <b>Wtorki, 19:00 CEST, 9.06, 16.06, 23.06, 30.06, 07.07, 14.07</b></li>
<li>Język: <b>Angielski</b></li>
<li>Poziom: <b>średnio zaawansowany</b> (tj. trzeba znać podstawy K8s)</li>
</ul>
<p>Wszystkie informacje są na stronie szkolenia, ale wklejam tutaj również agendę (po angielsku, z uwagi na to, że szkolenie i tak jest w tym języku):</p>
<p><b>Module 1 - Kubernetes Architecture</b><br>Session: June 9th, Tuesday, 7 PM CEST</p>
<ul>
<li>Kubernetes components and how they interact</li>
<li>Threat modeling the cluster: what attackers target and why</li>
<li>Workshop environment walkthrough and lab access</li>
<li>First hands-on exercises: exploring the cluster from an attacker's perspective</li>
</ul>
<p><b>Module 2 - Build Phase Security</b><br>
Session: June 16th, Tuesday, 7 PM CEST</p>
<ul>
<li>Container image pitfalls and common misconfigurations</li>
<li>Source code and dependency scanning in CI/CD pipelines</li>
<li>Supply chain risks: what happens before the image reaches the cluster</li>
<li>Lab: identifying and fixing vulnerable image builds</li>
</ul>
<p><b>Module 3 - Deploy Phase Security</b><br>
Session: June 23rd, Tuesday, 7 PM CEST</p>
<ul>
<li>Image signing and verification</li>
<li>Namespaces, pod security standards, and admission policies</li>
<li>Secrets management: what goes wrong and how to fix it</li>
<li>Lab: hardening deployment manifests and catching misconfigurations before they reach production</li>
</ul>
<p><b>Module 4 - Runtime Phase Security</b><br>
Session: June 30th, Tuesday, 7 PM CEST</p>
<ul>
<li>Service account tokens and their abuse</li>
<li>Cloud environment pitfalls and metadata API attacks</li>
<li>Privilege escalation and container breakout scenarios</li>
<li>Lab: reproducing real runtime attack paths and applying mitigations</li>
</ul>
<p><b>Module 5 - Administration, Access Control, and Networking</b><br>
Session: July 7th, Tuesday, 7 PM CEST</p>
<ul>
<li>Authentication mechanisms and common weaknesses</li>
<li>RBAC deep dive: misconfigurations, auditing, and least privilege</li>
<li>Admission controllers and policy enforcement</li>
<li>CNI configuration, network policies, firewalls, and network-level attacks</li>
<li>Service meshes and their role in cluster security</li>
<li>Lab: attacking and hardening cluster access and network segmentation</li>
</ul>
<p><b>Module 6 - Low-Level Container Security</b><br>
Session: July 14th, Tuesday, 7 PM CEST</p>
<ul>
<li>Linux namespaces, cgroups, and capabilities in depth</li>
<li>Seccomp profiles: building and applying them</li>
<li>Kernel exploits and container escape techniques</li>
<li>Wrap-up, Q&A, and next steps in your Kubernetes security journey</li>
<li>Lab: hands-on container isolation assessment and hardening</li>
</ul>
<p>Szkolenie zaczyna się 9 czerwca, a zapisać można się tutaj: <a href="https://hackarcana.com/practical-k8s-sec">Zarejestruj się!</a></p>Wonders of Web Weaving, Episode 2 - James' Coffee Bloghttps://jamesg.blog/2026/05/19/www-episode-22026-05-19T00:00:00.000Z
<p><a href="https://web-weaving.jamesg.blog/2/" rel="noreferrer">The second episode of Wonders of Web Weaving is out</a>:</p><blockquote>In Episode 2, I chat with <a href="https://xandra.cc">Alexandra</a>, the author of <a href="https://xandra.cc">xandra.cc</a>, a founder and barista at the <a href="https://32bit.cafe">32-Bit Cafe</a>. We talk about, among other things, building indie web communities, communicating the possibilities of having a personal website to new audiences, and more.</blockquote><p>I hope you enjoy the episode!</p><p><a href="https://web-weaving.jamesg.blog/subscribe/" rel="noreferrer"><em>Wonders of Web Weaving has an RSS feed</em></a><em> you can use to follow along from wherever you get your podcasts.</em></p><script>(function(){function c(){var b=a.contentDocument||a.contentWindow.document;if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'9fe19bdc38d34ace',t:'MTc3OTE3ODA1NQ=='};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://32bit.cafe">32-Bit Cafe</a>
<a class="tag" href="https://web-weaving.jamesg.blog/2/">The second episode of Wonders of Web Weaving is out</a>
<a class="tag" href="https://web-weaving.jamesg.blog/subscribe/">Wonders of Web Weaving has an RSS feed</a>
<a class="tag" href="https://xandra.cc">Alexandra</a>
<a class="tag" href="https://xandra.cc">xandra.cc</a>