<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <updated>2026-07-15T19:58:03&#43;02:00</updated>
  <generator>https://nostr.ae</generator>

  <title>Nostr notes by Brett Cannon</title>
  <author>
    <name>Brett Cannon</name>
  </author>
  <link rel="self" type="application/atom+xml" href="https://nostr.ae/npub139gmplm2d5syujhrat2gx6gutampwx5cz9el7qr02a6r0tj3xycsrjcwvw.rss" />
  <link href="https://nostr.ae/npub139gmplm2d5syujhrat2gx6gutampwx5cz9el7qr02a6r0tj3xycsrjcwvw" />
  <id>https://nostr.ae/npub139gmplm2d5syujhrat2gx6gutampwx5cz9el7qr02a6r0tj3xycsrjcwvw</id>
  <icon>https://files.mastodon.social/accounts/avatars/114/633/944/987/767/035/original/2e86a8d32c447ae6.jpeg</icon>
  <logo>https://files.mastodon.social/accounts/avatars/114/633/944/987/767/035/original/2e86a8d32c447ae6.jpeg</logo>




  <entry>
    <id>https://nostr.ae/nevent1qqs0ahzqmpjrhg45yrrf92rfcu3evv25ytcceazwtd6xljm2nwpwrlqzyzy4rv8ldfkjqnj2u04dfqmfr30hv9c6nqgh8lcqdathgdaw2ycnzgkhnqg</id>
    
      <title type="html">RE: https://mastodon.online/@mullvadnet/116957571811403553 ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs0ahzqmpjrhg45yrrf92rfcu3evv25ytcceazwtd6xljm2nwpwrlqzyzy4rv8ldfkjqnj2u04dfqmfr30hv9c6nqgh8lcqdathgdaw2ycnzgkhnqg" />
    <content type="html">
      RE: &lt;a href=&#34;https://mastodon.online/@mullvadnet/116957571811403553&#34;&gt;https://mastodon.online/@mullvadnet/116957571811403553&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Unfortunately the blog post is the usual &amp;#34;it&amp;#39;s the individual, not the company&amp;#34; line without acknowledging that people are upset because the company sends money to said individual. People don&amp;#39;t want to be indirectly funding these politics and unless you say that person is no longer directly getting money from the company which facilitates that money, I don&amp;#39;t want to give you my money.&lt;blockquote class=&#34;border-l-05rem border-l-strongpink border-solid&#34;&gt;&lt;div class=&#34;-ml-4 bg-gradient-to-r from-gray-100 dark:from-zinc-800 to-transparent mr-0 mt-0 mb-4 pl-4 pr-2 py-2&#34;&gt;quoting &lt;br/&gt;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Article&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/note1y7nfg4spl9fcsp454kq0u5df60yjv7ejf37ea3nnjx6y8z6xg6cq4vf8we&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;note1y7n…f8we&lt;/a&gt;&lt;/span&gt;&lt;br/&gt; &lt;/div&gt; We would like to address the recent controversy about one of the owners of Mullvad making a donation to a Swedish political party.&lt;br/&gt;&lt;a href=&#34;https://mullvad.net/blog/donation-controversy&#34;&gt;https://mullvad.net/blog/donation-controversy&lt;/a&gt; &lt;/blockquote&gt;
    </content>
    <updated>2026-07-22T21:40:50&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsfdjtmv4jvhvljkhs69afptu5tzw86gu05xgla0ujf445dc6fu47czyzy4rv8ldfkjqnj2u04dfqmfr30hv9c6nqgh8lcqdathgdaw2ycnzs6se6u</id>
    
      <title type="html">Wasmtime now has GC and exception handling support! ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsfdjtmv4jvhvljkhs69afptu5tzw86gu05xgla0ujf445dc6fu47czyzy4rv8ldfkjqnj2u04dfqmfr30hv9c6nqgh8lcqdathgdaw2ycnzs6se6u" />
    <content type="html">
      Wasmtime now has GC and exception handling support!&lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://bytecodealliance.org/articles/wasmtime-gc&#34;&gt;https://bytecodealliance.org/articles/wasmtime-gc&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;The GC support is useful for having **much** smaller Wasm files when you compile straight to Wasm (i.e. my WASI builds won&amp;#39;t use it).&lt;br/&gt;&lt;br/&gt;The exception handling support should help with long jumps in C code. For Python that would be useful for porting MicroPython to WASI.
    </content>
    <updated>2026-07-21T01:59:38&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqswqwwfyn00yl0t3nzq7hhx9vzr5mxchhqwuyf8g9tu9dn6muz7h4qzyzy4rv8ldfkjqnj2u04dfqmfr30hv9c6nqgh8lcqdathgdaw2ycnzeqdekn</id>
    
      <title type="html">I want sticker books for all the stickers I get at a conference, ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqswqwwfyn00yl0t3nzq7hhx9vzr5mxchhqwuyf8g9tu9dn6muz7h4qzyzy4rv8ldfkjqnj2u04dfqmfr30hv9c6nqgh8lcqdathgdaw2ycnzeqdekn" />
    <content type="html">
      I want sticker books for all the stickers I get at a conference, like a sticker-based remembrance book of my conference travels.
    </content>
    <updated>2026-07-17T00:00:17&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsyde4y5jq3qfvhcdtk87g3cq9nc8cep3ysdrag23ge5yrt08dptrqzyzy4rv8ldfkjqnj2u04dfqmfr30hv9c6nqgh8lcqdathgdaw2ycnzv0tqka</id>
    
      <title type="html">I **finally** got a PoC for a #WASI distribution for #CPython! ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsyde4y5jq3qfvhcdtk87g3cq9nc8cep3ysdrag23ge5yrt08dptrqzyzy4rv8ldfkjqnj2u04dfqmfr30hv9c6nqgh8lcqdathgdaw2ycnzv0tqka" />
    <content type="html">
      I **finally** got a PoC for a #WASI distribution for #CPython! Looking for feedback at &lt;a href=&#34;https://discuss.python.org/t/108168&#34;&gt;https://discuss.python.org/t/108168&lt;/a&gt; .
    </content>
    <updated>2026-07-16T01:23:51&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsz7qdm6g6fmfsum0844z22k646tvn7sv59drw8utc5ed2tmexyykczyzy4rv8ldfkjqnj2u04dfqmfr30hv9c6nqgh8lcqdathgdaw2ycnzfa0xcf</id>
    
      <title type="html">If you use GitHub Actions to publish to PyPI, I wrote a blog post ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsz7qdm6g6fmfsum0844z22k646tvn7sv59drw8utc5ed2tmexyykczyzy4rv8ldfkjqnj2u04dfqmfr30hv9c6nqgh8lcqdathgdaw2ycnzfa0xcf" />
    <content type="html">
      If you use GitHub Actions to publish to PyPI, I wrote a blog post outlining what I consider the key things you can do to secure your publishing workflow.&lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://snarky.ca/how-to-publish-to-pypi-using-github-actions-securely/&#34;&gt;https://snarky.ca/how-to-publish-to-pypi-using-github-actions-securely/&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;If you don&amp;#39;t use GitHub Actions for publishing, this post will NOT be of interest to you.
    </content>
    <updated>2026-07-07T22:47:44&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsp6c2rp7c689zff3fysw5hmm3hetamqdh38wdmehcrd4u7mfejh5gzyzy4rv8ldfkjqnj2u04dfqmfr30hv9c6nqgh8lcqdathgdaw2ycnzfcdvd4</id>
    
      <title type="html">Another example where a bit of funding to fix some tech that ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsp6c2rp7c689zff3fysw5hmm3hetamqdh38wdmehcrd4u7mfejh5gzyzy4rv8ldfkjqnj2u04dfqmfr30hv9c6nqgh8lcqdathgdaw2ycnzfcdvd4" />
    <content type="html">
      Another example where a bit of funding to fix some tech that would benefit a lot of people in this world, but no one does it because it seemingly wouldn&amp;#39;t turn a profit.&lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://lr0.org/blog/p/arabic/&#34;&gt;https://lr0.org/blog/p/arabic/&lt;/a&gt;
    </content>
    <updated>2026-06-27T07:14:29&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsdy6j62t05w439dguxw3jsv4hydqa7js3y5u3f4h66a295jw27ypgzyzy4rv8ldfkjqnj2u04dfqmfr30hv9c6nqgh8lcqdathgdaw2ycnzdgrcgs</id>
    
      <title type="html">https://pyrefly.org/blog/too-many-type-checkers/ makes the ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsdy6j62t05w439dguxw3jsv4hydqa7js3y5u3f4h66a295jw27ypgzyzy4rv8ldfkjqnj2u04dfqmfr30hv9c6nqgh8lcqdathgdaw2ycnzdgrcgs" />
    <content type="html">
      &lt;a href=&#34;https://pyrefly.org/blog/too-many-type-checkers/&#34;&gt;https://pyrefly.org/blog/too-many-type-checkers/&lt;/a&gt; makes the reasonable case that you should type check your tests with as many type checkers as possible while sticking to one for your actual code. That way you minimize those &amp;#34;&amp;lt;type checker&amp;gt; didn&amp;#39;t like your API&amp;#34; issues.
    </content>
    <updated>2026-06-08T22:23:03&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqspz3m0z6nhxvqd66rtc7sfdyetsjc68z9j4xp8njpnygrxe897cwgzyzy4rv8ldfkjqnj2u04dfqmfr30hv9c6nqgh8lcqdathgdaw2ycnz6tayw6</id>
    
      <title type="html">That feeling when you&amp;#39;re well into your 5th month of debating ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqspz3m0z6nhxvqd66rtc7sfdyetsjc68z9j4xp8njpnygrxe897cwgzyzy4rv8ldfkjqnj2u04dfqmfr30hv9c6nqgh8lcqdathgdaw2ycnz6tayw6" />
    <content type="html">
      That feeling when you&amp;#39;re well into your 5th month of debating how to manage virtual environments.&lt;br/&gt;&lt;br/&gt;You would think it&amp;#39;s a simple thing, but that&amp;#39;s probably why everyone has an opinion about it and some of those opinions are &amp;#34;get off my lawn&amp;#34; strong.
    </content>
    <updated>2026-05-26T01:35:25&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs8z90y3wjg9mvzuyssv00av44wk8lzhc6wezteaxsecwry9xu7rdgzyzy4rv8ldfkjqnj2u04dfqmfr30hv9c6nqgh8lcqdathgdaw2ycnzjn4e60</id>
    
      <title type="html">RE: https://infosec.exchange/@mttaggart/116533391495608629 This ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs8z90y3wjg9mvzuyssv00av44wk8lzhc6wezteaxsecwry9xu7rdgzyzy4rv8ldfkjqnj2u04dfqmfr30hv9c6nqgh8lcqdathgdaw2ycnzjn4e60" />
    <content type="html">
      RE: &lt;a href=&#34;https://infosec.exchange/@mttaggart/116533391495608629&#34;&gt;https://infosec.exchange/@mttaggart/116533391495608629&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;This coupled with &lt;a href=&#34;https://www.selc.org/news/xai-built-an-illegal-power-plant-to-power-its-data-center/&#34;&gt;https://www.selc.org/news/xai-built-an-illegal-power-plant-to-power-its-data-center/&lt;/a&gt; makes it extra bad for the environment based on how xAI had unpermitted gas turbines at Colossus 1 initially.&lt;br/&gt;nostr:note12603vhxywprwvvrknn0h8zr9tz3pr0rv844pkyjeuvrcu6d50vysj4k8qh&lt;br/&gt;
    </content>
    <updated>2026-05-07T22:21:27&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsx3nl98l3n52ayw99k6nxs5yu6uzdnh8k07aav6759eylsjek7dtqzyzy4rv8ldfkjqnj2u04dfqmfr30hv9c6nqgh8lcqdathgdaw2ycnzfyh5vh</id>
    
      <title type="html">RE: https://mastodon.social/@sethmlarson/116477240088086817 Note ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsx3nl98l3n52ayw99k6nxs5yu6uzdnh8k07aav6759eylsjek7dtqzyzy4rv8ldfkjqnj2u04dfqmfr30hv9c6nqgh8lcqdathgdaw2ycnzfyh5vh" />
    <content type="html">
      RE: &lt;a href=&#34;https://mastodon.social/@sethmlarson/116477240088086817&#34;&gt;https://mastodon.social/@sethmlarson/116477240088086817&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Note the &amp;#34;install from pylock.toml&amp;#34;! It&amp;#39;s experimental, but having PEP 751 reaching this point is big!&lt;blockquote class=&#34;border-l-05rem border-l-strongpink border-solid&#34;&gt;&lt;div class=&#34;-ml-4 bg-gradient-to-r from-gray-100 dark:from-zinc-800 to-transparent mr-0 mt-0 mb-4 pl-4 pr-2 py-2&#34;&gt;quoting &lt;br/&gt;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Article&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/note1rtqm6jf0se47l2pzmplyyz2hy4atl9u4258m73vd4l03l4z2076qjtz3cv&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;note1rtq…z3cv&lt;/a&gt;&lt;/span&gt;&lt;br/&gt; &lt;/div&gt; pip 26.1 is an incredible release, thank you to the pip maintainers!! 💜&lt;br/&gt;&lt;br/&gt;– Relative dependency cooldown support!&lt;br/&gt;– Installing from pylock.toml&lt;br/&gt;– Multiple security fixes&lt;br/&gt;&lt;br/&gt;Read the full blog post by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/npub185e0rsqgdquuefdupyg2e4f4vc880l9cv88pagswreqm0uwscqpq6zqezv&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;Richard Si 🌺&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;npub185e…qezv&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://ichard26.github.io/blog/2026/04/whats-new-in-pip-26.1/&#34;&gt;https://ichard26.github.io/blog/2026/04/whats-new-in-pip-26.1/&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;#python #pypi #pip #security #oss #opensource &lt;/blockquote&gt;
    </content>
    <updated>2026-04-28T01:07:30&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsflfpj5uha9mhuvsgxeh84fpa0z6f0wqpuf4t59e9awy45vl8lmuszyzy4rv8ldfkjqnj2u04dfqmfr30hv9c6nqgh8lcqdathgdaw2ycnz9tsnz7</id>
    
      <title type="html">trusted != uptime; it just means PyPI expects that security is at ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsflfpj5uha9mhuvsgxeh84fpa0z6f0wqpuf4t59e9awy45vl8lmuszyzy4rv8ldfkjqnj2u04dfqmfr30hv9c6nqgh8lcqdathgdaw2ycnz9tsnz7" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsphpdxvkn7dpnrn5xd0u4efyp7dvrnf4afzu0mswcjsn7ytk79xtc400zzu&#39;&gt;nevent1q…0zzu&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;trusted != uptime; it just means PyPI expects that security is at a certain level around identity
    </content>
    <updated>2026-03-28T20:36:48&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsfq8gt8e0fe7m75ww0uf8gzurcyca9juv5qsdar63pzeuppy3kv6qzyzy4rv8ldfkjqnj2u04dfqmfr30hv9c6nqgh8lcqdathgdaw2ycnz2nuzm3</id>
    
      <title type="html">First, I work at MS; I don&amp;#39;t expect you to necessarily agree ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsfq8gt8e0fe7m75ww0uf8gzurcyca9juv5qsdar63pzeuppy3kv6qzyzy4rv8ldfkjqnj2u04dfqmfr30hv9c6nqgh8lcqdathgdaw2ycnz2nuzm3" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsr5zutrys5ld7td0f5ntexdrt4y3hgmeh9cqkpeuufzuz33aektgc7h6vp3&#39;&gt;nevent1q…6vp3&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;First, I work at MS; I don&amp;#39;t expect you to necessarily agree  with the trajectory of the company but it did pay for that blog post, so please keep the insults civil.&lt;br/&gt;&lt;br/&gt;Two, you can work with whomever you have hosting your code to become trusted enough to use trusted publishing. Or you can work to make a system where trusted publishing isn&amp;#39;t a prerequisite.
    </content>
    <updated>2026-03-28T03:38:20&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsz2kh6z39k3e5ygkt85vc0zaw9tdc97wn27ktdd0f8smp9ppkylwczyzy4rv8ldfkjqnj2u04dfqmfr30hv9c6nqgh8lcqdathgdaw2ycnz85kdvw</id>
    
      <title type="html">RE: https://fosstodon.org/@jni/116287554201659198 I said digital ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsz2kh6z39k3e5ygkt85vc0zaw9tdc97wn27ktdd0f8smp9ppkylwczyzy4rv8ldfkjqnj2u04dfqmfr30hv9c6nqgh8lcqdathgdaw2ycnz85kdvw" />
    <content type="html">
      RE: &lt;a href=&#34;https://fosstodon.org/@jni/116287554201659198&#34;&gt;https://fosstodon.org/@jni/116287554201659198&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;I said digital attestations and `pylock.toml` would have helped with the litellm attack. People asked for more details, so I wrote a blog post explaining why. It also hopefully acts at motivation for people to use:&lt;br/&gt;&lt;br/&gt;- Trusted publishing&lt;br/&gt;- Digital attestations&lt;br/&gt;- Lock files, and `pylock.toml` specifically&lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://snarky.ca/why-pylock-toml-includes-digital-attestations/&#34;&gt;https://snarky.ca/why-pylock-toml-includes-digital-attestations/&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;So yes, &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/npub1ks8zvrz2qd8cz8uh8r72mvcax076jnuxykrlcrayz69twh668uys5t5wm6&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;Juan Nunez-Iglesias&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;npub1ks8…5wm6&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; , I have a &amp;#34;human-readable intro&amp;#34; because I wrote one for you (and the other folks asking me questions on the subject). 😁&lt;blockquote class=&#34;border-l-05rem border-l-strongpink border-solid&#34;&gt;&lt;div class=&#34;-ml-4 bg-gradient-to-r from-gray-100 dark:from-zinc-800 to-transparent mr-0 mt-0 mb-4 pl-4 pr-2 py-2&#34;&gt;quoting &lt;br/&gt;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Article&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/note1f7fghupr05203y2wx0q9fz370r0peqru2kld2qrd0txv440hadks9eh4dr&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;note1f7f…h4dr&lt;/a&gt;&lt;/span&gt;&lt;br/&gt; &lt;/div&gt; do you have a human- (read: noob-) readable intro to these concepts? I don’t think we use pylock in any of the projects I lead. 😬 &lt;/blockquote&gt;
    </content>
    <updated>2026-03-26T05:05:46&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsfp2y5jsft3dnn2y9afsqq5arlgfr5v6n2fwrpenrfmupn736nqjqzyzy4rv8ldfkjqnj2u04dfqmfr30hv9c6nqgh8lcqdathgdaw2ycnzveckja</id>
    
      <title type="html">RE: https://infosec.exchange/@dangoodin/116285175398594132 Notice ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsfp2y5jsft3dnn2y9afsqq5arlgfr5v6n2fwrpenrfmupn736nqjqzyzy4rv8ldfkjqnj2u04dfqmfr30hv9c6nqgh8lcqdathgdaw2ycnzveckja" />
    <content type="html">
      RE: &lt;a href=&#34;https://infosec.exchange/@dangoodin/116285175398594132&#34;&gt;https://infosec.exchange/@dangoodin/116285175398594132&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Notice how the compromised releases were directly uploaded. This is why `pylock.toml` includes attestation data and trusted publishing is important. If the project used trusted publishing then their the lack of attestation data could have been noticed in a diff of the lock file as it would have suddenly disappeared (which is also why `pylock.toml` was designed to be human-readable).&lt;blockquote class=&#34;border-l-05rem border-l-strongpink border-solid&#34;&gt;&lt;div class=&#34;-ml-4 bg-gradient-to-r from-gray-100 dark:from-zinc-800 to-transparent mr-0 mt-0 mb-4 pl-4 pr-2 py-2&#34;&gt;quoting &lt;br/&gt;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Article&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/note19jlxddccjltlghtk978epls33cn8cd20vads94rs0q88jnhgf0kqr7gtsu&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;note19jl…gtsu&lt;/a&gt;&lt;/span&gt;&lt;br/&gt; &lt;/div&gt; Wow, TeamPCP is hacking open-source developers faster than we can report on them. The latest (that I&#39;m aware of, anyway) is LiteLLM. They worked with Trivy but didn&#39;t bother to change their credentials after Trivy was hacked, despite an ample amount of advice to do so.&lt;br/&gt;&lt;br/&gt;Folks, if any of you used LiteLLM, now is the time to change your credentials, at an atomic level. Now, as in immediately.&lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://news.ycombinator.com/item?id=47501729&#34;&gt;https://news.ycombinator.com/item?id=47501729&lt;/a&gt; &lt;/blockquote&gt;
    </content>
    <updated>2026-03-24T18:27:23&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs8su7yjesu0xag4780lj23hvalmhh9gx93t7e4f9l9zdx7r532djgzyzy4rv8ldfkjqnj2u04dfqmfr30hv9c6nqgh8lcqdathgdaw2ycnzhjpx0z</id>
    
      <title>Nostr event nevent1qqs8su7yjesu0xag4780lj23hvalmhh9gx93t7e4f9l9zdx7r532djgzyzy4rv8ldfkjqnj2u04dfqmfr30hv9c6nqgh8lcqdathgdaw2ycnzhjpx0z</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs8su7yjesu0xag4780lj23hvalmhh9gx93t7e4f9l9zdx7r532djgzyzy4rv8ldfkjqnj2u04dfqmfr30hv9c6nqgh8lcqdathgdaw2ycnzhjpx0z" />
    <content type="html">
      &lt;a href=&#34;https://www.ourcommons.ca/petitions/en/Petition/Details?Petition=e-7115&#34;&gt;https://www.ourcommons.ca/petitions/en/Petition/Details?Petition=e-7115&lt;/a&gt; is a petition for the Canadian government to set up secure coding guidelines.
    </content>
    <updated>2026-01-28T21:57:07&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqszpgjk58pq4rtt433wr9vtssjpy6rqk72fl4w5y4zdptea82xkanszyzy4rv8ldfkjqnj2u04dfqmfr30hv9c6nqgh8lcqdathgdaw2ycnz0mn8qr</id>
    
      <title type="html">Something I noticed lately is people having at least separate ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqszpgjk58pq4rtt433wr9vtssjpy6rqk72fl4w5y4zdptea82xkanszyzy4rv8ldfkjqnj2u04dfqmfr30hv9c6nqgh8lcqdathgdaw2ycnz0mn8qr" />
    <content type="html">
      Something I noticed lately is people having at least separate sections on their website if not a separate site entirely to split blog posts/articles from short thoughts/social media posts. Do people like that for the separate RSS feeds so you can ignore the short stuff? Hate it because now it&amp;#39;s 2 feeds to follow if you wants everything from someone? Don&amp;#39;t care since it all just funnels into a single place here and you don&amp;#39;t use RSS feeds?
    </content>
    <updated>2026-01-25T22:20:42&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqstjwpyxd7kys07j4auked0mqh65ysyqc57eg47xzslx7mympxwh2qzyzy4rv8ldfkjqnj2u04dfqmfr30hv9c6nqgh8lcqdathgdaw2ycnz9jaqux</id>
    
      <title type="html">My bet is that safety-critical code will be the last place to ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqstjwpyxd7kys07j4auked0mqh65ysyqc57eg47xzslx7mympxwh2qzyzy4rv8ldfkjqnj2u04dfqmfr30hv9c6nqgh8lcqdathgdaw2ycnz9jaqux" />
    <content type="html">
      My bet is that safety-critical code will be the last place to pick up AI due to auditing needs.
    </content>
    <updated>2026-01-21T23:51:35&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsg8qk6tykg49a905eqztzf7d8g4etrqemgalxg9cklqhgn8qqp0eszyzy4rv8ldfkjqnj2u04dfqmfr30hv9c6nqgh8lcqdathgdaw2ycnze5qah4</id>
    
      <title type="html">I got an external drive for backing up my home directory on my ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsg8qk6tykg49a905eqztzf7d8g4etrqemgalxg9cklqhgn8qqp0eszyzy4rv8ldfkjqnj2u04dfqmfr30hv9c6nqgh8lcqdathgdaw2ycnze5qah4" />
    <content type="html">
      I got an external drive for backing up my home directory on my Linux machine. I want to do rolling updates in case I want to go back for a file I deleted or edited, space permitting. Is rsync still the best option for this sort of thing?
    </content>
    <updated>2026-01-09T01:15:17&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs0l53nvrsx556tpx34cggpkhrphswjqfv3dpygvzzunch22gm0f8qzyzy4rv8ldfkjqnj2u04dfqmfr30hv9c6nqgh8lcqdathgdaw2ycnz5kj50e</id>
    
      <title type="html">https://doesjitgobrrr.com/ now has a goal line for the Python JIT ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs0l53nvrsx556tpx34cggpkhrphswjqfv3dpygvzzunch22gm0f8qzyzy4rv8ldfkjqnj2u04dfqmfr30hv9c6nqgh8lcqdathgdaw2ycnz5kj50e" />
    <content type="html">
      &lt;a href=&#34;https://doesjitgobrrr.com/&#34;&gt;https://doesjitgobrrr.com/&lt;/a&gt; now has a goal line for the Python JIT in 3.15 (at well as 3.16 and a custom line as well), and Arm support crossed the goal for the first time!
    </content>
    <updated>2025-12-18T20:33:34&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqspyusmc9n7xzkpy96657nagjgcf0rrgseeyrkxuu57gnm4zarl4uqzyzy4rv8ldfkjqnj2u04dfqmfr30hv9c6nqgh8lcqdathgdaw2ycnz8dc82c</id>
    
      <title type="html">Is that image available as a wallpaper?</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqspyusmc9n7xzkpy96657nagjgcf0rrgseeyrkxuu57gnm4zarl4uqzyzy4rv8ldfkjqnj2u04dfqmfr30hv9c6nqgh8lcqdathgdaw2ycnz8dc82c" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqszc52su2cwmgaxvfelrs6tu5pw36twjaw4zd3238vcm45xsy2l44q0gf60z&#39;&gt;nevent1q…f60z&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Is that image available as a wallpaper?
    </content>
    <updated>2025-11-14T21:35:19&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqszdpwsh4xzsgz8f93zprhdssxwp2kqr64uy3tml0lq2qfsm35gsjczyzy4rv8ldfkjqnj2u04dfqmfr30hv9c6nqgh8lcqdathgdaw2ycnz9768f4</id>
    
      <title type="html">In case you prefer text over video, the blog post version of my ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqszdpwsh4xzsgz8f93zprhdssxwp2kqr64uy3tml0lq2qfsm35gsjczyzy4rv8ldfkjqnj2u04dfqmfr30hv9c6nqgh8lcqdathgdaw2ycnz9768f4" />
    <content type="html">
      In case you prefer text over video, the blog post version of my EuroPython keynote about why it took 4 years to get a lock files specification is now up at &lt;a href=&#34;https://snarky.ca/why-it-took-4-years-to-get-a-lock-files-specification/&#34;&gt;https://snarky.ca/why-it-took-4-years-to-get-a-lock-files-specification/&lt;/a&gt; .
    </content>
    <updated>2025-10-11T05:48:10&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsdn78hqhk67e6g7nqyx5dqmn63uf6v5am4cffhlp9eqc2wtuv2ucqzyzy4rv8ldfkjqnj2u04dfqmfr30hv9c6nqgh8lcqdathgdaw2ycnztt0k95</id>
    
      <title type="html">If you work for a remote-friendly company and have wanted to hire ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsdn78hqhk67e6g7nqyx5dqmn63uf6v5am4cffhlp9eqc2wtuv2ucqzyzy4rv8ldfkjqnj2u04dfqmfr30hv9c6nqgh8lcqdathgdaw2ycnztt0k95" />
    <content type="html">
      If you work for a remote-friendly company and have wanted to hire US-based Microsoft employees, now is a good time to try (other countries will probably come up next year).&lt;br/&gt; &lt;a href=&#34;https://blogs.microsoft.com/blog/2025/09/09/flexible-work-update/&#34;&gt;https://blogs.microsoft.com/blog/2025/09/09/flexible-work-update/&lt;/a&gt;
    </content>
    <updated>2025-09-10T05:18:09&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqszcnexgcjku5unpylqzq5m4d0wlyzzuv2sx54lwjvwkrjl569xs5czyzy4rv8ldfkjqnj2u04dfqmfr30hv9c6nqgh8lcqdathgdaw2ycnzxuw380</id>
    
      <title type="html">PEP 794 (Import Name Metadata) has been accepted! ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqszcnexgcjku5unpylqzq5m4d0wlyzzuv2sx54lwjvwkrjl569xs5czyzy4rv8ldfkjqnj2u04dfqmfr30hv9c6nqgh8lcqdathgdaw2ycnzxuw380" />
    <content type="html">
      PEP 794 (Import Name Metadata) has been accepted!&lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://peps.python.org/pep-0794/&#34;&gt;https://peps.python.org/pep-0794/&lt;/a&gt;&lt;br/&gt;&lt;a href=&#34;https://discuss.python.org/t/pep-794-import-name-metadata/94567/85&#34;&gt;https://discuss.python.org/t/pep-794-import-name-metadata/94567/85&lt;/a&gt;
    </content>
    <updated>2025-09-05T21:33:17&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsz3ja2mcc0dyd23npjzgtxh07x36qa467stxncy354g6j6lseajagzyzy4rv8ldfkjqnj2u04dfqmfr30hv9c6nqgh8lcqdathgdaw2ycnz0cuu46</id>
    
      <title type="html">The Python documentary premieres tomorrow @ 10:00 PT / 19:00 CET! ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsz3ja2mcc0dyd23npjzgtxh07x36qa467stxncy354g6j6lseajagzyzy4rv8ldfkjqnj2u04dfqmfr30hv9c6nqgh8lcqdathgdaw2ycnz0cuu46" />
    <content type="html">
      The Python documentary premieres tomorrow @ 10:00 PT / 19:00 CET!&lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://www.youtube.com/watch?v=GfH4QL4VqJ0&#34;&gt;https://www.youtube.com/watch?v=GfH4QL4VqJ0&lt;/a&gt;
    </content>
    <updated>2025-08-28T00:11:40&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqszm9ghayrk452a36nfdjjrjvmdwf8f28g9hjzyv9r8jff0ty8wk4qzyzy4rv8ldfkjqnj2u04dfqmfr30hv9c6nqgh8lcqdathgdaw2ycnzegwwek</id>
    
      <title type="html">The Python documentary by cult.repo is going to be debuting live ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqszm9ghayrk452a36nfdjjrjvmdwf8f28g9hjzyv9r8jff0ty8wk4qzyzy4rv8ldfkjqnj2u04dfqmfr30hv9c6nqgh8lcqdathgdaw2ycnzegwwek" />
    <content type="html">
      The Python documentary by cult.repo is going to be debuting live on YouTube on Thursday the 28th at 7pm CET/10am PT! &lt;a href=&#34;https://www.youtube.com/@cultrepo&#34;&gt;https://www.youtube.com/@cultrepo&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;I&amp;#39;ll share a link the day before to the doc that will have a countdown to the debut. I&amp;#39;m planning to be in the live chat during the debut.&lt;br/&gt;&lt;br/&gt;I saw a full length cut a month ago (which was great!), but I am purposefully holding off on watching the final cut with the rest of you so I get to have a little bit of a surprise 😁.
    </content>
    <updated>2025-08-26T19:14:35&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqswjwcle8zg3j7xczjw57e2anjk6seznqmt4867etku5hktuxavjggzyzy4rv8ldfkjqnj2u04dfqmfr30hv9c6nqgh8lcqdathgdaw2ycnz6qvtsl</id>
    
      <title type="html">Annual reminder for Canadian #Mullvad users that vouchers from ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqswjwcle8zg3j7xczjw57e2anjk6seznqmt4867etku5hktuxavjggzyzy4rv8ldfkjqnj2u04dfqmfr30hv9c6nqgh8lcqdathgdaw2ycnz6qvtsl" />
    <content type="html">
      Annual reminder for Canadian #Mullvad users that vouchers from Amazon are cheaper than buying from Mullvad directly and keep you anonymous to Mullvad.
    </content>
    <updated>2025-08-12T07:39:10&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsxe7zumsck52u4mq09fktwqmg7qhqxezteax3g83deyfrr6w2p0cczyzy4rv8ldfkjqnj2u04dfqmfr30hv9c6nqgh8lcqdathgdaw2ycnzrs4aup</id>
    
      <title type="html">PSA: do NOT create a virtual environment in the directory ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsxe7zumsck52u4mq09fktwqmg7qhqxezteax3g83deyfrr6w2p0cczyzy4rv8ldfkjqnj2u04dfqmfr30hv9c6nqgh8lcqdathgdaw2ycnzrs4aup" />
    <content type="html">
      PSA: do NOT create a virtual environment in the directory you&amp;#39;re keeping your code in (or the corollary: don&amp;#39;t create a virtual environment and put your code into it). You should NEVER do `python3 -m venv .`.&lt;br/&gt;&lt;br/&gt;Brought to you by people who did `python3.13 -m venv .` and discovered their `.gitignore` file got overwritten with venv&amp;#39;s `.gitignore` file or that suddenly all of their files were being ignored.&lt;br/&gt;&lt;br/&gt;And no, we are not removing the `.gitignore` file from venv.
    </content>
    <updated>2025-07-31T21:53:09&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs9re5vaen2mamq03veddjyp20gynpf92kzsyzqgqvhatcslchs7vgzyzy4rv8ldfkjqnj2u04dfqmfr30hv9c6nqgh8lcqdathgdaw2ycnzruzls4</id>
    
      <title type="html">A throwaway line I said while walking with @npub1qph…t7nc ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs9re5vaen2mamq03veddjyp20gynpf92kzsyzqgqvhatcslchs7vgzyzy4rv8ldfkjqnj2u04dfqmfr30hv9c6nqgh8lcqdathgdaw2ycnzruzls4" />
    <content type="html">
      A throwaway line I said while walking with &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/npub1qph824u05udzjsft922etvxtpd3m0pfzkyxtf7yvs8x5k9h7384sfzt7nc&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;Jürgen Gmach&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;npub1qph…t7nc&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/npub1zgmxv6u4uudnn5q8hjlphcy073patfm0u0cxzmh2ex6hlmzp8eqq4jdan3&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;Hynek Schlawack&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;npub1zgm…dan3&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/npub1xvuu4dsa9acew5d5ua5jpfgr40uefgyheua7c45f62jmguks36wqzsjmp8&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;Hugo van Kemenade&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;npub1xvu…jmp8&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; and Nicholas Tollervey to the EuroPython social event in reference to people relaxing about potential breakage in a release and just lean into bumping the version instead.&lt;br/&gt;&lt;br/&gt;Credit to Claude for helping me make the image.&lt;br/&gt; &lt;img src=&#34;https://files.mastodon.social/media_attachments/files/114/940/060/503/271/242/original/684484ea7b514daa.png&#34;&gt; &lt;br/&gt;
    </content>
    <updated>2025-07-30T05:30:30&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsvm9skc050as6uyxh5xdqd4j79xkru67lk5c2w7q648xcluvz5uwqzyzy4rv8ldfkjqnj2u04dfqmfr30hv9c6nqgh8lcqdathgdaw2ycnzt0k79f</id>
    
      <title type="html">Does anyone have a recommendation for a travel eSIM? It will ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsvm9skc050as6uyxh5xdqd4j79xkru67lk5c2w7q648xcluvz5uwqzyzy4rv8ldfkjqnj2u04dfqmfr30hv9c6nqgh8lcqdathgdaw2ycnzt0k79f" />
    <content type="html">
      Does anyone have a recommendation for a travel eSIM?&lt;br/&gt;&lt;br/&gt;It will primarily be for EU, UK, and US travel. I prefer better/easier UX over cheapest price. I won&amp;#39;t be tethering, so this is for data on my phone while I&amp;#39;m out and about. Bonus if there&amp;#39;s some way to have multiple eSIMs on one family account. And while this shouldn&amp;#39;t matter, I&amp;#39;m on Android.&lt;br/&gt;&lt;br/&gt;(And for anyone curious as to how outrageous Canadian telecoms are, US roaming is CAD$14/day, CAD$16/day everywhere else.)
    </content>
    <updated>2025-07-06T21:42:03&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsrt5er59vy6jcfw5g4jt6wl45n45j9003nu6j0mvgrqwckpxu9weszyzy4rv8ldfkjqnj2u04dfqmfr30hv9c6nqgh8lcqdathgdaw2ycnzpvem8p</id>
    
      <title>Nostr event nevent1qqsrt5er59vy6jcfw5g4jt6wl45n45j9003nu6j0mvgrqwckpxu9weszyzy4rv8ldfkjqnj2u04dfqmfr30hv9c6nqgh8lcqdathgdaw2ycnzpvem8p</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsrt5er59vy6jcfw5g4jt6wl45n45j9003nu6j0mvgrqwckpxu9weszyzy4rv8ldfkjqnj2u04dfqmfr30hv9c6nqgh8lcqdathgdaw2ycnzpvem8p" />
    <content type="html">
      &lt;a href=&#34;https://www.cbc.ca/news/world/trump-supreme-court-deportations-1.7568872&#34;&gt;https://www.cbc.ca/news/world/trump-supreme-court-deportations-1.7568872&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Does this mean that if I visit the US and they decide to kick me out via deportation (let&amp;#39;s say there&amp;#39;s a disagreement over whether I&amp;#39;m performing work or not while in the States), they could legally send me to South Sudan instead of Canada?
    </content>
    <updated>2025-06-24T21:54:35&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsxpln4cemtrr5vvcmypxucrmelyd8u4qky3ppqawcynj4pn0mxxvgzyzy4rv8ldfkjqnj2u04dfqmfr30hv9c6nqgh8lcqdathgdaw2ycnzcsh37g</id>
    
      <title type="html">For a PEP discussion, it&amp;#39;s been eerily quiet... I don&amp;#39;t ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsxpln4cemtrr5vvcmypxucrmelyd8u4qky3ppqawcynj4pn0mxxvgzyzy4rv8ldfkjqnj2u04dfqmfr30hv9c6nqgh8lcqdathgdaw2ycnzcsh37g" />
    <content type="html">
      For a PEP discussion, it&amp;#39;s been eerily quiet...&lt;br/&gt;&lt;br/&gt;I don&amp;#39;t want to be more specific since I don&amp;#39;t want people to find a reason to say something, but it is a good sign I covered everything in the latest version and people are generally happy with the outcome.
    </content>
    <updated>2025-06-17T22:39:48&#43;02:00</updated>
  </entry>

</feed>