<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<link rel="self" href="https://billmill.org/Atom" />
	<id>http://billmill.org/</id>
	<title>My Name Rhymes</title>
	<subtitle></subtitle>
	<updated>2023-07-26T16:00:00Z</updated>
	<author>
		<name>Bill Mill</name>
		<email>bill.mill@gmail.com</email>
		<uri>http://billmill.org/</uri>
	</author>
	<link href="http://billmill.org/" />
	<entry>
		<title>Most of my activity is now at notes.billmill.org</title>
		<link href="https://billmill.org/moved_to_notes_billmill.html" />
		<id>https://billmill.org/moved_to_notes_billmill.html</id>
		<updated>2023-07-26T16:00:00Z</updated>
		<summary type="html">&lt;p&gt;I announced &lt;a href=&quot;https://notes.billmill.org&quot;&gt;notes.billmill.org&lt;/a&gt; more than a &lt;a
    href=&quot;https://billmill.org/notes_billmill.html&quot;&gt;year ago&lt;/a&gt;, but at the time I was still keeping this blog up to
  date with different content.

&lt;p&gt;At this point, substantially all my activity has been moved &lt;a href=&quot;https://notes.billmill.org&quot;&gt;there&lt;/a&gt; and I&#x27;m
  not doing much with this blog and root domain.

&lt;p&gt;Notes has &lt;a href=&quot;http://notes.billmill.org/atom.xml&quot;&gt;its own feed&lt;/a&gt;, so if you&#x27;re interested in reading what I
  write, you should add it to your feed reader!
</summary>
		<content type="html">&lt;p&gt;I announced &lt;a href=&quot;https://notes.billmill.org&quot;&gt;notes.billmill.org&lt;/a&gt; more than a &lt;a
    href=&quot;https://billmill.org/notes_billmill.html&quot;&gt;year ago&lt;/a&gt;, but at the time I was still keeping this blog up to
  date with different content.

&lt;p&gt;At this point, substantially all my activity has been moved &lt;a href=&quot;https://notes.billmill.org&quot;&gt;there&lt;/a&gt; and I&#x27;m
  not doing much with this blog and root domain.

&lt;p&gt;Notes has &lt;a href=&quot;http://notes.billmill.org/atom.xml&quot;&gt;its own feed&lt;/a&gt;, so if you&#x27;re interested in reading what I
  write, you should add it to your feed reader!
</content>
	</entry>
	<entry>
		<title>RIP Beckett Longdog Woodmill</title>
		<link href="https://billmill.org/beckett.html" />
		<id>https://billmill.org/beckett.html</id>
		<updated>2022-10-31T21:00:00Z</updated>
		<summary type="html">&lt;p&gt;In about 24 hours, my dog, Beckett Longdog Woodmill, will go to sleep for the last time.

&lt;p&gt;&lt;img src=&quot;https://cdn.billmill.org/static/blog/beckett/beckett20.png&quot;&gt;

&lt;p&gt;16 years ago, when she was still a puppy who looked like this, she saved my life from a &lt;a href=&quot;https://billmill.org/fire.html&quot;&gt;house fire&lt;/a&gt;. I wish I had taken more pictures of her back then, but it wasn&#x27;t as easy as it is today.

&lt;p&gt;As soon as I moved in for the first time with my then-girlfriend, now wife, we got a dog. She was a rescue dog from the SPCA, and whenever anybody asks us what type of dog she is we tell them she&#x27;s a Baltimore Brown.

&lt;p&gt;&lt;img src=&quot;https://cdn.billmill.org/static/blog/beckett/beckett31.png&quot;&gt;

&lt;p&gt;Beckett lived with us through the great &lt;a href=&quot;https://www.baltimoresun.com/bal-03snow-storygallery.html&quot;&gt;Baltimore blizzard of 2003&lt;/a&gt;.

&lt;p&gt;&lt;img src=&quot;https://cdn.billmill.org/static/blog/beckett/beckett32.png&quot;&gt;

&lt;p&gt;Back in those days, she was a very fast runner.

&lt;p&gt;She was an enthusiastic head tilter.

&lt;p&gt;&lt;img src=&quot;https://cdn.billmill.org/static/blog/beckett/beckett7.png&quot;&gt;

&lt;p&gt;&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/txJcAnmPI68&quot; title=&quot;YouTube video player&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture&quot; allowfullscreen&gt;&lt;/iframe&gt;

&lt;p&gt;She had a funny way of eating spaghetti, and we&#x27;d always feed her some to watch her enthusiastically chomp some down.

&lt;p&gt;&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/FUTjr2h7U0E&quot; title=&quot;YouTube video player&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture&quot; allowfullscreen&gt;&lt;/iframe&gt;

&lt;p&gt;I was very nervous to bring our first child into our house, worried that she&#x27;d be jealous. I didn&#x27;t need to have worried, she was always kind and respectful to them, and loved to eat the snacks they threw on the floor.

&lt;p&gt;&lt;img src=&quot;https://cdn.billmill.org/static/blog/beckett/beckett11.png&quot;&gt;

&lt;p&gt;&lt;img src=&quot;https://cdn.billmill.org/static/blog/beckett/beckett12.png&quot;&gt;

&lt;p&gt;&lt;img src=&quot;https://cdn.billmill.org/static/blog/beckett/beckett13.png&quot;&gt;

&lt;p&gt;&lt;img src=&quot;https://cdn.billmill.org/static/blog/beckett/beckett14.png&quot;&gt;

&lt;p&gt;&lt;img src=&quot;https://cdn.billmill.org/static/blog/beckett/beckett16.png&quot;&gt;

&lt;p&gt;&lt;img src=&quot;https://cdn.billmill.org/static/blog/beckett/beckett22.png&quot;&gt;

&lt;p&gt;In her old age, she turned grey.

&lt;p&gt;&lt;img src=&quot;https://cdn.billmill.org/static/blog/beckett/beckett19.png&quot;&gt;

&lt;p&gt;&lt;img src=&quot;https://cdn.billmill.org/static/blog/beckett/beckett27.png&quot;&gt;

&lt;p&gt;Until she was about 15 years old, she knew that she was not allowed on the furniture. After that, she decided she was old enough to lay on the couch, and we all agreed that was pretty fair. She could be found on her couch almost all the time the last few years.

&lt;p&gt;&lt;img src=&quot;https://cdn.billmill.org/static/blog/beckett/beckett23.png&quot;&gt;

&lt;p&gt;&lt;img src=&quot;https://cdn.billmill.org/static/blog/beckett/beckett25.png&quot;&gt;

&lt;p&gt;&lt;img src=&quot;https://cdn.billmill.org/static/blog/beckett/beckett29.png&quot;&gt;

&lt;p&gt;My wife and I are incredibly grateful to have had such a long time with such a good dog. The world will be poorer for her absence, and we will miss her terribly.


&lt;p&gt;&lt;img src=&quot;https://cdn.billmill.org/static/blog/beckett/beckett26.png&quot;&gt;

&lt;p&gt;&lt;img src=&quot;https://cdn.billmill.org/static/blog/beckett/beckett24.png&quot;&gt;
</summary>
		<content type="html">&lt;p&gt;In about 24 hours, my dog, Beckett Longdog Woodmill, will go to sleep for the last time.

&lt;p&gt;&lt;img src=&quot;https://cdn.billmill.org/static/blog/beckett/beckett20.png&quot;&gt;

&lt;p&gt;16 years ago, when she was still a puppy who looked like this, she saved my life from a &lt;a href=&quot;https://billmill.org/fire.html&quot;&gt;house fire&lt;/a&gt;. I wish I had taken more pictures of her back then, but it wasn&#x27;t as easy as it is today.

&lt;p&gt;As soon as I moved in for the first time with my then-girlfriend, now wife, we got a dog. She was a rescue dog from the SPCA, and whenever anybody asks us what type of dog she is we tell them she&#x27;s a Baltimore Brown.

&lt;p&gt;&lt;img src=&quot;https://cdn.billmill.org/static/blog/beckett/beckett31.png&quot;&gt;

&lt;p&gt;Beckett lived with us through the great &lt;a href=&quot;https://www.baltimoresun.com/bal-03snow-storygallery.html&quot;&gt;Baltimore blizzard of 2003&lt;/a&gt;.

&lt;p&gt;&lt;img src=&quot;https://cdn.billmill.org/static/blog/beckett/beckett32.png&quot;&gt;

&lt;p&gt;Back in those days, she was a very fast runner.

&lt;p&gt;She was an enthusiastic head tilter.

&lt;p&gt;&lt;img src=&quot;https://cdn.billmill.org/static/blog/beckett/beckett7.png&quot;&gt;

&lt;p&gt;&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/txJcAnmPI68&quot; title=&quot;YouTube video player&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture&quot; allowfullscreen&gt;&lt;/iframe&gt;

&lt;p&gt;She had a funny way of eating spaghetti, and we&#x27;d always feed her some to watch her enthusiastically chomp some down.

&lt;p&gt;&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/FUTjr2h7U0E&quot; title=&quot;YouTube video player&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture&quot; allowfullscreen&gt;&lt;/iframe&gt;

&lt;p&gt;I was very nervous to bring our first child into our house, worried that she&#x27;d be jealous. I didn&#x27;t need to have worried, she was always kind and respectful to them, and loved to eat the snacks they threw on the floor.

&lt;p&gt;&lt;img src=&quot;https://cdn.billmill.org/static/blog/beckett/beckett11.png&quot;&gt;

&lt;p&gt;&lt;img src=&quot;https://cdn.billmill.org/static/blog/beckett/beckett12.png&quot;&gt;

&lt;p&gt;&lt;img src=&quot;https://cdn.billmill.org/static/blog/beckett/beckett13.png&quot;&gt;

&lt;p&gt;&lt;img src=&quot;https://cdn.billmill.org/static/blog/beckett/beckett14.png&quot;&gt;

&lt;p&gt;&lt;img src=&quot;https://cdn.billmill.org/static/blog/beckett/beckett16.png&quot;&gt;

&lt;p&gt;&lt;img src=&quot;https://cdn.billmill.org/static/blog/beckett/beckett22.png&quot;&gt;

&lt;p&gt;In her old age, she turned grey.

&lt;p&gt;&lt;img src=&quot;https://cdn.billmill.org/static/blog/beckett/beckett19.png&quot;&gt;

&lt;p&gt;&lt;img src=&quot;https://cdn.billmill.org/static/blog/beckett/beckett27.png&quot;&gt;

&lt;p&gt;Until she was about 15 years old, she knew that she was not allowed on the furniture. After that, she decided she was old enough to lay on the couch, and we all agreed that was pretty fair. She could be found on her couch almost all the time the last few years.

&lt;p&gt;&lt;img src=&quot;https://cdn.billmill.org/static/blog/beckett/beckett23.png&quot;&gt;

&lt;p&gt;&lt;img src=&quot;https://cdn.billmill.org/static/blog/beckett/beckett25.png&quot;&gt;

&lt;p&gt;&lt;img src=&quot;https://cdn.billmill.org/static/blog/beckett/beckett29.png&quot;&gt;

&lt;p&gt;My wife and I are incredibly grateful to have had such a long time with such a good dog. The world will be poorer for her absence, and we will miss her terribly.


&lt;p&gt;&lt;img src=&quot;https://cdn.billmill.org/static/blog/beckett/beckett26.png&quot;&gt;

&lt;p&gt;&lt;img src=&quot;https://cdn.billmill.org/static/blog/beckett/beckett24.png&quot;&gt;
</content>
	</entry>
	<entry>
		<title>Let&#x27;s write a bash script</title>
		<link href="https://billmill.org/bash_scripts.html" />
		<id>https://billmill.org/bash_scripts.html</id>
		<updated>2022-10-31T21:00:00Z</updated>
		<summary type="html">
&lt;p&gt;I used to fear and loathe writing bash scripts, but nowadays I enjoy the process. &lt;em&gt;Let&#x27;s write a bash
    script&lt;/em&gt;.

&lt;h1&gt;The Prerequisites&lt;/h1&gt;

&lt;p&gt;The #1 thing that has made me comfortable writing bash scripts is &lt;a
    href=&quot;https://github.com/koalaman/shellcheck&quot;&gt;shellcheck&lt;/a&gt;. Despite being written in haskell (jokes) it&#x27;s the most
  useful linter, by far, that I have ever used.

&lt;p&gt;Before I had shellcheck, I lacked confidence when writing bash scripts. With the lessons I learned from it and its
  superb &lt;a href=&quot;https://github.com/koalaman/shellcheck/wiki/SC1118&quot;&gt;wiki&lt;/a&gt;, I have become a proficient bash coder
  mostly confident that I will not wipe my hard drive by accident.

