<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>llimllib's notes</title>
  <id>http://notes.billmill.org/</id>
  <link href="https://notes.billmill.org/atom.xml" rel="self" />
  <updated>2026-06-12T14:35:49.69297Z</updated>
  <generator uri="https://github.com/llimllib/obsidian_notes/" version="1.0">
    Obsidian Notes
  </generator>
  <author><name>Bill Mill</name></author>
  <entry>
    <id>https://notes.billmill.org/piano/ear_training.html</id>
    <link type="text/html" href="https://notes.billmill.org/piano/ear_training.html" />
    <title>ear training</title>
    <published>2026-06-12T14:35:02.244Z</published>
    <updated>2026-06-12T14:35:02.244Z</updated>
    <content type="html">&lt;p&gt;&lt;a href=&quot;https://tonedear.com/&quot; class=&quot;external-link&quot;&gt;https://tonedear.com/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;A set of free ear training exercises&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://notes.billmill.org/programming/golang/What_canceled_my_go_context.html</id>
    <link type="text/html" href="https://notes.billmill.org/programming/golang/What_canceled_my_go_context.html" />
    <title>What canceled my go context</title>
    <published>2026-04-06T12:59:38.799Z</published>
    <updated>2026-06-10T19:41:03.64Z</updated>
    <content type="html">&lt;p&gt;&lt;a href=&quot;https://rednafi.com/go/context-cancellation-cause/&quot; class=&quot;external-link&quot;&gt;https://rednafi.com/go/context-cancellation-cause/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Excellent article walking through one of the finer points of context usage: figuring out what cancelled your context.&lt;/p&gt;
&lt;p&gt;Gives examples of how to make sure you can always figure it out.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;brandur starts with the same &lt;code&gt;context.WithTimeoutCause&lt;/code&gt;, but gives a different recipe, describing a function &lt;code&gt;timeoututil.AttributedTimeout&lt;/code&gt; that takes a closure and handles context deadlines from within that closure&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://notes.billmill.org/link_blog/2026/06/How_s_Linear_so_fast_.html</id>
    <link type="text/html" href="https://notes.billmill.org/link_blog/2026/06/How_s_Linear_so_fast_.html" />
    <title>How's Linear so fast?</title>
    <published>2026-06-08T01:41:20.781Z</published>
    <updated>2026-06-08T01:41:20.781Z</updated>
    <content type="html">&lt;p&gt;&lt;a href=&quot;https://performance.dev/how-is-linear-so-fast-a-technical-breakdown&quot; class=&quot;external-link&quot;&gt;https://performance.dev/how-is-linear-so-fast-a-technical-breakdown&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;They use a sync engine such that user changes are optimistically applied&lt;/li&gt;
&lt;li&gt;They carefully load only the JS/CSS that is required at the start, and preload as much as possible&lt;/li&gt;
&lt;li&gt;They chunk the application very granularly, and use a service worker to preload chunks&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This made me interested in how their sync engine works, so I&#x27;m watching this talk:&lt;/p&gt;
&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/Wo2m3jaJixU?si=FLhcjMF6M6dWc8Dc&quot; title=&quot;YouTube video player&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; referrerpolicy=&quot;strict-origin-when-cross-origin&quot; allowfullscreen&gt;&lt;/iframe&gt;\
&lt;ul&gt;
&lt;li&gt;I&#x27;ve previously mentioned &lt;a href=&quot;/programming/algorithms/CRDT/electric.html&quot; class=&quot;internal-link&quot;&gt;electric&lt;/a&gt;, which implements a sync engine with CRDTs&lt;/li&gt;
&lt;li&gt;I&#x27;ve previously mentioned Replicache in &lt;a href=&quot;/link_blog/2025/08/Offline-First_Landscape.html&quot; class=&quot;internal-link&quot;&gt;Offline-First Landscape&lt;/a&gt; and &lt;a href=&quot;/computer_usage/fly/Real-time_Collaboration_with_replicache_and_fly-replay.html&quot; class=&quot;internal-link&quot;&gt;Real-time Collaboration with replicache and fly-replay&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;a news.yc commenter points to &lt;a href=&quot;https://doc.replicache.dev/concepts/how-it-works&quot; class=&quot;external-link&quot;&gt;this doc&lt;/a&gt; about how replicache works&lt;/li&gt;
&lt;li&gt;zero, who I guess are the company that supports replicache, have &lt;a href=&quot;https://zero.rocicorp.dev/docs/when-to-use#alternatives&quot; class=&quot;external-link&quot;&gt;this doc&lt;/a&gt; which points to alternatives to it&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;news.yc points to &lt;a href=&quot;https://github.com/wzhudev/reverse-linear-sync-engine/blob/main/SUMMARY.md&quot; class=&quot;external-link&quot;&gt;this reverse-engineering&lt;/a&gt; of the linear sync engine&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  <entry>
    <id>https://notes.billmill.org/programming/python/ty.html</id>
    <link type="text/html" href="https://notes.billmill.org/programming/python/ty.html" />
    <title>ty</title>
    <published>2026-06-07T15:38:45.958Z</published>
    <updated>2026-06-07T15:38:45.958Z</updated>
    <content type="html">&lt;p&gt;&lt;a href=&quot;https://docs.astral.sh/ty/&quot; class=&quot;external-link&quot;&gt;https://docs.astral.sh/ty/&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;An extremely fast Python type checker and language server, written in Rust.&lt;/p&gt;
