Shellsharks Blogroll - BlogFlock2026-01-25T13:39:05.334ZBlogFlockWerd I/O, cool-as-heck, destructured, Evan Boehs, Aaron Parecki, Sophie Koonin, Adepts of 0xCC, <span>Songs</span> on the Security of Networks, cmdr-nova@internet:~$, Westenberg, fLaMEd, Hey, it's Jason!, gynvael.coldwind//vx.log (pl), James' Coffee Blog, Terence Eden’s Blog, Molly White, joelchrono, Robb Knight, Trail of Bits Blog, Posts feed, Kev Quirk, Johnny.DecimalBook Review: Human Rites by Juno Dawson ★★★☆☆ - Terence Eden’s Bloghttps://shkspr.mobi/blog/?p=662512026-01-25T12:34:53.000Z<img src="https://shkspr.mobi/blog/wp-content/uploads/2025/12/humanrites.jpg" alt="Book cover featuring a woman with a horned goat's head." width="200" class="alignleft size-full wp-image-66252"/>
<p>After the pretty good <a href="https://shkspr.mobi/blog/2023/01/book-review-her-majestys-royal-coven-juno-dawson/">Her Majesty's Royal Coven</a>, the excellent <a href="https://shkspr.mobi/blog/2024/09/book-review-the-shadow-cabinet-by-juno-dawson-her-majestys-royal-coven-book-2/">Shadow Cabinet</a>, the law of reverting to the mean hits the conclusion of Juno Dawson's Witches of Hebden Bridge trilogy.</p>
<p>By now you know the tropes - Bitchy-Witches, 90s pop-culture references, and wry chapter titles. It's all done well enough, the plot is a little twisty, the story entertaining, and the repeated mentions of Buffy are only a <em>little</em> too self-referential. The continual pop-culture references are a bit blunt and, in all honesty, feel like the book is trying too hard to anchor itself to other media.</p>
<p>If you enjoyed the other two books (and <a href="https://shkspr.mobi/blog/2025/01/book-review-queen-b-by-juno-dawson/">the Queen B prequel</a>) then this is more of the same.</p>
<p>The ending is powerful and, thankfully, closes off the world. This doesn't feel like something which is going to be turned into a never-ending series of stories.</p>
<p>A good beach read but lacking some of the rage and inventiveness from the rest of the series.</p>
IndieWeb Carnival: Host Interview - James' Coffee Bloghttps://jamesg.blog/2026/01/25/indieweb-carnival-host-interview/2026-01-25T09:44:02.000Z
<p><a href="https://zacharykai.net">Zachary</a> kindly invited me to answer a few questions about hosting the IndieWeb Carnival. Running for three years now, the IndieWeb Carnival has been the source of endless inspiration for me, sparking both long periods of thinking as well as writing blog posts. Even when I have not written an entry for a given month, the topic has always been interesting.</p><p>I have hosted the indieWeb Carnival twice, first on the topic “Moments of Joy” and then on the topic of “Tools.” I am going to tailor my answers to the latter topic since it is the most recent one. I will also be hosting in March 2026 – stay tuned! </p><h2 id="what-drew-you-to-this-theme?">What drew you to this theme?</h2><p>When I was first learning to code, I thought about coding as a pursuit in itself. With that said, as the years have passed, I find myself more interested in how software is designed. What tools do we most rely on? How do tools enable or interfere with creativity? What affordances do our favourite tools have that make them so compatible with how we want to work? What makes a tool delightful? What principles should we consider when we design new tools?</p><p>When I hosted the carnival in July 2024 on “Tools,” I was thinking a lot about tools but knew that others’ perspectives were invaluable. Part of me was interested in what attributes I like in software, but a bigger part of me was interested in what <em>others</em> thought and liked about the tools they use. As part of that intention, looking back I didn’t limit the carnival to software, or even mention the word “software” in the announcement blog post. Indeed, while I am fascinated by software, I think we have much to learn from <em>all</em> tools when it comes to making interfaces.</p><h2 id="did-you-consider-any-other-prompts-before-settling?">Did you consider any other prompts before settling?</h2><p>I can’t remember whether I thought about any other prompts, but if I recall correctly the topic of tools was one I was thinking a lot about so it felt like a good choice. I wanted to choose a topic that would be appealing to others, that was as open-ended as possible, and that didn’t require any special knowledge to respond to. One thing I really love about the IndieWeb Carnival is that the prompts are open-ended, which encourages more voices and perspectives.</p><h2 id="how-did-you-decide-on-your-prompt's-wording?"><strong>How did you decide on your prompt's wording?</strong></h2><p>For reference, my prompt was:</p><blockquote>Over the next month, I invite you to write a blog post about tools and how they do, or have, influenced your creative process. You can write about tools in the context of any creative practice you have: writing, acting, drawing, painting, woodworking, cooking, coding, singing, VTubing, or whatever is applicable to you.</blockquote><p>I also included a list of questions to help direct readers.</p><p>I wanted to encourage people to talk not only about tools, but how they affect creativity. I wanted to hear about tools in many different contexts and creative pursuits. I am fascinated by how people make things.</p><h2 id="did-hosting-change-how-you-think-about-the-theme?">Did hosting change how you think about the theme?</h2><p>Looking back, the topic of tools is just as present in my thinking as it was back when I chose the theme – even though the carnival was over a year and a half ago! Like all reading, I think I soaked in the responses when I read them, each one moving my thinking forward. </p><p>But, really, the most exciting part of the carnival is not how my thinking changes but how, at the end, there are a dozen or more thoughtfully-written perspectives on an idea that <em>anyone</em> can read. Who knows how many people are inspired in a given month by the responses people write on their blogs.</p><p>Since the carnival, there has been a specific subtle and growing thought in my mind that I have not yet written down but should share somewhere: that if we think out of the box in terms of software design, we might come up with something brilliant.</p><p>I keep thinking about software tools because I can contribute to those – software is a place where I can make a difference. But also because software touches so many parts of our lives that I think continuous discourse on how we make software the best it can be for everyone is essential.</p><h2 id="did-the-submissions-surprise-you-in-any-way?">Did the submissions surprise you in any way?</h2><p>One of the things I look back on with joy is that, to the extent I can see, I had never interacted with several of the participants. They found the challenge and wrote something as part of the challenge. I love the grassroots nature of the carnival. All it takes to participate is a place to write on the web.</p>
Kind software - James' Coffee Bloghttps://jamesg.blog/2026/01/25/kind-software/2026-01-25T08:26:20.000Z
<p>At EdinburghJS this week, Colin mentioned the idea of “<a href="https://pointinthecloud.com/2026-01-21-105800.html">kind software</a>.” This got me thinking. What would make software kind? As I write, I notice the word “kind” reminds me of the term “user friendly,” which has associations with software being simple to use in the context of completing a given task or set of tasks.</p><p>I think kind software extends the notion of “user friendly” to discuss more explicitly all of the affordances that a piece of software makes to a user.</p><p>When I think of user-friendly, I think of interface design. For instance, confirmation pop ups before taking irreversible actions, offering an undo button for as many actions as possible, having a strong navigation structure, offering large click areas where possible, being accessible, and more all both make a piece of software user-friendly and, by extension, “kind” in some sense. I think “kind” software would encompass more, like:</p><ol><li>Offering different data formats so people can use the data in the software in the way they want.</li><li>Being explicit and transparent on how information is being used, without the use of dark patterns or ambiguous language to instruct people on how information is used.</li><li>Minimising distractions so a user can focus on a task.</li><li>Helping users pick up where they left off as they shift contexts to different tools, or if and when they have not been using the tool for a while.</li><li>Collects and uses only the data it absolutely needs.</li></ol><p>The more I think about it, the closer the ideas of user-friendliness and kind software look. With that said, there is <em>something</em> about the term “kind software” that appeals. I don’t know who would ever say a piece of software is “kind”, but that feels like the kind of goal it is worth striving toward when it comes to software design.</p><p>Shortly after the meetup, I took out my pencil and paper and started taking notes. I wrote down a few words and phrases that embody the kind of ideas I like to see in software. Here are a few of them:</p><ul><li><a href="https://jamesg.blog/2024/11/28/forgiving-interfaces">Forgiving</a></li><li>Personal as in <em>really</em> for you (aka: no opaque algorithms), in the case of social software</li><li>Calm</li><li>Does one thing really well</li><li>Gives people time to think</li><li>Friendly</li><li>Artistic</li><li>For all</li><li>Customisable and extensible</li><li>Collaborative</li><li>Private</li><li>Freedom to go at your own pace</li></ul><p>What attributes would you like to see in software? Are there any pieces of software that you think are particularly good in an aspect of design that you wish was more discussed? Feel free to send me an email at readers [at] jamesg [dot] blog. I’d love to hear from more people on this topic!</p>
This week - James' Coffee Bloghttps://jamesg.blog/2026/01/24/this-week/2026-01-24T17:36:42.000Z
<p>This has been a busy week!</p><p>Earlier in the week, I attended my first EdinburghJS Meetup, at which I met many wonderful people. As always, I am a bit nervous before going to events. <em>What if I can’t find the location? What will I say?</em> Those fears usually leave my system after arriving and getting settled into an event, after which point I love talking with people. I especially love meeting new people.</p><p>EdinburghJS made me aware of how large the Scottish technology community is. I am especially appreciative of the <a href="https://www.scottishtechnology.club/">Scottish Technology Club</a> project which is aggregating events and resources. It feels great to know not only that there is a technology community, but that there is so much going on.</p><p>On another note, in two days I start my degree in art history. This week has been full of events prior to studying. I was thinking earlier today about how I am already getting out of my comfort zone – talking with new people, learning about student societies I might join, and generally finding my way around all the materials I will be using for study.</p><p>I attended a session this week at university about reading sheet music. I technically joined mid-way through the event series so I was a bit out of my depth, but I still had fun and gained more of an appreciation for how many patterns there are that make up music. I think I’ll take the course from the beginning when it starts up again. I wonder if this will be the year when I can read a little bit of sheet music.</p><p>Today I went to a lecture on art and the working class, with a particular focus on art in the north of England. The lecture started by illuminating how much what you might call “fine art” represents a tiny group of people, and then showing how artists like Lowry and Turner, the art critic John Ruskin all paved the way for an art that represented the working class. Norman Cornish, for example, was a member of the "Pitman Academy" who depicted life in the mines.</p><p>The lecture concluded by looking at Banksy, whose works resonate around the world and, in the process, show that art is and should be for everyone.</p><p>Reflecting further on the topic of representation, I can’t help but think of how some of my favourite parts of the National Museum of Scotland is the art painted in the region where I grew up. <em>I know those hills! I know that place. People throughout the centuries have seen beauty here, enough so to paint it.</em> In the case of modern portraiture, seeing paintings of people from my local area have mattered so much to me. Art connects us to place, people, and times, but to live up to that potential – and to be truly for all – it has to include and represent as many places, people, and moments as possible.</p><p>I have so much energy right now, and am excited to begin my degree on Monday. The first topic is some induction material and then I'll be learning about the reputation of Cleopatra.</p><p>In the background, dinner is cooking in the oven, and I am excitedly waiting for an evening of listening in to poetry from the university poetry society. </p>
Notable links: Jan 24, 2026 - Werd I/O6974cadfd523b400016302182026-01-24T13:49:05.000Z<img src="https://images.unsplash.com/photo-1625440153141-1ae4c27ff33b?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3wxMTc3M3wwfDF8c2VhcmNofDN8fGV1fGVufDB8fHx8MTc2OTI2MjUwM3ww&ixlib=rb-4.1.0&q=80&w=2000" alt="Notable links: Jan 24, 2026"><p><em>Every Friday, I share a handful of pieces that caught my eye at the intersection of technology, media, and society. This week's edition is late!</em></p><p><em>This week's links discuss the future of software development, how the EU's attempts to build sovereign tech must involve helping people to create businesses around it, the complex issues surrounding trust and safety on Bluesky and similar platforms, and a concrete protocol for making professional connections between people well.</em></p><p><em>Did I miss something important? </em><a href="mailto:ben@werd.io" rel="noreferrer"><em>Send me an email</em></a><em> to let me know.</em></p><hr><h3 id="the-five-levels-from-spicy-autocomplete-to-the-software-factory"><a href="https://www.danshapiro.com/blog/2026/01/the-five-levels-from-spicy-autocomplete-to-the-software-factory/?ref=werd.io" rel="noreferrer">The Five Levels: from Spicy Autocomplete to the Software Factory</a></h3><p>Software development is transforming incredibly quickly. This guide, although it looks a bit silly at first glance, is very aligned with what I’ve heard from friends and seen first-hand.</p><blockquote>“I’ve now seen dozens of companies struggling to put AI to work writing code, and each one has moved through five clear tiers of automation. That felt familiar, and I realized that the federal government had been there first – but for cars.<br><br>In 2013, the NHTSA created the five levels of driving automation. This was helpful, because while the highest level at the time was only level 22, it let everyone have a common language for both where things were, and where things were going.”</blockquote><p>What follows is instructive; some of the interim steps are waypoints, but 4 and 5 seems to be where a lot of mainstream software development is going. We can thank <a href="https://claude.com/product/claude-code?ref=werd.io">Claude Code</a> for this; many of these changes took place <em>last year</em>, with some pre-work laid down by the AI vendors and various startups beforehand. My guess is that everything will have changed again by the end of the year.</p><p>In the hands of senior engineers who are getting their heads around how these tools work, AI coding is starting to work as advertised. There’s a reason why engineers who have been coding for decades rave about it. But we’ll also see some really bad code (particularly in enterprise organizations) and some high-profile failures. There’s something I’ve called <em>The Mythical Claude Code Agent Month</em> (I need to find a pithier name), where in response to process and culture failures that are hampering its software development, an organization just decides that it needs to add more AI. And hallucinations, bias, and model poisoning are all real things.</p><p>In response to this, and because a lot of engineers are ideologically or otherwise opposed to AI, I think we’ll begin to see explicitly artisanal software companies emerge. In some industries, particularly highly-regulated ones, we’ll also see new kinds of trust certificates emerge to prove that (regardless of how it was built) software performs well and doesn’t leak private information.</p><p>Anyway, those are all knock-on effects. As of now, this is where mainstream software development is likely going. This isn’t an endorsement, necessarily — but it <em>is</em> a good-faith observation.</p><hr><h3 id="funding-open-source-for-digital-sovereignty"><a href="https://dri.es/funding-open-source-for-digital-sovereignty?ref=werd.io" rel="noreferrer">Funding Open Source for Digital Sovereignty</a></h3><p>Vital thoughts from Drupal founder <a href="https://dr.ies/?ref=werd.io">Dries Buytaert</a> on how, if Europeans and others are going to rely on open source software as a way to decouple from US services, funding the people and communities that <em>build</em> open source software must be part of the conversation:</p><blockquote>“Open Source is the most credible path to digital sovereignty. It's the only software you can run without permission. You can audit, host, modify, and migrate it yourself. No vendor, no government, and no sanctions regime can ever take it away.<br><br>But there is a catch. When governments buy Open Source services, the money rarely reaches the people who actually build and maintain it. Procurement rules favor large system integrators, not the maintainers of the software itself. As a result, public money flows to companies that package and resell Open Source, not to the ones who do the hard work of writing and sustaining it.”</blockquote><p>Dries’s solution involves evaluating a company’s open source contributions as part of a procurement process. If governments and other organizations are willing to do this in practice, that would work, at least for certain kinds of maintainers and communities. It would favor the companies that give back to an open source project over the ones that just repackage someone else’s work, and in doing so, make it more attractive for companies to give back in the first place.</p><p>But I think there’s another way to look at the problem: provide the tools, infrastructure, and platforms for maintainers to start companies around their work. Rather than encouraging existing companies to become open source participants, this would encourage open source participants to become companies. It might even incentivize new kinds of companies to be drawn up as co-operatives of open source maintainers.</p><p>When a company obtains software, it’s looking for more than the code: it needs a solution to a problem. Services address organizational problems more directly than codebases alone. There’s a reason why Dries’s Acquia and Matt Mullenweg’s Automattic have become so successful.</p><p>There is nothing unethical about creating services businesses (or non-profits with service missions) that are aligned with the open source nature of their underlying products — and, indeed, that direct connection with customers will make those products better. But I’d say that most open source maintainers either aren’t thinking that way or are daunted by the prospect. So perhaps they could use a little help?</p><p>An open source services in a box solution for these maintainers — including business fundamentals, sales and marketing, and a kind of operating system for running a small company around open source — could be an interesting way to <em>both</em> make open source software more palatable for institutional buyers <em>and</em> bring more money into their ecosystems.</p><p>Code, generally speaking, is not a solution in itself, but it can be part of one. This would fill in the rest.</p><hr><h3 id="on-ice-verification-and-presence-as-harm"><a href="https://connectedplaces.online/reports/fr150-on-ice-verification-and-presence-as-harm/?ref=werd.io" rel="noreferrer">On ICE, Verification, and Presence As Harm</a></h3><p>This post by <a href="https://laurenshof.online/?ref=werd.io">Laurens Hof</a> speaks to a bunch of issues at the intersection of our current moment in history (I haven’t yet found the words to refer to it that don’t sound like a euphemism) and the open social web.</p><p>ICE joined Bluesky as part of a wave of Trump Administration accounts that were created last November, as an apparent intimidation tactic against a network that was perceived to be largely left-wing. It never posted and the account seemed abandoned, but Bluesky officially verified it this week. Subsequently, <a href="https://bsky.app/profile/icegov.bsky.social/post/3md4do3y4y22p?ref=werd.io">it made a post</a> to further its narrative about Liam Conejo Ramos, the five-year-old whose local public schools superintendent says <a href="https://apnews.com/article/immigration-minnesota-boy-father-detained-342f319fafb766d13afe07f5bcc1f112?ref=werd.io">was used by ICE as bait</a>.</p><p>As Laurens points out, what happened next on the two main pillars of the open social web was interesting:</p><blockquote>“The decision by Bluesky PBC to verify the ICE account, two months after registration and without the account being active, lead to quite different responses for the fediverse and for the ATmosphere. On the fediverse, the choice by Bluesky PBC to lend legitimacy to ICE was a final nail in the coffin, with loud declarations to disconnect from Bluesky and block the bridge between these two networking protocols. Mastodon founder Eugen Rochko was the most notable account, who publicly declared to disconnect from the bridge.<br><br>Within the ATmosphere, the response focused on two parts, both a frustration with Bluesky PBC verifying the ICE account, as well as a call to block the account en-masse, which led to the ICE account quickly becoming one of the most-blocked accounts on the network.”</blockquote><p>For Mastodon, this is in some ways an endorsement of the fediverse model. Both communities and individuals can choose not to connect with other communities and accounts that they find harmful.</p><p>This is in contrast with the AT Protocol model, which is not made of archipelagos of smaller communities; it’s a wide town square at scale, much like Twitter was. For Bluesky, this is indicative of the tension between being an open protocol and a prominent consumer social media platform. On one hand, the protocol allows anyone to be a verifier: in this model, the government itself could have verified the ICE account, and any client that trusts the government to verify would have displayed a badge. This arrangement would avoid the appearance of Bluesky endorsing ICE. On the other hand, Bluesky the platform has its own verification service, because you need that on a commercial social network to prevent imposters and other abuse.</p><p>The timeline between verification and ICE’s first post is a little odd. But it’s also true that ICE is a government agency. If ICE is going to be on the platform to begin with, sticking a badge on its account to ensure everyone knows that, yes, this is the real ICE, is not a bad idea.</p><p>I’m going to pause here and state, for the record, that not only am I not a fan of ICE, I believe they are committing crimes and following a terrifyingly fascist playbook. People are being both kidnapped and murdered on the streets.</p><p>That’s important context for this next discussion:</p><blockquote>“Bluesky’s Community Guidelines lists the two major principles as ‘Safety First’ and ‘Respect Others’. It is somewhat unclear how the presence of a fascist police force that is actively working to instigate civil war aligns with the principles of safety and respect that Bluesky supposedly champions.<br><br>When it comes to actual rules in the guidelines, it is all about user behaviour and the content on Bluesky. The problem is that it is the presence of ICE itself that is already causing the harm. The intimidation of ‘we are here, you cannot escape us’ is the point, and the accounts by the regime are deliberately trying to provoke an outrage.”</blockquote><p>These things are true, in my mind. But it’s also really complicated.</p><p>If you were Bluesky, what would you do? Which precedent would you set?</p><p>Imagine if it were to ban ICE on the grounds that it is causing harm both in the world and through its presence on the platform. (It <em>is</em> causing harm.) ICE remains a government agency, and doing so would therefore be a political act. Its actions are claimed to be legal by the government. Banning it <em>could</em> set a precedent that Bluesky can ban accounts whose politics it disagrees with. At the very least, it would be contentious and cement its reputation as a left-wing network.</p><p>If it <em>doesn’t</em> ban ICE, we get the situation we have today. People are upset that ICE has a presence on the network. Some users on Mastodon, which is largely seen as a place for people to connect safely in smaller groups, disconnect from the Bluesky bridge. Some users on Bluesky are upset that it appears to be endorsing ICE by verifying the account; it becomes one of the most-blocked accounts within a matter of hours. And then ICE uses it to spread its message. Not banning it <em>could</em> be seen as an endorsement, or as Bluesky not taking what ICE is doing and represents seriously enough. That’s particularly true when banning the account would <em>only</em> ban them on the official Bluesky apps, not on the AT Protocol ecosystem as a whole.</p><p>It’s not a problem that Bluesky-the-protocol would have, but the fact is that it’s primarily a consumer platform. And if any consumer social platform makes trust and safety rulings that are, in effect, arbitrary, it sets a precedent that it can turf people off its platform on a whim, which undermines both trust and safety.</p><p>But it’s also extremely hard, because ICE <em>is</em> terrifying, they <em>are</em> kidnapping and killing people on the streets, and most people don’t want them in their space. Users likely moved to Bluesky to get away from the hard right wing discourse happening over on X/Twitter; the community self-selected largely based on that fact, which made it feel safer, but the platform itself doesn’t necessarily share those values.</p><p>A social media app that aims to be town square is different to a social networking app that aims to provide a smaller, safe community. The latter has a far easier time banning accounts from entities like ICE, because it can set a tighter set of community rules. So one lesson is perhaps that we need — or at least, many people need — a pluralistic open social web, where we can choose communities based on our values. That’s closer to the fediverse than to the ATmosphere model: the fediverse is smaller communities, while the social media ecosystem being built on AT Protocol is closer to an open version of Twitter.</p><p>Bluesky is in a tough position. It’s building an open protocol but most of the users of its flagship app don’t give two hoots about that. They’re looking for a safe place to discuss and share, and Bluesky’s core value for them is that it’s not X/Twitter and doesn’t have the toxicity of that network. It’s considered to be easier to use than Mastodon because there’s one place to sign up and one official app. AT Protocol wouldn’t be as successful as it’s becoming without that dynamic. So it has to continue to foster that community while also maintaining its protocol, and it can’t fork itself to create multiple app experiences for different audiences. It also can’t indicate that its flagship app is just for people who hate ICE.</p><p>My conclusion is that Bluesky is doing the only thing it can — and this is the only path that leads to AT Protocol becoming a successful open social web protocol. You need to have a vibrant community, and most people who join one don’t care about the underlying technology. There’s a world, later on, where other providers create viable alternative microblogging experiences with different takes on trust and safety — which is beginning to happen with Blacksky and Eurosky — but the ecosystem is not there yet. Protocol success and community safety have conflicting requirements, and Bluesky has to continue navigating that ambiguity for now; later on it may be able to focus on the protocol.</p><p>Meanwhile, ICE is doing a lot of harm, and its presence may be a real risk to many of Bluesky’s users. They may find that the fediverse, after all, is a better place for them to call home.</p><hr><h3 id="the-forwardable-email"><a href="https://pointc.co/the-forwardable-email/?ref=werd.io" rel="noreferrer">The Forwardable Email</a></h3><p>I know I share posts from <a href="https://pointc.co/?ref=werd.io">Corey</a> very regularly, but it’s because I’ve been working with him in various ways for over a decade, and the things he suggests are often techniques I’ve used productively for a long time. This is another great one.</p><p>I insist on double opt-in introductions if I’m making a connection. That means I check in with the connectee first: do they actually want this connection? It’s a little slower, but it means connections are always consensual.</p><p>To be able do that really well, a forwardable email is the perfect tool. Here, the person who wants to be connected drafts an email designed to allow me to forward it to the connectee with a little bit of added context. It gives them what they need to make an informed decision.</p><p>Corey’s template is actionable and really works: it’s what I’ve done for a decade now. It’s simple, but the underlying structure is not what most people are doing.</p><p>Honestly, I’m also just very happy that this is in a post on Corey’s site, because now when I tell people to write me a forwardable email, I can just point them to this. Please, if you’re asking me for a connection, this is the template I would like you to follow.</p>Installing and Updating Filezilla from a Zip File on Pop_OS / Ubuntu - Terence Eden’s Bloghttps://shkspr.mobi/blog/?p=650412026-01-24T12:34:21.000Z<p>Notes to myself because I keep forgetting.</p>
<p><abbr title="To Long; Didn't Read">tl;dr</abbr> Unzip it into the <code>/opt/</code> directory.</p>
<p>I want to install Filezilla - so I can SFTP files around. Sadly, the <a href="https://github.com/flathub/org.filezillaproject.Filezilla/issues/103">Flatpak version is unmaintained</a> and the version in apt is out of date. Luckily, you can <a href="https://filezilla-project.org/download.php">download the zipped version</a>.</p>
<p>Their Wiki <a href="https://wiki.filezilla-project.org/Client_Installation#Zip_version">helpfully says</a>:</p>
<blockquote><p>If you have special needs, don't have sufficient rights to install programs or don't like installers, the zip version is there for you. A zip-file is a file that contains files inside of it. They are packed into one file and you need to unpack (unzip) them to use them.</p></blockquote>
<p>But it doesn't say where!</p>
<p>The answer is <a href="https://refspecs.linuxfoundation.org/FHS_3.0/fhs/ch03s13.html">the <code>/opt/</code> directory</a>.</p>
<p>Run this command:</p>
<p><code>sudo tar -xJf FileZilla_*_x86_64-linux-gnu.tar.xz -C /opt</code></p>
<p>The first time <a href="https://cyanogenmods.org/install-filezilla-in-ubuntu/">you may need to adjust the directory permissions</a>:</p>
<p><code>cd /opt/</code><br/>
<code>sudo chown -R root:root FileZilla*</code></p>
<p>After installing, FileZilla will periodically check for updates. It will download them to the <code>~/Downloads/</code> directory. Run the above command to install the new version.</p>
<p>If you want to be able to launch Filezilla from your dashboard, or to pin it to your dock, you'll need to create:</p>
<p><code>/usr/share/applications/Filezilla.desktop</code></p>
<p>Place this text in it:</p>
<pre><code class="language-_">[Desktop Entry]
Name=Filezilla
Comment=FTP
Exec=/opt/FileZilla3/bin/filezilla
Icon=/opt/FileZilla3/share/icons/hicolor/scalable/apps/filezilla.svg
Type=Application
StartupWMClass=filezilla
Categories=Game;
</code></pre>
<p>What a faff!</p>
On ICE, Verification, and Presence As Harm - Werd I/O69743817d523b400016302092026-01-24T03:10:15.000Z<p>[<a href="https://connectedplaces.online/reports/fr150-on-ice-verification-and-presence-as-harm/?ref=werd.io#">Laurens Hof at Connected Places</a>]</p><p>This post by <a href="https://laurenshof.online/?ref=werd.io">Laurens Hof</a> speaks to a bunch of issues at the intersection of our current moment in history (I haven’t yet found the words to refer to it that don’t sound like a euphemism) and the open social web.</p><p>ICE joined Bluesky as part of a wave of Trump Administration accounts that were created last November, as an apparent intimidation tactic against a network that was perceived to be largely left-wing. It never posted and the account seemed abandoned, but Bluesky officially verified it this week. Subsequently, <a href="https://bsky.app/profile/icegov.bsky.social/post/3md4do3y4y22p?ref=werd.io">it made a post</a> to further its narrative about Liam Conejo Ramos, the five-year-old whose local public schools superintendent says <a href="https://apnews.com/article/immigration-minnesota-boy-father-detained-342f319fafb766d13afe07f5bcc1f112?ref=werd.io">was used by ICE as bait</a>.</p><p>As Laurens points out, what happened next on the two main pillars of the open social web was interesting:</p><blockquote>“The decision by Bluesky PBC to verify the ICE account, two months after registration and without the account being active, lead to quite different responses for the fediverse and for the ATmosphere. On the fediverse, the choice by Bluesky PBC to lend legitimacy to ICE was a final nail in the coffin, with loud declarations to disconnect from Bluesky and block the bridge between these two networking protocols. Mastodon founder Eugen Rochko was the most notable account, who publicly declared to disconnect from the bridge.<br><br>Within the ATmosphere, the response focused on two parts, both a frustration with Bluesky PBC verifying the ICE account, as well as a call to block the account en-masse, which led to the ICE account quickly becoming one of the most-blocked accounts on the network.”</blockquote><p>For Mastodon, this is in some ways an endorsement of the fediverse model. Both communities and individuals can choose not to connect with other communities and accounts that they find harmful. This is in contrast with the AT Protocol model, which is not made of archipelagos of smaller communities; it’s a wide town square at scale, much like Twitter was.</p><p>For Bluesky, this is indicative of the tension between being an open protocol and a prominent consumer social media platform. On one hand, the protocol allows anyone to be a verifier: in this model, the government itself could have verified the ICE account, and any client that trusts the government to verify would have displayed a badge. This arrangement would avoid the appearance of Bluesky endorsing ICE. On the other hand, Bluesky the platform has its own verification service, because you need that on a commercial social network to prevent imposters and other abuse.</p><p>The timeline between verification and ICE’s first post is a little odd. But it’s also true that ICE is a government agency. If ICE is going to be on the platform to begin with, sticking a badge on its account to ensure everyone knows that, yes, this is the real ICE, is not a bad idea.</p><p>I’m going to pause here and state, for the record, that not only am I not a fan of ICE, I believe they are committing crimes and following a terrifyingly fascist playbook. People are being both kidnapped and murdered on the streets.</p><p>That’s important context for this next discussion:</p><blockquote>“Bluesky’s Community Guidelines lists the two major principles as ‘Safety First’ and ‘Respect Others’. It is somewhat unclear how the presence of a fascist police force that is actively working to instigate civil war aligns with the principles of safety and respect that Bluesky supposedly champions.<br><br>When it comes to actual rules in the guidelines, it is all about user behaviour and the content on Bluesky. The problem is that it is the presence of ICE itself that is already causing the harm. The intimidation of ‘we are here, you cannot escape us’ is the point, and the accounts by the regime are deliberately trying to provoke an outrage.”</blockquote><p>These things are true, in my mind. But it’s also really complicated.</p><p>If you were Bluesky, what would you do? Which precedent would you set?</p><p>Imagine if it were to ban ICE on the grounds that it is causing harm both in the world and through its presence on the platform. (It <em>is</em> causing harm.) ICE remains a government agency, and doing so would therefore be a political act. Its actions are claimed to be legal by the government. Banning it <em>could</em> set a precedent that Bluesky can ban accounts whose politics it disagrees with. At the very least, it would be contentious and cement its reputation as a left-wing network.</p><p>If it <em>doesn’t</em> ban ICE, we get the situation we have today. People are upset that ICE has a presence on the network. Some users on Mastodon, which is largely seen as a place for people to connect safely in smaller groups, disconnect from the Bluesky bridge. Some users on Bluesky are upset that it appears to be endorsing ICE by verifying the account; it becomes one of the most-blocked accounts within a matter of hours. And then ICE uses it to spread its message. Not banning it <em>could</em> be seen as an endorsement, or as Bluesky not taking what ICE is doing and represents seriously enough. That’s particularly true when banning the account would <em>only</em> ban them on the official Bluesky apps, not on the AT Protocol ecosystem as a whole.</p><p>It’s not a problem that Bluesky-the-protocol would have, but the fact is that it’s primarily a consumer platform. And if any consumer social platform makes trust and safety rulings that are, in effect, arbitrary, it sets a precedent that it can turf people off its platform on a whim, which undermines both trust and safety.</p><p>But it’s also extremely hard, because ICE <em>is</em> terrifying, they <em>are</em> kidnapping and killing people on the streets, and most people don’t want them in their space. They likely moved to Bluesky to get away from the hard right wing discourse happening over on X/Twitter; the community self-selected largely based on that fact, which made it feel safer, but the platform itself doesn’t necessarily share those values.</p><p>A social media app that aims to be town square is different to a social networking app that aims to provide a smaller, safe community. The latter has a far easier time banning accounts from entities like ICE, because it can set a tighter set of community rules. So one lesson is perhaps that we need — or at least, many people need — a pluralistic open social web, where we can choose communities based on our values. That’s closer to the fediverse than to the ATmosphere model: the fediverse is smaller communities, while the social media ecosystem being built on AT Protocol is closer to an open version of Twitter.</p><p>Bluesky is in a tough position. It’s building an open protocol but most of the users of its flagship app don’t give two hoots about that. They’re looking for a safe place to discuss and share, and Bluesky’s core value for them is that it’s not X/Twitter and doesn’t have the toxicity of that network. It’s considered to be easier to use than Mastodon because there’s one place to sign up and one official app. AT Protocol wouldn’t be as successful as it’s becoming without that dynamic. So it has to continue to foster that community while also maintaining its protocol, and it can’t fork itself to create multiple app experiences for different audiences. It also can’t indicate that its flagship app is just for people who hate ICE.</p><p>My conclusion is that Bluesky is doing the only thing it can — and this is the only path that leads to AT Protocol becoming a successful open social web protocol. You need to have a vibrant community, and most people who join one don’t care about the underlying technology. There’s a world, later on, where other providers create viable alternative microblogging experiences with different takes on trust and safety — which is beginning to happen with Blacksky and Eurosky — but the ecosystem is not there yet. Protocol success and community safety have conflicting requirements, and Bluesky has to continue navigating that ambiguity for now; later on it may be able to focus on the protocol.</p><p>Meanwhile, ICE is doing a lot of harm, and its presence may be a real risk to many of Bluesky’s users. They may find that the fediverse, after all, is a better place for them to call home.</p><p>[<a href="https://connectedplaces.online/reports/fr150-on-ice-verification-and-presence-as-harm/?ref=werd.io#">Link</a>]</p>The Five Levels: from Spicy Autocomplete to the Software Factory - Werd I/O6973fb84d523b400016302032026-01-23T22:51:48.000Z<p>[<a href="https://www.danshapiro.com/blog/2026/01/the-five-levels-from-spicy-autocomplete-to-the-software-factory/?ref=werd.io">Dan Shapiro</a>]</p><p>Software development is transforming incredibly quickly. This guide, although it looks a bit silly at first glance, is very aligned with what I’ve heard from friends and seen first-hand.</p><blockquote>“I’ve now seen dozens of companies struggling to put AI to work writing code, and each one has moved through five clear tiers of automation. That felt familiar, and I realized that the federal government had been there first – but for cars.<br><br>In 2013, the NHTSA created the five levels of driving automation. This was helpful, because while the highest level at the time was only level 22, it let everyone have a common language for both where things were, and where things were going.”</blockquote><p>What follows is instructive; some of the interim steps are waypoints, but 4 and 5 seems to be where a lot of mainstream software development is going. We can thank <a href="https://claude.com/product/claude-code?ref=werd.io">Claude Code</a> for this; many of these changes took place <em>last year</em>, with some pre-work laid down by the AI vendors and various startups beforehand. My guess is that everything will have changed again by the end of the year.</p><p>In the hands of senior engineers who are getting their heads around how these tools work, AI coding is starting to work as advertised. There’s a reason why engineers who have been coding for decades rave about it. But we’ll also see some really bad code (particularly in enterprise organizations) and some high-profile failures. There’s something I’ve called <em>The Mythical Claude Code Agent Month</em> (I need to find a pithier name), where in response to process and culture failures that are hampering its software development, an organization just decides that it needs to add more AI. And hallucinations, bias, and model poisoning are all real things.</p><p>In response to this, and because a lot of engineers are ideologically or otherwise opposed to AI, I think we’ll begin to see explicitly artisanal software companies emerge. In some industries, particularly highly-regulated ones, we’ll also see new kinds of trust certificates emerge to prove that (regardless of how it was built) software performs well and doesn’t leak private information.</p><p>Anyway, those are all knock-on effects. As of now, this is where mainstream software development is likely going. This isn’t an endorsement, necessarily — but it <em>is</em> a good-faith observation.</p><p>[<a href="https://www.danshapiro.com/blog/2026/01/the-five-levels-from-spicy-autocomplete-to-the-software-factory/?ref=werd.io">Link</a>]</p>Pinning homebrew dependencies - Posts feedhttps://www.coryd.dev/posts/2026/pinning-homebrew-dependencies2026-01-23T20:50:00.000Z<p>You learn something new every day. I've been using <a href="https://brew.sh">Homebrew</a> for over a decade and, up until a few weeks ago, hadn't hit a case where I would <em>not</em> want to update something.</p>
Book Review: Surely You Can't Be Serious - The True Story of Airplane! ★★⯪☆☆ - Terence Eden’s Bloghttps://shkspr.mobi/blog/?p=660802026-01-23T12:34:30.000Z<img src="https://shkspr.mobi/blog/wp-content/uploads/2025/12/9781250289322.avif" alt="Book cover for Airplane. A sticker says "At last a book you can judge by its cover!"" width="200" height="258" class="alignleft size-full wp-image-66081"/>
<p>This is a hugely extended version of <a href="https://www.avclub.com/surely-you-can-t-be-serious-an-oral-history-of-airplan-1798279218">Will Harris' "An oral history of Airplane"</a>. It goes through the pre-history of the project, how it eventually got made, and the aftermath. In many ways, it is like an old-fashioned DVD extra. The whole book consists of snippets of interviews with the cast, crew, and various talking heads.</p>
<p>Like all DVD special features, it is <em>fairly</em> sycophantic. Yes, there are some good-natured swipes at the people who passed on the script, but it is a bit of a Hollywood love-in. The self-deprecating humour is there to make people look classy - for example:</p>
<blockquote><p>Eisner’s also the one who once said, “If I had green-lit every movie I’ve passed on and passed on every movie I green-lit, my track record would probably be about the same.”</p></blockquote>
<p>About the only time it gets into anything other than "gooly-gee how lucky are we" is a small section talking about the star of one of their other films - the notorious murderer OJ Simpson:</p>
<blockquote><p><strong>David</strong>: I directed him in the Naked Gun movies. Although he actually improved with each film, his acting remained a lot like his murdering — he got away with it, but no one really believed him.</p></blockquote>
<p>Some of the commentary is a bit perfunctory. Do we really need to know that Quentin Tarantino liked the movie? It's nice, I guess. Tim Allen bemoaning the state of comedy today lands like a turd in a punchbowl.</p>
<p>The photos throughout are good - especially those showing how the framing of certain shots were lovingly ripped off from Zero Hour.</p>
<p>It is a fun and uncomplicated book. For students of film, it is always fascinating to see how the sausage gets made. Occasionally it veers into "IMDb trivia" and you do get the sense that most of the anecdotes have been retold a thousand times. Still, it is entertaining.</p>
<p>There is a bit of a glum streak running through it though:</p>
<blockquote><p><strong>JEFFREY KATZENBERG</strong>: Airplane! was not like anything else. And Michael Eisner, I think, felt that in his bones. Like, “Wow, this is really, really unique, and as such, is the kind of thing we should be doing!”</p></blockquote>
<p>Where did it all go wrong in Hollywood? Why are the people who made their name with weird films now content to pump out mediocrity?</p>
<p>There's a tantalising moment talking about alternative takes and an original cut which was some 20 minutes longer. But, alas:</p>
<blockquote><p>Sadly, Paramount threw out all the dailies; every studio did at that time. All those reels took physical space that they needed on the lot, so they threw them out, including Airplane! Although I’m pretty sure they kept the outtakes from The Godfather.</p></blockquote>
<p>Certainly worth flicking through if you're a fan of the film, but hardly revelatory.</p>
A phone case for an old phone - Joel's Log Fileshttps://joelchrono.xyz/blog/phone-case2026-01-22T22:50:00.000Z<p>We went to the mall during the weekend, and if there’s one thing that malls have, is phone case kiosks. Small shops selling peripherals and cases for popular Apple and Samsung devices,and not much else—at least that’s what I always assumed.</p>
<p>When heading elsewhere, my mom suddently had the desire to get a new case for her phone, a Redmi Note 11 by the way—a pretty okay midrange device. I have to admit I had zero hopes they would find anything at all, I tried to tell her getting something online going to be much cheaper and that we could find something she actually likes.</p>
<p>No point arguing with mom, she wanted to at least ask, and so we did.</p>
<p>After standing in front of the seller for way too long—I didn’t remember the device name and clumsily searched in the settings for longer than I’d like to admit—I was surprised they didn’t immediately said no. The guy got searching in a few drawers full of cases, under the stand, higher up, checking some sort of index every once in a while.</p>
<p>A few even more agonizing minutes passed where he kept searching but, eventually, he had to give up, tough luck this time around—and then my dad spoke.</p>
<p>My father saw a few cases in a shelf up above that started with “RN”, they were at the bottom of the pile, so only the spines of the boxes could be seen—I have no idea how my father even found them from where we were standing—the guy immediately checked closer and pulled out a couple cases for my mom to choose from.</p>
<p>She picked a golden colored one, and I was absolutely impressed. They did have something in the end, so they earned my respect.</p>
<p>I wasn’t too happy about paying like 10 extra bucks than what the case would cost online, but I digress, I took my losses and got my mom what she wanted.</p>
<hr/>
<p>I’m rather amazed by little moments like this, it really lets me know that even a tech enthusiast such as myself often ends up in a bubble when compared to other people who just use technology without being deeply interested on the latest and greatest.</p>
<p>The Redmi Note devices are fairly popular in some countries—<a href="https://joelchrono.xyz/blog/">I used to have one myself</a>—and some folks who don’t follow tech as closely as I do, aren’t really tempted or in need of upgrading devices every one or two years, which means that even a device as old as the Note 11 has plenty of accesories and cases made for it, due to the marketshare these phones have among the less techy people.</p>
<p>The same is true for a lot of other things. Most people have not bought a Nintendo Switch 2 yet, most people won’t even realize that a Steam Machine is, plenty of regular folks don’t care their phone is 4 years out of date, and that is absolutely fine. I don’t know why I keep forgetting stuff like this…</p>
<p>My mom has showed signs of wanting a new phone, and I have felt like I should get something new to her, but at the same time, I think all she really needs is a nice factory reset to get her device snappy and fluid as new. I haven’t been the best example when it comes to sticking to a device for a long time, I know, buying like three phones since this blog got started… but alas.</p>
<p>For now, I spent more money than I wanted on a case, my dad has better eyesight than me, I should look at myself in the mirror when it comes to my assumptions, and in any case, my mom is happy.</p>
<p>
<a href="mailto:me@joelchrono.xyz?subject=A phone case for an old phone">Reply to this post via email</a> |
<a href="https://fosstodon.org/@joel/commmentsid">Reply on Fediverse</a>
</p>The conditionally open web - Posts feedhttps://www.coryd.dev/posts/2026/the-conditionally-open-web2026-01-22T21:07:00.000Z<p>I spend a lot of time thinking about the open web. We talk about it a lot. But I'm not sure it exists, at least not in the way it's often described. Embedded within the underlying architecture of the web is an ideal of openness. One can publish anything and one can link to anything.</p>
The Forwardable Email - Werd I/O69723026d523b400016301ec2026-01-22T14:11:50.000Z<p>[<a href="https://pointc.co/the-forwardable-email/?ref=the-idea-bucket-newsletter">Corey Ford at Point C</a>]</p><p>I know I share posts from <a href="https://pointc.co/?ref=werd.io">Corey</a> very regularly, but it’s because I’ve been working with him in various ways for over a decade, and the things he suggests are often techniques I’ve used productively for a long time. This is another great one.</p><p>I insist on double opt-in introductions if I’m making a connection. That means I check in with the connectee first: do they actually want this connection? It’s a little slower, but it means connections are always consensual.</p><p>To be able do that really well, a forwardable email is the perfect tool. Here, the person who wants to be connected drafts an email designed to allow me to forward it to the connectee with a little bit of added context. It gives them what they need to make an informed decision.</p><p>Corey’s template is actionable and really works: it’s what I’ve done for a decade now. It’s simple, but the underlying structure is not what most people are doing.</p><p>Honestly, I’m also just very happy that this is in a post on Corey’s site, because now when I tell people to write me a forwardable email, I can just point them to this. Please, if you’re asking me for a connection, this is the template I would like you to follow.</p><p>[<a href="https://pointc.co/the-forwardable-email/?ref=the-idea-bucket-newsletter">Link</a>]</p>Removing "/Subtype /Watermark" images from a PDF using Linux - Terence Eden’s Bloghttps://shkspr.mobi/blog/?p=630352026-01-22T12:34:02.000Z<p><strong>Problem:</strong> I've received a PDF which has a large "watermark" obscuring every page.</p>
<p><strong>Investigating:</strong> Opening the PDF in LibreOffice Draw allowed me to see that the watermark was a separate image floating above the others.</p>
<p><strong>Manual Solution:</strong> Hit page down, select image, delete, repeat 500 times. BORING!</p>
<p><strong>Further Investigating:</strong> Using <a href="https://linux.die.net/man/1/pdftk">pdftk</a>, it's possible to decompress a PDF. That makes it easier to look through manually.</p>
<p><code>pdftk input.pdf output output.pdf uncompress</code></p>
<p>Hey presto! A PDF you can open in a text editor! Deep joy!</p>
<p><strong>Searching:</strong> On a hunch, I searched for "watermark" and found several lines like this:</p>
<pre><code class="language-_"><<
/Length 548
>>
stream
/Figure <</MCID 0 >>BDC q 0 0 477 733.464 re W n q /GS0 gs 479.2799893 0 0 735.5999836 -1.0800002 -1.0559941 cm /Im0 Do Q EMC
/Figure <</MCID 1 >>BDC Q q 28.333 300.661 420.334 126.141 re W n q /GS0 gs 420.3339603 0 0 126.1418879 28.3330078 300.6610601 cm /Im1 Do Q EMC
/Figure <</MCID 2 >>BDC Q q 16.106 0 444.787 215.464 re W n q /GS0 gs 444.7874274 0 0 216.5921386 16.1062775 -1.1281493 cm /Im2 Do Q EMC
/Artifact <</Subtype /Watermark /Type /Pagination >>BDC Q q 0.7361145 0 0 0.7361145 113.3616638 240.8575745 cm /GS1 gs /Fm0 Do Q EMC
endstream
endobj
</code></pre>
<p>Those are <a href="https://opensource.adobe.com/dc-acrobat-sdk-docs/library/pdfmark/pdfmark_Logical.html">Marked Content Blocks</a>. In <em>theory</em> you can just chop out the line with <code>/Subtype /Watermark</code> but each block has a <code>/length</code> variable - so you'd also need to adjust that to account for what you've changed - otherwise the layout goes all screwy.</p>
<p>That led me to <a href="https://github.com/pymupdf/PyMuPDF/discussions/1855">PyMuPDF which claimed to solve the problem</a>. But running that code only removed <em>some</em> of the watermarks. It got stuck on an infinite loop on certain pages.</p>
<p>So, now that I had more detailed knowledge, I managed to get an LLM to construct something which <em>mostly</em> seems to work.</p>
<p>Does it work with every PDF? I don't know. Does it contain subtle implementation bugs? Probably. Is there an easier way to do this? Not that I can find.</p>
<pre><code class="language-python">import re
import pymupdf
# Open the PDF
doc = pymupdf.open("output.pdf")
# Regex of the watermarks
pattern = re.compile(
rb"/Artifact\s*<<[^>]*?/Subtype\s*/Watermark[^>]*?>>BDC.*?EMC",
re.DOTALL
)
# Loop through the PDF's pages
for page_num, page in enumerate(doc, start=1):
print(f"Processing page {page_num}")
xrefs = page.get_contents()
for xref in xrefs:
cont = doc.xref_stream(xref)
new_cont, n = pattern.subn(b"", cont)
if n > 0:
print(f" Removed {n} watermark block(s)")
doc.update_stream(xref, new_cont)
doc.save("no-watermarks.pdf")
</code></pre>
<p>One of the (many) problems with Vibe Coding is that trying to get a LLM to spit out something useful depends <em>massively</em> on how well you know the subject area. I'm proud to say I know vanishingly little about the <a href="https://shkspr.mobi/blog/2015/11/a-polite-way-to-say-ridiculously-complicated/">baroque</a> PDF specification - which meant that most of my attempts to use various "AI" tools consisted of me saying "No, that doesn't work" and the accurs'd machine saying back "Golly-gee! You're right! Let me fix that!" and then breaking something else.</p>
<p>I'm not sure this is the future we wanted, but it looks like the future we've got.</p>
22.00.0181 'Powered by Johnny.Decimal' badge - Johnny.Decimalhttps://johnnydecimal.com/22.00.0181/2026-01-22T08:27:06.000Z<h1 id="powered-by-johnnydecimal-badge">'Powered by Johnny.Decimal' badge</h1>
<p>Thanks to Karsten.Decimal on Discord for suggesting this idea, along with a proof-of-concept.</p>
<p>If you've ever wanted to show people how organised you are, now you can -- with an official 'Powered by Johnny.Decimal' badge!</p>
<picture class="JDImage6 no-border astro-3zw7efbj"> <source media="(prefers-color-scheme: light) and (min-width: 600px)" srcset="/img/v6/22.00.0181A-Powered_by_JohnnyDecimal-cx-light-640x297.png" class="astro-3zw7efbj"> <source media="(prefers-color-scheme: dark) and (min-width: 600px)" srcset="/img/v6/22.00.0181A-Powered_by_JohnnyDecimal-cx-dark-640x297.png" class="astro-3zw7efbj"> <source media="(prefers-color-scheme: light) and (max-width: 599px)" srcset="/img/v6/22.00.0181A-Powered_by_JohnnyDecimal-cx-light-640x297.png" class="astro-3zw7efbj"> <source media="(prefers-color-scheme: dark) and (max-width: 599px)" srcset="/img/v6/22.00.0181A-Powered_by_JohnnyDecimal-cx-dark-640x297.png" class="astro-3zw7efbj"> <img alt="A simple graphic. It has a border, and inside our logo and the words 'Powered by Johnny.Decimal'. It's very line-arty." class=" no-caption astro-3zw7efbj" loading="lazy" src="https://johnnydecimal.com/img/v6/22.00.0181A-Powered_by_JohnnyDecimal-cx-light-640x297.png" width="480" height="223"> </picture>
<p><a href="https://files.johnnydecimal.com/d25/43/43.20/">Full-res versions are available to download here</a>. Don't save the image from above, it's super low-res.</p>
<h3 id="faq">FAQ</h3>
<ul>
<li>
<p>Q: Can I use these freely?</p>
<ul>
<li>A: As you please.</li>
</ul>
</li>
<li>
<p>Q: Would you like me to link back to your site when I use them?</p>
<ul>
<li>A: I'd like that, but you don't have to.</li>
</ul>
</li>
<li>
<p>Q: Do you expect me to use these?</p>
<ul>
<li>A: This is just a bit of fun. I expect nothing.</li>
</ul>
</li>
<li>
<p>Q: Can I tweak them for my needs by resizing them or changing their format?</p>
<ul>
<li>A: As long as it still looks mostly like this, yes.</li>
</ul>
</li>
</ul>
<hr>
<p><em>100% human. 0% AI. Always.</em></p>22.00.0180 Backups aren't enough: create 'restore points' - Johnny.Decimalhttps://johnnydecimal.com/22.00.0180/2026-01-22T07:03:05.000Z<h1 id="backups-arent-enough-create-restore-points">Backups aren't enough: create 'restore points'</h1>
<p>I almost lost a bunch of data this week. Here's how my backups saved me (<em>just</em>), and what I've changed.</p>
<blockquote>
<p><strong>Warning:</strong> thinking about backups can make you sleepy. But if you care about your data, you need to pay attention. There's a lot here: ask for help on the forum and Discord. This is important.</p>
</blockquote>
<blockquote>
<p><strong>Note:</strong> now that I've finished this post, yeah, it's long, and complex. I might turn this into a short YouTube series. <a href="mailto:hello@johnnydecimal.com">Let me know</a> if that'd be helpful.</p>
</blockquote>
<h3 id="what-happened">What happened</h3>
<p>Actually this started months ago. I accidentally deleted my entire Documents folder! I was being too quick on the keyboard and I literally just <strong>Cmd+A</strong> then <strong>Cmd+Deleted</strong> everything. Turns out that's surprisingly easy to do.</p>
<p>I undid by pressing <strong>Cmd+Z</strong> a second later. But the damage was done. I <a href="https://support.apple.com/en-au/109344">store my Documents folder in iCloud Drive</a> and I knew as soon as it happened that I'd likely triggered a cascade of network activity. My <em>command to delete</em> would have still been half-way to the cloud when I issued the <em>command to undo</em> (i.e. move those files out of my Trash back to Documents), and it would have been a more robust service than iCloud that handled that without issue.</p>
<p>What I <em>should</em> have done at that point was stop everything and spend a few hours making sure everything was okay. I didn't do that.</p>
<blockquote>
<p><strong>Lesson 1.</strong> If something like this happens you MUST drop everything and fix it, completely and properly, before doing anything else.</p>
</blockquote>
<h3 id="discovering-the-issue">Discovering the issue</h3>
<p>This week I finally found time to upgrade myself to <a href="https://johnnydecimal.com/15.03/">Life Admin</a> v2.<sup><a href="#user-content-fn-lasv2" id="user-content-fnref-lasv2" data-footnote-ref="" aria-describedby="footnote-label">1</a></sup> I thought I'd take the opportunity to really clean up some old stuff, and in doing so I realised that a bunch of <em>really old</em> archive stuff was missing.<sup><a href="#user-content-fn-suite" id="user-content-fnref-suite" data-footnote-ref="" aria-describedby="footnote-label">2</a></sup> The folders were there, but there was nothing in them.</p>
<blockquote>
<p><strong>Lesson 2.</strong> If it doesn't have a proper Johnny.Decimal ID, it might as well not exist. In my case, files buried in an 'archive' folder were, in fact, important to me. I was just too lazy to organise them properly. I've since given them their own IDs in a new area, <a href="https://johnnydecimal.com/22.00.0176/#2900-jdex-for-the-omnium">29 The Omnium</a>.</p>
</blockquote>
<p>Even if these files had their own ID, I might not have picked this up. Everything <em>looked</em> okay, in the moment.</p>
<p>These missing files were buried pretty deep -- this thing that I'm archiving is <em>itself an old Johnny.Decimal structure</em>.<sup><a href="#user-content-fn-deep" id="user-content-fnref-deep" data-footnote-ref="" aria-describedby="footnote-label">3</a></sup> How would I have known to go looking for this file, way down at <code>41.14</code>?</p>
<blockquote>
<p><strong>Lesson 3.</strong> I'm going to keep a short list of '<a href="https://en.wiktionary.org/wiki/canary_in_a_coal_mine">canary</a> files'. They're files that I care about, but rarely look at. I will manually check them in case of a 'restore event'.</p>
</blockquote>
<h3 id="so-now-i-need-to-restore-from-backup">So now I need to restore from backup</h3>
<p>Obviously I have backups. I <a href="https://johnnydecimal.com/22.00.0101/">wrote a whole series about it</a>. But backups are complex, mine especially so. This is of my own making, but also hard to avoid given my situation. (I won't recap here: read that series.)</p>
<p>Here are a few of the problems I encountered.</p>
<ul>
<li>As soon as you actually need to restore from a backup because you lost some data, <em>shit gets real</em> if you'll excuse my language.
<ul>
<li>Stress levels rise. Everything becomes difficult.</li>
<li>This is not a time to be confused.</li>
</ul>
</li>
</ul>
<span id="lesson-4"></span>
<blockquote>
<p><strong>Lesson 4.</strong> Good records are essential. This is what your JDex is for. See below for a template that you can download.</p>
</blockquote>
<ul>
<li>Not knowing <em>which</em> backup, as in from which date, to restore.
<ul>
<li>Because I can't remember exactly when this data-loss event occurred. I think it was around August? That's 4 months ago.</li>
<li>I use <a href="https://www.arqbackup.com">Arq</a> and it allows you to search, really quickly, for a specific file across all of your backups. This made things <em>much</em> easier.</li>
<li>Its restore is also really fast, and this backup was local, i.e. a hard drive attached to the server, not cloud. So I could quickly do test restores to identify which was the right one.</li>
</ul>
</li>
</ul>
<span id="lesson-5"></span>
<blockquote>
<p><strong>Lesson 5.</strong> Know your backup software. Use good software: if yours isn't good, find another. I recommend <a href="https://www.arqbackup.com">Arq</a> for Mac.</p>
</blockquote>
<span id="lesson-6"></span>
<blockquote>
<p><strong>Lesson 6.</strong> Local backups are better than cloud backups when it comes to restoring data because they're <em>much</em> faster. (But you still need an offsite copy, in case your house burns down.)</p>
</blockquote>
<ul>
<li>Not knowing <em>which</em> backup, as in literally which one, to restore.
<ul>
<li>Because the way I'd configured them -- which I think is the way most people configure them -- didn't make it really obvious <em>where</em> things were.</li>
<li>So when I came to use them, there was confusion. Not what you want in a time of crisis.</li>
<li>More on this below.</li>
</ul>
</li>
</ul>
<span id="lesson-7"></span>
<blockquote>
<p><strong>Lesson 7.</strong> Change the way you structure backups. Previously, I backed up <em>a hard drive</em> or <em>a computer</em>. But what's actually important to me is the unit of data which is <em>a Johnny.Decimal system</em>.</p>
</blockquote>
<ul>
<li>My backups are encrypted.
<ul>
<li>Which they should be. And I use 1Password, and my vault is <em>reasonably</em> neat.</li>
<li>But when I tried the password I thought it should be, it failed. Shit. I tried another. Failed! <em>Oh, shit</em>. This is bad.</li>
<li>I must have mis-copy/pasted the first password. When I tried again, that worked.</li>
<li>But to have <strong>any possibility of doubt at all</strong> here is a total failure.</li>
</ul>
</li>
</ul>
<blockquote>
<p>Ref: <strong>Lesson 4.</strong> Good records are essential.</p>
</blockquote>
<h3 id="set-and-forget">'Set and forget'</h3>
<p>This whole thing got me wondering if we're doing it all wrong. Backup services advertise themselves as 'set and forget': just install, then never think about it again!</p>
<p>That's what got me into this problem.</p>
<p>If you know about backups you're shouting at the computer: <em>but Johnny, you should test your backups regularly and then you wouldn't be in this situation!</em></p>
<p>That's true. But you know what I think most people do when forced, begrudingly, to test their backups? They think of a file that they deleted from their Desktop <em>yesterday</em> and they restore that. <strong>This is not a realistic test</strong>. It doesn't stress you, or your system.</p>
<blockquote>
<p><strong>Lesson 8.</strong> Daily 'set and forget' backups are great and you should not stop doing them. But you should <em>also</em> have a subset of backups that are a lot more deliberate, and are manually activated. You must see these backups as an opportunity to be neat and tidy. You must cherish them. They are not a chore. They are your happy place.</p>
</blockquote>
<h2 id="conscious-backups-aka-restore-points">Conscious backups aka 'restore points'</h2>
<p>Let's address that last <strong>lesson 8</strong> first. I think there's room in life for two types of backups. The first is the one I've already got: the 'set and forget'. 90% of the time this is going to do the job. Don't stop doing those.</p>
<p>But the other type is what I'm calling a 'restore point'. In the IT world, a restore point is a backup at a <em>specific</em> point in time. You're saying that you can <strong>restore to this point in time</strong>.</p>
<p>They are much more deliberate, which means that they take more work. But they give you the sort of 'comfortable awareness' of your system that only comes from giving it your clear attention.<sup><a href="#user-content-fn-comfortable" id="user-content-fnref-comfortable" data-footnote-ref="" aria-describedby="footnote-label">4</a></sup></p>
<h3 id="today-is-a-restore-point">Today is a restore point</h3>
<p>I finished my migration to LAS v2 today, and with it a bunch of tidying up and moving around of data.</p>
<p>Today -- now -- my system is in a really nice state. I've just looked at everything and I'm deeply familiar with it. I'm sure it's good. <strong>Today is a restore point</strong>.</p>
<p>So I'm configuring a new backup. Here's what makes it different from my daily backups.</p>
<h3 id="restore-point-rules">'Restore point' rules</h3>
<ol>
<li>They are manually triggered.</li>
</ol>
<p>When I decide the time is right, I'll run this backup. I'll be <a href="https://johnnydecimal.com/14.04/">adding something to my task system</a> to prompt me to do this, perhaps quarterly.</p>
<ol start="2">
<li>They have no retention rules.</li>
</ol>
<p>Normal backups are smart about the data they retain. Your computer might perform a backup every hour, but you don't need to keep every one of those backups. That would be a waste of space.</p>
<p>A typical 'retention cycle' might be to keep:</p>
<ul>
<li>Every hour for the last 72 hours.</li>
<li>Every day for the last 30 days.</li>
<li>Every week for the last 52 weeks.</li>
<li>Every month forever.</li>
</ul>
<p>My 'restore points' have no retention cycle. Every one is saved forever.</p>
<ol start="3">
<li>They have no exclusion rules.</li>
</ol>
<p>My daily backup excludes a bunch of files and folders. Anything that looks temporary, or like a cached version, or like something I've downloaded, or like something that I know I could get from the cloud, is excluded.</p>
<p>For my daily rules, this keeps them lean and fast. This is particularly important for me as I live on the road. But that isn't relevant for 'restore point' backups. <strong>It is more important that they are complete</strong>, so they have no exclusions.</p>
<h3 id="the-structure-of-a-restore-point">The structure of a 'restore point'</h3>
<p>Per <a href="#lesson-7">lesson 7</a>, these backups don't just back up an entire drive, say, or my user folder. (That's what your daily backups probably do, which is appropriate in that context.)</p>
<p>Instead, they back up <em>the specific folders</em> and <em>only those folders</em> that make up the Johnny.Decimal system that they target. I have 2 restore point backups: one for my <code>P76 Personal</code> system, and another for <code>D25 Johnny.Decimal</code>, the business system.</p>
<p>The personal system has files split across 2 locations:</p>
<ol>
<li>My <code>~/Documents</code> folder. This is stored in iCloud.</li>
<li>An external hard drive. This contains ~500GB of media files that don't need to use cloud storage space.</li>
</ol>
<p>So it only backs up these folders. Not my whole laptop. No other cruft. Nothing is excluded: if something is in one of those folders, it's because I put it there, and I want it backed up.</p>
<p>The business system is simpler as everything is in a single folder. So that folder is the only one in the restore point backup.<sup><a href="#user-content-fn-syncthing" id="user-content-fnref-syncthing" data-footnote-ref="" aria-describedby="footnote-label">5</a></sup></p>
<h3 id="local-backups-using-arq">Local backups using Arq</h3>
<p>These backups all take place on an always-on Mac mini which is connected via Ethernet to a Synology. We learn from <a href="#lesson-5">lessons 5</a> and <a href="#lesson-6">6</a>: use good software that you know well to make local backups because they're fast.</p>
<h2 id="records-keeping">Records-keeping</h2>
<p><a href="#lesson-4">Lesson 4</a> taught us that good records-keeping is vital. You must have total confidence in these backups, and have good records that you can depend on in a crisis.</p>
<p>Of course, this is what your JDex is for. <a href="https://johnnydecimal.com/15.03/">LAS</a> and <a href="https://johnnydecimal.com/15.04/">SBS</a> both have a place for backups. At LAS that's <code>14.14 My data storage & backups</code>, so in that note I have left myself <em>copious</em> notes. I've recorded:</p>
<ul>
<li>The name of the restore point backup (in Arq).</li>
<li>Its data sources (the folders it backs up).</li>
<li>Its target (where it backs up to).</li>
<li>Its frequency (manual).</li>
<li>Any exclusion and retention rules (none).</li>
<li>Where its encryption keys are held (1Password: be explicit and name the entry).</li>
</ul>
<p>Then, <em>every time I manually trigger a backup</em>, I'm noting:</p>
<ul>
<li>The date & time of the backup.</li>
<li>How large each of the folders was at the time (right-click in Finder and <strong>Get Info</strong>).</li>
<li>That I checked my canary files.</li>
</ul>
<p>You want this to be a story that you can return to. A place of total comfort.</p>
<h3 id="use-my-template">Use my template</h3>
<p>I've knocked up a template that I'm using myself. It's way far from perfect, but it does the job. <a href="https://files.johnnydecimal.com/D25/50/50111/">Get them here</a>.</p>
<p>Using the 3-2-1 method of data storage -- see the notes on pages 3 & 4 in the PDF, or <a href="https://kagi.com/search?q=3+2+1+data+backup+rule&r=au&sh=tUPZpMNoRZ4pabJamAxDoQ">search online</a> -- it has a space for you to record:</p>
<ul>
<li>
<p>Where the <strong>primary</strong> copy of your data is.</p>
<ul>
<li>This is the folder that you back up.</li>
</ul>
</li>
<li>
<p>Where the <strong>secondary</strong> copy of your data is.</p>
</li>
<li>
<p>Where the <strong>backup</strong> of your data is.</p>
</li>
<li>
<p>Which of the <strong>secondary</strong> or <strong>backup</strong> is your <strong>offsite copy</strong>.</p>
</li>
</ul>
<p>Fill that in, and save it in your system.</p>
<ul>
<li>LAS: <code>14.14 My data storage & backups</code></li>
<li>SBS: <code>14.23 Backups & recovery</code></li>
</ul>
<h2 id="ask-for-help">Ask for help</h2>
<p>I've created a <a href="https://forum.johnnydecimal.com/t/backups-arent-enough-create-restore-points-22-00-0177/2857">dedicated forum post for this topic</a> as it's a big one. Ask for help there, or in the <a href="https://discord.com/channels/822215537589354566/1463558994986799209">thread on Discord</a>.</p>
<h3 id="in-this-series">In this series</h3>
<p>This post is part of a series on storage, data, & backups.</p>
<ol start="0">
<li><a href="https://johnnydecimal.com/22.00.0101/">22.00.0101 My data storage & backup strategy</a></li>
<li><a href="https://johnnydecimal.com/22.00.0115/">22.00.0115 Storage, data, & backups [SBS.14.20]</a></li>
<li><a href="https://johnnydecimal.com/22.00.0116/">22.00.0116 Data [SBS.14.22]</a></li>
<li><a href="https://johnnydecimal.com/22.00.0119/">22.00.0119 Synchronisation [SBS.14.22]</a></li>
<li><a href="https://johnnydecimal.com/22.00.0120/">22.00.0120 Backups [SBS.14.23]</a></li>
<li>22.00.0180 Backups aren't enough: create 'restore points'</li>
</ol>
<hr>
<p><em>100% human. 0% AI. Always.</em></p>
<section data-footnotes="" class="footnotes"><h2 class="sr-only" id="footnote-label">Footnotes</h2>
<ol>
<li id="user-content-fn-lasv2">
<p>We added a handful of IDs to v1 and moved things around in the finance area to align it with the Small Business System. <a href="#user-content-fnref-lasv2" data-footnote-backref="" aria-label="Back to reference 1" class="data-footnote-backref">↩</a></p>
</li>
<li id="user-content-fn-suite">
<p>Specifically, the file that started Johnny.Decimal: a carefully-designed PDF of ticket prices that was stuck to our office wall in 2010. I wanted a way to reference this file that wasn't an ugly file path, so I came up with the idea of the numbers.</p>
<p>That was 15 years ago, and I have no use for this file today. I think about it perhaps once a year. But I'd be devastated if I lost it.</p>
<picture class="JDImage6 astro-3zw7efbj"> <source media="(prefers-color-scheme: light) and (min-width: 600px)" srcset="/img/v6/22.00.0180A-SuiteSynergy--0-light-cx-1002x705.png" class="astro-3zw7efbj"> <source media="(prefers-color-scheme: dark) and (min-width: 600px)" srcset="/img/v6/22.00.0180A-SuiteSynergy--0-dark-cx-1002x705.png" class="astro-3zw7efbj"> <source media="(prefers-color-scheme: light) and (max-width: 599px)" srcset="/img/v6/22.00.0180A-SuiteSynergy--0-light-cx-1002x705.png" class="astro-3zw7efbj"> <source media="(prefers-color-scheme: dark) and (max-width: 599px)" srcset="/img/v6/22.00.0180A-SuiteSynergy--0-dark-cx-1002x705.png" class="astro-3zw7efbj"> <img alt="An A4 page, laid out with boxes, of ticket prices. At the top is the ID: 41.14." class=" no-caption astro-3zw7efbj" loading="lazy" src="https://johnnydecimal.com/img/v6/22.00.0180A-SuiteSynergy--0-light-cx-1002x705.png" width="1002" height="705"> </picture>
<a href="#user-content-fnref-suite" data-footnote-backref="" aria-label="Back to reference 2" class="data-footnote-backref">↩</a>
</li>
<li id="user-content-fn-deep">
<p>To make this clearer, here's a screenshot. You can right-click and <strong>Open in new tab</strong> to make bigger.</p>
<picture class="JDImage6 no-border astro-3zw7efbj"> <source media="(prefers-color-scheme: light) and (min-width: 600px)" class="astro-3zw7efbj"> <source media="(prefers-color-scheme: dark) and (min-width: 600px)" class="astro-3zw7efbj"> <source media="(prefers-color-scheme: light) and (max-width: 599px)" class="astro-3zw7efbj"> <source media="(prefers-color-scheme: dark) and (max-width: 599px)" class="astro-3zw7efbj"> <img alt="A screenshot of Finder showing an entire old Johnny.Decimal structure saved at ID 29.11 in my current system." class=" no-caption astro-3zw7efbj" loading="lazy" src="https://johnnydecimal.com/img/v6/22.00.0180B-Finder-annotated--0-original-cx-1495x530.png" width="1495" height="530"> </picture>
<a href="#user-content-fnref-deep" data-footnote-backref="" aria-label="Back to reference 3" class="data-footnote-backref">↩</a>
</li>
<li id="user-content-fn-comfortable">
<p>A concept taken from my <a href="https://johnnydecimal.com/14.04/">task and project management</a> methodology, where it works really well. <a href="#user-content-fnref-comfortable" data-footnote-backref="" aria-label="Back to reference 4" class="data-footnote-backref">↩</a></p>
</li>
<li id="user-content-fn-syncthing">
<p>This folder is on our server, an always-on Mac mini. I synchronise partial copies to our laptops using <a href="https://syncthing.net">Syncthing</a>. <a href="#user-content-fnref-syncthing" data-footnote-backref="" aria-label="Back to reference 5" class="data-footnote-backref">↩</a></p>
</li>
</ol>
</section>Getting cited as a source on Wikipedia - Posts feedhttps://www.coryd.dev/posts/2026/getting-cited-as-a-source-on-wikipedia2026-01-21T18:55:00.000Z<p>I use analytics on this site primarily to see where referral traffic comes from. It's not necessary, but it satisfies my curiosity. One of the most interesting referrals I've received was from Wikipedia.</p>
Note published on January 21, 2026 at 6:17 PM UTC - Molly White's activity feed69711831014a09ddd55addf62026-01-21T18:17:21.000Z<article><div class="entry h-entry hentry"><header></header><div class="content e-content"><p>House Oversight Democrats have published a Web3 is Going Great-style <a href="https://oversightdemocrats.house.gov/trump-family-corruption-tracker?1">“Trump Family Digital Grift” counter</a>.</p><p>This goes with their recent staff report, “<a href="https://oversightdemocrats.house.gov/imo/media/doc/12026cryptoreport.pdf">Professionalized Corruption: How Donald Trump is abusing power and accepting digital kickbacks from foreign and criminal interests to cash in on the presidency like never before</a>”.</p><p>The report cites some of <a href="https://www.citationneeded.news/issue-83/#trump-business-interests">my writing</a> on Trump’s USD1 stablecoin.</p><div class="media-wrapper"><a href="https://storage.mollywhite.net/micro/28ee1c2dead21c8830a0_Screenshot-2026-01-21-at-1.13.57---PM.png" data-fslightbox=75a2eee67f14ccfd0f81><img src="https://storage.mollywhite.net/micro/28ee1c2dead21c8830a0_Screenshot-2026-01-21-at-1.13.57---PM.png" alt="Trump Family Digital Grift Profits $2,255,399,364.28
Total Trump Family Digital Grift Wealth $8,712,974,364.28
Trump Family Digital Grift Profits from Foreign Interests $437,004,026.96
While Americans struggle to buy groceries and pay rent, Donald Trump is making his family richer through digital grift schemes— collecting profits through digital wallets and granting pardons to the highest bidders.
While Trump and his family are using the White House to make billions, we are tracking every cent. As of January 2026, our Committee’s analysis shows that these schemes have contributed to an estimated $2.25 billion in realized profits for Trump from foreign payments, corrupt oligarchs, and others.
This total rises to as much as $9.7 billion when the value of Trump’s digital assets is factored in, with as much as $436 million coming from foreign interests. President Trump should be serving the American people—not his own pockets." /></a></div></div><footer class="footer"><div class="flex-row post-meta"><div class="timestamp-block"><div class="timestamp">Posted: <a href="https://www.mollywhite.net/micro/entry/202601211316"><time class="dt-published" datetime="2026-01-21T18:17:21+00:00" title="January 21, 2026 at 6:17 PM UTC">January 21, 2026 at 6:17 PM UTC</time>. </a></div><div class="timestamp">Updated <time class="dt-updated" datetime="2026-01-21T18:24:15+00:00" title="January 21, 2026 at 6:24 PM UTC">January 21, 2026 at 6:24 PM UTC</time>.</div></div><div class="social-links"> <span> Also posted to: </span><a class="social-link u-syndication mastodon" href="https://hachyderm.io/@molly0xfff/115934458394354352" title="Mastodon" rel="syndication">Mastodon, </a><a class="social-link u-syndication bluesky" href="https://bsky.app/profile/molly.wiki/post/3mcxbtqlb3s2d" title="Bluesky" rel="syndication">Bluesky</a></div></div><div class="bottomRow"><div class="tags">Tagged: <a class="tag p-category" href="https://www.mollywhite.net/micro/tag/corruption" title="See all micro posts tagged "corruption"" rel="category tag">corruption</a>, <a class="tag p-category" href="https://www.mollywhite.net/micro/tag/crypto" title="See all micro posts tagged "crypto"" rel="category tag">crypto</a>, <a class="tag p-category" href="https://www.mollywhite.net/micro/tag/trump_administration" title="See all micro posts tagged "Trump administration"" rel="category tag">Trump administration</a>. </div></div></footer></div></article>Note published on January 21, 2026 at 5:55 PM UTC - Molly White's activity feed6971130e014a09ddd55add9c2026-01-21T17:55:26.000Z<article><div class="entry h-entry hentry"><header></header><div class="content e-content"><p>Great background on why Coinbase sank the crypto bill they’d just spent months lobbying for, and the fundamental conflict between the banking lobby and the crypto lobby when it comes to stablecoin interest.</p><div class="related-post"><div class="article h-cite hcite"><div class="title"><a class="u-url u-repost-of u-in-reply-to" href="https://www.thebignewsletter.com/p/monopoly-round-up-the-slow-death" rel="bookmark">“<span class="p-name">Monopoly Round-Up: The Slow Death of Banking in America</span>”</a>. </div><div class="byline"><span class="p-author h-card">Matt Stoller</span> in <i class="p-publication">BIG by Matt Stoller</i>. <span class="read-date"></span></div><blockquote class="summary p-summary entry-summary">Crypto interests came after the local banker last week in a bitter Congressional fight. They didn't win, but it's not over. Plus, the "Mamdani effect" is real, and Canada aligns with China.</blockquote></div></div><img src="https://www.mollywhite.net/assets/images/placeholder_social.png" alt="Illustration of Molly White sitting and typing on a laptop, on a purple background with 'Molly White' in white serif." style="display: none;"/></div><footer class="footer"><div class="flex-row post-meta"><div class="timestamp-block"><div class="timestamp">Posted: <a href="https://www.mollywhite.net/micro/entry/202601211254"><time class="dt-published" datetime="2026-01-21T17:55:26+00:00" title="January 21, 2026 at 5:55 PM UTC">January 21, 2026 at 5:55 PM UTC</time>. </a></div></div><div class="social-links"> </div></div><div class="bottomRow"><div class="tags">Tagged: <a class="tag p-category" href="https://www.mollywhite.net/micro/tag/crypto_lobby" title="See all micro posts tagged "crypto lobby"" rel="category tag">crypto lobby</a>, <a class="tag p-category" href="https://www.mollywhite.net/micro/tag/stablecoins" title="See all micro posts tagged "stablecoins"" rel="category tag">stablecoins</a>. </div></div></footer></div></article>Read "How Trump Has Used the Presidency to Make at Least $1.4 Billion" - Molly White's activity feed6971121f8d9cd5e249ff00802026-01-21T17:51:27.000Z<article class="entry h-entry hentry"><header><div class="description">Read: </div></header><div class="content e-content"><div class="article h-cite hcite"><div class="title"><a class="u-url u-repost-of" href="https://www.nytimes.com/interactive/2026/01/20/opinion/editorials/trump-wealth-crypto-graft.html" rel="bookmark">“<span class="p-name">How Trump Has Used the Presidency to Make at Least $1.4 Billion</span>”</a>. </div><div class="byline"><span class="p-author h-card">The Editorial Board</span> in <i class="p-publication">The New York Times</i>. <span class="read-date"> Published <time class="dt-published published" datetime="2026-01-20">January 20, 2026</time>.</span></div><blockquote class="summary p-summary entry-summary">The president took an oath to serve the American people. Instead, he's focused his second term on enriching himself and his family.</blockquote><img src="https://www.mollywhite.net/assets/images/placeholder_social.png" alt="Illustration of Molly White sitting and typing on a laptop, on a purple background with 'Molly White' in white serif." style="display: none;"/></div><img src="https://www.mollywhite.net/assets/images/placeholder_social.png" alt="Illustration of Molly White sitting and typing on a laptop, on a purple background with 'Molly White' in white serif." style="display: none;"/></div><footer class="footer"><div class="flex-row post-meta"><div class="timestamp">Posted: <time class="dt-published" datetime="2026-01-21T17:51:27+00:00" title="January 21, 2026 at 5:51 PM UTC">January 21, 2026 at 5:51 PM UTC</time>. </div></div><div class="bottomRow"><div class="tags">Tagged: <a class="tag p-category" href="https://www.mollywhite.net/feed/tag/corruption" title="See all feed posts tagged "corruption"" rel="category tag">corruption</a>, <a class="tag p-category" href="https://www.mollywhite.net/feed/tag/crypto" title="See all feed posts tagged "crypto"" rel="category tag">crypto</a>, <a class="tag p-category" href="https://www.mollywhite.net/feed/tag/trump_administration" title="See all feed posts tagged "Trump administration"" rel="category tag">Trump administration</a>. </div></div></footer></article>