Shellsharks Blogroll - BlogFlock 2026-01-30T05:23:27.348Z BlogFlock Evan Boehs, Robb Knight, destructured, Aaron Parecki, Westenberg, Werd I/O, fLaMEd, James' Coffee Blog, gynvael.coldwind//vx.log (pl), Molly White, joelchrono, Trail of Bits Blog, Posts feed, cool-as-heck, Kev Quirk, Adepts of 0xCC, Sophie Koonin, cmdr-nova@internet:~$, <span>Songs</span> on the Security of Networks, Johnny.Decimal, Hey, it's Jason!, Terence Eden’s Blog Published on Citation Needed: "Issue 100 – Freedom of all kinds is worth fighting for" - Molly White's activity feed 697be17a498c9cae1763aaf1 2026-01-29T22:38:50.000Z <article class="entry h-entry hentry"><header><div class="description">Published an issue of <a href="https://www.citationneeded.news/"><i>Citation Needed</i></a>: </div><h2 class="p-name"><a class="u-syndication" href="https://www.citationneeded.news/issue-100" rel="syndication">Issue 100 – Freedom of all kinds is worth fighting for </a></h2></header><div class="content e-content"><div class="media-wrapper"><a href="https://www.citationneeded.news/issue-100"><img src="https://www.citationneeded.news/content/images/size/w2000/format/webp/2026/01/issue-100.jpg" alt="ICE agents shoot projectiles at protesters in Minneapolis on January 24. The photo has been overlaid with an upside down American flag."/></a></div><div class="p-summary"><p>As masked agents execute people and terrorize communities, crypto executives who spent years posting about freedom fall conspicuously silent — except when writing checks for the politicians enabling it</p></div></div><footer class="footer"><div class="flex-row post-meta"><div class="timestamp">Posted: <a href="https://www.citationneeded.news/issue-100"><time class="dt-published" datetime="2026-01-29T22:38:50+00:00" title="January 29, 2026 at 10:38 PM UTC">January 29, 2026 at 10:38 PM UTC</time>. </a></div><div class="social-links"> <span>Also posted to:</span><a class="social-link u-syndication mastodon" href="https://hachyderm.io/@molly0xfff/115980722734784145" title="Mastodon" rel="syndication">Mastodon</a><a class="social-link u-syndication bluesky" href="https://bsky.app/profile/molly.wiki/post/3mdlt5xpmzc22" 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/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/crypto_lobby" title="See all feed posts tagged "crypto lobby"" rel="category tag">crypto lobby</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> Book Review: The Players Act 1 by Amy Sparkes ★★⯪☆☆ - Terence Eden’s Blog https://shkspr.mobi/blog/?p=66446 2026-01-29T12:34:04.000Z <img src="https://shkspr.mobi/blog/wp-content/uploads/2026/02/the-players-act-1.jpg" alt="Book cover featuring illustrated actors." width="200" class="alignleft size-full wp-image-66448"/> <p>So! Much! Melodrama!</p> <p>This is a gently funny (and slightly tragic) romp with a band of travelling <del>vagrants</del> actors as they attempt to ply their renditions of Shakespeare to an indifferent 1700ish audience. There&#39;s a lot of charm to the characters and the plot is relatively straightforward.</p> <p>The characters are a <em>bit</em> one-note. The baddie never <em>actually</em> twirls his moustache - but you&#39;ll instantly picture him doing it every time he appears. The others very much stay in their lane; the feisty woman who would rather wear trousers, the wide-eyed idealist, the grumpy father. It&#39;s rather like they&#39;re stock <i lang="it">comedia dell&#39;arte</i> tropes come to life.</p> <p>While there are some lovely lines (and excellent swearing), the story meanders back and forth a bit too much for my liking. I&#39;m possibly not the target audience as I guess this is aimed at the older teen crowd.</p> <p>I appreciate the book being made available without DRM. How refreshing to pay for a book and receive an unencumbered ePub; no need to liberate it from the clutches of Adobe!</p> Building cryptographic agility into Sigstore - Trail of Bits Blog https://blog.trailofbits.com/2026/01/29/building-cryptographic-agility-into-sigstore/ 2026-01-29T12:00:00.000Z <p>Software signatures carry an invisible expiration date. The container image or firmware you sign today might be deployed for 20 years, but the cryptographic signature protecting it may become untrustworthy within 10 years. SHA-1 certificates become worthless, weak RSA keys are banned, and quantum computers may crack today&rsquo;s elliptic curve cryptography. The question isn&rsquo;t whether our current signatures will fail, but whether we&rsquo;re prepared for when they do.</p> <p>Sigstore, an open-source ecosystem for software signing, recognized this challenge early but initially chose security over flexibility by adopting new cryptographic algorithms as older ones became obsolete. By hard coding ECDSA with P-256 curves and SHA-256 throughout its infrastructure, Sigstore avoided the dangerous pitfalls that have plagued other crypto-agile systems. This conservative approach worked well during early adoption, but as Sigstore&rsquo;s usage grew, the rigidity that once protected it began to restrict its utility.</p> <p>Over the past two years, Trail of Bits has collaborated with the Sigstore community to systematically address the limitations of aging cryptographic signatures. Our work established a centralized algorithm registry in the Protobuf specifications to serve as a single source of truth. Second, we updated Rekor and Fulcio to accept configurable algorithm restrictions. And finally, we integrated these capabilities into Cosign, allowing users to select their preferred signing algorithm when generating ephemeral keys. We also developed Go implementations of post-quantum algorithms LMS and ML-DSA, demonstrating that the new architecture can accommodate future cryptographic standards. Here is what motivated these changes, what security considerations shaped our approach, and how to use the new functionality.</p> <h2 id="sigstores-cryptographic-constraints">Sigstore&rsquo;s cryptographic constraints</h2> <p>Sigstore hard codes ECDSA with P-256 curves and SHA-256 throughout most of its ecosystem. This rigidity is a deliberate design choice. From Fulcio certificate issuance to Rekor transparency logs to Cosign workflows, most steps default to this same algorithm. Cryptographic agility has historically led to serious security vulnerabilities, and focusing on a limited set of algorithms reduces the chance of something going wrong.</p> <p>This conservative approach, however, has created challenges as the ecosystem has matured. Various organizations and users have vastly different requirements that Sigstore&rsquo;s rigid approach cannot accommodate. Here are some examples:</p> <ul> <li><strong>Compliance-driven organizations</strong> might need NIST-standard algorithms to meet regulatory requirements.</li> <li><strong>Open-source maintainers</strong> may want to sign artifacts without making cryptographic decisions, relying on secure defaults from the public Sigstore instance.</li> <li><strong>Security-conscious enterprises</strong> may want to deploy internal Sigstore instances using only post-quantum cryptography.</li> </ul> <p>Furthermore, software artifacts remain in use for decades, meaning today&rsquo;s signatures must stay verifiable far into the future, and the cryptographic algorithm used today might not be secure 10 years from now.</p> <p>These challenges can be addressed only if Sigstore allows for a certain degree of cryptographic agility. The goal is to enable controlled cryptographic flexibility without repeating the security issues that have affected other crypto-agile systems. To address this, the Sigstore community has developed a <a href="https://docs.google.com/document/d/18vTKFvTQdRt3OGz6Qd1xf04o-hugRYSup-1EAOWn7MQ/edit?tab=t.0#heading=h.op2lvfrgiugr">design document</a> outlining how to introduce cryptographic agility while maintaining strong security guarantees.</p> <h2 id="the-dangers-of-cryptographic-flexibility">The dangers of cryptographic flexibility</h2> <p>The most infamous example of problems caused by cryptographic flexibility is <a href="https://jwt.io/introduction">the JWT</a> <code>alg:</code> <code>none</code> vulnerability, where some JWT libraries treated tokens signed with the <code>none</code> algorithm as valid tokens, allowing anyone to forge arbitrary tokens and “sign” whatever payload they wanted. Even more subtle is the <a href="https://portswigger.net/web-security/jwt/algorithm-confusion">RSA/HMAC confusion attack in JWT</a>, where a mismatch between what kind of algorithm a server expects and what it receives allows anyone with knowledge of the RSA public key to forge tokens that pass verification.</p> <p>The fundamental problem in both cases is in-band algorithm signaling, which allows the data to specify how it should be protected. This creates an opportunity for attackers to manipulate the algorithm choice to their advantage. As the cryptographic community has learned through painful experience, cryptographic agility introduces significant complexity, leading to more code and increased potential attack vectors.</p> <h2 id="the-solution-controlled-cryptographic-flexibility">The solution: Controlled cryptographic flexibility</h2> <p>Instead of allowing users to mix and match any algorithms they want, Sigstore introduced predefined algorithm suites, which are complete packages that specify exactly which cryptographic components work together.</p> <p>For example, <code>PKIX_ECDSA_P256_SHA_256</code> not only includes the signing algorithm (ECDSA P-256), but also mandates SHA-256 for hashing. A <code>PKIX_ECDSA_P384_SHA_384</code> suite pairs ECDSA P-384 with SHA-384, and <code>PKIX_ED25519</code> uses Ed25519 and SHA-512. Users can choose between these suites, but they can&rsquo;t create dangerous combinations, such as ECDSA P-384 with MD5.</p> <p>Critically, the choice of which algorithm to use comes from out-of-band negotiation, meaning it&rsquo;s determined by configuration or policy, not by the data being signed. This prevents the in-band signaling attacks that have plagued other systems.</p> <h2 id="the-implementation">The implementation</h2> <p>To enable cryptographic agility across the Sigstore ecosystem, we needed to make coordinated changes that would work together seamlessly. Cryptography is used in several places within the Sigstore ecosystem; however, we primarily focused on enabling clients to change the signing algorithm used to sign and verify artifacts, as this would have a significant impact on end users. We tackled this change in three phases.</p> <h3 id="phase-1-establishing-common-ground">Phase 1: Establishing common ground</h3> <p>We introduced a centralized <a href="https://github.com/sigstore/protobuf-specs/blob/966b43d006e7fc938b30724933af34c8e351f2a1/protos/sigstore_common.proto#L46-L129">algorithm registry</a> in the Protobuf specifications that defines all <a href="https://github.com/sigstore/sigstore/blob/1e63a2159e71d968a5fa46215280103844797ee8/pkg/signature/algorithm_registry.go#L154">allowed algorithms</a> and their details. We also implemented <a href="https://github.com/sigstore/sigstore/blob/1e63a2159e71d968a5fa46215280103844797ee8/pkg/signature/algorithm_registry.go#L238-L298">default mappings</a> from key types to signing algorithms (e.g., ECDSA P-256 keys automatically use ECDSA P-256 + SHA-256), eliminating ambiguity and providing a single source of truth for all Sigstore components.</p> <h3 id="phase-2-service-level-updates">Phase 2: Service-level updates</h3> <p>We updated <a href="https://github.com/sigstore/rekor/pull/1974">Rekor</a> and <a href="https://github.com/sigstore/fulcio/pull/1938">Fulcio</a> with a new <code>--client-signing-algorithms</code> flag that lets deployments specify which algorithms they accept, enabling custom restrictions like Ed25519-only or future post-quantum-only deployments. We also <a href="https://github.com/sigstore/fulcio/pull/1959">fixed Fulcio</a> to use proper hash algorithms for each key type (SHA-384 for ECDSA P-384, etc.) instead of defaulting everything to SHA-256.</p> <h3 id="phase-3-client-integration">Phase 3: Client integration</h3> <p>We updated Cosign to support multiple algorithms by <a href="https://github.com/sigstore/cosign/pull/4050">removing hard-coded SHA-256</a> usage and adding a <a href="https://github.com/sigstore/cosign/pull/3497"><code>--signing-algorithm</code></a> flag for generating different ephemeral key types. Currently available in <code>cosign sign-blob</code> and <code>cosign verify-blob</code>, these changes let users bring their own keys of any supported type and easily select their preferred cryptographic algorithm when ephemeral keys are used. Other clients implementing the Sigstore specification can choose which set of algorithms to use, as long as it is a subset of the allowed algorithms listed in the algorithm registry.</p> <h3 id="validation-proving-it-works">Validation: Proving it works</h3> <p>To demonstrate the flexibility of our new architecture, we developed HashEdDSA (Ed25519ph) support in both <a href="https://github.com/sigstore/rekor/pull/1945">Rekor</a> and <a href="https://github.com/sigstore/sigstore/pull/1595">the Sigstore Go library</a> and created Go implementations of post-quantum algorithms <a href="https://github.com/trailofbits/lms-go">LMS</a> and <a href="https://github.com/trailofbits/ml-dsa">ML-DSA</a>. This work proved that our modular architecture can accommodate diverse cryptographic algorithms and provides a solid foundation for future additions, including post-quantum cryptography.</p> <h2 id="cryptographic-flexibility-in-action">Cryptographic flexibility in action</h2> <p>Let&rsquo;s see this cryptographic flexibility in action by setting up a custom Sigstore deployment. We&rsquo;ll configure a private Rekor instance that accepts only ECDSA P-521 with SHA-512 and RSA-4096 with SHA-256, by using the <code>--client-signing-algorithms</code> flag, demonstrating both algorithm restriction and the new Cosign capabilities.</p> <figure class="highlight"> <pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl">~/rekor$ git diff </span></span><span class="line"><span class="cl">diff --git a/docker-compose.yml b/docker-compose.yml </span></span><span class="line"><span class="cl">index 3e5f4c3..93e0d10 <span class="m">100644</span> </span></span><span class="line"><span class="cl">--- a/docker-compose.yml </span></span><span class="line"><span class="cl">+++ b/docker-compose.yml </span></span><span class="line"><span class="cl">@@ -120,6 +120,7 @@ services: </span></span><span class="line"><span class="cl"> <span class="s2">&#34;--enable_stable_checkpoint&#34;</span>, </span></span><span class="line"><span class="cl"> <span class="s2">&#34;--search_index.storage_provider=mysql&#34;</span>, </span></span><span class="line"><span class="cl"> <span class="s2">&#34;--search_index.mysql.dsn=test:zaphod@tcp(mysql:3306)/test&#34;</span>, </span></span><span class="line"><span class="cl">+ <span class="s2">&#34;--client-signing-algorithms=ecdsa-sha2-512-nistp521,rsa-sign-pkcs1-4096-sha256&#34;</span>, </span></span><span class="line"><span class="cl"> <span class="c1"># Uncomment this for production logging</span> </span></span><span class="line"><span class="cl"> <span class="c1"># &#34;--log_type=prod&#34;,</span> </span></span><span class="line"><span class="cl"> <span class="o">]</span> </span></span><span class="line"><span class="cl"> </span></span><span class="line"><span class="cl">$ docker compose up -d</span></span></code></pre> </figure> <p>Let’s create the artifact and use Cosign to sign it:</p> <figure class="highlight"> <pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl">$ <span class="nb">echo</span> <span class="s2">&#34;Trail of Bits &amp; Sigstore&#34;</span> &gt; msg.txt </span></span><span class="line"><span class="cl">$ ./cosign sign-blob --bundle cosign.bundle --signing-algorithm<span class="o">=</span>ecdsa-sha2-512-nistp521 --rekor-url http://localhost:3000 msg.txt </span></span><span class="line"><span class="cl">Retrieving signed certificate... </span></span><span class="line"><span class="cl">Successfully verified SCT... </span></span><span class="line"><span class="cl">Using payload from: msg.txt </span></span><span class="line"><span class="cl">tlog entry created with index: <span class="m">111111111</span> </span></span><span class="line"><span class="cl">Wrote bundle to file cosign.bundle </span></span><span class="line"><span class="cl">qzbCtK4WuQeoeZzGP1111123+...+j7NjAAAAAAAA<span class="o">==</span></span></span></code></pre> </figure> <p>This last command performs a few steps:</p> <ol> <li>Generates an ephemeral private/public ECDSA P-521 key pair and gets the SHA-512 hash of the artifact (<code>--signing-algorithm=ecdsa-sha2-512-nistp521</code>)</li> <li>Uses the ECDSA P-521 key to request a certificate to Fulcio</li> <li>Signs the hash with the certificate</li> <li>Submits the artifact’s hash, the certificate, and some extra data to our local instance of Rekor (<code>--rekor-url http://localhost:3000</code>)</li> <li>Saves everything into the <code>cosign.bundle</code> file (<code>--bundle cosign.bundle</code>)</li> </ol> <p>We can verify the data in the bundle to ensure ECDSA P-521 was actually used (with the right hash function):</p> <figure class="highlight"> <pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl">$ jq -C <span class="s1">&#39;.messageSignature&#39;</span> cosign.bundle </span></span><span class="line"><span class="cl"><span class="o">{</span> </span></span><span class="line"><span class="cl"> <span class="s2">&#34;messageDigest&#34;</span>: <span class="o">{</span> </span></span><span class="line"><span class="cl"> <span class="s2">&#34;algorithm&#34;</span>: <span class="s2">&#34;SHA2_512&#34;</span>, </span></span><span class="line"><span class="cl"> <span class="s2">&#34;digest&#34;</span>: <span class="s2">&#34;WIjb9UuEBgdSxhRMoz+Zux4ig8kWY...+65L6VSPCKCtzA==&#34;</span> </span></span><span class="line"><span class="cl"> <span class="o">}</span>, </span></span><span class="line"><span class="cl"> <span class="s2">&#34;signature&#34;</span>: <span class="s2">&#34;MIGIAkIBRrn.../zgwlBT6g==&#34;</span> </span></span><span class="line"><span class="cl"><span class="o">}</span> </span></span><span class="line"><span class="cl"> </span></span><span class="line"><span class="cl">$ jq -r <span class="s1">&#39;.verificationMaterial.certificate.rawBytes&#39;</span> cosign.bundle <span class="p">|</span> base64 -d <span class="p">|</span> openssl x509 -text -noout -in /dev/stdin <span class="p">|</span> grep -A <span class="m">6</span> <span class="s2">&#34;Subject Public Key Info&#34;</span> </span></span><span class="line"><span class="cl"> Subject Public Key Info: </span></span><span class="line"><span class="cl"> Public Key Algorithm: id-ecPublicKey </span></span><span class="line"><span class="cl"> Public-Key: <span class="o">(</span><span class="m">521</span> bit<span class="o">)</span> </span></span><span class="line"><span class="cl"> pub: </span></span><span class="line"><span class="cl"> 04:01:36:90:6c:d5:53:5f:8d:4b:c6:2a:13:36:69: </span></span><span class="line"><span class="cl"> 31:54:e3:2d:92:e0:bd:d5:77:35:37:62:cd:6a:4d: </span></span><span class="line"><span class="cl"> 9f:32:83:97:a7:0d:4e:48:73:fe:3c:a2:0f:f2:3d:</span></span></code></pre> </figure> <p>Now let’s try a different key type to see if it&rsquo;s rejected by Rekor. To generate a different key type, we just need to switch the value of <code>--signing-algorithm</code> in Cosign:</p> <figure class="highlight"> <pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl">$ ./cosign sign-blob --bundle cosign.bundle --signing-algorithm<span class="o">=</span>ecdsa-sha2-256-nistp256 --rekor-url http://localhost:3000 msg.txt </span></span><span class="line"><span class="cl">Generating ephemeral keys... </span></span><span class="line"><span class="cl">Retrieving signed certificate... </span></span><span class="line"><span class="cl">Successfully verified SCT... </span></span><span class="line"><span class="cl">Using payload from: msg.txt </span></span><span class="line"><span class="cl">Error: signing msg.txt: <span class="o">[</span>POST /api/v1/log/entries<span class="o">][</span>400<span class="o">]</span> createLogEntryBadRequest <span class="o">{</span><span class="s2">&#34;code&#34;</span>:400,<span class="s2">&#34;message&#34;</span>:<span class="s2">&#34;error processing entry: entry algorithms are not allowed&#34;</span><span class="o">}</span> </span></span><span class="line"><span class="cl">error during <span class="nb">command</span> execution: signing msg.txt: <span class="o">[</span>POST /api/v1/log/entries<span class="o">][</span>400<span class="o">]</span> createLogEntryBadRequest <span class="o">{</span><span class="s2">&#34;code&#34;</span>:400,<span class="s2">&#34;message&#34;</span>:<span class="s2">&#34;error processing entry: entry algorithms are not allowed&#34;</span><span class="o">}</span></span></span></code></pre> </figure> <p>As we can see, Rekor did not allow Cosign to save the entry (<code>entry algorithms are not allowed</code>), as <code>ecdsa-sha2-256-nistp256</code> was not part of the list of algorithms allowed through the <code>--client-signing-algorithms</code> flag used when starting the Rekor instance.</p> <h2 id="future-proofing-sigstore">Future-proofing Sigstore</h2> <p>The changes that Trail of Bits has implemented alongside the Sigstore community allow organizations to use different signing algorithms while maintaining the same security model that made Sigstore successful.</p> <p>Sigstore now supports algorithm suites from ECDSA P-256 to Ed25519 to RSA variants, with a centralized registry ensuring consistency across deployments. Organizations can configure their instances to accept only specific algorithms, whether for compliance requirements or post-quantum preparation.</p> <p>The foundation is now in place for future algorithm additions. As cryptographic standards evolve and new algorithms become available, Sigstore can adopt them through the same controlled process we&rsquo;ve established. Software signatures created today will remain verifiable as the ecosystem adapts to new cryptographic realities.</p> <p>Want to dig deeper? Check out our <a href="https://github.com/trailofbits/lms-go">LMS</a> and <a href="https://github.com/trailofbits/ml-dsa">ML-DSA</a> Go implementations for post-quantum cryptography, or run <code>--help</code> on Rekor, Fulcio, and Cosign to explore the new algorithm configuration options. If you&rsquo;re looking to modernize your project&rsquo;s cryptography to current standards, <a href="https://www.trailofbits.com/services/cryptography">Trail of Bits&rsquo; cryptography consulting services</a> can help you get on the right path.</p> <p>We would like to thank Google, OpenSSF, and Hewlett-Packard for having funded some of this work. Trail of Bits continues to contribute to the Sigstore ecosystem as part of our ongoing commitment to strengthening open-source security infrastructure.</p> Are there any open APIs left? - Terence Eden’s Blog https://shkspr.mobi/blog/?p=61807 2026-01-28T12:34:01.000Z <p>One of the dreams of Web 2.0 was that website would speak unto website. An &#34;Application Programming Interface&#34; (API) would give programmatic access to structured data, allowing services to seamlessly integrate content from each other. Users would be able to quickly grab data from multiple sources and use them for their own purposes. No registration or API keys, no tedious EULAs or meetings. Just pure synergy!</p> <p>Is that dream dead? If so, what killed it?</p> <p>A decade ago, I posted a plea looking for <a href="https://shkspr.mobi/blog/2014/04/wanted-simple-apis-without-authentication/">Easy APIs Without Authentication</a> with a <a href="https://shkspr.mobi/blog/2016/05/easy-apis-without-authentication/">follow up post two years later</a>. I wanted some resources that students could use with minimal fuss. Are any of the APIs from 10 years ago still alive?</p> <h2 id="alive"><a href="https://shkspr.mobi/blog/2026/01/are-there-any-open-apis-left/#alive">Alive</a></h2> <p>These ones are still around:</p> <ul style="list-style-type:&#39;✅&#39;;"> <li><a href="https://api.wikimedia.org/wiki/Core_REST_API">Wikipedia</a> - Yes! Still going strong. </li><li><a href="https://data.police.uk/">Police.uk</a> - Yes! After a <a href="https://data.police.uk/docs/authentication/">brief dalliance with API registration</a>, it is now back to being completely free and open. </li><li><a href="https://www.googleapis.com/books/v1/volumes?q=isbn:9781408864401">Google Books ISBN</a> - Yes! Obviously Google have forgotten it exists; otherwise it would have been killed off by now! </li><li><a href="https://itunes.apple.com/search?term=beatles&amp;entity=musicVideo">iTunes Lookup</a> - Yes! Possibly the only thing Apple don&#39;t charge a premium for. </li><li><a href="https://pokeapi.co/">Pokémon API</a> - and still receiving frequent updates. </li><li><a href="https://musicbrainz.org/doc/MusicBrainz_API">MusicBrainz</a> - this Internet stalwart will never die. </li><li><a href="http://open-notify.org/">Open Notify</a> - a collection of space APIs, although the code hasn&#39;t been updated in ages. </li></ul> <h2 id="dead"><a href="https://shkspr.mobi/blog/2026/01/are-there-any-open-apis-left/#dead">Dead</a></h2> <p>These have shuffled off this mortal coil:</p> <ul style="list-style-type:&#39;❌&#39;;"> <li>BBC Radio 1 - No. </li><li>Twitter URL statistics - LOLSOB No. </li><li>Star Wars API - No. </li><li>British National Bibliography - No. Dead due, I think to the British Library&#39;s cyber attack. </li><li><a href="https://web.archive.org/web/20160511215743/http://api.football-data.org/code_samples">Football Data</a> - gone. </li></ul> <h2 id="api-key-required"><a href="https://shkspr.mobi/blog/2026/01/are-there-any-open-apis-left/#api-key-required">API Key Required</a></h2> <p>These are still alive, but you either need to pay or register to use them:</p> <ul style="list-style-type:&#39;🔑&#39;;"> <li>Google Location </li><li><a href="https://api.spotify.com/v1/search?q=bowie&amp;type=artist">Spotify</a> </li><li><a href="https://www.omdbapi.com/?t=star%20wars&amp;y=&amp;plot=short&amp;r=json">OpenMovieDB</a> </li><li><a href="https://docs.openaq.org/using-the-api/api-key">Open Air Quality</a> </li></ul> <h2 id="what-happened"><a href="https://shkspr.mobi/blog/2026/01/are-there-any-open-apis-left/#what-happened">What Happened?</a></h2> <p>Something something … enshittification … blah blah … zero interest rate phenomenon … yadda yadda our incredible journey …</p> <p>But back in the land of rationality, I&#39;ve had a lots of experiences running APIs and helping people who run them. The closure and lockdown of APIs usually comes down to one or more of the following.</p> <p>APIs cost money to run. Yes, even the static ones have a non-zero cost. That&#39;s fine if you&#39;re prepared to endless subsidise them - but it is hard to justify if there&#39;s no return on investment. Anyway, who is using all this bandwidth? Which leads on to:</p> <p>Lack of analytics. Yes, I know tracking is the devil, but it is hard to build a service if you don&#39;t know who is using it. Sure, you can see traffic, but you can&#39;t tell if it is useful to the end consumer, or what value you can share. There&#39;s no way to communicate with an anonymous consumer. Which, of course, takes us to the next barrier:</p> <p>Communication is key. If you need to change your API, there&#39;s no way to tell users that a change is coming. That might be the announcement of a deprecation, an outage, or an enhancement. You can try smuggling error messages into your responses and hoping someone notices a failing service somewhere - but it&#39;s much easier to email everyone who has an API key. And you know what else keys are good for?</p> <p>Stopping abuse. It&#39;d be nice if everyone played nice online; but some people are raging arseholes. Being able to throttle bad actors (figuratively or literally) is a desirable feature. On a resource constrained service, you sometimes have to put rules in place.</p> <p>Still, if you know of any good open APIs which don&#39;t require registration, and that you think will survive until 2036, please drop a link in the comments.</p> Home alone, movie nights, Silksong returns - W04 - Joel's Log Files https://joelchrono.xyz/blog/w04 2026-01-27T22:10:30.000Z <p>This week was a rather cold one, it rained on the weekend and the days have been much chiller since then. It’s winter so it’s to be expected, but the region where I live isn’t often this cold!</p> <p>In any case not a lot of things happened this time around, but I do feel like writing just a bit more, so there you go!</p> <ul> <li> <p>💪 I didn’t go to the gym this week, but that’s perfectly okay. My parents went on a trip the whole week and I prefer to enjoy my time home alone!</p> </li> <li> <p>🍿 Instead of playing a lot of videogames, I decided to do something a little bit more passive and just watch movies! Like my previous runs with <em>Tron</em> or <em>Alien</em>, I decided this time to just watch films from the 80s, and also Megamind, but whatever, more about this in the section below! Maybe I should keep watching the Terminator films though…</p> </li> <li> <p>🕹️ This weekend was one of the few where my friends didn’t show up to do some multiplayer gaming, it was a pretty chill time, to be honest. As great as it is to play together, I am an introvert at heart, and I appreciate being by myself with no outside pressure to do anything else! I played a bunch of <em>Silksong</em>.</p> </li> <li> <p>😴 I continue to procrastinate on writing blogposts… I have this one post about block-pushing puzzles on videogames that is pretty much done and I am yet to publish for no real reason, it’s actually rather long, and the reason is I feel I should take screenshot but I am too lazy to do it.</p> </li> <li> <p>🖥️ Work continues to be pretty chill, no real complaints, but I’ve noticed an increase in the amount of time I spent sitting on my desk instead of standing up. I can adjust the height, I just started to get lazy…</p> </li> <li> <p>🧥 Maybe it’s because of the season, but I’ve started to feel very good about my body lately, like, I have even worn buttoned shirts and left them tucked in because I like how I look. I somehow lost weight during Christmas time, so maybe that’s helping too. Point is, I will keep going to the gym and I will try to stay healthy, but, I am quite content with myself.</p> </li> </ul> <h2 id="gaming">Gaming</h2> <p>I’m rather surprised at how much gaming happened this time around, I’m glad I got a nice balance going.</p> <ul> <li> <p><strong>🪡 Hollow Knight: Silksong</strong> - I returned to this beauty and since I want to do 100% of what this game has to offer, I have faced against some new bosses in some hidden areas. I am also making my way through Bilewater, the worse area in the game, and got to one of the most hideous boss fights against a gauntlet of enemies followed by a rather tedious boss. I managed to defeat it in the end though, achieveing ultimate glory!</p> </li> <li> <p><strong>🏫 The Hundred Line: Last Defense Academy</strong> - I ended up returning to this game for quite a bit! I completed a boss fight and progressed through the alternative route I’ve been playing for a while. It continues to be extremely interesting and engaging!</p> </li> <li> <p><strong>🚀 Outer Wilds</strong> - I didn’t get to play as much this time around, but I explored a bit and found some more clues about what is going on in this world, progressing through the game, gathering knowledge and stuff. Amazing game in every sense!</p> </li> <li> <p><strong>⚔️ Slice &amp; Dice</strong> - I had an extremely good run of Blursed Mode where I managed to win 140 times before I messed up badly, such is life someitmes.</p> </li> </ul> <h2 id="watching">Watching</h2> <p>Lots of movies were watched this week! Actually kind of sick, all of these absolute masterpieces.</p> <ul> <li> <p><strong>The Terminator</strong> - I had never watched this movie from start to finish, maybe the finale a few times, I was familiar with the story, but the film itself was a bit of a blur. Honestly this was surprising. I always heard Terminator 2 was the better action flick, but the thriller and the chases and the violence of this one had me on the edge of my seat. I didn’t expect to see much of the future at all, but showing the despair and the dire situation in those flashbacks—more like flashforwards?—was very, very interesting. The set pieces, the visual effects, everything here was amazing to watch.</p> </li> <li> <p><strong>Back to the Future</strong> - This movie is my childhood, showing up on <em>Canal 5</em>—a public mexican TV channel—quite often. Watching it myself without many distractions or advertising was pretty fun! Can’t belive I took so long for that. This movie holds up super well and it’s a masterpiece of its time. These characters and moments are simply iconic, I got the Casio calculator because of this.</p> </li> <li> <p><strong>Megamind</strong> - Its been years since the last time I rewatched this, and it still holds up amazingly well. Definitely one of the best animated movies, with great writing and fun, but a genuinely good message and lesson as well. Quite a bit of nuance and thought provoking moments that are rare to see mixed in with the comedy and action this has.</p> </li> </ul> <h2 id="reading">Reading</h2> <p>I keep on without reading as much as I could, ugh I gotta step up in February…</p> <ul> <li> <p><strong>Persepolis Rising</strong> - Finished chapter… 1. Yeah I’ve been slacking on this one, my bad! But at least I’m seeing a couple of returning characters at last, which has been fun.</p> </li> <li> <p><strong>Blue Lock</strong> - Until chapter 332. Just following the weekly release at this point! It’s fun!</p> </li> <li> <p><strong>DanDaDan</strong> - Until chapter 202. Finally decided to catch up a bit on DanDaDan which I kinda stopped reading for a few months, still fun!</p> </li> </ul> <h2 id="around-the-web">Around the Web</h2> <p>Not videos this time around! Just some neat blogs I thought I’d share.</p> <ul> <li><a href="https://lategamer.bearblog.dev/its-not-procrastination-its-a-side-quest">It’s not procrastination. It’s a side quest</a> - Dave is doing Dave things and trying to justify himself about not doing things he should do.</li> <li><a href="http://82mhz.net/posts/2026/01/what-is-the-oldest-thing-you-own">What is the oldest thing you own?</a> - This genuinely seems like a very fun theme, I should try and write about it, but I haven’t even finished my yearly recaps.</li> <li><a href="http://tahimik.com/journal/talent-can-be-quiet-if-you-want-it-to-be">Talent can be quiet, if you want it to be</a> - It’s nice to just enjoy hobbies without monetizing everything, but we live in a society…</li> <li><a href="https://thetangent.space/2026/new-digests/">New format for digest posts</a> - Sam decided to change the style of his weeknotes and now it’s truly a log of posts and things that happened in real time! Interesting.</li> <li><a href="https://rubenerd.com/being-positive-about-tech-right-now/">Being positive about tech right now</a> - Things seem to go bad all the time, but it’s good to stay hopeful, I truly hope things will get better soon.</li> </ul> <p> <a href="mailto:me@joelchrono.xyz?subject=Home alone, movie nights, Silksong returns - W04">Reply to this post via email</a> | <a href="https://fosstodon.org/@joel/idcomments">Reply on Fediverse</a> </p> Journalism lost its culture of sharing - Werd I/O 6978e9983031e1000163a857 2026-01-27T16:36:40.000Z <p>[<a href="https://source.opennews.org/articles/journalism-lost-sharing-culture/?ref=werd.io">Scott Klein and Ben Welsh in Source</a>]</p><p>I agree, strongly, with this piece about (re)building an open source culture in news by <a href="https://bsky.app/profile/kleinmatic.bsky.social?ref=werd.io">Scott Klein</a> and <a href="https://palewi.re/who-is-ben-welsh/?ref=werd.io">Ben Welsh</a>. But then, I would: I spent over a decade working to build open source communities, and then another decade and change working alongside and then inside newsrooms.</p><p>So it&#x2019;s to my chagrin that the newsroom where I currently serve as Senior Director of Technology is one of the places listed here where open source contributions have significantly dropped off:</p><blockquote>&#x201C;At ProPublica, teams published detailed white papers alongside major investigations, explaining their quantitative methodologies with scientific rigor, allowing other researchers to verify and learn from their work. Major news organizations ran active blogs where they shared techniques and lessons learned. Conference presentations at NICAR and elsewhere became venues for passing along hard-won knowledge.&#x201D;</blockquote><p>The effect of this work didn&#x2019;t just lift the work of journalism, it attracted new people to it:</p><blockquote>&#x201C;This culture made newsrooms more attractive places to work for civic-minded technologists. If you had programming skills and wanted to use them to make a difference, journalism offered you the chance to build things that mattered and share them with the world.&#x201D;</blockquote><p>I think there&#x2019;s a lot to be gained by collaborating on an open source basis. We typically run small, resource-constrained teams where building new software is contextually hard. And we have problems that, if they&#x2019;re not identical, are at least significantly overlapping; by <em>not</em> collaborating on them, we further an ecosystem where low-resource organizations are all solving the same sorts of things with very few people and very little money in parallel.</p><p>I was present at the News Product Alliance Summit session described in this piece, and I think the analysis of both the causes of this decline and some of the solutions are spot on. I was particularly enamored by the idea of an Open Source Editor (or director &#x2014; does everything in news need to be an editor?) and public recognition for great open technical work in the field of journalism.</p><p>I think it&#x2019;s also worth saying that open source, done well, is about much more than just releasing your code. A good open source project is a community, not a package. So there&#x2019;s a lot of ecosystem development and community management involved to foster the kind of real collaboration that is required for this to succeed &#x2014; even after newsrooms have overcome the institutional hurdles to releasing their work in the first place.</p><p>I&#x2019;m really grateful that Scott and Ben have been championing this cause. I&#x2019;m right there with them, and I&#x2019;ll do what I can to help. It&#x2019;s a concrete way we can build a more successful, efficient news ecosystem with stronger technology capabilities, and that&#x2019;s something we should all want.</p><p>[<a href="https://source.opennews.org/articles/journalism-lost-sharing-culture/?ref=werd.io">Link</a>]</p> Book Review: Doppelganger - A Trip Into the Mirror World by Naomi Klein ★★★★☆ - Terence Eden’s Blog https://shkspr.mobi/blog/?p=66374 2026-01-27T12:34:06.000Z <img src="https://shkspr.mobi/blog/wp-content/uploads/2025/12/9781802061963-jacket-large.webp" alt="Book cover with the world Doppelganger getting progressively more distressed and distorted." width="326" height="500" class="alignleft size-full wp-image-66376"/> <p>This book is excellent at describing the symptoms of madness which have beset the world. It expertly diagnoses the causes which have led so many people into a mirror-realm of fantasy. Sadly it falls short of prescribing a cure. I doubt anyone who has fallen into the conspiracy mindset will read this book - but I hope if you read it you will become inoculated against the brain-worms.</p> <p>Let&#39;s start at the beginning.</p> <blockquote><p>If the Naomi be Klein<br/>you’re doing just fine<br/>If the Naomi be Wolf<br/>Oh, buddy. Ooooof.</p></blockquote> <p>How did Naomi&#39;s titular doppelganger move from feminism to fanaticism? How do well-meaning people square the circle of aligning themselves to people who spread hate?</p> <p>At the same time, how do people like Naomi Klein justify spending hours obsessively listening to hate preachers? Can you stare into the abyss without it staring back into you? I&#39;m not entirely sure that it is possible to binge on madness and stay objective. It reminds me <a href="https://xcancel.com/aedison/status/1840770070449893420">of this classic</a>:</p> <blockquote><p>“don’t use q-tips to clean your ears, you’ll just push the wax in further!!” well, yeah, sure, except for my special technique. if I use my special technique then it’s fine.</p></blockquote> <p>There&#39;s a deep well of sadness running through the book. So many people with an unending stream of pain clutching on to anything which might give them purchase in a confusing an uncertain world. Is it any wonder some of them latch on to weird racists with their simple solutions to complex problems?</p> <p>The depressing thing is that sometimes the conspiracy-theorists are right. They can see that there are global conspiracies - but attribute them to [ethnic minorities|Marxists|the gays] rather than rapacious capitalists. Similarly, there are bitter lessons for the intellectual left who have comprehensively failed to advance progressive arguments and values. Many of us are more concerned with the purity of theory rather than implementation. You can&#39;t shame the public into understanding.</p> <p>There&#39;s a slightly weak section on algorithmic amplification of abuse. Depressingly, Klein points out the perils of oligarch-owned social media yet she is still on Twitter and hasn&#39;t joined more equitable platforms.</p> <p>The book also straddles an uneasy line between reportage and public therapy. Large parts feel like self-flagellation mixed with Freudian self-analysis. It demonstrates exactly how the grift works, why it is so effective, and what the surge of irrationality is doing to the world.</p> <p>Perhaps I can fix it if I just read one more book. Just one more paragraph will make it all make sense. I&#39;ll grab on to the classics in the intellectual library to stop me sliding down the path to oblivion. Just one more book.</p> Started reading Summer Knight - Molly White's activity feed 69784b068d9cd5e249003888 2026-01-27T05:20:06.000Z <article class="entry h-entry hentry"><header><div class="description">Started reading: </div></header><div class="content e-content"><div class="book h-entry hentry"><a class="book-cover-link" href="https://www.mollywhite.net/reading/books?search=Summer%20Knight"><img class="u-photo book-cover" src="https://m.media-amazon.com/images/S/compressed.photo.goodreads.com/books/1661018511i/91478.jpg" alt="Cover image of Summer Knight" style="max-width: 300px;"/></a><div class="book-details"><div class="top"><div class="series-info"><i>The Dresden Files</i> series, book <span class="series-number">4</span>. </div><div class="title-and-byline"><div class="title"><i class="p-name">Summer Knight</i> </div><div class="byline">by <span class="p-author h-card">Jim Butcher</span>. </div></div><div class="book-info">Published <time class="dt-published published" datetime="2002">2002</time>. 446 pages. </div></div><div class="bottom"><div class="reading-info"><div class="reading-dates"> Started <time class="dt-accessed accessed" datetime="2026-01-27">January 27, 2026</time>. </div></div></div></div></div><img src="https://www.mollywhite.net/assets/images/placeholder_social.png" alt="Illustration of Molly White sitting and typing on a laptop, on a purple background with 'Molly White' in white serif." style="display: none;"/></div><footer class="footer"><div class="flex-row post-meta"><div class="timestamp">Posted: <time class="dt-published" datetime="2026-01-27T05:20:06+00:00" title="January 27, 2026 at 5:20 AM UTC">January 27, 2026 at 5:20 AM UTC</time>. </div></div><div class="bottomRow"><div class="tags">Tagged: <a class="tag p-category" href="https://www.mollywhite.net/reading/books?tags=fantasy" title="See all books tagged "fantasy"" rel="category tag">fantasy</a>, <a class="tag p-category" href="https://www.mollywhite.net/reading/books?tags=mystery" title="See all books tagged "mystery"" rel="category tag">mystery</a>, <a class="tag p-category" href="https://www.mollywhite.net/reading/books?tags=urban_fantasy" title="See all books tagged "urban fantasy"" rel="category tag">urban fantasy</a>. </div></div></footer></article> Finished reading Grave Peril - Molly White's activity feed 69784aacfc285ae724f940d1 2026-01-27T04:58:03.000Z <article class="entry h-entry hentry"><header><div class="description">Finished reading: </div></header><div class="content e-content"><div class="book h-entry hentry"><a class="book-cover-link" href="https://www.mollywhite.net/reading/books?search=Grave%20Peril"><img class="u-photo book-cover" src="https://m.media-amazon.com/images/S/compressed.photo.goodreads.com/books/1266470209i/91476.jpg" alt="Cover image of Grave Peril" style="max-width: 300px;"/></a><div class="book-details"><div class="top"><div class="series-info"><i>The Dresden Files</i> series, book <span class="series-number">3</span>. </div><div class="title-and-byline"><div class="title"><i class="p-name">Grave Peril</i> </div><div class="byline">by <span class="p-author h-card">Jim Butcher</span>. </div></div><div class="book-info">Published <time class="dt-published published" datetime="2001">2001</time>. 378 pages. </div></div><div class="bottom"><div class="reading-info"><div class="reading-dates"> Started <time class="dt-accessed accessed" datetime="2026-01-20">January 20, 2026</time>; completed January 26, 2026. </div></div></div></div></div><img src="https://www.mollywhite.net/assets/images/placeholder_social.png" alt="Illustration of Molly White sitting and typing on a laptop, on a purple background with 'Molly White' in white serif." style="display: none;"/></div><footer class="footer"><div class="flex-row post-meta"><div class="timestamp">Posted: <time class="dt-published" datetime="2026-01-27T04:58:03+00:00" title="January 27, 2026 at 4:58 AM UTC">January 27, 2026 at 4:58 AM UTC</time>. </div></div><div class="bottomRow"><div class="tags">Tagged: <a class="tag p-category" href="https://www.mollywhite.net/reading/books?tags=fantasy" title="See all books tagged "fantasy"" rel="category tag">fantasy</a>, <a class="tag p-category" href="https://www.mollywhite.net/reading/books?tags=mystery" title="See all books tagged "mystery"" rel="category tag">mystery</a>, <a class="tag p-category" href="https://www.mollywhite.net/reading/books?tags=urban_fantasy" title="See all books tagged "urban fantasy"" rel="category tag">urban fantasy</a>. </div></div></footer></article> Why Intelligence Is a Terrible Proxy for Wisdom - Westenberg 69780322141f770001466ae0 2026-01-27T00:34:31.000Z <img src="https://www.joanwestenberg.com/content/images/2026/01/sir_isaac_newton_by_sir_godfrey_kneller-_bt-scaled-e1717764762411.jpg" alt="Why Intelligence Is a Terrible Proxy for Wisdom"><p>Isaac Newton, one of the greatest scientific minds in human history, lost a fortune in the South Sea Bubble of 1720.</p><p>After initially making money and selling his shares, he bought back in at the peak, watching helplessly as the stock collapsed. His reported loss was around &#xA3;20,000, equivalent to several million dollars today. Newton invented calculus and described the laws governing planetary motion, but he couldn&#x2019;t resist a speculative mania that, in retrospect, had all the hallmarks of obvious fraud. &#x201C;I can calculate the movement of stars,&#x201D; Newton allegedly said, &#x201C;but not the madness of men.&#x201D;</p><p>In the 2020&#x2019;s, Newton might have been all-in on Crypto...</p><p>Linus Pauling won two Nobel Prizes, one in Chemistry and one in Peace, making him one of only five people to win the Peace Prize twice. And he spent the last decades of his life promoting megadose vitamin C as a cure for the common cold and, eventually, cancer, based on theories that never held up to rigorous testing. Bobby Fischer, the greatest chess player who ever lived, descended into paranoid antisemitic conspiracy theories after his world championship victory. John von Neumann, the polymath who contributed to quantum mechanics, game theory, computer science, and economics, was reportedly a terrible driver who wrecked cars with alarming frequency despite being able to perform complex calculations in his head.</p><p>Sometimes, brilliant people end up spectacularly, catastrophically wrong in ways that ordinary people avoid.</p><p>Because sometimes, brilliant people have extraordinary blind spots.</p><p>And, every now and then, a brilliant person can be a complete fool.</p><p>Popular belief (and hoards of Elon Musk fans on Twitter) holds that smart individuals - the geniuses we laud - should make fewer errors across all domains. If you have more processing power and superior reasoning abilities, surely you&#x2019;ll arrive at correct conclusions more often than someone without those gifts.</p><p>But this model treats the brain like a calculator that either works well or poorly, when it&#x2019;s actually more like a lawyer: capable of arguing any position with varying degrees of skill. Give a mediocre lawyer a bad case, and there is a better-than-not likelihood they&#x2019;ll lose. Give a brilliant lawyer a bad case, and they&#x2019;ll construct an elaborate, internally consistent, superficially compelling argument for why they should win anyway. See: Boston Legal.</p><p>Intelligence doesn&#x2019;t merely help you find truth. It helps you construct persuasive narratives. And the person most easily persuaded by your narratives is yourself.</p><p>Francis Bacon identified this problem four centuries ago, writing about the &#x201C;idols of the mind&#x201D; that distort human reasoning. The intelligent person excels at building coherent worldviews and defending positions against attack. These are precisely the skills that make motivated reasoning so dangerous when they&#x2019;re turned inward.</p><p>Simply put: smart people, by virtue of being very fucking smart, are better at constructing post-hoc rationalizations for beliefs they hold for emotional or social reasons. Everyone does this to some extent. We form impressions and then search for evidence to support them. But intelligent people search more effectively. They find better evidence, or at least better-sounding evidence. They anticipate counterarguments and preemptively defuse them. They build fortresses of logic around conclusions they reached for entirely non-logical reasons, and those fortresses can become so elaborate and well-defended that the person living inside them never realizes they&#x2019;re trapped.</p><p>Philip Tetlock&#x2019;s research on expert political judgment found that the experts with the most impressive credentials and the strongest reputations for insight performed barely better than chance at predicting geopolitical events, and sometimes performed worse than simple algorithms. The experts who performed best tended to be what Tetlock called &#x201C;foxes&#x201D; rather than &#x201C;hedgehogs,&#x201D; borrowing from Archilochus&#x2019;s ancient distinction. Hedgehogs know one big thing and apply it everywhere, while foxes know many small things and adapt flexibly. The hedgehogs were frequently the most intelligent and articulate members of the sample. They also consistently overestimated their own accuracy and failed to update their beliefs when predictions went wrong.</p><p>Intelligence, it seems, can produce a particularly fraught form of intellectual pride. You&#x2019;ve been right so many times before, in so many situations, in ways that others couldn&#x2019;t match.</p><p>Milton&#x2019;s Satan in Paradise Lost is brilliant and utterly self-deceived, constructing an entire theology to justify his rebellion while remaining blind to his own vanity. Dostoevsky&#x2019;s Underground Man is excruciatingly self-aware and analytically sophisticated, using that sophistication primarily to torture himself and others while accomplishing nothing. Faust trades his soul for knowledge, only to find that knowledge without wisdom leads to destruction.</p><p>Why?</p><ol><li>First, there&#x2019;s the tendency to mistake complexity for correctness. Simple explanations feel too simple for someone who can handle complexity, so they reach for more elaborate theories even when Occam&#x2019;s razor should apply.</li><li>Second, the ability to construct unfalsifiable frameworks that explain everything while predicting nothing, intellectual houses of cards that look impressive from the outside but contain no load-bearing walls.</li><li>Third, the social reinforcement that comes from being consistently regarded as the smartest person in the room, which makes it harder to accept that someone with less raw intelligence might be right when you&#x2019;re wrong.</li><li>And fourth, the way that verbal facility can substitute for actual understanding, allowing someone to explain something convincingly without genuinely comprehending it themselves.</li></ol><p>Wisdom is <em>knowing what you don&#x2019;t know.</em></p><p>Wisdom is what tells you to ignore the memecoin // prediction market bet, even though you <em>could</em> construct an excellent narrative explaining why this time will be different. Wisdom is what tells you that your political opponents might have a point, even though you <em>could</em> demolish their arguments in debate. Wisdom is what tells you not to install Clawdbot on your personal device and give it access to your banking details, even though you <em>could</em> become the next Tony Stark.</p><p>Intelligence can be measured on tests.</p><p>Wisdom is a good deal harder to quantify.</p><p>Isaac Newton never figured out the madness of men. He also never figured out alchemy, which consumed years of his life in fruitless experimentation. The mind that revolutionized physics believed he could transmute base metals into gold. That should tell us something. Our greatest strengths can coexist quite comfortably with our most embarrassing weaknesses and our worst impulses. The smartest person you know is probably an idiot in some domain that matters. If you&#x2019;re the smartest person you know, the domain that matters might be closer than you realize.</p> Do savings accounts really lose money to inflation? - Terence Eden’s Blog https://shkspr.mobi/blog/?p=62585 2026-01-26T12:34:05.000Z <p>I&#39;m absolutely addicted to the <a href="https://www.reddit.com/r/UKPersonalFinance/">Reddit&#39;s UK Personal Finance forum</a> - where people mutually support each other through the difficult world of managing one&#39;s personal finances. It&#39;s a great community and full of people eager to help others.</p> <p>In amongst the confusion around pensions, tips for budgeting, and complaining about debt-collectors is a persistent drumbeat encouraging people to save money. Good! More people should save more money. But the advice is always undercut with the message &#34;sticking money in a savings account will see it eaten away by inflation&#34;.</p> <p>Is that true?</p> <p>Firstly, what is inflation? Simply put - prices rise and fall. The price of bread goes up by 50% and a loaf now costs £1.50. The price of a 42 inch flat screen TV drop by 50% and now costs £150. The average person buys 50 loaves of bread per year and a new TV every 5 years - add up the average of what people buy and you have a rough idea of what inflation is<sup id="fnref:simp"><a href="https://shkspr.mobi/blog/2026/01/do-savings-accounts-really-lose-money-to-inflation/#fn:simp" class="footnote-ref" title="This is a vast over-simplification. It doesn&#39;t take into account a person&#39;s personal circumstances nor their preferences. But averages dehumanise everyone." role="doc-noteref">0</a></sup>.</p> <p>Secondly, what is interest? Simply put - a bank or building society will pay you money to save with them. If you put £100 in a savings account paying 5% interest then leave it a year, you&#39;ll be given a fiver<sup id="fnref:savings"><a href="https://shkspr.mobi/blog/2026/01/do-savings-accounts-really-lose-money-to-inflation/#fn:savings" class="footnote-ref" title="Some savings accounts are tax free - so you don&#39;t pay anything on what you make." role="doc-noteref">1</a></sup>.</p> <p>If the rate of inflation is higher than the rate of interest, your savings will be eroded; your money will be worth less.</p> <p>The <a href="https://www.bankofengland.co.uk/monetary-policy/the-interest-rate-bank-rate">Bank of England&#39;s current interest rate and inflation</a> rate shows this:</p> <img src="https://shkspr.mobi/blog/wp-content/uploads/2026/01/inflation.webp" alt=" Current Bank Rate 3.75% Next due: 5 February 2026 Current inflation rate 3.2% Target: 2%" width="1410" height="311" class="aligncenter size-full wp-image-67060"/> <p>On average, if something cost £100 a year ago, today it will cost £103.20. If you had saved £100, it would be worth £103.75</p> <p>So, based on this, savings <em>exceed</em> inflation right?</p> <p>Well, as ever, it is a little more complicated than that!</p> <p>For starters, the inflation rate is for the <em>last</em> year and the interest rate is the <em>current</em> rate.</p> <p>The <a href="https://www.ons.gov.uk/economy/inflationandpriceindices">UK publishes a number of different inflation statistics</a>. Depending on which one you prefer, the inflation rate over the last 12 months is between 3.2% and 4.4%.</p> <p>Different savings accounts will attract different interest rates. Some will offer tasty bonuses to new savers and will drop to nothing once that promotion expires.</p> <p>This stuff is hard to accurately model.</p> <p>But let&#39;s ignore all that and YOLO it!</p> <p>Here&#39;s two resources:</p> <ul> <li>The <a href="https://www.bankofengland.co.uk/monetary-policy/inflation/inflation-calculator">Bank of England inflation calculator</a> tells you want a historic price is in today&#39;s money (up to 2025).</li> <li>The website <a href="https://HistoricalSavingsCalculator.com">HistoricalSavingsCalculator.com</a> provides the annual average historical interest rate from the Bank of England (up to 2023).</li> </ul> <p>As a quick check. £1,000 in 1975 is equivalent to about £7,300 in 2023.</p> <p>The same amount <em>saved</em> in 1975 with average interest compounded, would be worth about £18,000 in 2023.</p> <p>Amazing! Compound interest beats inflation!</p> <p>But let&#39;s take another perspective. £1000 in 2008 is equivalent to £1,540 in 2023</p> <p>£1,000 saved in 2008 would be worth about £1,180 in 2023.</p> <p>A loss of over £300.</p> <p>Let&#39;s stick annual UK inflation and interest rates into a graph:</p> <img src="https://shkspr.mobi/blog/wp-content/uploads/2025/08/interest-vs-inflation.webp" alt="Graph plotting inflation vs interest. Interest beats inflation until about 2008." width="1024" height="540" class="aligncenter size-full wp-image-62591"/> <p>Ah! Over the last 17 years, inflation has been higher than interest - a position which is slowly reverting. <a href="https://en.wikipedia.org/wiki/2008_financial_crisis">Fucking 2008</a>, eh?</p> <p>It looks like we <em>might</em> be entering a period where interest will be higher than inflation. Does the average person optimally pick their savings accounts? Probably not. Is inflation a 100% reliable way of tracking the worth of money? Also probably not.</p> <p>While cash savings are unlikely to exceed the rate of return from <a href="https://shkspr.mobi/blog/2024/08/is-dollar-cost-averaging-a-bad-idea/">&#34;Dollar Cost Averaging&#34;</a>, it is possible that savings accounts will once again offer some protection against inflation.</p> <div id="footnotes" role="doc-endnotes"> <hr/> <ol start="0"> <li id="fn:simp"> <p>This is a <em>vast</em> over-simplification. It doesn&#39;t take into account a person&#39;s personal circumstances nor their preferences. But averages dehumanise everyone. <a href="https://shkspr.mobi/blog/2026/01/do-savings-accounts-really-lose-money-to-inflation/#fnref:simp" class="footnote-backref" role="doc-backlink">↩︎</a></p> </li> <li id="fn:savings"> <p>Some savings accounts are tax free - so you don&#39;t pay anything on what you make. <a href="https://shkspr.mobi/blog/2026/01/do-savings-accounts-really-lose-money-to-inflation/#fnref:savings" class="footnote-backref" role="doc-backlink">↩︎</a></p> </li> </ol> </div> Note published on January 25, 2026 at 6:40 PM UTC - Molly White's activity feed 697663a6014a09ddd55adf59 2026-01-25T18:40:38.000Z <article><div class="entry h-entry hentry"><header></header><div class="content e-content"><p>finally got bad enough that it needs fixing, and today i could use a fiddly project to occupy my brain</p><p>sadly i forgot that this design has the components mounted on the bottom of the PCB which means desoldering all the switches, so ten minutes was a very unrealistic estimate</p><div class="media-wrapper"><a href="https://storage.mollywhite.net/micro/b96a2d16ef51cfba9e18_ergodox-desoldering.jpg" data-fslightbox=96c25c4698fc3d81a4d4><img src="https://storage.mollywhite.net/micro/b96a2d16ef51cfba9e18_ergodox-desoldering.jpg" alt="Ergodox Infinity PCB and plate with switches still mounted. I'm in the process of desoldering, and there's a solder iron station, LED work light, wire strippers/snips, tweezers with solder wick, and a tomato sauce trash can also in frame " /></a></div><p><a href="https://www.mollywhite.net/micro/entry/202510291202"><i>previously</i></a></p></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/202601251337"><time class="dt-published" datetime="2026-01-25T18:40:38+00:00" title="January 25, 2026 at 6:40 PM UTC">January 25, 2026 at 6:40 PM UTC</time>. </a></div></div><div class="social-links"> <span> Also posted to: </span><a class="social-link u-syndication bluesky" href="https://bsky.app/profile/molly.wiki/post/3mdberh7f4c2o" 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/electronics" title="See all micro posts tagged "electronics"" rel="category tag">electronics</a>, <a class="tag p-category" href="https://www.mollywhite.net/micro/tag/ergodox" title="See all micro posts tagged "Ergodox"" rel="category tag">Ergodox</a>. </div></div></footer></div></article> Hiring in an era of fake candidates, real scams and AI slop - Werd I/O 697621ddd523b400016305ea 2026-01-25T13:59:57.000Z <p>[<a href="https://themarkup.org/hello-world/2026/01/24/fake-candidates-recruiter-scams-ai-slop?ref=werd.io">Andrew Losowsky at The Markup</a>]</p><p><a href="https://losowsky.com/?ref=werd.io">Andrew Losowsky</a> discusses the impact of AI on his hiring process:</p><blockquote>&#x201C;Within 12 hours of posting the role, we received more than 400 applications. At first, most of these candidates seemed to be genuine. However, as the person who had to read them all, I quickly saw some red flags, which were all clear indicators of inauthenticity.&#x201D;</blockquote><p>These jibe with what I&#x2019;ve seen lately too. I&#x2019;ve had the privilege of hiring for a few technical roles over the last year, and every single time, <em>almost</em> everything Andrew mentions has come up.</p><p>The good news, as he points out, is that right now there are some really strong tells. One of the most important parts of any application I run is the &#x201C;why are you excited about this job?&#x201D; question, which is really a question about mission fit. The AI-generated answers are extremely generic, heavily reference the job description itself, and start looking very samey in a sample size of hundreds.</p><p>Here&#x2019;s the thing I <em>don&#x2019;t</em> believe I&#x2019;ve encountered before:</p><blockquote>&#x201C;Someone made a fake email address similar to ours, then sent generic technical &#x201C;tests&#x201D; containing our logo to jobseekers, while linking to our job ad. Completing these tests led to a fake contract signed by someone claiming to be our CEO &#x2013; it was at this point that the scammers requested financial information, saying they needed it to issue payments.&#x201D;</blockquote><p>The thing is, without someone telling me about it, how would I know? This is where we need stronger tools &#x2013; the anti-spam protections of yore don&#x2019;t work very well against AI-powered scams. Centralized repositories of scammers and stronger anti-spam filters <em>may</em> work, but I suspect we&#x2019;re going to need to find other approaches. Impersonating to make some quick money is one thing (and bad enough), but when you consider that for both Andrew and I we&#x2019;re talking about impersonating newsrooms, this could get very bad very quickly.</p><p>[<a href="https://themarkup.org/hello-world/2026/01/24/fake-candidates-recruiter-scams-ai-slop?ref=werd.io">Link</a>]</p> Book Review: Human Rites by Juno Dawson ★★★☆☆ - Terence Eden’s Blog https://shkspr.mobi/blog/?p=66251 2026-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&#39;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&#39;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&#39;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&#39;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&#39;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 Blog https://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 Blog https://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 Blog https://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/O 6974cadfd523b40001630218 2026-01-24T13:49:05.000Z <img src="https://images.unsplash.com/photo-1625440153141-1ae4c27ff33b?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDN8fGV1fGVufDB8fHx8MTc2OTI2MjUwM3ww&amp;ixlib=rb-4.1.0&amp;q=80&amp;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&apos;s edition is late!</em></p><p><em>This week&apos;s links discuss the future of software development, how the EU&apos;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&#x2019;ve heard from friends and seen first-hand.</p><blockquote>&#x201C;I&#x2019;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 &#x2013; 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.&#x201D;</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&#x2019;s a reason why engineers who have been coding for decades rave about it. But we&#x2019;ll also see some really bad code (particularly in enterprise organizations) and some high-profile failures. There&#x2019;s something I&#x2019;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&#x2019;ll begin to see explicitly artisanal software companies emerge. In some industries, particularly highly-regulated ones, we&#x2019;ll also see new kinds of trust certificates emerge to prove that (regardless of how it was built) software performs well and doesn&#x2019;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&#x2019;t an endorsement, necessarily &#x2014; 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>&#x201C;Open Source is the most credible path to digital sovereignty. It&apos;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.&#x201D;</blockquote><p>Dries&#x2019;s solution involves evaluating a company&#x2019;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&#x2019;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&#x2019;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&#x2019;s looking for more than the code: it needs a solution to a problem. Services address organizational problems more directly than codebases alone. There&#x2019;s a reason why Dries&#x2019;s Acquia and Matt Mullenweg&#x2019;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 &#x2014; and, indeed, that direct connection with customers will make those products better. But I&#x2019;d say that most open source maintainers either aren&#x2019;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 &#x2014; including business fundamentals, sales and marketing, and a kind of operating system for running a small company around open source &#x2014; 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&#x2019;t yet found the words to refer to it that don&#x2019;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>&#x201C;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.&#x201D;</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&#x2019;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&#x2019;s first post is a little odd. But it&#x2019;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&#x2019;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&#x2019;s important context for this next discussion:</p><blockquote>&#x201C;Bluesky&#x2019;s Community Guidelines lists the two major principles as &#x2018;Safety First&#x2019; and &#x2018;Respect Others&#x2019;. 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 &#x2018;we are here, you cannot escape us&#x2019; is the point, and the accounts by the regime are deliberately trying to provoke an outrage.&#x201D;</blockquote><p>These things are true, in my mind. But it&#x2019;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&#x2019;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&#x2019;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&#x2019;s not a problem that Bluesky-the-protocol would have, but the fact is that it&#x2019;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&#x2019;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&#x2019;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&#x2019;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 &#x2014; or at least, many people need &#x2014; a pluralistic open social web, where we can choose communities based on our values. That&#x2019;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&#x2019;s building an open protocol but most of the users of its flagship app don&#x2019;t give two hoots about that. They&#x2019;re looking for a safe place to discuss and share, and Bluesky&#x2019;s core value for them is that it&#x2019;s not X/Twitter and doesn&#x2019;t have the toxicity of that network. It&#x2019;s considered to be easier to use than Mastodon because there&#x2019;s one place to sign up and one official app. AT Protocol wouldn&#x2019;t be as successful as it&#x2019;s becoming without that dynamic. So it has to continue to foster that community while also maintaining its protocol, and it can&#x2019;t fork itself to create multiple app experiences for different audiences. It also can&#x2019;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 &#x2014; 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&#x2019;t care about the underlying technology. There&#x2019;s a world, later on, where other providers create viable alternative microblogging experiences with different takes on trust and safety &#x2014; which is beginning to happen with Blacksky and Eurosky &#x2014; 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&#x2019;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&#x2019;s because I&#x2019;ve been working with him in various ways for over a decade, and the things he suggests are often techniques I&#x2019;ve used productively for a long time. This is another great one.</p><p>I insist on double opt-in introductions if I&#x2019;m making a connection. That means I check in with the connectee first: do they actually want this connection? It&#x2019;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&#x2019;s template is actionable and really works: it&#x2019;s what I&#x2019;ve done for a decade now. It&#x2019;s simple, but the underlying structure is not what most people are doing.</p><p>Honestly, I&#x2019;m also just very happy that this is in a post on Corey&#x2019;s site, because now when I tell people to write me a forwardable email, I can just point them to this. Please, if you&#x2019;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 Blog https://shkspr.mobi/blog/?p=65041 2026-01-24T12:34:21.000Z <p>Notes to myself because I keep forgetting.</p> <p><abbr title="To Long; Didn&#39;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&#39;t have sufficient rights to install programs or don&#39;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&#39;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&#39;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/O 69743817d523b40001630209 2026-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&#x2019;t yet found the words to refer to it that don&#x2019;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>&#x201C;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.&#x201D;</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&#x2019;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&#x2019;s first post is a little odd. But it&#x2019;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&#x2019;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&#x2019;s important context for this next discussion:</p><blockquote>&#x201C;Bluesky&#x2019;s Community Guidelines lists the two major principles as &#x2018;Safety First&#x2019; and &#x2018;Respect Others&#x2019;. 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 &#x2018;we are here, you cannot escape us&#x2019; is the point, and the accounts by the regime are deliberately trying to provoke an outrage.&#x201D;</blockquote><p>These things are true, in my mind. But it&#x2019;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&#x2019;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&#x2019;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&#x2019;s not a problem that Bluesky-the-protocol would have, but the fact is that it&#x2019;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&#x2019;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&#x2019;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&#x2019;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 &#x2014; or at least, many people need &#x2014; a pluralistic open social web, where we can choose communities based on our values. That&#x2019;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&#x2019;s building an open protocol but most of the users of its flagship app don&#x2019;t give two hoots about that. They&#x2019;re looking for a safe place to discuss and share, and Bluesky&#x2019;s core value for them is that it&#x2019;s not X/Twitter and doesn&#x2019;t have the toxicity of that network. It&#x2019;s considered to be easier to use than Mastodon because there&#x2019;s one place to sign up and one official app. AT Protocol wouldn&#x2019;t be as successful as it&#x2019;s becoming without that dynamic. So it has to continue to foster that community while also maintaining its protocol, and it can&#x2019;t fork itself to create multiple app experiences for different audiences. It also can&#x2019;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 &#x2014; 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&#x2019;t care about the underlying technology. There&#x2019;s a world, later on, where other providers create viable alternative microblogging experiences with different takes on trust and safety &#x2014; which is beginning to happen with Blacksky and Eurosky &#x2014; 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&#x2019;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>