&lt;/blockquote&gt;
</content>
  </entry>
  <entry>
    <id>https://notes.billmill.org/link_blog/2026/06/Thoughts_on_starting_new_projects_with_LLM_agents.html</id>
    <link type="text/html" href="https://notes.billmill.org/link_blog/2026/06/Thoughts_on_starting_new_projects_with_LLM_agents.html" />
    <title>Thoughts on starting new projects with LLM agents</title>
    <published>2026-06-07T15:29:24.348Z</published>
    <updated>2026-06-07T15:29:24.348Z</updated>
    <content type="html">&lt;p&gt;&lt;a href=&quot;https://eli.thegreenplace.net/2026/thoughts-on-starting-new-projects-with-llm-agents/&quot; class=&quot;external-link&quot;&gt;https://eli.thegreenplace.net/2026/thoughts-on-starting-new-projects-with-llm-agents/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Eli shares his thoughts on starting new projects with LLMs.&lt;/p&gt;
&lt;p&gt;Many of his preferences align with mine; especially around the importance of developing a test suite that actually works. Agents are happy to give themselves huge and useless test suites if you let them test themselves.&lt;/p&gt;
&lt;p&gt;One thing he didn&#x27;t mention is static tooling - I try to load up my LLM-using projects with every possible static tooling to improve the code the LLM writes. In Go, I use &lt;a href=&quot;/computer_usage/vim/golangci-lint.html&quot; class=&quot;internal-link&quot;&gt;golangci-lint&lt;/a&gt; with extra tools enabled (&lt;a href=&quot;https://github.com/llimllib/git-ls/blob/155578fd3bdb88bc3a8531fe138d3f1fd3c11935/.golangci.yml#L5&quot; class=&quot;external-link&quot;&gt;ex&lt;/a&gt;). In python, I use &lt;a href=&quot;/programming/python/Ruff_-_linter_written_in_rust.html&quot; class=&quot;internal-link&quot;&gt;ruff&lt;/a&gt; and &lt;a href=&quot;/programming/python/ty.html&quot; class=&quot;internal-link&quot;&gt;ty&lt;/a&gt;, and in typescript I use &lt;a href=&quot;https://github.com/microsoft/typescript-go&quot; class=&quot;external-link&quot;&gt;typescript-go&lt;/a&gt; and &lt;a href=&quot;https://biomejs.dev/&quot; class=&quot;external-link&quot;&gt;biome&lt;/a&gt; (though &lt;a href=&quot;https://oxc.rs/docs/guide/usage/linter.html&quot; class=&quot;external-link&quot;&gt;oxlint&lt;/a&gt; seems to be gaining popularity; I&#x27;ve not tried it but should).&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://notes.billmill.org/music/music_blog/2026/05/Ratboys_on_KEXP.html</id>
    <link type="text/html" href="https://notes.billmill.org/music/music_blog/2026/05/Ratboys_on_KEXP.html" />
    <title>Ratboys on KEXP</title>
    <published>2026-06-02T01:49:12.793Z</published>
    <updated>2026-06-02T01:49:12.793Z</updated>
    <content type="html">&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/YwGsjnxeC6o?si=Cqr6Junre8uRSMrH&quot; title=&quot;YouTube video player&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; referrerpolicy=&quot;strict-origin-when-cross-origin&quot; allowfullscreen&gt;&lt;/iframe&gt;
