<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <updated>2026-05-07T16:28:59Z</updated>
  <generator>https://yabu.me</generator>

  <title>Nostr notes by Peter Kröner</title>
  <author>
    <name>Peter Kröner</name>
  </author>
  <link rel="self" type="application/atom+xml" href="https://yabu.me/npub1ws5duzulm09pmp0prwns0z7sr49hzzsq7zs6szdqktv3l4flckmq8k78jx.rss" />
  <link href="https://yabu.me/npub1ws5duzulm09pmp0prwns0z7sr49hzzsq7zs6szdqktv3l4flckmq8k78jx" />
  <id>https://yabu.me/npub1ws5duzulm09pmp0prwns0z7sr49hzzsq7zs6szdqktv3l4flckmq8k78jx</id>
  <icon>https://files.mastodon.social/accounts/avatars/000/108/306/original/67b40810ca7ef046.png</icon>
  <logo>https://files.mastodon.social/accounts/avatars/000/108/306/original/67b40810ca7ef046.png</logo>




  <entry>
    <id>https://yabu.me/nevent1qqsrhmqk8cwzs6gfzw6yqe2duau7v9pwhdprmedacryjycvc9pq4xxgzyp6z3hstnldu58v9uyd6wput6qw5kug2qrc2r2qf5zedj8748lzmvpv0wf6</id>
    
      <title type="html">Watching AI bros gripe about price hikes ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsrhmqk8cwzs6gfzw6yqe2duau7v9pwhdprmedacryjycvc9pq4xxgzyp6z3hstnldu58v9uyd6wput6qw5kug2qrc2r2qf5zedj8748lzmvpv0wf6" />
    <content type="html">
      Watching AI bros gripe about price hikes&lt;br/&gt; &lt;img src=&#34;https://files.mastodon.social/media_attachments/files/116/484/278/461/962/268/original/f27362d830485567.jpg&#34;&gt; &lt;br/&gt;
    </content>
    <updated>2026-04-28T20:45:38Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsxcs88e9ekz5hwy50zzgrfght3rejue0hsd3hjeqkwr2amyjfql7gzyp6z3hstnldu58v9uyd6wput6qw5kug2qrc2r2qf5zedj8748lzmveg3ns7</id>
    
      <title type="html">🚩✊ Friday is Dependency Deletion Day! Today on the chopping ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsxcs88e9ekz5hwy50zzgrfght3rejue0hsd3hjeqkwr2amyjfql7gzyp6z3hstnldu58v9uyd6wput6qw5kug2qrc2r2qf5zedj8748lzmveg3ns7" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs9y4seues4hc3f57a0v6383q580gxtpnha4jzy4ak8ytcqtfj6nfgrf7y65&#39;&gt;nevent1q…7y65&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;🚩✊ Friday is Dependency Deletion Day! Today on the chopping block: whatever library you use to encode and decode Base64. Nowadays Uint8Array has built-in toBase64() and fromBase64() methods that support all the flavors you can think of: with or without padding, with or without URL safety… no more need for that crusty old dependency! Free your node_modules, use native Base64 APIs!&lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array/toBase64&#34;&gt;https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array/toBase64&lt;/a&gt;&lt;br/&gt;&lt;video controls width=&#34;100%&#34; class=&#34;max-h-[90vh] bg-neutral-300 dark:bg-zinc-700&#34;&gt;&lt;source src=&#34;https://files.mastodon.social/media_attachments/files/115/943/703/190/988/424/original/3c38f4d43aff0863.mp4&#34;&gt;&lt;/video&gt;&lt;br/&gt;
    </content>
    <updated>2026-01-23T09:30:12Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqswzyv2fr00dg35dzjzfuun5tm67gx5n8r5n8qrjyfjrmw2jfhv5ugzyp6z3hstnldu58v9uyd6wput6qw5kug2qrc2r2qf5zedj8748lzmva2625w</id>
    
      <title type="html">🙋 Ladies, gents, and dear non-binary pals: I could really use ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqswzyv2fr00dg35dzjzfuun5tm67gx5n8r5n8qrjyfjrmw2jfhv5ugzyp6z3hstnldu58v9uyd6wput6qw5kug2qrc2r2qf5zedj8748lzmva2625w" />
    <content type="html">
      🙋 Ladies, gents, and dear non-binary pals: I could really use some work. Here&amp;#39;s what I do best:&lt;br/&gt;&lt;br/&gt;- Workshops: entertaining deep dives into JS, TS, web components, frontend performance, general vanilla webdev&lt;br/&gt;- Development: performance-oriented vanilla frontends &amp;amp; refactoring of impenetrable legacy dumpster fires (esp. React, CSS)&lt;br/&gt;- DevRel: yapping &amp;amp; writing about anything related to web frontends&lt;br/&gt;- General coaching &amp;amp; code review for frontend technologies&lt;br/&gt;&lt;br/&gt;Get in touch at peter@peterkroener.de!
    </content>
    <updated>2026-01-22T14:00:40Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqszhr9djz7msztqy2v7tzywwdy232zt3q9rlcxj7l7af65rja0m8cqzyp6z3hstnldu58v9uyd6wput6qw5kug2qrc2r2qf5zedj8748lzmv0grxs3</id>
    
      <title type="html">The Incredible Overcomplexity of the Shadcn Radio Button 👉 ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqszhr9djz7msztqy2v7tzywwdy232zt3q9rlcxj7l7af65rja0m8cqzyp6z3hstnldu58v9uyd6wput6qw5kug2qrc2r2qf5zedj8748lzmv0grxs3" />
    <content type="html">
      The Incredible Overcomplexity of the Shadcn Radio Button&lt;br/&gt;&lt;br/&gt;👉 &lt;a href=&#34;https://paulmakeswebsites.com/writing/shadcn-radio-button/&#34;&gt;https://paulmakeswebsites.com/writing/shadcn-radio-button/&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;#react #webdev
    </content>
    <updated>2026-01-19T19:28:28Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqs9y4seues4hc3f57a0v6383q580gxtpnha4jzy4ak8ytcqtfj6nfgzyp6z3hstnldu58v9uyd6wput6qw5kug2qrc2r2qf5zedj8748lzmvw5xgyw</id>
    
      <title type="html">🚩✊ Friday is Dependency Deletion Day! Today on the chopping ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqs9y4seues4hc3f57a0v6383q580gxtpnha4jzy4ak8ytcqtfj6nfgzyp6z3hstnldu58v9uyd6wput6qw5kug2qrc2r2qf5zedj8748lzmvw5xgyw" />
    <content type="html">
      🚩✊ Friday is Dependency Deletion Day! Today on the chopping block: rimraf (103,000,000 downloads/week). Unless your Node.js version is from the Cretaceous, rimraf delegates to fs.rm under the hood anyway, so you might as well just skip the middleman. Free your node_modules, use fs.rm!&lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://nodejs.org/docs/latest/api/fs.html#fspromisesrmpath-options&#34;&gt;https://nodejs.org/docs/latest/api/fs.html#fspromisesrmpath-options&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;#javascript #webdev&lt;br/&gt;&lt;video controls width=&#34;100%&#34; class=&#34;max-h-[90vh] bg-neutral-300 dark:bg-zinc-700&#34;&gt;&lt;source src=&#34;https://files.mastodon.social/media_attachments/files/115/904/020/133/729/894/original/eaff0f062b5ee047.mp4&#34;&gt;&lt;/video&gt;&lt;br/&gt;
    </content>
    <updated>2026-01-16T09:17:37Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsgcscs646hg5e5xatdllk8kyf0qxz3g7x3e3mjwt9dff3hzc9cp3qzyp6z3hstnldu58v9uyd6wput6qw5kug2qrc2r2qf5zedj8748lzmvjvqm35</id>
    
      <title type="html">#Fullstack #TypeScript developers vs. #vanilla #webdev ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsgcscs646hg5e5xatdllk8kyf0qxz3g7x3e3mjwt9dff3hzc9cp3qzyp6z3hstnldu58v9uyd6wput6qw5kug2qrc2r2qf5zedj8748lzmvjvqm35" />
    <content type="html">
      #Fullstack #TypeScript developers vs. #vanilla #webdev ¯\_(ツ)_/¯&lt;br/&gt; &lt;img src=&#34;https://files.mastodon.social/media_attachments/files/115/497/548/570/106/174/original/c5788a1265b5577a.png&#34;&gt; &lt;br/&gt;
    </content>
    <updated>2025-11-05T14:28:52Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsv3p45u8u7p8nf6l7jc6eld9g3jzwa8dz8vagch2rc4wc9plvr88czyp6z3hstnldu58v9uyd6wput6qw5kug2qrc2r2qf5zedj8748lzmv432cqf</id>
    
      <title type="html">arbitrary-precision integers have been a thing since ES2020: ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsv3p45u8u7p8nf6l7jc6eld9g3jzwa8dz8vagch2rc4wc9plvr88czyp6z3hstnldu58v9uyd6wput6qw5kug2qrc2r2qf5zedj8748lzmv432cqf" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsw0q86rpc2jg0f0rjc3jd0d70nwv94zltkx3s846sa0h4rpqnhvscg90ml7&#39;&gt;nevent1q…0ml7&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;arbitrary-precision integers have been a thing since ES2020: &lt;a href=&#34;https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/BigInt&#34;&gt;https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/BigInt&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;If you need 64 bits specifically, you can probably get somewhere with BigInt64Array or BigUint64Array&lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/BigInt64Array&#34;&gt;https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/BigInt64Array&lt;/a&gt;&lt;br/&gt;&lt;a href=&#34;https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/BigUint64Array&#34;&gt;https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/BigUint64Array&lt;/a&gt;
    </content>
    <updated>2025-09-02T11:23:44Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsf0m47r4ycdl6jdvdzyvrl4wmyrz90nxj28pnhp20e952q79m3hgczyp6z3hstnldu58v9uyd6wput6qw5kug2qrc2r2qf5zedj8748lzmve9e5av</id>
    
      <title type="html">🤯🚨 BREAKING NEWS 🚨🤯 In a shocking development, new ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsf0m47r4ycdl6jdvdzyvrl4wmyrz90nxj28pnhp20e952q79m3hgczyp6z3hstnldu58v9uyd6wput6qw5kug2qrc2r2qf5zedj8748lzmve9e5av" />
    <content type="html">
      🤯🚨 BREAKING NEWS 🚨🤯&lt;br/&gt;&lt;br/&gt;In a shocking development, new additions to the #ECMAScript standard WILL UNLEASH THE HERETOFORE UNAVAILABLE POWER OF ADDITION _IN JAVASCRIPT_ upon the world! &lt;br/&gt;&lt;br/&gt;👉 &lt;a href=&#34;https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/sumPrecise&#34;&gt;https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/sumPrecise&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Only works in Firefox ATM. Like, Chrome and Safari can&amp;#39;t even add numbers currently.&lt;br/&gt;&lt;br/&gt;#javascript #webdev&lt;br/&gt;&lt;video controls width=&#34;100%&#34; class=&#34;max-h-[90vh] bg-neutral-300 dark:bg-zinc-700&#34;&gt;&lt;source src=&#34;https://files.mastodon.social/media_attachments/files/115/134/206/163/027/842/original/4c5c9c52bbb991a6.mp4&#34;&gt;&lt;/video&gt;&lt;br/&gt;
    </content>
    <updated>2025-09-02T10:23:52Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsg6jk09n2005ug7ypwk76sc6c8pnlxrf73xk9c455v3csntmz990czyp6z3hstnldu58v9uyd6wput6qw5kug2qrc2r2qf5zedj8748lzmv34w87p</id>
    
      <title type="html">Just build your own #frontend stuff already. It&amp;#39;s fine. You ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsg6jk09n2005ug7ypwk76sc6c8pnlxrf73xk9c455v3csntmz990czyp6z3hstnldu58v9uyd6wput6qw5kug2qrc2r2qf5zedj8748lzmv34w87p" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqswj3uau00qf7va68tngyap6rvs6xecw22zgylgahz7xgeq5q6f5ms7qp7fd&#39;&gt;nevent1q…p7fd&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Just build your own #frontend stuff already. It&amp;#39;s fine. You don&amp;#39;t need a complicated product sold to you by some company. It&amp;#39;s really not that hard. And then it&amp;#39;s all yours! It will only turn to crap if YOU want it to.&lt;br/&gt;&lt;br/&gt;#webdev
    </content>
    <updated>2025-07-09T13:56:36Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqswj3uau00qf7va68tngyap6rvs6xecw22zgylgahz7xgeq5q6f5mszyp6z3hstnldu58v9uyd6wput6qw5kug2qrc2r2qf5zedj8748lzmvyfm2wr</id>
    
      <title type="html">Hahaha, Vercel gobbled up Nuxt: ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqswj3uau00qf7va68tngyap6rvs6xecw22zgylgahz7xgeq5q6f5mszyp6z3hstnldu58v9uyd6wput6qw5kug2qrc2r2qf5zedj8748lzmvyfm2wr" />
    <content type="html">
      Hahaha, Vercel gobbled up Nuxt: &lt;a href=&#34;https://vercel.com/blog/nuxtlabs-joins-vercel&#34;&gt;https://vercel.com/blog/nuxtlabs-joins-vercel&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;This will turn out great, I&amp;#39;m certain! #webdev&lt;br/&gt; &lt;img src=&#34;https://files.mastodon.social/media_attachments/files/114/823/559/673/666/921/original/3b28e1ba0c3d7709.png&#34;&gt; &lt;br/&gt;
    </content>
    <updated>2025-07-09T13:41:55Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqs88z2n8zyznw4yad0sm9dsvsm36yrju7lc3t0u7ezskkfcmn3z7xszyp6z3hstnldu58v9uyd6wput6qw5kug2qrc2r2qf5zedj8748lzmvwulv70</id>
    
      <title type="html">Me: &amp;#34;I don&amp;#39;t need no elitist #functional programming, ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqs88z2n8zyznw4yad0sm9dsvsm36yrju7lc3t0u7ezskkfcmn3z7xszyp6z3hstnldu58v9uyd6wput6qw5kug2qrc2r2qf5zedj8748lzmvwulv70" />
    <content type="html">
      Me: &amp;#34;I don&amp;#39;t need no elitist #functional programming, I&amp;#39;ll mutate my data structures in place! YOLO!&amp;#34;&lt;br/&gt;&lt;br/&gt;Also me: &amp;#34;Why are there items missing from candidatesTo? Let me spend two hours debugging this 🤡&amp;#34;&lt;br/&gt;&lt;br/&gt;#webdev #JavaScript&lt;br/&gt; &lt;img src=&#34;https://files.mastodon.social/media_attachments/files/114/629/812/361/445/064/original/a69cfb0286ad3988.png&#34;&gt; &lt;br/&gt;
    </content>
    <updated>2025-06-05T08:35:08Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqs2uz258ucypqlrz4u35l7jestlaqy47vmhszynzrykrnkunxyvhtgzyp6z3hstnldu58v9uyd6wput6qw5kug2qrc2r2qf5zedj8748lzmvn6zkp2</id>
    
      <title type="html">Something like this? ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqs2uz258ucypqlrz4u35l7jestlaqy47vmhszynzrykrnkunxyvhtgzyp6z3hstnldu58v9uyd6wput6qw5kug2qrc2r2qf5zedj8748lzmvn6zkp2" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsvtp2mjlu37xjwvzhtw96m374r2z0eum9uhfj5nlxkrs3g6mn73yq8su70x&#39;&gt;nevent1q…u70x&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Something like this?&lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://www.typescriptlang.org/play/?#code/C4TwDgpgBAwgNgQwM5IDwBUA0UCCUIAewEAdgCZJQCuJA1iQPYDuJA2gLpQC81djLHAHzcoCAEZJgAJwQBjYFBIQmUABQA6TQikBzJAC5cASm7D0AbgBQshiUlRikgIyH4yNACUIOgKIEw2DC2klJU8gxSAAraCAC2EMRSnt5&#43;YEF20mHAEYLCPF6&#43;-lY2GQ4QkgBMrogoqAWp2AgkIEIi9UVAA&#34;&gt;https://www.typescriptlang.org/play/?#code/C4TwDgpgBAwgNgQwM5IDwBUA0UCCUIAewEAdgCZJQCuJA1iQPYDuJA2gLpQC81djLHAHzcoCAEZJgAJwQBjYFBIQmUABQA6TQikBzJAC5cASm7D0AbgBQshiUlRikgIyH4yNACUIOgKIEw2DC2klJU8gxSAAraCAC2EMRSnt5&#43;YEF20mHAEYLCPF6&#43;-lY2GQ4QkgBMrogoqAWp2AgkIEIi9UVAA&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;I guess the type for args need to either come from somewhere or be any.
    </content>
    <updated>2025-02-21T12:59:31Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsxga8rmwve9dar5qt5hz8zx24n2cg6t5exsgvtz89qwfwhhp8tlvqzyp6z3hstnldu58v9uyd6wput6qw5kug2qrc2r2qf5zedj8748lzmv63dsgc</id>
    
      <title>Nostr event nevent1qqsxga8rmwve9dar5qt5hz8zx24n2cg6t5exsgvtz89qwfwhhp8tlvqzyp6z3hstnldu58v9uyd6wput6qw5kug2qrc2r2qf5zedj8748lzmv63dsgc</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsxga8rmwve9dar5qt5hz8zx24n2cg6t5exsgvtz89qwfwhhp8tlvqzyp6z3hstnldu58v9uyd6wput6qw5kug2qrc2r2qf5zedj8748lzmv63dsgc" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsw8h6rx05eppnk6w4wn4xcg9s5ggpg2v3kskh0ce8q80rwcg0mg7qr8p4rh&#39;&gt;nevent1q…p4rh&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://www.typescriptlang.org/play/?strict=false&amp;amp;strictNullChecks=false#code/C4TwDgpgBA8gRgKygXigbwFBSgJwgQwBMB7AOwBsQoBnEAWwC4oBXUgSwEdnpa65jyAGgwBfANwYMAYzLVgUAMoBNALJNWnbjXr9yKRToEAKAOTKVJgJQTps&#43;cURN4SVJmy8mpZuSGixQA&#34;&gt;https://www.typescriptlang.org/play/?strict=false&amp;amp;strictNullChecks=false#code/C4TwDgpgBA8gRgKygXigbwFBSgJwgQwBMB7AOwBsQoBnEAWwC4oBXUgSwEdnpa65jyAGgwBfANwYMAYzLVgUAMoBNALJNWnbjXr9yKRToEAKAOTKVJgJQTps&#43;cURN4SVJmy8mpZuSGixQA&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;🙃
    </content>
    <updated>2025-02-16T18:43:41Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqs25mcc7zsx28cjx4zperldzklnphgcz6y5v7w6v2enntyn29tethszyp6z3hstnldu58v9uyd6wput6qw5kug2qrc2r2qf5zedj8748lzmvfemd3h</id>
    
      <title type="html">Smuggling arbitrary data through an emoji 👉 ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqs25mcc7zsx28cjx4zperldzklnphgcz6y5v7w6v2enntyn29tethszyp6z3hstnldu58v9uyd6wput6qw5kug2qrc2r2qf5zedj8748lzmvfemd3h" />
    <content type="html">
      Smuggling arbitrary data through an emoji&lt;br/&gt; 👉 &lt;a href=&#34;https://paulbutler.org/2025/smuggling-arbitrary-data-through-an-emoji/&#34;&gt;https://paulbutler.org/2025/smuggling-arbitrary-data-through-an-emoji/&lt;/a&gt;
    </content>
    <updated>2025-02-12T14:11:28Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqst47adpx4nfk59yzxka4anxlwvy4kehr7r0470llthn7lh0479xqqzyp6z3hstnldu58v9uyd6wput6qw5kug2qrc2r2qf5zedj8748lzmvuzw5nz</id>
    
      <title type="html">Why not console.log(`Unexpected value:`, value)?</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqst47adpx4nfk59yzxka4anxlwvy4kehr7r0470llthn7lh0479xqqzyp6z3hstnldu58v9uyd6wput6qw5kug2qrc2r2qf5zedj8748lzmvuzw5nz" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqstfz9rszannc3rwjn8v8t0n3a7urwf23gdcc7y776scc47eak86mc8dd3sf&#39;&gt;nevent1q…d3sf&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Why not console.log(`Unexpected value:`, value)?
    </content>
    <updated>2025-01-31T13:23:25Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsyja4gq5zc5ljwpgaatkmzvdvlrl0d050fevglqlxmjwlausw5legzyp6z3hstnldu58v9uyd6wput6qw5kug2qrc2r2qf5zedj8748lzmvahxehe</id>
    
      <title type="html">The world&amp;#39;s worst #react project uses _hundreds upon ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsyja4gq5zc5ljwpgaatkmzvdvlrl0d050fevglqlxmjwlausw5legzyp6z3hstnldu58v9uyd6wput6qw5kug2qrc2r2qf5zedj8748lzmvahxehe" />
    <content type="html">
      The world&amp;#39;s worst #react project uses _hundreds upon hundreds_ of lines of react-use-form spaghetti to do something that literally takes ~40 lines as a vanilla web component 🤦 &lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://codepen.io/SirPepe/pen/mybzrVb&#34;&gt;https://codepen.io/SirPepe/pen/mybzrVb&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;#webcomponents&lt;br/&gt; &lt;img src=&#34;https://files.mastodon.social/media_attachments/files/113/872/169/929/320/776/original/1ae11b7b0d73a086.png&#34;&gt; &lt;br/&gt;
    </content>
    <updated>2025-01-22T13:13:59Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqs8nm3fp8d3wkzpugf6h4p9dy97yktm0n6ut5cedge6mwlf3ym0plgzyp6z3hstnldu58v9uyd6wput6qw5kug2qrc2r2qf5zedj8748lzmvqlapx9</id>
    
      <title type="html">Like this? ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqs8nm3fp8d3wkzpugf6h4p9dy97yktm0n6ut5cedge6mwlf3ym0plgzyp6z3hstnldu58v9uyd6wput6qw5kug2qrc2r2qf5zedj8748lzmvqlapx9" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqstqhpqquxrzx2jlsaarq3aalt8qy80ralg04wta4p60l9shpxl7vq40j5k5&#39;&gt;nevent1q…j5k5&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Like this? &lt;a href=&#34;https://www.typescriptlang.org/play/?#code/KYOwrgtgBAIsBmBDMAbALlA3gXwFCkigGUwAjAYQHsVKAnLPXAYxUQGc2oqbaAeAIVqIQAEygBeWAmToAfFlxQoAYlJDRAQgBcUQcJEBuRVDZpEaAJZMotYGMkhgAdy7U6vEhTe1ZACgCURkqm5lZQAOa2oBJQji7c7p4JPgFBJmaW1qQoYMAxca48HmTJfoG4jGgAngAOeQAqyTHVdZTwhXQAdLZiAD5QLcBtHbSdkcDR-YPDyd12RrgiwCyItlBMlCCmA8kAkltmIEzAOo3eCyjAGGjApjpNkmh7B8LHBkA&#34;&gt;https://www.typescriptlang.org/play/?#code/KYOwrgtgBAIsBmBDMAbALlA3gXwFCkigGUwAjAYQHsVKAnLPXAYxUQGc2oqbaAeAIVqIQAEygBeWAmToAfFlxQoAYlJDRAQgBcUQcJEBuRVDZpEaAJZMotYGMkhgAdy7U6vEhTe1ZACgCURkqm5lZQAOa2oBJQji7c7p4JPgFBJmaW1qQoYMAxca48HmTJfoG4jGgAngAOeQAqyTHVdZTwhXQAdLZiAD5QLcBtHbSdkcDR-YPDyd12RrgiwCyItlBMlCCmA8kAkltmIEzAOo3eCyjAGGjApjpNkmh7B8LHBkA&lt;/a&gt; 🤪
    </content>
    <updated>2025-01-22T11:30:07Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqs224cpes4vrajx9mzjcdzawua2mhxyl7e0akw5sts277rq2w0tgwczyp6z3hstnldu58v9uyd6wput6qw5kug2qrc2r2qf5zedj8748lzmvpsdcfd</id>
    
      <title type="html">Back to the world&amp;#39;s worst #react project! I remain convinced ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqs224cpes4vrajx9mzjcdzawua2mhxyl7e0akw5sts277rq2w0tgwczyp6z3hstnldu58v9uyd6wput6qw5kug2qrc2r2qf5zedj8748lzmvpsdcfd" />
    <content type="html">
      Back to the world&amp;#39;s worst #react project! I remain convinced that useEffect is the worst API for anything ever because nobody who is not a _giant_ nerd appears to be able to use it correctly. Sure, people should know their stuff, RTFM etc. but if the trash fires around useEffect _never_ stop burning, maaaaybe something is fundamentally wrong with the basic API design?&lt;br/&gt;&lt;br/&gt;#webdev
    </content>
    <updated>2024-12-05T12:13:16Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsf60ye3pan3mtdfategczan3ap3f9ms75rrcuz2er59h6dj9f782gzyp6z3hstnldu58v9uyd6wput6qw5kug2qrc2r2qf5zedj8748lzmvfp7lfx</id>
    
      <title type="html">😱 Oh no... TIL that what Intl.Segmenter considers to be ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsf60ye3pan3mtdfategczan3ap3f9ms75rrcuz2er59h6dj9f782gzyp6z3hstnldu58v9uyd6wput6qw5kug2qrc2r2qf5zedj8748lzmvfp7lfx" />
    <content type="html">
      😱  Oh no... TIL that what Intl.Segmenter considers to be &amp;#34;word boundary&amp;#34; is implementation-dependent: &lt;a href=&#34;https://tc39.es/ecma402/#annex-implementation-dependent-behaviour&#34;&gt;https://tc39.es/ecma402/#annex-implementation-dependent-behaviour&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;V8 splits URLs, Firefox does not.&lt;br/&gt;&lt;br/&gt;#javascript #webdev&lt;br/&gt; &lt;img src=&#34;https://files.mastodon.social/media_attachments/files/113/587/728/484/454/704/original/081f9c580830d451.png&#34;&gt; &lt;br/&gt;
    </content>
    <updated>2024-12-03T07:36:39Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqst87lc6utwegdy0dq5q5ap5xhqrywnhyn8yy29m5fx77e83ryy8lszyp6z3hstnldu58v9uyd6wput6qw5kug2qrc2r2qf5zedj8748lzmva04y47</id>
    
      <title type="html">Wait, what? ❤️ is an emoji, so it is built up from surrogate ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqst87lc6utwegdy0dq5q5ap5xhqrywnhyn8yy29m5fx77e83ryy8lszyp6z3hstnldu58v9uyd6wput6qw5kug2qrc2r2qf5zedj8748lzmva04y47" />
    <content type="html">
      Wait, what?&lt;br/&gt;&lt;br/&gt;❤️ is an emoji, so it is built up from surrogate pairs, right?&lt;br/&gt;&lt;br/&gt;NOPE! Turns out it consists of U&#43;2764 (plain ❤ symbol) and U&#43;FE0F (Variation Selector 16)&lt;br/&gt;&lt;br/&gt;This is why you should use Intl.Segmenter() and just deal with its abysmal performance 😭 &lt;br/&gt;&lt;br/&gt;#javascript #unicode #fml
    </content>
    <updated>2024-11-26T08:40:41Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsfrvkwa795yhzu3zjdx4rstagythv7yvxnjdcyy5w5d39pnp0f3rszyp6z3hstnldu58v9uyd6wput6qw5kug2qrc2r2qf5zedj8748lzmvqpfnu0</id>
    
      <title type="html">Oh look, it is &amp;#34;State of node_modules&amp;#34; o&amp;#39;clock again! ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsfrvkwa795yhzu3zjdx4rstagythv7yvxnjdcyy5w5d39pnp0f3rszyp6z3hstnldu58v9uyd6wput6qw5kug2qrc2r2qf5zedj8748lzmvqpfnu0" />
    <content type="html">
      Oh look, it is &amp;#34;State of node_modules&amp;#34; o&amp;#39;clock again! &lt;a href=&#34;https://survey.devographics.com/en-US/survey/state-of-js/2024&#34;&gt;https://survey.devographics.com/en-US/survey/state-of-js/2024&lt;/a&gt; #javascript
    </content>
    <updated>2024-11-19T07:34:31Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqs2qxe7k3shug094kcxw82nz8ulp6462ajx32k0mvumekc6edcv40szyp6z3hstnldu58v9uyd6wput6qw5kug2qrc2r2qf5zedj8748lzmve2rg3w</id>
    
      <title type="html">Thanks to the lack of #typescript in this project, I can simply ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqs2qxe7k3shug094kcxw82nz8ulp6462ajx32k0mvumekc6edcv40szyp6z3hstnldu58v9uyd6wput6qw5kug2qrc2r2qf5zedj8748lzmve2rg3w" />
    <content type="html">
      Thanks to the lack of #typescript in this project, I can simply cobble one-off event &amp;#34;subtypes&amp;#34; together with Object.assign() 🙃  Much better than creating &amp;#34;proper&amp;#34; subclasses (and the associated messing around with interfaces etc.)&lt;br/&gt; &lt;img src=&#34;https://files.mastodon.social/media_attachments/files/113/311/934/710/379/910/original/618f0f599f45978a.png&#34;&gt; &lt;br/&gt;
    </content>
    <updated>2024-10-15T14:35:47Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqszff8ezqy3yvyj22hzjjra2jcx60zyv9lc33epg4qzetx7zhtn5rszyp6z3hstnldu58v9uyd6wput6qw5kug2qrc2r2qf5zedj8748lzmvrjy2k7</id>
    
      <title type="html">I don&amp;#39;t even hate TS and use it quite a bunch without issue. ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqszff8ezqy3yvyj22hzjjra2jcx60zyv9lc33epg4qzetx7zhtn5rszyp6z3hstnldu58v9uyd6wput6qw5kug2qrc2r2qf5zedj8748lzmvrjy2k7" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsfpg7th7q4yfd5c0zuhx00rmzm09mpg5xgnlcqt734vg6hyvsq35cz9gzv7&#39;&gt;nevent1q…gzv7&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;I don&amp;#39;t even hate TS and use it quite a bunch without issue. But it just does not work for some use cases and that needs to be acknowledged. Even if it drives the TS stans mad 🙃
    </content>
    <updated>2024-08-31T12:40:12Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsfy43awt6heljqt9vqs3lahptqkteuuq62jte6t4nhc3umpp7c6sgzyp6z3hstnldu58v9uyd6wput6qw5kug2qrc2r2qf5zedj8748lzmv3u90s4</id>
    
      <title type="html">Kindof defeats the purpose of line 61. This function is supposed ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsfy43awt6heljqt9vqs3lahptqkteuuq62jte6t4nhc3umpp7c6sgzyp6z3hstnldu58v9uyd6wput6qw5kug2qrc2r2qf5zedj8748lzmv3u90s4" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs9zvxhpx353zqqwngdpcnfq265mnhmz74kcjsacp95c6fpy9apz2ckcn7pd&#39;&gt;nevent1q…n7pd&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Kindof defeats the purpose of line 61. This function is supposed to take all sorts of nodes and return true only for specific element nodes.
    </content>
    <updated>2024-08-30T14:08:33Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsgt634h42ukkezl7q66u0y3vtzl3tg7pcr2pz3qkmkn3r5zft34qgzyp6z3hstnldu58v9uyd6wput6qw5kug2qrc2r2qf5zedj8748lzmvyrn3dl</id>
    
      <title type="html">No. This is down to the way the type system works and how the DOM ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsgt634h42ukkezl7q66u0y3vtzl3tg7pcr2pz3qkmkn3r5zft34qgzyp6z3hstnldu58v9uyd6wput6qw5kug2qrc2r2qf5zedj8748lzmvyrn3dl" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqstqmp8ug965gj959l0j2s2hvj0gwaxgclnm6xfjflk4lqr9gu3kyqtwd3qg&#39;&gt;nevent1q…d3qg&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;No. This is down to the way the type system works and how the DOM (and established practices in DOM programming) work differently. There is no fixing this 🙃
    </content>
    <updated>2024-08-30T13:08:49Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsz5ng8l8acq8rmmk62gz3qmhsy7zl63hyv07z2qljqxm7aysucwaczyp6z3hstnldu58v9uyd6wput6qw5kug2qrc2r2qf5zedj8748lzmvx3z97d</id>
    
      <title type="html">Yep, that&amp;#39;s not the problem. Node is simply a supertype of ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsz5ng8l8acq8rmmk62gz3qmhsy7zl63hyv07z2qljqxm7aysucwaczyp6z3hstnldu58v9uyd6wput6qw5kug2qrc2r2qf5zedj8748lzmvx3z97d" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsg3v8mue90wvlqe9zgzslaf8t5u85tj7qzzlp5jw73aawz9re7rpgjfx6u6&#39;&gt;nevent1q…x6u6&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Yep, that&amp;#39;s not the problem. Node is simply a supertype of elements and friends... and TS does not understand what the different values for nodeType mean.
    </content>
    <updated>2024-08-30T13:03:34Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsgv7ptc4m3udm7fy7t0r9ya5hf9462l8gng7q8ay69zwrey8gcq7gzyp6z3hstnldu58v9uyd6wput6qw5kug2qrc2r2qf5zedj8748lzmvuyq0m8</id>
    
      <title type="html">&amp;#39;evt.target is possibly &amp;#34;null&amp;#34;&amp;#39; Yeah, right, the ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsgv7ptc4m3udm7fy7t0r9ya5hf9462l8gng7q8ay69zwrey8gcq7gzyp6z3hstnldu58v9uyd6wput6qw5kug2qrc2r2qf5zedj8748lzmvuyq0m8" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqswgumjt6t3zg4m68n5u52vhdy6q5njkxeay7l6pxludfjs6ncwe8syza820&#39;&gt;nevent1q…a820&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;&amp;#39;evt.target is possibly &amp;#34;null&amp;#34;&amp;#39;&lt;br/&gt;&lt;br/&gt;Yeah, right, the target is null INSIDE THE EVENT HANDLER 🤦&lt;br/&gt;&lt;br/&gt;#typescript #fail&lt;br/&gt; &lt;img src=&#34;https://files.mastodon.social/media_attachments/files/113/050/615/588/284/186/original/a6aa8546ed06e606.png&#34;&gt; &lt;br/&gt;
    </content>
    <updated>2024-08-30T10:58:36Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqswgumjt6t3zg4m68n5u52vhdy6q5njkxeay7l6pxludfjs6ncwe8szyp6z3hstnldu58v9uyd6wput6qw5kug2qrc2r2qf5zedj8748lzmvezv76y</id>
    
      <title type="html">#TypeScript is just plain bad with vanilla DOM programming ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqswgumjt6t3zg4m68n5u52vhdy6q5njkxeay7l6pxludfjs6ncwe8szyp6z3hstnldu58v9uyd6wput6qw5kug2qrc2r2qf5zedj8748lzmvezv76y" />
    <content type="html">
      #TypeScript is just plain bad with vanilla DOM programming 🤦‍♂️&lt;br/&gt; &lt;img src=&#34;https://files.mastodon.social/media_attachments/files/113/050/523/415/981/863/original/34c875a5b6b29a0b.png&#34;&gt; &lt;br/&gt;
    </content>
    <updated>2024-08-30T10:35:45Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqs8jjcm267g0qc3r8dpq9s0s639d48eklterqk9g2wzjf04kk58zqqzyp6z3hstnldu58v9uyd6wput6qw5kug2qrc2r2qf5zedj8748lzmvy9ksvw</id>
    
      <title>Nostr event nevent1qqs8jjcm267g0qc3r8dpq9s0s639d48eklterqk9g2wzjf04kk58zqqzyp6z3hstnldu58v9uyd6wput6qw5kug2qrc2r2qf5zedj8748lzmvy9ksvw</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqs8jjcm267g0qc3r8dpq9s0s639d48eklterqk9g2wzjf04kk58zqqzyp6z3hstnldu58v9uyd6wput6qw5kug2qrc2r2qf5zedj8748lzmvy9ksvw" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsd3vfln5h6jwqy88ycex74asayzjwglxnkd5tjfcvsrchkj8483dqrw97cq&#39;&gt;nevent1q…97cq&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;#typescript&lt;br/&gt; &lt;img src=&#34;https://files.mastodon.social/media_attachments/files/112/988/134/312/467/770/original/3c705c24a994ea4c.png&#34;&gt; &lt;br/&gt;
    </content>
    <updated>2024-08-19T10:09:19Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsd3vfln5h6jwqy88ycex74asayzjwglxnkd5tjfcvsrchkj8483dqzyp6z3hstnldu58v9uyd6wput6qw5kug2qrc2r2qf5zedj8748lzmv9kdl77</id>
    
      <title type="html">So if you write &amp;#34;import type ...&amp;#34; you get a namespace, ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsd3vfln5h6jwqy88ycex74asayzjwglxnkd5tjfcvsrchkj8483dqzyp6z3hstnldu58v9uyd6wput6qw5kug2qrc2r2qf5zedj8748lzmv9kdl77" />
    <content type="html">
      So if you write &amp;#34;import type ...&amp;#34; you get a namespace, not a type (obviously). If the contents of this namespace needs to be globally available for declaration merging, you need to transform the namespace into a type to then have your interface extend it. And then tell eslint to shut up about the obviously non-empty interface.&lt;br/&gt;&lt;br/&gt;This is fine #TypeScript&lt;br/&gt; &lt;img src=&#34;https://files.mastodon.social/media_attachments/files/112/988/104/748/699/230/original/dbf4909c96904977.png&#34;&gt; &lt;br/&gt;
    </content>
    <updated>2024-08-19T10:07:30Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsrf076vgvjnrleyqvcrjksck3lm4qvk7enuaxg4e25ttrtj4zdyvgzyp6z3hstnldu58v9uyd6wput6qw5kug2qrc2r2qf5zedj8748lzmvpqjx3g</id>
    
      <title type="html">Ooooh that&amp;#39;s very exciting: *Official* Puppeteer Support for ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsrf076vgvjnrleyqvcrjksck3lm4qvk7enuaxg4e25ttrtj4zdyvgzyp6z3hstnldu58v9uyd6wput6qw5kug2qrc2r2qf5zedj8748lzmvpqjx3g" />
    <content type="html">
      Ooooh that&amp;#39;s very exciting: *Official* Puppeteer Support for Firefox! #webdev &lt;br/&gt;&lt;a href=&#34;https://hacks.mozilla.org/2024/08/puppeteer-support-for-firefox/&#34;&gt;https://hacks.mozilla.org/2024/08/puppeteer-support-for-firefox/&lt;/a&gt;
    </content>
    <updated>2024-08-08T08:21:13Z</updated>
  </entry>

</feed>