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

  <title>Nostr notes by Max</title>
  <author>
    <name>Max</name>
  </author>
  <link rel="self" type="application/atom+xml" href="https://yabu.me/npub1h4ffem4z2kn6r9p5qrx52quc3e9u2vxg93uayhftged0u2ayc8kqayq2tp.rss" />
  <link href="https://yabu.me/npub1h4ffem4z2kn6r9p5qrx52quc3e9u2vxg93uayhftged0u2ayc8kqayq2tp" />
  <id>https://yabu.me/npub1h4ffem4z2kn6r9p5qrx52quc3e9u2vxg93uayhftged0u2ayc8kqayq2tp</id>
  <icon>https://cdn.masto.host/smeap/accounts/avatars/000/000/001/original/6898a40b556a69ba.png</icon>
  <logo>https://cdn.masto.host/smeap/accounts/avatars/000/000/001/original/6898a40b556a69ba.png</logo>




  <entry>
    <id>https://yabu.me/nevent1qqstzmdwsss3rzv3muxqqdyade3aeermm5xjk0f3uq8pytpg6ur76mgzyz74988w5f260gv5xsqv63grnz8yh3fseqk8n5ja9dr94l3t5nq7czgrkeq</id>
    
      <title type="html">Yeah. I think there’s also been a lot of improvements in load ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqstzmdwsss3rzv3muxqqdyade3aeermm5xjk0f3uq8pytpg6ur76mgzyz74988w5f260gv5xsqv63grnz8yh3fseqk8n5ja9dr94l3t5nq7czgrkeq" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqspypw29jxu4dfy20nr6py94q2gzp7327ae6pmtepv2r0tld9r9czc6e3k7d&#39;&gt;nevent1q…3k7d&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Yeah. &lt;br/&gt;&lt;br/&gt;I think there’s also been a lot of improvements in load balancers to merge disparate physical services to a single logical domain at the high end and hopefully that will start to filter down to cheaper hosting. I don’t think the cliff between “serve almost infinite static content on GitHub Pages for free” and “expect to pay a lot to host an entire site on Deno Deploy or Vercel or what have you” needs to be quite so tall, and I think we’ll see improvements slowly.
    </content>
    <updated>2025-11-07T01:14:05Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqs22cwx0cnwuex73mx8q4gg5gq46c4a5wlqjdkv03398up99uwhwxgzyz74988w5f260gv5xsqv63grnz8yh3fseqk8n5ja9dr94l3t5nq7cqlrexq</id>
    
      <title type="html">Static page hosts are just so much cheaper than backend hosts. ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqs22cwx0cnwuex73mx8q4gg5gq46c4a5wlqjdkv03398up99uwhwxgzyz74988w5f260gv5xsqv63grnz8yh3fseqk8n5ja9dr94l3t5nq7cqlrexq" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs888hez77s09rw4emmytycerz4e8zltkctahl65hf0mt8v73sk9vsrx6fkw&#39;&gt;nevent1q…6fkw&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Static page hosts are just so much cheaper than backend hosts. That’s been a big thing for big industry clouds too where you want static files distributed to big CDNs, which charge you extra if it isn’t really static, and then backends you want to keep in close contact with your databases.&lt;br/&gt;&lt;br/&gt;It’s been tough to keep everything on the same domain for cheap since the Perl/PHP days.&lt;br/&gt;&lt;br/&gt;Local Storage isn’t a great solution to this, but it’s more reliable than cross-origin/“third party” cookies
    </content>
    <updated>2025-11-06T02:31:45Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqs888hez77s09rw4emmytycerz4e8zltkctahl65hf0mt8v73sk9vszyz74988w5f260gv5xsqv63grnz8yh3fseqk8n5ja9dr94l3t5nq7c0xyrfk</id>
    
      <title type="html">One of the issues that the blog post somewhat glides past is the ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqs888hez77s09rw4emmytycerz4e8zltkctahl65hf0mt8v73sk9vszyz74988w5f260gv5xsqv63grnz8yh3fseqk8n5ja9dr94l3t5nq7c0xyrfk" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsdkgldnrxdu52sslv8l9l6250h03yhjstd2t3y3r9kpmeuzcqukactgeq9c&#39;&gt;nevent1q…eq9c&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;One of the issues that the blog post somewhat glides past is the strange economics of website hosting. Cookies work great if everything is hosted by the same server, but the frontend and backends split to different servers for cost reasons about a decade ago. Even from the free-to-start space it is easier to host frontends on GitHub Pages/Netlify/Surge and backends on Cloudflare Workers/Deno Deploy/Vercel.
    </content>
    <updated>2025-11-06T02:31:45Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqswhdpjrr3uvt0q0rqngq4h9j5rvvu6j63ah9nq69lxyt4ec7qfhpczyz74988w5f260gv5xsqv63grnz8yh3fseqk8n5ja9dr94l3t5nq7c54mfth</id>
    
      <title type="html">That article mentions the Boston Globe redesign and that would ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqswhdpjrr3uvt0q0rqngq4h9j5rvvu6j63ah9nq69lxyt4ec7qfhpczyz74988w5f260gv5xsqv63grnz8yh3fseqk8n5ja9dr94l3t5nq7c54mfth" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsp98tnktjyx0mj04v46rpt8tnm99hdcm8wg8pff37cfwxmq0eg38cy70s39&#39;&gt;nevent1q…0s39&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;That article mentions the Boston Globe redesign and that would fit my theory that like a lot of CSS terms it might have been a term of art in newspaper/magazine layout as well. “Above the fold” for instance is definitely from newspapers. It wouldn’t surprise me if this use of breakpoint is also from there.
    </content>
    <updated>2025-10-21T17:40:30Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqs29y5d5xgf9kuyr5dc5e9sjazas69sct03ht7l8qag4teekjpa52qzyz74988w5f260gv5xsqv63grnz8yh3fseqk8n5ja9dr94l3t5nq7cm09f70</id>
    
      <title type="html">A type stripper still needs a standardized grammar, and even if ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqs29y5d5xgf9kuyr5dc5e9sjazas69sct03ht7l8qag4teekjpa52qzyz74988w5f260gv5xsqv63grnz8yh3fseqk8n5ja9dr94l3t5nq7cm09f70" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsfej0tflvz6z0e6c44eyjz9xfr0dae2k2dp9l57yhsykhzz5rllhsw9lvwm&#39;&gt;nevent1q…lvwm&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;A type stripper still needs a standardized grammar, and even if it is a fast pass it is still a *second* pass so would have some efficiency loss during file loads. Standardizing type annotations in the main grammar seems to be working well for Python, I think it is still a good idea for JS.
    </content>
    <updated>2025-09-24T15:50:09Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqspdkzhmwl7scpde6n65d33w5cv9ygzr96ma633gflyualjl5mam8szyz74988w5f260gv5xsqv63grnz8yh3fseqk8n5ja9dr94l3t5nq7crmmgcn</id>
    
      <title type="html">If you use a file extension for those files such as .tsv you can ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqspdkzhmwl7scpde6n65d33w5cv9ygzr96ma633gflyualjl5mam8szyz74988w5f260gv5xsqv63grnz8yh3fseqk8n5ja9dr94l3t5nq7crmmgcn" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsy5mf7dr8pgjzum34hvsawmewln2s0ewm36ykm3dh8ncct32554lgdkp79c&#39;&gt;nevent1q…p79c&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;If you use a file extension for those files such as .tsv you can easily limit .editorconfig and/or VS Code user/workspace settings to just those files. In the context of a specific file format, it certainly makes sense to set insertSpaces off in user settings for that.
    </content>
    <updated>2025-09-23T22:43:24Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqs0pl55qjxedkfxf3eptxx6s064wmdupam3x6rl0w2ts4vmx4hwvpszyz74988w5f260gv5xsqv63grnz8yh3fseqk8n5ja9dr94l3t5nq7cfjqj3q</id>
    
      <title type="html">Click the “Spaces: 2” (or 4 or whatever) indicator in status ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqs0pl55qjxedkfxf3eptxx6s064wmdupam3x6rl0w2ts4vmx4hwvpszyz74988w5f260gv5xsqv63grnz8yh3fseqk8n5ja9dr94l3t5nq7cfjqj3q" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsy6g2cp52397r9gj5slm34m2k0h06urguu98jehn2gd43uf38yqasl322gz&#39;&gt;nevent1q…22gz&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Click the “Spaces: 2” (or 4 or whatever) indicator in status bar and the menu that pops up has a “Indent Using Tabs” option. Also has a “Convert Indentation to Tabs” command.&lt;br/&gt;&lt;br/&gt;If you find yourself needing it a bunch, it’s something to put in your .editorconfig or workspace settings or maybe even default user settings&lt;br/&gt;&lt;br/&gt;.editorconfig calls it indent_style = tab&lt;br/&gt;&lt;br/&gt;VS Setting is called editor.indentSpaces
    </content>
    <updated>2025-09-23T21:30:23Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsdxz9r4a8c7t6jjm3yun8f2q8wxlnfs7vhjky20fzmmlgzy6carwgzyz74988w5f260gv5xsqv63grnz8yh3fseqk8n5ja9dr94l3t5nq7c8cfjsv</id>
    
      <title type="html">A further walk to side, but the “ideal” HTML for me would be ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsdxz9r4a8c7t6jjm3yun8f2q8wxlnfs7vhjky20fzmmlgzy6carwgzyz74988w5f260gv5xsqv63grnz8yh3fseqk8n5ja9dr94l3t5nq7c8cfjsv" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqszktkqzn02qxpjslllww6uewkj9t5cch0es9g7mrr8hgg2zy7sawcxq8ycr&#39;&gt;nevent1q…8ycr&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;A further walk to side, but the “ideal” HTML for me would be even closer to:&lt;br/&gt;&lt;br/&gt;&amp;lt;blockquote cite=“Winston Churchill”&amp;gt;&amp;lt;p&amp;gt;…&lt;br/&gt;&lt;br/&gt;Unfortunately browsers have never had default displays for cite=“” (despite it going way back HTML1 as I recall) and some argue is only for URLs. Fortunately these days you can display it with a bit of CSS. But also no way to naturally write a cite=“” in Markdown. (But reStructuredText could do it.)
    </content>
    <updated>2025-09-21T16:41:46Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqspvc8u03y78mh9jk55t9cgw6gw9ycmupmj93tdhmgm88eareuljfczyz74988w5f260gv5xsqv63grnz8yh3fseqk8n5ja9dr94l3t5nq7csp82wk</id>
    
      <title type="html">Digest auth might be a simple improvement to consider. It’s ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqspvc8u03y78mh9jk55t9cgw6gw9ycmupmj93tdhmgm88eareuljfczyz74988w5f260gv5xsqv63grnz8yh3fseqk8n5ja9dr94l3t5nq7csp82wk" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs8ek5zaazwc46fz9kw6j5expmtfdz3ws8zh6t77u0maqk0k5s92qsfzxkt7&#39;&gt;nevent1q…xkt7&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Digest auth might be a simple improvement to consider. It’s just using MD5(“username:password”) instead of base64. It meliorates some of the concerns with passing plaintext passwords. It should still only be used with TLS/HTTPS because MD5 is a known weak hash algorithm with collision exploits that can run relatively quickly on modern hardware, but a weak hash is still an improvement over plaintext even if security advice is to treat it as plaintext in terms of trusting it.
    </content>
    <updated>2025-09-15T18:15:36Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqs033fuq0tguvnv4mz09dzguzn7m068zm829w8eyhj32szu45m7s6gzyz74988w5f260gv5xsqv63grnz8yh3fseqk8n5ja9dr94l3t5nq7cmevfev</id>
    
      <title type="html">What about: await new Promise((resolve) =&amp;gt; ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqs033fuq0tguvnv4mz09dzguzn7m068zm829w8eyhj32szu45m7s6gzyz74988w5f260gv5xsqv63grnz8yh3fseqk8n5ja9dr94l3t5nq7cmevfev" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsqxcsjfpljtkclpyd7pqd8gwnpcjsafkq5kdnk7pwws0re3hym0ngafaghc&#39;&gt;nevent1q…aghc&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;What about:&lt;br/&gt;&lt;br/&gt;await new Promise((resolve) =&amp;gt; requestAnimationFrame(resolve))&lt;br/&gt;&lt;br/&gt;?
    </content>
    <updated>2025-09-01T17:03:09Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqswj9lx3gcymv6jl8yphg6cs6rfm7lk93em7e4cyz2tagy0lex9d9czyz74988w5f260gv5xsqv63grnz8yh3fseqk8n5ja9dr94l3t5nq7cghm4pm</id>
    
      <title type="html">Though the the real awful in the books was they all had ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqswj9lx3gcymv6jl8yphg6cs6rfm7lk93em7e4cyz2tagy0lex9d9czyz74988w5f260gv5xsqv63grnz8yh3fseqk8n5ja9dr94l3t5nq7cghm4pm" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsrk364gy9qqczfvk04pswfs06qgw3da6eektdq6uta4qdzgpka7hqprcqhf&#39;&gt;nevent1q…cqhf&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Though the the real awful in the books was they all had psuedo-asian names and some other racist asian stereotypes. Dune’s Mentats but make it also somehow the fault of Confucius 🤦&lt;br/&gt;&lt;br/&gt;It’s easy to wonder how OSC wasn’t canceled sooner than his evil rich involvement in CA Prop 8
    </content>
    <updated>2025-06-19T20:54:25Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsqerhme8ja9ac5ksfytyp5kj9ev3fx46cps9ap577xl0xzx9e0wdqzyz74988w5f260gv5xsqv63grnz8yh3fseqk8n5ja9dr94l3t5nq7c8munal</id>
    
      <title type="html">I was a big fan of the first two seasons as they originally ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsqerhme8ja9ac5ksfytyp5kj9ev3fx46cps9ap577xl0xzx9e0wdqzyz74988w5f260gv5xsqv63grnz8yh3fseqk8n5ja9dr94l3t5nq7c8munal" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsrg3pla0unadtnq2dysg0vau4gk52dtdndfph4ygxvvuhuljutyycla8wnt&#39;&gt;nevent1q…8wnt&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;I was a big fan of the first two seasons as they originally aired, so a lot of that sounds harsh, but there’s still a massive soft spot in my heart for all 5 terrible seasons that is really hard to explain without resorting to tumblr memes about problematic and/or just dumb faves 😹
    </content>
    <updated>2025-05-26T18:35:20Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsdwn7nt2unuagap0clcp9fwfejpwzz075aea7c227e73lffgz2ruczyz74988w5f260gv5xsqv63grnz8yh3fseqk8n5ja9dr94l3t5nq7cu84tmz</id>
    
      <title type="html">Yeah, the series order is a colossal mess. More so than the usual ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsdwn7nt2unuagap0clcp9fwfejpwzz075aea7c227e73lffgz2ruczyz74988w5f260gv5xsqv63grnz8yh3fseqk8n5ja9dr94l3t5nq7cu84tmz" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsyavr2q80sl4ryhj55hdj75dktrs7tc2q2nkztlttx0p8jk9nhylqrdzmry&#39;&gt;nevent1q…zmry&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Yeah, the series order is a colossal mess. More so than the usual Fox nonsense even. Fox needed the show to be a ratings bonanza for dumb reasons, so tried to front load all the good episodes from what became the first two seasons, so S2 is just as much of a mess S3 Fox demanded almost every episode be a blockbuster movie plot. There are a bunch of strong places to exit that season. It gives you a lot of reasons to quit.
    </content>
    <updated>2025-05-26T18:28:28Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsrg3pla0unadtnq2dysg0vau4gk52dtdndfph4ygxvvuhuljutyyczyz74988w5f260gv5xsqv63grnz8yh3fseqk8n5ja9dr94l3t5nq7cefkhuq</id>
    
      <title type="html">Early Scifi Channel picked up the last two seasons. They lost a ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsrg3pla0unadtnq2dysg0vau4gk52dtdndfph4ygxvvuhuljutyyczyz74988w5f260gv5xsqv63grnz8yh3fseqk8n5ja9dr94l3t5nq7cefkhuq" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsdwn7nt2unuagap0clcp9fwfejpwzz075aea7c227e73lffgz2ructffg58&#39;&gt;nevent1q…fg58&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Early Scifi Channel picked up the last two seasons. They lost a lot of the budget, a lot of the cast, most of the showrunners and did what they could, but the last seasons are a complicated ugly mess for different reasons, such as lore and wars nobody asked for. Has a few moments of weird fun but it is probably most notable for kickstarting the budgets of Vancouver studios and effects houses that would go on to do Stargate and much more. Dress rehearsals for Stargate SG-1
    </content>
    <updated>2025-05-26T18:28:28Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqs98m2xxr0c44ta8hv6dvyh57kyfe6tzze2k0uznu7thpz8p0a4adqzyz74988w5f260gv5xsqv63grnz8yh3fseqk8n5ja9dr94l3t5nq7chg9men</id>
    
      <title type="html">I’d probably start with something like Deno Deploy or Vercel or ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqs98m2xxr0c44ta8hv6dvyh57kyfe6tzze2k0uznu7thpz8p0a4adqzyz74988w5f260gv5xsqv63grnz8yh3fseqk8n5ja9dr94l3t5nq7chg9men" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsf25jpw8ly256pvke9te6djp2m09y98xedezk3ahta7mkseqcvzfg4l2mvv&#39;&gt;nevent1q…2mvv&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;I’d probably start with something like Deno Deploy or Vercel or maybe even Cloudflare Edge Workers. These were classified “serverless” as recently as “yesterday”, but they are all just lightweight JS containers, some with more toys than others. All are capable of running “full” server apps. But DX is still strong and they can still scale to 0, the benefits of old “serverless”. Then maybe GitHub Actions as the orchestrator of lightweight Docker containers. Then maybe Docker proper.
    </content>
    <updated>2025-04-19T22:13:35Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsx8695t8e3uds487sg7mtrfrlq2m37ur93eunydsxq8gwhfg5dvfszyz74988w5f260gv5xsqv63grnz8yh3fseqk8n5ja9dr94l3t5nq7c8r5e3c</id>
    
      <title type="html">I’ve long seen “serverless” functions as a race to the ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsx8695t8e3uds487sg7mtrfrlq2m37ur93eunydsxq8gwhfg5dvfszyz74988w5f260gv5xsqv63grnz8yh3fseqk8n5ja9dr94l3t5nq7c8r5e3c" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqswk480khfnstyufukwdc4ua6f4uk9gmcw7fmpehahxpa3x6ur49uq7pz3qp&#39;&gt;nevent1q…z3qp&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;I’ve long seen “serverless” functions as a race to the lightest container tech. The architecture for playing to the strengths of functions was also the architecture for avoiding their weaknesses but the whole time was pushing container tech lighter weight and faster. The innovation in that space pushed all container tech and you are starting to see what used to be “serverless” now has fewer of the weaknesses and the technical border between architectures disappearing.
    </content>
    <updated>2025-04-19T20:49:44Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsqnvpt0zhyuhqlgtxcrt8neyqd46tjfez05sjwk7c86apkwt5w4fszyz74988w5f260gv5xsqv63grnz8yh3fseqk8n5ja9dr94l3t5nq7cl9ph8k</id>
    
      <title type="html">Also someone else just reminded me that the time complexity ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsqnvpt0zhyuhqlgtxcrt8neyqd46tjfez05sjwk7c86apkwt5w4fszyz74988w5f260gv5xsqv63grnz8yh3fseqk8n5ja9dr94l3t5nq7cl9ph8k" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqspxytx0hrempdcpn2v9kc0hzc5x5jz54k5ek2z2n63mh0lyqzn0pgrvcqy0&#39;&gt;nevent1q…cqy0&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Also someone else just reminded me that the time complexity difference of variable chunk grapheme/runes isn’t much of a trade-off on modern hardware with things like 128-bit/256-bit/512-bit vector lines (SIMD, modern cache lines, etc). A lot of the insistence on fixed width “char” formats is sort of naturally predicated on old world ideas of string parsing/math/performance that haven’t been true for many machines in decades.
    </content>
    <updated>2025-03-19T21:49:06Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqs0ffnkyd735xqtlcukhqyn36rgp8dy9rlkjf4wksm4nur62322a3qzyz74988w5f260gv5xsqv63grnz8yh3fseqk8n5ja9dr94l3t5nq7ckwtjtl</id>
    
      <title type="html">Yes, Swift does give you a choice in the matter, but like Python ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqs0ffnkyd735xqtlcukhqyn36rgp8dy9rlkjf4wksm4nur62322a3qzyz74988w5f260gv5xsqv63grnz8yh3fseqk8n5ja9dr94l3t5nq7ckwtjtl" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs2y8k8988f3gssfd9jglc0t2uflj93ln7zpvwa8hqgd2yc5u5utkqtm00fz&#39;&gt;nevent1q…00fz&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Yes, Swift does give you a choice in the matter, but like Python 3 proscribes “the right path” towards iteration of variable size codepoints/graphemes rather than bytes/16-bit/32-bit fixed structures.&lt;br/&gt;&lt;br/&gt;There’s some interesting time complexity tradeoffs in using a variably sized “rune”/“grapheme” as the easiest iterable of strings, but I think we’ve proven it’s also the safest path. I think the Python 3 approach is the probably the right one long term. (UTF-8 and grapheme iteration.)
    </content>
    <updated>2025-03-19T21:16:18Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqszse3lq5ddxwphtffuh5yxzhef4ucdvdtfkd5xg5qne94svqsljmqzyz74988w5f260gv5xsqv63grnz8yh3fseqk8n5ja9dr94l3t5nq7cva4jm0</id>
    
      <title type="html">(Especially now that most of the dust has settled on the Python 2 ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqszse3lq5ddxwphtffuh5yxzhef4ucdvdtfkd5xg5qne94svqsljmqzyz74988w5f260gv5xsqv63grnz8yh3fseqk8n5ja9dr94l3t5nq7cva4jm0" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs0ffnkyd735xqtlcukhqyn36rgp8dy9rlkjf4wksm4nur62322a3qkk9gy6&#39;&gt;nevent1q…9gy6&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;(Especially now that most of the dust has settled on the Python 2 to 3 conversion fight. The switch to “UTF-8 native strings” and “do the right thing” iteration and explicit conversions to byte forms was certainly controversial for a bit in part because of all the compatibility break headaches, but I think the language is better for it. Swift had some greenfield benefits.&lt;br/&gt;&lt;br/&gt;Java/JavaScript/C# are probably stuck with the UTF-16 compromise, but that’s still better than C/C&#43;&#43; naive 8-bit)
    </content>
    <updated>2025-03-19T21:16:18Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqstjf8edp4lx0dqmnt6k2wllsu6cd8vj4qnt0qh4kgduzdxmmf2nfgzyz74988w5f260gv5xsqv63grnz8yh3fseqk8n5ja9dr94l3t5nq7c4negax</id>
    
      <title type="html">C# also calls it Rune as well. (Though the Rune API is not truly ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqstjf8edp4lx0dqmnt6k2wllsu6cd8vj4qnt0qh4kgduzdxmmf2nfgzyz74988w5f260gv5xsqv63grnz8yh3fseqk8n5ja9dr94l3t5nq7c4negax" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs8zzyx8gdx6eux27whxpraw8z804exx5u6tptdtps460yvaachexgcc9fsd&#39;&gt;nevent1q…9fsd&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;C# also calls it Rune as well. (Though the Rune API is not truly primitive in C#. Most APIs still assume 16-bit char and UTF-16 encoding in strings. I like how Python 3 and Swift both made their char equivalent “Rune-native” instead. C# doesn’t have the opportunity of a backward compatibility break moment to do that.)&lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://learn.microsoft.com/en-us/dotnet/api/system.text.rune?view=net-9.0&#34;&gt;https://learn.microsoft.com/en-us/dotnet/api/system.text.rune?view=net-9.0&lt;/a&gt;
    </content>
    <updated>2025-03-19T20:39:26Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqszj5ny74tvnqu4umqv8c62pgz2drsrxp6ykcztpdnv030ppalepfqzyz74988w5f260gv5xsqv63grnz8yh3fseqk8n5ja9dr94l3t5nq7cvkl5xv</id>
    
      <title type="html">At this point Typescript does so little other than type stripping ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqszj5ny74tvnqu4umqv8c62pgz2drsrxp6ykcztpdnv030ppalepfqzyz74988w5f260gv5xsqv63grnz8yh3fseqk8n5ja9dr94l3t5nq7cvkl5xv" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsg4cttqquyaylef7gkd63rk4vfpm2njetunlsn5u9mh24ake8smnqrj8veq&#39;&gt;nevent1q…8veq&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;At this point Typescript does so little other than type stripping I’ve stopped feeling a need for sourcemaps for just TS transpiled ESM.&lt;br/&gt;&lt;br/&gt;In the AMD era where Typescript was also my polyfill compiler, I needed sourcemaps. Now the code is recognizably “the same”, just no type hints.
    </content>
    <updated>2025-01-14T14:05:25Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsrau5dfpyanakk5x532xyg0q3chze22y7yukc4lz7n2pmwylvp7cszyz74988w5f260gv5xsqv63grnz8yh3fseqk8n5ja9dr94l3t5nq7cc0ax0r</id>
    
      <title type="html">I’m proud of https://worldmaker.net/butterfloat/ A ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsrau5dfpyanakk5x532xyg0q3chze22y7yukc4lz7n2pmwylvp7cszyz74988w5f260gv5xsqv63grnz8yh3fseqk8n5ja9dr94l3t5nq7cc0ax0r" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs2dd5ywsqnvtwpersf72aylee9r4a2727jxc9fd2w9jv9crg0tu8s6emjdg&#39;&gt;nevent1q…mjdg&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;I’m proud of &lt;a href=&#34;https://worldmaker.net/butterfloat/&#34;&gt;https://worldmaker.net/butterfloat/&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;A Knockout-inspired view engine built on (just) RxJS with something of the powers and developer experience of a simpler React. Includes very simple SSR/progressive enhancement building blocks, now.
    </content>
    <updated>2024-12-08T17:17:40Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqspa3ez49zvyxya946afm0j88wmttuv3wx90dewkjn49l64syenv3czyz74988w5f260gv5xsqv63grnz8yh3fseqk8n5ja9dr94l3t5nq7cp6uh8g</id>
    
      <title type="html">Right, but that’s as much an implementation detail that ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqspa3ez49zvyxya946afm0j88wmttuv3wx90dewkjn49l64syenv3czyz74988w5f260gv5xsqv63grnz8yh3fseqk8n5ja9dr94l3t5nq7cp6uh8g" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqswzf5d8lvw4wkctfd2km0l049ul32afyr2aay5pm2hxqc4ak776rglgy56l&#39;&gt;nevent1q…y56l&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Right, but that’s as much an implementation detail that shouldn’t have necessarily dictated syntax as anything. If it had been of more interest to use a keyword for private slots, implementations would have figured it out. It’s a good excuse for already having decided to do it without a keyword.
    </content>
    <updated>2024-11-29T00:31:06Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqs940w4f9hsetsm3mkv2ye6apt3tdzfc6rrak048fcfl3zpq263wnczyz74988w5f260gv5xsqv63grnz8yh3fseqk8n5ja9dr94l3t5nq7csqaejq</id>
    
      <title type="html">It’s also an interesting decision when ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqs940w4f9hsetsm3mkv2ye6apt3tdzfc6rrak048fcfl3zpq263wnczyz74988w5f260gv5xsqv63grnz8yh3fseqk8n5ja9dr94l3t5nq7csqaejq" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsqa59vmdphjwjtck6zzde9cpjlpr2szz0rwnnjptssudw6hwr4s8ckfwthz&#39;&gt;nevent1q…wthz&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;It’s also an interesting decision when “public”/“private”/“protected” have been reserved keywords since ES3 (because of ES4). On the one hand I understand wanting to keep class syntax and object initializer syntax close. On the other hand I’m still not sure for instance # prefixed names are that much of an improvement over a “private” keyword, even in object initializers. { private thing: true } doesn’t seem terrible. { #thing: true } starts to feel like perl/Ruby prefixes.
    </content>
    <updated>2024-11-29T00:09:41Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqs8l4zc7g6du6mc646axgs6ex8jatwgrs058v62hpgguvdkpk860dszyz74988w5f260gv5xsqv63grnz8yh3fseqk8n5ja9dr94l3t5nq7cmxhhp7</id>
    
      <title type="html">The only “problem” to learn in semicolon free JS is the ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqs8l4zc7g6du6mc646axgs6ex8jatwgrs058v62hpgguvdkpk860dszyz74988w5f260gv5xsqv63grnz8yh3fseqk8n5ja9dr94l3t5nq7cmxhhp7" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqstf7jx8c6n5wrfgl5fhafgy43e4jfzumrqpc28e3wlxevnjxlqv8gla2zfc&#39;&gt;nevent1q…2zfc&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;The only “problem” to learn in semicolon free JS is the “winky frown rule” (if a line starts with a frown it must wink ;( ;[ ;` ). Silly name makes the rule very easy to remember. (But yeah, prettier is quite good at spotting winky frown rule violations and adding the winks.)&lt;br/&gt;&lt;br/&gt;I prefer semicolon free JS, but spent enough time in Python, F#, Haskell and similar languages
    </content>
    <updated>2024-11-28T21:28:49Z</updated>
  </entry>

</feed>