&lt;p&gt;Their most recent album is really good, I&#x27;ve been listening to it a bunch.&lt;/p&gt;
&lt;p&gt;I also haven&#x27;t mentioned how much I&#x27;ve been listening to MJ Lenderman, who&#x27;s got a similar sound and has played with Ratboys I think?&lt;/p&gt;
&lt;p&gt;&amp;quot;Wristwatch&amp;quot; is the standout from his &amp;quot;Manning Fireworks&amp;quot;, but I love a bunch of the songs&lt;/p&gt;
&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/gWnYusg6CTc?si=mIV39bLLm4P8xsLF&quot; title=&quot;YouTube video player&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; referrerpolicy=&quot;strict-origin-when-cross-origin&quot; allowfullscreen&gt;&lt;/iframe&gt;</content>
  </entry>
  <entry>
    <id>https://notes.billmill.org/link_blog/2026/05/But_it_happened.html</id>
    <link type="text/html" href="https://notes.billmill.org/link_blog/2026/05/But_it_happened.html" />
    <title>But it happened</title>
    <published>2026-05-30T02:39:09.133Z</published>
    <updated>2026-05-30T02:39:09.133Z</updated>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;Why doesn&#x27;t [Eric Schmidt] see that the thing that people are afraid of with artificial intelligence is not just technology in the abstract. It&#x27;s that they saw what Eric Schmidt and his cohort of Silicon Valley decision makers did the last time they were given a new technology to guide. They saw them build the dark pattern version of it. They lived it. And now they are terrified that they&#x27;re going to do the same dark pattern thing on top of the next new technology.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Casey Muratori in &lt;a href=&quot;https://www.youtube.com/watch?v=tlQ7EoJDTQY&quot; class=&quot;external-link&quot;&gt;a video&lt;/a&gt; breaking down Eric Schmidt&#x27;s commencement speech to the University of Arizona, bringing in context from the first part to consder more deeply why the audience might have been boing him in the second part when he brought up AI.&lt;/p&gt;
&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/tlQ7EoJDTQY?si=vGU3g8X8FJuV23P5&quot; title=&quot;YouTube video player&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; referrerpolicy=&quot;strict-origin-when-cross-origin&quot; allowfullscreen&gt;&lt;/iframe&gt;
&lt;p&gt;via &lt;a href=&quot;https://gist.github.com/wrs/648401d9bdd33c0a15f6afbfef156874&quot; class=&quot;external-link&quot;&gt;lobste.rs&lt;/a&gt;, which links &lt;a href=&quot;https://gist.github.com/wrs/648401d9bdd33c0a15f6afbfef156874&quot; class=&quot;external-link&quot;&gt;this transcript&lt;/a&gt; if you&#x27;d rather read.&lt;/p&gt;
&lt;p&gt;I find AI a really useful and exciting technology for me, personally, but I share significant fears about where the people in control of it (for whom, it should be noted, I could be broadly said to work) will drive it.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://notes.billmill.org/link_blog/2026/05/Decyphering_the_Business_Card_Raytracer.html</id>
    <link type="text/html" href="https://notes.billmill.org/link_blog/2026/05/Decyphering_the_Business_Card_Raytracer.html" />
    <title>Decyphering the Business Card Raytracer</title>
    <published>2026-05-28T13:25:25.919Z</published>
    <updated>2026-05-28T13:25:25.919Z</updated>
    <content type="html">&lt;p&gt;&lt;a href=&quot;https://fabiensanglard.net/rayTracing_back_of_business_card/&quot; class=&quot;external-link&quot;&gt;https://fabiensanglard.net/rayTracing_back_of_business_card/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Fabien breaks down how a lovely short program works&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://notes.billmill.org/link_blog/2026/05/C_isn_t_a_programming_language.html</id>
    <link type="text/html" href="https://notes.billmill.org/link_blog/2026/05/C_isn_t_a_programming_language.html" />
    <title>C isn't a programming language</title>
    <published>2026-05-28T12:50:15.698Z</published>
    <updated>2026-05-28T12:50:15.698Z</updated>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;My&lt;/em&gt; problem is that C was elevated to a role of prestige and power, its reign so absolute and eternal that it has completely distorted the way we speak to each other. Rust and Swift cannot simply speak their native and comfortable tongues – they must instead wrap themselves in a grotesque simulacra of C’s skin and make their flesh undulate in the same ways it does.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;C is the &lt;em&gt;lingua franca&lt;/em&gt; of programming. We must all speak C, and therefore C is not just a programming language anymore – it’s a protocol that every general-purpose programming language needs to speak.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://faultlore.com/blah/c-isnt-a-language/&quot; class=&quot;external-link&quot;&gt;Aria Desires&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  <entry>
    <id>https://notes.billmill.org/link_blog/2026/05/demoscapes.html</id>
    <link type="text/html" href="https://notes.billmill.org/link_blog/2026/05/demoscapes.html" />
    <title>demoscapes</title>
    <published>2026-05-26T01:46:34.414Z</published>
    <updated>2026-05-26T01:46:34.414Z</updated>
    <content type="html">&lt;p&gt;&lt;a href=&quot;https://demoscapes.org/&quot; class=&quot;external-link&quot;&gt;https://demoscapes.org/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Very cool interactive visualizations of a variety of statistics.&lt;/p&gt;
