<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <updated>2026-03-21T19:06:27Z</updated>
  <generator>https://yabu.me</generator>

  <title>Nostr notes by alexwlchan</title>
  <author>
    <name>alexwlchan</name>
  </author>
  <link rel="self" type="application/atom+xml" href="https://yabu.me/npub12zlkultmepfzh04qpzaht5spcsryduzzpa22vgezv9glcwdj63ssfc4rkn.rss" />
  <link href="https://yabu.me/npub12zlkultmepfzh04qpzaht5spcsryduzzpa22vgezv9glcwdj63ssfc4rkn" />
  <id>https://yabu.me/npub12zlkultmepfzh04qpzaht5spcsryduzzpa22vgezv9glcwdj63ssfc4rkn</id>
  <icon>https://cdn.masto.host/socialalexwlchannet/accounts/avatars/110/955/685/404/188/301/original/7b82e4e15a04b5f4.jpeg</icon>
  <logo>https://cdn.masto.host/socialalexwlchannet/accounts/avatars/110/955/685/404/188/301/original/7b82e4e15a04b5f4.jpeg</logo>




  <entry>
    <id>https://yabu.me/nevent1qqsywnnlerzvyqf2zeg5s2zcmldzntlw70u2fn70zthzzralzmu0s4gzypgt7mna00y9y2a75qytkawjq8zqv3hsgg84ff3ryfs4rlpekt2xznumrtp</id>
    
      <title type="html">What I learnt about making websites by reading two thousand web ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsywnnlerzvyqf2zeg5s2zcmldzntlw70u2fn70zthzzralzmu0s4gzypgt7mna00y9y2a75qytkawjq8zqv3hsgg84ff3ryfs4rlpekt2xznumrtp" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsd6f8vej7j92vrh64dezsgj4k4u8pwlq2kryqtsms5wf5nl4a2v3cx9wtv2&#39;&gt;nevent1q…wtv2&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;What I learnt about making websites by reading two thousand web pages: &lt;a href=&#34;https://alexwlchan.net/2025/learning-how-to-make-websites/?ref=mastodon&#34;&gt;https://alexwlchan.net/2025/learning-how-to-make-websites/?ref=mastodon&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;When I built my web archive by hand, I saw how other people make websites. I wrote about what I learnt – writing thoughtful HTML, new-to-me features of CSS, and some quirks and relics of the web. 🔖
    </content>
    <updated>2025-05-26T10:05:37Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqswepsrt7kyn0rs9s0mc7ath68hgfft2lwe672tzm3syhhqqh49vpszypgt7mna00y9y2a75qytkawjq8zqv3hsgg84ff3ryfs4rlpekt2xznhjwhe</id>
    
      <title type="html">oh this has given me a depressing thought All the big models have ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqswepsrt7kyn0rs9s0mc7ath68hgfft2lwe672tzm3syhhqqh49vpszypgt7mna00y9y2a75qytkawjq8zqv3hsgg84ff3ryfs4rlpekt2xznhjwhe" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsy6zz3k8vj8fx95qsuafvq2afe5ztenphdhrvkmhy8kz5eqvyre2qlxvk9l&#39;&gt;nevent1q…vk9l&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;oh this has given me a depressing thought&lt;br/&gt;&lt;br/&gt;All the big models have eaten my sire and know who I am, but they misgender me&lt;br/&gt;&lt;br/&gt;And every time one of my blog posts goes somewhat viral, it’s hastily rewritten and linked from a bunch of content farm sites, who usually misgender me in this process&lt;br/&gt;&lt;br/&gt;I’ve been assuming it was carelessness on the author’s part, and the genAI models have been learning from all those posts&lt;br/&gt;&lt;br/&gt;But it’s probably genAI writing those content farm posts, isn’t it?&lt;br/&gt;&lt;br/&gt;😐😐😐
    </content>
    <updated>2025-05-19T10:20:36Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsd6f8vej7j92vrh64dezsgj4k4u8pwlq2kryqtsms5wf5nl4a2v3czypgt7mna00y9y2a75qytkawjq8zqv3hsgg84ff3ryfs4rlpekt2xzr59kwe</id>
    
      <title type="html">Building a personal archive of the web, the slow way: ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsd6f8vej7j92vrh64dezsgj4k4u8pwlq2kryqtsms5wf5nl4a2v3czypgt7mna00y9y2a75qytkawjq8zqv3hsgg84ff3ryfs4rlpekt2xzr59kwe" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsyl27f0vgehnuyv7hxk05ttev2zeaxx4td5cfl4zkjvm8vrh94f0su4jf4d&#39;&gt;nevent1q…jf4d&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Building a personal archive of the web, the slow way: &lt;a href=&#34;https://alexwlchan.net/2025/personal-archive-of-the-web/?ref=mastodon&#34;&gt;https://alexwlchan.net/2025/personal-archive-of-the-web/?ref=mastodon&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;I wrote about how I created a personal web archive of all my bookmarks, the tradeoff between manual and automated archiving, and what I learnt about preserving the web. 🔖
    </content>
    <updated>2025-05-19T07:08:55Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsyl27f0vgehnuyv7hxk05ttev2zeaxx4td5cfl4zkjvm8vrh94f0szypgt7mna00y9y2a75qytkawjq8zqv3hsgg84ff3ryfs4rlpekt2xzn6p5pe</id>
    
      <title type="html">This is the first of a four-part series about my bookmarking – ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsyl27f0vgehnuyv7hxk05ttev2zeaxx4td5cfl4zkjvm8vrh94f0szypgt7mna00y9y2a75qytkawjq8zqv3hsgg84ff3ryfs4rlpekt2xzn6p5pe" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsgw7mmnha3lx35ffw7pnl2wn3zk9tdca8ztxjsn53wzhygvx4a2usytdw0z&#39;&gt;nevent1q…dw0z&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;This is the first of a four-part series about my bookmarking – over the next three weeks, I’ll post about creating a local archive of each web page, what I learnt about building websites by reading 2000&#43; web pages, and some of my favourite sites. Stay tuned! 😊
    </content>
    <updated>2025-05-12T07:13:08Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsgw7mmnha3lx35ffw7pnl2wn3zk9tdca8ztxjsn53wzhygvx4a2uszypgt7mna00y9y2a75qytkawjq8zqv3hsgg84ff3ryfs4rlpekt2xzf944f6</id>
    
      <title type="html">Creating a static website for all my bookmarks: ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsgw7mmnha3lx35ffw7pnl2wn3zk9tdca8ztxjsn53wzhygvx4a2uszypgt7mna00y9y2a75qytkawjq8zqv3hsgg84ff3ryfs4rlpekt2xzf944f6" />
    <content type="html">
      Creating a static website for all my bookmarks: &lt;a href=&#34;https://alexwlchan.net/2025/bookmarks-static-site/?utm_source=mastodon&#34;&gt;https://alexwlchan.net/2025/bookmarks-static-site/?utm_source=mastodon&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;I’ve been tidying up my bookmarks, and I’ve moved them out of Pinboard into a static website on my local computer. I’ve written about why I still care about bookmarking in 2025, and how this new site works. 🔖
    </content>
    <updated>2025-05-12T07:13:05Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsfyk9gl4xxjjl2g4w55k7xedy7j99yq6607xm8cn64rdt3ac5vc9qzypgt7mna00y9y2a75qytkawjq8zqv3hsgg84ff3ryfs4rlpekt2xzwrfakl</id>
    
      <title type="html">Software developers: I can’t tell you how long this feature ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsfyk9gl4xxjjl2g4w55k7xedy7j99yq6607xm8cn64rdt3ac5vc9qzypgt7mna00y9y2a75qytkawjq8zqv3hsgg84ff3ryfs4rlpekt2xzwrfakl" />
    <content type="html">
      Software developers: I can’t tell you how long this feature will take me, estimates are Impossible and Unreasonable and an Injustice To The Craft&lt;br/&gt;&lt;br/&gt;Also software developers: I can predict the capabilities of as-yet undeveloped AI applications, years in advance, with complete confidence
    </content>
    <updated>2025-03-01T08:23:46Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsya8mmpd57hxsjftltlputgns62ljsc8p7aed09fertagdg70vgggzypgt7mna00y9y2a75qytkawjq8zqv3hsgg84ff3ryfs4rlpekt2xzsuullx</id>
    
      <title type="html">Yes, once. It was in a library that wrapped a third-party API. ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsya8mmpd57hxsjftltlputgns62ljsc8p7aed09fertagdg70vgggzypgt7mna00y9y2a75qytkawjq8zqv3hsgg84ff3ryfs4rlpekt2xzsuullx" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqszg6vxy7xmfsq6m7g3jdnf779x7avxfddte6n9rjtkefltrr43djgnuqqc0&#39;&gt;nevent1q…qqc0&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Yes, once.&lt;br/&gt;&lt;br/&gt;It was in a library that wrapped a third-party API. There was a dict that mapped API error codes to named exceptions, but if the code was unrecognised I didn’t want to show the user the KeyError.&lt;br/&gt;&lt;br/&gt;exceptions = {&lt;br/&gt;    1: ForbiddenException(),&lt;br/&gt;    2: InvalidException(),&lt;br/&gt;    …&lt;br/&gt;}&lt;br/&gt;&lt;br/&gt;try:&lt;br/&gt;    raise exceptions[api_response.error_code]&lt;br/&gt;except KeyError:&lt;br/&gt;    raise UnrecognisedErrorCode(api_response.error_code) from None
    </content>
    <updated>2024-12-10T07:29:54Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsxpamepl3mmmrvlyfynmkpghew040pdyvzrcc45wxg74znrf0sheszypgt7mna00y9y2a75qytkawjq8zqv3hsgg84ff3ryfs4rlpekt2xzaf9zdv</id>
    
      <title type="html">Given you’ve been writing about Google’s declining search ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsxpamepl3mmmrvlyfynmkpghew040pdyvzrcc45wxg74znrf0sheszypgt7mna00y9y2a75qytkawjq8zqv3hsgg84ff3ryfs4rlpekt2xzaf9zdv" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsv38kw4fkazvq5jj7lk62wg5n2l2e2vlac4pp2qtggvm32q9nyqvst89gnf&#39;&gt;nevent1q…9gnf&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Given you’ve been writing about Google’s declining search quality, you may (not) enjoy this article I wrote earlier in the year: &lt;a href=&#34;https://alexwlchan.net/2024/googles-general-election-gaffe/&#34;&gt;https://alexwlchan.net/2024/googles-general-election-gaffe/&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;After the UK elections, Google was returning misleading results for days, so I did several hours of unpaid data entry to get things fixed 🫠
    </content>
    <updated>2024-11-07T16:56:00Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsxz4sqgrnk4rduemtxfwcvgxtv82nys7g74ymewesr8utdnn6xgjczypgt7mna00y9y2a75qytkawjq8zqv3hsgg84ff3ryfs4rlpekt2xz4t6nhv</id>
    
      <title type="html">Using static websites for tiny archives: ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsxz4sqgrnk4rduemtxfwcvgxtv82nys7g74ymewesr8utdnn6xgjczypgt7mna00y9y2a75qytkawjq8zqv3hsgg84ff3ryfs4rlpekt2xz4t6nhv" />
    <content type="html">
      Using static websites for tiny archives: &lt;a href=&#34;https://alexwlchan.net/2024/static-websites/?utm_source=mastodon&#34;&gt;https://alexwlchan.net/2024/static-websites/?utm_source=mastodon&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;I wrote about how making small, hand-written HTML pages has taken over as the way I organise my local files. I get more metadata and filtering options than I do with the Finder, and the ongoing maintenance cost is essentially zero.&lt;br/&gt;&lt;br/&gt;I’m using it for personal stuff, but this feels like a powerful tool for digital preservation more broadly.&lt;br/&gt;&lt;br/&gt;HTML FTW 💪
    </content>
    <updated>2024-10-16T18:46:39Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsdephc3zznmptkcxlpn0cwtxlgtkgfdv65w5pnzdnpxyhxkpsa0sgzypgt7mna00y9y2a75qytkawjq8zqv3hsgg84ff3ryfs4rlpekt2xzcv3myz</id>
    
      <title type="html">In the cliffhanger of season 1, we’ll discover there was a mole ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsdephc3zznmptkcxlpn0cwtxlgtkgfdv65w5pnzdnpxyhxkpsa0sgzypgt7mna00y9y2a75qytkawjq8zqv3hsgg84ff3ryfs4rlpekt2xzcv3myz" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsgvfd7p0cjtgxvnpz6m9jtk7q4lwvt8x5082lpe9z2uak5nghe6qgk6umx0&#39;&gt;nevent1q…umx0&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;In the cliffhanger of season 1, we’ll discover there was a mole working at WordPress headquarters all along! They work for a competitor called SquareSplice, and they were trying to tank WordPress.&lt;br/&gt;&lt;br/&gt;In season 2 the web of intrigue will extend further, as we discover that SquareSplice is just a front for another shady organisation!&lt;br/&gt;&lt;br/&gt;Because the real villains behind it all are BundlerKist, a company who sells website builders and popcorn machines.
    </content>
    <updated>2024-10-13T07:26:26Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqs952dc9qw0d2x3agkxt9u8g0lae45jzwnmyam9v5392kexsz6z0wqzypgt7mna00y9y2a75qytkawjq8zqv3hsgg84ff3ryfs4rlpekt2xz0tus28</id>
    
      <title type="html">If you have files which have been rejected because they contain ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqs952dc9qw0d2x3agkxt9u8g0lae45jzwnmyam9v5392kexsz6z0wqzypgt7mna00y9y2a75qytkawjq8zqv3hsgg84ff3ryfs4rlpekt2xz0tus28" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsda9ze30t8shn3lsz9df7c77aysnpkcdh2u6w05nsfzn2sfp57srskwzxlg&#39;&gt;nevent1q…zxlg&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;If you have files which have been rejected because they contain viruses or incorrect metadata, that’s known as a *suspect information package*, or SIP.&lt;br/&gt;&lt;br/&gt;If you have files which cannot be produced for a client to access, those must go in a *secured information package*, or SIP.&lt;br/&gt;&lt;br/&gt;If you produce files for an ongoing law enforcement case, those become a *seized information package*, or SIP.
    </content>
    <updated>2024-08-26T16:27:23Z</updated>
  </entry>

</feed>