&lt;p&gt;For this script, I&#x27;m going to write the basics of a script to download youtube videos and make gifs out of them. If
  you want to follow along at home, you should install &lt;a href=&quot;https://github.com/yt-dlp/yt-dlp&quot;&gt;yt-dlp&lt;/a&gt; and &lt;a
    href=&quot;https://ffmpeg.org&quot;&gt;ffmpeg&lt;/a&gt;.
&lt;p&gt;(For a fully fleshed-out version of this script, check out &lt;a
    href=&quot;https://github.com/llimllib/ytgif/blob/main/ytgif.bash&quot;&gt;ytgif&lt;/a&gt;)

&lt;h2&gt;Let&#x27;s start&lt;/h2&gt;

&lt;p&gt;The first two lines of every bash script I write start with:

&lt;div class=&quot;highlight&quot; style=&quot;background: #ffffff&quot;&gt;&lt;pre style=&quot;line-height: 125%;&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;span style=&quot;color: #177500&quot;&gt;#!/usr/bin/env bash&lt;/span&gt;
&lt;span style=&quot;color: #A90D91&quot;&gt;set&lt;/span&gt; -euo pipefail
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;The first line is a &lt;a href=&quot;https://en.wikipedia.org/wiki/Shebang_(Unix)&quot;&gt;shebang&lt;/a&gt; that tells our operating
  system we want it to use bash to execute our code.

&lt;p&gt;The second is an incantation to &lt;a href=&quot;https://www.gnu.org/software/bash/manual/bash.html#The-Set-Builtin-1&quot;&gt;tell
    bash&lt;/a&gt; that we want the script:

&lt;ul&gt;
  &lt;li&gt;&lt;span class=&quot;highlight inline&quot; style=&quot;color: #000&quot;&gt;-e&lt;/span&gt;
: to exit if any command fails
  &lt;li&gt;&lt;span class=&quot;highlight inline&quot; style=&quot;color: #000&quot;&gt;-u&lt;/span&gt;
: to fail if we try to reference an undefined variable&lt;/li&gt;
  &lt;li&gt;&lt;span class=&quot;highlight inline&quot;&gt;-o pipefail&lt;/span&gt;: to fail a subcommand if any of its commands failed&lt;sup&gt;&lt;a id=&quot;l1&quot; href=&quot;#f1&quot;&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This makes it a tiny bit safer to write bash - it&#x27;s still a footgun that fires razor blade grenades, but there&#x27;s a safety on the trigger.

&lt;h2&gt;Usage&lt;/h2&gt;

&lt;p&gt;The next thing I do is to write a usage function. Yes, bash has functions. Yes, they&#x27;re awful. Yes, you should still use them.

&lt;p&gt;This function prints out a documentation string and exits the program. Whenever our script is unsure about its arguments or spots an error, it will call usage to give the user some help and exit the program.

&lt;div class=&quot;highlight&quot; style=&quot;background: #ffffff&quot;&gt;&lt;pre style=&quot;line-height: 125%;&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;span style=&quot;color: #A90D91&quot;&gt;function&lt;/span&gt; usage &lt;span style=&quot;color: #000&quot;&gt;{&lt;/span&gt;
&lt;span style=&quot;color: #A90D91&quot;&gt;function&lt;/span&gt; usage &lt;span style=&quot;color: #000&quot;&gt;{&lt;/span&gt;
        cat &amp;lt;&amp;lt;&lt;span style=&quot;color: #C41A16&quot;&gt;&amp;quot;EOF&amp;quot;&lt;/span&gt;
Usage: youtube-gif &lt;span style=&quot;color: #000&quot;&gt;[&lt;/span&gt;OPTIONS&lt;span style=&quot;color: #000&quot;&gt;]&lt;/span&gt; &amp;lt;youtube-url&amp;gt; &amp;lt;output_file&amp;gt;

Download the video named &lt;span style=&quot;color: #A90D91&quot;&gt;in&lt;/span&gt; youtube-url and create a gif of it.

OPTIONS

  -v:             print more verbose output

EXAMPLES

  &amp;lt;TODO&amp;gt;

EOF
        &lt;span style=&quot;color: #A90D91&quot;&gt;exit&lt;/span&gt; &lt;span style=&quot;color: #1C01CE&quot;&gt;1&lt;/span&gt;
&lt;span style=&quot;color: #000&quot;&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;I put this usage function first because it helps serve as documentation for what&#x27;s going on with the script. Remember that anyone unfortunate enough to have to read your bash script may be frightened by bash, and be kind.

&lt;h2&gt;Arguments&lt;/h2&gt;

&lt;p&gt;Parsing arguments in bash relies


&lt;p id=&quot;f1&quot;&gt;1: there are various problems making pipefail imperfect. It&#x27;s still better than not setting it. &lt;sup&gt;&lt;a
      href=&quot;#l1&quot;&gt;up&lt;/a&gt;&lt;/sup&gt;
</summary>
		<content type="html">
&lt;p&gt;I used to fear and loathe writing bash scripts, but nowadays I enjoy the process. &lt;em&gt;Let&#x27;s write a bash
    script&lt;/em&gt;.

&lt;h1&gt;The Prerequisites&lt;/h1&gt;

&lt;p&gt;The #1 thing that has made me comfortable writing bash scripts is &lt;a
    href=&quot;https://github.com/koalaman/shellcheck&quot;&gt;shellcheck&lt;/a&gt;. Despite being written in haskell (jokes) it&#x27;s the most
  useful linter, by far, that I have ever used.

&lt;p&gt;Before I had shellcheck, I lacked confidence when writing bash scripts. With the lessons I learned from it and its
  superb &lt;a href=&quot;https://github.com/koalaman/shellcheck/wiki/SC1118&quot;&gt;wiki&lt;/a&gt;, I have become a proficient bash coder
  mostly confident that I will not wipe my hard drive by accident.

&lt;p&gt;For this script, I&#x27;m going to write the basics of a script to download youtube videos and make gifs out of them. If
  you want to follow along at home, you should install &lt;a href=&quot;https://github.com/yt-dlp/yt-dlp&quot;&gt;yt-dlp&lt;/a&gt; and &lt;a
    href=&quot;https://ffmpeg.org&quot;&gt;ffmpeg&lt;/a&gt;.
&lt;p&gt;(For a fully fleshed-out version of this script, check out &lt;a
    href=&quot;https://github.com/llimllib/ytgif/blob/main/ytgif.bash&quot;&gt;ytgif&lt;/a&gt;)

&lt;h2&gt;Let&#x27;s start&lt;/h2&gt;

&lt;p&gt;The first two lines of every bash script I write start with:

&lt;div class=&quot;highlight&quot; style=&quot;background: #ffffff&quot;&gt;&lt;pre style=&quot;line-height: 125%;&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;span style=&quot;color: #177500&quot;&gt;#!/usr/bin/env bash&lt;/span&gt;
&lt;span style=&quot;color: #A90D91&quot;&gt;set&lt;/span&gt; -euo pipefail
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;The first line is a &lt;a href=&quot;https://en.wikipedia.org/wiki/Shebang_(Unix)&quot;&gt;shebang&lt;/a&gt; that tells our operating
  system we want it to use bash to execute our code.

&lt;p&gt;The second is an incantation to &lt;a href=&quot;https://www.gnu.org/software/bash/manual/bash.html#The-Set-Builtin-1&quot;&gt;tell
    bash&lt;/a&gt; that we want the script:

&lt;ul&gt;
  &lt;li&gt;&lt;span class=&quot;highlight inline&quot; style=&quot;color: #000&quot;&gt;-e&lt;/span&gt;
: to exit if any command fails
  &lt;li&gt;&lt;span class=&quot;highlight inline&quot; style=&quot;color: #000&quot;&gt;-u&lt;/span&gt;
: to fail if we try to reference an undefined variable&lt;/li&gt;
  &lt;li&gt;&lt;span class=&quot;highlight inline&quot;&gt;-o pipefail&lt;/span&gt;: to fail a subcommand if any of its commands failed&lt;sup&gt;&lt;a id=&quot;l1&quot; href=&quot;#f1&quot;&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This makes it a tiny bit safer to write bash - it&#x27;s still a footgun that fires razor blade grenades, but there&#x27;s a safety on the trigger.

&lt;h2&gt;Usage&lt;/h2&gt;

&lt;p&gt;The next thing I do is to write a usage function. Yes, bash has functions. Yes, they&#x27;re awful. Yes, you should still use them.

&lt;p&gt;This function prints out a documentation string and exits the program. Whenever our script is unsure about its arguments or spots an error, it will call usage to give the user some help and exit the program.

&lt;div class=&quot;highlight&quot; style=&quot;background: #ffffff&quot;&gt;&lt;pre style=&quot;line-height: 125%;&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;span style=&quot;color: #A90D91&quot;&gt;function&lt;/span&gt; usage &lt;span style=&quot;color: #000&quot;&gt;{&lt;/span&gt;
&lt;span style=&quot;color: #A90D91&quot;&gt;function&lt;/span&gt; usage &lt;span style=&quot;color: #000&quot;&gt;{&lt;/span&gt;
        cat &amp;lt;&amp;lt;&lt;span style=&quot;color: #C41A16&quot;&gt;&amp;quot;EOF&amp;quot;&lt;/span&gt;
Usage: youtube-gif &lt;span style=&quot;color: #000&quot;&gt;[&lt;/span&gt;OPTIONS&lt;span style=&quot;color: #000&quot;&gt;]&lt;/span&gt; &amp;lt;youtube-url&amp;gt; &amp;lt;output_file&amp;gt;

Download the video named &lt;span style=&quot;color: #A90D91&quot;&gt;in&lt;/span&gt; youtube-url and create a gif of it.

OPTIONS

  -v:             print more verbose output

EXAMPLES

  &amp;lt;TODO&amp;gt;

EOF
        &lt;span style=&quot;color: #A90D91&quot;&gt;exit&lt;/span&gt; &lt;span style=&quot;color: #1C01CE&quot;&gt;1&lt;/span&gt;
&lt;span style=&quot;color: #000&quot;&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;I put this usage function first because it helps serve as documentation for what&#x27;s going on with the script. Remember that anyone unfortunate enough to have to read your bash script may be frightened by bash, and be kind.

&lt;h2&gt;Arguments&lt;/h2&gt;

&lt;p&gt;Parsing arguments in bash relies


&lt;p id=&quot;f1&quot;&gt;1: there are various problems making pipefail imperfect. It&#x27;s still better than not setting it. &lt;sup&gt;&lt;a
      href=&quot;#l1&quot;&gt;up&lt;/a&gt;&lt;/sup&gt;
</content>
	</entry>
	<entry>
		<title>Links for the Week of October 10</title>
		<link href="https://billmill.org/week_of_oct_10.html" />
		<id>https://billmill.org/week_of_oct_10.html</id>
		<updated>2022-10-17T23:00:00Z</updated>
		<summary type="html">
&lt;ul class=&quot;spaciouslist&quot;&gt;
  &lt;li&gt;The &lt;a href=&quot;https://github.com/swar/nba_api&quot;&gt;NBA API&lt;/a&gt; wrapper by Swar Patel, Randy Forbes et al, is a really nice wrapper around the nba.com API that seems to be semi-officially tolerated by the NBA&lt;/li&gt;
  &lt;li&gt;I love the &lt;a href=&quot;https://github.com/tigerbeetledb/tigerbeetle/blob/main/docs/TIGER_STYLE.md&quot;&gt;TIGER_STYLE&lt;/a&gt; document from the tigerbeetle database, which lays out their style and the axioms they&#x27;ve chosen to abide by. More projects ought to lay out their stances as clearly as this, and I&#x27;ve tried to start doing so in my own projects.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://superset.apache.org/&quot;&gt;Apache Superset&lt;/a&gt; is an interesting-looking tool that I found from &lt;a href=&quot;https://duckdb.org/2022/10/12/modern-data-stack-in-a-box.html&quot;&gt;this duckDB blog article&lt;/a&gt;. I tried to play around with it though, and it seemed pretty painful to actually get data into.&lt;/li&gt;
  &lt;li&gt;I like &lt;a href=&quot;https://driftingin.space/posts/plane&quot;&gt;this idea&lt;/a&gt; of per-document backends; it introduces a lot of complexities but also eases some of the problems of stateless web development for particular workloads. I have been thinking about workloads like this in combination with a site that uses many SQLite databases instead of one large relational data store.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://remake.readthedocs.io/en/latest/#&quot;&gt;remake&lt;/a&gt; looks neat, a GNU Make-alike which &quot;adds profiling, comprehensible tracing, extended error messages and a debugger&quot;. I love make, and this seems like a useful complementary tool&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.scratchapixel.com/&quot;&gt;Scratchapixel&lt;/a&gt; looks like an interesting series of computer graphics tutorials, which is a thing I love to collect but ultimately rarely have the time to mess around with. Aspirations though.&lt;/li&gt;
  &lt;li&gt;This week I learned about the &lt;span class=&quot;highlight inline&quot;&gt;reveal_type&lt;/span&gt; &lt;a href=&quot;https://github.com/microsoft/pyright/blob/main/docs/type-concepts.md#debugging-inferred-types&quot;&gt;function of pyright&lt;/a&gt;, which made my debugging &lt;a href=&quot;https://notes.billmill.org/programming/python/pyright.html&quot;&gt;life easier&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.postgresql.org/about/news/postgresql-15-released-2526/&quot;&gt;postgresql 15 was released&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://obsidian.md/1.0&quot;&gt;obsidian 1.0 was released&lt;/a&gt;. Obsidian has been the first note-taking tool I&#x27;ve ever found simple and compelling enough to stick with, and I&#x27;m very happy with it.&lt;/li&gt;
  &lt;li&gt;Enjoyed this &lt;a href=&quot;https://twitter.com/CommonFateTech/status/1580449400580472832&quot;&gt;Database alignment chart&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Greg Linares tells the story of &lt;a href=&quot;https://twitter.com/Laughing_Mantis/status/1579550302172508161&quot;&gt;exploits delivered on drones&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Warren Craddock tweeted a fascinating &lt;a href=&quot;https://twitter.com/warren_craddock/status/1579532951624175616&quot;&gt;tale of companies too obsessed with themselves to notice their own failures.&lt;/a&gt; How do you dream big, but also stop when it&#x27;s clear you have a fatal flaw?&lt;/li&gt;
  &lt;li&gt;Russ Cox &lt;a href=&quot;https://github.com/golang/go/discussions/56010&quot;&gt;considers a big backwards-incompatible change&lt;/a&gt; to go, to eliminate the &lt;a href=&quot;https://github.com/golang/go/issues/20733&quot;&gt;loop variable capture&lt;/a&gt; problem.
  &lt;li&gt;I &lt;a href=&quot;https://llimllib.github.io/nbastats/teams/&quot;&gt;created a diamond chart&lt;/a&gt; of NBA team efficiencies and wrote &lt;a href=&quot;https://twitter.com/llimllib/status/1580379876112052225&quot;&gt;a little twitter thread about it&lt;/a&gt;. Hopefully more on this soon.&lt;/li&gt;
  &lt;li&gt;I got a new work computer, so I created &lt;a href=&quot;https://gist.github.com/llimllib/5f01219954e213ec57ae267008e702e5&quot;&gt;a new version of my mac OS X installation script&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;I &lt;a href=&quot;https://twitter.com/llimllib/status/1580736384431972353&quot;&gt;added OpenAI whisper&lt;/a&gt; support to &lt;a href=&quot;https://github.com/llimllib/ytgif&quot;&gt;ytgif&lt;/a&gt;, and made some Dr. Strangelove and Dr. Frankenstein gifs.
    &lt;p&gt;&lt;img src=&quot;https://cdn.billmill.org/static/gifs/frankenstein.gif&quot;&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Music&lt;/h2&gt;

&lt;ul class=&quot;spaciouslist&quot;&gt;
  &lt;li&gt;Nobody&#x27;s Fault But Mine is an American classic. I used to listen to the blues a lot, and I might have to go back and revisit some of my favorites.

    &lt;p&gt;&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/Y_o4omd8T5c&quot; title=&quot;YouTube video player&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/li&gt;
  &lt;li&gt;There&#x27;s more, new, King Gizzard this week. Just an unbelievably productive band. &lt;a href=&quot;https://www.stereogum.com/2202315/king-gizzard-and-the-lizard-wizard-stu-mackenzie/interviews/cover-story/&quot;&gt;This article&lt;/a&gt; dives into their process a bit.

    &lt;p&gt;&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/JRF8Nko1EDY&quot; title=&quot;YouTube video player&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/li&gt;
  &lt;li&gt;I posted about Hania Rani last week, and I dove in some more this week. &lt;a href=&quot;https://www.youtube.com/watch?v=J5oZ80Daduc&quot;&gt;This hour long set is great&lt;/a&gt;, as is this KEXP set:
    &lt;p&gt;&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/_3EuiU1qdpE&quot; title=&quot;YouTube video player&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/li&gt;
  &lt;li&gt;
&lt;/ul&gt;
</summary>
		<content type="html">
&lt;ul class=&quot;spaciouslist&quot;&gt;
  &lt;li&gt;The &lt;a href=&quot;https://github.com/swar/nba_api&quot;&gt;NBA API&lt;/a&gt; wrapper by Swar Patel, Randy Forbes et al, is a really nice wrapper around the nba.com API that seems to be semi-officially tolerated by the NBA&lt;/li&gt;
  &lt;li&gt;I love the &lt;a href=&quot;https://github.com/tigerbeetledb/tigerbeetle/blob/main/docs/TIGER_STYLE.md&quot;&gt;TIGER_STYLE&lt;/a&gt; document from the tigerbeetle database, which lays out their style and the axioms they&#x27;ve chosen to abide by. More projects ought to lay out their stances as clearly as this, and I&#x27;ve tried to start doing so in my own projects.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://superset.apache.org/&quot;&gt;Apache Superset&lt;/a&gt; is an interesting-looking tool that I found from &lt;a href=&quot;https://duckdb.org/2022/10/12/modern-data-stack-in-a-box.html&quot;&gt;this duckDB blog article&lt;/a&gt;. I tried to play around with it though, and it seemed pretty painful to actually get data into.&lt;/li&gt;
  &lt;li&gt;I like &lt;a href=&quot;https://driftingin.space/posts/plane&quot;&gt;this idea&lt;/a&gt; of per-document backends; it introduces a lot of complexities but also eases some of the problems of stateless web development for particular workloads. I have been thinking about workloads like this in combination with a site that uses many SQLite databases instead of one large relational data store.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://remake.readthedocs.io/en/latest/#&quot;&gt;remake&lt;/a&gt; looks neat, a GNU Make-alike which &quot;adds profiling, comprehensible tracing, extended error messages and a debugger&quot;. I love make, and this seems like a useful complementary tool&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.scratchapixel.com/&quot;&gt;Scratchapixel&lt;/a&gt; looks like an interesting series of computer graphics tutorials, which is a thing I love to collect but ultimately rarely have the time to mess around with. Aspirations though.&lt;/li&gt;
  &lt;li&gt;This week I learned about the &lt;span class=&quot;highlight inline&quot;&gt;reveal_type&lt;/span&gt; &lt;a href=&quot;https://github.com/microsoft/pyright/blob/main/docs/type-concepts.md#debugging-inferred-types&quot;&gt;function of pyright&lt;/a&gt;, which made my debugging &lt;a href=&quot;https://notes.billmill.org/programming/python/pyright.html&quot;&gt;life easier&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.postgresql.org/about/news/postgresql-15-released-2526/&quot;&gt;postgresql 15 was released&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://obsidian.md/1.0&quot;&gt;obsidian 1.0 was released&lt;/a&gt;. Obsidian has been the first note-taking tool I&#x27;ve ever found simple and compelling enough to stick with, and I&#x27;m very happy with it.&lt;/li&gt;
  &lt;li&gt;Enjoyed this &lt;a href=&quot;https://twitter.com/CommonFateTech/status/1580449400580472832&quot;&gt;Database alignment chart&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Greg Linares tells the story of &lt;a href=&quot;https://twitter.com/Laughing_Mantis/status/1579550302172508161&quot;&gt;exploits delivered on drones&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Warren Craddock tweeted a fascinating &lt;a href=&quot;https://twitter.com/warren_craddock/status/1579532951624175616&quot;&gt;tale of companies too obsessed with themselves to notice their own failures.&lt;/a&gt; How do you dream big, but also stop when it&#x27;s clear you have a fatal flaw?&lt;/li&gt;
  &lt;li&gt;Russ Cox &lt;a href=&quot;https://github.com/golang/go/discussions/56010&quot;&gt;considers a big backwards-incompatible change&lt;/a&gt; to go, to eliminate the &lt;a href=&quot;https://github.com/golang/go/issues/20733&quot;&gt;loop variable capture&lt;/a&gt; problem.
  &lt;li&gt;I &lt;a href=&quot;https://llimllib.github.io/nbastats/teams/&quot;&gt;created a diamond chart&lt;/a&gt; of NBA team efficiencies and wrote &lt;a href=&quot;https://twitter.com/llimllib/status/1580379876112052225&quot;&gt;a little twitter thread about it&lt;/a&gt;. Hopefully more on this soon.&lt;/li&gt;
  &lt;li&gt;I got a new work computer, so I created &lt;a href=&quot;https://gist.github.com/llimllib/5f01219954e213ec57ae267008e702e5&quot;&gt;a new version of my mac OS X installation script&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;I &lt;a href=&quot;https://twitter.com/llimllib/status/1580736384431972353&quot;&gt;added OpenAI whisper&lt;/a&gt; support to &lt;a href=&quot;https://github.com/llimllib/ytgif&quot;&gt;ytgif&lt;/a&gt;, and made some Dr. Strangelove and Dr. Frankenstein gifs.
    &lt;p&gt;&lt;img src=&quot;https://cdn.billmill.org/static/gifs/frankenstein.gif&quot;&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Music&lt;/h2&gt;

&lt;ul class=&quot;spaciouslist&quot;&gt;
  &lt;li&gt;Nobody&#x27;s Fault But Mine is an American classic. I used to listen to the blues a lot, and I might have to go back and revisit some of my favorites.

    &lt;p&gt;&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/Y_o4omd8T5c&quot; title=&quot;YouTube video player&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/li&gt;
  &lt;li&gt;There&#x27;s more, new, King Gizzard this week. Just an unbelievably productive band. &lt;a href=&quot;https://www.stereogum.com/2202315/king-gizzard-and-the-lizard-wizard-stu-mackenzie/interviews/cover-story/&quot;&gt;This article&lt;/a&gt; dives into their process a bit.

    &lt;p&gt;&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/JRF8Nko1EDY&quot; title=&quot;YouTube video player&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/li&gt;
  &lt;li&gt;I posted about Hania Rani last week, and I dove in some more this week. &lt;a href=&quot;https://www.youtube.com/watch?v=J5oZ80Daduc&quot;&gt;This hour long set is great&lt;/a&gt;, as is this KEXP set:
    &lt;p&gt;&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/_3EuiU1qdpE&quot; title=&quot;YouTube video player&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/li&gt;
  &lt;li&gt;
&lt;/ul&gt;
</content>
	</entry>
	<entry>
		<title>Links for the Week of October 3</title>
		<link href="https://billmill.org/week_of_oct_3_2022.html" />
		<id>https://billmill.org/week_of_oct_3_2022.html</id>
		<updated>2022-10-10T23:00:00Z</updated>
		<summary type="html">
&lt;ul class=&quot;spaciouslist&quot;&gt;
    &lt;li&gt;I &lt;a href=&quot;https://twitter.com/llimllib/status/1579292356343484419&quot;&gt;learned a bit about writing C this weekend&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;Last year Richard Feldman gave &lt;a href=&quot;https://www.youtube.com/watch?v=vzfy4EKwG_Y&amp;feature=emb_title&quot;&gt;a very neat talk&lt;/a&gt; at Strange Loop about using reference counting to find palces where a compiler for an immutable language can silently perform mutation for performance gains.&lt;/li&gt;
    &lt;li&gt;Nikolay Dubina &lt;a href=&quot;https://github.com/nikolaydubina/go-recipes&quot;&gt;has collected&lt;/a&gt; a &quot;handy list of well-known and &lt;em&gt;lesser&lt;/em&gt;-known tools for Go projects&quot;&lt;/li&gt;
    &lt;li&gt;Raghu R wrote &lt;a href=&quot;https://github.com/razetime/ngn-k-tutorial&quot;&gt;this tutorial&lt;/a&gt; for the k language, which I admire from afar. I aspire to go through this some day, but probably never will.&lt;/li&gt;
    &lt;li&gt;Jason Miller collected &lt;a href=&quot;https://jasonformat.com/application-holotypes/&quot;&gt;this list&lt;/a&gt; of &quot;Application Holotypes&quot;, an attempt to roughly categorize types of applications and the architectures appropriate to them.&lt;/li&gt;
    &lt;li&gt;QP Hou created &lt;a href=&quot;https://github.com/roapi/roapi&quot;&gt;roapi&lt;/a&gt;, which &quot;automatically spins up read-only APIs for static datasets without requiring you to write a single line of code.&quot; A very neat idea I don&#x27;t have a direct use case for but I&#x27;ll be looking for one.&lt;/li&gt;
    &lt;li&gt;I&#x27;ve known about &lt;a href=&quot;https://rr-project.org/&quot;&gt;rr&lt;/a&gt; before, but I was reminded of it this week. It&#x27;s a debugger that enables you to record the events that occur in an application execution and replay them - a practical &lt;a href=&quot;https://en.wikipedia.org/wiki/Time_travel_debugging&quot;&gt;time travel debugger&lt;/a&gt;.&lt;/li&gt;
    &lt;li&gt;The supabase folks teamed up with &quot;snaplet&quot; to get &lt;a href=&quot;https://www.snaplet.dev/post/postgresql-in-the-browser&quot;&gt;postgresql running in the browser&lt;/a&gt;. The neatest part of this trick is that they used &lt;a href=&quot;https://github.com/copy/v86&quot;&gt;v86&lt;/a&gt; to run a whole linux VM in WASM to do so.&lt;/li&gt;
    &lt;li&gt;I &lt;a href=&quot;https://twitter.com/llimllib/status/1578581742868275200&quot;&gt;made&lt;/a&gt; an &lt;a href=&quot;https://github.com/llimllib/observable-plot-template&quot;&gt;observable plot template repository&lt;/a&gt; becauase I always have to re-learn how to create an npm app, and I wanted to be able to at least maintain that knowledge.&lt;/li&gt;
    &lt;li&gt;Fabien Geisen &lt;a href=&quot;https://fgiesen.wordpress.com/2022/10/06/on-alphatensors-new-matrix-multiplication-algorithms/&quot;&gt;explains the AlphaTensor Matrix Multiplcation paper&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.scattered-thoughts.net/log/0028&quot;&gt;A report&lt;/a&gt; from Jamie Brandon on his attempt to write a SQL parser in Zig in one week. Dan Luu &lt;a href=&quot;https://twitter.com/danluu/status/1576979534666420229&quot;&gt;asked on twitter&lt;/a&gt; what similar examples there are where somebody presents a project you can follow along with, which spanwed an interesting thread. I suggested &lt;a href=&quot;https://twitter.com/llimllib/status/1577016099757232128&quot;&gt;a few&lt;/a&gt; examples, including &lt;a href=&quot;https://www.youtube.com/playlist?list=PLU94OURih-CiP4WxKSMt3UcwMSDM3aTtX&quot;&gt;Bitwise&lt;/a&gt; by Per Vognsen, which is criminally under-rated.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Music&lt;/h2&gt;

&lt;ul class=&quot;spaciouslist&quot;&gt;
    &lt;li&gt;Via this video of Hania Rani playing a gorgeous, bizarre, vertical piano before it goes to Nils Frahm&#x27;s studio, I discovered her lovely piano work. ht &lt;a href=&quot;https://twitter.com/timbray/status/1577892665185939456&quot;&gt;Tim Bray&lt;/a&gt;.
    &lt;p&gt;&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/c8veLuNmQbI&quot; title=&quot;YouTube video player&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture&quot; allowfullscreen&gt;&lt;/iframe&gt;
    &lt;li&gt;New King Gizzard album this week! I love this extremely prolific and genre-hopping Aussie band. The new album is mostly in a jam-rock groove, which is not normal for them, but not being normal is normal for them. I like this album more than anything they&#x27;ve released in the last few years.
    &lt;p&gt;&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/ydeV1_8pM4o&quot; title=&quot;YouTube video player&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture&quot; allowfullscreen&gt;&lt;/iframe&gt;
&lt;/ul&gt;
</summary>
		<content type="html">
&lt;ul class=&quot;spaciouslist&quot;&gt;
    &lt;li&gt;I &lt;a href=&quot;https://twitter.com/llimllib/status/1579292356343484419&quot;&gt;learned a bit about writing C this weekend&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;Last year Richard Feldman gave &lt;a href=&quot;https://www.youtube.com/watch?v=vzfy4EKwG_Y&amp;feature=emb_title&quot;&gt;a very neat talk&lt;/a&gt; at Strange Loop about using reference counting to find palces where a compiler for an immutable language can silently perform mutation for performance gains.&lt;/li&gt;
    &lt;li&gt;Nikolay Dubina &lt;a href=&quot;https://github.com/nikolaydubina/go-recipes&quot;&gt;has collected&lt;/a&gt; a &quot;handy list of well-known and &lt;em&gt;lesser&lt;/em&gt;-known tools for Go projects&quot;&lt;/li&gt;
    &lt;li&gt;Raghu R wrote &lt;a href=&quot;https://github.com/razetime/ngn-k-tutorial&quot;&gt;this tutorial&lt;/a&gt; for the k language, which I admire from afar. I aspire to go through this some day, but probably never will.&lt;/li&gt;
    &lt;li&gt;Jason Miller collected &lt;a href=&quot;https://jasonformat.com/application-holotypes/&quot;&gt;this list&lt;/a&gt; of &quot;Application Holotypes&quot;, an attempt to roughly categorize types of applications and the architectures appropriate to them.&lt;/li&gt;
    &lt;li&gt;QP Hou created &lt;a href=&quot;https://github.com/roapi/roapi&quot;&gt;roapi&lt;/a&gt;, which &quot;automatically spins up read-only APIs for static datasets without requiring you to write a single line of code.&quot; A very neat idea I don&#x27;t have a direct use case for but I&#x27;ll be looking for one.&lt;/li&gt;
    &lt;li&gt;I&#x27;ve known about &lt;a href=&quot;https://rr-project.org/&quot;&gt;rr&lt;/a&gt; before, but I was reminded of it this week. It&#x27;s a debugger that enables you to record the events that occur in an application execution and replay them - a practical &lt;a href=&quot;https://en.wikipedia.org/wiki/Time_travel_debugging&quot;&gt;time travel debugger&lt;/a&gt;.&lt;/li&gt;
    &lt;li&gt;The supabase folks teamed up with &quot;snaplet&quot; to get &lt;a href=&quot;https://www.snaplet.dev/post/postgresql-in-the-browser&quot;&gt;postgresql running in the browser&lt;/a&gt;. The neatest part of this trick is that they used &lt;a href=&quot;https://github.com/copy/v86&quot;&gt;v86&lt;/a&gt; to run a whole linux VM in WASM to do so.&lt;/li&gt;
    &lt;li&gt;I &lt;a href=&quot;https://twitter.com/llimllib/status/1578581742868275200&quot;&gt;made&lt;/a&gt; an &lt;a href=&quot;https://github.com/llimllib/observable-plot-template&quot;&gt;observable plot template repository&lt;/a&gt; becauase I always have to re-learn how to create an npm app, and I wanted to be able to at least maintain that knowledge.&lt;/li&gt;
    &lt;li&gt;Fabien Geisen &lt;a href=&quot;https://fgiesen.wordpress.com/2022/10/06/on-alphatensors-new-matrix-multiplication-algorithms/&quot;&gt;explains the AlphaTensor Matrix Multiplcation paper&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.scattered-thoughts.net/log/0028&quot;&gt;A report&lt;/a&gt; from Jamie Brandon on his attempt to write a SQL parser in Zig in one week. Dan Luu &lt;a href=&quot;https://twitter.com/danluu/status/1576979534666420229&quot;&gt;asked on twitter&lt;/a&gt; what similar examples there are where somebody presents a project you can follow along with, which spanwed an interesting thread. I suggested &lt;a href=&quot;https://twitter.com/llimllib/status/1577016099757232128&quot;&gt;a few&lt;/a&gt; examples, including &lt;a href=&quot;https://www.youtube.com/playlist?list=PLU94OURih-CiP4WxKSMt3UcwMSDM3aTtX&quot;&gt;Bitwise&lt;/a&gt; by Per Vognsen, which is criminally under-rated.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Music&lt;/h2&gt;

&lt;ul class=&quot;spaciouslist&quot;&gt;
    &lt;li&gt;Via this video of Hania Rani playing a gorgeous, bizarre, vertical piano before it goes to Nils Frahm&#x27;s studio, I discovered her lovely piano work. ht &lt;a href=&quot;https://twitter.com/timbray/status/1577892665185939456&quot;&gt;Tim Bray&lt;/a&gt;.
    &lt;p&gt;&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/c8veLuNmQbI&quot; title=&quot;YouTube video player&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture&quot; allowfullscreen&gt;&lt;/iframe&gt;
    &lt;li&gt;New King Gizzard album this week! I love this extremely prolific and genre-hopping Aussie band. The new album is mostly in a jam-rock groove, which is not normal for them, but not being normal is normal for them. I like this album more than anything they&#x27;ve released in the last few years.
    &lt;p&gt;&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/ydeV1_8pM4o&quot; title=&quot;YouTube video player&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture&quot; allowfullscreen&gt;&lt;/iframe&gt;
&lt;/ul&gt;
</content>
	</entry>
	<entry>
		<title>Links for the Week of September 26</title>
		<link href="https://billmill.org/week_of_sep_26_2022.html" />
		<id>https://billmill.org/week_of_sep_26_2022.html</id>
		<updated>2022-10-03T17:00:00Z</updated>
		<summary type="html">
&lt;ul class=&quot;spaciouslist&quot;&gt;
  &lt;li&gt;Simon Willison &lt;a href=&quot;https://simonwillison.net/2022/Oct/1/software-engineering-practices/&quot;&gt;lists some core engineering practices&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;I wrote &lt;a href=&quot;https://github.com/llimllib/ytgif&quot;&gt;a little tool&lt;/a&gt; for turning youtube videos into gifs with &lt;a href=&quot;https://ffmpeg.org/&quot;&gt;ffmpeg&lt;/a&gt; and &lt;a href=&quot;https://github.com/yt-dlp/yt-dlp&quot;&gt;yt-dlp&lt;/a&gt;. Short twitter thread about it &lt;a href=&quot;https://twitter.com/llimllib/status/1575104258373918720&quot;&gt;here&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Casey Muratori makes the case that &lt;a href=&quot;https://www.computerenhance.com/p/turns-are-better-than-radians&quot;&gt;turns are better than radians&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;I&#x27;ve been considering giving the &lt;a href=&quot;https://github.com/helix-editor/helix&quot;&gt;helix editor&lt;/a&gt; a serious try, but it&#x27;s hard to even consider giving up my vim familiarity
&lt;/ul&gt;

&lt;h2&gt;Music&lt;/h2&gt;

&lt;ul class=&quot;spaciouslist&quot;&gt;
  &lt;li&gt;I listened to Hot Rats a lot this week, one of my favorite albums:

    &lt;p&gt;&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/RdU4FHH4FnE&quot; title=&quot;YouTube video player&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/li&gt;
  &lt;li&gt;The Yeah Yeah Yeahs&#x27; new album is a fun jam

    &lt;p&gt;&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/ckM_TklU_AQ&quot; title=&quot;YouTube video player&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture&quot; allowfullscreen&gt;&lt;/iframe&gt;
&lt;/ul&gt;
</summary>
		<content type="html">
&lt;ul class=&quot;spaciouslist&quot;&gt;
  &lt;li&gt;Simon Willison &lt;a href=&quot;https://simonwillison.net/2022/Oct/1/software-engineering-practices/&quot;&gt;lists some core engineering practices&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;I wrote &lt;a href=&quot;https://github.com/llimllib/ytgif&quot;&gt;a little tool&lt;/a&gt; for turning youtube videos into gifs with &lt;a href=&quot;https://ffmpeg.org/&quot;&gt;ffmpeg&lt;/a&gt; and &lt;a href=&quot;https://github.com/yt-dlp/yt-dlp&quot;&gt;yt-dlp&lt;/a&gt;. Short twitter thread about it &lt;a href=&quot;https://twitter.com/llimllib/status/1575104258373918720&quot;&gt;here&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Casey Muratori makes the case that &lt;a href=&quot;https://www.computerenhance.com/p/turns-are-better-than-radians&quot;&gt;turns are better than radians&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;I&#x27;ve been considering giving the &lt;a href=&quot;https://github.com/helix-editor/helix&quot;&gt;helix editor&lt;/a&gt; a serious try, but it&#x27;s hard to even consider giving up my vim familiarity
&lt;/ul&gt;

&lt;h2&gt;Music&lt;/h2&gt;

&lt;ul class=&quot;spaciouslist&quot;&gt;
  &lt;li&gt;I listened to Hot Rats a lot this week, one of my favorite albums:

    &lt;p&gt;&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/RdU4FHH4FnE&quot; title=&quot;YouTube video player&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/li&gt;
  &lt;li&gt;The Yeah Yeah Yeahs&#x27; new album is a fun jam

    &lt;p&gt;&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/ckM_TklU_AQ&quot; title=&quot;YouTube video player&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture&quot; allowfullscreen&gt;&lt;/iframe&gt;
&lt;/ul&gt;
</content>
	</entry>
	<entry>
		<title>Links for the Week of September 19</title>
		<link href="https://billmill.org/week_of_sep_19_2022.html" />
		<id>https://billmill.org/week_of_sep_19_2022.html</id>
		<updated>2022-09-26T13:00:00Z</updated>
		<summary type="html">
&lt;ul class=&quot;spaciouslist&quot;&gt;
  &lt;li&gt;The &lt;a href=&quot;https://bytecodealliance.org/articles/wasmtime-1-0-fast-safe-and-production-ready&quot;&gt;Wasmtime wasm runtime hit version 1.0&lt;/a&gt;. I&#x27;m interested in the possibilities this offers for sandboxed and portable applications in a variety of languages.&lt;/li&gt;
  &lt;li&gt;Ceej Silverio&#x27;s &lt;a href=&quot;https://twitter.com/ceejbot/status/1573105683116879875&quot;&gt;short thread&lt;/a&gt; about how difficult it is to add engineers at the start of a project matched thoughts I&#x27;ve been having on the topic lately&lt;/li&gt;
  &lt;li&gt;Ben Johnson &lt;a href=&quot;https://fly.io/blog/introducing-litefs/&quot;&gt;released LiteFS&lt;/a&gt;, a system that distributes SQLite writes to a leader, by writing a Fuse filesystem to distribute SQLite writes. The &lt;a href=&quot;https://github.com/superfly/litefs/blob/1131873151a7a0b67e49b884b346c9e5a2a522f1/docs/ARCHITECTURE.md&quot;&gt;ARCHITECTURE&lt;/a&gt; doc is short and worthwhile reading.&lt;/li&gt;
  &lt;li&gt;Simon Willison &lt;a href=&quot;https://twitter.com/simonw/status/1572285367382061057&quot;&gt;started a very interesting twitter thread&lt;/a&gt; by asking people what tools they use to process CSV files of varying sizes. I updated my &lt;a href=&quot;https://notes.billmill.org/data_analytics/CSV_tools/csv_tools.html&quot;&gt;csv tools&lt;/a&gt; survey with some new tools from reading the responses.&lt;/li&gt;
  &lt;li&gt;Charlie Loyd &lt;a href=&quot;https://twitter.com/vruba/status/1571703278202920960&quot;&gt;objectively correctly notes&lt;/a&gt; that Bryce had the finest UI of all time and that every modern UI is extremely boring&lt;/li&gt;
  &lt;li&gt;I liked &lt;a href=&quot;https://dragonman225.js.org/curved-arrows.html&quot;&gt;these detailed notes&lt;/a&gt; from Alexander Wang on drawing curved arrows between boxes. I love when people share the specialized knowledge they gain when building detailed things.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.scattered-thoughts.net/writing/how-safe-is-zig/&quot;&gt;A thorough and balanced article&lt;/a&gt; comparing the memory safety of zig and rust, by Jamie Brandon&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/Vexu/arocc/&quot;&gt;A c compiler in zig&lt;/a&gt; from Veikka Tuominen&lt;/li&gt;
  &lt;li&gt;Tsoding is working on a &lt;a href=&quot;https://github.com/tsoding/olive.c&quot;&gt;single-file graphics library in C&lt;/a&gt;. The idea is that it can be compiled down to WASM for web display, SDL for native display, or whatever target you can think of. &lt;a href=&quot;https://tsoding.org/olive.c/&quot;&gt;demos here&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Vincent Rischmann &lt;a href=&quot;https://rischmann.fr/blog/virtual-tables-with-zig-sqlite&quot;&gt;shows how you can use SQLite virtual tables&lt;/a&gt; to expose an API to sqlite as if it were a database. He uses zig for his example.
  &lt;li&gt;Dan Nguyen tests &lt;a href=&quot;https://openai.com/blog/whisper&quot;&gt;OpenAI&#x27;s new voice-to-text AI&lt;/a&gt; against &lt;a href=&quot;https://twitter.com/dancow/status/1572916995468963847&quot;&gt;one of TV&#x27;s finest-ever scenes&lt;/a&gt; and it gives impressive results&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Music&lt;/h2&gt;
&lt;p&gt;Lots of good music this week!
&lt;ul class=&quot;spaciouslist&quot;&gt;
  &lt;li&gt;New Nils Frahm, if you like ambient sounds. Great work music

  &lt;p&gt;&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/ADVoF_h8ufc&quot; title=&quot;YouTube video player&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture&quot; allowfullscreen&gt;&lt;/iframe&gt;
  &lt;/li&gt;
  &lt;li&gt;Vieux Farka Touré and Khruangbin album - I haven&#x27;t listened much yet but the pairing is self-recommending

  &lt;p&gt;&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/g0WMAlgHMQg&quot; title=&quot;YouTube video player&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture&quot; allowfullscreen&gt;&lt;/iframe&gt;
  &lt;/li&gt;
  &lt;li&gt;A coworker turned me on to Thee Sacred Souls, a neo-soul outfit, and I liked their self-titled album

  &lt;p&gt;&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/1rSjjEe7EE4&quot; title=&quot;YouTube video player&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture&quot; allowfullscreen&gt;&lt;/iframe&gt;
  &lt;/li&gt;
&lt;/ul&gt;
</summary>
		<content type="html">
&lt;ul class=&quot;spaciouslist&quot;&gt;
  &lt;li&gt;The &lt;a href=&quot;https://bytecodealliance.org/articles/wasmtime-1-0-fast-safe-and-production-ready&quot;&gt;Wasmtime wasm runtime hit version 1.0&lt;/a&gt;. I&#x27;m interested in the possibilities this offers for sandboxed and portable applications in a variety of languages.&lt;/li&gt;
  &lt;li&gt;Ceej Silverio&#x27;s &lt;a href=&quot;https://twitter.com/ceejbot/status/1573105683116879875&quot;&gt;short thread&lt;/a&gt; about how difficult it is to add engineers at the start of a project matched thoughts I&#x27;ve been having on the topic lately&lt;/li&gt;
  &lt;li&gt;Ben Johnson &lt;a href=&quot;https://fly.io/blog/introducing-litefs/&quot;&gt;released LiteFS&lt;/a&gt;, a system that distributes SQLite writes to a leader, by writing a Fuse filesystem to distribute SQLite writes. The &lt;a href=&quot;https://github.com/superfly/litefs/blob/1131873151a7a0b67e49b884b346c9e5a2a522f1/docs/ARCHITECTURE.md&quot;&gt;ARCHITECTURE&lt;/a&gt; doc is short and worthwhile reading.&lt;/li&gt;
  &lt;li&gt;Simon Willison &lt;a href=&quot;https://twitter.com/simonw/status/1572285367382061057&quot;&gt;started a very interesting twitter thread&lt;/a&gt; by asking people what tools they use to process CSV files of varying sizes. I updated my &lt;a href=&quot;https://notes.billmill.org/data_analytics/CSV_tools/csv_tools.html&quot;&gt;csv tools&lt;/a&gt; survey with some new tools from reading the responses.&lt;/li&gt;
  &lt;li&gt;Charlie Loyd &lt;a href=&quot;https://twitter.com/vruba/status/1571703278202920960&quot;&gt;objectively correctly notes&lt;/a&gt; that Bryce had the finest UI of all time and that every modern UI is extremely boring&lt;/li&gt;
  &lt;li&gt;I liked &lt;a href=&quot;https://dragonman225.js.org/curved-arrows.html&quot;&gt;these detailed notes&lt;/a&gt; from Alexander Wang on drawing curved arrows between boxes. I love when people share the specialized knowledge they gain when building detailed things.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.scattered-thoughts.net/writing/how-safe-is-zig/&quot;&gt;A thorough and balanced article&lt;/a&gt; comparing the memory safety of zig and rust, by Jamie Brandon&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/Vexu/arocc/&quot;&gt;A c compiler in zig&lt;/a&gt; from Veikka Tuominen&lt;/li&gt;
  &lt;li&gt;Tsoding is working on a &lt;a href=&quot;https://github.com/tsoding/olive.c&quot;&gt;single-file graphics library in C&lt;/a&gt;. The idea is that it can be compiled down to WASM for web display, SDL for native display, or whatever target you can think of. &lt;a href=&quot;https://tsoding.org/olive.c/&quot;&gt;demos here&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Vincent Rischmann &lt;a href=&quot;https://rischmann.fr/blog/virtual-tables-with-zig-sqlite&quot;&gt;shows how you can use SQLite virtual tables&lt;/a&gt; to expose an API to sqlite as if it were a database. He uses zig for his example.
  &lt;li&gt;Dan Nguyen tests &lt;a href=&quot;https://openai.com/blog/whisper&quot;&gt;OpenAI&#x27;s new voice-to-text AI&lt;/a&gt; against &lt;a href=&quot;https://twitter.com/dancow/status/1572916995468963847&quot;&gt;one of TV&#x27;s finest-ever scenes&lt;/a&gt; and it gives impressive results&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Music&lt;/h2&gt;
&lt;p&gt;Lots of good music this week!
&lt;ul class=&quot;spaciouslist&quot;&gt;
  &lt;li&gt;New Nils Frahm, if you like ambient sounds. Great work music

  &lt;p&gt;&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/ADVoF_h8ufc&quot; title=&quot;YouTube video player&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture&quot; allowfullscreen&gt;&lt;/iframe&gt;
  &lt;/li&gt;
  &lt;li&gt;Vieux Farka Touré and Khruangbin album - I haven&#x27;t listened much yet but the pairing is self-recommending

  &lt;p&gt;&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/g0WMAlgHMQg&quot; title=&quot;YouTube video player&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture&quot; allowfullscreen&gt;&lt;/iframe&gt;
  &lt;/li&gt;
  &lt;li&gt;A coworker turned me on to Thee Sacred Souls, a neo-soul outfit, and I liked their self-titled album

  &lt;p&gt;&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/1rSjjEe7EE4&quot; title=&quot;YouTube video player&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture&quot; allowfullscreen&gt;&lt;/iframe&gt;
  &lt;/li&gt;
&lt;/ul&gt;
</content>
	</entry>
	<entry>
		<title>Links for the Week of September 12</title>
		<link href="https://billmill.org/week_of_sep_12_2022.html" />
		<id>https://billmill.org/week_of_sep_12_2022.html</id>
		<updated>2022-09-19T13:00:00Z</updated>
		<summary type="html">
&lt;ul class=&quot;spaciouslist&quot;&gt;
  &lt;li&gt;This week &lt;a href=&quot;https://twitter.com/BillDemirkapi/status/1570602097640607744&quot;&gt;Uber got owned&lt;/a&gt;, which prompted a lot of thinking about authentication and authorization
  &lt;li&gt;Xe Iaso saw that and made the case that &lt;a href=&quot;https://xeiaso.net/blog/push-2fa-considered-harmful&quot;&gt;push 2fa is considered harmful&lt;/a&gt;. I think this is where corporations are going, but not sure it&#x27;s ready yet for wide distribution. (And I&#x27;m ready for the &quot;considered harmful&quot; phrasing to be considered harmful...)
  &lt;li&gt;Phil Eaton&#x27;s &lt;a href=&quot;https://github.com/multiprocessio/go-sqlite3-stdlib&quot;&gt;go-sqlite3-stdlib&lt;/a&gt; is an interesting project that provides a set of common golang functions for interacting with sqlite databases. Rather than relying on sqlean, they &lt;a href=&quot;https://datastation.multiprocess.io/blog/2022-08-21-sqlite-limited-builtin-functions.html&quot;&gt;chose to reimplement&lt;/a&gt; and add on several other features as well.
  &lt;li&gt;Tyler Langlois does some quality performance engineering to &lt;a href=&quot;https://blog.tjll.net/reverse-proxy-hot-dog-eating-contest-caddy-vs-nginx/&quot;&gt;measure caddy vs nginx&lt;/a&gt;, specifically as reverse proxies. My general take from it: they came out close and it&#x27;s pretty much a coin flip.
  &lt;li&gt;Matt Holt, the caddy author, found &lt;a href=&quot;https://github.com/caddyserver/caddy/pull/5042&quot;&gt;a performance regression&lt;/a&gt; from that post - metrics were causing too much overhead how they were implemented. I was impressed with the speed and responsiveness of caddy&#x27;s developers.
  &lt;li&gt;David R. MacIver wrote &lt;a href=&quot;https://drmaciver.substack.com/p/how-to-think-about-estimation-strategy&quot;&gt;part 2&lt;/a&gt; of a series on estimation - I enjoyed this as well as &lt;a href=&quot;https://consulting.drmaciver.com/estimation-series/&quot;&gt;the other posts in the series&lt;/a&gt; a lot.
  &lt;li&gt;I like &lt;a href=&quot;https://engineering.18f.gov/language-selection/&quot;&gt;18f&#x27;s document on language and framework selection&lt;/a&gt;
  &lt;li&gt;Aidan Steele wrote a &lt;a href=&quot;https://twitter.com/__steele/status/1570208081296134145?s=20&amp;t=CvELevoOgwfDzyqo1eDWmA&quot;&gt;useful thread on AWS design patterns&lt;/a&gt;
  &lt;li&gt;Tom MacWright &lt;a href=&quot;https://macwright.com/2022/09/14/zig-raytracer.html&quot;&gt;ported a javascript ray tracer from javascript to zig&lt;/a&gt;, and wrote a reflection on the port and also on the value of play
  &lt;li&gt;Julia Evans drew an &lt;a href=&quot;https://twitter.com/b0rk/status/1570060516839641092&quot;&gt;excellent debugging manifesto comic&lt;/a&gt;
  &lt;li&gt;Jason Scott &lt;a href=&quot;https://twitter.com/textfiles/status/1569701695877177347&quot;&gt;reflects on the development of the internet&lt;/a&gt;
  &lt;li&gt;Robin Sloan wrote about &lt;a href=&quot;https://www.robinsloan.com/notes/home-cooked-app/&quot;&gt;creating an app strictly for friends and family&lt;/a&gt;. I love this idea and wish it weren&#x27;t so painful to do. Security balances against usefulness.
  &lt;li&gt;Coda Hale wrote about &lt;a href=&quot;https://codahale.com/work-is-work/&quot;&gt;how work scales in organizations&lt;/a&gt;
  &lt;li&gt;Jacob Kaplan-Moss argues that &quot;a group of mediocre programmers working with a structure designed to produce quality will produce better software than a group of fantastic programmers working in a system designed with other goals.&quot; in &lt;a href=&quot;https://jacobian.org/2022/sep/9/quality-is-systemic/&quot;&gt;Quality is Systemic&lt;/a&gt;
  &lt;li&gt;We all know that global variables are bad, but Forrest Smith &lt;a href=&quot;https://www.forrestthewoods.com/blog/global-variables-are-evil-and-unsafe/&quot;&gt;argues that they&#x27;re even worse than we think&lt;/a&gt;, and programming languages should make them harder to use than they already are
  &lt;li&gt;Tim Morgan &lt;a href=&quot;https://mpov.timmorgan.org/i-built-a-ruby-compiler/&quot;&gt;wrote a ruby compiler&lt;/a&gt;, and reflects on the process of building it and building software for personal joy
&lt;/ul&gt;

&lt;h2&gt;Music&lt;/h2&gt;
&lt;ul class=&quot;spaciouslist&quot;&gt;
  &lt;li&gt;Not sure why, but I listened to the Beatles a lot this week
&lt;/ul&gt;

&lt;h2&gt;Book&lt;/h2&gt;
&lt;p&gt;This week I started reading &lt;a href=&quot;https://www.manning.com/books/deep-learning-and-the-game-of-go&quot;&gt;Deep Learning and the Game of Go&lt;/a&gt; (&lt;a href=&quot;https://github.com/maxpumperla/deep_learning_and_the_game_of_go/&quot;&gt;github repo&lt;/a&gt;). I created &lt;a href=&quot;https://github.com/llimllib/deeplearning-go&quot;&gt;a repository&lt;/a&gt; with my implementations and notes about it. More on this later this week, hopefully.
</summary>
		<content type="html">
&lt;ul class=&quot;spaciouslist&quot;&gt;
  &lt;li&gt;This week &lt;a href=&quot;https://twitter.com/BillDemirkapi/status/1570602097640607744&quot;&gt;Uber got owned&lt;/a&gt;, which prompted a lot of thinking about authentication and authorization
  &lt;li&gt;Xe Iaso saw that and made the case that &lt;a href=&quot;https://xeiaso.net/blog/push-2fa-considered-harmful&quot;&gt;push 2fa is considered harmful&lt;/a&gt;. I think this is where corporations are going, but not sure it&#x27;s ready yet for wide distribution. (And I&#x27;m ready for the &quot;considered harmful&quot; phrasing to be considered harmful...)
  &lt;li&gt;Phil Eaton&#x27;s &lt;a href=&quot;https://github.com/multiprocessio/go-sqlite3-stdlib&quot;&gt;go-sqlite3-stdlib&lt;/a&gt; is an interesting project that provides a set of common golang functions for interacting with sqlite databases. Rather than relying on sqlean, they &lt;a href=&quot;https://datastation.multiprocess.io/blog/2022-08-21-sqlite-limited-builtin-functions.html&quot;&gt;chose to reimplement&lt;/a&gt; and add on several other features as well.
  &lt;li&gt;Tyler Langlois does some quality performance engineering to &lt;a href=&quot;https://blog.tjll.net/reverse-proxy-hot-dog-eating-contest-caddy-vs-nginx/&quot;&gt;measure caddy vs nginx&lt;/a&gt;, specifically as reverse proxies. My general take from it: they came out close and it&#x27;s pretty much a coin flip.
  &lt;li&gt;Matt Holt, the caddy author, found &lt;a href=&quot;https://github.com/caddyserver/caddy/pull/5042&quot;&gt;a performance regression&lt;/a&gt; from that post - metrics were causing too much overhead how they were implemented. I was impressed with the speed and responsiveness of caddy&#x27;s developers.
  &lt;li&gt;David R. MacIver wrote &lt;a href=&quot;https://drmaciver.substack.com/p/how-to-think-about-estimation-strategy&quot;&gt;part 2&lt;/a&gt; of a series on estimation - I enjoyed this as well as &lt;a href=&quot;https://consulting.drmaciver.com/estimation-series/&quot;&gt;the other posts in the series&lt;/a&gt; a lot.
  &lt;li&gt;I like &lt;a href=&quot;https://engineering.18f.gov/language-selection/&quot;&gt;18f&#x27;s document on language and framework selection&lt;/a&gt;
  &lt;li&gt;Aidan Steele wrote a &lt;a href=&quot;https://twitter.com/__steele/status/1570208081296134145?s=20&amp;t=CvELevoOgwfDzyqo1eDWmA&quot;&gt;useful thread on AWS design patterns&lt;/a&gt;
  &lt;li&gt;Tom MacWright &lt;a href=&quot;https://macwright.com/2022/09/14/zig-raytracer.html&quot;&gt;ported a javascript ray tracer from javascript to zig&lt;/a&gt;, and wrote a reflection on the port and also on the value of play
  &lt;li&gt;Julia Evans drew an &lt;a href=&quot;https://twitter.com/b0rk/status/1570060516839641092&quot;&gt;excellent debugging manifesto comic&lt;/a&gt;
  &lt;li&gt;Jason Scott &lt;a href=&quot;https://twitter.com/textfiles/status/1569701695877177347&quot;&gt;reflects on the development of the internet&lt;/a&gt;
  &lt;li&gt;Robin Sloan wrote about &lt;a href=&quot;https://www.robinsloan.com/notes/home-cooked-app/&quot;&gt;creating an app strictly for friends and family&lt;/a&gt;. I love this idea and wish it weren&#x27;t so painful to do. Security balances against usefulness.
  &lt;li&gt;Coda Hale wrote about &lt;a href=&quot;https://codahale.com/work-is-work/&quot;&gt;how work scales in organizations&lt;/a&gt;
  &lt;li&gt;Jacob Kaplan-Moss argues that &quot;a group of mediocre programmers working with a structure designed to produce quality will produce better software than a group of fantastic programmers working in a system designed with other goals.&quot; in &lt;a href=&quot;https://jacobian.org/2022/sep/9/quality-is-systemic/&quot;&gt;Quality is Systemic&lt;/a&gt;
  &lt;li&gt;We all know that global variables are bad, but Forrest Smith &lt;a href=&quot;https://www.forrestthewoods.com/blog/global-variables-are-evil-and-unsafe/&quot;&gt;argues that they&#x27;re even worse than we think&lt;/a&gt;, and programming languages should make them harder to use than they already are
  &lt;li&gt;Tim Morgan &lt;a href=&quot;https://mpov.timmorgan.org/i-built-a-ruby-compiler/&quot;&gt;wrote a ruby compiler&lt;/a&gt;, and reflects on the process of building it and building software for personal joy
&lt;/ul&gt;

&lt;h2&gt;Music&lt;/h2&gt;
&lt;ul class=&quot;spaciouslist&quot;&gt;
  &lt;li&gt;Not sure why, but I listened to the Beatles a lot this week
&lt;/ul&gt;

&lt;h2&gt;Book&lt;/h2&gt;
&lt;p&gt;This week I started reading &lt;a href=&quot;https://www.manning.com/books/deep-learning-and-the-game-of-go&quot;&gt;Deep Learning and the Game of Go&lt;/a&gt; (&lt;a href=&quot;https://github.com/maxpumperla/deep_learning_and_the_game_of_go/&quot;&gt;github repo&lt;/a&gt;). I created &lt;a href=&quot;https://github.com/llimllib/deeplearning-go&quot;&gt;a repository&lt;/a&gt; with my implementations and notes about it. More on this later this week, hopefully.
</content>
	</entry>
	<entry>
		<title>Links for the Week of September 5</title>
		<link href="https://billmill.org/week_of_sep_5_2022.html" />
		<id>https://billmill.org/week_of_sep_5_2022.html</id>
		<updated>2022-09-12T10:30:00Z</updated>
		<summary type="html">
&lt;ul class=&quot;spaciouslist&quot;&gt;
    &lt;li&gt;&lt;pre&gt;http://http://http://@http://http://?http://#http://&lt;/pre&gt; is &lt;a href=&quot;https://daniel.haxx.se/blog/2022/09/08/http-http-http-http-http-http-http/&quot;&gt;a legitimate URL&lt;/a&gt;
    &lt;li&gt;I figured out how &lt;a href=&quot;https://github.com/llimllib/wasm_sqlite_with_stats/tree/build-fiddle&quot;&gt;to build sqlite fiddle with a sqlite extension&lt;/a&gt; and wrote up notes alongside code. I learned a lot about compiling C into WASM along the way, and SQLite remains a joy to work with - the aggregate C file is such a great idea.
    &lt;li&gt;Along with help from a sql.js developer, I &lt;a href=&quot;https://github.com/sql-js/sql.js/pull/529&quot;&gt;added custom aggregate function support&lt;/a&gt; to the library. With this, you can define custom aggregate functions in javascript, making it easy to extend SQLite without having to do tricks to compile in extensions.
    &lt;li&gt;Ben Johnson continued his excellent series on the internals of SQLite and wrote about &lt;a href=&quot;https://fly.io/blog/sqlite-virtual-machine/&quot;&gt;how SQLite parses queries&lt;/a&gt;
    &lt;li&gt;Hugo Landau &lt;a href=&quot;https://www.devever.net/~hl/mildlydynamic&quot;&gt;laments the loss of mildly dynamic websites&lt;/a&gt;. Amen!
    &lt;li&gt;There is &lt;a href=&quot;https://github.com/golang/go/discussions/54763&quot;&gt;a proposal&lt;/a&gt; to bring levelled logging to the golang standard library. I&#x27;ll be interested to see how it compares to zerolog et al. Like many others, I have written and abandoned my own levelled logging wrapper around the stdlib.
    &lt;li&gt;Speaking of logging, I revisited &lt;a href=&quot;https://stripe.com/blog/canonical-log-lines&quot;&gt;this article about using canonical log lines&lt;/a&gt;, the practice of each service request emitting a single wide long line when it completes. I wish go logging libraries supported the pattern of accumulating log bits as it proceeded, then emitting them at the end, better.
    &lt;li&gt;Raph Levien &lt;a href=&quot;https://raphlinus.github.io/curves/2022/09/09/parallel-beziers.html&quot;&gt;demonstrates and explains&lt;/a&gt; a new best technique for creating parallel curves of cubic Bézier paths. I worked a bit about that in the past &lt;a href=&quot;https://billmill.org/sol_1136.html&quot;&gt;here&lt;/a&gt; when making Sol LeWitt drawings and have been following Raph&#x27;s work that helped me a ton since.
    &lt;li&gt;I&#x27;ve been trying to work my way through the &lt;a href=&quot;https://www.amazon.com/Chess-5334-Problems-Combinations-Games/dp/1579125549/&quot;&gt;Polgár chess problems&lt;/a&gt;, and &lt;a href=&quot;https://danielmoore.us/chess-puzzles&quot;&gt;this little site&lt;/a&gt; that lets you play them online is handy
    &lt;li&gt;&lt;a href=&quot;https://github.com/bufbuild/connect-go&quot;&gt;connect-go&lt;/a&gt; looks like a neat RPC library, aiming for something similar to but simpler in important ways than gRPC. &lt;a href=&quot;https://connect.build/&quot;&gt;site here&lt;/a&gt;
    &lt;li&gt;The go team released a &lt;a href=&quot;https://go.dev/security/vuln/&quot;&gt;tool to check for vulnerabilities in your dependencies&lt;/a&gt;
    &lt;li&gt;Marc Brooker wrote a very interesting blog post &lt;a href=&quot;https://brooker.co.za/blog/2022/09/02/ecdf.html&quot;&gt;suggesting we use cumulative density graphs instead of histograms&lt;/a&gt; for displaying metrics graphics. I look forward to giving this a try the next time I have some metrics to display
    &lt;li&gt;Divam Gupta made a &lt;a href=&quot;https://github.com/divamgupta/diffusionbee-stable-diffusion-ui&quot;&gt;simple gui for Stable Diffusion&lt;/a&gt; that makes AI image generation a click and install process
    &lt;li&gt;Jonathan Whitaker wrote a &lt;a href=&quot;https://colab.research.google.com/drive/1dlgggNa5Mz8sEAGU0wFCHhGLFooW_pf1?usp=sharing&quot;&gt;colab notebook&lt;/a&gt; to explain how stable diffusion works
    &lt;li&gt;youtube-dl has a &lt;a hrf=&quot;https://github.com/ytdl-org/youtube-dl/blob/master/youtube_dl/jsinterp.py&quot;&gt;Javascript interpreter done in 870 lines of code&lt;/a&gt;. Lovely stuff
    &lt;li&gt;The US Congress has &lt;a href=&quot;https://api.congress.gov/&quot;&gt;an API&lt;/a&gt;!
    &lt;li&gt;Health insurers published &lt;a href=&quot;https://www.dolthub.com/blog/2022-09-02-a-trillion-prices/&quot;&gt;close to a trillion prices&lt;/a&gt; to comply with price transparency regulations and Alec Stein is looking for help in trying to make sense of them
    &lt;li&gt;The passing of Richard Cook brought &lt;a href=&quot;https://how.complexsystems.fail&quot;&gt;how.complexsystems.fail&lt;/a&gt; back to my attention. Excellent work and I&#x27;m sad to hear of his passing.
&lt;/ul&gt;

&lt;h2&gt;Music&lt;/h2&gt;
&lt;ul class=&quot;spaciouslist&quot;&gt;
  &lt;li&gt;I enjoyed &lt;a href=&quot;https://www.youtube.com/watch?v=gsaZRcL-OTQ&quot;&gt;JID&#x27;s tiny desk concert&lt;/a&gt;
  &lt;li&gt;I hadn&#x27;t listened to &lt;a href=&quot;https://www.youtube.com/watch?v=MuWkZsISjsQ&quot;&gt;Charlie Parker&lt;/a&gt; in a long while and it was a pleasure to go back to it
&lt;/ul&gt;

&lt;h2&gt;TV&lt;/h2&gt;
&lt;ul class=&quot;spaciouslist&quot;&gt;
  &lt;li&gt;My wife and I started &lt;a href=&quot;https://www.imdb.com/title/tt11198330/&quot;&gt;House of Dragons&lt;/a&gt; but didn&#x27;t enjoy it very much so we&#x27;re quitting on it
  &lt;li&gt;We started on &lt;a href=&quot;https://www.imdb.com/title/tt6704972/&quot;&gt;Underground Railroad&lt;/a&gt; instead; we&#x27;re not far enough in to make any judgement
&lt;/ul&gt;
</summary>
		<content type="html">
&lt;ul class=&quot;spaciouslist&quot;&gt;
    &lt;li&gt;&lt;pre&gt;http://http://http://@http://http://?http://#http://&lt;/pre&gt; is &lt;a href=&quot;https://daniel.haxx.se/blog/2022/09/08/http-http-http-http-http-http-http/&quot;&gt;a legitimate URL&lt;/a&gt;
    &lt;li&gt;I figured out how &lt;a href=&quot;https://github.com/llimllib/wasm_sqlite_with_stats/tree/build-fiddle&quot;&gt;to build sqlite fiddle with a sqlite extension&lt;/a&gt; and wrote up notes alongside code. I learned a lot about compiling C into WASM along the way, and SQLite remains a joy to work with - the aggregate C file is such a great idea.
    &lt;li&gt;Along with help from a sql.js developer, I &lt;a href=&quot;https://github.com/sql-js/sql.js/pull/529&quot;&gt;added custom aggregate function support&lt;/a&gt; to the library. With this, you can define custom aggregate functions in javascript, making it easy to extend SQLite without having to do tricks to compile in extensions.
    &lt;li&gt;Ben Johnson continued his excellent series on the internals of SQLite and wrote about &lt;a href=&quot;https://fly.io/blog/sqlite-virtual-machine/&quot;&gt;how SQLite parses queries&lt;/a&gt;
    &lt;li&gt;Hugo Landau &lt;a href=&quot;https://www.devever.net/~hl/mildlydynamic&quot;&gt;laments the loss of mildly dynamic websites&lt;/a&gt;. Amen!
    &lt;li&gt;There is &lt;a href=&quot;https://github.com/golang/go/discussions/54763&quot;&gt;a proposal&lt;/a&gt; to bring levelled logging to the golang standard library. I&#x27;ll be interested to see how it compares to zerolog et al. Like many others, I have written and abandoned my own levelled logging wrapper around the stdlib.
    &lt;li&gt;Speaking of logging, I revisited &lt;a href=&quot;https://stripe.com/blog/canonical-log-lines&quot;&gt;this article about using canonical log lines&lt;/a&gt;, the practice of each service request emitting a single wide long line when it completes. I wish go logging libraries supported the pattern of accumulating log bits as it proceeded, then emitting them at the end, better.
    &lt;li&gt;Raph Levien &lt;a href=&quot;https://raphlinus.github.io/curves/2022/09/09/parallel-beziers.html&quot;&gt;demonstrates and explains&lt;/a&gt; a new best technique for creating parallel curves of cubic Bézier paths. I worked a bit about that in the past &lt;a href=&quot;https://billmill.org/sol_1136.html&quot;&gt;here&lt;/a&gt; when making Sol LeWitt drawings and have been following Raph&#x27;s work that helped me a ton since.
    &lt;li&gt;I&#x27;ve been trying to work my way through the &lt;a href=&quot;https://www.amazon.com/Chess-5334-Problems-Combinations-Games/dp/1579125549/&quot;&gt;Polgár chess problems&lt;/a&gt;, and &lt;a href=&quot;https://danielmoore.us/chess-puzzles&quot;&gt;this little site&lt;/a&gt; that lets you play them online is handy
    &lt;li&gt;&lt;a href=&quot;https://github.com/bufbuild/connect-go&quot;&gt;connect-go&lt;/a&gt; looks like a neat RPC library, aiming for something similar to but simpler in important ways than gRPC. &lt;a href=&quot;https://connect.build/&quot;&gt;site here&lt;/a&gt;
    &lt;li&gt;The go team released a &lt;a href=&quot;https://go.dev/security/vuln/&quot;&gt;tool to check for vulnerabilities in your dependencies&lt;/a&gt;
    &lt;li&gt;Marc Brooker wrote a very interesting blog post &lt;a href=&quot;https://brooker.co.za/blog/2022/09/02/ecdf.html&quot;&gt;suggesting we use cumulative density graphs instead of histograms&lt;/a&gt; for displaying metrics graphics. I look forward to giving this a try the next time I have some metrics to display
    &lt;li&gt;Divam Gupta made a &lt;a href=&quot;https://github.com/divamgupta/diffusionbee-stable-diffusion-ui&quot;&gt;simple gui for Stable Diffusion&lt;/a&gt; that makes AI image generation a click and install process
    &lt;li&gt;Jonathan Whitaker wrote a &lt;a href=&quot;https://colab.research.google.com/drive/1dlgggNa5Mz8sEAGU0wFCHhGLFooW_pf1?usp=sharing&quot;&gt;colab notebook&lt;/a&gt; to explain how stable diffusion works
    &lt;li&gt;youtube-dl has a &lt;a hrf=&quot;https://github.com/ytdl-org/youtube-dl/blob/master/youtube_dl/jsinterp.py&quot;&gt;Javascript interpreter done in 870 lines of code&lt;/a&gt;. Lovely stuff
    &lt;li&gt;The US Congress has &lt;a href=&quot;https://api.congress.gov/&quot;&gt;an API&lt;/a&gt;!
    &lt;li&gt;Health insurers published &lt;a href=&quot;https://www.dolthub.com/blog/2022-09-02-a-trillion-prices/&quot;&gt;close to a trillion prices&lt;/a&gt; to comply with price transparency regulations and Alec Stein is looking for help in trying to make sense of them
    &lt;li&gt;The passing of Richard Cook brought &lt;a href=&quot;https://how.complexsystems.fail&quot;&gt;how.complexsystems.fail&lt;/a&gt; back to my attention. Excellent work and I&#x27;m sad to hear of his passing.
&lt;/ul&gt;

&lt;h2&gt;Music&lt;/h2&gt;
&lt;ul class=&quot;spaciouslist&quot;&gt;
  &lt;li&gt;I enjoyed &lt;a href=&quot;https://www.youtube.com/watch?v=gsaZRcL-OTQ&quot;&gt;JID&#x27;s tiny desk concert&lt;/a&gt;
  &lt;li&gt;I hadn&#x27;t listened to &lt;a href=&quot;https://www.youtube.com/watch?v=MuWkZsISjsQ&quot;&gt;Charlie Parker&lt;/a&gt; in a long while and it was a pleasure to go back to it
&lt;/ul&gt;

&lt;h2&gt;TV&lt;/h2&gt;
&lt;ul class=&quot;spaciouslist&quot;&gt;
  &lt;li&gt;My wife and I started &lt;a href=&quot;https://www.imdb.com/title/tt11198330/&quot;&gt;House of Dragons&lt;/a&gt; but didn&#x27;t enjoy it very much so we&#x27;re quitting on it
  &lt;li&gt;We started on &lt;a href=&quot;https://www.imdb.com/title/tt6704972/&quot;&gt;Underground Railroad&lt;/a&gt; instead; we&#x27;re not far enough in to make any judgement
&lt;/ul&gt;
</content>
	</entry>
	<entry>
		<title>Links for the Week of August 22</title>
		<link href="https://billmill.org/week_of_aug_22_2022.html" />
		<id>https://billmill.org/week_of_aug_22_2022.html</id>
		<updated>2022-08-29T10:30:00Z</updated>
		<summary type="html">
    &lt;h2&gt;Stable Diffusion&lt;/h2&gt;
    &lt;p&gt;There was a lot of noise around the open source &lt;a href=&quot;https://github.com/CompVis/stable-diffusion/&quot;&gt;Stable Diffusion&lt;/a&gt; image generation model this week. For kicks, I &lt;a href=&quot;https://notes.billmill.org/programming/image_generation/Stable_Diffusion.html&quot;&gt;followed some instructions from the web&lt;/a&gt; to install it on my Macbook, but had trouble getting it to work well.
    &lt;p&gt;I&#x27;m very sympathetic to views like these, that Dall-E (and other image generation tools) unfairly abuse the work of human creators for profit:
    &lt;blockquote class=&quot;twitter-tweet&quot;&gt;&lt;p lang=&quot;en&quot; dir=&quot;ltr&quot;&gt;Early days, but this sums up a lot of my concerns. &lt;a href=&quot;https://t.co/DaYj2RISOA&quot;&gt;pic.twitter.com/DaYj2RISOA&lt;/a&gt;&lt;/p&gt;&amp;mdash; Kyle T Webster (@kyletwebster) &lt;a href=&quot;https://twitter.com/kyletwebster/status/1550984156133429251?ref_src=twsrc%5Etfw&quot;&gt;July 23, 2022&lt;/a&gt;&lt;/blockquote&gt; &lt;script async src=&quot;https://platform.twitter.com/widgets.js&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
    &lt;p&gt;Similar concerns are why I don&#x27;t like &lt;a href=&quot;https://github.com/features/copilot&quot;&gt;github&#x27;s copilot&lt;/a&gt; - it disregards the explicit wishes of the authors of the software it&#x27;s trained on for corporate profit.
    &lt;p&gt;This morning, Simon Willison posited that someone with my sympathies is an &lt;a href=&quot;https://simonwillison.net/2022/Aug/29/stable-diffusion/#ai-vegan&quot;&gt;AI vegan&lt;/a&gt;. I understand where he&#x27;s coming from, but it feels to me like an attempt to marginalize (an admittedly marginal!) viewpoint. It chooses not to engage with the people saying &quot;it&#x27;s unethical to do that!&quot; by framing it as a natural idea that there is always that wacky group saying that what we&#x27;re doing is unethical and we can safely ignore them.
    &lt;p&gt;That said, I eat meat! And I do try to both listen to but ignore what vegans say, so the metaphor definitely has power to me.
    &lt;p&gt;Maybe I will end up just getting over my ethical concerns and using the human-creator-mashup tools. Some of the work coming out of stable diffusion is neat (although I find it way less groundbreaking than the people who are really excited about it...) and I&#x27;m even occasionally jealous of github copilot.

    &lt;h2&gt;Links&lt;/h2&gt;

&lt;ul class=&quot;spaciouslist&quot;&gt;
  &lt;li&gt;A &lt;a href=&quot;https://huggingface.co/datasets&quot;&gt;nice collection of useful datasets&lt;/a&gt; and a &lt;a href=&quot;https://github.com/huggingface/datasets&quot;&gt;python library&lt;/a&gt; that makes downloading most of them a one-liner&lt;/li&gt;
  &lt;li&gt;How to &lt;a href=&quot;https://cloudfour.com/thinks/mac-voiceover-testing-the-simple-way/&quot;&gt;test your apps with VoiceOver&lt;/a&gt;. One of the best talks I ever went to was a short talk by a blind computer user where he showed us how he used his computer. (I&#x27;m trying to avoid calling it &quot;eye-opening&quot;...)&lt;/li&gt;
  &lt;li&gt;A funny Dan Hon &lt;a href=&quot;https://twitter.com/hondanhon/status/1561840766212837378&quot;&gt;twitter thread&lt;/a&gt; on legacy software on the Star Trek enterprise&lt;/li&gt;
  &lt;li&gt;Ben Johnson &lt;a href=&quot;https://fly.io/blog/sqlite-internals-wal/&quot;&gt;continues his excellent series&lt;/a&gt; on SQLite internals with a post explaining how the WAL works.&lt;/li&gt;
  &lt;li&gt;I have been studiously ignoring NixOS so far because it feels like it tends towards my worst perfectionist instincts, but this week I &lt;a href=&quot;https://notes.billmill.org/computer_usage/nix_shell/first_steps.html&quot;&gt;started&lt;/a&gt; &lt;a href=&quot;https://notes.billmill.org/computer_usage/nix_shell/flakes.html&quot;&gt;messing&lt;/a&gt; with it again, inspired by &lt;a href=&quot;https://twitter.com/hazelweakly/status/1562640644816121856&quot;&gt;this tweet thread&lt;/a&gt;. I&#x27;m intrigued by &lt;a href=&quot;https://github.com/jetpack-io/devbox&quot;&gt;devbox&lt;/a&gt;, which seems like an attempt at a UI layer on top of it, though I&#x27;ve not yet played with it and it seems pretty alpha.&lt;/li&gt;
  &lt;li&gt;Here&#x27;s &lt;a href=&quot;https://lichess.org/blog/U4sjakQAAEAAhH9d/how-training-puzzles-are-generated&quot;&gt;how lichess puzzles are generated&lt;/a&gt; (or were, as of 2014 - I couldn&#x27;t find how they&#x27;re currently generated in a brief search)&lt;/li&gt;
  &lt;li&gt;A &lt;a href=&quot;https://www.fast.ai/2022/08/25/jupyter-git/&quot;&gt;tool that cleverly merges jupyter notebook files&lt;/a&gt; to ease (make possible?) collaboration on them&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://colorandcontrast.com/#/&quot;&gt;An interactive guide to color &amp; contrast&lt;/a&gt; seems like a very cool online book on all sorts of color theory topics.&lt;/li&gt;
  &lt;li&gt;I &lt;a href=&quot;https://notes.billmill.org/computer_usage/google_cloud/creating_a_service_account.html&quot;&gt;wrote up complete notes&lt;/a&gt; for doing a mundane task - setting up a google cloud service account - and was struck by just how many steps there are for even a simple task.&lt;/li&gt;
&lt;/ul&gt;

  &lt;h2&gt;Music&lt;/h2&gt;
  &lt;ul&gt;
    &lt;li&gt;The new &lt;a href=&quot;https://open.spotify.com/album/0rEbmIQjHTKzKraH4UqiDy?si=8b1a4d6b700e44be&quot;&gt;Black Thought &amp; Danger Mouse&lt;/a&gt; and &lt;a href=&quot;https://open.spotify.com/album/3QVjpIxcksDkJmOnvlOJjg?si=c63db1888f3140d6&quot;&gt;JID&lt;/a&gt; albums are really good.&lt;/li&gt;
    &lt;li&gt;The album &lt;a href=&quot;https://open.spotify.com/album/2TgXc0KeZDRjb9AsnSED7M?si=e0e2cf8b1a4e42c5&quot;&gt;&quot;Get Fucked&quot;&lt;/a&gt; by The Chats is enjoyably straightforward rock and roll&lt;/li&gt;
  &lt;/ul&gt;

  &lt;h2&gt;TV&lt;/h2&gt;
  &lt;p&gt;This week we finished &lt;a href=&quot;https://www.imdb.com/title/tt14192504/&quot;&gt;&quot;We Own This City&quot;&lt;/a&gt;, David Simon&#x27;s dramatization of the GTTF in Baltimore. It was far below the quality of The Wire (what isn&#x27;t), but it was good. Anything that puts more attention on the dire situation of Baltimore is a good thing.
</summary>
		<content type="html">
    &lt;h2&gt;Stable Diffusion&lt;/h2&gt;
    &lt;p&gt;There was a lot of noise around the open source &lt;a href=&quot;https://github.com/CompVis/stable-diffusion/&quot;&gt;Stable Diffusion&lt;/a&gt; image generation model this week. For kicks, I &lt;a href=&quot;https://notes.billmill.org/programming/image_generation/Stable_Diffusion.html&quot;&gt;followed some instructions from the web&lt;/a&gt; to install it on my Macbook, but had trouble getting it to work well.
    &lt;p&gt;I&#x27;m very sympathetic to views like these, that Dall-E (and other image generation tools) unfairly abuse the work of human creators for profit:
    &lt;blockquote class=&quot;twitter-tweet&quot;&gt;&lt;p lang=&quot;en&quot; dir=&quot;ltr&quot;&gt;Early days, but this sums up a lot of my concerns. &lt;a href=&quot;https://t.co/DaYj2RISOA&quot;&gt;pic.twitter.com/DaYj2RISOA&lt;/a&gt;&lt;/p&gt;&amp;mdash; Kyle T Webster (@kyletwebster) &lt;a href=&quot;https://twitter.com/kyletwebster/status/1550984156133429251?ref_src=twsrc%5Etfw&quot;&gt;July 23, 2022&lt;/a&gt;&lt;/blockquote&gt; &lt;script async src=&quot;https://platform.twitter.com/widgets.js&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
    &lt;p&gt;Similar concerns are why I don&#x27;t like &lt;a href=&quot;https://github.com/features/copilot&quot;&gt;github&#x27;s copilot&lt;/a&gt; - it disregards the explicit wishes of the authors of the software it&#x27;s trained on for corporate profit.
    &lt;p&gt;This morning, Simon Willison posited that someone with my sympathies is an &lt;a href=&quot;https://simonwillison.net/2022/Aug/29/stable-diffusion/#ai-vegan&quot;&gt;AI vegan&lt;/a&gt;. I understand where he&#x27;s coming from, but it feels to me like an attempt to marginalize (an admittedly marginal!) viewpoint. It chooses not to engage with the people saying &quot;it&#x27;s unethical to do that!&quot; by framing it as a natural idea that there is always that wacky group saying that what we&#x27;re doing is unethical and we can safely ignore them.
    &lt;p&gt;That said, I eat meat! And I do try to both listen to but ignore what vegans say, so the metaphor definitely has power to me.
    &lt;p&gt;Maybe I will end up just getting over my ethical concerns and using the human-creator-mashup tools. Some of the work coming out of stable diffusion is neat (although I find it way less groundbreaking than the people who are really excited about it...) and I&#x27;m even occasionally jealous of github copilot.

    &lt;h2&gt;Links&lt;/h2&gt;

&lt;ul class=&quot;spaciouslist&quot;&gt;
  &lt;li&gt;A &lt;a href=&quot;https://huggingface.co/datasets&quot;&gt;nice collection of useful datasets&lt;/a&gt; and a &lt;a href=&quot;https://github.com/huggingface/datasets&quot;&gt;python library&lt;/a&gt; that makes downloading most of them a one-liner&lt;/li&gt;
  &lt;li&gt;How to &lt;a href=&quot;https://cloudfour.com/thinks/mac-voiceover-testing-the-simple-way/&quot;&gt;test your apps with VoiceOver&lt;/a&gt;. One of the best talks I ever went to was a short talk by a blind computer user where he showed us how he used his computer. (I&#x27;m trying to avoid calling it &quot;eye-opening&quot;...)&lt;/li&gt;
  &lt;li&gt;A funny Dan Hon &lt;a href=&quot;https://twitter.com/hondanhon/status/1561840766212837378&quot;&gt;twitter thread&lt;/a&gt; on legacy software on the Star Trek enterprise&lt;/li&gt;
  &lt;li&gt;Ben Johnson &lt;a href=&quot;https://fly.io/blog/sqlite-internals-wal/&quot;&gt;continues his excellent series&lt;/a&gt; on SQLite internals with a post explaining how the WAL works.&lt;/li&gt;
  &lt;li&gt;I have been studiously ignoring NixOS so far because it feels like it tends towards my worst perfectionist instincts, but this week I &lt;a href=&quot;https://notes.billmill.org/computer_usage/nix_shell/first_steps.html&quot;&gt;started&lt;/a&gt; &lt;a href=&quot;https://notes.billmill.org/computer_usage/nix_shell/flakes.html&quot;&gt;messing&lt;/a&gt; with it again, inspired by &lt;a href=&quot;https://twitter.com/hazelweakly/status/1562640644816121856&quot;&gt;this tweet thread&lt;/a&gt;. I&#x27;m intrigued by &lt;a href=&quot;https://github.com/jetpack-io/devbox&quot;&gt;devbox&lt;/a&gt;, which seems like an attempt at a UI layer on top of it, though I&#x27;ve not yet played with it and it seems pretty alpha.&lt;/li&gt;
  &lt;li&gt;Here&#x27;s &lt;a href=&quot;https://lichess.org/blog/U4sjakQAAEAAhH9d/how-training-puzzles-are-generated&quot;&gt;how lichess puzzles are generated&lt;/a&gt; (or were, as of 2014 - I couldn&#x27;t find how they&#x27;re currently generated in a brief search)&lt;/li&gt;
  &lt;li&gt;A &lt;a href=&quot;https://www.fast.ai/2022/08/25/jupyter-git/&quot;&gt;tool that cleverly merges jupyter notebook files&lt;/a&gt; to ease (make possible?) collaboration on them&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://colorandcontrast.com/#/&quot;&gt;An interactive guide to color &amp; contrast&lt;/a&gt; seems like a very cool online book on all sorts of color theory topics.&lt;/li&gt;
  &lt;li&gt;I &lt;a href=&quot;https://notes.billmill.org/computer_usage/google_cloud/creating_a_service_account.html&quot;&gt;wrote up complete notes&lt;/a&gt; for doing a mundane task - setting up a google cloud service account - and was struck by just how many steps there are for even a simple task.&lt;/li&gt;
&lt;/ul&gt;

  &lt;h2&gt;Music&lt;/h2&gt;
  &lt;ul&gt;
    &lt;li&gt;The new &lt;a href=&quot;https://open.spotify.com/album/0rEbmIQjHTKzKraH4UqiDy?si=8b1a4d6b700e44be&quot;&gt;Black Thought &amp; Danger Mouse&lt;/a&gt; and &lt;a href=&quot;https://open.spotify.com/album/3QVjpIxcksDkJmOnvlOJjg?si=c63db1888f3140d6&quot;&gt;JID&lt;/a&gt; albums are really good.&lt;/li&gt;
    &lt;li&gt;The album &lt;a href=&quot;https://open.spotify.com/album/2TgXc0KeZDRjb9AsnSED7M?si=e0e2cf8b1a4e42c5&quot;&gt;&quot;Get Fucked&quot;&lt;/a&gt; by The Chats is enjoyably straightforward rock and roll&lt;/li&gt;
  &lt;/ul&gt;

  &lt;h2&gt;TV&lt;/h2&gt;
  &lt;p&gt;This week we finished &lt;a href=&quot;https://www.imdb.com/title/tt14192504/&quot;&gt;&quot;We Own This City&quot;&lt;/a&gt;, David Simon&#x27;s dramatization of the GTTF in Baltimore. It was far below the quality of The Wire (what isn&#x27;t), but it was good. Anything that puts more attention on the dire situation of Baltimore is a good thing.
</content>
	</entry>
</feed>