&lt;p&gt;In this graph, the two dark blue smudges, with my mouse pointer on the second one, indicate excess male mortality in world wars I and II.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;/Pasted image 20260525214737.png&quot;&gt;&lt;img class=&quot;bodyimg&quot; src=&quot;/Pasted image 20260525214737.png&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;There are many more statistics available, and from many different countries&#x27; data.&lt;/p&gt;
&lt;p&gt;via &lt;a href=&quot;https://bsky.app/profile/jschoeley.com/post/3mkmm6ru2mc2b&quot; class=&quot;external-link&quot;&gt;bsky&lt;/a&gt;, where &lt;a href=&quot;https://bsky.app/profile/scientificdiscovery.dev&quot; class=&quot;external-link&quot;&gt;Saloni Dattani&lt;/a&gt; provides &lt;a href=&quot;https://cdn.bsky.app/img/feed_fullsize/plain/did:plc:73aicoale2mqwrap63rdzwep/bafkreie7xm2wxkvz4dqscp2q6xrz6ozdqxb4jmfengtfkbcj5pxe55kzsi&quot; class=&quot;external-link&quot;&gt;this interesting annotated version&lt;/a&gt;&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://notes.billmill.org/link_blog/2026/05/50_hours_to_draw_some_lines.html</id>
    <link type="text/html" href="https://notes.billmill.org/link_blog/2026/05/50_hours_to_draw_some_lines.html" />
    <title>50 hours to draw some lines</title>
    <published>2026-05-26T01:41:37.597Z</published>
    <updated>2026-05-26T01:41:37.597Z</updated>
    <content type="html">&lt;p&gt;&lt;a href=&quot;https://www.dougmacdowell.com/50-hours-to-draw-some-lines.html&quot; class=&quot;external-link&quot;&gt;https://www.dougmacdowell.com/50-hours-to-draw-some-lines.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The author talks about their process for learning some basic drafting techniques, culminating in this hand-drawn graph:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;/Pasted image 20260525214246.png&quot;&gt;&lt;img class=&quot;bodyimg&quot; src=&quot;/Pasted image 20260525214246.png&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;A very cool dive into how to accomplish it, an interesting look into how much effort these scientific diagrams must have taken int he past, and a good chance to question how and why we spend our effort.&lt;/p&gt;
&lt;p&gt;via &lt;a href=&quot;https://news.ycombinator.com/item?id=48223997&quot; class=&quot;external-link&quot;&gt;news.yc&lt;/a&gt;&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://notes.billmill.org/visualization/js_libs/recharts.html</id>
    <link type="text/html" href="https://notes.billmill.org/visualization/js_libs/recharts.html" />
    <title>recharts</title>
    <published>2026-05-19T18:19:50.901Z</published>
    <updated>2026-05-19T18:19:50.901Z</updated>
    <content type="html">&lt;p&gt;&lt;a href=&quot;https://recharts.github.io/&quot; class=&quot;external-link&quot;&gt;https://recharts.github.io/&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://github.com/recharts/recharts/&quot; class=&quot;external-link&quot;&gt;https://github.com/recharts/recharts/&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A composable charting library built on React components&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Built on top of SVG elements with a lightweight dependency on &lt;a href=&quot;/visualization/js_libs/d3.js.html&quot; class=&quot;internal-link&quot;&gt;d3.js&lt;/a&gt; submodules.&lt;/p&gt;
&lt;/blockquote&gt;
</content>
  </entry>
  <entry>
    <id>https://notes.billmill.org/link_blog/2026/05/Can_We_Retain_the_Benefits_of_Transitive_Dependencies_Without_Undermining_Security_.html</id>
    <link type="text/html" href="https://notes.billmill.org/link_blog/2026/05/Can_We_Retain_the_Benefits_of_Transitive_Dependencies_Without_Undermining_Security_.html" />
    <title>Can We Retain the Benefits of Transitive Dependencies Without Undermining Security?</title>
    <published>2026-05-19T02:50:11.599Z</published>
    <updated>2026-05-19T02:50:11.599Z</updated>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;let me outline where I would one day like our software to go. I would like to run software, built from multiple components (i.e. dependencies of some kind), in such a way that:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;ol&gt;
&lt;li&gt;Components are isolated from each other as much as possible.&lt;/li&gt;
&lt;li&gt;Each component only has the minimum permissions it needs.&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;For example, I don’t want my image decoding component to have network access, or the ability to access RAM with passwords in; but I do want my network downloading component to have network access, and I do want to be able to create a component that can manage and use passwords...&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;In other words, I want to split software up into mutually distrusting dynamic “cells”, like processes, but with the ability to communicate more easily, frequently, and cheaply. The communications between dynamic components would need to be tightly specified, and if a component fails to communicate in exactly the required way, other components should ignore all interactions.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://tratt.net/laurie/blog/2024/can_we_retain_the_benefits_of_transitive_dependencies_without_undermining_security.html&quot; class=&quot;external-link&quot;&gt;Lawrence Tratt&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  <entry>
    <id>https://notes.billmill.org/computer_usage/yt-dlp/yt-transcribe.html</id>
    <link type="text/html" href="https://notes.billmill.org/computer_usage/yt-dlp/yt-transcribe.html" />
    <title>yt-transcribe</title>
    <published>2026-05-19T02:35:38.045Z</published>
    <updated>2026-05-19T02:35:38.045Z</updated>
    <content type="html">&lt;p&gt;My script for using &lt;a href=&quot;/computer_usage/yt-dlp/yt-dlp.html&quot; class=&quot;internal-link&quot;&gt;yt-dlp&lt;/a&gt;, &lt;a href=&quot;/computer_usage/ffmpeg/ffmpeg.html&quot; class=&quot;internal-link&quot;&gt;ffmpeg&lt;/a&gt;, and &lt;a href=&quot;/link_blog/2024/08/mlx-whisper.html&quot; class=&quot;internal-link&quot;&gt;mlx-whisper&lt;/a&gt; to create a transcript of a youtube talk&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/llimllib/yt-transcribe&quot; class=&quot;external-link&quot;&gt;https://github.com/llimllib/yt-transcribe&lt;/a&gt;&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://notes.billmill.org/dev_blog/2026/05/Adaptive_mode_for_yt-transcribe.html</id>
    <link type="text/html" href="https://notes.billmill.org/dev_blog/2026/05/Adaptive_mode_for_yt-transcribe.html" />
    <title>Adaptive mode for yt-transcribe</title>
    <published>2026-05-19T02:32:31.111Z</published>
    <updated>2026-05-19T02:32:31.111Z</updated>
    <content type="html">&lt;p&gt;I added adaptive mode to &lt;a href=&quot;/computer_usage/yt-dlp/yt-transcribe.html&quot; class=&quot;internal-link&quot;&gt;yt-transcribe&lt;/a&gt;, my shell script for transcribing youtube talks: &lt;a href=&quot;https://github.com/llimllib/yt-transcribe&quot; class=&quot;external-link&quot;&gt;https://github.com/llimllib/yt-transcribe&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Adaptive mode looks for scene changes, rather than just generating a thumbnail every N seconds. Here&#x27;s an example, generating a transcript for &lt;a href=&quot;https://bsky.app/profile/steveklabnik.com/post/3mm57bk5cis2t&quot; class=&quot;external-link&quot;&gt;Steve Klabnik&#x27;s talk&lt;/a&gt; &lt;a href=&quot;https://llimllib.github.io/yt-transcribe/klabnik-adaptive/&quot; class=&quot;external-link&quot;&gt;&amp;quot;Steel, Rust and Truth&amp;quot;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;That talk motivated the work, as I wanted the script to capture all of the slides - it was hard to follow without that.&lt;/p&gt;
&lt;p&gt;The actual change is &lt;a href=&quot;https://github.com/llimllib/yt-transcribe/commit/2fd503b3c984df6fdb02e9abf26df0a2a740d265&quot; class=&quot;external-link&quot;&gt;here&lt;/a&gt;&lt;/p&gt;
</content>
  </entry>
</feed>