<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:base="https://garden.travisbriggs.com/">
  <title>Digital Garden of Travis Briggs</title>
  <subtitle>Learning in public with a personal knowledge graph</subtitle>
  <link href="https://garden.travisbriggs.com/feed.xml" rel="self"/>
  <link href="https://garden.travisbriggs.com/"/>
  <updated>2026-08-02T00:00:00Z</updated>
  <id>https://garden.travisbriggs.com/</id>
  <author>
    <name>Travis Briggs</name>
    <email>audiodude@gmail.com</email>
  </author>
  <entry>
    <title>AI Bubble</title>
    <link href="https://garden.travisbriggs.com/garden/AI%20bubble/"/>
    <updated>2026-08-02T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/AI%20bubble/</id>
    <content xml:lang="en" type="html">&lt;p&gt;In April, I wondered if there was an AI bubble in the US stock market/economy.&lt;/p&gt;
&lt;p&gt;At this point &lt;strong&gt;it is abundantly clear that there is&lt;/strong&gt;. In fact, we might be already past the point where investors and banks are trying to deflate the bubble gently, for a &lt;em&gt;soft landing&lt;/em&gt; of sorts. Apparently Doctorow predicted this &lt;a href=&quot;https://www.theguardian.com/us-news/ng-interactive/2026/jan/18/tech-ai-bubble-burst-reverse-centaur&quot;&gt;back in January of 2026&lt;/a&gt;. And &lt;a href=&quot;https://www.wheresyoured.at/&quot;&gt;Ed Zitron&lt;/a&gt; lays out a compelling case with specific economic numbers.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title></title>
    <link href="https://garden.travisbriggs.com/_gemini/link-suggestions/"/>
    <updated>2026-07-31T16:33:52Z</updated>
    <id>https://garden.travisbriggs.com/_gemini/link-suggestions/</id>
    <content xml:lang="en" type="html">&lt;!doctype html&gt;
&lt;html lang=&quot;en&quot;&gt;
&lt;head&gt;
&lt;meta charset=&quot;utf-8&quot; /&gt;
&lt;title&gt;Garden Link Suggestions&lt;/title&gt;
&lt;style&gt;
:root {
  --bg: #1e2028;
  --bg-elev: #242830;
  --bg-deep: #1a1c22;
  --border: #3a3e48;
  --text: #d0d4dc;
  --muted: #808890;
  --muted2: #707888;
  --accent: #6aa8e8;
  --accent-soft: #1e2e48;
  --good: #7cc460;
  --warn: #e8b060;
  --error: #e05555;
  --badge-bg: #2e3240;
}
* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body {
  font-family: -apple-system, BlinkMacSystemFont, &#39;Segoe UI&#39;, Roboto, sans-serif;
  background: var(--bg);
  color: var(--text);
  line-height: 1.5;
  font-size: 14px;
}
.layout { display: grid; grid-template-columns: 320px 1fr; min-height: 100vh; }
aside {
  background: var(--bg-deep);
  border-right: 1px solid var(--border);
  position: sticky; top: 0;
  height: 100vh; overflow-y: auto;
  display: flex; flex-direction: column;
}
aside header {
  padding: 1rem 1rem 0.75rem;
  border-bottom: 1px solid var(--border);
}
aside header h1 { margin: 0 0 0.3rem; font-size: 1rem; }
aside header .meta { font-size: 0.75rem; color: var(--muted); }
.controls { padding: 0.75rem 1rem; border-bottom: 1px solid var(--border); }
.controls input[type=&quot;text&quot;] {
  width: 100%;
  background: var(--bg-elev);
  color: var(--text);
  border: 1px solid var(--border);
  border-radius: 4px;
  padding: 0.4rem 0.5rem;
  font-size: 0.85rem;
}
.controls label { display: flex; align-items: center; gap: 0.4rem; font-size: 0.8rem; color: var(--muted); margin-top: 0.5rem; cursor: pointer; }
.controls select {
  width: 100%;
  background: var(--bg-elev); color: var(--text); border: 1px solid var(--border);
  border-radius: 4px; padding: 0.3rem 0.4rem; font-size: 0.8rem; margin-top: 0.5rem;
}
nav { flex: 1; overflow-y: auto; padding: 0.25rem 0; }
.nav-item {
  display: flex; justify-content: space-between; align-items: center;
  padding: 0.4rem 1rem; color: var(--text); text-decoration: none; font-size: 0.85rem;
  border-left: 3px solid transparent;
}
.nav-item:hover { background: var(--bg-elev); }
.nav-item.active { background: var(--accent-soft); border-left-color: var(--accent); }
.nav-item .counts { font-size: 0.7rem; color: var(--muted); }
.nav-item .counts strong { color: var(--accent); margin-right: 0.4rem; }
.nav-item .counts em { color: var(--good); font-style: normal; }
.nav-item .slug { color: var(--muted2); font-family: monospace; font-size: 0.75rem; margin-left: 0.3rem; }

main { padding: 1.5rem 2rem; max-width: 900px; }
main h2 { margin: 0 0 0.25rem; font-size: 1.4rem; }
main .node-meta { color: var(--muted); font-family: monospace; font-size: 0.85rem; margin-bottom: 1rem; }
main .node-meta a { color: var(--accent); text-decoration: none; margin-right: 1rem; }
main .node-meta a:hover { text-decoration: underline; }

.section { margin-top: 1.5rem; }
.section h3 { font-size: 0.95rem; color: var(--muted); text-transform: uppercase; letter-spacing: 0.05em; margin: 0 0 0.6rem; }
.empty { color: var(--muted2); font-style: italic; font-size: 0.85rem; }

.card {
  background: var(--bg-elev);
  border: 1px solid var(--border);
  border-radius: 6px;
  padding: 0.75rem 1rem;
  margin-bottom: 0.6rem;
}
.card .head { display: flex; gap: 0.5rem; align-items: baseline; flex-wrap: wrap; }
.card .target {
  font-family: monospace;
  background: var(--accent-soft);
  color: var(--accent);
  padding: 0.1rem 0.5rem;
  border-radius: 3px;
  font-size: 0.85rem;
}
.card .target.missing { background: rgba(224,85,85,0.15); color: var(--error); }
.card .target a { color: inherit; text-decoration: none; }
.card .anchor { color: var(--good); font-style: italic; font-size: 0.85rem; }
.card .anchor::before { content: &#39;&quot;&#39;; }
.card .anchor::after { content: &#39;&quot;&#39;; }
.card .context, .card .rationale { margin-top: 0.4rem; font-size: 0.85rem; }
.card .context { color: var(--muted); }
.card .context::before { content: &#39;&gt; &#39;; color: var(--muted2); }
.card .rationale { color: var(--text); }
.card .actions { margin-top: 0.5rem; font-size: 0.75rem; }
.card .actions a { color: var(--accent); text-decoration: none; margin-right: 1rem; }
.card .actions a:hover { text-decoration: underline; }

.stats { display: flex; gap: 1.5rem; margin-bottom: 1.5rem; font-size: 0.8rem; color: var(--muted); }
.stats span strong { color: var(--text); font-weight: 600; margin-right: 0.25rem; }
.error { color: var(--error); }
.no-node { color: var(--muted); padding: 2rem; text-align: center; }
&lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;div class=&quot;layout&quot;&gt;
  &lt;aside&gt;
    &lt;header&gt;
      &lt;h1&gt;Garden Link Suggestions&lt;/h1&gt;
      &lt;div class=&quot;meta&quot; id=&quot;meta&quot;&gt;&lt;/div&gt;
    &lt;/header&gt;
    &lt;div class=&quot;controls&quot;&gt;
      &lt;input type=&quot;text&quot; id=&quot;filter&quot; placeholder=&quot;Filter by slug or title…&quot; /&gt;
      &lt;select id=&quot;sort&quot;&gt;
        &lt;option value=&quot;suggestions&quot;&gt;Sort: most suggestions&lt;/option&gt;
        &lt;option value=&quot;slug&quot;&gt;Sort: slug A–Z&lt;/option&gt;
        &lt;option value=&quot;title&quot;&gt;Sort: title A–Z&lt;/option&gt;
      &lt;/select&gt;
      &lt;label&gt;&lt;input type=&quot;checkbox&quot; id=&quot;hide-empty&quot; checked=&quot;&quot; /&gt; Hide nodes with no suggestions&lt;/label&gt;
    &lt;/div&gt;
    &lt;nav id=&quot;nav&quot;&gt;&lt;/nav&gt;
  &lt;/aside&gt;
  &lt;main id=&quot;main&quot;&gt;
    &lt;div class=&quot;no-node&quot;&gt;Pick a node from the sidebar.&lt;/div&gt;
  &lt;/main&gt;
&lt;/div&gt;

&lt;script id=&quot;data&quot; type=&quot;application/json&quot;&gt;{&quot;results&quot;:[{&quot;node&quot;:{&quot;slug&quot;:&quot;Abby&quot;,&quot;fileSlug&quot;:&quot;Abby&quot;,&quot;title&quot;:&quot;Abby&quot;,&quot;content&quot;:&quot;&#92;nAbby is my lovely wife. We got married on November 9th, 2014. We met in Boston in 2011 and started dating in April of that year. If you&#39;ll believe it, we were engaged by July of that year. I love her to pieces, and in fact I write her a &#92;&quot;daily love letter&#92;&quot; every night.&#92;n&#92;nWe go on trips together (many trips to Reno since 2018, Sweden, Quebec, Switzerland, Hong Kong), play video games (Fallout 4 forever, recently Arc Raiders), see [[good-song|movies]], walk down Valencia Street, go to company picnics and holiday parties. She is my best friend as well as my one true love.&#92;n&#92;nShe is a costume designer, thrift store stalker, and [[blog/q-poker-in-progress| poker player]]. She is smart and talented and funny. I&#39;d show you a picture but she&#39;d probably get embarassed.&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;new-year-2025&quot;,&quot;rationale&quot;:&quot;This node describes spending the holidays in Massachusetts with Abby and her family, elaborating on their relationship and shared trips.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:337,&quot;cache_creation_input_tokens&quot;:34021,&quot;cache_read_input_tokens&quot;:0,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:34021,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:80,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:0},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;Bandcamp&quot;,&quot;fileSlug&quot;:&quot;Bandcamp&quot;,&quot;title&quot;:&quot;Bandcamp&quot;,&quot;content&quot;:&quot;&#92;nWhile I have used Bandcamp as both a [[danger-third-rail|music publisher]] and music consumer, I don&#39;t really have the fanatical attachment to it that I see from some corners of the internet. That&#39;s probably okay. I do fundamentally believe that a Bandcamp model of &#92;&quot;long tail&#92;&quot; artists and music producers, as well as labels and collectives, is the way forward for the _capital M_ Music Industry. Or rather, it seems that said industry will only stratify into 10 artists with a billion views on Spotify/YouTube and a billion artists with 10 views on Bandcamp. [Deezer&#39;s new royalty terms](https://www.billboard.com/pro/streaming-reform-debate-artist-centric-royalties-impala-helen-smith-opinion/) are a particularly odious step in that direction: they pay anyone with less than 500 listeners or 1000 streams per month at half the rate. This reverse Robin Hood model is literally stealing from the most vulnerable artists in the ecosystem to give to the richest.&#92;n&#92;nI was a bit uneasy when [Epic Games bought Bandcamp](https://www.pcgamer.com/epic-games-bandcamp-acquisition/) in March 2022. But I calmed down, because I rationalized that they were simply looking to have more User Generated Content in their portfolio.&#92;n&#92;nNow Bandcamp has been flipped again. After just 18 months, Epic sold the business to [Songtradr](https://www.theguardian.com/music/2023/oct/17/bandcamp-lays-off-half-its-staff-after-buyout-by-songtradr). Songtradr is in the business of providing licensing and cleared songs and samples to media creators, from social media all the way up to ad agencies and more. It&#39;s pure speculation (but I&#39;m not a journalist, this is just my garden), but I wouldn&#39;t be surprised if Songtradr just wants to take all the Bandcamp music and put it in a zipfile and add it to their licensing corpus. They&#39;re probably working with their lawyers to figure out a way they can do that under Bandcamps existing TOS right now. Michael Donaldson even [theorizes](https://8sided.blog/a-mess-of-headaches/) that the mess of uncleared samples and covers on Bandcamp already will cause Songtradr a lot of headaches. I can see a world where they try to get artists to attest that their songs are unencumbered or face personal liability.&#92;n&#92;nAnd of course, Songtradr has turned around and immediately laid of 50% of Bandcamp&#39;s staff, in the name of efficiency. [Tom Hawking at The Guardian](https://www.theguardian.com/commentisfree/2023/oct/27/epic-games-bandcamp-acquired-sondtradr) writes about some of the ways this belies the goals and incentives of a company that cares more about cash than culture.&#92;n&#92;nAltogether, it is not really a great time to be an artist on the Bandcamp platform. There are millions who love it, and who trust it, and who even use it for their income (I must confess that ~30% of the revenue I&#39;ve ever made as a musician has come from Bandcamp). But I think the writing&#39;s on the wall as it were. Bandcamp may or may not have a future at all, and it is unlikely that the future it has is going to be as well in alignment with the interests of its artists and fans as it was in the past.&#92;n&#92;nThe key point is that it&#39;s not a certainty that Bandcamp will become hostile to the users it serves. Rather, the imperative is to cultivate backups and alternatives **now**, before the day comes when everyone wakes up to having to sign some contract or pay some gross fee and there&#39;s nowhere else to go.&#92;n&#92;nSo what are we to do?&#92;n&#92;nAndrew Roach writes about [The Uncertain Future of Bandcamp](https://ajroach42.com/the-uncertain-future-of-bandcamp/), and with his normal enthusiasm and forward thinking, he proposes grabbing a bunch of his friends and writing a complete turnkey alternative from the ground up. I&#39;m exhausted just thinking about it, but it sounds awesome. He explicitly states that he&#39;s not interested in competing with or replacing any other alternative solutions that may pop up, or may already be in progress, which I think is really smart and graceful.&#92;n&#92;nMy solution is to build [[Rainfall]], a tool that lets you upload songs and create a [Faircamp](https://codeberg.org/simonrepp/faircamp) website through a GUI (without having to install Rust or navigate the command line on your own computer).&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;Spotify&quot;,&quot;anchor_text&quot;:&quot;Spotify&quot;,&quot;context&quot;:&quot;10 artists with a billion views on Spotify/YouTube and a billion artists&quot;,&quot;rationale&quot;:&quot;Directly mentions Spotify, which has its own node discussing the platform and its royalty structure.&quot;},{&quot;slug&quot;:&quot;YouTube&quot;,&quot;anchor_text&quot;:&quot;YouTube&quot;,&quot;context&quot;:&quot;a billion views on Spotify/YouTube and a billion artists with 10 views&quot;,&quot;rationale&quot;:&quot;Directly mentions YouTube, which has a dedicated node.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;Spotify&quot;,&quot;rationale&quot;:&quot;The Spotify node discusses the unfair two-tiered royalty payout system, directly elaborating on this node&#39;s critique of streaming royalties for long-tail artists.&quot;},{&quot;slug&quot;:&quot;danger-third-rail&quot;,&quot;rationale&quot;:&quot;Bandcamp is a primary platform for the author&#39;s music project, and the node elaborates on his music publishing/recording activities.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1513,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:421,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:107},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;Christian&quot;,&quot;fileSlug&quot;:&quot;Christian&quot;,&quot;title&quot;:&quot;Christian&quot;,&quot;content&quot;:&quot;&#92;r&#92;nI have a friend named Christian, who was in my wedding party, and who I worked with at [[Qwobl]] back in like 2008.&#92;r&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;Python&quot;,&quot;rationale&quot;:&quot;The Python node mentions getting the Qwobl job with Christian and coding Python there, elaborating on this working relationship.&quot;},{&quot;slug&quot;:&quot;Qwobl&quot;,&quot;rationale&quot;:&quot;The Qwobl node describes the startup and mentions friendships with Christian that have lasted for years.&quot;},{&quot;slug&quot;:&quot;Abby&quot;,&quot;rationale&quot;:&quot;The Abby node covers the wedding, which relates to Christian being in the wedding party.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:92,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:306,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:140},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;DBT&quot;,&quot;fileSlug&quot;:&quot;DBT&quot;,&quot;title&quot;:&quot;DBT&quot;,&quot;content&quot;:&quot;DBT is [Dialectial Behavior Therapy](https://my.clevelandclinic.org/health/treatments/22838-dialectical-behavior-therapy-dbt) (also [on Wikipedia](https://en.wikipedia.org/wiki/Dialectical_behavior_therapy)).&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;coping-skills&quot;,&quot;rationale&quot;:&quot;Coping skills are a core component of DBT, and this poem-node directly references practicing coping skills as instructed in therapy.&quot;},{&quot;slug&quot;:&quot;intrisic motivation&quot;,&quot;rationale&quot;:&quot;This node mentions working with a therapist to identify motivation patterns, connecting to therapeutic self-work like DBT.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:150,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:214,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:78},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;DistroKid&quot;,&quot;fileSlug&quot;:&quot;DistroKid&quot;,&quot;title&quot;:&quot;DistroKid&quot;,&quot;content&quot;:&quot;&#92;r&#92;nhttps://distrokid.com&#92;r&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;danger-third-rail&quot;,&quot;rationale&quot;:&quot;Danger Third Rail&#39;s tracks were distributed via DistroKid to Spotify, making it a direct use case of this service.&quot;},{&quot;slug&quot;:&quot;Spotify&quot;,&quot;rationale&quot;:&quot;DistroKid is the distributor that gets music onto Spotify, a platform discussed in that node.&quot;},{&quot;slug&quot;:&quot;Bandcamp&quot;,&quot;rationale&quot;:&quot;Bandcamp is another music distribution/hosting platform relevant to the same music-release ecosystem.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:61,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:180,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:0},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;Fiverr&quot;,&quot;fileSlug&quot;:&quot;Fiverr&quot;,&quot;title&quot;:&quot;Fiverr&quot;,&quot;content&quot;:&quot;&#92;r&#92;nhttps://fiverr.com&#92;r&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;danger-third-rail&quot;,&quot;rationale&quot;:&quot;Danger Third Rail describes hiring Fiverr freelancers to mix and master tracks, elaborating on how Fiverr is used.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:61,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:207,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:121},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;Java&quot;,&quot;fileSlug&quot;:&quot;Java&quot;,&quot;title&quot;:&quot;Java&quot;,&quot;content&quot;:&quot;The problem with Java is that everything has to be a class. Period point blank. This distorts all design of programs, because you start thinking &#92;&quot;Well I can&#39;t have a function that just takes an object, so I better add it as a method of the object&#92;&quot;. Then you think, &#92;&quot;Well my Object needs to be able to construct other Objects that it needs, but I don&#39;t want to tightly couple them&#92;&quot; so you end up with a Factory pattern. Also, you end up trying to map classes to &#92;&quot;real world-ish&#92;&quot; things, like Databases and Business Models and such, even though some functionality cuts across class boundaries and would be better in just a simple funcion. Don&#39;t worry, we have the Singleton pattern for that, for basically just a loose colletion of random code. :facepalm:.&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;programming languages&quot;,&quot;rationale&quot;:&quot;This meta node ties together all the programming language nodes, including Java, and would benefit from linking back and forth.&quot;},{&quot;slug&quot;:&quot;Ruby on Rails&quot;,&quot;rationale&quot;:&quot;The author notes their first job was in Java before moving to Ruby, providing a natural comparison of language experiences.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:269,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:126,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:0},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;Kiwix&quot;,&quot;fileSlug&quot;:&quot;Kiwix&quot;,&quot;title&quot;:&quot;Kiwix&quot;,&quot;content&quot;:&quot;[Kiwix](https://kiwix.org) is an organization that helps make web content available for offline viewing. I&#39;ve been working with them since 2018 and I would say that I&#39;m definitely part of the organization, in a volunteer capacity. I primarily work with them on [[wp-1.0|WP1]], though I&#39;ve also worked on [mwoffliner](https://github.com/openzim/mwoffliner), which is a scraping bot for making offline copies of Wikipedia pages. The offliner works with WP1 inside something called a [Zimfarm](https://github.com/openzim/zimfarm).&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;now&quot;,&quot;rationale&quot;:&quot;The &#39;now&#39; node mentions mentoring a Google Summer of Code student for Kiwix, elaborating on the author&#39;s ongoing involvement with the organization.&quot;},{&quot;slug&quot;:&quot;Python&quot;,&quot;rationale&quot;:&quot;WP1 and related Kiwix tooling are written in Python, which this node&#39;s work centers on.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:245,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:259,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:130},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;Perl&quot;,&quot;fileSlug&quot;:&quot;Perl&quot;,&quot;title&quot;:&quot;Perl&quot;,&quot;content&quot;:&quot;I learned a little bit of Perl in college, and even coded some simple web apps with it. The most experience I&#39;ve had with it, though, was when I was rewriting the [[wp-1.0|WP 1.0]] bot/web server. I translated hundreds of lines of Perl into Python, and it was definitely a considerable task.&#92;n&#92;nPerl kind of looks deceptively simple. There are all the usual suspects of `if` statements and `for` loops, and even dictionaries look relatively sane at first glance. And I&#39;m not talking about the [code golf](https://code.golf/) versions of perl where you just have a bunch of `&lt;&gt; = {};` or whatever that somehow iterates over input on standard in and does something with it. I&#39;m talking about Perl that was written by a considerate programmer, with the intention of being reasonably legible and maintainable.&#92;n&#92;nBut still, I found too many constructs that were hard to grasp. Too many ways of doing the same thing, which of course leads to the Python precept of that &#92;&quot;There should be one-- and preferably only one --obvious way to do it.&#92;&quot; (from the famous *[The Zen of Python](https://peps.python.org/pep-0020/)*). My understanding has always been that [[Python]] was a direct reaction/answer to Perl.&#92;n&#92;nReally, the number one thing that I found impossible to understand in Perl was the way of referencing external symbols, the &#92;&quot;import&#92;&quot; system so to speak. I&#39;m not going to look it up right now (maybe I can expand this garden node later), but there seemed to be many ways of doing this, with some code being in modules and some code being directly transcluded with something akin to a C `#include` statement. Unfortunately, the codebase I was working in used some mix of all available options, which again made it really hard to figure out where a function was coming from.&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;programming languages&quot;,&quot;rationale&quot;:&quot;This meta node ties together Perl and other programming languages the author discusses, providing broader context.&quot;},{&quot;slug&quot;:&quot;what-programming-language-should-i-learn&quot;,&quot;rationale&quot;:&quot;This node explicitly notes the author wouldn&#39;t recommend anyone learn Perl, directly elaborating on the frustrations described here.&quot;},{&quot;slug&quot;:&quot;Python&quot;,&quot;rationale&quot;:&quot;The node contrasts Perl with Python&#39;s design philosophy, and the Python node elaborates on the author&#39;s preference for it.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:604,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:347,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:161},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;Python&quot;,&quot;fileSlug&quot;:&quot;Python&quot;,&quot;title&quot;:&quot;Python&quot;,&quot;content&quot;:&quot;&#92;r&#92;nI first started writing Python in 2009, in my first Github repo: [sudoku-solver](https://github.com/audiodude/sudoku-solver), an open source library for solving Sudoku puzzles that I did in my free time (I had a lot of free time back then because I was unemployed and living in my parents&#39; basement).&#92;r&#92;n&#92;r&#92;nSoon after I got my job at [[Qwobl]] with Jawad and [[Christian]] and Joe, where I wrote a lot more Python code. I don&#39;t think they ever told me this, but I think they looked at the sudoku code when considering me for the job.&#92;r&#92;n&#92;r&#92;nPython has remained one of my favorite programming languages. I would say I&#39;m probably slightly more proficient in it than [[javascript-typescript|Javascript/Typescript]], which is what I use for my [[YouTube|day job]].&#92;r&#92;n&#92;r&#92;nAt one point, I figured out a way to [[warnings-python|elevate Python warnings]] to errors in order to help debug and fix them.&#92;r&#92;n&#92;r&#92;nIn 2023 I started teaching a completely free [Python class](https://www.noisebridge.net/wiki/PyClass) at [Noisebridge](http://noisebridge.net/). It has since evolved into a more general  [&#92;&quot;Computer Programming Study Group&#92;&quot;](https://www.noisebridge.net/wiki/Computer_Programming_Study_Group), but we still cover some of the Python lectures from time to time. The lectures I wrote are in the Noisebridge [GitHub repo](https://github.com/noisebridge/PythonClass) for the class. Here&#39;s a list, with a link to interactive copies of the [Jupyter Notebooks](https://jupyter.org/) on a [Littlest Jupyter Hub](https://tljh.jupyter.org/en/latest/) instance that I host. **If you&#39;d like the password for sfpythonlab.com, email me and introduce yourself.**&#92;r&#92;n&#92;r&#92;n* Lesson 1 - Basics using Mastodon - [sfpythonlab.com notebook](https://sfpythonlab.com/hub/user-redirect/git-pull?repo=https%3A%2F%2Fgithub.com%2Fnoisebridge%2FPythonClass&amp;branch=main&amp;urlpath=tree%2FPythonClass%2Flessons%2F01-basics-using-mastodon%2Fmastodon.ipynb)&#92;r&#92;n* Lesson 2 - Control structures and booleans - [sfpythonlab.com notebook](https://sfpythonlab.com/hub/user-redirect/git-pull?repo=https%3A%2F%2Fgithub.com%2Fnoisebridge%2FPythonClass&amp;branch=main&amp;urlpath=tree%2FPythonClass%2Flessons%2F02-control-structures-booleans%2Fcontrol_structures_booleans.ipynb)&#92;r&#92;n* Lesson 3 - Exceptions - [sfpythonlab.com notebook](https://sfpythonlab.com/hub/user-redirect/git-pull?repo=https%3A%2F%2Fgithub.com%2Fnoisebridge%2FPythonClass&amp;branch=main&amp;urlpath=tree%2FPythonClass%2Flessons%2F03-exceptions%2Fexceptions.ipynb)&#92;r&#92;n* Lesson 4 - Defining functions - [sfpythonlab.com notebook](https://sfpythonlab.com/hub/user-redirect/git-pull?repo=https%3A%2F%2Fgithub.com%2Fnoisebridge%2FPythonClass&amp;branch=main&amp;urlpath=tree%2FPythonClass%2Flessons%2F04-function-definitions%2Ffunction_definitions.ipynb)&#92;r&#92;n* Lesson 5 - Algorithms - [sfpythonlab.com notebook](https://sfpythonlab.com/hub/user-redirect/git-pull?repo=https%3A%2F%2Fgithub.com%2Fnoisebridge%2FPythonClass&amp;branch=main&amp;urlpath=tree%2FPythonClass%2Flessons%2F05-algorithms-pt-1%2Falgorithms_pt_1.ipynb)&#92;r&#92;n* Lesson 6 - Classes, objects, and decorators - [sfpythonlab.com notebook](https://sfpythonlab.com/hub/user-redirect/git-pull?repo=https%3A%2F%2Fgithub.com%2Fnoisebridge%2FPythonClass&amp;branch=main&amp;urlpath=tree%2FPythonClass%2Flessons%2F06-classes-objects-decorators%2Fclasses_objects_decorators.py.ipynb)&#92;r&#92;n* Lesson 7 - Regex - [sfpythonlab.com notebook](https://sfpythonlab.com/hub/user-redirect/git-pull?repo=https%3A%2F%2Fgithub.com%2Fnoisebridge%2FPythonClass&amp;branch=main&amp;urlpath=tree%2FPythonClass%2Flessons%2F07-regex%2F07_regex.ipynb)&#92;r&#92;n* Lesson 8 - Data Analysis with sqlite and Pandas - [sfpythonlab.com notebook](https://sfpythonlab.com/hub/user-redirect/git-pull?repo=https%3A%2F%2Fgithub.com%2Fnoisebridge%2FPythonClass&amp;branch=main&amp;urlpath=tree%2FPythonClass%2Flessons%2F07-regex%2F07_regex.ipynb)&#92;r&#92;n* Lesson 9 - APIs and AI - [sfpythonlab.com notebook](https://sfpythonlab.com/hub/user-redirect/git-pull?repo=https%3A%2F%2Fgithub.com%2Fnoisebridge%2FPythonClass&amp;branch=main&amp;urlpath=tree%2FPythonClass%2Flessons%2F09-api-and-ai%2Fapi_and_ai.ipynb)&#92;r&#92;n* Lesson 10 - Web Scraping - [sfpythonlab.com notebook](https://sfpythonlab.com/hub/user-redirect/git-pull?repo=https%3A%2F%2Fgithub.com%2Fnoisebridge%2FPythonClass&amp;branch=a62face03bd0d541a2c9f2eba8085937e76d4bfb&amp;urlpath=tree%2FPythonClass%2Flessons%2Fseries_3%2F10-web-scraping%2Fweb-scraping.ipynb)&#92;r&#92;n* Lesson 11 - Web apps with Flask, pt 1 - [sfpythonlab.com notebook](https://sfpythonlab.com/hub/user-redirect/git-pull?repo=https%3A%2F%2Fgithub.com%2Fnoisebridge%2FPythonClass&amp;branch=main&amp;urlpath=tree%2FPythonClass%2Flessons%2F11-web-apps-with-flask-pt-1%2Fweb_apps_with_flask.ipynb)&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;programming languages&quot;,&quot;anchor_text&quot;:&quot;programming languages&quot;,&quot;context&quot;:&quot;Python has remained one of my favorite programming languages.&quot;,&quot;rationale&quot;:&quot;This meta node ties together all the programming languages Travis writes about, including Python.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;wp-1.0&quot;,&quot;rationale&quot;:&quot;The WP 1.0 project is one of Travis&#39;s major Python projects and elaborates on his Python usage.&quot;},{&quot;slug&quot;:&quot;Rainfall&quot;,&quot;rationale&quot;:&quot;Rainfall is a Python/Flask project that demonstrates his Python work in more depth.&quot;},{&quot;slug&quot;:&quot;what-programming-language-should-i-learn&quot;,&quot;rationale&quot;:&quot;Discusses choosing Python among other languages, complementing this node&#39;s advocacy.&quot;},{&quot;slug&quot;:&quot;what-is-a-web-application&quot;,&quot;rationale&quot;:&quot;Relates to the Flask web app lessons mentioned at the end of this node.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:2360,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:612,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:322},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;Qwobl&quot;,&quot;fileSlug&quot;:&quot;Qwobl&quot;,&quot;title&quot;:&quot;Qwobl&quot;,&quot;content&quot;:&quot;&#92;r&#92;nQwobl was the smallest startup I ever worked for, and I&#39;ve worked for a lot of startups. It was only 5 people total, including me. The cool part of that was that there was a **lot** of room to learn and experiment, with no one breathing down your neck. There was nothing that was &#92;&quot;somebody else&#39;s responsiblity&#92;&quot; or &#92;&quot;someone else will take care of that&#92;&quot;. If things were to get done, we had to push our comfort zones and learn how to do them ourselves. It was a formative experience for me to work there, and I made friendships that have lasted for years and to this day ([[Christian]]).&#92;r&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;Python&quot;,&quot;rationale&quot;:&quot;The Python node describes getting the job at Qwobl and writing Python code there alongside colleagues, elaborating on this work experience.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:230,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:262,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:184},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;Rainfall&quot;,&quot;fileSlug&quot;:&quot;Rainfall&quot;,&quot;title&quot;:&quot;Rainfall, a website generator for musicians&quot;,&quot;content&quot;:&quot;## Early attempts&#92;n&#92;nI have been working on personal song hosting since 2018, when I created [songs.travisbriggs.com](https://songs.travisbriggs.com) ([Github](https://github.com/audiodude/songs.travisbriggs.com)). The point was to replace Soundcloud, which I was paying for but getting very little value from.&#92;n&#92;nSorry, this garden node is about to get technical...&#92;n&#92;nThat site is basically a custom [static site generator](https://www.cloudflare.com/learning/performance/static-site-generator/), written in [Python](https://www.python.org/) and [Flask](https://flask.palletsprojects.com/en/3.0.x/). All song metadata (name, tags, descriptions) is stored in [Markdown](https://daringfireball.net/projects/markdown) files (much like this Garden). It operates as a normal Flask web application, for previewing the site, but when a special command is given, it &#92;&quot;crawls&#92;&quot; through all of the pages of the site and &#92;&quot;renders&#92;&quot; them as simple HTML pages, like a website from 1999 (as all static site generators due). The practical upside of all this is that I can host the site on Netlify, where I don&#39;t need any Python processes or databases running, and as of this writing Netlify continues to operate a free plan for a pretty generous amount of bandwidth per month, which includes a CDN (in case you get hugged by hacker news or reddit).&#92;n&#92;nAfter using this setup for a while and being happy with it, I &#92;&quot;open sourced&#92;&quot; it, cleaning out all the personally identifying and specific information, as [Rainfall](https://github.com/audiodude/rainfall) (a play on Soundcloud I think?). With that, someone could download my template and create their own static music site with their own music on their own Netlify (or anywhere else). Seemed legit.&#92;n&#92;nHowever, no one used it (surprise!). At that point, I had in my mind a project (still called Rainfall) that would allow users to sign up and upload songs through a web interface, providing metadata. I would then spin up a local Flask server for them (the same as my preview server above) and let them preview their site in an iframe before clicking a publish button, doing an OAuth with Netlify, and making their site live. I got this working for one site, but the technical hurdle I could never overcome was the problem of dynamically attaching a newly created web app to my serving stack without restarting the web server. That remains the unsolved problem for server-side Rainfall.&#92;n&#92;n## Moving Forward&#92;n&#92;nObviously, everything I&#39;ve written above about the potential demise of Bandcamp, and Andrew&#39;s article and impetus, has emboldened me to look at this again. I found out about the awesome [Faircamp](https://codeberg.org/simonrepp/faircamp) recently, which seems very slick and full featured and customizable, in a way that I think artists themselves will appreciate (rather than just creating clones of my songs.travisbriggs.com site).&#92;n&#92;nThe potential difficulty with Faircamp is that it is a Rust binary that runs locally, and requires an installation. More than that, the manual clearly states:&#92;n&#92;n&gt; On BSD, macOS and Windows you are entering uncharted territory, ...&#92;n&#92;nBeyond that, the data for the app (the songs and metadata and images and everything) have to be hand cultivated into a particular directory structure and format for it to work.&#92;n&#92;nWhat if I could take my ideas (and maybe even my codebase!) that I developed for server-side Rainfall, and use Faircamp as a sort of &#92;&quot;backend&#92;&quot;? That is, I could:&#92;n&#92;n1. Allow users to sign in, upload their songs, add metadata, add images, etc.&#92;n2. Create the directory structure that Faircamp requires.&#92;n3. Render HTML with Faircamp&#92;n4. Allow users to preview their site, surfacing any Faircamp errors/issues.&#92;n5. OAuth with Netlify and publish to the web.&#92;n&#92;nThat&#39;s it, that&#39;s the idea. 1200 words later, that&#39;s it.&#92;n&#92;n## Progress (technical)&#92;n&#92;nSo far, I&#39;ve released both versions 1.0 and 1.1 of the project. 1.0 allowed you to upload songs and create the basic website, while version 1.1 added the ability to log in via Mastodon (because lots of people complained about the exclusive Google login).&#92;n&#92;nThe Github repo is [here](https://github.com/audiodude/rainfall), and you can see the issues I&#39;m tracking for future releases.&#92;n&#92;nThe tech statck is [Python/Flask](https://flask.palletsprojects.com/en/3.0.x/), [SQLAlchemy](https://www.sqlalchemy.org/) and [Vue 3](https://vuejs.org/) for the frontend. It allows logging in with Google or Mastodon accounts (because I _really_ didn&#39;t want to deal with user registration and especially password management/reset emails/etc). I have tests for the backend in [Pytest](https://docs.pytest.org/en/7.4.x/).&#92;n&#92;nI originally thought I couldn&#39;t deploy this on my preferred platform of [Fly.io](https://fly.io/), because of the need for filesystem access. However I was able to do it with the use of &#92;&quot;shared volumes&#92;&quot;.&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;Python&quot;,&quot;anchor_text&quot;:&quot;Python&quot;,&quot;context&quot;:&quot;custom [static site generator], written in [Python] and [Flask]&quot;,&quot;rationale&quot;:&quot;The node discusses Python as its implementation language, which has a dedicated node.&quot;},{&quot;slug&quot;:&quot;Bandcamp&quot;,&quot;anchor_text&quot;:&quot;Bandcamp&quot;,&quot;context&quot;:&quot;everything I&#39;ve written above about the potential demise of Bandcamp&quot;,&quot;rationale&quot;:&quot;The node directly references the demise of Bandcamp, which has its own dedicated node.&quot;},{&quot;slug&quot;:&quot;Vue.js&quot;,&quot;anchor_text&quot;:&quot;Vue 3&quot;,&quot;context&quot;:&quot;[SQLAlchemy] and [Vue 3] for the frontend&quot;,&quot;rationale&quot;:&quot;Vue 3 is the frontend framework with a dedicated node.&quot;},{&quot;slug&quot;:&quot;github&quot;,&quot;anchor_text&quot;:&quot;Faircamp&quot;,&quot;context&quot;:&quot;I found out about the awesome [Faircamp] recently&quot;,&quot;rationale&quot;:&quot;The Github node discusses Faircamp on Codeberg and connects to the same topic.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;danger-third-rail&quot;,&quot;rationale&quot;:&quot;Rainfall was built to host the author&#39;s own music project, Danger Third Rail.&quot;},{&quot;slug&quot;:&quot;Spotify&quot;,&quot;rationale&quot;:&quot;The node&#39;s motivation about music hosting and streaming royalties is elaborated in the Spotify node.&quot;},{&quot;slug&quot;:&quot;Vue.js&quot;,&quot;rationale&quot;:&quot;The Vue.js node mentions building full SPAs with Rainfall, directly elaborating the tech stack.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1662,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:753,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:278},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;Ruby on Rails&quot;,&quot;fileSlug&quot;:&quot;Ruby on Rails&quot;,&quot;title&quot;:&quot;Ruby (on Rails)&quot;,&quot;content&quot;:&quot;Ruby on Rails is probably the first frontend framework I ever used. I think I dabbled in [[Perl]] a bit in a college course, `cgi-bin` style. But even in college, I worked on a project for a digital choral music library, where I created a Ruby on Rails app that had forms (that validated!) and stored data in a SQL database using `ActiveRecord`!&#92;n&#92;nMy first job was in [[Java]], but I remained very curious about Rails and even just regular Ruby itself. At one point I even coded an &#92;&quot;open source&#92;&quot; abstract strategy game called [Tanbo](https://github.com/audiodude/Ruby-Tanbo), with a full GUI implemented with [WxWidgets](https://wxwidgets.org/). It even had a CPU that you could play against which used (checks notes) something called a UCT method ([Upper Confidence bounds applied to Trees](https://en.wikipedia.org/wiki/Monte_Carlo_tree_search)). From reading that Wikipedia article now, it was actually kind of cutting edge at the time.&#92;n&#92;nI like Ruby. I think it&#39;s a very concise and expressive language. I also think it&#39;s a very powerful language, with it&#39;s systems of operator overloading and custom operators and monkey-patching. The problem is, when you have a big enough project, it can be impossible to tell where certain behavior is coming from. A class? A superclass? A monkey patch? Even basic Rails, out-of-the-box, create new Rails app projects can have this problem.&#92;n&#92;nThe most recent Ruby on Rails coding I&#39;ve done is for the [&#92;&quot;headless CMS&#92;&quot;](https://github.com/audiodude/best-albums-headless) for [[best albums in the universe]]. This is a Rails 7 app solely for me, but I still tried to style it a bit and make the error messages helpful, so that I wouldn&#39;t dread using it. I even use Capistrano to both deploy new versions of the admin/headless app itself, and deploy the finished static site.&#92;n&#92;nI haven&#39;t really kept up with Ruby on Rails development past that, though I know there&#39;s been a lot of churn with regards to webpack/etc and how to best integrate Javascript/Typescript and [Single Page Applications](https://developer.mozilla.org/en-US/docs/Glossary/SPA).&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;javascript-typescript&quot;,&quot;anchor_text&quot;:&quot;Javascript/Typescript&quot;,&quot;context&quot;:&quot;how to best integrate Javascript/Typescript and [Single Page Applications]&quot;,&quot;rationale&quot;:&quot;The text directly references Javascript/Typescript, which has its own dedicated node.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;programming languages&quot;,&quot;rationale&quot;:&quot;This meta node ties together all the programming language nodes including Ruby on Rails, providing broader context.&quot;},{&quot;slug&quot;:&quot;what-programming-language-should-i-learn&quot;,&quot;rationale&quot;:&quot;Discusses choosing programming languages, relevant to a node reflecting on Ruby&#39;s strengths and weaknesses.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:793,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:338,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:114},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;Spotify&quot;,&quot;fileSlug&quot;:&quot;Spotify&quot;,&quot;title&quot;:&quot;Spotify&quot;,&quot;content&quot;:&quot;&#92;nI have been a Spotify user since they first launched in the US, which was (checks notes) July 2011. Wow. I&#39;m pretty much a happy customer, and I think I get good value from the service. I&#39;m also an [[danger-third-rail|artist]] on the platform, whatever that&#39;s worth, though I don&#39;t receive any royalties anymore since they changed the structure so that songs with less than 1000 plays [don&#39;t get paid out](https://www.nme.com/news/music/spotify-has-now-officially-demonetised-all-songs-with-less-than-1000-streams-3614010). I feel like the two-tiered system that this creates is completely unfair, and destroys Spotify as a platform where a [long tail](https://en.wikipedia.org/wiki/Long_tail) of artists can have even some meager amount of success, whatever that means. In fact, currently you have to pay a distributor like [[DistroKid]] to put your music on Spotify, where you have no chance of earning that money back, so it really is [&#92;&quot;pay to play&#92;&quot;](https://www.musicindustryhowto.com/dont-pay-to-play-heres-how-to-get-paid-to-play-bigger-shows-instead/). Sigh.&#92;n&#92;nWhat I really want to discuss though is the fact that, even though I have a [YouTube Music](https://music.youtube.com) subscription bundled with my YouTube Premium subscription, I still pay for Spotify. Some people would think this is completely crazy, but there are *reasons*, I swear.&#92;n&#92;nFirst off, it&#39;s not just lock in. Whenever I read articles or forum posts where people discuss switching away from Spotify, there&#39;s lots of consternation around &#92;&quot;but what about muh plAYLisssts???&#92;&quot;. Let&#39;s be clear, I barely use playlists. I have like half a dozen, and most are just collections of songs that I want to &#92;&quot;bookmark&#92;&quot; somehow. Something like 80% of my music listening is full albums. And I&#39;m not even that worried about Spotify having my saved library of albums (which I admit, that part is extensive) because I&#39;ve cataloged that list at [[best albums in the universe]]. Plus I&#39;m sure I could write a 10 line [[Python]] script to grab my albums list from the Spotify API should I ever need it.&#92;n&#92;nNo, I think it&#39;s more of a muscle memory thing, kind of like a vim/emacs debate, where I&#39;ve developed familiarity with the Spotify interface. I know how to find, play, queue, skip, etc, songs without much trouble. Even more important, I know how to navigate between songs and the albums or artists, and how and where to find albums versus compilations versus singles, to get to what I want to listen to.&#92;n&#92;nThat said, I&#39;ve actually considered the switch to YouTube Music [disclosure: I work for [[YouTube]]], for one reason: **the steaming pile of flaming garbage that is the Spotify homepage.**&#92;n&#92;nThe first 3 shelves are &#92;&quot;keep listening to stuff you just listened to&#92;&quot;, which is clearly designed for people who are playlist heavy. They probably listened to 5 or 6 songs from a playlist and want to resume. Or they listen to the same 4 playlists every week.&#92;n&#92;nThe next two shelves are &#92;&quot;dive in&#92;&quot; to genres that I don&#39;t like, that they&#39;re pushing on you as part of their rumoured [payola schemes](https://www.theregreview.org/2024/07/06/preventing-payola-in-the-music-industry/).&#92;n&#92;nAnd the next 6 (I wish I was kidding) shelves are podcasts. Because listen to podcasts! Spotify doesn&#39;t have to pay royalties on them! Don&#39;t you want to listen to PODCASTS??&#92;n&#92;nSo I&#39;m thinking of switching to YT Music so that maybe I could have *some* kind of useful homepage experience. Unfortunately my YT Music history is shit because I have only ever used it in Waymo, which is a scenario where I listen to like loud hip hop and other shit I wouldn&#39;t normally listen to. So I wouldn&#39;t switch to YT Music unless there is a &#92;&quot;Clear all history&#92;&quot; button. But unfortunately, you can&#39;t clear YT Music history without clearing your entire YouTube history, which would destroy all of my YouTube video recommendations (which are, actually, not bad). Also YT Music has all kinds of cruft where they decided that some playlists that I randomly have on YouTube are actually *music* playlists, so they show up in YT Music. They also recommend shit based on music videos I watch, which I normally watch for reasons not related to actually liking the music.&#92;n&#92;nThese are just some nuanced opinions of course, and overall I think Spotify is pretty useful and great. I worry about it destroying the music industry/artist&#39;s livelihoods. But there have been a long queue of technologies, governments and cultural shifts that have been trying to destroy the music industry for the past 100 years, so I&#39;m not actually that concerned. See also [[Bandcamp]].&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;ai-music-trends&quot;,&quot;rationale&quot;:&quot;That node discusses low Spotify royalty payments and the economics of the music industry, elaborating on the royalty/livelihood concerns raised here.&quot;},{&quot;slug&quot;:&quot;new-danger-third-rail-ep&quot;,&quot;rationale&quot;:&quot;Discusses releasing music as Danger Third Rail on streaming, connecting to being an artist on the platform mentioned here.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1615,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:439,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:287},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;Suno&quot;,&quot;fileSlug&quot;:&quot;Suno&quot;,&quot;title&quot;:&quot;Suno&quot;,&quot;content&quot;:&quot;[Suno](https://suno.com) is [[vibe coding]] for my songs/music/songwriting.&#92;n&#92;nThat&#39;s probably not a good thing.&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;ai-music-trends&quot;,&quot;rationale&quot;:&quot;Suno as AI music generation directly relates to the discussion of AI-made music versus human-crafted music.&quot;},{&quot;slug&quot;:&quot;null-rail&quot;,&quot;rationale&quot;:&quot;Null Rail documents AI-generated tracks kept separate from hand-made demos, closely related to using Suno for songwriting.&quot;},{&quot;slug&quot;:&quot;danger-third-rail&quot;,&quot;rationale&quot;:&quot;Suno concerns Travis&#39;s music project, and Danger Third Rail is the recording project it would affect.&quot;},{&quot;slug&quot;:&quot;ai-coding-benchmarks&quot;,&quot;rationale&quot;:&quot;The &#39;vibe coding for songs&#39; framing connects to broader AI/vibe coding attitudes discussed elsewhere.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:96,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:248,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:0},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;Vue.js&quot;,&quot;fileSlug&quot;:&quot;Vue.js&quot;,&quot;title&quot;:&quot;Vue.js&quot;,&quot;content&quot;:&quot;[Vue.js](https://vuejs.org/) is an awesome frontend [[javascript-typescript|JavaScript/Typescript]] framework for making all kinds of interactive, reactive, web applications. One of the coolest things about it is that you can include just a snippet of JavaScript on a page and progressively enhance the page with interactive functionality, without commiting to the whole framework. On the other hand, you can easily write full fledged SPAs like I&#39;ve done with [[wp-1.0|WP 1.0]] and [[Rainfall]].&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;what-is-a-web-application&quot;,&quot;anchor_text&quot;:&quot;web applications&quot;,&quot;context&quot;:&quot;framework for making all kinds of interactive, reactive, web applications&quot;,&quot;rationale&quot;:&quot;That node explicitly defines what a web application is, directly relevant to Vue.js&#39;s purpose.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;programming languages&quot;,&quot;rationale&quot;:&quot;The meta node ties together the languages and frameworks Travis uses, including Vue.js paired with Typescript.&quot;},{&quot;slug&quot;:&quot;random-knowledge-about-javascript-and-typescript&quot;,&quot;rationale&quot;:&quot;Provides more background on the JavaScript/Typescript ecosystem that underlies Vue.js.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:244,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:312,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:89},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;YouTube&quot;,&quot;fileSlug&quot;:&quot;YouTube&quot;,&quot;title&quot;:&quot;YouTube&quot;,&quot;content&quot;:&quot;&#92;r&#92;nFor billions of people around the world, YouTube is a source of entertainment, education, hand-wringing about policy and politics, a celebrity maker, and so much more. For me, it&#39;s the company that signs my paycheck.&#92;r&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;about&quot;,&quot;rationale&quot;:&quot;The About Me node describes Travis&#39;s work as a software developer, elaborating on his employment which the paycheck reference alludes to.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:117,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:74,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:0},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;Zen&quot;,&quot;fileSlug&quot;:&quot;Zen&quot;,&quot;title&quot;:&quot;Zen&quot;,&quot;content&quot;:&quot;I&#39;m not sure if this page should be completely empty, completely full, or if it already is both.&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;philosophy&quot;,&quot;rationale&quot;:&quot;The philosophy node explicitly discusses the author&#39;s renewed interest in Zen and situates it alongside atheism and existentialism, elaborating on this node&#39;s topic.&quot;},{&quot;slug&quot;:&quot;atheism&quot;,&quot;rationale&quot;:&quot;The author connects Zen with his atheism (&#39;some sort of zen&#39;) in his broader worldview, making this a related belief node.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:76,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:317,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:174},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;ableton-12&quot;,&quot;fileSlug&quot;:&quot;ableton-12&quot;,&quot;title&quot;:&quot;Ableton 12, consternation and procrastination&quot;,&quot;content&quot;:&quot;&#92;n[Ableton Live](https://www.ableton.com/en/live/) version 12 was released the first week of March, 2024. By [all](https://www.musicradar.com/reviews/ableton-live-12-suite-review) [accounts](https://www.gearnews.com/ableton-live-12-review-more-midi-more-gui-more-sound/) it&#39;s a great update, with new instruments and an improved interface, while maintaining the basic interface and workflows that we&#39;re all familiar with. I actually pre-ordered the software when I read those first preliminary reviews and they were positive. I figured, why cause myself indecision when the package actually came out? Just pre-order it now, spend the money, and when it comes out I can download it and instantly be in music-making Nirvana.&#92;n&#92;nWell that&#39;s not quite what happened.&#92;n&#92;nThis past Monday, the day before Live&#39;s release, I got an email from Ableton letting me know that my license had been activated and I would be able to download the software soon. I started having some serious introspection about the [[highs-and-lows-musician|state of my music-making]] and the things I wanted to do. I felt like it was finally time to &#92;&quot;come out of retirement&#92;&quot; and start making music again by any means necessary.&#92;n&#92;nSuffice it to say, that hasn&#39;t happened. Instead, I&#39;ve been possessed by a crippling anxiety and sense of dread. Basically what has happened is that I have all the tools I need to make music. Everything is there, completely capable, ready for me to take the reigns and do something great. This wealth of possibility though, rather than be empowering, is downright terrifying. All that&#39;s standing in the way between me and my music is myself, and that&#39;s the most frightening thing of all. No excuses, no one to blame.&#92;n&#92;nHopefully I can get over this initial existential dread and start making music again soon!&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;ableton&quot;,&quot;anchor_text&quot;:&quot;Ableton Live&quot;,&quot;context&quot;:&quot;[Ableton Live](https://www.ableton.com/en/live/) version 12 was released the first week of March, 2024&quot;,&quot;rationale&quot;:&quot;The node&#39;s core subject is Ableton Live, which has its own dedicated node.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;recording-setup&quot;,&quot;rationale&quot;:&quot;Describes the author&#39;s music-making setup which is now based around Ableton 12, elaborating the tooling context.&quot;},{&quot;slug&quot;:&quot;motivation-music&quot;,&quot;rationale&quot;:&quot;Directly explores the author&#39;s motivation (and lack thereof) for making music, deepening this node&#39;s theme of dread and procrastination.&quot;},{&quot;slug&quot;:&quot;empty-mind&quot;,&quot;rationale&quot;:&quot;Captures the same paralysis of having tools but being unable to create, mirroring the existential dread described here.&quot;},{&quot;slug&quot;:&quot;nike-the-shit-out-of-it&quot;,&quot;rationale&quot;:&quot;Discusses procrastination around making music despite having everything needed, closely echoing this node&#39;s message.&quot;},{&quot;slug&quot;:&quot;getting-nothing-done&quot;,&quot;rationale&quot;:&quot;Explores procrastination and inability to act, relevant to the anxiety and dread described.&quot;},{&quot;slug&quot;:&quot;intrisic motivation&quot;,&quot;rationale&quot;:&quot;The struggle to start making music with no external pressure ties into the author&#39;s writing on intrinsic vs extrinsic motivation.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:625,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:611,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:173},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;ableton&quot;,&quot;fileSlug&quot;:&quot;ableton&quot;,&quot;title&quot;:&quot;Ableton Live&quot;,&quot;content&quot;:&quot;&#92;n[Ableton Live](https://www.ableton.com/en/live/what-is-live/) is music production software that serves as a Digital Audio Workstation (DAW). It allows musicians and producers to record and edit digital audio tracks, compose arrangements using looping and part triggering, and even perform DJ sets on the fly from within the interface.&#92;n&#92;nI might have more to say on this subject in the future.&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;ableton-12&quot;,&quot;rationale&quot;:&quot;Discusses the version 12 release and workflows of the very software described here.&quot;},{&quot;slug&quot;:&quot;recording-setup&quot;,&quot;rationale&quot;:&quot;Details a home recording setup based around Ableton Live as the DAW.&quot;},{&quot;slug&quot;:&quot;music-projects-as-ephemera&quot;,&quot;rationale&quot;:&quot;Explores how Ableton Live projects were structured and became unopenable over time.&quot;},{&quot;slug&quot;:&quot;highs-and-lows-musician&quot;,&quot;rationale&quot;:&quot;Chronicles the author&#39;s home music production journey using Ableton and related tools.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:176,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:194,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:0},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;about&quot;,&quot;fileSlug&quot;:&quot;about&quot;,&quot;title&quot;:&quot;About Me&quot;,&quot;content&quot;:&quot;&#92;nTravis Briggs is a software developer, amateur musician, and digital gardener&#92;n(formerly blogger). All of these skills come together on his personal website,&#92;nlocated at [travisbriggs.com](https://travisbriggs.com). He has a BS in Computer&#92;nScience with a minor in music from Worcester Polytechnic Institute in Worcester&#92;nMA, USA.&#92;n&#92;nTravis specializes in developing software using frontend technologies such as&#92;nHTML/CSS and Javascript/Typescript. He enjoys programming in his spare time as&#92;nwell, and is the primary maintainer of the Wikipedia [WP 1.0&#92;nBot](https://en.wikipedia.org/wiki/User:WP_1.0_bot), which has the most all time&#92;nedits to English Wikipedia. Understanding the value of a quality mentor, he also&#92;ntutors students and adults in Computer Science for free, and teaches a [free&#92;nPython class](https://www.noisebridge.net/wiki/PyClass) at the&#92;n[Noisebridge](https://www.noisebridge.net) hackerspace in San Francisco.&#92;n&#92;nTravis has released a single and an EP under the moniker [&quot;Danger Third&#92;nRail&quot;](https://dangerthirdrail.com), which are available on many online&#92;nmusic stores. Previously, Travis has performed at open mic nights and as a&#92;nbusker in Cambridge, MA USA.&#92;n&#92;nTravis currently lives with his amazing wife Abby and cuddly cat Shekel in San&#92;nFrancisco CA USA.&#92;n&#92;n---&#92;n&#92;n## Contact&#92;n&#92;nYou can always email me at [audiodude@gmail.com](mailto:audiodude@gmail.com).&#92;n&#92;nMy current Mastodon link is&#92;n[@audiodude@sfba.social](https://sfba.social/@audiodude).&#92;n&#92;nHere is my [Github profile](https://github.com/audiodude).&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;javascript-typescript&quot;,&quot;anchor_text&quot;:&quot;Javascript/Typescript&quot;,&quot;context&quot;:&quot;frontend technologies such as HTML/CSS and Javascript/Typescript&quot;,&quot;rationale&quot;:&quot;Directly references the language covered by that node.&quot;},{&quot;slug&quot;:&quot;wp-1.0&quot;,&quot;anchor_text&quot;:&quot;WP 1.0&#92;nBot&quot;,&quot;context&quot;:&quot;is the primary maintainer of the Wikipedia WP 1.0 Bot&quot;,&quot;rationale&quot;:&quot;The WP 1.0 project has its own dedicated node.&quot;},{&quot;slug&quot;:&quot;Python&quot;,&quot;anchor_text&quot;:&quot;free&#92;nPython class&quot;,&quot;context&quot;:&quot;teaches a free Python class at the&quot;,&quot;rationale&quot;:&quot;Python is a subject with its own node.&quot;},{&quot;slug&quot;:&quot;danger-third-rail&quot;,&quot;anchor_text&quot;:&quot;Danger Third&#92;nRail&quot;,&quot;context&quot;:&quot;released a single and an EP under the moniker &#92;&quot;Danger Third Rail&#92;&quot;&quot;,&quot;rationale&quot;:&quot;His music project has a dedicated node.&quot;},{&quot;slug&quot;:&quot;Abby&quot;,&quot;anchor_text&quot;:&quot;Abby&quot;,&quot;context&quot;:&quot;lives with his amazing wife Abby and cuddly cat Shekel&quot;,&quot;rationale&quot;:&quot;Abby has her own node.&quot;},{&quot;slug&quot;:&quot;github&quot;,&quot;anchor_text&quot;:&quot;Github profile&quot;,&quot;context&quot;:&quot;Here is my Github profile&quot;,&quot;rationale&quot;:&quot;Github is discussed in its own node.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;digital-garden-itself&quot;,&quot;rationale&quot;:&quot;Elaborates on the digital garden that this personal website is built as.&quot;},{&quot;slug&quot;:&quot;Kiwix&quot;,&quot;rationale&quot;:&quot;His WP 1.0 work is done in collaboration with Kiwix, expanding on his Wikipedia involvement.&quot;},{&quot;slug&quot;:&quot;highs-and-lows-musician&quot;,&quot;rationale&quot;:&quot;Deepens his story as an amateur musician mentioned here.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:629,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:670,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:106},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;activity-pub&quot;,&quot;fileSlug&quot;:&quot;activity-pub&quot;,&quot;title&quot;:&quot;Activity Pub shenanigans&quot;,&quot;content&quot;:&quot;&#92;nIn case you didn&#39;t know [ActivityPub](https://www.theverge.com/2023/4/20/23689570/activitypub-protocol-standard-social-network) is the open protocol ([W3C recommendation](https://www.w3.org/TR/activitypub/)) that powers Mastodon. It is a way for different servers to exchange messages from users (&#92;&quot;Actors&#92;&quot;). It is based on [ActivityStreams](https://www.w3.org/TR/activitystreams-core/), which define the types of objects and data in the systems. One interesting thing is that although ActivityPub/ActivityStreams define [12 different types of Object](https://www.w3.org/TR/activitystreams-vocabulary/#object-types) that can be passed between ActivityPub servers, Mastodon only implements the _Note_.&#92;n&#92;nI found a [plugin for Eleventy](https://github.com/LewisDaleUK/eleventy-plugin-activity-pub) (the static site generator used for this garden) that offered to turn my garden into it&#39;s own ActivityPub &#92;&quot;node&#92;&quot; (not sure what to call it). The basic idea was to sort of hack the [WebFinger](https://en.wikipedia.org/wiki/WebFinger) protocol that ActivityPub uses to discover actors on a site, and have it return a static file in response to all queries. This gave me the following account that I could see from my Mastodon server:&#92;n&#92;n![Screenshot of a Mastodon account belonging to &#92;&quot;Digital Garden of Travis Briggs&#92;&quot;/@digital.garden@travisbriggs.com](https://pxscdn.com/public/m/_v2/588554065884192073/bf4779419-8cf74f/8duMzD0IWbpB/bCuOgEm3kXRTU46PaN0wyCBcLNeZr6qRrs6MwuiO.png)&#92;n&#92;nThat seemed like progress! Unfortunately, of the 74 &#92;&quot;Posts&#92;&quot; that it claimed this user had, all of them were hidden. And there was no &#92;&quot;home server&#92;&quot; where I could view these posts/statuses -- because they didn&#39;t really exist! The plugin had, however, created an [Outbox](https://www.w3.org/TR/activitypub/#outbox) on this site that contained &#92;&quot;Create Note&#92;&quot; actions. So I thought, why don&#39;t I just post these actions to my [Inbox](https://www.w3.org/TR/activitypub/#inbox) on sfba.social?&#92;n&#92;nMy first naive attempt was to just POST the JSON directly. However, I got an error about needing a signature. Then some helpful folks pointed me in the direction of this [blog post](https://blog.joinmastodon.org/2018/06/how-to-implement-a-basic-activitypub-server/) by Eugen from 2018. Basically it walks you through how to have a &#92;&quot;static&#92;&quot; web finger file and post replies on behalf of the actor in that file. This static file is what I already had above. I generated a public/private keypair, added the public key to the digital.garden.json, and got to work.&#92;n&#92;nMy first few attempts, I couldn&#39;t get the signing quite right, and the `/inbox` endpoint complained in various ways. But eventually I [got it to return](https://gist.github.com/audiodude/c6ad0923dbe1c9c1199e6d021b6f1ed5) a sweet 202 (accepted for processing) status code! However...nothing happened. I didn&#39;t see a status anywhere, and the profile of my digital.garden@travisbriggs.com account still showed &#92;&quot;74 Posts&#92;&quot; but none visible.&#92;n&#92;nI knew that the sfba.social server was probably &#92;&quot;filtering out&#92;&quot; or &#92;&quot;dropping&#92;&quot; the message for some reason, but it wasn&#39;t clear to me why. This is where things got a little crazy. I actually spun up a [cloud server](https://mastodon.0-z-0.com) and installed Mastodon 4.2.1 in single user mode. It was actually a lot easier nowadays than it was in the time when I tried it before, back around the same time as the Eugen blog post (2018), though I did have to open [two](https://github.com/mastodon/documentation/pull/1340) documentation [PRs](https://github.com/mastodon/documentation/pull/1341). It&#39;s probably easier now because it now includes its own systemd scripts for starting and maintaing the web server and sidekiq processes, which simplifies things. It also includes an interactive setup script that prompts you for various values so you don&#39;t have to edit a configuration file manually.&#92;n&#92;nSo I started posting to my own server&#39;s `/inbox` and adding debug print statements to the parts of the code that I believed were being used. And sure enough, I figured it out: my create action didn&#39;t have an ActivityStream `@context` key, so it was being dropped. Once I got that sorted out, I was successfully able to post a status as a `replyTo` another existing status, and see it on my new server. But I still couldn&#39;t will the ghost statuses into existence on their own.&#92;n&#92;nAs it turns out, Mastodon will check if an incoming create action is `related_to_local_activity?` (that&#39;s the actual method name). The basic test is if it is in reply to a status on the server, or a status posted by someone who is followed by someone on the server. Actually, from what I understand, this is how all statuses federate. When I post a status on my server, it knows who is following me and POSTs on my behalf to all of their servers. This is actually what used to be known as the &#92;&quot;federated timeline&#92;&quot;: the sum of all statuses being posted to the server because someone follows their author.&#92;n&#92;nOkay, but we must go deeper. How can I get my account on sfba.social to &#92;&quot;follow&#92;&quot; the static account digital.garden@travisbriggs.com? Back to reading the ActivityPub spec. Apparently, when you click the &#92;&quot;follow&#92;&quot; button, your instance sends a Follow request to the remote account&#39;s server. Then, the user of that account can possibly inspect and approve/reject the request. In most cases, when public follows are unrestricted, the remote server will send that back almost immediately. In my case, the static server didn&#39;t send it back _at all_ (because it&#39;s a static server! It can&#39;t process and respond to requests!). Moreover, the acceptance post has to quote the original follow exactly, but as we all know Mastodon sidesteps some of the ActivityPub methodology and doesn&#39;t actually put the follow requests in my `/users/audiodude/outbox` (only created posts are there).&#92;n&#92;nThis is where talking to [Emilia Smith](https://sfba.social/@thisismissem@hachyderm.io) was particularly helpful (though she had already helped get me on the right track earlier, and possibly pointed me to the Eugen post). I realized that, even if I could spoof the follow request, and get my statuses accepted by the &#92;&quot;remote&#92;&quot; server (sfba.social), there would be nowhere for anyone to post replies to those statuses. The replies would go to my static server, which would just silently drop them, and they wouldn&#39;t show up anywhere to serve as the basis for my comments system. In fact, looking at the [comments code](https://carlschwan.eu/2020/12/29/adding-comments-to-your-static-blog-with-mastodon/), it depends specifically on the presence of a Mastodon API server to read the replies from, which my garden would never have (even if it _did_ have some way of storing the incoming replies).&#92;n&#92;nThis is where I gave up.&#92;n&#92;nWhat I ended up doing was creating a [new account](https://mastodon.online/@digital_garden) for the Digital Garden itself, and automatically [[comments-research|posting there]] when I post a new garden node. I plan to simply boost these posts from my main, human account when I post new content.&#92;n&#92;nI have to say though, it was an interesting journey to track some of this down, and I became more familiar with the ActivityPub spec. Especially spinning up a Mastodon server was a fun exercise, just to see what it takes in 2023.&#92;n&#92;nWhat do you think? Respond in the comments?&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;mastodon-is-not-twitter&quot;,&quot;anchor_text&quot;:&quot;Mastodon&quot;,&quot;context&quot;:&quot;the open protocol ([W3C recommendation]) that powers Mastodon&quot;,&quot;rationale&quot;:&quot;The node discusses Mastodon extensively; this node offers Travis&#39;s broader take on the platform.&quot;},{&quot;slug&quot;:&quot;comments&quot;,&quot;anchor_text&quot;:&quot;comments system&quot;,&quot;context&quot;:&quot;which my garden would never have...to serve as the basis for my comments system&quot;,&quot;rationale&quot;:&quot;This node&#39;s whole motivation is the garden&#39;s comments system, which the &#39;comments&#39; node describes.&quot;},{&quot;slug&quot;:&quot;digital-garden-itself&quot;,&quot;anchor_text&quot;:&quot;this garden&quot;,&quot;context&quot;:&quot;the static site generator used for this garden&quot;,&quot;rationale&quot;:&quot;Directly references the digital garden itself, which has its own node.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;comments-research&quot;,&quot;rationale&quot;:&quot;Details the actual comments implementation that this ActivityPub experiment was trying to feed into.&quot;},{&quot;slug&quot;:&quot;gemini&quot;,&quot;rationale&quot;:&quot;Both explore alternative/experimental web protocols and Travis&#39;s tinkering with them.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:2530,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:585,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:237},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;ai-coding-benchmarks&quot;,&quot;fileSlug&quot;:&quot;ai-coding-benchmarks&quot;,&quot;title&quot;:&quot;AI Coding Benchmarks&quot;,&quot;content&quot;:&quot;Ever since the LLM wars started, people have been developing benchmarks to try to compare which ones are &#92;&quot;better&#92;&quot;, which ones are _the best_. These are trotted out in every new model release to explain to (probably mostly investors) just how _far we&#39;ve come_.&#92;n&#92;nSetting aside the practical problems with such benchmarks, my opinion is that these benchmarks just don&#39;t really matter at all.&#92;n&#92;nWhen I&#39;m using Claude Code, I&#39;m much more concerned about the experience than the &#92;&quot;raw algorithmic ouput&#92;&quot;. That&#39;s probably because I&#39;m mostly working on projects that have some kind of web app or user interface, and verifying that it works requires Human in the Loop (HITL). My experience prompting, getting feedback, iterating, etc is much more important than the &#92;&quot;raw ultimate coding power&#92;&quot; that the model provides. I don&#39;t need Claude Code to write a perfect JIT compiler, or media decoding algorithm, or tree shaker for an obscure language. I need it to be able to create and iterate on a UI with me, ask intelligent questions that surface clear tradeoffs in architecture, and respond to my own questions.&#92;n&#92;nI&#39;m sorry, I know loop-based agentic whatever is the future, but for now I&#39;m getting the best results with an iterative HITL approach.&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;ai&quot;,&quot;anchor_text&quot;:&quot;the LLM wars started&quot;,&quot;context&quot;:&quot;Ever since the LLM wars started, people have been developing benchmarks&quot;,&quot;rationale&quot;:&quot;The node discusses the broader AI landscape which the AI node covers.&quot;},{&quot;slug&quot;:&quot;what-is-a-web-application&quot;,&quot;anchor_text&quot;:&quot;web app or user interface&quot;,&quot;context&quot;:&quot;working on projects that have some kind of web app or user interface&quot;,&quot;rationale&quot;:&quot;Directly references web apps, the subject of the web application node.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;harness-matters-more&quot;,&quot;rationale&quot;:&quot;That node argues the coding harness matters more than the model and explicitly relies on distrust of these benchmarks.&quot;},{&quot;slug&quot;:&quot;vibe coding&quot;,&quot;rationale&quot;:&quot;The author&#39;s iterative HITL Claude Code workflow is elaborated in the vibe coding node.&quot;},{&quot;slug&quot;:&quot;ai&quot;,&quot;rationale&quot;:&quot;Provides broader context on the author&#39;s views of the AI era and LLMs referenced here.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:453,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:570,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:255},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;ai-music-trends&quot;,&quot;fileSlug&quot;:&quot;ai-music-trends&quot;,&quot;title&quot;:&quot;AI Music Trends&quot;,&quot;content&quot;:&quot;Before the 1950s, a kitchen cabinet or a dining table was often the work of a local carpenter or a specialized regional workshop. Today, most modern &#92;&quot;wood&#92;&quot; furniture is produced via CNC machines and automated laminating lines. While we lost the &#92;&quot;heirloom&#92;&quot;, human made, artisinal quality of solid wood joinery, the precision of modern factory furniture is so high that most people don&#39;t notice the lack of hand-tooling. Not to mention it’s orders of magnitude cheaper.&#92;n&#92;nIt’s a philosphial debate largely. If you can’t tell if a track was made by a “human musician, skilled at their craft, carefully conveying chosen emotion through the medium of sound” or an AI, then who cares?&#92;n&#92;nPeople already barely want to pay anything at all for music. The low royalty payments for artists are not because Spotify is evil, it’s because of that fact. If people were willing to pay as much for a month of music as they are for a month of NFL football (via a cable package or YouTube TV subscription ~80 dollars), it would be a very different conversation.&#92;n&#92;nIn 2048, there will be a place for niche, “artisinal”, human made music, sure, the same way there is still the same for furniture. In fact, the prices people are willing to pay for this will be much higher than they are now, following the same principles. But 95% of the world will have moved on.&#92;n&#92;nI say this as a musician, who was trained in music, a composer, a [[danger-third-rail|recording artist]] with [[spotify|published works]] (though none profitable!).&#92;n&#92;nIf we could peek inside of Spotify’s analytics, I think most people already put on “vibe playlists” (rock workout, chill study, electronic drive home) on shuffle. In that case, the artist, be them human or AI, doesn’t even register anyway. I imagine once the labels agree (remember, the lables basically own Spotify through their investments and profit sharing deals), Spotify will just acquire whatever AI music making platform is the best developed or has the biggest following. They will see it as cutting out the human musician “middleman”.&#92;n&#92;nThe writing’s on the wall. See you in 2048!&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;ai&quot;,&quot;anchor_text&quot;:&quot;or an AI&quot;,&quot;context&quot;:&quot;carefully conveying chosen emotion through the medium of sound” or an AI, then who cares?&quot;,&quot;rationale&quot;:&quot;Directly references AI, which has a dedicated node exploring the author&#39;s views on the technology.&quot;},{&quot;slug&quot;:&quot;Suno&quot;,&quot;anchor_text&quot;:&quot;AI music making platform&quot;,&quot;context&quot;:&quot;Spotify will just acquire whatever AI music making platform is the best developed&quot;,&quot;rationale&quot;:&quot;Suno is the AI music generation platform the author has written about, exactly the kind of platform referenced here.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;Bandcamp&quot;,&quot;rationale&quot;:&quot;Elaborates on the &#39;long tail&#39; artist economics and the stratification of the music industry discussed here.&quot;},{&quot;slug&quot;:&quot;ai-coding-benchmarks&quot;,&quot;rationale&quot;:&quot;Shares the author&#39;s skepticism about AI hype and where AI&#39;s practical value actually lies.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:729,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:512,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:211},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;ai&quot;,&quot;fileSlug&quot;:&quot;ai&quot;,&quot;title&quot;:&quot;AI&quot;,&quot;content&quot;:&quot;&#92;nAs I write this, it is April 13th, 2026. ChatGPT was released in November 2022, with an estimated 5 million users within a week of launch, slamming the world into the &#92;&quot;AI era&#92;&quot; that we find ourselves in now. That was three and a half years ago, and in all that time, I haven&#39;t written a single thing in my digital garden about AI. I wrote plenty to my friends, discussed it at work, fretted about it with my wife, but nothing here.&#92;n&#92;nIf a Digital Garden is about [[dg-public|learning in public]], the meta lesson is that I should just start writing about something as soon as it interests me, as soon as I have opinions about it. But also, it&#39;s time to put that principle into practice and start sketching out some of my ideas about all this crazy sci-fi-but-real-life shit that&#39;s been going down between then and now.&#92;n&#92;nI&#39;m just going to make a good old bullet list with questions I want to research answers to and other topics, and then fill these in later when I have time:&#92;n&#92;nOne thing I&#39;ll address off the bat: **Is it capitulation to spit in the face of 70 years of Computer Science research and accept that the current techniques of LLMs should be wholly referred to as &#92;&quot;AI&#92;&quot;?** I&#39;m going to go the GNU/Linux route here. Yes, Linux is just a kernel, and GNU is the suite of programs that made that kernel useful. But in the broad vernacular, Linux is an operating system and has been for years. It&#39;s vernacular, that&#39;s how it works. ChatGPT is understood by millions and millions of people to be &#92;&quot;AI&#92;&quot;, so we can just go with that.&#92;n&#92;nFor most of 2026, Claude Code has been the most popular solution for AI-assisted coding, or sometimes &#92;&quot;vibe coding&#92;&quot;. Many have suggested that the [[harness-matters-more|harness matters more]] but a lot of people still chase [[ai-coding-benchmarks|AI coding benchmarks]].&#92;n&#92;nOther questions I&#39;d like to answer:&#92;n&#92;n* Does training an LLM infringe copyright?&#92;n* Is training an LLM on the entire Internet ethical?&#92;n* Are the models going to get &#92;&quot;better&#92;&quot;, or just plateau? Do we have enough &#92;&quot;internets&#92;&quot; left to train them on, if parameters is the only thing that makes them improve?&#92;n* Is there an AI bubble?&#92;n* What trillion dollar problem is AI going to solve?&#92;n* Is AI art real art?&#92;n   * Is it any good anyways?&#92;n   * If the answer to the two above are yes, then why do people hate it so much?&#92;n   * Do people compel themselves to answer no to one of those questions in order to enact an anti-&#92;&quot;AI art&#92;&quot; worldview?&#92;n   * What are the philosophical problems around songs you like, but you find out they were made by AI?&#92;n   * What are the [[ai-music-trends|general trends in music consumption]] in 2025 and beyond that are affected by this?&#92;n* Why is there so much &#39;hate&#39; agains AI/LLMs?&#92;n* Is Sam Altman a piece of shit?&#92;n* Are local models worth it in 2026?&#92;n* Why are AI fruit videos so awesome?&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;vibe coding&quot;,&quot;anchor_text&quot;:&quot;vibe coding&quot;,&quot;context&quot;:&quot;AI-assisted coding, or sometimes &#92;&quot;vibe coding&#92;&quot;. Many have suggested&quot;,&quot;rationale&quot;:&quot;The node explicitly mentions vibe coding, which has a dedicated node.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;Suno&quot;,&quot;rationale&quot;:&quot;The questions about AI-made songs and AI art directly connect to Suno, which the author calls vibe coding for music.&quot;},{&quot;slug&quot;:&quot;null-rail&quot;,&quot;rationale&quot;:&quot;Null Rail is the author&#39;s AI-assisted music project, elaborating on the philosophical questions about AI-made songs raised here.&quot;},{&quot;slug&quot;:&quot;sudomake-friends&quot;,&quot;rationale&quot;:&quot;Touches on people getting attached to LLMs as real people, an AI-era phenomenon the author explored in this project.&quot;},{&quot;slug&quot;:&quot;when to vibe code&quot;,&quot;rationale&quot;:&quot;Extends the discussion of Claude Code and AI-assisted coding with guidance on appropriate use.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1020,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:533,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:206},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;anki&quot;,&quot;fileSlug&quot;:&quot;anki&quot;,&quot;title&quot;:&quot;Anki flashcards&quot;,&quot;content&quot;:&quot; [Anki](https://apps.ankiweb.net/) is an open source program for viewing and drilling flashcards. It also operates as a cloud service that provides pre-existing flashcard &#92;&quot;decks&#92;&quot; and the ability to sync your progress across devices. So you can view flashcards on your phone, or on your computer and keep everything up to date.&#92;n&#92;nThe most recent flashcards I&#39;ve downloaded are for [[spanish|Spanish]], but I haven&#39;t really looked at them yet.&#92;n&#92;nThe last time I opened Anki I did find my old &#92;&quot;capitals and countries of the world&#92;&quot; deck that I had been meaning to work through. I had previously done US states and capitals to great success, but the countries of the world deck was a lot harder to stick with. Part of the problem I had was that there were too many &#92;&quot;cards&#92;&quot;. What I realized was that Anki generates cards based on inputting &#92;&quot;notes&#92;&quot; (which are collections of facts) and running them through &#92;&quot;templates&#92;&quot;. So I simply had to create an alternate set of templates for my world countries and capitals deck, and I could weed out some of the more tedious cards (things like, &#92;&quot;Where on a map is this country&#39;s capital?&#92;&quot; and &#92;&quot;What city in &lt;country&gt; is this?&#92;&quot;. For the latter, the answer was always the capital and it was a bit overkill).&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[]},&quot;usage&quot;:{&quot;input_tokens&quot;:430,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:21,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:0},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;apache&quot;,&quot;fileSlug&quot;:&quot;apache&quot;,&quot;title&quot;:&quot;Email to the Apache Software Foundation&quot;,&quot;content&quot;:&quot;Today I learned about the organization Natives In Tech and their websites ([1](https://blog.nativesintech.org/apache-appropriation/), [2](https://www.endasfmascotry.com/)) about the naming of the Apache Software Foundation.&#92;r&#92;n&#92;r&#92;nI agree wholeheartedly with the sentiments expressed and stand in solidarity with the Natives in Tech organization in this effort. I believe that a name change is important for software inclusivity as well as mitigating the insulting nature of the current name.&#92;r&#92;n&#92;r&#92;nTo that end, I added my name to the [list of signatories](https://github.com/nativesintech/endasfmascotry/pull/33) on [endasfmascotry.com](https://www.endasfmascotry.com/) and wrote the following email to the list of email addresses listed on that page:&#92;r&#92;n&#92;r&#92;n&gt; Subject: Please consider ending the use of the Apache name&#92;r&#92;n&gt;&#92;r&#92;n&gt; From: Travis Briggs &lt;audiodude@gmail.com&gt;&#92;r&#92;n&gt;&#92;r&#92;n&gt; To: board@apache.org, trademarks@apache.org, ke4qqq@apache.org, suehle@apache.org, jzb@apache.org, katia@apache.org&#92;r&#92;n&gt;&#92;r&#92;n&gt; Hello fellow open source enthusiasts.&#92;r&#92;n&gt;&#92;r&#92;n&gt; Today I came across this article from the organization Natives in Tech: https://blog.nativesintech.org/apache-appropriation/&#92;r&#92;n&gt;&#92;r&#92;n&gt; Of course I was previously aware of the Apache Software Foundation, and generally knew that it referred to Native Americans. It never really bothered me in the past. However, after reading the article and associated materials, I believe it is time for ASF to seriously reconsider its naming and plan a path forward that includes a rename.&#92;r&#92;n&gt;&#92;r&#92;n&gt; The fact that ASF feels the need to have an &#92;&quot;About Our Name&#92;&quot; page (https://www.apache.org/apache-name/), to potentially deflect inquiries such as my own, is almost evidence enough that the name is problematic. Linux, Mozilla, Android: none of these organizations or software suites have need for anything similar.&#92;r&#92;n&gt;&#92;r&#92;n&gt; I recognize as an open source software developer that a rename would be hard and painful. Loss of brand recognition, the need to register new trademarks and domain names, etc. However, as stated above, I believe ASF has a moral imperative to begin this process. And as you know there are precedents in this process across many open source technologies as well as other organizations such as sports teams.&#92;r&#92;n&gt;&#92;r&#92;n&gt; Please consider the example your amazing software sets in the open source community, and the immense value a rename would have in setting a positive one.&#92;r&#92;n&gt;&#92;r&#92;n&gt; Thank you,    &#92;r&#92;n&gt;&#92;r&#92;n&gt; Travis Briggs&#92;&#92;&#92;r&#92;n&gt; Software Developer&#92;&#92;&#92;r&#92;n&gt; San Francisco, CA, USA&#92;&#92;&#92;r&#92;n&gt; https://travisbriggs.com&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;github&quot;,&quot;rationale&quot;:&quot;The node references adding a name via a GitHub pull request, and the github node discusses open source hosting culture.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:891,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:67,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:0},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;atheism&quot;,&quot;fileSlug&quot;:&quot;atheism&quot;,&quot;title&quot;:&quot;atheism&quot;,&quot;content&quot;:&quot;&#92;nI am an atheist. I firmly believe that no gods exist.&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;philosophy&quot;,&quot;rationale&quot;:&quot;The philosophy node explicitly discusses the author&#39;s atheism and worldview, directly elaborating on this belief.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:69,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:73,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:0},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;bands-as-sports-teams&quot;,&quot;fileSlug&quot;:&quot;bands-as-sports-teams&quot;,&quot;title&quot;:&quot;Bands and sports teams&quot;,&quot;content&quot;:&quot;&#92;nI&#39;ve started to think of bands as sports teams. For a sports team, like an american football team, there are a lot of players. You have a quaterback, an offensive line, a running back, some wide recievers. You have an entire defense with a defensive line, cornerbacks and safetys. To have a successful team, all of these pieces have to come together in perfect harmony and align so that the team can be maximally successful.&#92;n&#92;nOr do they?&#92;n&#92;nLook at any high school football game. Generally speaking, the winning team has some star player or two that are bigger, stronger, faster or more skilled than the rest of the players on either team. When you have a quarterback with great passing precision, and a wide receiver that can evade coverage and catch the ball, you just run that same play. Almost every time. Why take a risk with any other players when these two can win the game for you by themselves.&#92;n&#92;nSo how does this relate to bands? The goal of a sports team is to win a game, or multiple games. The goal of a band is to make a great record, or multiple great records. Now, it&#39;s easier to quantify the success of a sports team. How many yards did they gain, how many points did they score, did they win the game? The success of a record is harder to define, but it is probably some combination of critical and commercial success, along with the lasting legacy of the song and how beloved it is.&#92;n&#92;nSo what makes a song successful? Usually it has some combination of excellence in: songwriting, lyrics, melody, hook, harmony, vocal performance, arrangement, star power, production (including electronic), instrumentation, instrumental solos and various other elements. The important observation is that _not every aspect of the song has to be great_! Just like a few good players can &#92;&quot;carry&#92;&quot; a sports team, a few great or amazing elements can carry a song. A band might have weak songwriting, but amazing vocal performances. Or mundane lyrics but incredible instrumentation and instrumental solos. The elements that carry a record for a band might vary between one record and another. In fact, it is often bands that &#92;&quot;mix up the formula&#92;&quot; that have the most success and staying power.&#92;n&#92;nI think this is something to keep in mind when recording my own tracks. I don&#39;t have to have every element be perfect. Not everything has to shine. I should figure out what aspects of my songs are making them &#92;&quot;work&#92;&quot;, and hone in on those.&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;recording-setup&quot;,&quot;anchor_text&quot;:&quot;recording my own tracks&quot;,&quot;context&quot;:&quot;something to keep in mind when recording my own tracks&quot;,&quot;rationale&quot;:&quot;The phrase refers to the author&#39;s home recording process, which is the subject of the recording-setup node.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;fake-it-music&quot;,&quot;rationale&quot;:&quot;This node explicitly builds on the bands-as-sports-teams idea that not every part of a song needs to be perfect.&quot;},{&quot;slug&quot;:&quot;songwriting-reflections&quot;,&quot;rationale&quot;:&quot;Elaborates on which song elements the author values, complementing the discussion of what makes a song successful.&quot;},{&quot;slug&quot;:&quot;motivation-music&quot;,&quot;rationale&quot;:&quot;Discusses evaluating songs and music quality, related to the criteria for a successful record.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:757,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:527,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:273},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;best albums in the universe&quot;,&quot;fileSlug&quot;:&quot;best albums in the universe&quot;,&quot;title&quot;:&quot;The Best Albums in the Universe&quot;,&quot;content&quot;:&quot;&#92;nI think I started this project in 2011 or 2012. It lives on the web at [bestalbumsintheuniverse.com](https://bestalbumsintheuniverse.com) and on [[gemini|Gemini]] at [gem.bestalbumsintheuniverse.com](gemini://gem.bestalbumsintheuniverse.com).&#92;n&#92;nWhen I was coming up with the name, I knew I wanted to keep track of a curated collection of my favorite albums, mostly for my own reference. But I thought it would be lame to be like my-favorite-albums.com or something like that. Why not go big and call it Best Albums in the Universe?&#92;n&#92;nThe best albums list is meant to be a living document, just like this garden. It is intended to grow as I discover, or sometimes more accurately remember, more albums. So far the only criteria I&#39;ve set for myself is that I don&#39;t want to list multiple albums by the same artist, or else there would be many more Beatles, Radiohead and Weezer albums on there.&#92;n&#92;n## History&#92;n&#92;nThe site was originally on Tumblr. Hold on, let me check if the original Tumblr site is still up or if I can find it....&#92;n&#92;n...nope, can&#39;t find it. I think I might have deleted it at some point. My [personal tumblr](https://travisbriggs.tumblr.com/), which just has a couple of links, refers to the new website.&#92;n&#92;nAnyways, originally it was going to be a collaboration between me and my wife, [[Abby]]. She actually picked the second album and wrote the description, which is why it talks about it being her namesake. That didn&#39;t last very long though. In fact, I&#39;ve had the site for over a decade and there are only 39 albums on there currently. So clearly I have not updated the site very often. If you go to the Gemini version, it actually lists the date at which I posted an album, which is kind of embarassing.&#92;n&#92;nEventually, I changed it to a [Jekyll](https://jekyllrb.com/) site, around the time that [Static Site Generators](https://www.cloudflare.com/learning/performance/static-site-generator/) became all the rage. There was a time when Github let you use Jekyll to deploy a static site for free inside of a Github repository, and if you look in the history of [this repo](https://github.com/audiodude/best-albums) you can see that it was used there (you could -- and likely still can -- point a custom URL to Github&#39;s static sites).&#92;n&#92;nWhen I moved from Tumblr to the Jekyll site, I already had a fair number of albums posted, with a lot of metadata. So I wanted to preserve this data somehow, hopefully programmatically. The scripts I wrote to take care of that are still part of the Jekyll repo linked above.&#92;n&#92;nThe interesting thing about that early version was that I wrote all of the album descriptions in [Markdown](https://daringfireball.net/projects/markdown/) files, as you do with Jekyll sites, but there was a lot of &#92;&quot;front matter&#92;&quot; in the Markdown that was used to annotate each entry, like the `photo_sm` and `photo_lg` links to the thumbnail and full versions of the album art. I would find the album art on Amazon, and upload them to imgur.com where I would &#92;&quot;hotlink&#92;&quot; to them from my site. In fact, I used a little known feature of imgur, which was that you could take the image url, say `http://i.imgur.com/abcdefg.png` and append a character to the ID like `abcdefgs.png` (s for &#92;&quot;small&#92;&quot;) or `abcdefgl.png` (l for &#92;&quot;large&#92;&quot;).&#92;n&#92;nAlso, the markdown files didn&#39;t directly translate into the &#92;&quot;cover art squares&#92;&quot; you see on the website. Instead, I had an `albums.json` file in my root directory that contained a [Liquid](https://shopify.github.io/liquid/) template for generating a full [JSON](https://www.json.org/json-en.html) document of the final albums. Then, when the site loaded, the Javascript on the page would request the `albums.json` file, parse it, and use [Mustache templates](https://mustache.github.io/) to generate the final HTML document. There&#39;s also a &#92;&quot;grid layout library&#92;&quot; called [Masonry](https://masonry.desandro.com/) that is used, plus some custom Javascript to control when to display or collapse albums when they are clicked, and to create permalinks to a version of the site with certain albums already open.&#92;n&#92;nA few years ago, I decided to write a &#92;&quot;headless CMS&#92;&quot; for the site, so that when I type in a [Wikidata](https://wikidata.org) ID for an album, it does an API lookup on Wikidata and grabs the Artist, Title, Release Year, Spotify ID (the best albums page includes Spotify embeds), and album art. At that point, all I have to do is write the description, click save, and then upload the result to the static site. [This CMS](https://github.com/audiodude/best-albums-headless) is written in [[Ruby on Rails]] and is hosted on the same server that hosts the best albums site itself.&#92;n&#92;nAt some point I&#39;ll write about my [[gemini|Gemini]] version (which is still listed in the historical record of the [first fifty Gemini hosts](https://geminiprotocol.net/history/servers.gmi)).&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;Spotify&quot;,&quot;anchor_text&quot;:&quot;Spotify&quot;,&quot;context&quot;:&quot;grabs the Artist, Title, Release Year, Spotify ID (the best albums page includes Spotify embeds)&quot;,&quot;rationale&quot;:&quot;The node discusses Spotify IDs and embeds, which is the subject of the Spotify node.&quot;},{&quot;slug&quot;:&quot;digital-garden-itself&quot;,&quot;anchor_text&quot;:&quot;just like this garden&quot;,&quot;context&quot;:&quot;The best albums list is meant to be a living document, just like this garden&quot;,&quot;rationale&quot;:&quot;References this digital garden, which has its own dedicated node.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;more-about-blogging&quot;,&quot;rationale&quot;:&quot;That node also discusses the best albums in the universe project and its status as one of the first 50 Gemini sites.&quot;},{&quot;slug&quot;:&quot;Rainfall&quot;,&quot;rationale&quot;:&quot;Both describe custom static site generators for music-related content using Markdown metadata, a closely parallel technical approach.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1683,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:486,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:184},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;blog/a-story-of-failure&quot;,&quot;fileSlug&quot;:&quot;a-story-of-failure&quot;,&quot;title&quot;:&quot;A Story Of Failure&quot;,&quot;content&quot;:&quot;&#92;nLast year I made a rather audacious New Year&#39;s Resolution: [to write a song a day in 2018](https://blog.travisbriggs.com/writing-a-song-a-day-in-2018-d4f2be32c40f). I will now always remember 2018 as the year I failed to write a song a day. Or maybe I should remember it as the year that I bravely aspired to write a song a day?&#92;n&#92;nI haven&#39;t given any thoughts to New Year&#39;s Resolutions this year. I&#39;ve sort of come around to the existential point of view that I&#39;m really just a piece of driftwood on the ocean that is my life. I never really believed in free will. Free will just seems like the explanation we give to the thing we were going to do anyways. I don&#39;t have any agency over myself, my outcomes. So why bother?&#92;n&#92;nI did manage to write about 20 songs in 2018, which you can view on my [song website](https://songs.travisbriggs.com). That&#39;s about 5% of the way towards my goal.&#92;n&#92;nMaybe I can do something like write a song a day for the first week of every month, then take the rest of the month off. I don&#39;t know. Like I said in the other post, song a week is really &#92;&quot;wait 5 days, then write a song in a day&#92;&quot;.&#92;n&#92;nI mean, why am I so obsessed with songwriting anyways? To speak again of existentialism, maybe I see my creative output as my only futile thrusts against the all encompassing absurd. Maybe I&#39;m just a fanboy that obsesses over music and feels compelled to add to the great corpus of musical works. I am Sisyphus and music is my rock (n roll).&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;free will&quot;,&quot;anchor_text&quot;:&quot;free will&quot;,&quot;context&quot;:&quot;I never really believed in free will. Free will just seems like the explanation&quot;,&quot;rationale&quot;:&quot;Directly references the concept covered by the free will node.&quot;},{&quot;slug&quot;:&quot;philosophy&quot;,&quot;anchor_text&quot;:&quot;existentialism&quot;,&quot;context&quot;:&quot;To speak again of existentialism, maybe I see my creative output&quot;,&quot;rationale&quot;:&quot;The philosophy node covers existentialism, determinism, and picturing Sisyphus happy.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;giving-up-on-resolutions&quot;,&quot;rationale&quot;:&quot;Directly elaborates the author&#39;s decision to give up New Year&#39;s Resolutions mentioned here.&quot;},{&quot;slug&quot;:&quot;another-year-without-resolutions&quot;,&quot;rationale&quot;:&quot;Continues the theme of abandoning resolutions and &#39;today is New Year&#39;s Day&#39; thinking.&quot;},{&quot;slug&quot;:&quot;nike-the-shit-out-of-it&quot;,&quot;rationale&quot;:&quot;Discusses the same struggle with songwriting output and failing to publish songs.&quot;},{&quot;slug&quot;:&quot;new-year&quot;,&quot;rationale&quot;:&quot;Elaborates on the &#39;every day is New Year&#39;s Day&#39; existential view of resolutions.&quot;},{&quot;slug&quot;:&quot;font-of-creativity&quot;,&quot;rationale&quot;:&quot;Explores the compulsion to create despite lack of intrinsic drive, echoing the songwriting obsession here.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:545,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:675,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:250},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;blog/another-week&quot;,&quot;fileSlug&quot;:&quot;another-week&quot;,&quot;title&quot;:&quot;Another Week&quot;,&quot;content&quot;:&quot;&#92;nHere starts another week, and it&#39;s going pretty well. I&#39;m awake, I&#39;m at work, I&#39;m caffeinated. Listening to some [Weezer](https://weezer.com/).&#92;n&#92;nOf course, in the back of my mind, I&#39;m thinking: this week will be just like any other week, nothing special, 7 days closer to the grave. Pretty morbid, but that&#39;s kind of the feeling I get.&#92;n&#92;nMy wife thinks I need to practice more gratitude for what I have. I&#39;m definitely aware of all the research out there that states that gratitude is a major component of happiness. Not that I&#39;m really that unhappy, but still.&#92;n&#92;nI offered to work more on the [volunteer project](https://www.blackfem.org/) that I spent six months on last year. Mostly just because it was between that and finding another volunteer project. I had actually planned to find some open source project that I could contribute significantly to, but that&#39;s always a problem. It&#39;s very hard to find a project that: a) I use, b) needs help in the skillsets I can provide, and c) is actively looking for contributors. I think that first one is something that many people who want to contribute to open source overlook. Is there really a point in contributing to a project that you yourself don&#39;t even use? How will you even value your own contributions?&#92;n&#92;nI&#39;m actually thinking of creating some kind of blogging software that allows users to keep a local blog, then one-click publish it to [Netlify](https://www.netlify.com/) or some other platform ([Neocities](https://neocities.org/)?). Preferably with [Electron](https://electronjs.org/), so that it wouldn&#39;t require any command line knowledge. I don&#39;t know, I think I need to explore the problem space more. If you want to edit your blog from any computer, isn&#39;t that just a web app that handles the blog? Wouldn&#39;t having a local version as the master copy be more limiting? I feel like a major part of this use case is that someone wants to keep control over their blog, over their information and data, for one reason or another.&#92;n&#92;nThe real question is, is it possible to build a web app in [Node.js](https://nodejs.org/en/) and then deploy it as an Electron app? So you could have a (self?) hosted version of the blogging software as well as a local version, or one, or the other.&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;Abby&quot;,&quot;anchor_text&quot;:&quot;My wife&quot;,&quot;context&quot;:&quot;My wife thinks I need to practice more gratitude for what I have.&quot;,&quot;rationale&quot;:&quot;Direct reference to his wife, who has a dedicated node.&quot;},{&quot;slug&quot;:&quot;considering-moving-blogs&quot;,&quot;anchor_text&quot;:&quot;creating some kind of blogging software&quot;,&quot;context&quot;:&quot;I&#39;m actually thinking of creating some kind of blogging software that allows users to keep a local blog&quot;,&quot;rationale&quot;:&quot;His musings on blogging platforms directly relate to his post about evaluating blog platforms.&quot;},{&quot;slug&quot;:&quot;javascript-typescript&quot;,&quot;anchor_text&quot;:&quot;Node.js&quot;,&quot;context&quot;:&quot;is it possible to build a web app in [Node.js](https://nodejs.org/en/) and then deploy it&quot;,&quot;rationale&quot;:&quot;Node.js is Javascript on the backend, covered by the Javascript/Typescript node.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;blog-cycle&quot;,&quot;rationale&quot;:&quot;His impulse to build/rebuild blogging software echoes the theme of blogs being endlessly rebuilt.&quot;},{&quot;slug&quot;:&quot;more-about-blogging&quot;,&quot;rationale&quot;:&quot;Elaborates on his ongoing desire to blog and experiment with platforms.&quot;},{&quot;slug&quot;:&quot;Kiwix&quot;,&quot;rationale&quot;:&quot;His interest in contributing to open source projects he actually uses connects to his volunteer work with Kiwix.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:737,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:805,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:361},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;blog/another-year-without-resolutions&quot;,&quot;fileSlug&quot;:&quot;another-year-without-resolutions&quot;,&quot;title&quot;:&quot;Another Year Without Resolutions&quot;,&quot;content&quot;:&quot;&#92;nI wrote [[blog/giving-up-on-resolutions|last year]] about how I was planning on giving up on New Year&#39;s resolutions. Well I did. And nothing really changed one way or another. In that post I wrote, &#92;&quot;Today is New Year&#39;s Day&#92;&quot;, which is one way of looking at it. The apparent corollary of that is that &#92;&quot;New Year&#39;s Day doesn&#39;t exist&#92;&quot;, which is the essential position I took last year.&#92;n&#92;nI&#39;m only going to acknowledge in passing the difficulties of 2020. It was a tough year for everybody. The idea that things are just going to get better overnight when the calendar changes is magical thinking at best. Yet people want to have hope, because the opposite is likely despair.&#92;n&#92;nAt some point in about August of 2020 I decided to start taking music lessons, for mixing and mastering and Ableton Live production. The idea is that I will be learning how to do these things for my own music, so that I can release professional sounding versions of my songs (not demos or anything on Soundcloud) without breaking the bank to pay someone to do these things for me.&#92;n&#92;nIf I were to have a New Year&#39;s resolution, a secret one, this year, it would be to finish my album and get it out there. But it has nothing to do with the calendar changing, it&#39;s just something that I want to do anyways.&#92;n&#92;nAnd there are other things I want to do anyways, like be a good husband to Abby, generally get things done at work and be a good co-worker, and find things to fill my time in general so that I&#39;m not bored and restless. But these are continuous goals, not something that I wasn&#39;t doing yesterday and that I&#39;m suddenly going to start doing today. These are things I continuously strive for.&#92;n&#92;nHappy New Year&#39;s everyone! Whether you believe in resolutions or not, I hope that you have a year filled with meaningful relationships and accomplishing your goals.&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;ableton&quot;,&quot;anchor_text&quot;:&quot;Ableton Live&quot;,&quot;context&quot;:&quot;for mixing and mastering and Ableton Live production&quot;,&quot;rationale&quot;:&quot;Directly names Ableton Live, which has a dedicated node.&quot;},{&quot;slug&quot;:&quot;Abby&quot;,&quot;anchor_text&quot;:&quot;Abby&quot;,&quot;context&quot;:&quot;like be a good husband to Abby&quot;,&quot;rationale&quot;:&quot;Abby is his wife and has a dedicated node.&quot;},{&quot;slug&quot;:&quot;new-year&quot;,&quot;anchor_text&quot;:&quot;Today is New Year&#39;s Day&quot;,&quot;context&quot;:&quot;In that post I wrote, &#92;&quot;Today is New Year&#39;s Day&#92;&quot;&quot;,&quot;rationale&quot;:&quot;The &#39;every day is New Year&#39;s Day&#39; idea is the subject of the new-year node.&quot;},{&quot;slug&quot;:&quot;new-danger-third-rail-ep&quot;,&quot;anchor_text&quot;:&quot;finish my album and get it out there&quot;,&quot;context&quot;:&quot;this year, it would be to finish my album and get it out there&quot;,&quot;rationale&quot;:&quot;His music release goal connects to the Danger Third Rail EP node.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;a-story-of-failure&quot;,&quot;rationale&quot;:&quot;Also reflects on failed New Year&#39;s resolutions and existential thoughts about goals.&quot;},{&quot;slug&quot;:&quot;highs-and-lows-musician&quot;,&quot;rationale&quot;:&quot;Elaborates on his home recording/mixing/mastering journey referenced here.&quot;},{&quot;slug&quot;:&quot;motivation-music&quot;,&quot;rationale&quot;:&quot;Discusses his motivation for producing and releasing his own music.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:633,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:676,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:228},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;blog/blogging-but-this-time-with-blogging&quot;,&quot;fileSlug&quot;:&quot;blogging-but-this-time-with-blogging&quot;,&quot;title&quot;:&quot;Blogging, but this time with blogging&quot;,&quot;content&quot;:&quot;&#92;nEvery time I get the feeling like I should blog something, I usually realize that it would do just as well to shout into [Mastodon](https://joinmastodon.org/) ([my masto instance](https://layer8.space)). Like that sentence for example. Not so much that last one.&#92;n&#92;nKind of in the vein of the [[blog/listening-to-music-while-doing-things|previous post]], I feel like I want to maybe do some kind of blogging exercise where every time I stop typing, I take inspiration from whatever the current song lyric is to write the next line. (That last sentence could have been a self contained masto post).&#92;n&#92;n*I think I&#39;m getting carried away feeling sorry for myself*. All of my blog posts seem to have this morbid kind of self-deprecation to them. And they&#39;re all. about. blogging. Every one of them. Like it makes me curious, what would a painting about painting look like? Is that a self-portrait? I know there are definitely plenty of songs that are about songs or about writing songs.&#92;n&#92;n*My head&#39;s a balloon, inflating with the altitude*. Is that how it works? Now that I think about it, it makes perfect sense. As the balloon rises, the air pressure drops, so it would inflate more. Interesting, when you think about song lyrics that you&#39;ve heard dozens of times but haven&#39;t given enough thought to.&#92;n&#92;nI know people have done this before with random books. Pick a random book off the shelf, flip to a random page, and use the first sentence you see as the first line of your composition, as a writing prompt. I&#39;ve heard of that exercise.&#92;n&#92;nI actually think I&#39;m a pretty good writer and that most of my writing skill goes to waste a good deal of the time. Like today at work I wrote a design doc, and I thought I wrote it pretty eloquently. But it was a fucking design doc. Like who cares? It&#39;s just technical documentation that will be out of date and forgotten for far more total time than it&#39;s recent and useful.&#92;n&#92;n*The stale taste of recycled air* has got me into a frenzy of superstition and longing. Yikes, tried to mash that one up a bit and it didn&#39;t come out quite as I&#39;d expect.&#92;n&#92;nAlso if you think this post is leading somewhere, ha! Or maybe that&#39;s as good a time as any to simply end it.&#92;n&#92;nOkay wait this one: *I was waiting for a cross town train in the London Underground when it struck me*...&#92;n&#92;n...that I&#39;ve been waiting blah blah blah. But is it coincidence that the first line makes it sounds like the guy got hit by a train? Is that just awkward writing, or a cleverly buried easter egg? Please please let me remember to ask Ben Gibbard that if I ever meet him. Or actually, if anyone reading this knows how to get in touch with him, could you ask him for me and get back to me?&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;mastodon-is-not-twitter&quot;,&quot;anchor_text&quot;:&quot;Mastodon&quot;,&quot;context&quot;:&quot;it would do just as well to shout into [Mastodon]&quot;,&quot;rationale&quot;:&quot;The node discusses posting to Mastodon, which is the exact subject of this node.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;more-about-blogging&quot;,&quot;rationale&quot;:&quot;This node muses on the desire to blog and the meta nature of blogging, which more-about-blogging explores directly.&quot;},{&quot;slug&quot;:&quot;blog-cycle&quot;,&quot;rationale&quot;:&quot;The recurring self-referential &#39;all my posts are about blogging&#39; theme connects to reflections in the blog cycle node.&quot;},{&quot;slug&quot;:&quot;blog&quot;,&quot;rationale&quot;:&quot;The observation that all his blog posts share a morbid self-deprecation ties to his broader reflections on his blog in this node.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:947,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:502,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:233},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;blog/causes-of-giving-to-causes&quot;,&quot;fileSlug&quot;:&quot;causes-of-giving-to-causes&quot;,&quot;title&quot;:&quot;Causes of Giving to Causes&quot;,&quot;content&quot;:&quot;&#92;nOn the topic of philanthropy, there are a few approaches that I see taken by those around me. One is to simply give to whatever cause makes you feel good. Sometimes it&#39;s just a matter of some cause that strikes a chord, and just like that you open your wallet. Other times, people try to give to causes that benefit those in the most extreme life circumstances. They donate in order to provide clean water to people in remote villages, or to provide food and medicine to those affected by the horrors of war.&#92;n&#92;nSometimes though, I find that I like to give to causes that simply provide an interesting or unique presence in the world. This is why I give to [Wikipedia](https://www.wikipedia.org/), or [soma fm](https://somafm.com/), or the [Internet Archive](https://archive.org/), or even [govtrack](https://www.govtrack.us/). I might not use these services very often (they&#39;re listed in roughly decreasing order of my activity), but I&#39;m glad they exist and I want them to be around for others in the future. I like the _idea_ of these causes, even if they&#39;re not the most &#92;&quot;boots on the ground&#92;&quot; organizations providing the absolute most good to the most people.&#92;n&#92;nI don&#39;t really have much to comment on beyond that, and providing a list of some of the causes that I find worthwhile.&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;wp-1.0&quot;,&quot;rationale&quot;:&quot;This node mentions supporting Wikipedia, and the WP 1.0 Project is the author&#39;s own volunteer contribution to Wikipedia.&quot;},{&quot;slug&quot;:&quot;Kiwix&quot;,&quot;rationale&quot;:&quot;Kiwix is another mission-driven organization (offline Wikipedia) the author volunteers with, elaborating on his support for such &#39;interesting presence in the world&#39; causes.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:461,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:409,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:250},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;blog/considering-moving-blogs&quot;,&quot;fileSlug&quot;:&quot;considering-moving-blogs&quot;,&quot;title&quot;:&quot;Considering moving blogs&quot;,&quot;content&quot;:&quot;&#92;nWhat&#39;s the best thing to do once you&#39;ve started to blog and written a few posts? Change platforms, of course! It seems like every blogger is always looking for a new platform, with the hope that it will somehow make them a better, more prolific writer. No doubt it rarely turns out that way.&#92;n&#92;nBut here I am, in the same boat, trying to evaluate new blogging platforms and plan a migration strategy for them.&#92;n&#92;nAs a background, back when I was using Soundcloud extensively I &#92;&quot;realized&#92;&quot; that Medium does the same for blog posts that Soundcloud does for songs: it provides a centralized repository across multiple different authors. This potentially allows for &#92;&quot;cross-pollination&#92;&quot; as readers of a certain blogger find related articles from, gee golly, maybe me!&#92;n&#92;nOf course, this never happened on Soundcloud, in the 8+ years I&#39;ve been on it. And it hasn&#39;t happened on Medium either. My most popular medium post is [this tutorial](https://blog.travisbriggs.com/setting-up-your-own-mastodon-with-digital-ocean-and-docker-29e633d354f2) on how to set up your own [Mastodon](https://joinmastodon.org/) instance. It still gets 20-40 views a week, 18 months later. I&#39;m proud I produced a piece of writing that has helped many people. But honestly, the views on that article haven&#39;t even led to views on my own other articles. Never mind &#92;&quot;cross-pollination&#92;&quot;.&#92;n&#92;nThat, and considering the recent article on [&#92;&quot;Medium is a poor choice for blogging&#92;&quot;](https://medium.com/@nikitonsky/medium-is-a-poor-choice-for-blogging-bb0048d19133) which was posted to [Hacker News](https://news.ycombinator.com/), makes me rethink my platform of choice.&#92;n&#92;nNow this is a bit disingenuous, because I&#39;ve already been using [write.as](https://write.as) for the last few &#92;&quot;blog&#92;&quot; articles I&#39;ve posted (I use that term loosely for the material I&#39;ve put on write.as).&#92;n&#92;nWrite.as provides a distraction free editor, markdown based formatting, a &#92;&quot;blog&#92;&quot; collection for my posts, individual post reading pages also without distraction, and is completely free. That&#39;s a great number of features, and they hit on several that are important to me.&#92;n&#92;nAnother alternative would be to create a static [Jekyll](https://jekyllrb.com/) site. But do I really want to deal with [Liquid templates](https://shopify.github.io/liquid/)? I feel like I&#39;m fed up with Jekyll, even though I&#39;ve used it on many projects ([gallery.travisbriggs.com](https://gallery.travisbriggs.com/) comes to mind).&#92;n&#92;nSo do I use another static site generator? Then I have to go through the trouble of figuring out how to use the generators templating engine, how to set up an index of posts, how to display individual posts, how to create snippets of posts, how to format dates on posts, etc, etc. It&#39;s a lot of stuff, and in the end, I end up with a site that is identical to if I used Jekyll.&#92;n&#92;nAn additional issue with Jekyll or static site generators is that they generally don&#39;t come with any styling. Although I&#39;m experienced at implementing pixel perfect websites given designs and mocks, I actually don&#39;t have much experience creating such mocks to begin with. So any site I create with a static generator is likely to look awful. But then again, if you take write.as as a baseline, I can&#39;t really do worse than that. Though I would want to make sure my site is responsive for mobile.&#92;n&#92;nThis entire discussion is also predicated on the idea that I actually should continue blogging in the first place. Continue is kind of a strong word there, of course, since I&#39;ve generally been producing one article every couple of months. I wrote in September of 2017 that [&#92;&quot;My Blog is a Liability&#92;&quot;](https://blog.travisbriggs.com/my-blog-is-a-liability-de42cae3f6ce). The TLDR of that post is that no one reads this stuff anyways, but if they wanted to find some damning piece of information about me, there would be plenty of potential things to find.&#92;n&#92;nSo my options, as I see them are:&#92;n&#92;n0. Continue writing on Medium (probably not going to happen).&#92;n1. Continue writing on write.as&#92;n2. Start a brand new blog with static site generator&#92;n3. Quit blogging altogether&#92;n&#92;nOf these options, 2 and 4 look the best to me.&#92;n&#92;n_Update (2018-11-13): I stated in this post that write.as is free, but apparently at some point I signed up for the $10/year plan. I can&#39;t remember why I did._&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;blog-cycle&quot;,&quot;rationale&quot;:&quot;Directly discusses the recurring urge to rebuild/change blogging platforms, extending this node&#39;s central theme.&quot;},{&quot;slug&quot;:&quot;more-about-blogging&quot;,&quot;rationale&quot;:&quot;Covers the author&#39;s ongoing desire to blog and experiments with platforms like Gemini, elaborating on the blogging question here.&quot;},{&quot;slug&quot;:&quot;blog&quot;,&quot;rationale&quot;:&quot;Contains the author&#39;s reflection that his blog is a &#39;liability&#39; — the very point referenced at the end of this node.&quot;},{&quot;slug&quot;:&quot;digital-garden-itself&quot;,&quot;rationale&quot;:&quot;Represents the eventual platform choice/direction that resolves the platform-hopping dilemma discussed here.&quot;},{&quot;slug&quot;:&quot;blogging-but-this-time-with-blogging&quot;,&quot;rationale&quot;:&quot;Explores the author&#39;s habit of writing meta posts about blogging and alternatives like Mastodon, closely related to this node&#39;s musings.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1459,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:698,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:389},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;blog/font-of-creativity&quot;,&quot;fileSlug&quot;:&quot;font-of-creativity&quot;,&quot;title&quot;:&quot;Font of creativity&quot;,&quot;content&quot;:&quot;&#92;nI once read that creative people don&#39;t create for any other purpose than the fact that there are ideas bursting out of them, viciously, and if they don&#39;t put pen to paper or hand to instrument the ideas will cause them to explode.&#92;n&#92;nAnother variation of this is that this is what &#92;&quot;truly&#92;&quot; or &#92;&quot;really&#92;&quot; creative people do. Which makes it even more insulting if that&#39;s not the way this particular amateur feels about his creative pursuits.&#92;n&#92;nBut actually, I kind of feel that way about writing. I don&#39;t have anything in particular to write about (wait, wait don&#39;t go....) but I feel like I need to be smacking those keyboard keys and giving it a go anyways. I actually remember being in a bunch of online [MUDs](https://en.wikipedia.org/wiki/MUD) when I was a preteen and teen, and writing elaborate descriptions of my character and the world around him, just because I could. Those descriptions were most likely excessively filled with the most absurdly gratuitous adjectives and adverbs. I recall that as well. Still, it was a magical world that I could enter into and explore and create.&#92;n&#92;nCurrently, I&#39;m the [DM](https://en.wikipedia.org/wiki/Dungeon_Master) of a [D&amp;D 5th ed](https://en.wikipedia.org/wiki/Editions_of_Dungeons_%26_Dragons#Dungeons_&amp;_Dragons_5th_edition) campaign with players I&#39;ve been playing with for almost three years now. It&#39;s fun, and I do have to stay on my toes and think up all kinds of essential details for every situation. I have to not only create the entire world, nay universe, that the characters inhabit, but the exquisite details of every room they enter and creature or person they encounter. I&#39;d love to do something similar online, with some kind of collaborative fiction framework or something. If anyone knows of such a thing, please contact me at [travis@travisbriggs.com](mailto:travis@travisbriggs.com).&#92;n&#92;nFor a while, I was the instigator of an online game of [Nomic](https://en.wikipedia.org/wiki/Nomic) that was going pretty well. You can find the [archives here on Github](https://github.com/audiodude/tiny-nomic). It kind of fell apart as players lost interest and had other commitments. Which makes me even more in awe of [Agora](http://agoranomic.org), a nomic which has been in continual operation via mailing lists since 1993.&#92;n&#92;nMaybe I do have an unbounded font of creativity inside me. Maybe it&#39;s just a matter of opening the tap.&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;empty-mind&quot;,&quot;rationale&quot;:&quot;Empty Mind explores the opposite feeling—a creative mind that feels barren—directly complementing this node&#39;s musing about an unbounded font of creativity.&quot;},{&quot;slug&quot;:&quot;intrisic motivation&quot;,&quot;rationale&quot;:&quot;This node&#39;s question of why creative people create maps onto the intrinsic vs. extrinsic motivation discussion.&quot;},{&quot;slug&quot;:&quot;side-quests-of-life&quot;,&quot;rationale&quot;:&quot;That node discusses getting addicted to writing and creative side pursuits, echoing the &#39;need to smack keyboard keys&#39; impulse here.&quot;},{&quot;slug&quot;:&quot;something-terrible&quot;,&quot;rationale&quot;:&quot;The Make Something Terrible Challenge is about giving yourself permission to create, deepening this node&#39;s theme of just doing it anyway.&quot;},{&quot;slug&quot;:&quot;read-before-you-write&quot;,&quot;rationale&quot;:&quot;Both nodes reflect on the writing impulse and what it means to be a writer.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:858,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:603,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:290},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;blog/getting-nothing-done&quot;,&quot;fileSlug&quot;:&quot;getting-nothing-done&quot;,&quot;title&quot;:&quot;Getting Nothing Done&quot;,&quot;content&quot;:&quot;&#92;nThere have been some posts on [Hacker News](https://news.ycombinator.com/) lately about various systems for GTD (getting things done), both endorsing and adjacent to the official GTD method. There have been productivity apps, note taking and bookmarking browser extensions, and more. All of it promises a way forward for organizing all of the tasks in your life and making sure they get completed effectively and in a timely fashion.&#92;n&#92;nThis is not necessarily a post about why I think it&#39;s all bullshit, or why I&#39;m a serial procrastinator and none of this will ever work for me, or even why I might prefer whatever ad hoc method I have for getting things done over these meticulously manicured systems. It&#39;s not any of that. The point of this post is to admit something about why these systems kind of miss the point for me completely.&#92;n&#92;nI don&#39;t have anything to get done.&#92;n&#92;nI mean, I have a full time job, and through various methods that I&#39;ve learned over the years, including keeping a tidy inbox, I manage to get most things done most of the time, for things at work.&#92;n&#92;nBut otherwise, I can&#39;t help but wonder what everyone is filling up these todo list apps with. Because I don&#39;t have a list of tasks that demand my attention in my free time. Certainly none with any specific deadlines. Sure, I&#39;m working on an [open source project for Wikipedia](https://github.com/openzim/wp1). I could always be [writing music](https://songs.travisbriggs.com). I could update my list of the [[best albums in the universe]] which I did recently convert to be served concurrently as a [Gemini site](https://gemini.circumlunar.space/).&#92;n&#92;nSo yeah, I have the odd side project here and there that I could be working on. But none of it has any urgency or deadlines, so why bother organizing it into GTD task boards?&#92;n&#92;nThinking cynically, I can&#39;t help but imagine that all of these todo apps are filled with people&#39;s aspirational goals and dreams that quite frankly will never happen. Maybe they&#39;ve taken the first step by writing down that they want to write a short story, or start a blog, or start selling things on eBay, or whatever. But is it going to happen? All the same mechanisms are at work that keep you from doing those things whether they&#39;re written down in a trendy app or not. Lack of motivation, enthusiasm, know-how, mentorship, etc.&#92;n&#92;nI guess I just try not to buy into the Protestant work ethic thing, that hard work and &#92;&quot;accomplishments&#92;&quot; define our existence. And if my goal is to play some video games or even sit quietly on the couch and do nothing, do I really need a GTD app to write that down in?&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;wp-1.0&quot;,&quot;anchor_text&quot;:&quot;open source project for Wikipedia&quot;,&quot;context&quot;:&quot;I&#39;m working on an open source project for Wikipedia&quot;,&quot;rationale&quot;:&quot;This directly references the WP 1.0 project which has its own node.&quot;},{&quot;slug&quot;:&quot;gemini&quot;,&quot;anchor_text&quot;:&quot;Gemini site&quot;,&quot;context&quot;:&quot;served concurrently as a Gemini site&quot;,&quot;rationale&quot;:&quot;Gemini has a dedicated node explaining the protocol.&quot;},{&quot;slug&quot;:&quot;intrisic motivation&quot;,&quot;anchor_text&quot;:&quot;Lack of motivation&quot;,&quot;context&quot;:&quot;the same mechanisms are at work... Lack of motivation, enthusiasm, know-how&quot;,&quot;rationale&quot;:&quot;The node on intrinsic motivation directly explores this theme of what drives us to act.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;the-chain&quot;,&quot;rationale&quot;:&quot;Discusses the Seinfeld habit-building strategy as another productivity system that could elaborate on GTD-style approaches.&quot;},{&quot;slug&quot;:&quot;giving-up-on-resolutions&quot;,&quot;rationale&quot;:&quot;Shares the theme of rejecting aspirational goal systems and the futility of forced self-improvement.&quot;},{&quot;slug&quot;:&quot;philosophy&quot;,&quot;rationale&quot;:&quot;The node&#39;s rejection of the Protestant work ethic and free will connects to the author&#39;s existentialist/determinist views.&quot;},{&quot;slug&quot;:&quot;pandemic-weary&quot;,&quot;rationale&quot;:&quot;Explores the feeling of having nothing to do and lacking motivation for side projects.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:865,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:779,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:313},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;blog/giving-up-on-resolutions&quot;,&quot;fileSlug&quot;:&quot;giving-up-on-resolutions&quot;,&quot;title&quot;:&quot;Giving Up On Resolutions&quot;,&quot;content&quot;:&quot;&#92;nAs I&#39;ve [[blog/a-story-of-failure|written]] [before](https://blog.travisbriggs.com/writing-a-song-a-day-in-2018-d4f2be32c40f), I&#39;m a sucker for New Year&#39;s Resolutions. And yet as the first link from this time last year states, I&#39;ve also kind of given up on them. They&#39;re simply ineffective at creating any kind of real or lasting change. I&#39;ve come around to the &#92;&quot;today is New Year&#39;s Day, it is a Wednesday&#92;&quot; kind of thinking.&#92;n&#92;nIs it a loss of innocence, a renunciation of magic, with which I give up New Year&#39;s Resolutions? I think a belief in the special, the magical, is very healthy and energizes me more than anything else. For me, however, at this time in my life, resolutions are just something to feel bad about in March.&#92;n&#92;nI&#39;m not interested in any kind of self-help, getting stuff done, motivational voodoo to replace resolutions with, either. I think I&#39;m more attracted to the mode of thinking, currently, that things are basically fine and I should just let what happens happen. Not that I&#39;m going to stop trying new things, like maybe a D&amp;D group at work, or tutoring a new friend in Javascript in the new year. But those are just things I kind of want to do anyway.&#92;n&#92;nNo, I&#39;m not a bastion of satisfaction and joy. I don&#39;t spend every minute wrapped up in feelings of usefulness and contentment. Many of my minutes are still filled with malcontent, boredom and apathy. But maybe that&#39;s okay, that&#39;s just part of living.&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;new-year&quot;,&quot;anchor_text&quot;:&quot;today is New Year&#39;s Day&quot;,&quot;context&quot;:&quot;I&#39;ve come around to the &#92;&quot;today is New Year&#39;s Day, it is a Wednesday&#92;&quot; kind of thinking&quot;,&quot;rationale&quot;:&quot;This node directly develops the &#39;every day is New Year&#39;s Day&#39; philosophy referenced here.&quot;},{&quot;slug&quot;:&quot;getting-nothing-done&quot;,&quot;anchor_text&quot;:&quot;getting stuff done&quot;,&quot;context&quot;:&quot;I&#39;m not interested in any kind of self-help, getting stuff done, motivational voodoo&quot;,&quot;rationale&quot;:&quot;That node addresses productivity systems and getting things done, matching this dismissal.&quot;},{&quot;slug&quot;:&quot;free will&quot;,&quot;anchor_text&quot;:&quot;let what happens happen&quot;,&quot;context&quot;:&quot;things are basically fine and I should just let what happens happen&quot;,&quot;rationale&quot;:&quot;The &#39;let what happens happen&#39; attitude ties into the author&#39;s determinism/free will node.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;another-year-without-resolutions&quot;,&quot;rationale&quot;:&quot;Directly follows up on this decision to give up on New Year&#39;s resolutions a year later.&quot;},{&quot;slug&quot;:&quot;not the circumstances&quot;,&quot;rationale&quot;:&quot;Elaborates the theme of accepting circumstances and choosing your response rather than controlling outcomes.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:557,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:568,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:181},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;blog/halloween-sadness&quot;,&quot;fileSlug&quot;:&quot;halloween-sadness&quot;,&quot;title&quot;:&quot;Halloween Sadness&quot;,&quot;content&quot;:&quot;&#92;nHalloween is a time for the spooky, the scary, sometimes the terrifying and maybe a bit of the downright goofy. Is there room in there for a bit of Halloween sadness?&#92;n&#92;nTwo years ago one of my friends, Will, moved away from the Bay Area to pursue an MBA from Chicago Booth. We were all very proud of Will and wished him the best of luck. Two years later, he&#39;s graduated! But now he&#39;s moved to Berlin.&#92;n&#92;nWill used to throw pretty extravagant, costume-required, Halloween parties. He and his friends were very into cosplay in general and would have costume parties throughout the year, for birthdays and other occasions. But Halloween, now there was a chance to get schmucks like me and a few of his other friends to be forced to wear a costume. Legend has it that if you showed up to one of these parties without a costume, you would be assigned a &#92;&quot;loaner&#92;&quot; from the rejected costume pile. And no one wanted that.&#92;n&#92;nIs there room in Halloween for sadness? For the past two years, some of Will&#39;s friends and I haven&#39;t celebrated Halloween at all. We had no party to go to, no celebration. We had no reason to eek out the smallest semblance of a costume and hope it passed muster. Can you be nostalgic for something that happened 2 years ago?&#92;n&#92;nIt&#39;s just one more thing that reminds me that today, right now, the time we are currently living, will one day be looked back upon as the good old days. So put on your best costume, even if it&#39;s just &#92;&quot;The Color Red&#92;&quot;.&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;thoughts-of-home&quot;,&quot;rationale&quot;:&quot;That node explores nostalgia and the idea that &#39;you can never go home again,&#39; which deepens this node&#39;s reflection on longing for the good old days.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:527,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:273,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:188},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;blog/latest-and-not-so-greatest&quot;,&quot;fileSlug&quot;:&quot;latest-and-not-so-greatest&quot;,&quot;title&quot;:&quot;Latest and Not-so-greatest&quot;,&quot;content&quot;:&quot;&#92;nToday I sent a cold email to someone who has 90k subscribers on YouTube, asking if they could maybe give me music production lessons. On the one hand, I don&#39;t expect a response, even at all. On the other hand, this person did put their (an?) email address in the description of a YouTube video so maybe they&#39;re open to being contacted. Maybe?&#92;n&#92;nAnyways, at the bottom of the email, I linked my demo song website, [songs.travisbriggs.com](https://songs.travisbriggs.com). I then of course visited this website and tried to imagine what the person would see or click on when they got there. One thing that popped into my head is that they might literally click on the newest song and listen for 5 seconds, thinking &#92;&quot;This is probably Travis&#39;s latest and greatest song&#92;&quot;.&#92;n&#92;nThat&#39;s when I started feeling mortified.&#92;n&#92;nRight now the newest song on my demo website is a sloppy punk track called &#92;&quot;Goodbyes&#92;&quot; ([link](https://songs.travisbriggs.com/goodbyes/)). If you listen to 5 seconds of it, you probably think, &#92;&quot;Wow this guy is great at making awful noise, but I wouldn&#39;t call it music!&#92;&quot;. It&#39;s certainly my latest track, but it&#39;s far from being my greatest.&#92;n&#92;nNow there&#39;s a whole discussion around the difference between the demos on this site and the songs which I had made into my [Danger Third Rail EP](https://dangerthirdrail.com). Not only did I select my best material for the EP, but I meticulously [[recording-setup|re-recorded]] the parts. They also got professionally mixed and mastered. So I think those tracks in particular are going to sound the best out of the wide range of material I&#39;ve published, and be the greatest. They&#39;re a far cry from being the latest though.&#92;n&#92;nSo at this point I&#39;m thinking about [[highs-and-lows-musician|progression over time]]. Am I getting better at making music? Not even a specific genre of music, not &#92;&quot;Am I getting better at writing music?&#92;&quot; or &#92;&quot;Am I getting better at performing/mixing/mastering/whatever music?&#92;&quot;. Basically, can you look at the musical artifacts I&#39;ve created, the songs I&#39;ve created, over time and see that yes, the quality is increasing?&#92;n&#92;nI think that I can&#39;t honestly answer that question. Not because I&#39;m afraid the answer might be no -- though I am afraid of that! -- but because the demo songs website is not really set up to produce that kind of an answer.&#92;n&#92;nThe fact is, my methodology and my ethos of creating music has shifted and evolved over the years, as you might well expect it to. I&#39;ve gone from releasing songs once in a blue moon, to frantically releasing them once a week or once a day, back to producing songs maybe once a month. I&#39;ve gone from not finishing projects and not saving the unfinished parts, to saving all the unfinished parts, to trying to finish things in one session even if it means sacrificing quality.&#92;n&#92;nReally, I&#39;ve decided that I believe in the 100:10:1 rule, where out of 100 songs, 10 will be good and 1 will be great, so it doesn&#39;t matter if the initial demo of a song sounds amazing or not. If there&#39;s a good idea there, I&#39;ll revisit it, re-record some of the parts, tweak the arrangement, send it to my drummer in the UK, and have it professionally mixed and mastered. If there&#39;s only a so-so idea there, well, at least I recorded a demo and a few people listened to it.&#92;n&#92;nHonestly, I fully believe that I will need to write close to 500 songs before I can come up with another 5 song EP. I&#39;m not sure I even have it in me to approach such a task. If you&#39;re listening to [songs.travisbriggs.com](https://songs.travisbriggs.com), you&#39;re simply along for the process.&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;danger-third-rail&quot;,&quot;anchor_text&quot;:&quot;Danger Third Rail EP&quot;,&quot;context&quot;:&quot;the songs which I had made into my [Danger Third Rail EP](https://dangerthirdrail.com)&quot;,&quot;rationale&quot;:&quot;Directly references the band project which has its own dedicated node.&quot;},{&quot;slug&quot;:&quot;YouTube&quot;,&quot;anchor_text&quot;:&quot;YouTube&quot;,&quot;context&quot;:&quot;a cold email to someone who has 90k subscribers on YouTube, asking if they could&quot;,&quot;rationale&quot;:&quot;YouTube is the subject of a dedicated node in the garden.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;not-quite-writers-block&quot;,&quot;rationale&quot;:&quot;That node directly picks up on the &#39;need to write hundreds of songs&#39; idea and cites this post.&quot;},{&quot;slug&quot;:&quot;nike-the-shit-out-of-it&quot;,&quot;rationale&quot;:&quot;Discusses the same struggle of not publishing songs and the sporadic release cadence mentioned here.&quot;},{&quot;slug&quot;:&quot;motivation-music&quot;,&quot;rationale&quot;:&quot;Elaborates on the quality-vs-inspiration framework relevant to judging whether one&#39;s music improves over time.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1225,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:635,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:278},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;blog/listening-to-music-while-doing-things&quot;,&quot;fileSlug&quot;:&quot;listening-to-music-while-doing-things&quot;,&quot;title&quot;:&quot;Listening to music while doing things&quot;,&quot;content&quot;:&quot;&#92;nHow about this for an app idea: you listen to music and just type the lyrics into a chat room in real time. Or maybe you type the lyrics to the song and it stops when it gets to the words you haven&#39;t typed yet. Like some kind of inverted karaoke.&#92;n&#92;nI love listening to music but always feel compelled to be doing something while I do it, like playing a game or especially coding. I listen to music all day long while coding at my job. It&#39;s extremely satisfying, especially when you get into those zone/flow moments.&#92;n&#92;nI am thinking it&#39;s a sign that the freckles in our eyes are mirror images and when we kiss they&#39;re perfectly aligned.&#92;n&#92;nWow I don&#39;t think I can even keep up with the lyrics on songs that are pretty fast like this one. It&#39;s fun to just type words though while music I like is playing. It&#39;s kind of evocative of the whole coding-in-the-zone experience and probably releases some of the same endorphins.&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;untitled-2&quot;,&quot;rationale&quot;:&quot;That writing explores the tension of composing text while listening to music, directly extending this node&#39;s idea of typing along to lyrics.&quot;},{&quot;slug&quot;:&quot;blogging-but-this-time-with-blogging&quot;,&quot;rationale&quot;:&quot;It explicitly references this node and proposes a similar exercise of writing lines inspired by whatever song lyric is currently playing.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:350,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:351,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:207},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;blog/making-a-computer-game&quot;,&quot;fileSlug&quot;:&quot;making-a-computer-game&quot;,&quot;title&quot;:&quot;Making a computer game&quot;,&quot;content&quot;:&quot;&#92;nI&#39;ve always wanted to program a computer game. I can program pretty well, so it can&#39;t be all that hard right? I know that many people pursue gamedev the way I pursue music production: in fits and starts, as a hobby, never particularly successfully. Since I already have a pursuit like that, why would I want to add gamedev to the list? Am I a masochist?&#92;n&#92;nI&#39;ve actually used pygame successfully on a few occasions. One of them was just learning game dev, I made a game where you caught a dot with a paddle. I called it Butterfly Catcher and it&#39;s [still available on Github](https://github.com/audiodude/Butterfly-Catcher). The other &#92;&quot;game&#92;&quot; I made with pygame was actually a game loop for a full sized skee-ball like drinking game called Whiskeyball.&#92;n&#92;nFor a long time, I had the idea of an &#92;&quot;API-only&#92;&quot; game. I registered the domain scriptslash.com and had the bare bones of registration and a bit of a tutorial up there. The idea is that the game engine is just implemented as a bunch of API endpoints, and you make HTTP requests to interact with it. So you end up having a script that does the hacking and slashing.&#92;n&#92;nIn fact, now that I think of it, this idea is over 10 years old! The main impetus for it was the thought that if you&#39;re writing scripts that interact with REST APIs to play a game, it will look to anyone who walks behind your desk at your programming job like you are working (and not playing a game).&#92;n&#92;nAs part of this, I actually implemented the so called &#92;&quot;2 legged&#92;&quot; OAuth scenario, which is not widely used, but basically lets you sign an individual API request with your API key, so that you don&#39;t have to have any login mechanism, or cookies or persistent state. I thought it was pretty clever. I even released a Ruby &#92;&quot;API client&#92;&quot; which just basically imported the right libraries and signed the request, so you could focus on what parameters you wanted to send.&#92;n&#92;nThe problem with Scriptslash was that there was never really a &#92;&quot;game&#92;&quot; there. I had all the ideas for the technical infrastructure, but no ideas for what the gameplay would be like. I even re-wrote the engine, which was originally in Node.js, in Python Flask, porting my two-legged OAuth implementation. Does this sound familiar? How many people have you heard of that develop intricate game engines but there&#39;s never really a game there?&#92;n&#92;nLater, I had an idea for a multiplayer game I was calling &#92;&quot;Space Base Race Game&#92;&quot;. You can read [the document I wrote](https://docs.google.com/document/d/1W5CmYhIo87c7GrLOa_6osw8g9Dze5ZZnvHfdCNP8kZo/edit?usp=sharing) about it if you&#39;re interested. It was kind of hopelessly complex for what it was trying to do, and I never really had a firm grasp on what the &#92;&quot;graphics&#92;&quot; if any would look like. The basic idea behind the game is the [multi-armed bandit](https://en.wikipedia.org/wiki/Multi-armed_bandit). Given a row of slot machines, do you pull the one that seems to pay a dollar 75% of the time, or do you play a new one in search of a larger reward? I think this exploration of reward spaces can lead to fun gameplay, because the user has to choose between exploiting a known resource or exploring.&#92;n&#92;nOf course, why not pair Space Base Race Game with Scriptslash and have it be the game for that engine?&#92;n&#92;nI&#39;m not sure why I never did that, to be honest. Part of me had soured on the whole Scriptslash idea. I realized that for any game, a player is going to be a real live human being somewhere, and that they&#39;re going to want to see the output of the game. Yes they might at first be satisfied to read the output in the logs of their &#92;&quot;script&#92;&quot;. But eventually they&#39;re going to want to see output in real time, and provide input in real time. This is starting to sound like a real Game Client that needs to be developed, possibly with graphics. And I didn&#39;t want to do that.&#92;n&#92;nMost recently, I had the idea for &#92;&quot;[Factorio](https://factorio.com/) but as a [MUD](https://en.wikipedia.org/wiki/MUD)&#92;&quot;, which sounds as brilliant as it sounds horrifying to me (and of course is in the grand tradition of &#92;&quot;Twitter for dogs&#92;&quot; type startup ideas). I&#39;ve got 200 hours plus played in Factorio, which is by far the most time I&#39;ve put into a game in probably the past decade.&#92;n&#92;nThe idea hasn&#39;t really gone anywhere, though. I downloaded the [Evennia MUD engine](https://github.com/evennia/evennia) which is both written in Python and claims to be widely extensible. But I already sort of gave up, after getting the MUD running, because I realized how much work it would be to rip out all of the existing MUD systems (ie &#92;&quot;examine cup&#92;&quot;) and replace them with Factorio like things. Or maybe I just didn&#39;t have the idea fully formed in my head enough. Maybe I should write another Google doc.&#92;n&#92;nAt some point in this journey I picked up the excellent [Mazes for Programmers](https://pragprog.com/titles/jbmaze/) which was a lot of fun to work through. This originally gave me ideas for Scriptslash, while that was still a thing. The examples in that book have stayed with me, and they&#39;re part of the lingering &#92;&quot;background radiation&#92;&quot; around actually making a video game. But the question is, will I ever do it? And if not, the larger question is, what&#39;s stopping me?&#92;n&#92;nI&#39;ve also played more than my fair share of &#92;&quot;clicker&#92;&quot; and &#92;&quot;idle&#92;&quot; games, more than anyone should probably ever play. So I&#39;ve got ideas down that road too. I had an idea for a game called &#92;&quot;Super Progress Bar Pro&#92;&quot;, which is basically exactly what it says on the tin.&#92;n&#92;nSo my ideal game that I&#39;d like to make is Factorio, but a MUD, but a clicker, but API driven.&#92;n&#92;nMaybe I just need to answer some basic questions and go from there:&#92;n&#92;n- Single player or multiplayer?&#92;n- Graphics or text based?&#92;n- Story based or mechanics-driven?&#92;n- Clicker/idle mechanics or actual gameplay?&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;Python&quot;,&quot;anchor_text&quot;:&quot;Python Flask&quot;,&quot;context&quot;:&quot;re-wrote the engine, which was originally in Node.js, in Python Flask, porting my two-legged OAuth&quot;,&quot;rationale&quot;:&quot;The node references Python Flask, and there is a dedicated node about Python.&quot;},{&quot;slug&quot;:&quot;Ruby on Rails&quot;,&quot;anchor_text&quot;:&quot;Ruby&quot;,&quot;context&quot;:&quot;I even released a Ruby &#92;&quot;API client&#92;&quot; which just basically imported the right libraries&quot;,&quot;rationale&quot;:&quot;Mentions writing a Ruby client, and a Ruby node exists.&quot;},{&quot;slug&quot;:&quot;javascript-typescript&quot;,&quot;anchor_text&quot;:&quot;Node.js&quot;,&quot;context&quot;:&quot;the engine, which was originally in Node.js, in Python Flask&quot;,&quot;rationale&quot;:&quot;Node.js is the JavaScript backend, covered in the Javascript/Typescript node.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;q-poker-in-progress&quot;,&quot;rationale&quot;:&quot;Q Poker is another one of the author&#39;s game projects and directly references this making-a-computer-game node.&quot;},{&quot;slug&quot;:&quot;font-of-creativity&quot;,&quot;rationale&quot;:&quot;That node discusses the author&#39;s experience with MUDs, which this node repeatedly references as game inspiration.&quot;},{&quot;slug&quot;:&quot;Rainfall&quot;,&quot;rationale&quot;:&quot;Rainfall is another Python/Flask project by the author, elaborating on the same tech stack used for the game engine.&quot;},{&quot;slug&quot;:&quot;motivation-music&quot;,&quot;rationale&quot;:&quot;This node compares gamedev to the author&#39;s fits-and-starts music production hobby, which motivation-music elaborates on.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1939,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:810,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:315},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;blog/mastodon-is-not-twitter&quot;,&quot;fileSlug&quot;:&quot;mastodon-is-not-twitter&quot;,&quot;title&quot;:&quot;Mastodon is not Twitter&quot;,&quot;content&quot;:&quot;&#92;nMastodon is not Twitter. It doesn&#39;t seem like it will ever be, it&#39;s fundamentally different. Although the size of the user base of Mastodon instances has grown 3x as part of the greatest Twitter exodus to date, Mastodon will never be Twitter.&#92;n&#92;nA lot of people are joining Mastodon as a &#92;&quot;Twitter replacement&#92;&quot;. They&#39;ve (understandably) lost faith in the direction of the bird platform and are looking for an alternative. They&#39;re going to be disappointed, honestly. I feel like people in this category are trying to break their Heroin addiction by turning to Ibuprofen. It&#39;s not going to work. Mastodon is (intentionally) not designed for a frenetic, addicting, free-for-all injection of news, shitposts, memes, celebrity gossip, etc. It just isn&#39;t set up to work that way. Not that toots on those topics don&#39;t exist in the fediverse. But Mastodon doesn&#39;t intentionally push the most trending, most controversial, most nonsensical **bullshit** directly into your face and force you to interact with it.&#92;n&#92;nFor people that actual have legitimate friends and relationships on Twitter, that _is_ something that can be replicated on Mastodon. If you tweet something, and a known group of friends and acquaintances generally interact with it, then welcome to the Mastodon experience really. But if you just fire into the void on Twitter, and sometimes one or two random people who you barely remember having followed you respond with something vapid, forget about it.&#92;n&#92;nTwitter is something that the people at the top create. The major celebrity accounts, the news organizations, the politicians: Twitter is theirs. In most cases, Twitter is a consumption medium, where you&#39;re technically allowed to comment. Mastodon is of course the opposite. It&#39;s bottom up. Toots are written and spread amongst close-knit communities and friend groups.&#92;n&#92;nThis takes us of course to the &#92;&quot;viral tweet&#92;&quot;. Sometimes, normal people like you win the Twitter lottery and their tweets get tens if not hundreds of thousands of likes. This perpetrates the myth that anyone can &#92;&quot;go viral&#92;&quot; if they just keep tweeting. And in the replies to those tweets you can find a random sampling of other normal people. This is, actually, kind of nice. You get a diverse set of viewpoints and opinions on some common issue or viewpoint.&#92;n&#92;nViral tweets don&#39;t happen on Mastodon, at least not in the same way. You will never go viral on Mastodon. But the truth of it is, you were never going to go viral on Twitter either. It&#39;s all a mirage, a sleight of hand perpetrated by the birdsite to keep us coming back for more.&#92;n&#92;nHave you seen what happens to people when they go viral, anyway? Days of their phone and computer notifications blowing up, all possible real communication buried in the deluge. If your viral post is political, you might even end up getting doxxed, harassed at work, etc.&#92;n&#92;nI know I&#39;m not the first person to say that Mastodon will never be Twitter. Luckily, I believe that it wouldn&#39;t be Twitter even if all the Twitter exodus folks tried with all their might to make it so. For people who are disappointed in this conclusion, I have to honestly ask: do you really need info-garbage shoved in your face 24/7? Maybe you don&#39;t need any replacement for Twitter. Maybe you can quit cold turkey.&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;activity-pub&quot;,&quot;anchor_text&quot;:&quot;fediverse&quot;,&quot;context&quot;:&quot;Not that toots on those topics don&#39;t exist in the fediverse.&quot;,&quot;rationale&quot;:&quot;The fediverse is powered by ActivityPub, which this node explains in detail.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;dg-solo&quot;,&quot;rationale&quot;:&quot;Discusses Twitter&#39;s &#39;main character&#39; dynamic and Mastodon, elaborating on the desire for attention/going viral touched on here.&quot;},{&quot;slug&quot;:&quot;activity-pub&quot;,&quot;rationale&quot;:&quot;Explains the ActivityPub protocol that powers Mastodon, deepening the technical context of the fediverse mentioned here.&quot;},{&quot;slug&quot;:&quot;blogging-but-this-time-with-blogging&quot;,&quot;rationale&quot;:&quot;Reflects on shouting into Mastodon versus blogging, extending the theme of how Mastodon is used.&quot;},{&quot;slug&quot;:&quot;gemini&quot;,&quot;rationale&quot;:&quot;Discusses Mastodon and how much of it is self-referential, connecting to the platform commentary here.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1127,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:586,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:253},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;blog/more-about-blogging&quot;,&quot;fileSlug&quot;:&quot;more-about-blogging&quot;,&quot;title&quot;:&quot;More about blogging&quot;,&quot;content&quot;:&quot;&#92;nI never really blogged much when it was popular, in the 2000s. And I continue to not really blog much to this day, so not much has changed in that regard. But I&#39;ve always had this desire to blog. It&#39;s like my vague desire to use a [Zettelkasten](https://zettelkasten.de/posts/overview/), even though I don&#39;t have much of anything to take notes about.&#92;n&#92;nNowadays, I&#39;ve discovered the [[Gemini|Gemini protocol]] which claims to not be trying to replace Gopher or the Web, but seems to strike an interesting middle ground between them. It&#39;s kind of an improved Gopher with more modernized semantics.&#92;n&#92;nI actually have created one of the first 50 Gemini sites in existence, `gemini://gem.bestalbumsintheuniverse.com`. This is the Gemini version of my [[best albums in the universe]] project, the goal of which is [exactly what it says on the tin](https://tvtropes.org/pmwiki/pmwiki.php/Main/ExactlyWhatItSaysOnTheTin). I feel a bit of pride about this, that &#92;&quot;hipster&#92;&quot; feeling of I knew about it before it was cool. But there&#39;s also another feeling, that of getting to see what Gemini turns into eventually, to watch its evolution from near the beginning.&#92;n&#92;nAll this leads back to blogging because a lot of the people who run Gemini spaces like to write blogs. Or really they like to write phlogs, which are Gopher Logs (blog being a Web Log). And some of them write Gemini logs (gemlogs) as well. It&#39;s a whole small universe of people giving status updates and the like, and it&#39;s pretty interesting to just do a random walk across some of the pages and see what you find.&#92;n&#92;nI want to contribute to this, of course, but as I&#39;ve lamented in my previous blogs about blogging, I just don&#39;t have that much to talk about on a weekly basis without it getting very personal and mundane.&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;blogging-but-this-time-with-blogging&quot;,&quot;anchor_text&quot;:&quot;my previous blogs about blogging&quot;,&quot;context&quot;:&quot;as I&#39;ve lamented in my previous blogs about blogging, I just don&#39;t have that much to talk about&quot;,&quot;rationale&quot;:&quot;This node&#39;s meta-reflection on blogging directly parallels the referenced previous blog-about-blogging post.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;blog&quot;,&quot;rationale&quot;:&quot;Discusses the author&#39;s ambivalent relationship with maintaining a blog, elaborating on the desire-to-blog theme here.&quot;},{&quot;slug&quot;:&quot;considering-moving-blogs&quot;,&quot;rationale&quot;:&quot;Continues the recurring theme of the author&#39;s on-and-off relationship with blogging platforms.&quot;},{&quot;slug&quot;:&quot;gemdown&quot;,&quot;rationale&quot;:&quot;A Gemini-related project of the author&#39;s that could extend the Gemini/gemlog discussion in this node.&quot;},{&quot;slug&quot;:&quot;blog-cycle&quot;,&quot;rationale&quot;:&quot;Explores the author&#39;s meta-thoughts on the medium of blogging, deepening this node&#39;s blogging reflections.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:663,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:561,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:216},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;blog/music-projects-as-ephemera&quot;,&quot;fileSlug&quot;:&quot;music-projects-as-ephemera&quot;,&quot;title&quot;:&quot;Music Projects as Ephemera&quot;,&quot;content&quot;:&quot;&#92;nAt some point in the past year, I upgraded my version of [Reason](https://www.reasonstudios.com/shop/product/reason-11/) from version 10 to version 11.&#92;n&#92;nAt some point in the past two months, I tried to open an old music project that I had written two or more years ago.&#92;n&#92;n### It was a catastrophe.&#92;n&#92;nWithout getting too technical, I had structured _all_ of my projects, going back maybe 10 years, as an [Ableton Live](https://www.ableton.com/en/live/) main project (for recording audio and using audio plugins) that potentially depended on a Reason sub project for using drums and synthesizers from that program. Through a technology known as [ReWire](&lt;https://en.wikipedia.org/wiki/ReWire_(software_protocol)&gt;), the two programs stayed perfectly in sync and I could easily share audio and [MIDI](https://blog.landr.com/what-is-midi/) between them.&#92;n&#92;nThe key here is that Ableton Live was the &#92;&quot;host&#92;&quot;, with the main recording controls and tempo, and Reason was the &#92;&quot;guest&#92;&quot;, simply making its instruments and sounds available. For a decade, my default project in Ableton included a track that was used solely for getting sound back from Reason, armed and ready to go.&#92;n&#92;nIn version 11 of the Reason &#92;&quot;suite&#92;&quot;, they made a bold choice: offer Reason as a VST plugin. This was pretty revolutionary, because it allowed users to do exactly what I was doing, but without having to run the Reason application at all. And you could have an almost unlimited number of these virtual Reason &#92;&quot;racks&#92;&quot; in your Ableton project, each merrily doing its own thing.&#92;n&#92;nIt was also revolutionary because it killed ReWire.&#92;n&#92;nReWire as a protocol still exists, and there are probably examples of programs that use it that you can run today. But Reason doesn&#39;t use it. And because of that **none of my projects, spanning a 10 year period, can be &#92;&quot;run&#92;&quot; on the new version of Reason**.&#92;n&#92;nOh sure, Reason Studios (the new moniker for Propellerheads SE, who make the software) has done a meticulous job of ensuring backwards compatibility for their own .reason file format. You can open very, very old .reason files, maybe even from version 1, I don&#39;t know for sure.&#92;n&#92;nThe problem isn&#39;t that I can&#39;t open the Reason file.&#92;n&#92;nAnd Ableton, too, has made substantial investment in backwards compatibility. They warn you when you open an old file, that it might be converted, etc, but it&#39;s usually no problem.&#92;n&#92;nThe problem isn&#39;t that I can&#39;t open the Ableton file.&#92;n&#92;nThe problem is that they no longer communicate. The Reason file, with my drums and synthesizers. The Ableton file with my voice takes and guitar tracks. They just sit there, dumb, each ready to play half my song out of sync with each other. As my friend Sagar would say, &#92;&quot;Why don&#39;t you just hit play at the same time?&#92;&quot; Facepalm.&#92;n&#92;nReason Studios, for their part, doesn&#39;t offer downloads of old versions of their software. Maybe they would throw a DMG my way if I explained my issues, maybe not, I haven&#39;t tried contacting them.&#92;n&#92;nI wonder now, though, in the age of vibe coding, if there isn&#39;t some way I could automate a solution for the Reason drum beat issue and somehow render and transclude the beat with scripting/automation?&#92;n&#92;nAnd honestly, do I need the beats really? Most of them, especially for the rock-oriented songs, are literally the stock Dr Rex &#92;&quot;College 130&#92;&quot; beat. I can probably recreate or do without?&#92;n&#92;n---&#92;n&#92;nOkay, I&#39;ve got files on my computer, backed up to Dropbox, of songs I wrote and played around with 24 odd years ago, when I was in middle school. I know the programs that wrote these files don&#39;t exist anymore (they were on the pre-OS X, MacOS 8 operating system, not even MacOS 9!). I guess I keep them around for sentimental reasons.&#92;n&#92;nOf course, I also have .reason files from 18 odd years ago when I was in college and making music solely with Reason (a copy of which may or may not have -cough- &#92;&quot;fallen off a truck&#92;&quot;). I can still open those!&#92;n&#92;nI guess I didn&#39;t expect my music files to constitute such ephemera, based on the above. I guess I didn&#39;t expect to one day &#92;&quot;upgrade&#92;&quot; my rig and lose access to 10 years of music projects. Yes, as digital musicians we know that upgrades are risky. That&#39;s why I&#39;ve been on OS X 10.14 Mojave until only 2 months ago (oddly it was losing access to these projects that made me say &#92;&quot;eff it&#92;&quot; and upgrade my OS). Based on some of what I read, I might never upgrade to Big Sur or beyond (because many of my plugins are old and won&#39;t get updated to run on M1 hardware). It makes me wonder if I should just have a dedicated music making computer that&#39;s not even connected to the internet and never receives updates. But that&#39;s kind of a luxury I don&#39;t have. Okay, end rant.&#92;n&#92;nI think the point is that I _should_ have expected this to happen. Every piece of digital everything is ephemera. Just look at how quickly [link rot](https://www.newyorker.com/magazine/2015/01/26/cobweb) takes over the web (it&#39;s impressive that the linked New Yorker article from 2015 still exists, but is that even its original URL?). Ask anyone my age where their digital photos from college or before are, now that they&#39;ve lost that phone 10 years ago, or the hard drive on that laptop crashed. I get it.&#92;n&#92;nI don&#39;t feel the need to warn anyone that this might happen to them. The versions of the software are old enough now that if it was going to happen, it&#39;s likely already happened. I also don&#39;t mean to whine or complain publicly, though a bit of that seems to be helping. And I&#39;m not here to tell everyone to &#92;&quot;back up all your files in 5 different formats and 6 different timezones&#92;&quot; or whatever.&#92;n&#92;nFor myself, I&#39;m thinking of rendering everything as `.wav` in the future, so that I have _some_ kind of tangible artifact in case this keeps happening.&#92;n&#92;nThis is more a eulogy for my lost files. Goodbye old songs. May you live on in MP3 format on [songs.travisbriggs.com](https://songs.travisbriggs.com) and Soundcloud. And by writing this, may I get some peace and closure.&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;ableton&quot;,&quot;anchor_text&quot;:&quot;Ableton Live&quot;,&quot;context&quot;:&quot;projects, going back maybe 10 years, as an [Ableton Live](https://www.ableton.com/en/live/) main project&quot;,&quot;rationale&quot;:&quot;The node discusses Ableton Live extensively and a dedicated node describes the software.&quot;},{&quot;slug&quot;:&quot;vibe coding&quot;,&quot;anchor_text&quot;:&quot;vibe coding&quot;,&quot;context&quot;:&quot;I wonder now, though, in the age of vibe coding, if there isn&#39;t some way&quot;,&quot;rationale&quot;:&quot;Directly references vibe coding, which has its own node.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;recording-setup&quot;,&quot;rationale&quot;:&quot;Describes the author&#39;s DAW/Reason/Ableton recording rig, elaborating on the hardware and software setup mentioned here.&quot;},{&quot;slug&quot;:&quot;Rainfall&quot;,&quot;rationale&quot;:&quot;Covers the author&#39;s song hosting at songs.travisbriggs.com, the destination for rendered .wav/MP3 artifacts mentioned at the end.&quot;},{&quot;slug&quot;:&quot;highs-and-lows-musician&quot;,&quot;rationale&quot;:&quot;Discusses the history of the author&#39;s home recording using Ableton/Reason and MIDI, deepening context for these lost projects.&quot;},{&quot;slug&quot;:&quot;ableton-12&quot;,&quot;rationale&quot;:&quot;Discusses upgrading Ableton versions and workflow concerns, parallel to the version-upgrade catastrophe described here.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:2025,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:718,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:272},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;blog/new-danger-third-rail-ep&quot;,&quot;fileSlug&quot;:&quot;new-danger-third-rail-ep&quot;,&quot;title&quot;:&quot;New Danger Third Rail EP&quot;,&quot;content&quot;:&quot;&#92;nI suppose if I announce a new [[danger-third-rail|Danger Third Rail]] project on a blog site, and then post that to Mastodon, it&#39;s not going to make a very big splash. I&#39;m okay with that, I expect as much. I don&#39;t expect anyone to know what Danger Third Rail is, nevermind that I&#39;m the &#92;&quot;mastermind&#92;&quot; behind it.&#92;n&#92;nI almost just wrote &#92;&quot;I really want...&#92;&quot; but then backspaced the hell out of it. I know that such statements are weak in terms of both intention and motivation. What I will say is this: _I will release a new 5 song Danger Third Rail EP before the end of this year._&#92;n&#92;nThe songs are all written, that&#39;s for sure. They are largely recorded, as well. I need to go back and re-record some of the vocals with a new setup that I&#39;ve recently learned works better. Then I need to send the tracks to [my session drummer in the UK](http://www.emilydrums.com), presuming she has time to work on them. After that I plan on having [Tunedly](https://www.tunedly.com/) do the mixing and mastering. I might create the album artwork myself this time, or have it done on [Fiverr](https://www.fiverr.com) like I did last time (or some combination of the two). Then it&#39;s just a matter of uploading everything to [[DistroKid]] and having it float through the tubes to your waiting [[Spotify]] and iTunes apps.&#92;n&#92;nI&#39;m also going to promote this new material thoroughly. Like email it to music blogs and such. And make YouTube lyric (or otherwise) videos for each one of the songs.&#92;n&#92;nI think I was afraid of doing this before, and I&#39;m not sure of the reason. I&#39;m not ashamed of the music, quite the opposite, I&#39;m very proud of it. I think that knowing I&#39;m going to promote the music means I have to do a better job of producing it, and that&#39;s scary. But I&#39;m committed to doing it. I want to put the best possible product out there, and I want people to listen to it. I&#39;m not going to be satisfied with the random 20 people who listened to the last single or whatever. I&#39;m not going to dump my hard work and passion into a black hole.&#92;n&#92;n[Follow Danger Third Rail on Bandcamp](https://dangerthirdrail.bandcamp.com/) to get the official word when the new EP is available. Thanks!&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;Fiverr&quot;,&quot;anchor_text&quot;:&quot;Fiverr&quot;,&quot;context&quot;:&quot;or have it done on [Fiverr](https://www.fiverr.com) like I did last time&quot;,&quot;rationale&quot;:&quot;The node mentions Fiverr, which has its own garden node.&quot;},{&quot;slug&quot;:&quot;YouTube&quot;,&quot;anchor_text&quot;:&quot;YouTube&quot;,&quot;context&quot;:&quot;And make YouTube lyric (or otherwise) videos for each one of the songs&quot;,&quot;rationale&quot;:&quot;YouTube is mentioned and has a dedicated node.&quot;},{&quot;slug&quot;:&quot;Bandcamp&quot;,&quot;anchor_text&quot;:&quot;Danger Third Rail on Bandcamp&quot;,&quot;context&quot;:&quot;Follow Danger Third Rail on Bandcamp to get the official word&quot;,&quot;rationale&quot;:&quot;Bandcamp is referenced and has its own node.&quot;},{&quot;slug&quot;:&quot;recording-setup&quot;,&quot;anchor_text&quot;:&quot;new setup&quot;,&quot;context&quot;:&quot;re-record some of the vocals with a new setup that I&#39;ve recently learned works better&quot;,&quot;rationale&quot;:&quot;The new recording setup for vocals is covered in the recording-setup node.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;highs-and-lows-musician&quot;,&quot;rationale&quot;:&quot;Details the home studio recording process referenced here, including the session drummer and mixing/mastering workflow.&quot;},{&quot;slug&quot;:&quot;nike-the-shit-out-of-it&quot;,&quot;rationale&quot;:&quot;Discusses the struggle to finish and publish songs, directly relevant to the commitment to release an EP.&quot;},{&quot;slug&quot;:&quot;motivation-music&quot;,&quot;rationale&quot;:&quot;Explores the author&#39;s motivation for producing music, elaborating on the intention/commitment themes here.&quot;},{&quot;slug&quot;:&quot;danger-third-rail&quot;,&quot;rationale&quot;:&quot;The central subject; provides background on the band project and its distribution channels.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:802,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:759,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:215},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;blog/new-year&quot;,&quot;fileSlug&quot;:&quot;new-year&quot;,&quot;title&quot;:&quot;Every day is New Year&#39;s Day&quot;,&quot;content&quot;:&quot;Part of the goal of starting a digital garden was to recognize that things like my writing, my learning, my full digital creative output are not ever finished and don&#39;t come out necessarily in neat little packages that warrant a &#92;&quot;blog post&#92;&quot;. Sometimes you do more, more often than not you do less, and it often comes in bursts. I think it&#39;s possible to take a similar view towards New Year&#39;s resolutions. While the new year gives us occasion to declare one or more &#92;&quot;big&#92;&quot; changes to our lives, real change is more sporadic and gradual.&#92;r&#92;n&#92;r&#92;nThat is to say, every day is New Year&#39;s Day if you want it to be.&#92;r&#92;n&#92;r&#92;nThe real problem with the change in perspective this brings is that there&#39;s no impetus to actually get up off the couch and ever do anything. Today is new year&#39;s day, you insist. Yes, well, so is tomorrow.&#92;r&#92;n&#92;r&#92;nNo matter how many times you write resolutions, or [[blog/another-year-without-resolutions|swear]] [[blog/giving-up-on-resolutions|off]] [[blog/a-story-of-failure|writing]] them, at the end of the day, at the end of the blog post, at the end of the very sentence you&#39;re writing, you are stuck with yourself. Wherever you go, there you are. And in fact it is often observed that people will plan out actions, and derive enough pleasure from the planning and discussing the plans with others, that they never carry through or feel the need to carry through.&#92;r&#92;n&#92;r&#92;nIt even happens that people plan vacations and get much more joy out of the anticipation of the vacation then they do out of the vacation itself. People are happy when they&#39;re looking forward to a vacation, but just as depressed and anxious as ever when they&#39;re on one.&#92;r&#92;n&#92;r&#92;nI&#39;ve actually considered this when writing about [[blog/getting-nothing-done/|getting &#92;&quot;nothing&#92;&quot; done]]. Do I really want to get any of these things done? I mean, instinctively, I want to be a good husband to [[Abby]], which was always shoehorned into my resolutions when I made them. But that comes so naturally and doesn&#39;t take any sustained effort. All the other things like making music, writing software in my free time, visiting [Noisebridge](https://www.noisebridge.net/wiki/Noisebridge), tending this digital garden, etc -- do I really want to do those things, or is it enough for me to talk about doing them and tell people I want to do them. As much as I tell myself to [[blog/nike-the-shit-out-of-it/|&#92;&quot;just do it&#92;&quot;]], I&#39;m not sure &#92;&quot;it&#92;&quot; really wants to get done.&#92;r&#92;n&#92;r&#92;nAnother way to put it is: if you want to do something, you do it. If you never do it, you never wanted it in the first place. Which is the TLDR on a [blog post](https://blog.travisbriggs.com/what-i-learned-by-generally-not-blogging-for-15-years-even-though-i-thought-i-wanted-to-108899a9eb96) from my old Medium blog which was titled &#92;&quot;What I learned by generally not blogging for 15 years (even though I thought I wanted to)&#92;&quot;. Good read, much recommend.&#92;r&#92;n&#92;r&#92;nLooking just at this page, I&#39;ve linked to 6 different blog posts from the past several years, and it would be easy to come to the conclusion that my &#92;&quot;personal&#92;&quot; blog was actually a journal chronicling the persistent existential dread of a serial procrastinator. I&#39;m not sure I could really convince you otherwise.&#92;r&#92;n&#92;r&#92;nSo where does that leave us with regards to the new year, this new year, and new year&#39;s day? I honestly don&#39;t believe in [[philosophy|free will]] or any purpose to life, so I think it&#39;s okay to leave us as just a bunch of brains floating in space, tinkering as we might, without any real cause or consequence. I will do what I will do, I won&#39;t do what I won&#39;t, and in the end none of it matters so it&#39;s all okay.&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;digital-garden-itself&quot;,&quot;anchor_text&quot;:&quot;tending this digital garden&quot;,&quot;context&quot;:&quot;writing software in my free time, visiting Noisebridge, tending this digital garden, etc&quot;,&quot;rationale&quot;:&quot;Directly references the garden itself, which has a dedicated node.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;new-year-2025&quot;,&quot;rationale&quot;:&quot;A later reflection on New Year&#39;s Day that extends the &#39;every day is New Year&#39;s Day&#39; theme.&quot;},{&quot;slug&quot;:&quot;free will&quot;,&quot;rationale&quot;:&quot;The node explicitly disavows belief in free will, which this dedicated node elaborates on.&quot;},{&quot;slug&quot;:&quot;intrisic motivation&quot;,&quot;rationale&quot;:&quot;Explores whether the author truly wants to do things versus just talking about them, directly relevant to intrinsic vs extrinsic motivation.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1291,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:644,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:361},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;blog/not-quite-writers-block&quot;,&quot;fileSlug&quot;:&quot;not-quite-writers-block&quot;,&quot;title&quot;:&quot;Not Quite Writer&#39;s Block&quot;,&quot;content&quot;:&quot;&#92;nI fully believe I will need to write hundreds of songs in order to come up with my next great release. I mentioned as much at the end of my [[blog/latest-and-not-so-greatest|last post]]. I also believe that there are no &#92;&quot;shortcuts&#92;&quot; to this process, that I can&#39;t write ten songs and get lucky and two of them are great. I guess that&#39;s possible, but that&#39;s not really what the process represents.&#92;n&#92;nIt wouldn&#39;t be entirely fair to say I have writer&#39;s block. Like I [[blog/something-terrible|mentioned]] in another recent post, when I set out to just write whatever comes to mind and free myself from &#92;&quot;editor&#39;s mind&#92;&quot;, I can produce plenty of interesting sounds and song structures. I&#39;m not struggling to get started, or to put notes &#92;&quot;down on paper&#92;&quot;. I don&#39;t think I&#39;m stuck in the [8 bar loop trap](https://www.edmprod.com/how-to-avoid-the-8-bar-loop-trap/). I know how to finish songs or at least when a demo version is &#92;&quot;done enough&#92;&quot;.&#92;n&#92;nI can play a few instruments and sing well enough, I know how to use my DAW pretty well, certainly well enough that it doesn&#39;t actively impede my progress.&#92;n&#92;nI&#39;m not married to any specific genre, though I feel more at ease creating guitar-driven rock songs than any EDM pieces. But it&#39;s not a matter of getting sick of the genre I&#39;m writing in, or feeling like I have no new ideas in that space. The alternate is also true: I don&#39;t feel necessarily compelled to create some breakthrough new sound that no one&#39;s ever heard before.&#92;n&#92;nI feel like what I&#39;m lacking is focus. I don&#39;t have anything to focus my songwriting/music production ability. No prism to shine the light through. Sure, I&#39;d love to write a 10-12 track album that&#39;s coherent and well laid out. My favorite thing to listen to is [[best albums in the universe|albums]]. But something like that seems so distant and difficult that it&#39;s hard to motivate myself to pursue it.&#92;n&#92;nWhen I finish a song, I publish it on my [song demos website](https://songs.travisbriggs.com) and toot about it on Mastodon (sometimes I also tweet it). There&#39;s no real satisfaction or gratification other than just saying &#92;&quot;yes, I made a song today&#92;&quot;. I know of a couple of people that sometimes listen to songs I put out there, but usually they don&#39;t give me any direct feedback or encouragement.&#92;n&#92;nIt feels like every new song just gets thrown on the pile and forgotten as soon as it&#39;s rendered. Then maybe I decide to put out a release, like the [Radio Machine EP](https://dangerthirdrail.com/#radio-machine) and I go digging through this pile to try to find something salvageable.&#92;n&#92;nI know I can&#39;t depend on external encouragement or engagement to drive my songwriting. I understand, at least intellectually, that the drive to write songs has to come completely from me. I need to want to write these songs, and want it badly enough that I can overcome creative and technical obstacles. I need to be excited for my own reasons.&#92;n&#92;nAnd right now, frankly, I&#39;m not.&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;genre-thoughts&quot;,&quot;anchor_text&quot;:&quot;I&#39;m not married to any specific genre&quot;,&quot;context&quot;:&quot;I&#39;m not married to any specific genre, though I feel more at ease creating guitar-driven rock songs&quot;,&quot;rationale&quot;:&quot;Directly relates to the node about writing in the genre you listen to.&quot;},{&quot;slug&quot;:&quot;recording-setup&quot;,&quot;anchor_text&quot;:&quot;my DAW&quot;,&quot;context&quot;:&quot;I know how to use my DAW pretty well, certainly well enough&quot;,&quot;rationale&quot;:&quot;The recording-setup node describes his DAW and studio.&quot;},{&quot;slug&quot;:&quot;mastodon-is-not-twitter&quot;,&quot;anchor_text&quot;:&quot;Mastodon&quot;,&quot;context&quot;:&quot;publish it on my song demos website and toot about it on Mastodon&quot;,&quot;rationale&quot;:&quot;Connects to his thoughts on Mastodon as a platform.&quot;},{&quot;slug&quot;:&quot;intrisic motivation&quot;,&quot;anchor_text&quot;:&quot;the drive to write songs has to come completely from me&quot;,&quot;context&quot;:&quot;I understand, at least intellectually, that the drive to write songs has to come completely from me&quot;,&quot;rationale&quot;:&quot;This is exactly the concept of intrinsic motivation he has written about.&quot;},{&quot;slug&quot;:&quot;danger-third-rail&quot;,&quot;anchor_text&quot;:&quot;Radio Machine EP&quot;,&quot;context&quot;:&quot;like the Radio Machine EP and I go digging through this pile&quot;,&quot;rationale&quot;:&quot;The Radio Machine EP is a release from his band Danger Third Rail.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;motivation-music&quot;,&quot;rationale&quot;:&quot;Elaborates on his framework for motivation to make music for Danger Third Rail.&quot;},{&quot;slug&quot;:&quot;nike-the-shit-out-of-it&quot;,&quot;rationale&quot;:&quot;Discusses his struggle to finish and publish songs, closely related to this node&#39;s theme.&quot;},{&quot;slug&quot;:&quot;fake-it-music&quot;,&quot;rationale&quot;:&quot;Explores the difficulty of writing/recording songs as a solo musician.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1050,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:1114,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:529},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;blog/pandemic-weary&quot;,&quot;fileSlug&quot;:&quot;pandemic-weary&quot;,&quot;title&quot;:&quot;Pandemic Weary&quot;,&quot;content&quot;:&quot;&#92;nI&#39;m not sure if I&#39;m actually depressed. I&#39;ve been clinically depressed in the past and this doesn&#39;t feel quite exactly like that. I may just be &#92;&quot;pandemic weary&#92;&quot;.&#92;n&#92;nI&#39;m ricocheting back and forth between dread at being logged in to work, to extreme boredom when I&#39;m not. I recall a time, once, when maybe I had interests and activities to look forward to pursuing. I even remember what they were, as the ghosts of these projects still exist on my computer or in my notes. A lot of the time I just feel tired, mentally mostly. It doesn&#39;t feel like it&#39;s worth it to do anything, even as I struggle with a lack of anything to do.&#92;n&#92;nI&#39;ll sit down at my computer, which is full of promise. I&#39;ll have some vague idea that I&#39;ll find something entertaining there. Or something informative. Or some hobby to dabble in. But less than 5 minutes after sitting down and checking my email once again (still nothing but ads), I realize that it&#39;s an empty shell. The computer has nothing to offer me, because nothing external can ease the internal angst I&#39;m feeling.&#92;n&#92;nI marvel at my wife&#39;s ability to click another YouTube video. Usually after managing to watch a YouTube video, the last thing I&#39;d want to do is sit through another. In my imagination, she&#39;s just going through the motions, lost as I am, eyes glazed over as the video plays on her screen. I might not be too far from the truth.&#92;n&#92;nWhat is to be done with these feelings? I think the first thing is to document them, which I&#39;m attempting to do here. Unfortunately, that&#39;s as far as I&#39;ve gotten and I have no idea what the second step is.&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;YouTube&quot;,&quot;anchor_text&quot;:&quot;YouTube video&quot;,&quot;context&quot;:&quot;I marvel at my wife&#39;s ability to click another YouTube video&quot;,&quot;rationale&quot;:&quot;Directly references YouTube, which has a dedicated node in the garden.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;coping-skills&quot;,&quot;rationale&quot;:&quot;This node grapples with painful feelings and asks what to do with them, which coping-skills directly addresses.&quot;},{&quot;slug&quot;:&quot;empty-mind&quot;,&quot;rationale&quot;:&quot;Both explore mental emptiness and the inability to find creative motivation.&quot;},{&quot;slug&quot;:&quot;DBT&quot;,&quot;rationale&quot;:&quot;The therapeutic framework of DBT relates to the emotional documentation and coping approach described here.&quot;},{&quot;slug&quot;:&quot;getting-nothing-done&quot;,&quot;rationale&quot;:&quot;Shares the theme of struggling to do anything despite having a lack of anything to do.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:562,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:398,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:119},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;blog/q-poker-in-progress&quot;,&quot;fileSlug&quot;:&quot;q-poker-in-progress&quot;,&quot;title&quot;:&quot;Q Poker: in progress&quot;,&quot;content&quot;:&quot;&#92;nWhen I wrote [[blog/making-a-computer-game|that post]] about making a computer game, I seem to have left out one of the major projects I&#39;ve been working on for the past year or so, which is Q Poker.&#92;n&#92;nQ Poker is envisioned as an online poker site, with play money (coins), that hosts games other than Texas Hold&#39;em. The first game I&#39;ve been implementing is [Razz](&lt;https://en.wikipedia.org/wiki/Razz_(poker)&gt;) (7 card stud lowball) and you can see some of the in progress results in this screenshot:&#92;n&#92;n![Screenshot of online poker game](https://i.imgur.com/DYO6M0ol.png)&#92;n&#92;nSo far, the things I&#39;ve got working are:&#92;n&#92;n- Backend game logic, in Python, where you can start and finish Hands (of Razz).&#92;n  -- Includes check/bet/raise/fold logic for all players.&#92;n- Logic in Python for a &#92;&quot;Table&#92;&quot; which is where the hands get played out.&#92;n- Asynchronous logic in Python for sending game updates to the client, when things of interest happen. For example, the web client doesn&#39;t have to &#92;&quot;poll&#92;&quot; the game state, it receives `socketio` events when someone performs an action.&#92;n- ReactJS frontend app which responds to and displays the Table state changes from the backend.&#92;n- Frontend allows users to take actions, communicates with backend.&#92;n&#92;nThings I still need to work on include:&#92;n&#92;n- Proper registration system with emailing, password reset, etc.&#92;n- Proper accounting of User bankrolls, aka debits when sitting down at a table and credits when standing up. (This kind of scares the crap out of me but at least it&#39;s not real money!)&#92;n- Timer for player actions.&#92;n- Disconnect handling. User sits out N hands, then gets kicked from the table (for what value of N?)&#92;n- Ability to create (private?) tables and invite friends to them&#92;n- Landing page&#92;n&#92;nWith all that in place, I think I could actually maybe go to an open beta and see if anyone wants to play. Actually what I was really thinking was that I could program some kind of bots that players could play against. I&#39;ve got bots now, but they just make a random action out of the available options which is really frustrating and not a good experience.&#92;n&#92;nI&#39;ve studied some of the techniques of the [Pluribus poker bot](https://www.pokernews.com/news/2019/07/pluribus-first-ai-to-beat-humans-in-multiplayer-no-limit-34910.htm) that came out this time last year. I even paid for access to the paper they published. Sadly, like many results in science nowadays, it doesn&#39;t seem like the results are fully reproducible just from what&#39;s in the paper, but maybe I&#39;m just too dumb to understand it (fully possible!).&#92;n&#92;nI&#39;ve actually got a basic implementation of counterfactual regret minimization (CFR), the algorithm used by Pluribus, implemented for toy game theory examples like [Kuhn Poker](https://en.wikipedia.org/wiki/Kuhn_poker). I&#39;m having a hard time generalizing it to Razz though.&#92;n&#92;nIf I could get it working, I think it might be fun for players to start a table with 1 or 2 friends and 1 or 2 bots. The point is that there is literally NOWHERE to play Razz online (and in general nowhere to play it live either, even before COVID), so there must be at least some pent up demand for something like this.&#92;n&#92;nIf things go well with Razz, I&#39;d like to implement other &#92;&quot;mixed&#92;&quot; games, like Omaha 8, Pineapple/Crazy Pineapple, Big O, and maybe some of the weirder games we&#39;ve played in the Reno Atlantis mixed game, like Drawmaha.&#92;n&#92;nThis isn&#39;t something that I&#39;ve started and shelved. I&#39;m actively working on it. In fact, I just spent the past week implementing Table/Hand persistence for the backend, so that it can load a table when a user takes an action, then persist the changes to the table.&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;Python&quot;,&quot;anchor_text&quot;:&quot;Backend game logic, in Python&quot;,&quot;context&quot;:&quot;Backend game logic, in Python, where you can start and finish Hands&quot;,&quot;rationale&quot;:&quot;The node repeatedly discusses implementing game logic in Python, which has its own dedicated node.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;Abby&quot;,&quot;rationale&quot;:&quot;Abby&#39;s node references this project and mentions the trips to Reno where the mixed games that inspired Q Poker were played.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1274,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:358,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:196},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;blog/random-knowledge-about-javascript-and-typescript&quot;,&quot;fileSlug&quot;:&quot;random-knowledge-about-javascript-and-typescript&quot;,&quot;title&quot;:&quot;Random knowledge about Javascipt and Typescript&quot;,&quot;content&quot;:&quot;&#92;nJavascript is a programming language that is used primarily on the web. It is interpreted by web browsers in order to process and display data on web pages. Javascript is also known as ECMAScript, after the standard that encompasses a formal definition of the language.&#92;n&#92;nIn 2018, Javascript usage goes beyond the web itself and includes many so-called &#92;&quot;backend&#92;&quot; applications, written in frameworks such as Node.js. Many people learn Javascript as their first programming language, while working on websites and the web. Javascript is also known to be a somewhat frustrating language to work with, because it lacks certain features such as &#92;&quot;static typing&#92;&quot;. One variation of Javascript that includes type information is called, appropriately, Typescript. Typescript was developed by engineers at Microsoft in order to create a version of Javascript that includes type information.&#92;n&#92;nThe &#92;&quot;type&#92;&quot; of a variable or function is basically the format of the information that it contains or returns. The number 123 is a &#92;&quot;number&#92;&quot; in this sense, whereas the letters &#92;&quot;abc&#92;&quot; are considered a &#92;&quot;string&#92;&quot;. By assigning data types to your variables, you can automatically check whether or not you are passing the right &#92;&quot;type&#92;&quot; of thing into a function or method. So for example, what if you had a Person object that had a setName method? You wouldn&#39;t want to set the person&#39;s name to a number, or to an Array. You&#39;d want to set it to a string. The Typescript compiler can let you know when you&#39;ve accidentally tried to pass such nonsense to a function that doesn&#39;t accept it.&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;javascript-typescript&quot;,&quot;anchor_text&quot;:&quot;Typescript&quot;,&quot;context&quot;:&quot;One variation of Javascript that includes type information is called, appropriately, Typescript.&quot;,&quot;rationale&quot;:&quot;This directly names the Javascript/Typescript node which covers the same topic in depth.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;programming languages&quot;,&quot;rationale&quot;:&quot;The meta node ties together all the programming language nodes, including Javascript/Typescript.&quot;},{&quot;slug&quot;:&quot;what-programming-language-should-i-learn&quot;,&quot;rationale&quot;:&quot;Discusses choosing languages like Javascript, relevant to a beginner-oriented explanation of Javascript/Typescript.&quot;},{&quot;slug&quot;:&quot;what-is-a-web-application&quot;,&quot;rationale&quot;:&quot;Elaborates on web technologies where Javascript is used to add dynamic functionality.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:516,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:412,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:143},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;blog/read-before-you-write&quot;,&quot;fileSlug&quot;:&quot;read-before-you-write&quot;,&quot;title&quot;:&quot;Read before you write&quot;,&quot;content&quot;:&quot;&#92;nI&#39;ve read Stephen King&#39;s book _On Writing_, and it&#39;s pretty interesting. I think you could almost boil King&#39;s advice down to a Nike-esque &#92;&quot;just do it&#92;&quot;, but there&#39;s one nuance to what he suggests that definitely sticks with me. That to be a writer, you have to be a reader.&#92;n&#92;n&gt; If you don’t have time to read, you don’t have the time (or the tools) to write. Simple as that.&#92;n&gt;&#92;n&gt; - Stephen King&#92;n&#92;nI certainly &#92;&quot;have time&#92;&quot; to read. But I also don&#39;t invest much time at all in it. I don&#39;t choose reading as a preferred activity. In fact, it took me almost two years to finish James S. A. Corey&#39;s _Leviathan Wakes_ (book one of _The Expanse_ novels). Most of that time was spent, of course, not reading. So according to King&#39;s logic, I can&#39;t be a writer.&#92;n&#92;nI also think this extends to to other media. I write on this blog endlessly about my aspirations to write and produce original music. But do I spend enough time listening to new and original music (reading)? I certainly listen to plenty of music throughout the week, but most of it is stuff that I&#39;ve heard before, put on in the background to help me get through a coding session.&#92;n&#92;nI&#39;m not sure I can, by force of will, make myself into someone who critically listens to tons and tons of music. It certainly seems like, when you read the biographies of most successful musicians, they are steeped heavily in the music of their times, the times before, and perhaps their &#92;&quot;scene&#92;&quot;.&#92;n&#92;nIt seems similar to the observation that the most intelligent among us are generally the most &#92;&quot;intellectually curious&#92;&quot;. But you can&#39;t really force the latter in order to make inroads on the former, can you?&#92;n&#92;nOr maybe all of this is just a big excuse to not write music, or write blog posts, or write anything. Maybe I want an &#92;&quot;out&#92;&quot; so that I don&#39;t have to be creative, so that I don&#39;t constantly feel like I&#39;m failing at my creative calling.&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;nike-the-shit-out-of-it&quot;,&quot;anchor_text&quot;:&quot;Nike-esque &#92;&quot;just do it&#92;&quot;&quot;,&quot;context&quot;:&quot;boil King&#39;s advice down to a Nike-esque &#92;&quot;just do it&#92;&quot;, but there&#39;s one nuance&quot;,&quot;rationale&quot;:&quot;This node explicitly discusses the &#39;just do it&#39; songwriting mentality.&quot;},{&quot;slug&quot;:&quot;listening-to-music-while-doing-things&quot;,&quot;anchor_text&quot;:&quot;put on in the background to help me get through a coding session&quot;,&quot;context&quot;:&quot;most of it is stuff that I&#39;ve heard before, put on in the background to help me get through a coding session&quot;,&quot;rationale&quot;:&quot;That node is directly about listening to music while coding/doing things.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;genre-thoughts&quot;,&quot;rationale&quot;:&quot;Explores the connection between the music you listen to and the music you write, elaborating the &#39;reading before writing&#39; idea for music.&quot;},{&quot;slug&quot;:&quot;font-of-creativity&quot;,&quot;rationale&quot;:&quot;Touches on the inner drive to create and whether creativity can be forced, mirroring this node&#39;s self-doubt.&quot;},{&quot;slug&quot;:&quot;nike-the-shit-out-of-it&quot;,&quot;rationale&quot;:&quot;Extends the &#39;just do it&#39; songwriting theme referenced here about aspiration versus actual output.&quot;},{&quot;slug&quot;:&quot;something-terrible&quot;,&quot;rationale&quot;:&quot;Addresses giving oneself permission to create rather than making excuses not to, complementing the closing worry about avoiding creativity.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:636,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:723,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:273},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;blog/side-quests-of-life&quot;,&quot;fileSlug&quot;:&quot;side-quests-of-life&quot;,&quot;title&quot;:&quot;Side quests of life&quot;,&quot;content&quot;:&quot;&#92;nI feel like I could get addicted to writing the way that some people get addicted to video games. Like, &#92;&quot;You just wrote for over an hour, why do you still feel the desire to keep writing?&#92;&quot;. Of course at this point I&#39;m kind of like a character in an RPG who is max level and doesn&#39;t feel like doing the [side quests](https://tvtropes.org/pmwiki/pmwiki.php/Main/Sidequest). Not that I&#39;ve really earned anything close to max level in writing/blogging, besides having done it especially sporadically since 2003. Maybe it&#39;s like [EVE Online](https://www.eveonline.com/) where you earn experience constantly, even when offline, just by checking in on it every once in a while.&#92;n&#92;nIs there a word for that in video games, the side quest thing, when you really want to play a game but can&#39;t think of anything fun to do in it? I think that&#39;s the essential reason why a game like [Rocket League](https://www.rocketleague.com/) doesn&#39;t get stale. Because it&#39;s always the same thing, so you don&#39;t really expect anything more from it. Whereas, a game like Grand Theft Auto, you get various interesting missions throughout the course of the game, but in the endgame its kind of just the sandbox that it was the whole time.&#92;n&#92;nYou know, I tried my hand at professional scissors, but I just couldn&#39;t make the cut. (Sorry, it popped into my head and I couldn&#39;t help myself.) I actually saw a Karate Studio and was trying to think of a karate pun. I&#39;m sure you would have gotten a kick out of that! (sorry)&#92;n&#92;nI just had an Elon Musk level idea, as I saw a man with a &#92;&quot;please help&#92;&quot; sign. Like, could you find a way to A/B test signs so that you can find the text with the most earning potential? Oh god, what is wrong with me. I am truly the tech bro elite, paving the forests of our imaginations with Machine Learning and Big Data.&#92;n&#92;nI like this anecdote I heard about Paul McCartney and the song &#92;&quot;Hello, Goodbye&#92;&quot;. I read it on Quora, but I&#39;ll just recall it from memory rather than dig up the link. Someone asked Sir Paul how he writes so many songs, and McCartney answered that anyone could write a song about anything. He then asked if the person who inquired would like to try it with him right now. That person answered that he or she had to go, so didn&#39;t have the time at the moment. &#92;&quot;You say goodbye, and I say hello!&#92;&quot; was McCartney&#39;s reply.&#92;n&#92;nReally inspiring stuff. Paul McCartney, there&#39;s someone who&#39;s at max level.&#92;n&#92;nI generally don&#39;t give too much credence to song lyrics. Sometimes they can be spot on, sometimes they are inspiring, sometimes they are evocative and very creative. But I don&#39;t think you have to be Dylan to make music with lyrics. Generally any sufficiently interesting phrase can be coerced into a lyric. I saw a YouTube video that talked about this and used the JFK &#92;&quot;Ask not what your country can do for you, ask what you can do for your country&#92;&quot; as an example. Like, think about the relative cadence and pacing of that phrase. It has a musicality all of its own, does it not? I agree with Paul McCartney: any phrase can be similarly massaged into musicality.&#92;n&#92;nOne question that always bothered me though is like, Paul McCartney is still here right? So why hasn&#39;t he had a hit song in 35 years?&#92;n&#92;n&gt; Say Say Say&#92;n&gt; Paul McCartney And Michael Jackson&#92;n&gt; Peaked at #1 on 12.10.1983&#92;n&#92;nHave his song writing skills atrophied? He doesn&#39;t have the right people around him? The world of musical fashion/style has passed him by? He can&#39;t sing anymore?&#92;n&#92;nThere are myriad possible answers, and it&#39;s something I wonder about all the time.&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;songwriting-reflections&quot;,&quot;rationale&quot;:&quot;This node&#39;s discussion of McCartney&#39;s claim that any phrase can be massaged into a lyric elaborates on ideas about crafting songs and lyricality.&quot;},{&quot;slug&quot;:&quot;good-song&quot;,&quot;rationale&quot;:&quot;The musings on what makes a hit and how lyrics work connect to the notion that a good song is a good song regardless of source.&quot;},{&quot;slug&quot;:&quot;font-of-creativity&quot;,&quot;rationale&quot;:&quot;The opening about getting addicted to writing and the urge to keep creating parallels reflections on the compulsion to create.&quot;},{&quot;slug&quot;:&quot;the-chain&quot;,&quot;rationale&quot;:&quot;The EVE Online &#39;earn experience just by checking in&#39; analogy relates to habit-building and streak strategies discussed there.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1226,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:495,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:239},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;blog/something-terrible&quot;,&quot;fileSlug&quot;:&quot;something-terrible&quot;,&quot;title&quot;:&quot;Something Terrible&quot;,&quot;content&quot;:&quot;&#92;nI&#39;m tutoring two separate students in Ableton Live and Digital Music Production now. It&#39;s very rewarding to talk through all the things I&#39;ve learned in my two decades (!) of making music digitally, and especially to see their eyes light up (over video chat) when something that I&#39;m explaining finally clicks.&#92;n&#92;nOne of my students was having trouble with writer&#39;s block of sorts, so I gave him what I called the Make Something Terrible Challenge. I came up with it on the spot, so the details were scant, but it basically amounted to &#92;&quot;Give yourself permission to create, and actively attempt to create, something truly terrible&#92;&quot;.&#92;n&#92;nI think this is actually pretty common advice for people experiencing writer&#39;s block, at least the first part. Don&#39;t just &#92;&quot;write anything&#92;&quot;, give yourself permission to create something truly terrible. But I think I cranked up the intensity when I started talking about _actively_ creating terribleness.&#92;n&#92;nNow of course, I could run fingernails on a chalkboard and point a microphone at it, or mumble incoherently into a microphone for 12 minutes, or all sorts of other things that barely constitute music. But I think the spirit of the challenge is to work in the medium or genre that you&#39;re already working in.&#92;n&#92;nI told the student that I would try it too, to reassure him. I tried it tonight and I&#39;m here to report on the results.&#92;n&#92;nFirstly, I won&#39;t make you listen to what I came up with, mostly because I don&#39;t want this blog post just to be a vehicle for pushing some demo music that I spent 40 minutes on.&#92;n&#92;nWhen I started creating the electronic music track for my #MSTC I thought I was winning. &#92;&quot;This is bad!&#92;&quot; I thought, &#92;&quot;This really sucks!&#92;&quot; I was doing well, at least at first.&#92;n&#92;nBut as I tweaked a knob here and added an effect there, purely by habit, I started to lose the thread. I realized about 30 minutes in that I had created something that sounded _shockingly similar to my non-terribly intended tracks_.&#92;n&#92;nThis is an existential crisis, you see. Either I&#39;m unable to give myself permission to make terrible music, or all my music is actually terrible.&#92;n&#92;nOf course, it worked perfectly as a way to get out of writer&#39;s block. I didn&#39;t spend any time pondering what I should make, because &#92;&quot;the first thing that pops into my head&#92;&quot; was bound to be Something Terrible™. I breezed right past the point where I might normally say, &#92;&quot;This sucks, I&#39;m quitting-dont-save&#92;&quot;, because of course, I was making Terribleness. And I wound up in an uncanny valley of not-so-terrible, purely by accident.&#92;n&#92;nThe exercise raised two questions in me:&#92;n&#92;n1. Could I actually make something terrible if I tried harder? (Inspiration to try again)&#92;n2. What if all those times I had rage quit the music process, I had hung on a bit longer?&#92;n&#92;nI&#39;ll certainly be pondering this the next time I fire up Live.&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;ableton&quot;,&quot;anchor_text&quot;:&quot;Ableton Live&quot;,&quot;context&quot;:&quot;I&#39;m tutoring two separate students in Ableton Live and Digital Music Production now&quot;,&quot;rationale&quot;:&quot;Ableton Live is the subject of a dedicated node and is mentioned unlinked here.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;not-quite-writers-block&quot;,&quot;rationale&quot;:&quot;That node explicitly references this &#39;Something Terrible&#39; post and elaborates on the writer&#39;s block theme.&quot;},{&quot;slug&quot;:&quot;font-of-creativity&quot;,&quot;rationale&quot;:&quot;Explores the compulsion and difficulty of creativity, complementing the permission-to-create idea here.&quot;},{&quot;slug&quot;:&quot;empty-mind&quot;,&quot;rationale&quot;:&quot;Deals with creative blockage and inability to produce music/writing, directly relevant to writer&#39;s block.&quot;},{&quot;slug&quot;:&quot;motivation-music&quot;,&quot;rationale&quot;:&quot;Discusses motivation for making music, related to overcoming the urge to quit mid-process.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:926,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:627,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:315},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;blog/songwriting-reflections&quot;,&quot;fileSlug&quot;:&quot;songwriting-reflections&quot;,&quot;title&quot;:&quot;Songwriting Reflections&quot;,&quot;content&quot;:&quot;&#92;nMelancholy feelings and minor keys are both more appealing to me than their respective alternatives, at least when put into the employ of art and music. For some reason, a &#92;&quot;happy&#92;&quot; song with &#92;&quot;happy&#92;&quot; lyrics seems vapid and dull to me. I want to get at the deep stuff underneath. Major keys seems to scream of a kind of [phatic expression](https://en.wikipedia.org/wiki/Phatic_expression), a platitude of nothingness. &#92;&quot;Fine, thank you&#92;&quot;. &#92;&quot;Good afternoon, sir&#92;&quot; they exclaim.&#92;n&#92;nMaybe that&#39;s why I like power chords so much in my music, because they&#39;re ambiguous as to their tonality. Are they major chords? Minor chords? Without a third, they are neither. They&#39;re open to interpretation. Now I&#39;ll admit, some songs by say [The Descendents](https://en.wikipedia.org/wiki/Descendents) are a bit too fast and loose with their tonality (they&#39;re certainly fast!). Descendents songs seem to give me a kind of whiplash with all the modulation and lack of a tonal center.&#92;n&#92;nI&#39;ve heard tonality in Western music described as a journey. You start at the tonic, you go on a journey to the four chord, reach a bit further to the fifth, and then, when you can&#39;t stand it anymore, you gratefully return back to the tonic. Even chords like the minor two or the minor six share the tonality of the tonic, the one chord, so that going I - VI isn&#39;t so much a journey as a re-imagining of what&#39;s already there. &#92;&quot;Here I am&#92;&quot; says the one chord, &#92;&quot;But it&#39;s a bit different now,&#92;&quot; finishes the six chord.&#92;n&#92;nWhen I was first learning to play guitar, I was a big fan of Dave Matthews Band. I tried to learn as many of their songs as a could, and of course I was often frustrated by the quick and intricate guitar melodies and unique chord shapes. I simply wasn&#39;t good enough to play that music. Then I took a hard left the other way, and found the basic harmonic chords that made up songs and would just strum the chords while I sang the songs. But this kind of acoustic guitar treatment often robs songs of the rhythmic and melodic textures that make them so interesting, not to mention the complexities of the arrangements themselves.&#92;n&#92;nNonetheless, I still hold on to this picture of songs as a lead sheet, as a series of chords on a page with some lyrics scribbled underneath. And I&#39;ve never been a believer of the importance of lyrics in songs. It&#39;s just not me. Most people will tell you that the lyrics are the single most important thing, they&#39;re what people hear and process and remember. But for me, I always though the &#92;&quot;music&#92;&quot; was more important. Unfortunately, the music for me has always just meant the basic acoustic guitar chords, where clearly that&#39;s not how most rock, pop and especially not EDM music works.&#92;n&#92;nIf you listen to many pop songs on the radio today, they are quite minimalist. Often the vocalist is singing over a simple drum loop or bass line or both and that&#39;s it. Yet these songs work.&#92;n&#92;nI guess I&#39;m just reflecting on some aspects of my own song writing here, but maybe someone else will find it enjoyable to read or informative in some way. Cheers!&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;genre-thoughts&quot;,&quot;rationale&quot;:&quot;Discusses the tension between the rock/pop music he listens to and how songs are actually constructed, directly extending these reflections.&quot;},{&quot;slug&quot;:&quot;good-song&quot;,&quot;rationale&quot;:&quot;Explores what makes a good song, folk songwriting, and the primacy of the song itself, deepening this node&#39;s musings.&quot;},{&quot;slug&quot;:&quot;fake-it-music&quot;,&quot;rationale&quot;:&quot;Continues the theme of arranging and writing all the parts of a song versus basic chord treatments.&quot;},{&quot;slug&quot;:&quot;motivation-music&quot;,&quot;rationale&quot;:&quot;Offers a related framework on writing/producing music for his own project, complementing these songwriting reflections.&quot;},{&quot;slug&quot;:&quot;not the circumstances&quot;,&quot;rationale&quot;:&quot;Also centers on a Dave Matthews Band lyric, connecting to the Dave Matthews reference here.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1055,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:689,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:404},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;blog/the-chain&quot;,&quot;fileSlug&quot;:&quot;the-chain&quot;,&quot;title&quot;:&quot;The Chain&quot;,&quot;content&quot;:&quot;&#92;nYou might have heard of [the](https://jamesclear.com/stop-procrastinating-seinfeld-strategy) [so-called](https://medium.com/@MrBuzzFactor/jerry-seinfelds-productivity-hack-don-t-break-the-chain-8d1944b8323d) [Seinfeld](https://www.writersstore.com/dont-break-the-chain-jerry-seinfeld/) [Strategy](https://nickwignall.com/seinfeld-strategy/) for sticking to something and building a habit.&#92;n&#92;nYou don&#39;t have to click all those links, I&#39;m of course going to explain it. Basically, you buy a big wall calendar and every day you do the thing you&#39;re supposed to do (practice an instrument, write in your journal, work on a YouTube video), you get to put a big red X through that day. After a few days to a week, you have a &#92;&quot;chain&#92;&quot; of unbroken X&#39;s. Supposedly, you will find that the desire to procrastinate, the perceived pain of working on your project, is overcome simply by your desire to &#92;&quot;not break The Chain&#92;&quot;.&#92;n&#92;nI bring this up solely because 2 weeks ago I realized I had blogged about once a week for a few weeks. I felt pretty good about that! Then I blogged again last week. Then this week: well, I didn&#39;t think I had anything to blog about.&#92;n&#92;nBut I didn&#39;t want to break &#92;&quot;The Chain&#92;&quot; even though I don&#39;t have a real or even virtual calendar where I&#39;m keeping track of it. So I decided to write this small post explaining what The Chain is.&#92;n&#92;nI&#39;d love to commit to The Chain, and I&#39;m not sure what&#39;s stopping me. I think it&#39;s not the effort or time it takes to write blog posts. I&#39;m completely onboard with offering that much. I think it&#39;s the fact that I&#39;ve tried to consistently blog before, and it always ends in so many tears. The added fact that I will have broken The Chain makes me feel like it will be harder to then, once again like so many times before, resume blogging to any degree.&#92;n&#92;nActually if I could commit to only writing 1/4 of my blog posts about blogging itself, that would be an improvement. Maybe when I feel like The Chain is being strained (Don&#39;t Strain The Chain, Gang), I could just cop out and blog about blogging.&#92;n&#92;nI have to also take this opportunity to point out that the name of this blog is YABIWU -- _Yet Another Blog I Won&#39;t Update_. Am I proving myself wrong? Probably only temporarily.&#92;n&#92;n---&#92;n&#92;nSo has anyone successfully used The Chain? As always I&#39;m Travis Briggs, of [travisbriggs.com](https://travisbriggs.com) fame. If you&#39;d like to comment on this post you can do so on Mastodon (@audiodude@layer8.space) or Twitter (@audiodude) or send me an email at audiodude@gmail.com.&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;blogging-but-this-time-with-blogging&quot;,&quot;anchor_text&quot;:&quot;blog about blogging&quot;,&quot;context&quot;:&quot;I could just cop out and blog about blogging&quot;,&quot;rationale&quot;:&quot;This node is specifically about the recurring habit of blogging about blogging itself.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;getting-nothing-done&quot;,&quot;rationale&quot;:&quot;Discusses procrastination and productivity systems, directly relevant to the Seinfeld Strategy for overcoming procrastination.&quot;},{&quot;slug&quot;:&quot;more-about-blogging&quot;,&quot;rationale&quot;:&quot;Elaborates on the author&#39;s persistent desire and difficulty with consistent blogging.&quot;},{&quot;slug&quot;:&quot;intrisic motivation&quot;,&quot;rationale&quot;:&quot;The chain habit and desire to keep blogging relates to the author&#39;s exploration of what motivates him.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:935,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:579,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:271},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;blog/the-unattainable-and-the-attainable&quot;,&quot;fileSlug&quot;:&quot;the-unattainable-and-the-attainable&quot;,&quot;title&quot;:&quot;The Unattainable and the Attainable&quot;,&quot;content&quot;:&quot;&#92;nSome bands/songs/albums seem unattainable. Like, I could never make something that good no matter what. Weezer&#39;s _Blue Album_ comes immediately to mind. Not to mention the elite pantheon of something like _The Dark Side Of The Moon_.&#92;n&#92;nBut other albums, some of my favorites, I sometimes think &#92;&quot;Yeah, I could do that&#92;&quot;. I&#39;m talking Green Day _Insomniac_ or Fall Out Boy _From Under The Cork Tree_.&#92;n&#92;nThe latter was produced by [Neal Avron](https://en.wikipedia.org/wiki/Neal_Avron) who co-produced Everclear&#39;s _So Much For The Afterglow_ which remains one of the [[best albums in the universe]]. He also produced some New Found Glory albums, a Weezer album, and _Blurryface_ by Twenty One Pilots, the latter of which I love for its eclectic style (it has ukulele prominently on several songs, despite the main hits being more like hip hop songs). I think I have a new producer crush.&#92;n&#92;nI think to myself - if I had the money, the producer, the studio and.....hmmm....the bandmates probably - I could make a record like this.&#92;n&#92;nSo the real first thing I&#39;m missing is the band, to be realistic. I would definitely need a drummer. Probably need a bassist too, which would put me in &#92;&quot;punk rock trio&#92;&quot; territory. But I&#39;m not a good enough guitarist to carry everything myself, so we would need either a lead guitarist or a keyboard player to round things out.&#92;n&#92;nThat&#39;s a lot of people to pay in a world where musicians make on average less and less each year.&#92;n&#92;nMaybe the question isn&#39;t &#92;&quot;Could I make this record if I had all the resources in the world?&#92;&quot; but &#92;&quot;Could I **write** this record in my recording studio/kitchen today?&#92;&quot; I think that&#39;s a more salient question to ask. I may not be able to play any drum parts, most bass lines, and barely any lead guitar parts. But could I &#92;&quot;fake it &#39;till I make it&#92;&quot; with what I have, and at least write the songs that would be on _Insomniac 2_.&#92;n&#92;nOne idea I have is that for my punk numbers, I need to record multiple guitars. Even if they&#39;re playing the same chords, I could play the chords up on the neck a bit, with a different rhythm, with a different guitar timbre and different overdrive effects etc. Just to give some variation to the tunes. I think this would help a lot.&#92;n&#92;nAnother idea is that I should embrace my electronic music production/chiptune skills, and try to make a record, like _Blurryface_, which works despite being ridiculously eclectic. So far I&#39;ve added lots of shiny synths to punk rock tracks and called it my &#92;&quot;signature sound&#92;&quot;. But I bet I can go past that.&#92;n&#92;nAlso I will say it here to immortalize it for all time. It&#39;s not New Found Glory&#39;s &#92;&quot;lyrics&#92;&quot; per se that I don&#39;t like about them. It&#39;s not their &#92;&quot;melodies&#92;&quot; either really, those are fine. It&#39;s more of the lack of prosody. There&#39;s no vocal hooks, lines that set each other up, that work like a poem, lyrically, unfolding and revealing a catchy whole. It just sounds like a bunch of rhythmic whining. But I love the music, always have.&#92;n&#92;nWhich makes me think, I haven&#39;t always given much credit to lyricism in music. I know, intellectually, that most people can think of only the words to a song, sometimes the rhythm, sometimes the melody. People think of lyrics first. Yet I&#39;ve always thought lyrics aren&#39;t that important and I&#39;ve let it show in my songwriting. I need to reverse that thinking, and put big, shiny, lyrical hooks front and center in the next songs that I write.&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;recording-setup&quot;,&quot;anchor_text&quot;:&quot;my recording studio/kitchen today&quot;,&quot;context&quot;:&quot;Could I **write** this record in my recording studio/kitchen today?&quot;,&quot;rationale&quot;:&quot;Directly references his home recording setup, which has a dedicated node.&quot;},{&quot;slug&quot;:&quot;fake-it-music&quot;,&quot;anchor_text&quot;:&quot;fake it &#39;till I make it&quot;,&quot;context&quot;:&quot;could I &#92;&quot;fake it &#39;till I make it&#92;&quot; with what I have&quot;,&quot;rationale&quot;:&quot;This phrase is the title/subject of a node about faking parts to write songs solo.&quot;},{&quot;slug&quot;:&quot;bands-as-sports-teams&quot;,&quot;anchor_text&quot;:&quot;the band&quot;,&quot;context&quot;:&quot;So the real first thing I&#39;m missing is the band, to be realistic&quot;,&quot;rationale&quot;:&quot;Discussion of needing bandmates connects to his node on bands and roles.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;songwriting-reflections&quot;,&quot;rationale&quot;:&quot;His reflections on lyricism, prosody, and melody deepen the closing thoughts about lyrical hooks.&quot;},{&quot;slug&quot;:&quot;danger-third-rail&quot;,&quot;rationale&quot;:&quot;His recording project provides context for wanting to make a full-band record himself.&quot;},{&quot;slug&quot;:&quot;motivation-music&quot;,&quot;rationale&quot;:&quot;His music-making motivation node relates to feeling certain albums are attainable vs unattainable.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1205,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:606,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:167},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;blog/untitled-2020-06-15&quot;,&quot;fileSlug&quot;:&quot;untitled-2020-06-15&quot;,&quot;title&quot;:&quot;Untitled 2020-06-15&quot;,&quot;content&quot;:&quot;&#92;nThe following is the email I sent to iwant@hey.com to convince them to give me an invite.&#92;n&#92;n===&#92;n&#92;nHey,&#92;n&#92;nI don&#39;t go to the gym, and I don&#39;t eat healthy. I don&#39;t call my mom nearly as often as I should. But one thing I do is keep a meticulously manicured email inbox. It&#39;s inspired by, but not quite equivalent to, Inbox Zero.&#92;n&#92;nThis system works great, but there is something of a flaw. It&#39;s not a flaw in the inbox system. Actually, it turns out 80% of the email I get is not only crap, but crap from mailing lists and such that I can easily unsubscribe from anytime. About five years ago, I realized this. I resolved that the very next email I got from some dumb email list that I don&#39;t read, like GAP or iTunes or something, I would immediately unsubscribe. I did this for a few weeks.&#92;n&#92;nPretty soon, as you&#39;d expect, the garbage (not quite junk, not quite spam) emails stopped. Entirely. I stared into the gaping void of a pristine email inbox and did I feel triumph? Did I feel joy? No, I felt dread. More than anything I felt lonely. I realized that some amount of my self worth was tied to the subtle, subconscious idea that I was a real person, with feelings (and at least a credit card) who, in some capacity, was worth emailing. Even if it was an ad or some dumb newsletter I didn&#39;t really want, someone out there _cared_ enough to send it to me. In the isolated, alienated, cyberjunk dystopian present that we live in, that mattered to me.&#92;n&#92;nSo I went back and resubscribed to the newsletters (or at least, stopped unsubscribing to new ones). And I felt better. It&#39;s kind of like those vacuum cleaners with fake noise added so that people believe they&#39;re working (look it up on YouTube).&#92;n&#92;nIt&#39;s not a flaw in the inbox system. No, it never was. The flaw is the frailty of human emotion and the failings of constant attention seeking.&#92;n&#92;nI’d like to try Hey, because I’d like to maybe finally come to grips with those feelings, that flaw.&#92;n&#92;nThanks,&#92;n-Travis&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;YouTube&quot;,&quot;anchor_text&quot;:&quot;YouTube&quot;,&quot;context&quot;:&quot;people believe they&#39;re working (look it up on YouTube).&quot;,&quot;rationale&quot;:&quot;Direct mention of YouTube, which has a dedicated node in the garden.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;intrisic motivation&quot;,&quot;rationale&quot;:&quot;This node&#39;s theme of self-worth tied to attention-seeking directly relates to the discussion of extrinsic motivation (likes, recognition, appreciation from others).&quot;},{&quot;slug&quot;:&quot;dg-solo&quot;,&quot;rationale&quot;:&quot;Both explore the tension of wanting attention/feedback from others versus existing independently of external validation.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:740,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:483,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:268},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;blog/what-is-a-web-application&quot;,&quot;fileSlug&quot;:&quot;what-is-a-web-application&quot;,&quot;title&quot;:&quot;What is a web application?&quot;,&quot;content&quot;:&quot;&#92;nThis post attempts to answer the question posed in the title. It is aimed at beginning or aspiring web developers, or even those who aren&#39;t developers but wish to gain a deeper understanding of the terminology. Web applications versus static websites versus dynamic websites will be discussed.&#92;n&#92;nWhat is a web application? Generally a web application is considered to be any website which has advanced or dynamic functionality which allows users to complete tasks or view or enter data. So for example, the websites at www.facebook.com and twitter.com are web applications. That&#39;s not to say that Facebook and Twitter themselves are simply web applications. They would in fact probably be considered social media &#92;&quot;platforms&#92;&quot;, since they can be accessed across multiple devices and for a myriad of purposes. Perhaps a better example is [Fandango](https://www.fandango.com/), a web application which allows users to search for movies, find showtimes, and buy tickets. Google is a web application, as is Wikipedia.&#92;n&#92;nA web application is usually classified as such in contrast to a simple **website**. A website is a collection of web pages that can be accessed using a web browser, that usually offers no or limited dynamic interactivity and functionality. A good example is the [homepage of the late Stephen Hawking](http://www.hawking.org.uk). This site provides information that is organized according to a certain method, including text and images. However, there are no tasks that a user could complete on this site. There is no way for end users to enter data.&#92;n&#92;nWebsites can further be classified as **static** or **dynamic**. Put simply, a static site is one that doesn&#39;t change each time it is viewed, such as [this list of bookmarks](http://web.mit.edu/hoffmann/www/bookmarks.html). It&#39;s always the same list, and almost certainly the HTML (code) for this page exists as a single file on a server somewhere. When you request the page using your web browser, the server grabs the file off disk and sends it back to your browser &#92;&quot;as is&#92;&quot;.&#92;n&#92;nA dynamic website, on the other hand, features content that potentially changes every time it is viewed. A good example is [the CNN homepage](https://www.cnn.com/). It&#39;s not a web application, because there&#39;s no interactive way to enter data or complete a task. But it changes by the moment as news stories break or fall out of popularity. When your web browser requests cnn.com, the server doesn&#39;t return a preset file containing the code. Rather, one or more programs run on the server, and the end result (output) of the process is the HTML that gets sent back to your browser.&#92;n&#92;nSo what about that Stephen Hawking site, is it dynamic or static? Well, although the information on it doesn&#39;t change nearly as regularly as cnn.com, it is probably a dynamic website. It is likely that the people who run the Hawking site are using a [Content Management System](https://en.wikipedia.org/wiki/Content_management_system) so they can more easily change and update the page. And so although the site might conceivably be implemented using static files, it is in fact a dynamic site.&#92;n&#92;nThe fact is, almost all website are dynamic. And the most useful ones are actually web applications. Other examples of web applications are Google Calendar, Reddit, and Netflix (which doesn&#39;t allow data entry, but allows for rich searching and filtering features).&#92;n&#92;nHopefully this article was useful, and feel free to send feedback to @audiodude@sfba.social on Mastodon.&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;Rainfall&quot;,&quot;rationale&quot;:&quot;This node discusses static vs dynamic sites; Rainfall is a concrete example of a static site generator that elaborates on the static-site concept mentioned here.&quot;},{&quot;slug&quot;:&quot;what-programming-language-should-i-learn&quot;,&quot;rationale&quot;:&quot;Both nodes are beginner-oriented explainers aimed at aspiring web developers and complement each other well.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1103,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:367,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:218},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;blog/what-programming-language-should-i-learn&quot;,&quot;fileSlug&quot;:&quot;what-programming-language-should-i-learn&quot;,&quot;title&quot;:&quot;What programming language should I learn?&quot;,&quot;content&quot;:&quot;&#92;nA lot of people who want to get into programming ask this question, and it&#39;s not a bad one at all! In this post, I&#39;ll try to examine the question and give a thoughtful answer.&#92;n&#92;nI think this question is analogous to an aspiring musician asking &#92;&quot;Which instrument should I learn?&#92;&quot; The answer depends on your taste and interests. Generally though, I would say the answer is **pick one that interests you and that will allow you to create the projects you want to create**. If you like punk rock music, you should probably pick up drums, bass or electric guitar and not oboe or harp, right? If you&#39;re into data science, think Python or R, but probably not C++ or Perl (side note: with my recent experiences with the language, I don&#39;t think I would recommend _anyone_ learn Perl).&#92;n&#92;nIf a language, like Javascript, piques your interests then go for it! Depending on your goals for your own programming practice, it&#39;s likely you will learn a number of languages as you continue your journey. Don&#39;t feel like the first language you learn will be the only language you learn, or that it will limit your options in the future. Also, if you don&#39;t like Javascript, you probably don&#39;t have to continue learning it. You can put it down for a while and see what else is out there. In fact, I would recommend looking at lots of different languages when you&#39;re first starting out, because then you&#39;re more likely to find one that &#92;&quot;clicks&#92;&quot; and that lets you express the ideas you&#39;re trying to express, or accomplish your tasks better.&#92;n&#92;nIf you&#39;re completely undecided, on the fence, or without any meaningful data points, you should think about which languages are popular. Not that this is a popularity contest, but it stands to reason that programming languages get popular for a reason. They&#39;re probably useful for one or more tasks that lots of people want to get done. Additionally, languages with more popularity are likely to have bigger communities of developers writing blog posts, tools, libraries, and [StackOverflow answers](https://stackoverflow.com/questions/tagged/python). While you&#39;re learning, these can all be amazing resources.&#92;n&#92;nFinally, for my own recommendation, I would personally suggest Javascript or Python. Javascript is great because with a few lines of it you can bend web pages to your will. It&#39;s also available as a &#92;&quot;server side&#92;&quot; language thanks to [NodeJS](https://nodejs.org/). Python, on the other hand, is very general purpose and can be used to write web applications&#92;ntoo (see my last post on [[blog/what-is-a-web-application|&#92;&quot;What is a web application?&#92;&quot;]], process data and images, and nowadays is used for all kinds of Artificial Intelligence and especially Machine Learning projects.&#92;n&#92;nAs I said in the beginning of this post, you should research some languages, maybe try a few out, and ultimately find one that fits your general aesthetic and most importantly that lets you build the projects you want to build. You&#39;re only going to get better at programming with practice, and you&#39;re more likely to practice if you have a significant, meaningful project to work on. If you&#39;re excited to come back to that code editor day after day, you will learn more and faster than any other factor intrinsic to the language.&#92;n&#92;nI hope this helps some people out there!&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;Perl&quot;,&quot;anchor_text&quot;:&quot;Perl&quot;,&quot;context&quot;:&quot;data science, think Python or R, but probably not C++ or Perl&quot;,&quot;rationale&quot;:&quot;Directly references Perl, which has its own node about the author&#39;s negative experiences with it.&quot;},{&quot;slug&quot;:&quot;Python&quot;,&quot;anchor_text&quot;:&quot;Python&quot;,&quot;context&quot;:&quot;for my own recommendation, I would personally suggest Javascript or Python&quot;,&quot;rationale&quot;:&quot;Python is a subject of a dedicated node in the garden.&quot;},{&quot;slug&quot;:&quot;javascript-typescript&quot;,&quot;anchor_text&quot;:&quot;Javascript&quot;,&quot;context&quot;:&quot;If a language, like Javascript, piques your interests then go for it&quot;,&quot;rationale&quot;:&quot;Javascript/Typescript has a dedicated node covering the language.&quot;},{&quot;slug&quot;:&quot;programming languages&quot;,&quot;anchor_text&quot;:&quot;a number of languages&quot;,&quot;context&quot;:&quot;it&#39;s likely you will learn a number of languages as you continue your journey&quot;,&quot;rationale&quot;:&quot;Meta node tying together the programming languages the author knows.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;ai&quot;,&quot;rationale&quot;:&quot;This node mentions Python being used for AI and Machine Learning, which the AI node elaborates on.&quot;},{&quot;slug&quot;:&quot;programming languages&quot;,&quot;rationale&quot;:&quot;The meta node lists and links all languages discussed, extending this post&#39;s recommendations.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1018,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:532,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:103},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;blog-cycle&quot;,&quot;fileSlug&quot;:&quot;blog-cycle&quot;,&quot;title&quot;:&quot;The blog cycle&quot;,&quot;content&quot;:&quot;I just read Shane Friedman&#39;s [account of creating his &#92;&quot;new&#92;&quot; blog](https://smoores.dev/post/what_is_smoores_dev/).&#92;n&#92;nOf course it is the Grand Destiny of any blog to be rebuilt from scratch at about the same cadence as people get new phones. And no, I&#39;m not particularly itching to do that with this digital garden.&#92;n&#92;nBut when I read about how he wants to author posts _in HTML_, I was kind of grossed out. I love Markdown because what I&#39;m authoring is mostly text, and I don&#39;t want to deal with any HTML elements. My templates remain templates, my content remains content, and when the content needs to go into the templates it gets rendered (which I am, I think appropriately, totally picturing in the sense of the term &#92;&quot;meat rendering&#92;&quot;).&#92;n&#92;nThen I thought about how this medium might be limiting me. I tell myself &#92;&quot;My build system makes it hard to include images in posts, but that&#39;s okay I don&#39;t use images&#92;&quot;. But can&#39;t you just flip that around and say &#92;&quot;I don&#39;t use images because my build system makes it hard to include images in posts&#92;&quot;? I especially thought it was cool, in his setup, that he could define reusable custom components that he could place into different articles.&#92;n&#92;nOf course, just because I have a vague feeling that I want to include more images in my garden nodes, it doesn&#39;t mean that I actually have image content to include in such nodes. The best I could probably come up with are screenshots for nodes that maybe explain some concept or otherwise discuss software I&#39;ve built. And what would I use a custom HTML element for anyways?&#92;n&#92;nI think my digital garden could be more &#92;&quot;multimedia&#92;&quot;, definitely, but I&#39;d have to think more about what that would mean in practice.&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;digital-garden-itself&quot;,&quot;anchor_text&quot;:&quot;digital garden&quot;,&quot;context&quot;:&quot;itching to do that with this digital garden&quot;,&quot;rationale&quot;:&quot;The node repeatedly refers to the author&#39;s digital garden, which has a dedicated node.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;considering-moving-blogs&quot;,&quot;rationale&quot;:&quot;Directly elaborates on the impulse to switch blogging platforms discussed here.&quot;},{&quot;slug&quot;:&quot;more-about-blogging&quot;,&quot;rationale&quot;:&quot;Expands on the author&#39;s ongoing relationship with blogging and platform choices like Gemini.&quot;},{&quot;slug&quot;:&quot;blogging-but-this-time-with-blogging&quot;,&quot;rationale&quot;:&quot;Explores the author&#39;s meta-obsession with blogging and the medium&#39;s limitations.&quot;},{&quot;slug&quot;:&quot;plans&quot;,&quot;rationale&quot;:&quot;Discusses aspirations for the digital garden, complementing thoughts on making it more multimedia.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:562,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:554,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:243},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;blog&quot;,&quot;fileSlug&quot;:&quot;blog&quot;,&quot;title&quot;:&quot;Blog Posts&quot;,&quot;content&quot;:&quot;&#92;nI guess if this is my &#92;&quot;digital garden&#92;&quot; then these posts are like potted plants that were already grown that have been moved to the rockier parts of the garden landscape. Or something.&#92;n&#92;n---&#92;n&#92;nImmediately after publishing a blog post in 2017 I came to the conclusion that my blog is basically a liability. It’s well established that no one reads it regularly or even semi-regularly. Almost every post is met with the stark sounds of crickets.&#92;n&#92;nAnd yet, someone Googling “Travis Briggs blog” could find it pretty quickly. And I doubt that what I’ve written would serve for them to form a positive impression of me. Something about staying silent and being thought a fool.&#92;n&#92;nBut on the other hand, I kind of like being the sort of person who is daring enough to put his feelings out there on the Internet. I like that I have a more substantial repository of what’s going on with me than just 140 character snippets, which could easily themselves be just as damning. Part of this is why I eventually paid for a third party service to delete my Twitter posts after 90 days, and why I was very relieved, upon returning to Mastodon, that it had that feature built into new versions.&#92;n&#92;nI hope that a digital garden will provide a more well-rounded view of my digital self, and be less prone to quotation without context.&#92;n&#92;nAlso, watch the fuck out because here comes some dreaded [[dg-reverse|reverse chronological order]] posts.&#92;n&#92;n&#92;n&#92;n=&gt; /garden/blog/new-year/index.gmi Every day is New Year&#39;s Day&#92;n&#92;n&#92;n&#92;n=&gt; /garden/blog/mastodon-is-not-twitter/index.gmi Mastodon is not Twitter&#92;n&#92;n&#92;n&#92;n=&gt; /garden/blog/pandemic-weary/index.gmi Pandemic Weary&#92;n&#92;n&#92;n&#92;n=&gt; /garden/blog/read-before-you-write/index.gmi Read before you write&#92;n&#92;n&#92;n&#92;n=&gt; /garden/blog/another-year-without-resolutions/index.gmi Another Year Without Resolutions&#92;n&#92;n&#92;n&#92;n=&gt; /garden/blog/the-unattainable-and-the-attainable/index.gmi The Unattainable and the Attainable&#92;n&#92;n&#92;n&#92;n=&gt; /garden/blog/the-chain/index.gmi The Chain&#92;n&#92;n&#92;n&#92;n=&gt; /garden/blog/not-quite-writers-block/index.gmi Not Quite Writer&#39;s Block&#92;n&#92;n&#92;n&#92;n=&gt; /garden/blog/latest-and-not-so-greatest/index.gmi Latest and Not-so-greatest&#92;n&#92;n&#92;n&#92;n=&gt; /garden/blog/something-terrible/index.gmi Something Terrible&#92;n&#92;n&#92;n&#92;n=&gt; /garden/blog/q-poker-in-progress/index.gmi Q Poker: in progress&#92;n&#92;n&#92;n&#92;n=&gt; /garden/blog/making-a-computer-game/index.gmi Making a computer game&#92;n&#92;n&#92;n&#92;n=&gt; /garden/blog/more-about-blogging/index.gmi More about blogging&#92;n&#92;n&#92;n&#92;n=&gt; /garden/blog/untitled-2020-06-15/index.gmi Untitled 2020-06-15&#92;n&#92;n&#92;n&#92;n=&gt; /garden/blog/getting-nothing-done/index.gmi Getting Nothing Done&#92;n&#92;n&#92;n&#92;n=&gt; /garden/blog/giving-up-on-resolutions/index.gmi Giving Up On Resolutions&#92;n&#92;n&#92;n&#92;n=&gt; /garden/nike-the-shit-out-of-it/index.gmi NIKE the shit out of it&#92;n&#92;n&#92;n&#92;n=&gt; /garden/blog/halloween-sadness/index.gmi Halloween Sadness&#92;n&#92;n&#92;n&#92;n=&gt; /garden/blog/a-story-of-failure/index.gmi A Story Of Failure&#92;n&#92;n&#92;n&#92;n=&gt; /garden/blog/causes-of-giving-to-causes/index.gmi Causes of Giving to Causes&#92;n&#92;n&#92;n&#92;n=&gt; /garden/blog/what-programming-language-should-i-learn/index.gmi What programming language should I learn?&#92;n&#92;n&#92;n&#92;n=&gt; /garden/blog/what-is-a-web-application/index.gmi What is a web application?&#92;n&#92;n&#92;n&#92;n=&gt; /garden/blog/considering-moving-blogs/index.gmi Considering moving blogs&#92;n&#92;n&#92;n&#92;n=&gt; /garden/blog/random-knowledge-about-javascript-and-typescript/index.gmi Random knowledge about Javascipt and Typescript&#92;n&#92;n&#92;n&#92;n=&gt; /garden/blog/songwriting-reflections/index.gmi Songwriting Reflections&#92;n&#92;n&#92;n&#92;n=&gt; /garden/blog/new-danger-third-rail-ep/index.gmi New Danger Third Rail EP&#92;n&#92;n&#92;n&#92;n=&gt; /garden/blog/another-week/index.gmi Another Week&#92;n&#92;n&#92;n&#92;n=&gt; /garden/blog/side-quests-of-life/index.gmi Side quests of life&#92;n&#92;n&#92;n&#92;n=&gt; /garden/blog/font-of-creativity/index.gmi Font of creativity&#92;n&#92;n&#92;n&#92;n=&gt; /garden/blog/listening-to-music-while-doing-things/index.gmi Listening to music while doing things&#92;n&#92;n&#92;n&#92;n=&gt; /garden/blog/blogging-but-this-time-with-blogging/index.gmi Blogging, but this time with blogging&#92;n&#92;n&#92;n&#92;n=&gt; /garden/blog/music-projects-as-ephemera/index.gmi Music Projects as Ephemera&#92;n&#92;n&#92;n&#92;n---&#92;n&#92;nThe above posts were manually copied over from my [write.as blog](https://write.as/audiodude), where they still live for the time being. Previously, I posted blogs on [Medium](https://blog.travisbriggs.com), where I had a legacy feature for having a free custom domain name before they got all &#92;&quot;charge-y&#92;&quot; for it.&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;digital-garden-itself&quot;,&quot;anchor_text&quot;:&quot;digital garden&quot;,&quot;context&quot;:&quot;I guess if this is my &#92;&quot;digital garden&#92;&quot; then these posts are like potted plants&quot;,&quot;rationale&quot;:&quot;The node discusses the digital garden concept which has its own dedicated node.&quot;},{&quot;slug&quot;:&quot;mastodon-is-not-twitter&quot;,&quot;anchor_text&quot;:&quot;Mastodon&quot;,&quot;context&quot;:&quot;why I was very relieved, upon returning to Mastodon, that it had that feature built in&quot;,&quot;rationale&quot;:&quot;Directly references Mastodon, which has a dedicated node comparing it to Twitter.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;considering-moving-blogs&quot;,&quot;rationale&quot;:&quot;Elaborates on migrating between blogging platforms like Medium and write.as mentioned here.&quot;},{&quot;slug&quot;:&quot;more-about-blogging&quot;,&quot;rationale&quot;:&quot;Extends the author&#39;s ongoing reflections about his desire and struggles with blogging.&quot;},{&quot;slug&quot;:&quot;blog-cycle&quot;,&quot;rationale&quot;:&quot;Discusses the recurring urge to rebuild blogs, complementing this node&#39;s platform-migration history.&quot;},{&quot;slug&quot;:&quot;blogging-but-this-time-with-blogging&quot;,&quot;rationale&quot;:&quot;Shares this node&#39;s self-reflective, meta take on blogging and posting to Mastodon.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:686,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:628,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:220},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;codecov&quot;,&quot;fileSlug&quot;:&quot;codecov&quot;,&quot;title&quot;:&quot;Codecov&quot;,&quot;content&quot;:&quot;&#92;nIn software development, there is the concept of &#92;&quot;code coverage&#92;&quot;. When your automated tests run, a coverage tool **instruments** the code, wrapping it with instructions that determine, for each line of your source code, whether the line was executed during the test or not. [Many](https://atlassian.com/continuous-delivery/software-testing/code-coverage) [have](https://testing.googleblog.com/2020/08/code-coverage-best-practices.html) [written](https://capgemini.github.io/testing/What-Is-Code-Coverage-and-Why-It-Should-Not-Lead-Development/) about the pros and cons of low and high code coverage. It turns out it&#39;s one of those areas where a &#92;&quot;middle ground&#92;&quot; is critically important.&#92;n&#92;nThere are hundreds of tools across every programming language that detect and report code coverage. [Codecov](https://codecov.com/) is not one of them. Instead, it provides a GUI (Graphical User Interface) for inspecting, analyzing, and reporting on code coverage reports. Once your tests run, you upload the coverage report to Codecov, and their automated system provides a web app where you can visually see where you are covered or lacking coverage as you explore your source code tree.&#92;n&#92;nEven more useful for most projects, the process of uploading and inspecting code coverage reports can itself be completely automated using [GitHub Actions](https://docs.github.com/en/actions). What this means is that before you merge a PR (Pull Request), Codecov can say the equivalent of &#92;&quot;Hey, don&#39;t merge this, you didn&#39;t test the new code you added!&#92;&quot;. Implementing and responding to this feedback is part of good [&#92;&quot;code hygeine&#92;&quot;](https://medium.com/@revanrgh/clean-code-should-we-prioritize-hygiene-in-coding-cff197542b11).&#92;n&#92;nThis year, Codecov released v4 of it&#39;s GitHub integration. I believe the purpose was to unify its CLI (Command Line Interface) tool and the GitHub code, so they weren&#39;t running different codebases. The most severe change was that it was no longer possible for Codecov to use the &#92;&quot;environment&#92;&quot; of the GitHub repo to determine the proper project or credentials: you now had to explicitly set a _token_ for it to work. For thousands of developers, their automated pipelines stopped working, and it was often difficult to tell what was wrong and how to fix it. Well, it wasn&#39;t particularly difficult per se, but required a lot of annoying steps and hard to find documentation.&#92;n&#92;nAll of this is to just document for future posterity the head-bang-on-desk moment I had when trying to upgrade to v4 in my own [[wp-1.0|WP1]] repo today. The Codecov automation kept reporting that I was missing the token. I, on the other hand, was thouroughly convinced that I had the token, but Codecov just wouldn&#39;t agree with me. I had read the [documentation](https://docs.codecov.com/docs/adding-the-codecov-token) over and over, and double checked that I had done all of the steps but it still wasn&#39;t working.&#92;n&#92;nThe problem was that I assumed the hard part was the first part, adding the `CODECOV_TOKEN` to the GitHub repo settings. I was convinced that that&#39;s where the problem was. In actuality, what I had missed was that the syntax for calling v4 was slightly, but every so similarly lookingly (?), different from v3.&#92;n&#92;n&lt;img src=&#92;&quot;https://pxscdn.com/public/m/_v2/588554065884192073/3781ba7d4-1bb9dc/8GbMvEfDtTR5/nXvjO8y0yPXBrI3XCEyQqs6cGn2chUypPiUX26T5.png&#92;&quot; alt=&#92;&quot;Code review showing GitHub actions code with one line changed&#92;&quot; style=&#92;&quot;max-width: 50rem&#92;&quot;/&gt;&#92;n&#92;nI kept seeing the line where you set `env:` but reading it as &#92;&quot;I already have `secrets.CODECOV_TOKEN` in there!&#92;&quot;. Facepalm.&#92;n&#92;nIn all honesty though, the entire Codecov v3 to v4 upgrade has kind of been a nightmare, across multiple months and multiple repos. Thank god I&#39;m not paying them any money!&#92;n&#92;nUpdate: I&#39;m still getting these freaking errors! Every now and then my CI will flake out like this:&#92;n&#92;n&lt;img src=&#92;&quot;https://pxscdn.com/public/m/_v2/588554065884192073/0e43b1202-69768b/D9HJx5Y4yN0l/1y9kQRG1WPT2fQ4TPczdXPECDMHOKAuMgXN3IZ4S.png&#92;&quot; alt=&#92;&quot;Github actions with Codecov Error: Codecov token not found. Please provide Codecov token with -t flag.&#92;&quot; style=&#92;&quot;max-width: 50rem&#92;&quot;/&gt;&#92;n&#92;nUpdate the Second: I am still getting these intermittent flaky errors. I&#39;ve decided to [demote Codecov](https://github.com/openzim/wp1/pull/758), and set my GitHub actions CI so that if all the tests pass and only the Codecov upload fails, the CI still passes. Sigh.&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;github&quot;,&quot;anchor_text&quot;:&quot;GitHub Actions&quot;,&quot;context&quot;:&quot;can itself be completely automated using [GitHub Actions]&quot;,&quot;rationale&quot;:&quot;The node discusses GitHub integration extensively, and there&#39;s a dedicated node about GitHub.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;warnings-python&quot;,&quot;rationale&quot;:&quot;Also documents a technical debugging/testing struggle in the same WP1.0 Python test suite.&quot;},{&quot;slug&quot;:&quot;Kiwix&quot;,&quot;rationale&quot;:&quot;The wp1 repo (openzim/wp1) referenced here belongs to Kiwix, elaborating on the project&#39;s organizational context.&quot;},{&quot;slug&quot;:&quot;Python&quot;,&quot;rationale&quot;:&quot;The WP1 repo being debugged is written in Python, which this node touches on via its tests and coverage tooling.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1636,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:461,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:199},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;comments-research&quot;,&quot;fileSlug&quot;:&quot;comments-research&quot;,&quot;title&quot;:&quot;Enabling comments&quot;,&quot;content&quot;:&quot;&#92;n*Update: comments are working great! I just commited a change to update the styling and autoload them. Read below for a full catalog of my journey to this point.*&#92;n&#92;nHere&#39;s my research so far on comments, and my radical idea for enabling them.&#92;n&#92;nI&#39;ve read about:&#92;n&#92;n- [DISQUS](https://disqus.com/)&#92;n- [IntenseDebate](https://www.intensedebate.com/)&#92;n- [Muut (Formerly moot)](https://muut.com/)&#92;n- [Facebook embeds](https://facebook.com/)&#92;n- [Isso](https://posativ.org/isso/)&#92;n- [Commento](https://github.com/adtac/commento)&#92;n- [Utterances](https://utteranc.es/)&#92;n- _this list taken from [Nikloa&#39;s handbook](https://getnikola.com/handbook.html#comments)_&#92;n&#92;nThough I haven&#39;t fully evaluated all of them, I was leaning towards Commento. The problem is that I would have to run another server somewhere, and I&#39;m totally over the &#92;&quot;fun and excitement&#92;&quot; of spinning up, and especially maintaining, cloud servers.&#92;n&#92;nThen I saw someone&#39;s blog post that had a &#92;&quot;Comments from Mastodon&#92;&quot; section. This led me to the [original post](https://carlschwan.eu/2020/12/29/adding-comments-to-your-static-blog-with-mastodon/) by Carl Schwan about how he did this with Hugo. The basic approach is dead simple, and very Web 2.0:&#92;n&#92;n1. Create a post on Mastodon that represents your blog post/garden node.&#92;n1. Add the ID of the post (and the site&#39;s host) to the front matter of the node.&#92;n1. Add Javascript to the node, or one of it&#39;s templates&#92;n&#92;nWhen the page loads, the URL is baked in. Then some Vanilla Javascript runs that downloads JSON of the post&#39;s replies from the host server API (from the endpoint `https://&lt;host&gt;/api/v1/statuses/&lt;id&gt;/context`). The Javascript takes the JSON from the API and builds comment boxes for each comment.&#92;n&#92;n## Proof of Concept&#92;n&#92;nIt worked, but it was a lot of work. I would have had to manually remember to enable comments for every garden node that I want to be commentable (which is basically every one), and enabling comments would have meant creating a Mastodon post and manually copying the ID of the Mastodon post into the Markdown for the node, then re-deploying the site.&#92;n&#92;nI looked at [eleventy-plugin-activity-pub](https://github.com/LewisDaleUK/eleventy-plugin-activity-pub/tree/main). However, it has a slightly different focus, which is to turn your static site itself into a &#92;&quot;Fediverse instance&#92;&quot; by creating files at well known endpoints that other Fediverse servers know how to consume. So, if this site is at `travisbriggs.com`, I could have an account called `@garden@travisbriggs.com` and it would contain all of the posts. It uses a common Fediverse hack that the /.well-known/webfinger URL serves a static file that lists only one actor, no matter what user is queried for. It was pointed out to me in the course of this research that this is most likely used in conjunction with an `alias` stanza to point someone at the &#92;&quot;real&#92;&quot; Fediverse account of the responsible party.&#92;n&#92;nBasically, this led to a bunch of research into the [[activity-pub|ActivityPub protocol]].&#92;n&#92;n## Comments, finally!&#92;n&#92;nIn the end, I got it to work for all nodes of the garden, automatically, whenever I publish the site. Keep reading for a technical explanation of how that works.&#92;n&#92;nIt starts with an [sqlite](https://www.sqlite.org/) database that is checked into the git repository for the garden. This database has the following schema:&#92;n&#92;n```&#92;nCREATE TABLE comments (id TEXT, host TEXT, username TEXT, page_slug TEXT)&#92;n```&#92;n&#92;nWhen the [Eleventy](https://www.11ty.dev/) process is running to generate the site, it has a section of &#92;&quot;computed data&#92;&quot; which can use an arbitrary Javascript function to add fields to the &#92;&quot;data&#92;&quot; of a page (basically, what&#39;s in the frontmatter). This function can even be asynchronous, so we can query the sqlite database or make network requests! In an `eleventyComputed` block, I have one promise that loads all of the database data (because it&#39;ll never be more than a few hundred posts, realistically) and &#92;&quot;indexes&#92;&quot; it by creating a mapping from the page slug to the rest of the data. Then, in the main `eleventyComputed` function, we check if the data already exists (ie, the node already has a Mastodon post representing it). If it does, we just return the data from the database.&#92;n&#92;nIf not, we make a post using a secret API token that is kept outside the git repo. We grab the `id` of this post, save it to the database, and return it to the page. The key point is that, from the point of view of the page rendering process, it is completely inconsequential whether this post was created for the first time, or whether it already exists. By the time the page is rendering, there is a Mastodon post id, server hostname, and username attached to it.&#92;n&#92;nAnd that&#39;s it! You can view the [main commit](https://github.com/audiodude/travisbriggs.com/commit/a4a489f79c1c6e81f017740cad4e9fc0ca4ce321) where I added this functionality if you&#39;re interested.&#92;n&#92;n### Bugs&#92;n&#92;nOf course, after I posted this, and once someone _finally_ left a comment on this post, I discovered two bugs:&#92;n&#92;n1. It publishes the Mastodon post while I&#39;m in &#92;&quot;development mode&#92;&quot;, still writing the post. Maybe not the worst thing, but a bit annoying.&#92;n1. It doesn&#39;t properly link to the originating post, which is much more of a problem.&#92;n&#92;nWhile fixing these bugs I, of course, found another bug:&#92;n&#92;n1. The first time it creates a Mastodon post for a node, the data structure it returns is wrong, so the links on the comments section are broken for that post only.&#92;n&#92;nThe fix for the first issue was to check `process.env.ELEVENTY_RUN_MODE != &#39;build&#39;` and return early if that&#39;s the case. However, this and my use of `fetch` means that I can no longer build the site entirely on [Netlify](https://www.netlify.com/) with a build hook from pushing to the [[github|Github]] repo.&#92;n&#92;nThe fix for the second issue was to ignore calls to generate the comment metadata if the page data itself is empty. For some reason, Eleventy was calling my computation function twice: once with empty data, and again with the proper data. Couldn&#39;t figure out why, so I just ignore the empty case.&#92;n&#92;nThe fix for the third bug was to simply return the right data!&#92;n&#92;nNow that these bugs are fixed you can totally actually leave comments, I swear!&#92;n&#92;n## Leave a comment, already!&#92;n&#92;nAnd finally, please, if you&#39;re here, if you have a Mastodon account on any server, for the love of all things sweet and pure, please leave a comment so I know there are other people out there on the internet!&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;dg-feedback&quot;,&quot;rationale&quot;:&quot;This node&#39;s whole subject—enabling comments—is the practical implementation of the digital garden feedback principle discussed there, which itself links back to this research.&quot;},{&quot;slug&quot;:&quot;comments&quot;,&quot;rationale&quot;:&quot;The &#39;comments&#39; node briefly summarizes enabling comments and points to this research node, so they mutually elaborate.&quot;},{&quot;slug&quot;:&quot;mastodon-is-not-twitter&quot;,&quot;rationale&quot;:&quot;The comment system is built entirely on Mastodon&#39;s API, connecting to broader thoughts about Mastodon as a platform.&quot;},{&quot;slug&quot;:&quot;digital-garden-itself&quot;,&quot;rationale&quot;:&quot;That node states comments are enabled by replying to a Mastodon post per node, which is exactly the mechanism detailed here.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:2203,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:679,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:419},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;comments&quot;,&quot;fileSlug&quot;:&quot;comments&quot;,&quot;title&quot;:&quot;Comments&quot;,&quot;content&quot;:&quot;&#92;nFor at least a year, I didn&#39;t have any comments on my digital garden, which is of course counter to the principle that [[dg-feedback|digital gardens allow and respond to feedback]]. I was really excited to finally enable them, permanently, after a [[comments-research|bit of research]] into the subject.&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;digital-garden-itself&quot;,&quot;rationale&quot;:&quot;This node explains that comments are enabled by replying to a Mastodon post, elaborating on the comment mechanism referenced here.&quot;},{&quot;slug&quot;:&quot;dg-public&quot;,&quot;rationale&quot;:&quot;Comments in public connect to the principle of learning in public, deepening the rationale for enabling feedback.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:150,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:131,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:0},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;compost&quot;,&quot;fileSlug&quot;:&quot;compost&quot;,&quot;title&quot;:&quot;Compost pile&quot;,&quot;content&quot;:&quot;&#92;nI&#39;ve struggled against [[dg-reverse|Reverse Chronological Order]], but I&#39;ve still found myself replicating it in my collection of previously published [[blog|blog posts]]. Why, why must we repeat the mistakes of the past?&#92;n&#92;nIn the meantime, I&#39;ve felt handcuffed from adding new content to this Garden. While I thought I would be writing a bunch of [[dg-evergreen|evergreen posts]], I ended up being shackled by the fact that when I had an idea of something to write about, I couldn&#39;t think of anywhere to link it from! So I had all these ideas for garden &#92;&quot;nodes&#92;&quot;, but no &#92;&quot;place in the garden&#92;&quot; for them.&#92;n&#92;nFor this reason, I&#39;ve created this &#92;&quot;Compost pile&#92;&quot;. Maybe compost is a bad word, because it implies decay. On the other hand, it also implies new growth. The idea is to stick a bunch of random thoughts here, as a place to link my new nodes from. If they eventually grow into something greater, than I can hopefully &#92;&quot;plant&#92;&quot; them somewhere else in the garden. If not...well at least they&#39;re not in [[dg-reverse|Reverse Chronological Order]]!&#92;n&#92;n---&#92;n&#92;nI&#39;ve collected a lot of my thoughts and opinions on [[programming languages]] that I use and/or am familiar with.&#92;n&#92;nSome thoughts on [[new-year-2025 | New Year&#39;s 2025]].&#92;n&#92;nI&#39;m surprised by how many people who I consider &#92;&quot;open source advocates&#92;&quot; and &#92;&quot;free software crusaders&#92;&quot; are [[github|still comfortable using Github]].&#92;n&#92;nSpeaking of GitHub, I&#39;ve been [[codecov|fighting with Codecov for months]] (but may have finally won!).&#92;n&#92;nAt the beginning of 2023 I [[apache|wrote an email]] to the [Apache Software Foundation](https://www.apache.org/) about the lack of inclusive language in their name.&#92;n&#92;nOn my [[comments-research|quest for comments]] I learned a [[activity-pub|bit about ActivityPub]].&#92;n&#92;nTrying to organize my [[genre-thoughts|thoughts on genres]] and how they affect my music practice.&#92;n&#92;n[[excited|Some things I&#39;m excited about]].&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;digital-garden-itself&quot;,&quot;rationale&quot;:&quot;This node discusses the garden&#39;s structure and content organization, which the main garden node elaborates on directly.&quot;},{&quot;slug&quot;:&quot;plans&quot;,&quot;rationale&quot;:&quot;The compost pile stems from frustrations about where to place new nodes, which the plans node addresses in terms of garden organization.&quot;},{&quot;slug&quot;:&quot;digital-gardening-principles&quot;,&quot;rationale&quot;:&quot;The struggle against reverse chronological order and desire for evergreen/interlinked nodes directly ties to the foundational principles node.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:768,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:188,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:0},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;danger-third-rail&quot;,&quot;fileSlug&quot;:&quot;danger-third-rail&quot;,&quot;title&quot;:&quot;Danger Third Rail&quot;,&quot;content&quot;:&quot;&#92;n- [Bandcamp](https://dangerthirdrail.bandcamp.com)&#92;n- [Band website](https://dangerthirdrail.com)&#92;n- [Spotify](https://open.spotify.com/artist/6QLXdu3r5eCG95Sy6KA7SA?si=4GS8vH7uRfejBEXRltRNsg)&#92;n- [YouTube](https://www.youtube.com/channel/UCrrEtS8JNwsZdEvowotLhuQ)&#92;n&#92;n[Danger Third Rail](https://dangerthirdrail.com) is the name of my &#92;&quot;band&#92;&quot;. But as I always explain, &#92;&quot;band&#92;&quot; is in quotes because it&#39;s mostly just a recording project of myself, recording music in my [[recording-setup|home recording studio/kitchen]]. All of the tracks I&#39;ve produced and [[DistroKid|published]] to [[Spotify]] feature [Emily Dolan Davies](https://emilydrums.com/), and they&#39;ve all been professionally mixed and mastered by [other](https://soundbetter.com) [[Fiverr|people]]. But I&#39;ve written all the songs 100% myself, sang them all, played guitar and keyboards on all of them, and bass on all but one.&#92;n&#92;nI&#39;ve also published my Danger Third Rail projects on [[Bandcamp]], which I have to say has accounted for about 30% of the lifetime money I&#39;ve made from them. This is of course due to friends and family offering generous additional financial support above and beyond the sticker price. Speaking in terms of percents again, though, my lifetime revenue from making music sits at about 3% of my immediate costs of production (not even including costs for equipment, software, plugins, etc).&#92;n&#92;nCurrently, Danger Third Rail is on something of a hiatus. I&#39;ve written about a dozen songs for my first full length album, and I&#39;ve recorded demos of all the songs. But I&#39;m not sure about how to fund the final productions or motivate myself to DIY them 100%. You can read more about [[highs-and-lows-musician|the highs and lows]] of this process.&#92;n&#92;nDanger Third Rail is my primary recording project under which I release my most polished and finished songs. I&#39;ve also got another secret band name that I&#39;ve used to release the demos of the songs I want to put on the next Danger Third Rail project/album. Of course, I didn&#39;t tell anyone about it so it&#39;s gotten no listens. The act of putting the songs together and uploading them and everything was supposed to get me excited about re-recording and mixing them and doing it all &#92;&quot;for real&#92;&quot;. It did, somewhat, but it didn&#39;t last.&#92;n&#92;nSome of what I deal with is the [[motivation-music|motivation]] for making music. This has espcially come into relief recently with the release of [[ableton-12|Ableton Live 12]]. I&#39;m considering to what degree I should [[fake-it-music|fake it until I make it]]. And also considering that [[bands-as-sports-teams|bands are like sports teams]].&#92;n&#92;nI&#39;ve also, at various times, considered forming Danger Third Rail into an actual band and playing gigs and all that. I think the number one reason why this idea never got off the ground is that I would probably need to play at least one instrument in such a band, and I&#39;m terrified and insecure about my playing abilities. I&#39;m also just not that social with other musicians. When I lived in Boston, I would go to open mic nights and local concerts at least 2-4 times a week. I met a lot of musicians that way, and maybe I could do that in San Francisco too. But it seems unlikely.&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;new-danger-third-rail-ep&quot;,&quot;rationale&quot;:&quot;Directly announces a new Danger Third Rail EP/album, elaborating on the full-length album mentioned here as being on hiatus.&quot;},{&quot;slug&quot;:&quot;null-rail&quot;,&quot;rationale&quot;:&quot;Describes a separate project for releasing tracks/demos under a different name, echoing the &#39;secret band name&#39; used for demos mentioned here.&quot;},{&quot;slug&quot;:&quot;nike-the-shit-out-of-it&quot;,&quot;rationale&quot;:&quot;Discusses the struggle to actually finish and publish songs, deepening the motivation/DIY theme raised in this node.&quot;},{&quot;slug&quot;:&quot;genre-thoughts&quot;,&quot;rationale&quot;:&quot;Explores the songwriting and music-career challenges that underlie the recording project described here.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1220,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:818,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:559},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;dg-evergreen&quot;,&quot;fileSlug&quot;:&quot;dg-evergreen&quot;,&quot;title&quot;:&quot;Digital garden posts are unfinished, or evergreen&quot;,&quot;content&quot;:&quot;&#92;r&#92;nEven when I just now introduced a few friends of mine to my garden and the concept of digital gardening, one of my friends said &#92;&quot;Oh so it&#39;s a throwback to old personal websites&#92;&quot;. Well yes, if you&#39;ve read [Amy Hoy](https://stackingthebricks.com/how-blogs-broke-the-web/) then I guess you&#39;re right. But I think there&#39;s something at the heart of digital gardens that is more than just a reaction to the &#92;&quot;blogosphere&#92;&quot; and breaking free of reverse chronological posting.&#92;r&#92;n&#92;r&#92;nDigital Gardens allow notes on any topic to interlink and intertwine and be &#92;&quot;evergreen&#92;&quot;. That means that they are perennially updated in light of new information, changing viewpoints, world events, etc. A blog post gets written, it gets published, it&#39;s done. It might get a minor edit or two in the week following publication, but _that&#39;s it_. A node in a digital garden can start off very small, and then suddenly bloom into a full treatment of the subject at hand overnight. Or it can gradually be added to and &#92;&quot;tended&#92;&quot; until it contains a weighty sum of information, viewpoint, and knowledge.&#92;r&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;dg-reverse&quot;,&quot;anchor_text&quot;:&quot;breaking free of reverse chronological posting&quot;,&quot;context&quot;:&quot;just a reaction to the &#92;&quot;blogosphere&#92;&quot; and breaking free of reverse chronological posting&quot;,&quot;rationale&quot;:&quot;This node directly discusses eschewing reverse chronological sort, the subject of dg-reverse.&quot;},{&quot;slug&quot;:&quot;digital-gardening-principles&quot;,&quot;anchor_text&quot;:&quot;the concept of digital gardening&quot;,&quot;context&quot;:&quot;introduced a few friends of mine to my garden and the concept of digital gardening&quot;,&quot;rationale&quot;:&quot;Links to the node distilling digital gardening principles.&quot;},{&quot;slug&quot;:&quot;blog&quot;,&quot;anchor_text&quot;:&quot;A blog post gets written, it&#39;s published, it&#39;s done&quot;,&quot;context&quot;:&quot;A blog post gets written, it gets published, it&#39;s done&quot;,&quot;rationale&quot;:&quot;Contrasts blog posts with garden nodes, connecting to the blog collection node.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;dg-status&quot;,&quot;rationale&quot;:&quot;Discusses how gardeners disclose a post&#39;s status/quality, elaborating on the &#39;unfinished/evergreen&#39; nature described here.&quot;},{&quot;slug&quot;:&quot;new-year&quot;,&quot;rationale&quot;:&quot;Explores the &#39;every day is New Year&#39;s Day&#39; idea of gradual, ongoing work that parallels evergreen notes.&quot;},{&quot;slug&quot;:&quot;compost&quot;,&quot;rationale&quot;:&quot;Deals with unfinished garden nodes and growth, extending the theme of nodes blooming over time.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:408,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:584,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:128},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;dg-feedback&quot;,&quot;fileSlug&quot;:&quot;dg-feedback&quot;,&quot;title&quot;:&quot;Digital gardens allow and respond to feedback&quot;,&quot;content&quot;:&quot;&#92;nI have recently added comments to this garden. I think it&#39;s critical, given the fact that [[dg-evergreen|digital garden posts are unfinished, or evergreen]] and [[dg-public|digital gardens allow for learning in public]]. Since it&#39;s happening in public, comments should be made in public. And since the nodes are supposed to be evergreen, it&#39;s important that people can comment and point out things that have gotten out of date or that don&#39;t mesh well with local reality.&#92;n&#92;nOf course this doesn&#39;t mean that people will actually leave comments (I&#39;ve had them enabled for almost a month as of this writing and no one has left a single comment yet). But that&#39;s okay, because [[dg-solo|digital gardens don&#39;t need attention to thrive]].&#92;n&#92;nYou can read more about my [[comments|comments system]].&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;comments-research&quot;,&quot;rationale&quot;:&quot;Details the actual research and process behind enabling comments, elaborating on the comments system referenced here.&quot;},{&quot;slug&quot;:&quot;digital-gardening-principles&quot;,&quot;rationale&quot;:&quot;This node embodies one of the core digital gardening principles, which are collected and enumerated there.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:323,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:118,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:0},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;dg-new&quot;,&quot;fileSlug&quot;:&quot;dg-new&quot;,&quot;title&quot;:&quot;Digital gardens aren&#39;t afraid of something new&quot;,&quot;content&quot;:&quot;&#92;r&#92;nI&#39;m definitely a person who has a preference for the &#92;&quot;new and shiny&#92;&quot;. Out with the old, in with the new, I would agree. Sometimes this can be a bit of a liability, where I might pass over the &#92;&quot;tried and true&#92;&quot;. But I think with Digital Gardens, we need to be ready to embrace new ways of thinking, new technologies for generating and maintaing websites (and [[gemini|Gemsites!]]), etc. It could be that a &#92;&quot;Digital Garden&#92;&quot; is just a reaction to the concept of &#92;&quot;Blogging&#92;&quot; and isn&#39;t particularly noteworthy of itself. Or it could be that digital gardening embraces the new and noteworthy and builds on the latest ideas in the space to create both artifacts and ways of thinking that are truly &#92;&quot;new&#92;&quot;. I prefer the latter.&#92;r&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;blog&quot;,&quot;anchor_text&quot;:&quot;Blogging&quot;,&quot;context&quot;:&quot;just a reaction to the concept of &#92;&quot;Blogging&#92;&quot; and isn&#39;t particularly noteworthy&quot;,&quot;rationale&quot;:&quot;The node contrasts digital gardens with blogging, which is the subject of the blog node.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;digital-gardening-principles&quot;,&quot;rationale&quot;:&quot;This node embodies one of the core digital gardening principles, which are enumerated and expanded there.&quot;},{&quot;slug&quot;:&quot;dg-reverse&quot;,&quot;rationale&quot;:&quot;Elaborates on how digital gardens react against the old blogging paradigm of reverse chronological sorting.&quot;},{&quot;slug&quot;:&quot;dg-evergreen&quot;,&quot;rationale&quot;:&quot;Discusses digital gardens as more than just a reaction to the blogosphere, complementing this node&#39;s argument for embracing the truly new.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:303,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:392,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:117},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;dg-public&quot;,&quot;fileSlug&quot;:&quot;dg-public&quot;,&quot;title&quot;:&quot;Digital gardens allow for learning in public&quot;,&quot;content&quot;:&quot;&#92;r&#92;nThe main reference article I&#39;ve been linking to is [Shawn Wang&#39;s &#92;&quot;Learn In Public&#92;&quot;](https://www.swyx.io/learn-in-public/). I&#39;m hoping to be explosively productive in the amount of material I write and chronicle. I want to share every note and piece of feedback I receive as I build my personal [&#92;&quot;Second Brain&#92;&quot;](https://fortelabs.com/blog/basboverview/).&#92;r&#92;n&#92;r&#92;nThis sounds great in theory, but in practice it&#39;s a bit intimidating to put out your own personal opinions and understandings of a topic without knowing for certain that it&#39;s completely &#92;&quot;settled&#92;&quot;. What if I change my mind? What if I realize that my nascent thoughts on a topic were wildly naive and unsophisticated.&#92;r&#92;n&#92;r&#92;nThere&#39;s some amount of fearlessness to be had with this one in order to do it properly.&#92;r&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;dg-status&quot;,&quot;anchor_text&quot;:&quot;completely &#92;&quot;settled&#92;&quot;&quot;,&quot;context&quot;:&quot;understandings of a topic without knowing for certain that it&#39;s completely &#92;&quot;settled&#92;&quot;&quot;,&quot;rationale&quot;:&quot;The concern about disclosing whether ideas are settled directly connects to epistemic disclosure of post status.&quot;},{&quot;slug&quot;:&quot;dg-evergreen&quot;,&quot;anchor_text&quot;:&quot;What if I change my mind?&quot;,&quot;context&quot;:&quot;What if I change my mind? What if I realize that my nascent thoughts&quot;,&quot;rationale&quot;:&quot;Changing one&#39;s mind ties directly to the evergreen nature of digital garden posts.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;dg-feedback&quot;,&quot;rationale&quot;:&quot;Learning in public relies on receiving and responding to feedback, which this node elaborates.&quot;},{&quot;slug&quot;:&quot;dg-solo&quot;,&quot;rationale&quot;:&quot;Offers a counterpoint about publishing publicly without needing attention or approval.&quot;},{&quot;slug&quot;:&quot;digital-gardening-principles&quot;,&quot;rationale&quot;:&quot;This node is one of the core principles enumerated in the principles overview.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:308,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:336,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:0},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;dg-reverse&quot;,&quot;fileSlug&quot;:&quot;dg-reverse&quot;,&quot;title&quot;:&quot;Digital gardens eschew reverse chronological sorting&quot;,&quot;content&quot;:&quot;&#92;r&#92;n**Reverse is the curse!**&#92;r&#92;n&#92;r&#92;nWhen I read the materials that served as the inspiration to start this garden ([[digital-gardening-principles|linked here]]), one of the things that most viscerally resonated with me was the abhorrence of &#92;&quot;reverse chronological sort&#92;&quot;. Fuck reverse chronological sort.&#92;r&#92;n&#92;r&#92;nFirst, it assumes that the most recently written thing is the most pertinent for a reader or most interesting. Well clearly, that&#39;s not always true. It&#39;s an extremely flimsy invariant. RCS doesn&#39;t allow an author to put his or her best foot forward, because instead of presenting the most comprehensive or most rivetting piece in a collection, it simply shows you the most recent.&#92;r&#92;n&#92;r&#92;nAlso, RCS has a chilling effect on blog authors. Every post is sitting there, with it&#39;s date. You&#39;re always called to add something to that stack of posts, put something right on the top. If you&#39;re not writing a [[dg-evergreen|fully formed]] idea that you can post, why bother? Digital gardens allow for subtle and small &#92;&quot;weed picking&#92;&quot; and &#92;&quot;watering&#92;&quot; operations that work on a scale smaller than &#92;&quot;publish a whole, finished, blog post&#92;&quot;.&#92;r&#92;n&#92;r&#92;nOn the other hand, I have had some trouble integrating old blog posts into the digital garden. Similarly, I&#39;ve had issues with not feeling right about posting something because it doesn&#39;t &#92;&quot;fit&#92;&quot; anywhere in the garden. To alleviate some of this, I&#39;ve come up with the [[compost|compost pile]], which is just a collection of garden nodes that don&#39;t really fit anywhere. I can put things there temporarily and come back to them, and the list of items is not in any kind of chronological order.&#92;r&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;blog&quot;,&quot;anchor_text&quot;:&quot;old blog posts&quot;,&quot;context&quot;:&quot;I have had some trouble integrating old blog posts into the digital garden&quot;,&quot;rationale&quot;:&quot;The node discusses integrating old blog posts, which is the subject of the &#39;blog&#39; node.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;dg-new&quot;,&quot;rationale&quot;:&quot;Both explore how digital gardens depart from traditional blogging conventions.&quot;},{&quot;slug&quot;:&quot;digital-garden-itself&quot;,&quot;rationale&quot;:&quot;This node describes the garden built specifically to escape the reverse-chronological blog prison discussed here.&quot;},{&quot;slug&quot;:&quot;more-about-blogging&quot;,&quot;rationale&quot;:&quot;Elaborates on the author&#39;s relationship to blogging versus the garden format critiqued here.&quot;},{&quot;slug&quot;:&quot;dg-status&quot;,&quot;rationale&quot;:&quot;Discusses post status metadata, an alternative to date-based ordering criticized here.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:588,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:405,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:120},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;dg-solo&quot;,&quot;fileSlug&quot;:&quot;dg-solo&quot;,&quot;title&quot;:&quot;Digital gardens don&#39;t need attention to thrive&quot;,&quot;content&quot;:&quot;&#92;r&#92;nI think that everyone who publishes on the internet wants attention, but not too much attention. I&#39;ve heard it said that Twitter gives everyone a chance to be the &#92;&quot;main character&#92;&quot; for the day, though as [[blog/mastodon-is-not-twitter|I&#39;ve written]] it&#39;s not always a good thing when you are picked. I&#39;ve also heard that Elon Musk&#39;s recent acquisition of Twitter was his attempt to make _himself_ the main character _every day_, but that&#39;s not particularly relevant to the current discussion.&#92;r&#92;n&#92;r&#92;nWhile I feel somewhat distrustful of people who say things like &#92;&quot;I&#39;m only writing this for myself&#92;&quot;, or &#92;&quot;This whole website is just for me&#92;&quot;, I appreciate the sentiment and it&#39;s definitely something I aspire to. I&#39;d like to exist independently of any need for feedback or approval, though that&#39;s not really how the world works. Maybe once I get comments working and [[dg-feedback|can respond to feedback]] it will be more true that this garden exists for engagement and discussion, and not just to blast my ideas out into the world.&#92;r&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;intrisic motivation&quot;,&quot;anchor_text&quot;:&quot;exist independently of any need for feedback or approval&quot;,&quot;context&quot;:&quot;I&#39;d like to exist independently of any need for feedback or approval, though that&#39;s not really how the world works&quot;,&quot;rationale&quot;:&quot;The desire to write without needing external approval directly connects to the concept of intrinsic versus extrinsic motivation.&quot;},{&quot;slug&quot;:&quot;dg-public&quot;,&quot;anchor_text&quot;:&quot;blast my ideas out into the world&quot;,&quot;context&quot;:&quot;not just to blast my ideas out into the world&quot;,&quot;rationale&quot;:&quot;This node&#39;s tension between solitary writing and public engagement relates to learning in public.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;digital-gardening-principles&quot;,&quot;rationale&quot;:&quot;This node elaborates one of the core digital gardening principles and would benefit from linking back to the overview.&quot;},{&quot;slug&quot;:&quot;comments-research&quot;,&quot;rationale&quot;:&quot;The node mentions getting comments working, which is documented in detail in the comments-research node.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:397,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:429,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:125},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;dg-status&quot;,&quot;fileSlug&quot;:&quot;dg-status&quot;,&quot;title&quot;:&quot;Digital gardeners are upfront about a post&#39;s status&quot;,&quot;content&quot;:&quot;&#92;r&#92;nShawn Wang lists [Epistemic Disclosure](https://www.swyx.io/digital-garden-tos#2-epistemic-disclosure) as one of the foundation principles of a digital garden, thus invoking the philosophical field of [Epistemology](https://en.wikipedia.org/wiki/Epistemology). This study of the &#92;&quot;theory of knowledge&#92;&quot; leads us to understand how digital gardeners should responsibly disclose metadata about posts or nodes to readers.&#92;r&#92;n&#92;r&#92;nIn this garden, I&#39;ve listed the &#92;&quot;quality&#92;&quot; and &#92;&quot;importance&#92;&quot; stauts of each node right on the node&#39;s page. The &#92;&quot;quality&#92;&quot; in my mind is a measure of how well developed the idea is. The importance, on the other hand, measures how much weight I give to the ideas presented. A &#92;&quot;Low&#92;&quot; importance post might be a passing aside, or a wrapped redirect to another resource. Meanwhile a &#92;&quot;Top&#92;&quot; imporance post is foundational to myself and the garden.&#92;r&#92;n&#92;r&#92;nWhere do these scales of quality and importance come from, though? Well I am the primary maintainer of the [[wp-1.0|Wikipedia 1.0 Bot]] on [English Wikipedia](https://en.wikipedia.org). This bot takes quality and importance assessments that are added to articles by members of &#92;&quot;WikiProjects&#92;&quot; and aggregates them and reports their distributions. The basic idea is to take a chart that looks like this:&#92;r&#92;n&#92;r&#92;n![Chart of philosophy articles quality and importance](/assets/img/quality_importance.png)&#92;r&#92;n&#92;r&#92;nAnd move all the numbers to the top, based on how far they are to the left. So presumably, if you have an article that is &#92;&quot;Top&#92;&quot; importance, but it&#39;s only &#92;&quot;Start&#92;&quot; quality (5 articles in this example), you should invest more time in those than the articles that are &#92;&quot;Low&#92;&quot; importance and already &#92;&quot;GA&#92;&quot; quality.&#92;r&#92;n&#92;r&#92;nThe full list of article qualities is:&#92;r&#92;n&#92;r&#92;n- FA (Featured Article)&#92;r&#92;n- GA (Good Article)&#92;r&#92;n- B&#92;r&#92;n- Start&#92;r&#92;n- Stub&#92;r&#92;n&#92;r&#92;nAnd the importances I&#39;m using are:&#92;r&#92;n&#92;r&#92;n- Top&#92;r&#92;n- High&#92;r&#92;n- Mid&#92;r&#92;n- Low&#92;r&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;digital-gardening-principles&quot;,&quot;anchor_text&quot;:&quot;foundation principles of a digital garden&quot;,&quot;context&quot;:&quot;lists Epistemic Disclosure as one of the foundation principles of a digital garden&quot;,&quot;rationale&quot;:&quot;This node discusses one specific digital gardening principle and should link to the overview of all principles.&quot;},{&quot;slug&quot;:&quot;philosophy&quot;,&quot;anchor_text&quot;:&quot;philosophical field&quot;,&quot;context&quot;:&quot;thus invoking the philosophical field of Epistemology&quot;,&quot;rationale&quot;:&quot;The author&#39;s philosophy node touches on epistemology and theory of knowledge.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;Kiwix&quot;,&quot;rationale&quot;:&quot;The WP 1.0 bot work referenced here is done in a volunteer capacity for Kiwix, which could elaborate on the project context.&quot;},{&quot;slug&quot;:&quot;dg-evergreen&quot;,&quot;rationale&quot;:&quot;The notion of quality/status disclosure connects to the idea that garden posts are unfinished/evergreen.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:693,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:492,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:181},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;digital-garden-itself&quot;,&quot;fileSlug&quot;:&quot;digital-garden-itself&quot;,&quot;title&quot;:&quot;This Digital Garden&quot;,&quot;content&quot;:&quot;&#92;nWhen I first started reading about Digital Gardens, I quickly came to the conclusion that I wanted one for myself. I really just wanted to break out of the prison of creating perfectly polished and self-contained &#92;&quot;blog posts&#92;&quot; that existed in [[dg-reverse|reverse chronological order]].&#92;n&#92;nI have tried to live up to the [[digital-gardening-principles|digital gardening principles]] that I laid out for myself early on, with varying degrees of success.&#92;n&#92;nThis garden is also available as a [[gemini|Gemini]] capsule at [gemini://gem.travisbriggs.com](gemini://gem.travisbriggs.com).&#92;n&#92;n[[comments|Comments]] are enabled by replying to a Mastodon post for each garden node.&#92;n&#92;nThe source code for this garden is [available on GitHub](https://github.com/audiodude/garden.travisbriggs.com), and I&#39;m tracking [issues to improve it](https://github.com/audiodude/garden.travisbriggs.com/issues). It is based on [Eleventy Garden](https://github.com/binyamin/eleventy-garden) which is based on [Eleventy](https://www.11ty.dev/).&#92;n&#92;nThere&#39;s always a temptation to just re-write the software for the whole thing, following the natural [[blog-cycle|blog cycle]].&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;github&quot;,&quot;anchor_text&quot;:&quot;GitHub&quot;,&quot;context&quot;:&quot;The source code for this garden is [available on GitHub]&quot;,&quot;rationale&quot;:&quot;The node mentions GitHub, which has a dedicated node about GitHub.&quot;},{&quot;slug&quot;:&quot;mastodon-is-not-twitter&quot;,&quot;anchor_text&quot;:&quot;Mastodon post&quot;,&quot;context&quot;:&quot;Comments are enabled by replying to a Mastodon post for each garden node&quot;,&quot;rationale&quot;:&quot;Mastodon is discussed at length in this node about the platform.&quot;},{&quot;slug&quot;:&quot;blog&quot;,&quot;anchor_text&quot;:&quot;blog posts&quot;,&quot;context&quot;:&quot;perfectly polished and self-contained &#92;&quot;blog posts&#92;&quot;&quot;,&quot;rationale&quot;:&quot;The blog node discusses his previously published blog posts and the transition to the garden.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;plans&quot;,&quot;rationale&quot;:&quot;The plans node elaborates on aspirations and technical plans for this same digital garden.&quot;},{&quot;slug&quot;:&quot;dg-evergreen&quot;,&quot;rationale&quot;:&quot;Elaborates on the principle of breaking out of polished blog posts in favor of evergreen notes.&quot;},{&quot;slug&quot;:&quot;gemdown&quot;,&quot;rationale&quot;:&quot;Details the tooling used to render the garden&#39;s Markdown into Gemini&#39;s gmi format, extending the Gemini capsule mention.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:496,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:500,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:78},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;digital-gardening-principles&quot;,&quot;fileSlug&quot;:&quot;digital-gardening-principles&quot;,&quot;title&quot;:&quot;Digital gardening principles&quot;,&quot;content&quot;:&quot;&#92;r&#92;nThis is my attempt to distill and repeat what I consider to be the most important principles of digital gardening. These are taken mostly from the following sources:&#92;r&#92;n&#92;r&#92;n* [Maggie Appleton - A Brief History &amp; Ethos of the Digital Garden](https://maggieappleton.com/garden-history)&#92;r&#92;n* [Joel Hooks - My blog is a digital garden, not a blog](https://joelhooks.com/digital-garden)&#92;r&#92;n* [Andy Matuschak - Evergreen notes](https://notes.andymatuschak.org/About_these_notes?stackedNotes=z4SDCZQeRo4xFEQ8H4qrSqd68ucpgE6LU155C)&#92;r&#92;n* [Shawn Wang - Digital Garden Terms of Service](https://www.swyx.io/digital-garden-tos)&#92;r&#92;n&#92;r&#92;nFrom these and other sources, I&#39;ve figured out that a digital garden should have the following properties, and embody the following principles. I will expand each of these into its own garden node for further investigation.&#92;r&#92;n&#92;r&#92;n* [[dg-public|Digital gardens allow for learning in public]]&#92;r&#92;n* [[dg-solo|Digital gardens don&#39;t need attention to thrive]]&#92;r&#92;n* [[dg-evergreen|Digital garden posts are unfinished, or evergreen]]&#92;r&#92;n* [[dg-status|Digital gardeners are upfront about a post&#39;s status]]&#92;r&#92;n* [[dg-reverse|Digital gardens eschew reverse chronological sorting]]&#92;r&#92;n* [[dg-feedback|Digital gardens allow and respond to feedback]]&#92;r&#92;n* [[dg-new|Digital gardens aren&#39;t afraid of something new]]&#92;r&#92;n&#92;r&#92;nNote that all of these are phrases, statements even. I&#39;m trying to follow the principle of Evergreen Notes that [Evergreen notes should be concept-oriented](https://notes.andymatuschak.org/z4SDCZQeRo4xFEQ8H4qrSqd68ucpgE6LU155C?stackedNotes=z6bci25mVUBNFdVWSrQNKr6u7AZ1jFzfTVbMF).&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;digital-garden-itself&quot;,&quot;rationale&quot;:&quot;This garden&#39;s main page explicitly references trying to live up to these digital gardening principles.&quot;},{&quot;slug&quot;:&quot;plans&quot;,&quot;rationale&quot;:&quot;The plans node discusses organizing the garden in accordance with these principles.&quot;},{&quot;slug&quot;:&quot;dg-status&quot;,&quot;rationale&quot;:&quot;Already linked, but the epistemic disclosure concept discussed there elaborates the concept-oriented note idea mentioned at the end.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:755,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:243,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:78},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;draft&quot;,&quot;fileSlug&quot;:&quot;draft&quot;,&quot;title&quot;:&quot;Draft (writing website)&quot;,&quot;content&quot;:&quot;&#92;nDraft was an online, distraction free, writing tool that shut down at the end of December 2022. I used it extensively over the years.&#92;n&#92;nI was very sad about it shutting down, but I totally understand that the project was probably in the direct intersection of side project that 1) is big enough to cause all kinds of costs and responsibilities and 2) not big enough to produce meaningful financial rewards for the former.&#92;n&#92;nWhen I heard about it shutting down, I sent the following email to [Nate Kontny](https://twitter.com/natekontny), the site&#39;s creator:&#92;n&#92;n&gt; Hi Nate,&#92;n&gt; &#92;n&gt; Just wanted to send a quick note in support of your decision to shut down Draft. When I saw the title of your email, I have to confess I let out an audible &#92;&quot;Noooooooo!&#92;&quot;. I love Draft, and it&#39;s been my trusty companion all these years for distraction free writing wherever I am. I loved the built in folder organization, embedded word counts, and easy sharing capabilities. I&#39;ve done NaNoWriMo in Draft, and Morning Pages, rejected blog posts that I don&#39;t want to make public, song lyrics I&#39;ve written, just all sorts of things.&#92;n&gt; &#92;n&gt; Thank you for your efforts in making all of that possible. It&#39;s sad that Draft is going away, but nothing lasts forever I suppose. Thank you for making it possible to export all the data.&#92;n&gt;&#92;n&gt; Thanks,&#92;n&gt; &#92;n&gt; -Travis&#92;n&#92;nTonight, I sent a follow-up email when I retrieved my Draft archive and realized it was only 150 KB (small enough to *easily* fit on a floppy disk!)&#92;n&#92;n&gt; Hi Nate,&#92;n&gt;&#92;n&gt; I already wrote you one email thanking you for Draft.&#92;n&gt; &#92;n&gt; Now I have an item of concern. If you&#39;re shutting the service down on 2022-12-31, it seems like it will be about 3 weeks from the time of your announcement to the time Draft goes poof. I&#39;m not sure that&#39;s enough time for people to check whatever email they use to access Draft and realize that all of their data is going away.&#92;n&gt; &#92;n&gt; My Draft backup was 150Kb. Do you think it would be possible to simply materialize all of the backups of all of your users and put them in like a private S3 cold storage that you could retrieve upon request? Perhaps you could even make it self-service somehow, like sending people an email with: &#92;&quot;Draft has been shutdown. The password to access or delete your backed up data is &#39;xyz123&#39;&#92;&quot; and then when people go to draftin.com they just see an explanation letter and a place to paste in their password to delete or download?&#92;n&gt; &#92;n&gt; Just wondering. I think there is a long tail of people who simultaneously 1) Have put their life work in Draft and 2) Will not check their email in the month of December. The chance of this person existing is small, but the value that will be lost for this person is inconceivable. Even if you just mysqldump the database, which can&#39;t be more than a GB I imagine, and stick it somewhere, that might be good enough.&#92;n&gt; &#92;n&gt; Maybe you&#39;ve already thought of this and are already doing something similar. Given the thoughtful way you ran the service, I wouldn&#39;t doubt it. Just wanted to bring it up in case, on behalf of that poor person on vacation in Tahiti for the month without their laptop.&#92;n&gt; &#92;n&gt; Thanks,&#92;n&gt; &#92;n&gt; -Travis&#92;n&#92;nI never got any response, but reading back through my emails just now, I definitely thought to myself that maybe he had taken the steps I suggested anyways, whether or not he was inspired by my words. It would certainly make more sense to have a non-operational, 1 GB database backup lying around than to subject yourself to the liability of permanently deleting someone&#39;s life work. And I mean liability in the broadest sense, because something like that wouldn&#39;t just have potential legal consequences, it&#39;s also just a gigantic emotional burden (in my opinon) should it happen.&#92;n&#92;nIn the intervening two years I have switched to Google Docs for a lot of things. I also use Google Keep for shorter notes on a variety of random topics. I&#39;m feeling nostalgic for Draft now though and wondering whether or not I should seek out an alternative. Of course plenty of potential writers have been thwarted by not having a fancy enough notebook, pen, or typewriter (sarcasm).&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;considering-moving-blogs&quot;,&quot;rationale&quot;:&quot;Both discuss evaluating and migrating between writing/blogging platforms, echoing the nostalgia for finding a Draft alternative.&quot;},{&quot;slug&quot;:&quot;blog-cycle&quot;,&quot;rationale&quot;:&quot;Touches on tools and mediums for writing (Markdown vs HTML), which relates to seeking a distraction-free writing tool alternative.&quot;},{&quot;slug&quot;:&quot;font-of-creativity&quot;,&quot;rationale&quot;:&quot;Explores the compulsion to write and the pursuit of writing tools, relevant to Draft&#39;s role as a writing companion.&quot;},{&quot;slug&quot;:&quot;read-before-you-write&quot;,&quot;rationale&quot;:&quot;Discusses writing practice and process, extending the themes of song lyrics and blog drafting mentioned here.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1379,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:487,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:224},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;excited&quot;,&quot;fileSlug&quot;:&quot;excited&quot;,&quot;title&quot;:&quot;Things I&#39;m Excited About&quot;,&quot;content&quot;:&quot;&#92;nHere are some things I&#39;m either currently excited about, or at least I was excited about when I wrote about them.&#92;n&#92;n---&#92;n&#92;nOkay, this is now over two years old, and I&#39;m not sure aything has come of it. But I felt really inspired when I read Robin Sloan&#39;s excellent [newsletter post](https://www.robinsloan.com/lab/new-avenues/) about &#92;&quot;A Year of New Avenues&#92;&quot;. It is hopelessly exuberant and optimistic, and in that way extremely intoxicating. It also challenges the reader, especially in the span of prompting for &#92;&quot;new avenues&#92;&quot; for 2023 but at the same time gently chastising that &#92;&quot;Mastodon is not it&#92;&quot;.&#92;n&#92;nIn my internet travels, I&#39;ve been looking at [[gemini|Gemini]] as a protocol that could be useful for building something in the whale corpse of Facebook and Twitter.&#92;n&#92;nI&#39;ve also heard of [Secure Scuttlebutt](https://scuttlebutt.nz/) a few years back, around the time I was first learning about Mastodon. It seems much more quirky, experimental and revolutionary than Mastodon will ever be. Especially with it&#39;s focus on offline social networks (did you even know there was such a thing?).&#92;n&#92;nI always have a nagging desire to learn [[spanish|Spanish]], but I&#39;m not sure it will ever translate into real motivation and action.&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;mastodon-is-not-twitter&quot;,&quot;anchor_text&quot;:&quot;Mastodon&quot;,&quot;context&quot;:&quot;and revolutionary than Mastodon will ever be&quot;,&quot;rationale&quot;:&quot;The node discusses Mastodon&#39;s limitations, which is exactly the subject of this node.&quot;}],&quot;cross_references&quot;:[]},&quot;usage&quot;:{&quot;input_tokens&quot;:475,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:233,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:112},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;fake-it-music&quot;,&quot;fileSlug&quot;:&quot;fake-it-music&quot;,&quot;title&quot;:&quot;Fake it until you make music&quot;,&quot;content&quot;:&quot;&#92;nConsidering how [[bands-as-sports-teams|bands are like sports teams]], it&#39;s clear that not every part of a song has to be perfect for it to be a good song. I&#39;ve started to come to the realization that I, as a single person who doesn&#39;t play any instrument particularly well, am going to have significantly more difficulty writing, arranging, and recording a song than a full band. Full bands, when recording, will often just stick a microphone or two into the room where they&#39;re playing and just play the song a few times. Sure, they&#39;ll multitrack some things. There will be a few punch ins and overdubs. But the basic skeleton of the song is there once they&#39;ve written it, they just all need to play their parts and get it down on tape.&#92;n&#92;nI, on the other hand, have to write parts for each instrument, then practice and perform them, and finally record them one by one. I have to program in the drums using MIDI (no drummer). I have to play both rhythm and lead guitar, and figure out guitar tone for both (or any additional guitar parts). I have to play bass and any additional keyboard/synth parts. And of course I&#39;m the one writing the lyrics and writing and singing the melody.&#92;n&#92;nWhat I&#39;m realzing is that I don&#39;t have to get everything perfect. I can focus on the things I do well and just &#92;&quot;fake&#92;&quot; the rest of it. The drums are already fake. What&#39;s that, I can&#39;t play the bass part? Play it on the keyboard with a bass guitar plugin. Can&#39;t play a guitar solo for the third verse? Shove a synth part in there.&#92;n&#92;nI&#39;m never going to have the raw power and coherence of some of my favorite bands, like [Green Day](https://open.spotify.com/artist/7oPftvlwr6VrsViSDV7fJY?si=94dbb4ef56f34480), [Midtown](https://open.spotify.com/artist/5dePEjHD5QEEKixOHXuRRA?si=3ddcb624f4b44baa) and [Bayside](https://open.spotify.com/artist/51J0q8S7W3kIEYHQi3EPqk?si=e8cce8c76ea64a25). As I mentioned, they have full bands who are, you know, skilled at their instruments. I have to make do with what I have, and strive to produce the best music possible with what I can do.&#92;n&#92;nAnd honestly, I think that might be a good thing. Somewhere between all those layers of &#92;&quot;faking&#92;&quot; is actually my voice. Not my singing voice, but my [writer&#39;s voice](https://medium.com/a-taste-for-life/what-is-a-writers-voice-a8ce2ca0b342).&#92;n&#92;nThe only problem is a reductionist one. If I&#39;m faking the songwriting, the lyrics, the melody, the harmony; if I&#39;m faking the guitar and bass parts as well as the drums; what else is left? Is there anything of substance after all of that is fake?&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;good-song&quot;,&quot;anchor_text&quot;:&quot;good song&quot;,&quot;context&quot;:&quot;not every part of a song has to be perfect for it to be a good song&quot;,&quot;rationale&quot;:&quot;The phrase directly matches the node &#39;A good song is a good song&#39; which explores exactly this idea.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;highs-and-lows-musician&quot;,&quot;rationale&quot;:&quot;Elaborates on his experience producing music alone in his home studio, directly extending the challenges described here.&quot;},{&quot;slug&quot;:&quot;danger-third-rail&quot;,&quot;rationale&quot;:&quot;His solo recording project where he plays all instruments himself, the practical context for this &#39;faking&#39; approach.&quot;},{&quot;slug&quot;:&quot;recording-setup&quot;,&quot;rationale&quot;:&quot;Details the actual gear and single-person recording workflow referenced in writing/practicing/recording parts one by one.&quot;},{&quot;slug&quot;:&quot;genre-thoughts&quot;,&quot;rationale&quot;:&quot;Discusses writing in the rock genre he listens to (bands like Green Day), connecting to the band comparisons here.&quot;},{&quot;slug&quot;:&quot;something-terrible&quot;,&quot;rationale&quot;:&quot;Explores giving yourself permission to create imperfectly, a close parallel to &#39;faking&#39; parts.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:952,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:741,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:376},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;free will&quot;,&quot;fileSlug&quot;:&quot;free will&quot;,&quot;title&quot;:&quot;Free Will&quot;,&quot;content&quot;:&quot;&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;philosophy&quot;,&quot;rationale&quot;:&quot;The philosophy node explicitly discusses determinism and the author&#39;s disbelief in free will, directly elaborating this topic.&quot;},{&quot;slug&quot;:&quot;not the circumstances&quot;,&quot;rationale&quot;:&quot;This node references free will in the context of controlling responses rather than circumstances.&quot;},{&quot;slug&quot;:&quot;a-story-of-failure&quot;,&quot;rationale&quot;:&quot;This post explicitly muses on not believing in free will and being &#39;driftwood on the ocean&#39;.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:48,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:260,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:92},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;gemdown&quot;,&quot;fileSlug&quot;:&quot;gemdown&quot;,&quot;title&quot;:&quot;Gemdown&quot;,&quot;content&quot;:&quot;&#92;nA Javascript library for rendering Markdown files in the Gemini .gmi format.&#92;n&#92;nSee it on [Github](https://github.com/audiodude/gemdown) or [NPM](https://www.npmjs.com/package/gemdown).&#92;n&#92;n## Overview&#92;n&#92;n[Gemini](https://geminiprotocol.net/) is a recent text-based internet protocol that aims to be more robust than Gopher but more lightweight than the web, and doesn&#39;t seek to replace either. You need a special [Gemini client](https://github.com/kr1sp1n/awesome-gemini#clients) to connect to &#92;&quot;Gemini capsules&#92;&quot; in &#92;&quot;Gemspace&#92;&quot; (such as `gemini://geminiprotocol.net/`).&#92;n&#92;nYou can read more about Gemini [[gemini|on this digital garden]].&#92;n&#92;nGemini capsules are authored using &#92;&quot;Gemtext&#92;&quot;, which you can [read the description of](https://geminiprotocol.net/docs/cheatsheet.gmi). For a list of many Gemini related projects and sites, see [Awesome Gemini](https://github.com/kr1sp1n/awesome-gemini).&#92;n&#92;nAccording to [Wikipedia](https://en.wikipedia.org/wiki/Markdown), [Markdown](https://daringfireball.net/projects/markdown/) is &#92;&quot;a lightweight markup language for creating formatted text using a plain-text editor&#92;&quot;. Markdown is commonly used in [Static Site Generators](https://www.cloudflare.com/learning/performance/static-site-generator/) to store the source code for pages such as blog posts without making the author write full HTML markup.&#92;n&#92;nGemdown, then, is a library that takes Markdown input and outputs Gemtext. It is designed to be used in conjunction with a static site generator in order to create a Gemini mirror of an HTTP website (HTTP/Gemini mirrors of the same content is common amongst the Gemini community).&#92;n&#92;n## Relation to other libraries&#92;n&#92;nThe above is copied directly from the README.md of gemdown on [Github](https://github.com/audiodude/gemdown). I should admit that the library was heavily inspired by the Python library [md2gemini](https://github.com/makew0rld/md2gemini), which actually got archived around the time that I was developing gemdown. I posted on Mastodon to thank the author for the inspiration, and he replied back, which was nice.&#92;n&#92;nThe gemdown library also uses [marked](https://github.com/markedjs/marked) as the main way of parsing Markdown. The marked library is written in [[javascript-typescript|Javascript (actually Typescript I think)]] and is extremely excellent. It is [highly extensible](https://marked.js.org/using_pro) which is what allowed me to create custom rules that output gemtext.&#92;n&#92;nI created gemdown as a ESM module since marked is more easily imported that way.&#92;n&#92;n## What&#39;s next?&#92;n&#92;nGiven that I&#39;m currently generating a Gemini version of this digital garden, and gemdown has all the features I need to do that, I might consider marking gemdown as &#92;&quot;done&#92;&quot; for now and releasing version [1.0.0](https://semver.org). Of course, I&#39;m not going to do that today since I already release a version today and I&#39;d like to have more time for the library to &#92;&quot;cook&#92;&quot;.&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;digital-garden-itself&quot;,&quot;anchor_text&quot;:&quot;this digital garden&quot;,&quot;context&quot;:&quot;I&#39;m currently generating a Gemini version of this digital garden, and gemdown has all the features&quot;,&quot;rationale&quot;:&quot;The phrase directly refers to this garden, which has a dedicated node.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;Rainfall&quot;,&quot;rationale&quot;:&quot;Rainfall is a static site generator, and gemdown is designed to work with static site generators to create Gemini mirrors.&quot;},{&quot;slug&quot;:&quot;more-about-blogging&quot;,&quot;rationale&quot;:&quot;This node discusses Gemini and the author&#39;s involvement in the Gemini community, elaborating on themes in gemdown.&quot;},{&quot;slug&quot;:&quot;mastodon-is-not-twitter&quot;,&quot;rationale&quot;:&quot;The node mentions posting on Mastodon to thank the md2gemini author, and this node discusses Mastodon.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1073,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:687,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:403},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;gemini&quot;,&quot;fileSlug&quot;:&quot;gemini&quot;,&quot;title&quot;:&quot;Gemini&quot;,&quot;content&quot;:&quot;&#92;r&#92;n[Gemini](https://gemini.circumlunar.space/) is a new protocol for the internet. It is a protocol, not an app, or even a browser, or server, or software. These things exist in the Gemini ecosystem, of course, but they&#39;re not what it fundamentally is.&#92;r&#92;n&#92;r&#92;nGemini aims to be more robust than Gopher but more lightweight than the web, and doesn&#39;t seek to replace either. You need a special [Gemini client](https://github.com/kr1sp1n/awesome-gemini#clients) to connect to &#92;&quot;Gemini capsules&#92;&quot; in &#92;&quot;Gemspace&#92;&quot; (such as [gemini://gemini.circumlunar.space/](gemini://gemini.circumlunar.space/)).&#92;r&#92;n&#92;r&#92;n&#92;r&#92;nRobin Sloan [encourages us](https://www.robinsloan.com/lab/new-avenues/#meta) to make a thing with which we can talk about the thing. I notice this a lot on Mastodon of course, much of it is about itself. I actually think that Gemini is much worse in this regard, in that everyone wants to build a Gemini server, or client or some automation integration thing, but no one wants to write in the medium or consume content there. Tons of content in gemspace (URLS starting with `gemini://`, like [gemini://gem.bestalbumsintheuniverse.com](gemini://gem.bestalbumsintheuniverse.com)) is about Gemini, but it&#39;s also often mirrored in websites as well. So people are hosting gemblogs and gemsites, but they are just shadows of the content that&#39;s on the web. That&#39;s sad.&#92;r&#92;n&#92;r&#92;nI originally considered making this garden a gemini-only publication. I thought about the [very next paragraph](https://www.robinsloan.com/lab/new-avenues/#exemplars) in that same recent newsletter post by Robin: &#92;&quot;You can edit by hand!&#92;&quot;. Yes I can, but it&#39;s tedious and error prone. I could make a garden in Gemini, and it seems like a good medium for it with it&#39;s distraction free, basic gemtext (`.gmi`) format. But I&#39;ve found that the creative pursuits I&#39;m most likely to take up are always those with the least friction. Years ago, I stopped unplugging my mic and guitar cables from my audio interface when I&#39;m done with them. In fact the microphone itself sits on my desk, plugged in 24/7. If I&#39;m writing a song, I can simply pick it up and start singing into it. That&#39;s the level of ease/automation that I need in a creative workflow like a digital garden to make it work for me, and prompt me to keep it evergreen.&#92;r&#92;n&#92;r&#92;nThat&#39;s not to say that I won&#39;t be, just like everyone else, posting my content on Gemini *as well*. In fact, as of late August 2023, I have a [Gemini capsule](gemini://gem.garden.travisbriggs.com/) for this Digital Garden finally!&#92;r&#92;n&#92;r&#92;nPart of converting this digital garden to Gemini involved writing my own Javascript library for converting Markdown (which this garden is [written in](https://github.com/audiodude/garden.travisbriggs.com)) to gemtext. I wrote the [[gemdown]] library during August 2023 for this purpose. It is my first ever open-source library that was created solely by me for consumption by others! I&#39;m pretty proud.&#92;r&#92;n&#92;r&#92;nAnd who says you can&#39;t have more than one garden. I have to confess that some of this is vanity. I want people to be able to find and read my garden posts, as much as it [[dg-solo|&#92;&quot;shouldn&#39;t be about that&#92;&quot;]]. So I&#39;m posting web first.&#92;r&#92;n&#92;r&#92;nI did convert my [[best albums in the universe]] site to Gemini (as part of the static site generation process) and publish it at [gemini://gem.bestalbumsintheuniverse.com](gemini://gem.bestalbumsintheuniverse.com).&#92;r&#92;n&#92;r&#92;nGemini is very promising. It&#39;s limitations are, as usual, it&#39;s greatest strengths. I have responded to Robin with Gemini as a new avenue for 2023.&#92;r&#92;n&#92;r&#92;nSome interesting Gemini related links:&#92;r&#92;n&#92;r&#92;n* [Lagrange Gemini Browser (highly recommended!)](https://gmi.skyjake.fi/lagrange/)&#92;r&#92;n* [Twins Gemini server (also highly recommended!)](https://code.rocketnine.space/tslocum/twins)&#92;r&#92;n* [First 50 known Gemini servers (hint: Best Albums in the Universe is one of them!)](https://gemini.circumlunar.space/servers/)&#92;r&#92;n* [Awesome Gemini on Github](https://github.com/kr1sp1n/awesome-gemini)&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;mastodon-is-not-twitter&quot;,&quot;anchor_text&quot;:&quot;Mastodon&quot;,&quot;context&quot;:&quot;I notice this a lot on Mastodon of course, much of it is about itself&quot;,&quot;rationale&quot;:&quot;The node discusses Mastodon&#39;s tendency toward self-reference, which the Mastodon node elaborates on.&quot;},{&quot;slug&quot;:&quot;digital-garden-itself&quot;,&quot;anchor_text&quot;:&quot;this Digital Garden&quot;,&quot;context&quot;:&quot;I have a [Gemini capsule](gemini://gem.garden.travisbriggs.com/) for this Digital Garden finally!&quot;,&quot;rationale&quot;:&quot;Directly references the author&#39;s digital garden, which has its own dedicated node.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;excited&quot;,&quot;rationale&quot;:&quot;That node also discusses Robin Sloan&#39;s &#39;new avenues&#39; newsletter and considering Gemini as a protocol worth building on.&quot;},{&quot;slug&quot;:&quot;more-about-blogging&quot;,&quot;rationale&quot;:&quot;Discusses Gemini as a middle ground between Gopher and the web and mentions the author&#39;s early Gemini site.&quot;},{&quot;slug&quot;:&quot;gemdown&quot;,&quot;rationale&quot;:&quot;Elaborates on the Markdown-to-gemtext conversion library the author wrote for publishing to Gemini.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1494,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:602,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:209},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;genre-thoughts&quot;,&quot;fileSlug&quot;:&quot;genre-thoughts&quot;,&quot;title&quot;:&quot;Writing in the genre you listen to&quot;,&quot;content&quot;:&quot;&#92;nI think I&#39;m starting to realize one of the major roadblocks I&#39;ve encountered in my music career -- career meaning all the times in the past I&#39;ve tried to write, record and perform music. There is a dichotomy between the types of music I generally listen to and the types of music that the Music Industrial Complex (for lack of a better term) makes it easy to produce. I listen to rock: classic rock, punk rock, alternative rock, indie rock, space rock; stuff with guitars, bass, drums and singing that generally follows a intro-verse-chorus-verse-chorus-bridge-chorus-chorus song structure. Of course, I sometimes listen to hip-hop. I sometimes listen to &#92;&quot;classical&#92;&quot; (terrible term). I sometimes listen to jazz, or metal, or lofi or whatever. But my music tastes are squarely grounded in upbeat, melodic rock music.&#92;n&#92;nMeanwhile, there&#39;s [[ableton|Ableton Live]] through to keyboard controllers, [MIDI](https://blog.landr.com/what-is-midi/) equipment, synthesizers, grooveboxes, drum machines and all manner of gear and plugins that music manufacturers want to sell us. Don&#39;t get me wrong, I love this stuff. I first got interested in making digital music with a copy of [Reason Studio&#39;s](https://www.reasonstudios.com/) (nee Propellerheads) Reason 1.0. The fact is, most of this -- stuff -- is geared (pun intended) towards making some kind of genre of electronic music. And most genres of electronic music are focused on interesting beats, rhythms, sound design, fx, etc. I don&#39;t find most genres of electronic music melodically or harmonically interesting. Much of it has a lot of hooks, but no melody at all to speak of. Which is not to say I don&#39;t listen to some electronic music, or indie music with electronic elements ([Foster the People](https://www.fosterthepeople.com/), [OK Go](https://okgo.net/), [Twenty One Pilots](https://www.twentyonepilots.com/)).&#92;n&#92;nAlso, this isn&#39;t to say that you can&#39;t produce rock music with Ableton and a MIDI keyboard. Both of my music releases for [[danger-third-rail|Danger Third Rail]] were tracked in [[ableton-12|Ableton]], in exactly that manner. I&#39;ve never mic&#39;d an amp to record a guitar, everything has been done with amp modeling plugins.&#92;n&#92;nThis dichotomy exists, though. I don&#39;t listen to enough purely electronic music to appreciate the subtleties or defining characteristics of the [literally hundreds of genres](https://music.ishkur.com/) it is made up of. I can&#39;t recognize when a song is employing a trope or deviating from one. And because of this, when I sit down and end up writing vaguely electronic music, it comes out sounding thin, simplistic and cliche.&#92;n&#92;nOn the other hand, recording rock music without a band, in your [[recording-setup|home recording studio slash kitchen]], is hard y&#39;all! I have to program digital drums, compose and record a guitar part, compose and record a contrapunctual guitar part, compose and record bass either through keyboard or bass guitar. And that&#39;s before considerations of melody/lyrics/vocals, arrangement, sound design, and mixing and mastering. I guess the real problem isn&#39;t that all of that work goes into producing a finished song, a finished product. The problem is that some amount of that behemoth is necessary to even &#92;&quot;sketch out ideas&#92;&quot;. Never mind recording and producing a rock song, it is difficult to work in this environment when you&#39;re trying to even compose one.&#92;n&#92;nSome of this node is just [[dg-public|thinking out loud]], so excuse me if I whine and rant.&#92;n&#92;nOne solution is to just [[nike-the-shit-out-of-it|NIKE the shit out of it]].&#92;n&#92;nAnother possible solution is to figure out new ways of composition that don&#39;t rely on all the production overhead. To figure out a way to get a &#92;&quot;demo&#92;&quot; out quickly that captures the song, to prove that it&#39;s written, and to worry about proper recording and production later. I even bought a [handheld recorder](https://zoomcorp.com/en/us/handheld-recorders/) at one point, that I still have, in order to be able to just play guitar out loud and have it record everything while I&#39;m writing a song. I have thought of this before of course. Song writing and song recording are two different disciplines. But it goes back to the electronic music production, where that statement doesn&#39;t seem to be true at all. When does a DJ/electronic music producer compose a song outside of their DAW, besides maybe on the aforementioned groovebox/drum machine/sampler?&#92;n&#92;nSo when I want to &#92;&quot;make music&#92;&quot; (whatever that means), my first step is to open [[ableton-12|Ableton]]. The next step is to stare at it, mouth agape. And the step after that is to start dialing in the same tired hip hop cliche beat patterns and lame synth lines and end up with another imitation electronic music track.&#92;n&#92;nIn the past, I&#39;ve thought the holy grail would be to somehow marry the genres, and I did that somewhat on both of my releases, heavily incorporating digital synthesizers into the arrangements of most of the tracks. Reading back what I just wrote, however, I&#39;m starting to realize that this isn&#39;t a problem of artistic voice or direction. It&#39;s simply a problem of workflow.&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;highs-and-lows-musician&quot;,&quot;rationale&quot;:&quot;That node covers the difficulties of producing music in a home studio/kitchen and mentions Reason 1.0, directly elaborating on the workflow struggles described here.&quot;},{&quot;slug&quot;:&quot;fake-it-music&quot;,&quot;rationale&quot;:&quot;It discusses the difficulty of a single person writing/recording all parts of a rock song versus a full band, which is the core recording challenge raised here.&quot;},{&quot;slug&quot;:&quot;music-projects-as-ephemera&quot;,&quot;rationale&quot;:&quot;It details the author&#39;s history with Reason and Ableton projects, elaborating on the production overhead and tooling mentioned in this node.&quot;},{&quot;slug&quot;:&quot;songwriting-reflections&quot;,&quot;rationale&quot;:&quot;It explores the author&#39;s melodic/harmonic preferences and genre leanings (power chords, minor keys), extending the discussion of what music he finds interesting.&quot;},{&quot;slug&quot;:&quot;motivation-music&quot;,&quot;rationale&quot;:&quot;It presents a framework for what inspires the author to make music, complementing the genre/workflow roadblocks discussed here.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1812,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:868,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:519},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;github&quot;,&quot;fileSlug&quot;:&quot;github&quot;,&quot;title&quot;:&quot;Github&quot;,&quot;content&quot;:&quot;&#92;nI think [Github](https://github.com) is great, I love it. I feel like it keeps getting better and better. I like how all the &#92;&quot;enterprise&#92;&quot; features stay out of your way and are completely unnecessary if you&#39;re just a personal lone hacker working on your own and other&#39;s code. To be clear, I am not in any way opposed to using Github.&#92;n&#92;nI find it interesting, however, that most of the open source, privacy thumping, anti-corporate, free software crusaders I know still use Github. Githubs hedgemony is so complete that it is still unexpected, for me, when I come across a repo that is hosted somewhere other than Github. For example, for my [[bandcamp|Bandcamp alternative site]], I&#39;m using [Faircamp](https://codeberg.org/simonrepp/faircamp) as a backend, which is hosted on something called &#92;&quot;Codeberg&#92;&quot;. I&#39;ve also seen people self host their repos using tools like [Gitea](https://gittea.dev/). I know that at least [GitLab](https://about.gitlab.com/) is somewhat popular. But still, day to day, as I find and read about and contribute to code, that code is on Github.&#92;n&#92;nI also find it interesting that Github kind of made [git](https://git-scm.com/book/en/v2/Getting-Started-About-Version-Control) the default [Version Control System](https://en.wikipedia.org/wiki/Version_control). I mean, 20 years ago we definitely knew we could do better than [CVS](https://cvs.nongnu.org/), and there _was_ [Subversion](https://subversion.apache.org/). I even remember when there were Subversion &lt;=&gt; git import and compatibility layers. But with the popularity of Github, it seems that git just ate the world. [Mercurial](https://www.mercurial-scm.org/) (hg) came out around the same time if I remember correctly, and offered a different opinion on how to have distributed source control in federated repos, but it didn&#39;t catch on the way git did. It&#39;s kind of like the killer app completely _made_ the tool. Sort of like [[Ruby on Rails]], where no one would have ever cared about the Ruby without the Rails.&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;codecov&quot;,&quot;rationale&quot;:&quot;Codecov is a code-quality tool that integrates directly with Github repositories, elaborating on the developer tooling ecosystem discussed here.&quot;},{&quot;slug&quot;:&quot;gemdown&quot;,&quot;rationale&quot;:&quot;Gemdown is one of the author&#39;s own open-source projects hosted on Github, illustrating the day-to-day repo usage described.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:732,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:533,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:393},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;good-song&quot;,&quot;fileSlug&quot;:&quot;good-song&quot;,&quot;title&quot;:&quot;A good song is a good song&quot;,&quot;content&quot;:&quot;A few weeks ago, [[Abby]] and I saw [A Complete Unknown](https://www.imdb.com/title/tt11563598/), the Bob Dylan biopic starring Timothée Chalamet. I really enjoyed the film, partly because of Chalamet&#39;s great performance (he&#39;s been nominated for an Oscar) but mostly because the whole thing plays out like a music video almost. They&#39;re playing and singing songs the entire movie, and Chalamet actually learned how to play the guitar from scratch for the role.&#92;n&#92;nThe film has inspired us to listen to more Dylan and folk music broadly. Abby has actually been writing new verses to classic folk songs like _This Land Is Your Land_ and _Casey Jones (the union scab)_. I wrote a [folk song](https://songs.travisbriggs.com/trash-on-the-nash/) that I posted to my [demo songs website](https://songs.travisbriggs.com). We&#39;ve been playing around with the [Omnichord](https://soundgenetics.com/guide-to-the-omnichord/) I got her for Christmas, strumming chords for songs we want to sing and using it as a bare bones compositional tool (you just play the chords, don&#39;t have to worry about voicings or anything).&#92;n&#92;nAll this makes me wonder if I really have to worry about [[fake-it-music|faking it]], or if writing the songs I write, in the way I write them, is enough. I would like for it to be enough. If I can write a good song, like the one linked above, I can always go back and write new verses or record it properly or create an arrangement with strings and drums and whatever. There&#39;s a quote in the movie that goes by quickly, but basically it&#39;s as simple as &#92;&quot;A good song is a good song&#92;&quot;. When I googled that phrase, lots of stuff came up, so I think it&#39;s kind of a timeless sentiment.&#92;n&#92;nAnd I still believe that songs are sung and while we use the shorthand &#92;&quot;song&#92;&quot; to refer to most pieces of recorded music, stuff like 8 minute EDM trance tracks are not proper &#92;&quot;songs&#92;&quot;. Sorry bedroom producers. I&#39;m not trying to put people down who put together tracks on their laptops. I&#39;m just trying to focus my own practice and realize that while 1 minute loops and whatnot can be fun, they&#39;re not songs. They&#39;re not the music that I want to make. In the context of [[motivation-music|what motivates me]], producing a &#92;&quot;bangin&#92;&quot; EDM track is simply not it.&#92;n&#92;nThink of songs that have been covered over and over. Those compositions were not driven by the performance of the guitar riffs, or the charisma of the lead singer, both of which are likely stripped away in the cover version. And they don&#39;t have to be entirely transformational. The excellence of the song itself is the driving factor. I saw [Guster](https://www.guster.com/) last night and they performed their cover of _(Nothing But) Flowers_ by the Talking Heads. It&#39;s just a great song.&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;genre-thoughts&quot;,&quot;rationale&quot;:&quot;This node discusses focusing on the kind of music you actually want to make (songs vs EDM tracks), which directly parallels the genre-thoughts discussion of writing in the genre you listen to.&quot;},{&quot;slug&quot;:&quot;songwriting-reflections&quot;,&quot;rationale&quot;:&quot;Elaborates on what makes a song compelling in terms of composition, tonality and structure, extending the &#39;a good song is a good song&#39; theme.&quot;},{&quot;slug&quot;:&quot;not-quite-writers-block&quot;,&quot;rationale&quot;:&quot;Touches on writing many songs, EDM loops and finishing/recording songs properly, closely related to this node&#39;s musings on writing enough good songs.&quot;},{&quot;slug&quot;:&quot;recording-setup&quot;,&quot;rationale&quot;:&quot;The node mentions going back to &#39;record it properly or create an arrangement with strings and drums&#39;, which the recording-setup node describes in detail.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:983,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:576,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:282},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;harness-matters-more&quot;,&quot;fileSlug&quot;:&quot;harness-matters-more&quot;,&quot;title&quot;:&quot;Harness Matters More&quot;,&quot;content&quot;:&quot;Many have theorized that the coding **harness** matters more than the backend model when doing AI assisted or &#92;&quot;vibe&#92;&quot; coding. The harness is the set of system prompts, instructions for tool use, ways of loading skills/MCP and utilizing them, patterns for filesystem access, permissions models, etc, that actually makes Claude _Code_ different than vanilla Claude (which can also write code on its own).&#92;n&#92;nI largely agree with this position, based on my general mistrust of [[ai-coding-benchmarks| AI coding benchmarks]].&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;vibe coding&quot;,&quot;anchor_text&quot;:&quot;&#92;&quot;vibe&#92;&quot; coding&quot;,&quot;context&quot;:&quot;the backend model when doing AI assisted or &#92;&quot;vibe&#92;&quot; coding&quot;,&quot;rationale&quot;:&quot;The node directly references vibe coding, which has a dedicated node.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;ai&quot;,&quot;rationale&quot;:&quot;This node discusses AI-assisted coding, which the broader AI node contextualizes.&quot;},{&quot;slug&quot;:&quot;when to vibe code&quot;,&quot;rationale&quot;:&quot;Elaborates on the practice of vibe coding referenced in this node.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:236,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:185,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:0},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;highs-and-lows-musician&quot;,&quot;fileSlug&quot;:&quot;highs-and-lows-musician&quot;,&quot;title&quot;:&quot;The highs and lows of producing music in your home studio/kitchen&quot;,&quot;content&quot;:&quot;&#92;nI don&#39;t really want to give a detailed history of my experiences with writing and recording music here. Like most folks, I&#39;ve been experimenting with music and instruments from a very young age. In the 90s, I &#92;&quot;recorded&#92;&quot; music using a MIDI interface that connected to my [68k Mac&#39;s](http://vintagemacmuseum.com/collection/68k-macintosh/) serial port. In college, I experimented with electronic music with [Reason 1.0](https://reasonstudios.com/) (1.0!), but didn&#39;t have a proper setup for recording acoustic/electric instruments or vocals. After that, I gradually built a [[recording-setup|home recording setup]] that I liked that lived in my bedroom at one apartment and later in my kitchen.&#92;n&#92;nI think the interesting bits start with the formation of my [[danger-third-rail|&#92;&quot;band&#92;&quot;]]. In 2017, I got more &#92;&quot;serious&#92;&quot; about recording music in my kitchen, and decided that with some help from a remote [drummer in the UK](https://emilydrums.com/) and [[DistroKid]], I could actually release some polished music to Spotify (which is what I considered &#92;&quot;making it&#92;&quot;). So I did. That was the _Pink Fluffy Cloud_ single. Releasing the single was definitely a high point. I printed out business cards with the album art and a [URL](https://dangerthirdrail.com) on it. Between the drums, and recording the vocals in an actual studio and getting it mixed and mastered, the project cost about $1200.&#92;n&#92;nOkay 2017 is a long time ago. We&#39;ve had a new US president (and a returning one) and at least one global pandemic since then. The pandemic years can be considered wasted because there was so much confusion and uncertainty during that time. But what about 2019? What about 2022 [ed: 2023] [ed: 2024]? Why hasn&#39;t Danger Third Rail released any new music?&#92;n&#92;nSometimes, it&#39;s a problem of getting going and [[genre-thoughts|writing the songs]].&#92;n&#92;nYes, I am still thinking about the [[blog/latest-and-not-so-greatest|100:10:1]] rule, but if you look at my drafts/demos website at [songs.travisbriggs.com](https://songs.travisbriggs.com), you&#39;ll see that I have actually written 100s of songs and song fragments.&#92;n&#92;nBut in this case, I&#39;ve actually [[fake-it-music|written the songs]]. I&#39;ve got about a dozen that I have even recorded demos of that I consider high enough quality to release. I probably need to rethink my music practice in terms of [[good-song|songwriting]], because that&#39;s what I want to do more than anything. Actually, in the context of this potential album I&#39;m talking about, that might be the biggest factor holding me back.&#92;n&#92;nI started taking mixing lessons so I could mix and master the songs myself, to make the album 100% DIY. However, the mixing lessons were hard and hard to keep up with. I haven&#39;t felt like at my current skill level I could do the songs justice. At the same time, I don&#39;t want to spend thousands of dollars to get them professionally mixed and mastered, since I&#39;ve made a grand total of about 50 bucks ever selling music (from Spotify/iTunes/Amazon/YouTube payments and Bandcamp donations).&#92;n&#92;nReally, it&#39;s not sustainable to continue paying others to mix and master my music, even if I stopped hiring Emily to do the drums and just used software. I need to learn to do it myself. I need to [[nike-the-shit-out-of-it|DIY the shit out of it]].&#92;n&#92;nIt could be a problem of [[motivation-music|motivation]]. Am I happy with what I&#39;ve already done? Am I resting on my laurels, as thin as they might be?&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;Spotify&quot;,&quot;anchor_text&quot;:&quot;Spotify&quot;,&quot;context&quot;:&quot;I could actually release some polished music to Spotify (which is what I considered&quot;,&quot;rationale&quot;:&quot;Direct mention of Spotify, which has its own node about the platform and royalties.&quot;},{&quot;slug&quot;:&quot;Bandcamp&quot;,&quot;anchor_text&quot;:&quot;Bandcamp donations&quot;,&quot;context&quot;:&quot;YouTube payments and Bandcamp donations).&quot;,&quot;rationale&quot;:&quot;Bandcamp is mentioned directly and has a dedicated node about the platform.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;music-projects-as-ephemera&quot;,&quot;rationale&quot;:&quot;Discusses the author&#39;s use of Reason and Ableton for music projects, elaborating on the recording history mentioned here.&quot;},{&quot;slug&quot;:&quot;new-danger-third-rail-ep&quot;,&quot;rationale&quot;:&quot;Covers the planned unreleased Danger Third Rail EP that this node laments not releasing.&quot;},{&quot;slug&quot;:&quot;ableton-12&quot;,&quot;rationale&quot;:&quot;Elaborates on the DAW/production software used in the home studio setup discussed here.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1305,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:582,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:241},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;index&quot;,&quot;fileSlug&quot;:&quot;index&quot;,&quot;title&quot;:&quot;Entering the garden&quot;,&quot;content&quot;:&quot;&#92;n_I&#39;m trying desperately to resist the urge to write this entire website as a choose-your-own adventure game. Must, resist._&#92;n&#92;nAs you enter the garden, you can see a bunch of [[best albums in the universe|records]] for sale, or at least on display. You also hear [[danger-third-rail|a band]] playing somewhere inside. It&#39;s impossible to miss the huge amount of power extension cords and other wires darting through the gate, laying on the ground, and even going up over the walls of the garden. Whatever is going on here requires plenty of electricity it would seem.&#92;n&#92;nYou also see what looks like a disheveled madman rambling to himself about [[blog|blogging]].&#92;n&#92;nThere&#39;s a live digital display telling you about things that are going on right [[now]].&#92;n&#92;nA [[writings|scrappy-looking journal]] is open on a simple table, with some handwritten poetry and the like. &#92;n&#92;nIn the corner of the garden, there is a large smelly [[compost|compost pile]].&#92;n&#92;nYou can also read about [[digital-garden-itself|the digital garden itself]].&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;about&quot;,&quot;rationale&quot;:&quot;The index introduces the garden&#39;s creator, and the About Me node provides the biographical background a visitor would naturally seek next.&quot;},{&quot;slug&quot;:&quot;digital-gardening-principles&quot;,&quot;rationale&quot;:&quot;An entry page to the garden pairs well with the principles that define what this digital garden is trying to be.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:410,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:309,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:185},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;intrisic motivation&quot;,&quot;fileSlug&quot;:&quot;intrisic motivation&quot;,&quot;title&quot;:&quot;Intrisic Motivation&quot;,&quot;content&quot;:&quot;From what I&#39;ve been researching, **intrinsic motivation** is largely defined in terms of it&#39;s opposite, **extrinsic motivation**. Extrinsic motivation is doing something for the reasons that we&#39;re used to: a pat on the back, recognition, appreciation from others. In the age of social media, it&#39;s your likes, comments, follows, etc. It is your inclination to want to do something so that others will be proud of you, so that they will respect you, so that you will earn some reward.&#92;n&#92;nIntrinsic motivation, then, is more often just called motivation: &#92;&quot;I want to do the dishes tonight&#92;&quot; or &#92;&quot;I&#39;ve been writing songs again and I really want to keep doing it&#92;&quot;.&#92;n&#92;nWhile most people will have some degree of both, with the help of my therapist, I&#39;ve identified that I am largely driven by extrinsic motivation. I am not a _people pleaser_ per se, but I do things so that I can serve others, so they will appreciate and be proud of me. I do them so that others will want to keep me around...&#92;n&#92;nWhy is this? Well who knows really. And who cares? My theapist is very strongly [[DBT|DBT based]], and he respects my slightly [[Zen|buddhist views]] that the past doesn&#39;t exist. It doesn&#39;t matter why it&#39;s this way. If I seek to change it, I need only to know how.&#92;n&#92;n---&#92;n&#92;nSo how have I been approaching that then? So far, beyond just being mindful of it (another [[DBT| core DBT skill]]), I have been following a specific practice. What I&#39;ve been doing is _doing things in secret_. By things I mostly mean creative things, but I also mean just as as simply as doing the dishes but not making sure to tell [[Abby]] that I did.&#92;n&#92;nAt the start of a project, I will resolve to **never show it to anyone no matter what**. I&#39;m doing it just for myself. This isn&#39;t a sacred vow. Some part of me, my [shadow self](https://bumblingthroughdungeons.com/top-ten-games-you-can-play-in-your-head-by-yourself-review/), does know that if something comes out good enough -- or if I really just, you know, want to -- I could show people things. Interestingly enough, this does kind of follow the principle of [[dg-public|not having to show off everything]]. In the past couple years, I&#39;ve unfortunately used that last one as an excuse to just simply stop writing.&#92;n&#92;nBasically, this flips the reward structure on its head. Not only do I have to practice being satisfied with simply &#92;&quot;a job well done&#92;&quot;, but I start to get choosy about doing things at all because I know I&#39;m only doing them for myself (and not just paying lip service to that idea like many do).&#92;n&#92;nAnd then the magic happens. It&#39;s almost some kind of exposure therapy. Now that I&#39;m doing things just for myself, that process becomes more and more satisfying. And I can reach more of a [[zen|balanced path]] where I _can_ sometimes do things because I want to show them off. It kind of resets my insensitivity to praise, which I read was something behind some of this (and easily observable in the social media age: creators and influencers are often chasing a &#92;&quot;bigger hit&#92;&quot;, a &#92;&quot;larger win&#92;&quot;, suddenly simply 1 million views isn&#39;t enough).&#92;n&#92;nAnd like all things, like Buddhism and DBT, you&#39;re always practicing this (if you choose); you&#39;re never done. There is no finish line for building intrinsic motivation, and how would I know if I had reached it anyway? I must be self-satisfied with my own progress in this matter.&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;now&quot;,&quot;rationale&quot;:&quot;The &#39;now&#39; node explicitly mentions working on building intrinsic motivation, directly elaborating on this node&#39;s central theme.&quot;},{&quot;slug&quot;:&quot;motivation-music&quot;,&quot;rationale&quot;:&quot;Covers motivation specifically for writing/producing music, closely tied to the creative motivation discussed here.&quot;},{&quot;slug&quot;:&quot;philosophy&quot;,&quot;rationale&quot;:&quot;Elaborates on the Zen/determinist &#39;the past doesn&#39;t exist&#39; views referenced when discussing why motivation is the way it is.&quot;},{&quot;slug&quot;:&quot;dg-public&quot;,&quot;rationale&quot;:&quot;Expands on the &#39;learning in public&#39;/not showing off everything principle the author connects to his secret-creation practice.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1133,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:630,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:393},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;javascript-typescript&quot;,&quot;fileSlug&quot;:&quot;javascript-typescript&quot;,&quot;title&quot;:&quot;Javascript/Typescript&quot;,&quot;content&quot;:&quot;&#92;r&#92;nJavascript is the most popular programming language in the world. It is the language used to write logic for web pages. Also, due to the V8 engine and Nodejs, Javascript can be used on the so-called &#92;&quot;backend&#92;&quot; as a server technology without a browser.&#92;r&#92;n&#92;r&#92;nTypescript is a superset of Javascript that adds support for the computer science concept of &#92;&quot;types&#92;&quot;. This means that instead of having a variable, and it being all loosey-goosey about what kind of data is in it:&#92;r&#92;n&#92;r&#92;n```&#92;r&#92;nvar x = &#39;foo&#39;&#92;r&#92;n// Now it&#39;s a number!&#92;r&#92;nx = 1&#92;r&#92;nconsole.log(x + &#39;bar&#39;);&#92;r&#92;n// prints &#92;&quot;1bar&#92;&quot;, oops I forgot I put that number in there&#92;r&#92;n```&#92;r&#92;n&#92;r&#92;nInstead, you clearly define and declare what types of data go where. The coolest part of Typescript, in my opinion, is the fact that it is a _superset_ of Javascript. So all valid Javascript is valid Typescript. This allows you to transition to Typescript slowly, adding types here and there as you go, instead of having to convert a code project all at once. The downsides are that you have to use a _Typescript compiler_ to turn your code back into Javascript before you can do anything useful with it. Also, there&#39;s times where the types of certain data can be intentionally ambiguous, and there are firey hoops to jump through in those cases in order to get the compiler to &#92;&quot;play nice&#92;&quot;. Overall, though, Typescript is great and I would strongly recommend it to any team of more than 1 person.&#92;r&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;random-knowledge-about-javascript-and-typescript&quot;,&quot;rationale&quot;:&quot;That node covers the same Javascript/Typescript topic in more depth and would elaborate on the concepts here.&quot;},{&quot;slug&quot;:&quot;Vue.js&quot;,&quot;rationale&quot;:&quot;Vue.js is a Javascript/Typescript framework and directly builds on the technologies discussed here.&quot;},{&quot;slug&quot;:&quot;programming languages&quot;,&quot;rationale&quot;:&quot;This meta node ties together all the programming language nodes including Javascript/Typescript.&quot;},{&quot;slug&quot;:&quot;what-programming-language-should-i-learn&quot;,&quot;rationale&quot;:&quot;Discusses choosing languages including Javascript, extending the practical advice about the language.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:497,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:232,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:0},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;motivation-music&quot;,&quot;fileSlug&quot;:&quot;motivation-music&quot;,&quot;title&quot;:&quot;Music Making Motivation&quot;,&quot;content&quot;:&quot;As the founding, primary, and only member of [[danger-third-rail|Danger Third Rail]], these are my opinions on motivation for writing and producing music for the project.&#92;n&#92;nConsider the following graph:&#92;n&#92;n*TODO: insert graph*&#92;n&#92;nThe y axis is how good a song or album is, from the absolute worst to absolutely mind-blowingly incredible (all of this is my opinion of course). The x axis is how much the song or album inspires me to make music.&#92;n&#92;nSo of course there are 4 broad categories delineated by the chart.&#92;n&#92;n### Terrible and makes me want to make music&#92;n&#92;nThese are pretty easy to understand. Songs that are so bad that I think, &#92;&quot;Oh come on, I can do better than this. *Anyone* can do better than this!&#92;&quot;. I feel like I want to make music that is better than these because I think I can, it&#39;s really not that hard. And usually this is popular music I&#39;m considering. If *this* can get popular, imagine what I could do!&#92;n&#92;n### Great and makes me want to make music&#92;n&#92;nThis category is your classic &#92;&quot;[The Pixies](https://www.blowtorchrecords.com/post/why-pixies-are-the-perfect-band) are your favorite band&#39;s favorite band&#92;&quot; choices. You hear these songs, they&#39;re great, and suddenly you go out and buy a guitar because you want to be the next Joe Strummer. This is inspiration. This is what motivates a lot of music out there, the love of something great and inspiring.&#92;n&#92;n### Great and makes me not want to make music&#92;n&#92;nWhile music in the previous category is fun and inspiring, this category is composed more of the music that is *terrifyingly good*. It&#39;s intimidating. These songs and albums are so amazing, so detailed, so enthralling and engaging, so **perfect** that I can&#39;t imagine that anything I make would ever stack up. There&#39;s no point to making any music at all, because it will never be as good as these.&#92;n&#92;n### Terrible and makes me not want to make music&#92;n&#92;nThis one is a bit harder to pin down completely, and harder to explain. It&#39;s not really music that is heinously bad, per se, but more like uninspiring. I hear something in this category and I think, &#92;&quot;That sucks&#92;&quot; but instead of &#92;&quot;...and I could do so much better&#92;&quot; like above, it&#39;s more like &#92;&quot;...and this is what I&#39;m going to sound like so there&#39;s no point&#92;&quot;. Part of this is the idea that there are a hundred million songs on [[Spotify]] and ~50k being added every day. Clearly not all of this is in the &#92;&quot;great music&#92;&quot; categories above. They&#39;re probably crappy or worse. Why should I bother, I think, to add to this swirling mess?&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;the-unattainable-and-the-attainable&quot;,&quot;rationale&quot;:&quot;Directly explores the &#39;great and makes me not want to make music&#39; idea, contrasting albums that feel unattainable versus ones you feel you could make yourself.&quot;},{&quot;slug&quot;:&quot;intrisic motivation&quot;,&quot;rationale&quot;:&quot;This node is explicitly about motivation for making music, which connects to the discussion of intrinsic vs extrinsic motivation.&quot;},{&quot;slug&quot;:&quot;fake-it-music&quot;,&quot;rationale&quot;:&quot;Elaborates on the challenges and motivation of writing/producing music as a solo home musician for Danger Third Rail.&quot;},{&quot;slug&quot;:&quot;genre-thoughts&quot;,&quot;rationale&quot;:&quot;Discusses roadblocks in the music-making process and how listening tastes relate to what one is inspired to produce.&quot;},{&quot;slug&quot;:&quot;not-quite-writers-block&quot;,&quot;rationale&quot;:&quot;Continues the theme of struggling with motivation and productivity in songwriting.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:836,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:574,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:259},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;new-year-2025&quot;,&quot;fileSlug&quot;:&quot;new-year-2025&quot;,&quot;title&quot;:&quot;New Year&#39;s Day 2025&quot;,&quot;content&quot;:&quot;This year, for the holidays, my wife [[Abby]] and I spent 16 days in Massachusetts with her family. Tomorrow morning at 3 AM we head to the airport. We&#39;ve visited them every December for the past few years, but this year&#39;s visit was particularly long. Going into it, I was pretty worried that I would have several days of long boredom. I was worried there wouldn&#39;t be much to do in general. However, I was mostly wrong. There were only a few long mornings before everyone was up, but otherwise we kept pretty busy. We visited both of my sisters and their kids, on different days. We visited an old friend of Abby&#39;s and got to meet their 3 month old baby. I held the baby and he cooed and slept on me, which was very precious.&#92;n&#92;nToday is New Year&#39;s Day. I think at this point I&#39;ve done [[blog/new-year | New Year&#39;s posts]] to death. I&#39;m not sure there&#39;s anything left to say about it. I&#39;m not making any hard and fast resolutions, though we have a goal to **finally** get our apartment organized and livable by April 1. It might be a tough year, because in the past couple of months Abby has gotten some not-so-great news about her health. I&#39;m worried, I&#39;m anxious, but it is what it is. We&#39;ll keep going, keep trying, keep struggling and keep living. One foot in front of the other. One step at a time.&#92;n&#92;nMy wife&#39;s family is really lovely, did I mention that? They are sweet and caring and abundantly supportive of me and one another. They have graciously accepted me into their family and treat me like one of their own. Overall, it was a really amazing visit. There were lots of laughs, some great meals, and lots of one on one time with each member of the family. I can sometimes get really reactive with her parents, particularly her mother, and get frustrated when I think she&#39;s not listening or otherwise be mean to her. But looking back, I think I refrained from that for the majority of the trip, and not by any particular effort of my own. I think maybe I&#39;m just in a better place mentally this year than I have been in the past, which is something to be truly grateful for.&#92;n&#92;nSo welcome to 2025. So far it feels a lot like 2024!&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;giving-up-on-resolutions&quot;,&quot;rationale&quot;:&quot;This node discusses not making hard resolutions, which directly elaborates on the author&#39;s stance on abandoning New Year&#39;s resolutions.&quot;},{&quot;slug&quot;:&quot;another-year-without-resolutions&quot;,&quot;rationale&quot;:&quot;A parallel year-in-review post about forgoing resolutions that would deepen the connection between these New Year reflections.&quot;},{&quot;slug&quot;:&quot;new-year&quot;,&quot;rationale&quot;:&quot;Elaborates the recurring &#39;every day is New Year&#39;s Day&#39; philosophy the author references when saying he&#39;s done New Year&#39;s posts to death.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:732,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:409,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:205},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;nike-the-shit-out-of-it&quot;,&quot;fileSlug&quot;:&quot;nike-the-shit-out-of-it&quot;,&quot;title&quot;:&quot;NIKE the shit out of it&quot;,&quot;content&quot;:&quot;Sometimes I think I need to just NIKE the shit out of some songwriting (just do it).&#92;n&#92;nWhen this article was written, in November 2017, I hadn&#39;t published a song to [songs.travisbriggs.com](https://songs.travisbriggs.com) since July of that year.&#92;n&#92;n**It&#39;s gotten worse.**&#92;n&#92;nI apparently didn&#39;t publish a song _at all_ in 2022, and I&#39;m on track to not publish anything in 2024 either. I actually have written a few songs since then, but none that were finished enough (in either writing or arranging or recording) to warrant publishing. I haven&#39;t gone through the process to actually clean them all up, mix them, add missing instruments and all that. It just seems like a lot of work without a lot of payoff. Of course, the payoff might be that I don&#39;t end up writing remorseful garden nodes like this one.&#92;n&#92;nI feel like I&#39;ve lost a sense of wonder in my songwriting process. Sometimes, I&#39;m going at it with feverish diligence and follow through because I feel like I have to, I have to do it to make myself complete. Either that or I&#39;m just &#92;&quot;messing around&#92;&quot;, indulging in &#92;&quot;letting myself play&#92;&quot; but ending up with listless, half-complete junk because I&#39;m not forcing myself to write coherently.&#92;n&#92;nI could resolve now to challenge myself, to push my comfort zone and write something that moves my songwriting forward. I want to issue myself such a challenge. And I&#39;m not reluctant to do so because I feel I will fail, necessarily. I think I could definitely do it.&#92;n&#92;nThe real reluctance comes from the fact that I think I&#39;m stagnating for another reason. I&#39;ve developed the basic facets of songwriting to a certain degree. I can write songs. I can write songs where I write all of the instrumental parts, the arrangement, the mix, etc. But it&#39;s exhausting, friend. It really is.&#92;n&#92;nI want to collaborate. I want to come up with a strong, driving chorus with no consideration for how it will fit into a song, and have another real breathing person help me figure out an intro and verse that will work with it into a finished song. I want to play with a band, where the drum feel and groove drive the composition of the guitar and bass parts, rather than playing guitar parts, adding bass later, and always just having a drum machine on repeat for the whole song.&#92;n&#92;nWhen I first wrote this garden node I thought: _Sigh. It&#39;s not going to happen._ I felt like I was some kind of musical incel, where I&#39;ll never find anyone to collaborate with. I didn&#39;t know where to look, where to start. Basically, it&#39;s just as awkward as dating, except even more niche.&#92;n&#92;nSince then, in 2024, I&#39;ve started playing music with my friend Anosh. He&#39;s been learning to play drums and has said that playing together has helped him get better, quicker. I totally see those results. We play a bunch of covers, like Green Day songs which are easy on both guitar and drums. Last week, though, I introduced a little riff and asked him to play a certain drum beat, so I guess you could say it&#39;s our first original.&#92;n&#92;nWe don&#39;t have a bassist. We&#39;re not a band. We&#39;re not [[danger-third-rail|Danger Third Rail]].&#92;n&#92;nBut it&#39;s satisfying playing music with another musician in the room. It&#39;s not only good practice for my guitar and vocals, but it&#39;s inspiring. We&#39;ll see if it translates into any new material on [songs.travisbriggs.com](https://songs.travisbriggs.com).&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;bands-as-sports-teams&quot;,&quot;anchor_text&quot;:&quot;I want to play with a band&quot;,&quot;context&quot;:&quot;finished song. I want to play with a band, where the drum feel and groove&quot;,&quot;rationale&quot;:&quot;The node discusses playing in a band, which directly connects to the bands-as-sports-teams musings on band dynamics.&quot;},{&quot;slug&quot;:&quot;the-unattainable-and-the-attainable&quot;,&quot;anchor_text&quot;:&quot;Green Day songs&quot;,&quot;context&quot;:&quot;We play a bunch of covers, like Green Day songs which are easy on both guitar and drums&quot;,&quot;rationale&quot;:&quot;That node discusses Green Day albums as musical benchmarks the author aspires to.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;something-terrible&quot;,&quot;rationale&quot;:&quot;Elaborates on the &#39;Make Something Terrible Challenge&#39; the author gives himself to overcome creative stagnation, directly relevant to challenging his songwriting.&quot;},{&quot;slug&quot;:&quot;not-quite-writers-block&quot;,&quot;rationale&quot;:&quot;Discusses the same struggle of producing finished, publishable songs and the &#39;hundreds of songs&#39; process.&quot;},{&quot;slug&quot;:&quot;fake-it-music&quot;,&quot;rationale&quot;:&quot;Explores the exhaustion of one person writing all instrument parts versus a full band, exactly the frustration expressed here.&quot;},{&quot;slug&quot;:&quot;highs-and-lows-musician&quot;,&quot;rationale&quot;:&quot;Provides broader context on the author&#39;s home-studio recording history and solo production process referenced in this node.&quot;},{&quot;slug&quot;:&quot;motivation-music&quot;,&quot;rationale&quot;:&quot;Details the author&#39;s motivations for writing and producing music under the Danger Third Rail project, extending the reflection on drive and payoff.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1124,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:986,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:469},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;not the circumstances&quot;,&quot;fileSlug&quot;:&quot;not the circumstances&quot;,&quot;title&quot;:&quot;Not The Circumstances&quot;,&quot;content&quot;:&quot;_Turns out not where but who you&#39;re with that really matters_&#92;n&#92;n- Dave Matthews, _Best Of What&#39;s Around_, from the 1996 album _Under The Table And Dreaming_&#92;n&#92;nYou can&#39;t control what happens, only the way you respond to it. See also [[free will]].&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;now&quot;,&quot;rationale&quot;:&quot;The &#39;Now&#39; node explicitly states the belief that &#39;it&#39;s not the circumstances but how you react to them that matters&#39;, directly echoing this node&#39;s theme.&quot;},{&quot;slug&quot;:&quot;coping-skills&quot;,&quot;rationale&quot;:&quot;Coping skills node reflects on accepting pain and choosing resilience, elaborating on responding to what happens rather than the events themselves.&quot;},{&quot;slug&quot;:&quot;philosophy&quot;,&quot;rationale&quot;:&quot;The philosophy node covers determinism and existentialism, connecting to this node&#39;s ideas about control and free will.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:140,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:305,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:112},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;now&quot;,&quot;fileSlug&quot;:&quot;now&quot;,&quot;title&quot;:&quot;Now&quot;,&quot;content&quot;:&quot;2026 has been getting much better! Mostly from a mental health perspective. I&#39;ve&#92;ncome to truly believe that it&#39;s [[not the circumstances]] but how you react to them&#92;nthat matters. In that sense, what I&#39;m saying is: &#92;&quot;things&#92;&quot; aren&#39;t going better, they&#92;nweren&#39;t that bad to begin with.&#92;n&#92;nI&#39;m mentoring someone in [Google Summer of Code](https://summerofcode.withgoogle.com/)!&#92;nI&#39;ve done it twice before, both times for [[Kiwix]]. It&#39;s going well so far, my&#92;nstudent is really easy going and fun to work with.&#92;n&#92;nI really have truly embraced [[vibe coding]], and now not only as a practice that&#92;nI feel is somehow necessary to avoid my total obselescence in society.&#92;n&#92;nSpeaking of payoffs, I&#39;ve also been working on building [[intrisic motivation]].&#92;n&#92;nWork is going well. More stressful than usual, but I actually think that&#39;s because&#92;nI&#39;m more motivated and engaged then I&#39;ve been in a long time.&#92;n&#92;nCurrently, I&#39;m still living in San Francisco, in the same apartment I&#39;ve lived&#92;nin since we moved there in December 2012. What can I say, it&#39;s cozy,&#92;nrent-controlled and in an awesome neighborhood (near Zeitgeist and Pizza Zone).&#92;nI also have the same job at YouTube that I&#39;ve had all that time.&#92;n&#92;nNow I&#39;m typing a whole bunch of crap! Why? Because I want to test if the autosave interrupts my typing!&#92;n&#92;n---&#92;n&#92;n### What is a &#39;now&#39; page?&#92;n&#92;nA now page is like an [[about]] page, but with the scope of &#92;&quot;right now&#92;&quot; instead&#92;nof a long view. The easiest way to think about it is: what would you tell a&#92;nfriend that you haven&#39;t seen in a while about what you&#39;re up to?&#92;n&#92;n### Where can I find a list of people with websites that feature a &#39;now&#39; page?&#92;n&#92;nJust go to [nownownow.com](https://nownownow.com). You can add your site to that&#92;ndirectory should you choose to add a /now page to your site.&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;YouTube&quot;,&quot;anchor_text&quot;:&quot;YouTube&quot;,&quot;context&quot;:&quot;I also have the same job at YouTube that I&#39;ve had all that time&quot;,&quot;rationale&quot;:&quot;YouTube has a dedicated node describing it as the company that signs his paycheck.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;ai&quot;,&quot;rationale&quot;:&quot;His embrace of vibe coding and worry about &#39;obsolescence in society&#39; connects to his broader thoughts on the AI era.&quot;},{&quot;slug&quot;:&quot;philosophy&quot;,&quot;rationale&quot;:&quot;The &#39;not the circumstances but how you react&#39; idea and mental-health framing tie into his existentialist/Zen philosophy node.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:667,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:306,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:95},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;null-rail&quot;,&quot;fileSlug&quot;:&quot;null-rail&quot;,&quot;title&quot;:&quot;Null Rail&quot;,&quot;content&quot;:&quot;In 2026, I&#39;ve now really embraced [[ai|AI]] and [[vibe coding]]. Like really embraced it.&#92;n&#92;nOne of the projects that I&#39;ve been working on is [Null Rail](https://null.dangerthirdrail.com). It is a site where I am &#92;&quot;learning&#92;&quot; in public, just like this digital garden. It basically came about because I wanted to share some of these tracks/songs, but I didn&#39;t want to conflate them with my actual, hand-crafted, 100% human made demos at [songs.travisbriggs.com](https://songs.travisbriggs.com). I also wanted to be able to share notes on each of the songs, to really document my process as well as my thoughts on the end result.&#92;n&#92;nI took the opportunity to use [Claude Design](https://www.anthropic.com/news/claude-design-anthropic-labs), which was pretty new at the time. I fed it a screenshot of the now defunct [[Rainfall]], RIP (TODO: embed image). It came up with a site with a remarkably close color scheme and design system. The point of using Rainfall was not because that site was particularly well designed, but that it was designed _by me, from scratch, with my own ideas_.&#92;n&#92;nOf course, once I started [[vibe coding]] it, I started recklessly adding all kinds of features that I was thinking of. It was originally going to just be a blog style [[dg-reverse|reverse chronological list]]. With a media player of course. But then I thought, maybe I can showcase different versions of the track? This came about organically because as I was playing in [[Suno]], I would naturally try different variations. That also later came in handy when I started making [versions from samples](https://null.dangerthirdrail.com/#sample/version/Starting%20Point) (this is the first one ever), as well as feeding in [my own finished songs](https://null.dangerthirdrail.com/#you-re-a-star/version/Minimal%20Prompting) (that&#39;s a whole other can of worms that I have many feels about).&#92;n&#92;nFunctionally, this works. It gives me an easy way to share Suno experiments with people, without polluting my existing showcase projects or shuffling .mp3 files around.&#92;n&#92;nSo what&#39;s the end game here? I&#39;ve.....asked AI for the answer. The Suno tracks sound good, they&#39;re beyond an uncanny valley. But they have significant flaws and AI &#92;&quot;tells&#92;&quot;. The vocals sound good at first glance, but if you listen, they&#39;re obviously synthetic. **These are demos**. There is a _ton_ of embellishment; noodling; &#92;&quot;virtuoso-ism&#92;&quot; (a term I just invented to describe lots of impossibly fast and perfect notes that no human could ever play). The mixes just sound like &#92;&quot;mush&#92;&quot;, I don&#39;t have a better word to describe it. The vocal lines are pretty distinct, but there&#39;s no separation between the instruments in the mix. (Hmm, I wonder why. Oh right, there _are no instruments!_).&#92;n&#92;nAn existential question then: is it valuable to convert my demos (ie [songs.travisbriggs.com](https://songs.travisbriggs.com)) into, you know, more polished demos? In some ways, it makes me think of myself as a pure songwriter. Here comes the personality crisis then, because I&#39;ve always prefered the view of myself as a full on DIY indie musician, in some sense an [[danger-third-rail|act or artist]] that happens to be mostly one person (a la Dashboard Confessional or The Shins or the first Foo Fighters album).&#92;n&#92;nCan I find some way to pitch these songs to someone who may be interested? I see a few problems with that:&#92;n&#92;n* I&#39;m writing in styles that were popular 20-30 years ago and have almost zero relevance today&#92;n* I have no songwriting or industry network&#92;n* I&#39;m writing songs that would be traditionally performed by rock/blues/punk bands. Those bands write their own damn songs, thank you very much. (Though there is debate about how much help they get from producers when in the studio)&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;dg-public&quot;,&quot;anchor_text&quot;:&quot;learning&quot;,&quot;context&quot;:&quot;It is a site where I am &#92;&quot;learning&#92;&quot; in public, just like this digital garden&quot;,&quot;rationale&quot;:&quot;The concept of learning in public is directly the subject of this node.&quot;},{&quot;slug&quot;:&quot;genre-thoughts&quot;,&quot;anchor_text&quot;:&quot;writing in styles that were popular 20-30 years ago&quot;,&quot;context&quot;:&quot;I&#39;m writing in styles that were popular 20-30 years ago and have almost zero relevance today&quot;,&quot;rationale&quot;:&quot;This node discusses the dichotomy between the genres he writes and listens to versus what&#39;s marketable.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;ai-music-trends&quot;,&quot;rationale&quot;:&quot;Elaborates on the philosophical debate about AI-made music versus human craft, directly related to the &#39;AI tells&#39; and uncanny valley concerns here.&quot;},{&quot;slug&quot;:&quot;highs-and-lows-musician&quot;,&quot;rationale&quot;:&quot;Provides deeper background on his home recording process and the demos hosted at songs.travisbriggs.com referenced here.&quot;},{&quot;slug&quot;:&quot;motivation-music&quot;,&quot;rationale&quot;:&quot;Connects to his ongoing questions about the value and end game of making music for Danger Third Rail.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1321,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:974,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:595},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;philosophy&quot;,&quot;fileSlug&quot;:&quot;philosophy&quot;,&quot;title&quot;:&quot;philosophy&quot;,&quot;content&quot;:&quot;&#92;nI don&#39;t have a ton of opinions on philosophy. I consider myself something of an existentialist, because I believe that life and existence are absurd and without inherent meaning. We must create our own meaning. However most days it&#39;s hard for me to actually picture [Sisyphus happy](https://en.wikipedia.org/wiki/The_Myth_of_Sisyphus).&#92;n&#92;nI don&#39;t believe in free will. I am a determinist. I believe there is plenty of evidence that &#92;&quot;free will&#92;&quot; is the name we give to the process by which our conscious mind explains to itself why it did something.&#92;n&#92;nI&#39;m also an [[atheism|atheist]], some sort of [[zen|Zen Buddhist]].&#92;n&#92;nIt&#39;s hard to write a garden node title &#92;&quot;philosophy&#92;&quot;, which exists in the abstract without any particular object that the supposed philosophy is focused on. Relatedly, I&#39;ve started getting interested in [[Zen]] again. In one of the books I was reading about Zen, the author discussed how it&#39;s impossible to picture an object without a subject. I think this page is kind of a testament to that.&#92;n&#92;nAt some points in time I&#39;ve described myself as an &#92;&quot;Atheistic Taoist&#92;&quot;. Anyways, this is the philosophy node, not the religion node. But I think I need to take more inspiration from Wikipedia, where yes, [Everything In Its Right Place](https://www.youtube.com/watch?v=onRk0sjSgFU), but also it&#39;s okay if there&#39;s some redundant information here and there, if it helps explain and clarify things. And especially, in the case of this digital garden, if it adds flavor or character or I just, you know, feel like doing it!&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;free will&quot;,&quot;anchor_text&quot;:&quot;free will&quot;,&quot;context&quot;:&quot;I don&#39;t believe in free will. I am a determinist.&quot;,&quot;rationale&quot;:&quot;There is a dedicated node about Free Will, which this sentence directly discusses.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;not the circumstances&quot;,&quot;rationale&quot;:&quot;That node explicitly ties responding to circumstances to free will, extending this node&#39;s determinism discussion.&quot;},{&quot;slug&quot;:&quot;a-story-of-failure&quot;,&quot;rationale&quot;:&quot;It expresses the same existentialist/no-free-will &#39;driftwood on the ocean&#39; outlook articulated here.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:556,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:324,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:126},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;plans&quot;,&quot;fileSlug&quot;:&quot;plans&quot;,&quot;title&quot;:&quot;Plans for the digital garden&quot;,&quot;content&quot;:&quot;&#92;nHere I&#39;d like to discuss some of my plans, hopes, aspirations and whatnot for this digital garden. I&#39;ve documented some of the more [technical issues](https://github.com/audiodude/garden.travisbriggs.com/issues) on the garden&#39;s [Github repo](https://github.com/audiodude/garden.travisbriggs.com). But I guess what I want to do here is talk more about what I plan to write about, how I plan to organize things.&#92;n&#92;nI&#39;m trying to do all this in accordance with my interpretation of the [[digital-gardening-principles|digital gardening principles]].&#92;n&#92;nI did eventually add a [[comments-research|comments system]], which I&#39;m quite proud of!&#92;n&#92;nI added a [[now]] page, which I think is some kind of progress. Now (see what I did there?) I need to make sure I keep it updated. That&#39;s the struggle in general with this garden, is that if I don&#39;t have something new to say or some idea to convey, I don&#39;t spend much time &#92;&quot;tending&#92;&quot; it. So far, my [[compost|compost pile]] is a good step in the direction of eschewing [[dg-reverse|reverse chronilogical links]] at least.&#92;n&#92;nI still want to move the content in my blog posts into more organic topic pages. Some of them, like [[blog/what-programming-language-should-i-learn|&#92;&quot;What programming language should I learn?&#92;&quot;]] lend themselves nicely to that. But others, where I&#39;m just [[blog/latest-and-not-so-greatest|randomly complaining about music production]] or something, I&#39;m not sure how to work them in. Maybe that&#39;s the fun!&#92;n&#92;nI think the spirit of the thing is that it grows organically, like a real garden.&#92;n&#92;nOne thing I&#39;ve done recently is create a mini CMS for myself, a la the one that I vibe coded for [[null-rail]]. I realized that with a web based GUI for writing and organizing posts makes things so much easier than editing flat files in [VSCode](https://code.visualstudio.com/). I&#39;ve already know for a while that the less friction there is, the more likely I am to write and edit and update.&#92;n&#92;nI definitely already have a bunch of &#92;&quot;Stub&#92;&quot; and &#92;&quot;Start&#92;&quot; quality articles that I could expand upon. Not sure what exactly to do there other than simply write a Wikipedia article on the topic (like [[DistroKid]]). I read in Andy Matuschak&#39;s &#92;&quot;Evergreen Notes&#92;&quot; that [Evergreen notes should be concept-oriented](https://notes.andymatuschak.org/About_these_notes?stackedNotes=z4SDCZQeRo4xFEQ8H4qrSqd68ucpgE6LU155C&amp;stackedNotes=z6bci25mVUBNFdVWSrQNKr6u7AZ1jFzfTVbMF) which I think I&#39;m not exactly following, because I&#39;ve developed lots of garden &#92;&quot;nodes&#92;&quot; that are nouns.&#92;n&#92;nAlso Andy says that [Evergreen notes should be densely linked](https://notes.andymatuschak.org/About_these_notes?stackedNotes=z4SDCZQeRo4xFEQ8H4qrSqd68ucpgE6LU155C&amp;stackedNotes=z6bci25mVUBNFdVWSrQNKr6u7AZ1jFzfTVbMF&amp;stackedNotes=z2HUE4ABbQjUNjrNemvkTCsLa1LPDRuwh1tXC) which I knew intuitively, but I hadn&#39;t really been following. I think I need to actively seek out and link together my nodes (and no, I&#39;m not going to belabor the analogy and start calling them &#92;&quot;plants&#92;&quot; or &#92;&quot;seeds&#92;&quot;). I&#39;m also considering using vibe coding to analyze garden nodes and do this.&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;vibe coding&quot;,&quot;anchor_text&quot;:&quot;vibe coded&quot;,&quot;context&quot;:&quot;a mini CMS for myself, a la the one that I vibe coded for&quot;,&quot;rationale&quot;:&quot;The node discusses vibe coding, which has a dedicated node.&quot;},{&quot;slug&quot;:&quot;vibe coding&quot;,&quot;anchor_text&quot;:&quot;vibe coding&quot;,&quot;context&quot;:&quot;I&#39;m also considering using vibe coding to analyze garden nodes&quot;,&quot;rationale&quot;:&quot;Direct mention of the vibe coding practice covered by that node.&quot;},{&quot;slug&quot;:&quot;digital-garden-itself&quot;,&quot;anchor_text&quot;:&quot;this digital garden&quot;,&quot;context&quot;:&quot;plans, hopes, aspirations and whatnot for this digital garden&quot;,&quot;rationale&quot;:&quot;This node is about the garden which has its own dedicated overview node.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;dg-evergreen&quot;,&quot;rationale&quot;:&quot;The node discusses Andy Matuschak&#39;s Evergreen Notes concept, elaborated in this node.&quot;},{&quot;slug&quot;:&quot;dg-new&quot;,&quot;rationale&quot;:&quot;The idea of the garden embracing new tools and growing organically connects to this principle node.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1283,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:522,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:173},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;programming languages&quot;,&quot;fileSlug&quot;:&quot;programming languages&quot;,&quot;title&quot;:&quot;Programming languages (meta)&quot;,&quot;content&quot;:&quot;I realize that I&#39;ve written a lot about different programming languages that I&#39;m familiar with in this digital garden. This node is sort of a meta node that serves to tie those pages together a bit.&#92;n&#92;nHere is a list:&#92;n&#92;n* [[Python]] - my current go to for pretty much everything. [[wp-1.0|My wikipedia bot]] was written in it. So was [[Rainfall]].&#92;n* [[javascript-typescript|JavaScript/TypeScript]] - This is what I mostly do at work now. And I use it for the web apps listed above. I love pairing it with the [[Vue.js]] framework for modern frontend applications.&#92;n* [[Ruby on Rails]]&#92;n* [[Perl]]&#92;n* [[Java]]&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;what-programming-language-should-i-learn&quot;,&quot;rationale&quot;:&quot;This meta node listing programming languages naturally connects to the guide on which language a beginner should learn.&quot;},{&quot;slug&quot;:&quot;random-knowledge-about-javascript-and-typescript&quot;,&quot;rationale&quot;:&quot;Elaborates specifically on the JavaScript/TypeScript entry mentioned in the list.&quot;},{&quot;slug&quot;:&quot;warnings-python&quot;,&quot;rationale&quot;:&quot;Provides a deeper technical dive into Python, which is the first language featured in this node.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:319,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:345,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:162},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;recording-setup&quot;,&quot;fileSlug&quot;:&quot;recording-setup&quot;,&quot;title&quot;:&quot;Recording setup&quot;,&quot;content&quot;:&quot;&#92;r&#92;nI have had some different recording setups over the past 20+ years I&#39;ve been making digital music, but all of them were based around recording instruments into a [DAW](https://www.avid.com/resource-center/what-is-a-daw). Currently my recording studio is in a corner of my kitchen and is based around a Windows 11 computer and digital composing/recording/editing in [[ableton-12|Ableton]]. Previously I used Ableton on a Mac, but I wasn&#39;t interested in buying Macs anymore since they switched to Apple Silicon. I&#39;ve got a [Steinberg UR22](https://www.sweetwater.com/store/detail/UR22C--steinberg-ur22c-usb-audio-interface?cond=UR22CU1) audio interface that I plug guitar or a mic into, or sometimes both. I haven&#39;t recorded acoustic guitar in like 8 years, mostly I just do electric. I don&#39;t mic any amps, I always just use amp modelling plugins like [Amplitube](https://www.ikmultimedia.com/products/amplitube5/?pkey=amplitube-5-max-v2) and [Guitar Rig](https://www.native-instruments.com/en/products/komplete/guitar/guitar-rig-7-pro/). I also own an electric bass that I can record using the same audio interface and plugins. And I have a couple of MIDI keyboards, including an [Akai MPK Mini](https://www.sweetwater.com/store/detail/MPKMiniPlus--akai-professional-mpk-mini-plus-37-key-keyboard-controller) which sits directly next to my computer chair.&#92;r&#92;n&#92;r&#92;nIt&#39;s a very sparse setup, but I like it because it mostly &#92;&quot;stays out of my way&#92;&quot;.&#92;r&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;highs-and-lows-musician&quot;,&quot;rationale&quot;:&quot;Directly discusses the evolution of the author&#39;s home recording setup in his bedroom/kitchen, elaborating on this node&#39;s topic.&quot;},{&quot;slug&quot;:&quot;ableton&quot;,&quot;rationale&quot;:&quot;General node about Ableton Live, the DAW central to this recording setup.&quot;},{&quot;slug&quot;:&quot;danger-third-rail&quot;,&quot;rationale&quot;:&quot;The band/recording project that uses this recording setup to produce music.&quot;},{&quot;slug&quot;:&quot;music-projects-as-ephemera&quot;,&quot;rationale&quot;:&quot;Discusses the author&#39;s Ableton/Reason project structure and recording history, extending the setup details here.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:609,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:372,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:154},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;spanish&quot;,&quot;fileSlug&quot;:&quot;spanish&quot;,&quot;title&quot;:&quot;A bit of Spanish&quot;,&quot;content&quot;:&quot;Honestly, Spanish is by far the most useful language I could end up learning, seeing as I live in the San Francisco Mission District.&#92;r&#92;n&#92;r&#92;nI took Spanish in middle school and high school. Although I don&#39;t currently speak it, I can read and pronounce words (Spanish has regular pronunciation, unlike English). When I went to [[mexico-city|Mexico City]] in February 2024, I found that I was definitely able to communicate to some degree with people at cafes or on the street. I didn&#39;t understand much of what was spoken to me, but I could understand written text pretty well, and piece together phrases to convey what I wanted to convey.&#92;r&#92;n&#92;r&#92;nIn 2023 I signed up for [Pimsleur Spanish](https://www.pimsleur.com/learn-spanish-latin-american/subscription-all-access). I did the first audio lesson (written lessons don&#39;t start until after the second lesson). I only stuck with it for like a week. Part of the problem is that the first couple of lessons are just way too basic for me. But honestly, I wish I could stick with it. Who doesn&#39;t want to learn another language? And I have a leg up on Spanish, so to speak.&#92;r&#92;n&#92;r&#92;nI also downloaded a deck of Spanish phrases for the [[anki|Anki flashcard system]].&#92;r&#92;n&#92;r&#92;nActually, it&#39;s interesting that I&#39;m using Pimsleur and Anki, because they both used the &#92;&quot;spaced repetition&#92;&quot; method for showing you something right when you were about to forget it, and thus helping you commit it to long term memory. Or at least that&#39;s the claim, and I know that definitely the Anki folks claim to have actual research to back it up.&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[]},&quot;usage&quot;:{&quot;input_tokens&quot;:558,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:114,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:93},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;sudomake-friends&quot;,&quot;fileSlug&quot;:&quot;sudomake-friends&quot;,&quot;title&quot;:&quot;Sudomake Friends&quot;,&quot;content&quot;:&quot;Once I started using [OpenClaw](https://openclaw.ai/) (then switched to [nanoclaw](https://github.com/nanocoai/nanoclaw)), one of the coolest main takeaways was that I could get AI bots to message me on [Telegram](https://telegram.org/).&#92;n&#92;nI thought about all the news articles about how people had gotten addicted to talking to LLMs that they considered to be real people, and my conclusion was that I should try it out!&#92;n&#92;nSo I made [Sudomake Friends](https://github.com/audiodude/sudomake-friends).&#92;n&#92;nIt&#39;s kind of like an RPG where you roleplay having friends....🙃&#92;n&#92;nYou enter information about yourself, and then &#92;&quot;roll&#92;&quot; the friends based on your interests and personality. You can edit them and re-roll in a [TUI](https://en.wikipedia.org/wiki/Text-based_user_interface).&#92;n&#92;nOnce you&#39;ve selected your friends and added them to a Telegram group, they text you and each other based on their &#92;&quot;work and sleep schedules&#92;&quot;. They respond to chats.....but not always, like real people. And they don&#39;t respond in 3 seconds either, like real people. They have their own interests and perosnalities, and can initiate chats and chat with each other.&#92;n&#92;nI&#39;ve been using it myself with 4 friends for over a month and it&#39;s.....interesting. It definitely works better when I just fire off random ideas and stuff into the chat and see what happens. Unfortunately, I&#39;ve noticed that when they start chats, they&#39;re very formulaic and uninteresting.&#92;n&#92;nIt is definitely a bit uncanny for my phone to beep and when I look down, it&#39;s a text from one of my imaginary friends.&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;ai&quot;,&quot;anchor_text&quot;:&quot;AI bots&quot;,&quot;context&quot;:&quot;I could get AI bots to message me on&quot;,&quot;rationale&quot;:&quot;The node discusses AI bots and LLMs, which the ai node directly covers.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;vibe coding&quot;,&quot;rationale&quot;:&quot;This project is one of Travis&#39;s vibe-coded creations, elaborated in the vibe coding node.&quot;},{&quot;slug&quot;:&quot;null-rail&quot;,&quot;rationale&quot;:&quot;Another &#39;learning in public&#39; AI-driven personal project by the same author, sharing themes.&quot;},{&quot;slug&quot;:&quot;now&quot;,&quot;rationale&quot;:&quot;The now page discusses embracing AI, nanoclaw-style tools, and vibe coding projects like this one.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:566,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:389,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:158},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;taper&quot;,&quot;fileSlug&quot;:&quot;taper&quot;,&quot;title&quot;:&quot;Taper&quot;,&quot;content&quot;:&quot;&#92;nIf you read the Taper 12 [about page](https://taper.badquar.to/12/about.html#submit), you will find that submissions for Taper #13 are due Sept 13 2024, approximately two weeks from the time of this writing.&#92;n&#92;n*But what is Taper?*&#92;n&#92;nTaper is an online &#92;&quot;zine-type&#92;&quot;...thing...where digital artists, poets and agitators submit pieces for each published collection. They&#39;re usually something between an &#92;&quot;interactive poem&#92;&quot; a &#92;&quot;visualization&#92;&quot; or some avant garde HTML experiment. They&#39;re very forward thinking and very cool. I&#39;ve only looked at a couple of the art projects/poems in #9 so far, and I must confess I&#39;ve missed every Taper installment since #3 in 2019. I bet they just weren&#39;t up to date on sending the updates to their mailing list or whatever. But there&#39;s definitely some cool stuff in there and I recommend the [full archives](https://taper.badquar.to/). I actually submitted [this piece](https://tilde.town/~audiodude/duality/) for Taper #2, which was about duality, and it got rejected because the file size was too big (embedded JPG), and the editors found the writing too incoherent.&#92;n&#92;nTaper is definitely one of those things that &#92;&quot;lives in my head rent free&#92;&quot; as the kids say. In fact, yesterday I spent about 2 hours working on a potential submission for Taper 13. I got as far as laying out a webpage and writing some JavaScript for the project, but when I went to add an [SVG](https://developer.mozilla.org/en-US/docs/Web/SVG) to the page, I thought, &#92;&quot;I better check how big this is getting&#92;&quot;. At that point, it was about 6 kilobytes, but unfortunately the size limit for submissions is the microscopic, ridiculous, ludicrous 2 kilobytes. I guess they must plan on doing this for 100 years and want to make sure they can fit it all on a floppy disk at the end of it all (sarcasm). Though it might be something like this, where they have ambitions of storing or displaying the zines in some ridiculously retro or restricted medium.&#92;n&#92;nAnyways, I removed the SVG and checked again, but I was still at 4k, twice the limit. At that point I gave up and put my laptop away. I like making weird HTML art/poetry projects, but so far I haven&#39;t found a place besides Taper to submit them. And as far as Taper goes, I&#39;m just overweight.&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;javascript-typescript&quot;,&quot;anchor_text&quot;:&quot;writing some JavaScript&quot;,&quot;context&quot;:&quot;laying out a webpage and writing some JavaScript for the project&quot;,&quot;rationale&quot;:&quot;The node mentions writing JavaScript, which has a dedicated node.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;writings&quot;,&quot;rationale&quot;:&quot;This node discusses making poetry/art projects for submission, which relates to the author&#39;s broader collection of creative writings.&quot;},{&quot;slug&quot;:&quot;font-of-creativity&quot;,&quot;rationale&quot;:&quot;Taper as a creative outlet ties into the author&#39;s reflections on making creative art/poetry projects.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:799,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:426,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:224},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;test-post-plz-ignore&quot;,&quot;fileSlug&quot;:&quot;test-post-plz-ignore&quot;,&quot;title&quot;:&quot;Test post, plz ignore&quot;,&quot;content&quot;:&quot;&#92;nTest post, plz ignore.&#92;n&#92;n🎉&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[]},&quot;usage&quot;:{&quot;input_tokens&quot;:76,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:21,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:0},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;vibe coding&quot;,&quot;fileSlug&quot;:&quot;vibe coding&quot;,&quot;title&quot;:&quot;Vibe Coding&quot;,&quot;content&quot;:&quot;Vibe coding.&#92;n&#92;nWow.&#92;n&#92;nI started vibe coding in 2025, around the time the term was invented (TODO: link/screenshot).&#92;n&#92;nSince April 2026, I have been a vibe coding _fiend_. I have vibe coded fucking everything. For me, vibe coding in 2026 is like the way people started using ChatGPT in 2023. I just use it constantly.&#92;n&#92;nIn some sense, I&#39;ve forgotten how to write regular code, seriously. Maybe not &#92;&quot;how&#92;&quot; per se, but I&#39;ve lost all mostivation or inclination to do so.&#92;n&#92;nIn many senses, I&#39;ve come to see it as a way to truly explore lots of ideas quickly that would be too expensive in terms of time/effort investment, given the [[intrisic motivation|payoff]].&#92;n&#92;nI&#39;ve got lots of feelings about techniques for this. Really at this point I&#39;m genuinely excited to learn about and try new techniques. I don&#39;t feel somehow obligated because I&#39;m worried about some future where I&#39;m obsolete in society.&#92;n&#92;nI&#39;ve also been thinking about [[when to vibe code|what contexts]] it works best in (especially the _personal project/throwaway project_ v _serious project/work_ splits).&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;ai&quot;,&quot;anchor_text&quot;:&quot;ChatGPT in 2023&quot;,&quot;context&quot;:&quot;vibe coding in 2026 is like the way people started using ChatGPT in 2023&quot;,&quot;rationale&quot;:&quot;The AI node discusses ChatGPT&#39;s release and the AI era, directly relevant to this comparison.&quot;},{&quot;slug&quot;:&quot;harness-matters-more&quot;,&quot;anchor_text&quot;:&quot;techniques&quot;,&quot;context&quot;:&quot;I&#39;ve got lots of feelings about techniques for this&quot;,&quot;rationale&quot;:&quot;The harness node discusses coding techniques and tooling for AI-assisted/vibe coding.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;null-rail&quot;,&quot;rationale&quot;:&quot;Null Rail is a vibe-coded music project that documents Travis&#39;s embrace of vibe coding in public.&quot;},{&quot;slug&quot;:&quot;now&quot;,&quot;rationale&quot;:&quot;The Now page mentions truly embracing vibe coding and building intrinsic motivation, elaborating on this node&#39;s themes.&quot;},{&quot;slug&quot;:&quot;ai-coding-benchmarks&quot;,&quot;rationale&quot;:&quot;Discusses the experience of AI coding over raw model power, relevant to vibe coding techniques.&quot;},{&quot;slug&quot;:&quot;Suno&quot;,&quot;rationale&quot;:&quot;Suno is described as &#39;vibe coding for songs&#39;, a parallel application of the concept.&quot;},{&quot;slug&quot;:&quot;sudomake-friends&quot;,&quot;rationale&quot;:&quot;A vibe-coded/AI project illustrating rapid idea exploration mentioned in this node.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:431,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:450,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:0},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;warnings-python&quot;,&quot;fileSlug&quot;:&quot;warnings-python&quot;,&quot;title&quot;:&quot;How to squash warnings in Python by elevating them to errors&quot;,&quot;content&quot;:&quot;&#92;r&#92;n[[Python]] has a great Exception handling system. It also has a lesser used but still important system of &#92;&quot;warnings&#92;&quot;, which are like Exceptions except they are intended when a &#92;&quot;condition (normally) doesn’t warrant raising an exception and terminating the program&#92;&quot;. They are used probably most familiarly as deprecation warnings, when you&#39;re using an import or module or method that has been replaced and shouldn&#39;t be used anymore.&#92;r&#92;n&#92;r&#92;nFor the [[wp-1.0|WP 1.0 project]], I have been increasingly annoyed that one or more of my tests in my test suite are emitting warnings from `pymysql` about MySQL data truncation. Data truncation is when you try to store, say, a 10 character string in a column that can only hold 9 characters. MySQL will generally &#92;&quot;lop off&#92;&quot; the last character (truncate) and store the remaining nine. When it does this, it issues a warning (depending on how your MySQL/MariaDB server is set up), and pymysql echoes these warnings. Presumably this is helpful if you have a bug, you can go to your logs and see &#92;&quot;Well we have 1000 instances of telephone numbers being &#39;truncated&#39;, maybe that&#39;s the problem!&#92;&quot;. It doesn&#39;t stop the flow of the program or throw an exception, like stated before, it&#39;s just a warning.&#92;r&#92;n&#92;r&#92;nAnyways, something in my test was causing one of these truncation warnings. The problem is, the warning just got spit out to the terminal on stderr while all the tests were running, so it was really hard to tell where it was coming from. I had some idea which file it was based on the value that was being truncated, but that was it.&#92;r&#92;n&#92;r&#92;nI was vaguely familiar, or at least felt strongly, that there was a way to turn these warnings into proper exceptions, at least temporarily. That way, my program (even my test program) would get interrupted and I would see a stack trace telling me which line of code was being executed when the warning was emitted. Instead of a warning being emitted, in fact, the warning would be raised like a normal exception. Well I wasn&#39;t wrong, there&#39;s a few ways to do this.&#92;r&#92;n&#92;r&#92;nThe [warnings module](https://docs.python.org/3/library/warnings.html) talks about the different classifications of warnings and some of the ways to &#92;&quot;filter&#92;&quot; them. What we&#39;re interested in is [&#92;&quot;error&#92;&quot;](https://docs.python.org/3/using/cmdline.html#cmdoption-W) (turn matching warnings into exceptions). One way of changing the filters is to use a filter string as a command line argument to Python with `python -W error`, for example, which will match all warnings and turn them into errors. This command line argument is [described here](https://docs.python.org/3/using/cmdline.html#cmdoption-W).&#92;r&#92;n&#92;r&#92;nUnfortunately, I couldn&#39;t pass the python binary the `-W` flag, because I wasn&#39;t invoking it directly to run my test scripts. Instead, I was using the `nosetests` wrapper script. So I needed something else.&#92;r&#92;n&#92;r&#92;nLuckily, I found [the PYTHONWARNINGS](https://docs.python.org/3/using/cmdline.html#envvar-PYTHONWARNINGS) environment variable. This let me pass the filter string &#92;&quot;all the way down&#92;&quot; to wherever the python interpreter was being invoked. At first, I tried:&#92;r&#92;n&#92;r&#92;n```&#92;r&#92;nPYTHONWARNINGS=error nosetests&#92;r&#92;n```&#92;r&#92;n&#92;r&#92;nThis was, of course, a disaster, because my program immediately crashed with an exception about some import deprecation in some deep library I didn&#39;t even know I was using. So clearly I was going to have to be more specific with my filters. My warning looked like this:&#92;r&#92;n&#92;r&#92;n```&#92;r&#92;n/home/tmoney/code/wp1/venv/lib/python3.9/site-packages/pymysql/cursors.py:329:&#92;r&#92;nWarning: (1292, b&#39;Value truncated for `1234` something something...&#39;)&#92;r&#92;n```&#92;r&#92;n&#92;r&#92;nEventually, with some trial and error, I landed on the following filter:&#92;r&#92;n&#92;r&#92;n```&#92;r&#92;nPYTHONWARNINGS=&#39;error:(1292::pymysql.cursors&#39; nosetests&#92;r&#92;n```&#92;r&#92;n&#92;r&#92;nThis says: filter all warnings that start with `(1292` and are raised from the module `pymysql.cursors` and turn them into errors. The consecutive &#39;::&#39; is in there because I&#39;m using an empty string for the &#92;&quot;category&#92;&quot; classification. Seems like a somewhat magical incantation, but it worked!&#92;r&#92;n&#92;r&#92;nOnce my warning was being raised as an exception, I could see the line that was causing it, and I realized the mistake in my SQL syntax that led to it. I fixed it, and no more warning! I&#39;m thinking about repeating this process with other warnings that have been &#92;&quot;junking up&#92;&quot; my test output, and I probably will.&#92;r&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;programming languages&quot;,&quot;rationale&quot;:&quot;This node covers Python-specific debugging; the meta programming languages node ties together the author&#39;s language-specific writings.&quot;},{&quot;slug&quot;:&quot;Kiwix&quot;,&quot;rationale&quot;:&quot;The WP 1.0 project referenced here is work done in a volunteer capacity for Kiwix, providing organizational context.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1483,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:283,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:154},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;when to vibe code&quot;,&quot;fileSlug&quot;:&quot;when to vibe code&quot;,&quot;title&quot;:&quot;When To Vibe Code&quot;,&quot;content&quot;:&quot;Vibe code whenever you want! It&#39;s fun!&#92;n&#92;nBut it usually works best when the stakes are low, for personal projects honestly in my experience.&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;vibe coding&quot;,&quot;anchor_text&quot;:&quot;Vibe code&quot;,&quot;context&quot;:&quot;Vibe code whenever you want! It&#39;s fun!&quot;,&quot;rationale&quot;:&quot;Directly references the concept of vibe coding, which has its own dedicated node.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;vibe coding&quot;,&quot;rationale&quot;:&quot;The main node on vibe coding elaborates on the author&#39;s practices and enthusiasm for the technique.&quot;},{&quot;slug&quot;:&quot;harness-matters-more&quot;,&quot;rationale&quot;:&quot;Discusses the mechanics of AI-assisted coding, deepening the topic of when and how to vibe code.&quot;},{&quot;slug&quot;:&quot;null-rail&quot;,&quot;rationale&quot;:&quot;A concrete personal project made via vibe coding, illustrating the low-stakes personal project scenario mentioned here.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:101,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:254,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:0},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;wp-1.0&quot;,&quot;fileSlug&quot;:&quot;wp-1.0&quot;,&quot;title&quot;:&quot;WP 1.0 Project&quot;,&quot;content&quot;:&quot;&#92;r&#92;nWP 1.0 is a project on Wikipedia that I have spent the last 5 years working on, with various amounts of effort at various times. It is written in [[Python]].&#92;r&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;Kiwix&quot;,&quot;rationale&quot;:&quot;Kiwix node describes the author&#39;s volunteer work primarily on wp-1.0, elaborating on the project&#39;s context.&quot;},{&quot;slug&quot;:&quot;Perl&quot;,&quot;rationale&quot;:&quot;The Perl node details rewriting the wp-1.0 bot from Perl into Python, a key part of this project&#39;s history.&quot;},{&quot;slug&quot;:&quot;warnings-python&quot;,&quot;rationale&quot;:&quot;This node describes squashing Python warnings specifically in the wp-1.0 test suite.&quot;},{&quot;slug&quot;:&quot;Vue.js&quot;,&quot;rationale&quot;:&quot;The Vue.js node cites wp-1.0 as an example SPA built with the framework.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:109,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:458,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:237},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;writings/absolute-power&quot;,&quot;fileSlug&quot;:&quot;absolute-power&quot;,&quot;title&quot;:&quot;Absolute Power&quot;,&quot;content&quot;:&quot;I have absolute power over the guy sitting next to me on this bus. I can write anything I want about him, and the norms of politeness indicate that he can&#39;t say or do anything about it. He can never acknowledge that he was reading my words over my shoulder, because that would be a heinous breach of etiquette. Not that what I have to say about him is any less heineous.&#92;n&#92;nI bet you expect a long string of insulting words and comments now. Maybe a shot at his family or something about his physical appearance. Actually, this is one of those times, dear reader, where the fact that this blog is fiction comes necessarily into question. Everything I&#39;ve written here could have been written about a real person. The narrator could very well be the real life me.&#92;n&#92;nBut no, it&#39;s all a fiction. These words pepper the imagination and that&#39;s where they came from.&#92;n&#92;nWhich is precisely what we want the idiot next to me to believe...&#92;n&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;writings&quot;,&quot;rationale&quot;:&quot;This piece reads like the fictional/poetic writings collection and could be grouped with those idle bus-ride writings.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:319,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:72,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:0},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;writings/barney&quot;,&quot;fileSlug&quot;:&quot;barney&quot;,&quot;title&quot;:&quot;Barney&quot;,&quot;content&quot;:&quot;The red light was on when Barney woke up. Shit! It had to be a drill or a malfunction of the measuring equipment or something. According to his panel, according to the big red light in the middle of it that was shining brightly, there had been a major event in the past however long Barney was out for. The PCU, or Primary Containment Unit, had been breached. This meant one of two things: either toxic doses of radiation were leaking out , or — Barney&#39;s mind made the leap — something was inside the time core.&#92;n&#92;nAs long as there was someone in there — something in there, Barney corrected himself, the facility was still years away from tests with organic material, let alone living organisms — but as long as it was occupied, the time core would operate on the Princeton Principle. The matter would be sent backwards and forwards in time simultaneously, creating an ever larger causal loop. Assuming that the material was stable, and there was enough energy supplying the core, contact with the Past and the Future should occur with a wide enough gap to avoid inconsistencies in the time line.&#92;n&#92;nThat&#39;s how it worked in the experiments they had been conducting. But this was no experiment, Barney thought as he scanned through the output of the sensor array and pulled up the access logs through the beginning of his shift. It&#39;s 2:17 AM, this is a security breach!&#92;n&#92;nOr a false alarm. All the scientists working on the project, even the low level staff and security like Barney, knew that the facility was built with a mishmash of state of the art cutting edge materials (eg the time core itself and it&#39;s component elements), aging old Soviet castoffs from the cold war (much of the infrastructure), and whatever the Secondary Team could get their hands on from the junkyards and trade shows. At least one or two experiments a week were called off when a truss rod got stuck, or the lab floor became flooded, or any of a number of insulting inconveniences struck.&#92;n&#92;nBarney flipped on the visuals. The cameras trained on the platform, where the time core rested, showed nothing out of the ordinary. Obviously the core had been activated, but according to Barney&#39;s readouts, it was operating at a normal capacity, with no dangerous fluctuations in energy or radiation level. Perhaps there was a bug in a scheduler somewhere that had caused the activation.&#92;n&#92;nThe Primary Team was aware of the bugs that were still crawling around in the facility&#39;s systems, which was the precise reason Barney&#39;s shift existed. But he was the only one there at this hour. And there certainly weren&#39;t any protocols to be followed.&#92;n&#92;nThe phone rang and Barney jumped six inches. He reached for it, a modest sweat dripping down his face.&#92;n&#92;n&#92;&quot;Alpha Station, Carlson reporting,&#92;&quot; he barked into the phone like so many times before.&#92;n&#92;n&#92;&quot;Barney, what.....what in the hell is going on down there?&#92;&quot; shouted a voice from the phone.&#92;n&#92;n&#92;&quot;D-Down here?&#92;&quot; Barney stuttered back. &#92;&quot;Well, I just opened visuals on the-&#92;&quot;&#92;n&#92;n&#92;&quot;The goddamn time core is active! Tell me you weren&#39;t sleeping,&#92;&quot; the voice admonished, &#92;&quot;What started it up? There&#39;s no experiment scheduled until oh nine hundred&#92;&quot;&#92;n&#92;n&#92;&quot;Oh yes.....well....&#92;&quot; Barney continued to stammer, trying to buy himself some time. The other voice on the line was Hal Ryder, Senior Operations Director for the Primary Team. He sounded pissed. He also sounded confused and concerned.&#92;n&#92;n&#92;&quot;Don&#39;t bullshit me, Barney!&#92;&quot; shouted Hal. &#92;&quot;I don&#39;t care what you were doing, we need to asses the situation with the core immediately.&#92;&quot; Hal was practical and generally kept a cool head, traits which certainly helped him in his position on Primary Team. &#92;&quot;Listen, I&#39;ll be down there in 20 minutes. Keep visual contact with the core and don&#39;t attempt any intervening measures until I get there.&#92;&quot;&#92;n&#92;n&#92;&quot;Yes, sir&#92;&quot; Barney answered flatly.&#92;n&#92;n&#92;&quot;Just make sure the—&#92;&quot; Hal started, but he was cut off by the shriek of an alarm. It sounded like a cliched mix of every red alert, high emergency, system critical siren he had ever heard. But Hal had never heard it coming from their alpha monitoring station.&#92;n&#92;n&#92;&quot;Make that 10 minutes!&#92;&quot; Hal shouted into the phone, but he wasn&#39;t sure Barney heard him.&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;writings&quot;,&quot;rationale&quot;:&quot;This fiction piece is part of the Various Writings collection and would be contextualized by that node.&quot;},{&quot;slug&quot;:&quot;lazily-slapping-the-snare-drum&quot;,&quot;rationale&quot;:&quot;Both are fictional short story intros from the same writing collection, sharing narrative/genre kinship.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1376,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:242,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:119},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;writings/best-wrecks&quot;,&quot;fileSlug&quot;:&quot;best-wrecks&quot;,&quot;title&quot;:&quot;Best Wrecks&quot;,&quot;content&quot;:&quot;Throw everything away.  &#92;nPuke more every day.  &#92;nFetch a wretch&#39;s retch and  &#92;nToss it sloppily abroad.  &#92;nHide all small, small tiny  &#92;nFrom everything, and also mostly  &#92;nThe wretched mess of best wrecks that is your life.&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[]},&quot;usage&quot;:{&quot;input_tokens&quot;:142,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:21,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:0},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;writings/blackness&quot;,&quot;fileSlug&quot;:&quot;blackness&quot;,&quot;title&quot;:&quot;Blackness&quot;,&quot;content&quot;:&quot;My brain is the only thing left to die.  &#92;nIt must yield to the black emptiness.  &#92;nIt must be absorbed, sponge-like, into the  &#92;ndecaying stew of the rest of my life.  &#92;nThe tiniest spark of electricity might keep me  &#92;nvivid for a moment more.&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[]},&quot;usage&quot;:{&quot;input_tokens&quot;:137,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:21,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:0},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;writings/concession&quot;,&quot;fileSlug&quot;:&quot;concession&quot;,&quot;title&quot;:&quot;Concession&quot;,&quot;content&quot;:&quot;Happy poem, happy sound  &#92;nHappy words fly round and round  &#92;nHappy metre, happy rhyme  &#92;nHappy feelings all the time  &#92;nHappy happy happiness  &#92;nHappy thoughts for to confess  &#92;nHappy moment, happy life  &#92;nHappy as I grip the knife  &#92;nHappy as I start to bleed  &#92;nHappy world, I must concede&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[]},&quot;usage&quot;:{&quot;input_tokens&quot;:163,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:21,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:0},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;writings/coping-skills&quot;,&quot;fileSlug&quot;:&quot;coping-skills&quot;,&quot;title&quot;:&quot;Coping skills&quot;,&quot;content&quot;:&quot;They said to practice my  &#92;ncoping skills.  &#92;nThis is a submission of optimism.  &#92;nAn acknowledgement that  &#92;nNot everything is OK  &#92;nNot everything can be fixed.  &#92;nIt&#39;s a glorious recognition that  &#92;npain is real.  &#92;nI don&#39;t need to be defeated by it.  &#92;nSeeing it  &#92;nKnowing it  &#92;nFeeling it  &#92;nIs the first step to  &#92;nresilience.&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;DBT&quot;,&quot;rationale&quot;:&quot;DBT (Dialectical Behavior Therapy) is fundamentally about learning and practicing coping skills, directly elaborating on the theme of this poem.&quot;},{&quot;slug&quot;:&quot;intrisic motivation&quot;,&quot;rationale&quot;:&quot;Both nodes reference the author&#39;s therapy work and inner mental-health processes.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:177,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:190,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:58},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;writings/empty-mind&quot;,&quot;fileSlug&quot;:&quot;empty-mind&quot;,&quot;title&quot;:&quot;Empty Mind&quot;,&quot;content&quot;:&quot;I look into my mind, and my mind is empty. In fact, it&#39;s full of all kinds of useless crap and clutter. It&#39;s full of anxiety about things done and left undone. There&#39;s pretty much a cacophony of garbage filling in every nook and cranny. But for the purposes of creative output, my mind is empty. I cannot lift a guitar, no less a pen, to write a song. I cannot type out the simplest of poems. I cannot devise a creative computer programming project that would hold my interest or serve to bring something useful into this world. No it is empty.&#92;n&#92;nWhere are all the little colorful lego bricks that I should be picking up and snapping together to create something beautiful? Where are the sheets of empty paper and nice, fine tipped pen? Who took away the heavy construction paper, glitter and glue? Did it all get thrown away by accident, or worse, on purpose?&#92;n&#92;nI look into my mind, and my mind is empty. And it&#39;s not a good, mindful, zen emptiness. It&#39;s a clunky, stuttering, worthless emptiness. It&#39;s a full lack of anything to say, or anything to say anything about. My mind is an endlessly blinking cursor, with no characters trailing behind it. Just stuck, at the top left of an ephemeral empty page. But the emptiness of mind is not ephemeral. No, it persists from day to day.&#92;n&#92;nThere is a cognitive theory that every thought is tied, in some way, to an emotion. Memories especially are recalled precisely because they have some emotional significance attached to them. What is my emotion when I reveal my empty mind? It&#39;s one of a resigned sadness, a feeling that this must be the way it has to be and there&#39;s nothing I can do about it.&#92;n&#92;nI look into my mind, and my mind is empty. There is no salvation from this null state. There is no way to bootstrap a creative emotion or thought from the broad nothingness that exists in my mind. I cannot write my way into, or out of, any corners. I cannot sing my way into a musical revelation. I cannot paint the double line on the highway to a fully working, healthy mind.&#92;n&#92;nBut this is not depression. It&#39;s anxiety somewhat. But it&#39;s not a desperation or loneliness or sadness or something of that variety. These feelings are certainly present to one degree or another upon reflection on my empty mind. They are not it&#39;s cause.&#92;n&#92;nI look into my mind, and my mind is empty. Except for when it&#39;s not.&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;Zen&quot;,&quot;anchor_text&quot;:&quot;zen emptiness&quot;,&quot;context&quot;:&quot;And it&#39;s not a good, mindful, zen emptiness. It&#39;s a clunky, stuttering, worthless emptiness.&quot;,&quot;rationale&quot;:&quot;The node explicitly contrasts its emptiness with the Zen concept of emptiness, which has its own node.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;font-of-creativity&quot;,&quot;rationale&quot;:&quot;Directly explores the same theme of struggling with creative output and the pressure/absence of ideas bursting forth.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:809,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:329,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:129},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;writings/gearing-up&quot;,&quot;fileSlug&quot;:&quot;gearing-up&quot;,&quot;title&quot;:&quot;Gearing up&quot;,&quot;content&quot;:&quot;What is the fastest,  &#92;nthe fastest humanly possible way  &#92;nthat poetry could be written?  &#92;nIt would probably be the job of a machine, really.  &#92;nTo excel in the speed poetry department, you would  &#92;nprobably want to enlist the help of a friendly robot  &#92;nor at least a properly configured handy computing device.  &#92;nBut then could you say that the poetry was humanly written,  &#92;nhumanly formed? Would it still express humanity?  &#92;nSome would say that the ultimate meaning of a poem is  &#92;nin the head of the person reading it, it is there that it  &#92;nencompasses whatever humanity it is to have. So in that sense,  &#92;nMr Robo-Poet would be a handy invention indeed.  &#92;nHe would smile at you from beyond his computer-y face and  &#92;nrobotic and metallic inside parts. Well, you couldn&#39;t tell  &#92;nthat he was smiling but you know he would be.  &#92;nHow could he not?  &#92;nHe&#39;s brought you ream after ream of  &#92;nfresh hot poetry,  &#92;nready for consumption and contemplation and  &#92;ndeconstruction and criticism.  &#92;nAnd copy and paste.  &#92;nAnd copy and paste.&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;ai-music-trends&quot;,&quot;rationale&quot;:&quot;This node&#39;s meditation on whether machine-made poetry can express humanity closely parallels the debate about AI-generated music versus human craft.&quot;},{&quot;slug&quot;:&quot;ai&quot;,&quot;rationale&quot;:&quot;The &#39;Robo-Poet&#39; churning out endless poetry directly anticipates the author&#39;s later thoughts on AI generating creative content.&quot;},{&quot;slug&quot;:&quot;Suno&quot;,&quot;rationale&quot;:&quot;Suno as &#39;vibe coding for songs&#39; is the musical analog of the Robo-Poet producing ream after ream of poetry.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:399,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:402,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:204},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;writings/gray&quot;,&quot;fileSlug&quot;:&quot;gray&quot;,&quot;title&quot;:&quot;Gray&quot;,&quot;content&quot;:&quot;The rainy and gray  &#92;nOf this late summer day  &#92;nFits my mood   &#92;nQuite well, actually, and it makes me  &#92;nSmile in the fullness of its melancholy.  &#92;nDelicious melancholy that you can bite right  &#92;nInto, and get a juicy mouthful. The un-joy  &#92;nDrips off your chin. It&#39;s satisfying to know  &#92;nThat the world, the weather, the movement of  &#92;nThe goddamn oceans are all in agreement that  &#92;nToday is not an exuberant day. Today is a day  &#92;nFor some healthy, hearty wallowing and maybe  &#92;nA smidge of reflection on what it&#39;s like to  &#92;nBe me.&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[]},&quot;usage&quot;:{&quot;input_tokens&quot;:249,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:21,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:0},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;writings/hurricane&quot;,&quot;fileSlug&quot;:&quot;hurricane&quot;,&quot;title&quot;:&quot;Hurricane&quot;,&quot;content&quot;:&quot;What I really need is a pretty place to write poetry.  &#92;nA pretty place to place pretty poetry.  &#92;nA place that is full of empty space that  &#92;nlongs to be filled with my words and  &#92;nespecially the metaphors that are so elegantly  &#92;nconstructed. Even if the line endings are somewhat  &#92;nhaphazard and none of the lot rhymes in any  &#92;nconsiderable way, the point of the endeavor and  &#92;nits ultimate raisin de etre or whatever is that  &#92;nit brings my ideas and feelings into the world.  &#92;nMy naked fleshy wet body of poetry bursts  &#92;nscreaming into the world and now it&#39;s a tornado or  &#92;nreally a combination tornado-hurricane like device that  &#92;nturns with glory and rips the tattered rooftop  &#92;noff my own inequities. There is nothing left of me  &#92;nin the wake of its great destruction, there are only  &#92;nthe words.&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;font-of-creativity&quot;,&quot;rationale&quot;:&quot;Both nodes explore the compulsion to create and let ideas burst out through writing.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:321,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:84,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:0},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;writings/introduction&quot;,&quot;fileSlug&quot;:&quot;introduction&quot;,&quot;title&quot;:&quot;Introduction&quot;,&quot;content&quot;:&quot;I thought about just jumping in and adding fiction to this new blog. After all, the URL is http://writings.travisbriggs.com. Surely people would understand what it is about just from that, right? But then I thought that for the inaugural post I should put something down about my goals for this blog and what you can expect to find here. Mostly because I don&#39;t have any fresh fiction to add at the moment.&#92;n&#92;nFirst off, this blog is written using the Ghost blogging platform. Ghost gives me something extremely simple and lightweight, that doesn&#39;t use PHP (it uses Node.js instead). Since Ghost is also extremely new and shiny, it has some appeal as a new toy, but also I feel like I can grow with the platform. Perhaps I can design a theme that&#39;s appropriate for short fiction pieces (unlikely) or contribute some code to the server or admin (slightly more likely).&#92;n&#92;nWhen I first wanted to start boldly writing a &#92;&quot;micro story&#92;&quot; (I&#39;m not sure if anyone uses that term), I thought about launching a new blog for it. But then I realized that no one reads the blog I already have, and the effort of setting up a new one would get in the way of my immediate creative impulse. So, I just posted the story to my current blog with no expectation. Since I have no readers, this didn&#39;t really bother anyone. But I dreamed of a better way.&#92;n&#92;nWell there is a confluence of tools (Ghost) and inspiration now. This is happening. Prepare thee the world for my creation!&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;writings&quot;,&quot;anchor_text&quot;:&quot;adding fiction to this new blog&quot;,&quot;context&quot;:&quot;I thought about just jumping in and adding fiction to this new blog&quot;,&quot;rationale&quot;:&quot;This inaugural post is the introduction to the fiction writings collection now integrated into the garden.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;writings&quot;,&quot;rationale&quot;:&quot;The collection of fiction/poetry snippets that this introduction was originally written to launch.&quot;},{&quot;slug&quot;:&quot;considering-moving-blogs&quot;,&quot;rationale&quot;:&quot;Elaborates on the recurring theme of launching/changing blog platforms rather than just writing.&quot;},{&quot;slug&quot;:&quot;blog&quot;,&quot;rationale&quot;:&quot;Discusses the author&#39;s feeling that no one reads his blog, echoed here as the reason he didn&#39;t launch a new one.&quot;},{&quot;slug&quot;:&quot;barney&quot;,&quot;rationale&quot;:&quot;An example of the fiction/&#39;micro story&#39; pieces this blog was created to host.&quot;},{&quot;slug&quot;:&quot;lazily-slapping-the-snare-drum&quot;,&quot;rationale&quot;:&quot;Another example of the short fiction the writings site was intended for.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:508,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:543,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:205},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;writings/just-rain&quot;,&quot;fileSlug&quot;:&quot;just-rain&quot;,&quot;title&quot;:&quot;Just Rain&quot;,&quot;content&quot;:&quot;Sometimes things are easy  &#92;nSometimes things are hard  &#92;nSome things we keep close to us  &#92;nOthers we discard  &#92;nSometimes rain smells yummy  &#92;nSometimes it smells gross  &#92;nOften we&#39;re reminded of  &#92;nThe things that we kept close  &#92;nSome things can&#39;t be spoken  &#92;nSome things can&#39;t explain  &#92;nSometimes we are crying tears  &#92;nOther times it&#39;s rain  &#92;nSometimes we remember  &#92;nSometimes we forget  &#92;nOften times the memories  &#92;nDon&#39;t make sense quite yet  &#92;nSome things blend together  &#92;nSome things stand apart  &#92;nWhy oh why oh why must I  &#92;nAttend this broken heart  &#92;nSometimes things are clever  &#92;nSometimes things are trite  &#92;nSometimes you are by yourself  &#92;nIn deepest darkest night  &#92;nSometimes it&#39;s a horror  &#92;nSometimes it&#39;s a shame  &#92;nSometimes you might ask yourself  &#92;nThe reason for this pain  &#92;nSometimes things are easy  &#92;nSometimes things are hard  &#92;nSome things we hold up in scorn  &#92;nSome in high regard&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[]},&quot;usage&quot;:{&quot;input_tokens&quot;:391,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:21,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:0},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;writings/lazily-slapping-the-snare-drum&quot;,&quot;fileSlug&quot;:&quot;lazily-slapping-the-snare-drum&quot;,&quot;title&quot;:&quot;Lazily slapping the snare drum&quot;,&quot;content&quot;:&quot;If I never knew her, it would be too soon. Wait. Scratch that. If I only met her once, it would be more than a lifetime. No no, that’s not right. Let me start again.&#92;n&#92;nShe called herself Jilly, which I thought was a peculiar name to begin with, and certainly something strange to be so proud of. It sounds like a 6 year old’s name for a doll or something. Or some kind of sea creature. Jilly would kill me if she read this, actually. She wasn’t particularly introspective. Retrospective? Introspective. What I’m trying to say is, Jilly didn’t spend too much time reflecting on the world around her. Full pedal to the floor, gas your ass straight ahead cowboy style was the way Jilly liked things. She threw an ashtray at me the first time I met her.&#92;n&#92;nBut things calmed down after that, as much as anything with Jilly could be considered calm. She was like a drummer lazily slapping a snare drum 15 seconds after a song had ended. Like in rehearsal. Sorry, “practice” — my bandmates always hated when I called it rehearsal. But you know what I’m talking about, right? The whole band has stopped the song, it’s over, but the drummer is just slapping that snare still. Pounding in your ear, but you barely hear it because it’s quiet compared to the cacophony that preceded it. Jilly is like that. Like you look around 3 weeks later, and why is she still spending nights on your couch. Weirdo. We would hook up and then she would go sleep on the couch, as if that was a very Christian thing to do. Like we weren’t really sleeping together, ha ha, nudge wink as she lit up another cigarette.&#92;n&#92;nI only started smoking because Jilly liked to do it and I figured I might not mind smelling it all over her if I was doing it myself.&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;writings&quot;,&quot;rationale&quot;:&quot;This is one of the migrated fiction/poetry snippets that the Various Writings node collects and describes.&quot;},{&quot;slug&quot;:&quot;barney&quot;,&quot;rationale&quot;:&quot;Both are short-story intro fiction pieces from the same collection, offering companion reading.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:651,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:222,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:112},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;writings/pavement-windshield-pop&quot;,&quot;fileSlug&quot;:&quot;pavement-windshield-pop&quot;,&quot;title&quot;:&quot;Pavement Windshield Pop&quot;,&quot;content&quot;:&quot;There&#39;s a vibrant undercurrent  &#92;nto our daily existence.  &#92;nIt&#39;s an unspoken thing, a kind of  &#92;nflowing zeitgeist made up of all the  &#92;noutlines of objects that break up the  &#92;nbare blue bellows of the sky.  &#92;nThe treeline flows up from the ground,  &#92;nthe cars zip across the cold uncaring pavement,  &#92;nand your eyes and my eyes buzz past it all,  &#92;ntaking in what we will and calling it life.  &#92;nThat&#39;s all life is, which -pow- arrives like  &#92;na car crash, no one ever sees it coming, or sees it  &#92;ncoming to this,  &#92;nbut at that instant the perfect crystal structure of the story that you told,  &#92;nthe good one, the one that might as well be your life itself,  &#92;nmakes a crunching sound of crumpled bumper.  &#92;nIt makes a crashing, creaking cry of defeat against  &#92;nthe sad indifferent sky of replete confusion,  &#92;nand is forever extinguished.  &#92;nWhat will you make of yourself now?  &#92;nYou&#39;ll craft a new artifice from the throbbing subtext  &#92;nof the beauty and tragedy around you.  &#92;nI&#39;ll do it too.  &#92;nBut will we be any better off, rinse and repeat?&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[]},&quot;usage&quot;:{&quot;input_tokens&quot;:438,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:21,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:0},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;writings/pillows-and-sheets&quot;,&quot;fileSlug&quot;:&quot;pillows-and-sheets&quot;,&quot;title&quot;:&quot;Pillows and Sheets&quot;,&quot;content&quot;:&quot;I&#39;m feeling sour  &#92;nI haven&#39;t got the power  &#92;nTo get out of my bed today  &#92;nAlone and anxious  &#92;nI haven&#39;t got the patience  &#92;nTo go and face that dread today  &#92;nClose my eyes  &#92;nCannot rest  &#92;nFeel the pain  &#92;nIn my chest  &#92;nI&#39;m feeling lonely  &#92;nAnxiety&#39;s the only  &#92;nFriend that I will greet today  &#92;nWith thoughts unruly  &#92;nAnxiety is truly  &#92;nNot one to be beat today  &#92;nTake a breath  &#92;nCan&#39;t relax  &#92;nTons of fear  &#92;nComing back  &#92;nI feel defeated  &#92;nDiscouraged and retreated  &#92;nWith thoughts heavily pounding  &#92;nThe plan, it is resounding:  &#92;nI won&#39;t get out of bed today.&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;coping-skills&quot;,&quot;rationale&quot;:&quot;Both explore acknowledging pain and anxiety as part of building resilience, making them complementary emotional reflections.&quot;},{&quot;slug&quot;:&quot;suffer&quot;,&quot;rationale&quot;:&quot;Another poem centered on daily anguish and disappointment that thematically echoes this one&#39;s dread.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:293,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:121,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:0},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;writings/preoccupied&quot;,&quot;fileSlug&quot;:&quot;preoccupied&quot;,&quot;title&quot;:&quot;Preoccupied&quot;,&quot;content&quot;:&quot;The poet, it seemed,  &#92;nwas preoccupied with death and  &#92;nwrote poems, fiercely stripped  &#92;nof other intentions and inquiries,  &#92;nwhich invited those readers who,  &#92;nwith naive aims and scarcely guarded dispositions,  &#92;nwere invited into the harsh yet peaceful  &#92;nembrace of the same.  &#92;nHe (the poet) related dearly  &#92;nto these grim works,  &#92;nflowing furiously and free from  &#92;nthe heart of his past disappointments and  &#92;nfuture anxieties.  &#92;nWhy, the pale beast such a  &#92;nsweet seductress surface?  &#92;nWhy dwell on ultimate demise?  &#92;nWhy let the fragrant afternoon  &#92;npass, unexamined, into the abyss  &#92;nof lost Saturdays and holidays  &#92;nwhich served only to taunt the  &#92;nfaculties of his reason and  &#92;ntwist the object of his imagination  &#92;ntowards the bitter machinations of   &#92;nDeath itself?&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;writings&quot;,&quot;rationale&quot;:&quot;This poem is part of the collection of writings migrated into the garden, where Travis notes the melancholic, death-preoccupied tone of these pieces.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:340,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:101,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:0},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;writings/rainbow-static&quot;,&quot;fileSlug&quot;:&quot;rainbow-static&quot;,&quot;title&quot;:&quot;Rainbow Static&quot;,&quot;content&quot;:&quot;I&#39;m too old to smile. The rainbow static  &#92;nof a million stations presses down on my body  &#92;nwith the weight of an entire civilization.  &#92;nIt crushes me. It&#39;s all nonsense. Even the  &#92;nparts that are meant to sound like the  &#92;nlatest, newest, hottest, hippest, coolest, trendiest  &#92;nsongs that you just can&#39;t wait to hear --  &#92;neven those parts are just more entitled white noise.  &#92;nSo much useless noise, but here we are,  &#92;nslaves to its production. It would be cliche to say  &#92;nthat we&#39;re cogs in some unfeeling machine, but it would  &#92;nalso be glorifying our position. We are not cogs.  &#92;nWe are less than cogs. We are the ineffectual specks  &#92;nof garbage in the trash heap of popular culture.&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[]},&quot;usage&quot;:{&quot;input_tokens&quot;:293,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:21,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:0},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;writings/suffer&quot;,&quot;fileSlug&quot;:&quot;suffer&quot;,&quot;title&quot;:&quot;Suffer&quot;,&quot;content&quot;:&quot;Why do I suffer the days  &#92;nTo cause me such anguish?  &#92;nPress the hot iron of torture, they do,  &#92;nAs the spectre of the day&#39;s tasks,  &#92;nUnfinished,  &#92;nFlit into the orange flames of another dusk.  &#92;nHer features refuse to soften  &#92;nAs she scolds,  &#92;n&#92;&quot;Why don&#39;t you read a book?  &#92;nWhy don&#39;t you play a game?  &#92;nWhy don&#39;t you watch television with me?  &#92;nWhy don&#39;t you do any number of things  &#92;nThat would distract you from the  &#92;nGnawing tug of disappointment you always feel  &#92;nAround this time of evening?&#92;&quot;  &#92;nBut how can I be bothered  &#92;nTo ease the burden brought only on myself  &#92;nBy myself?  &#92;nWhy would I shrink back  &#92;nFrom the agony of songs unwritten  &#92;nAnd poems unsung which  &#92;nCleave their hooks into my brain  &#92;nAnd drag me, reluctantly, but with  &#92;nClandestine pleasure  &#92;nTowards the realized, paltry, but  &#92;nVery extant ouput that I here produced  &#92;nBy the end of the day?&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;empty-mind&quot;,&quot;rationale&quot;:&quot;Both poems capture the anguish of creative paralysis and songs/poems left unwritten.&quot;},{&quot;slug&quot;:&quot;font-of-creativity&quot;,&quot;rationale&quot;:&quot;Explores the trope of ideas &#39;bursting out&#39; or hooking into the mind, echoing this poem&#39;s agony of unwritten songs.&quot;},{&quot;slug&quot;:&quot;pillows-and-sheets&quot;,&quot;rationale&quot;:&quot;A companion poem about anxiety, dread, and disappointment felt around the burdens of daily tasks.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:370,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:186,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:0},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;writings/the-building-building&quot;,&quot;fileSlug&quot;:&quot;the-building-building&quot;,&quot;title&quot;:&quot;The Building Building&quot;,&quot;content&quot;:&quot;I passed the Building Building every day, but it wasn&#39;t until the Fall that I really understood what they did there. It seems extraordinary at first. Your brain doesn&#39;t really want to accept it. A building building building. That is, a building that builds other buildings. It reminded me of that sentence with the buffalo (look it up).&#92;n&#92;nActually, I couldn&#39;t have been expected to understand what was going on in the Building Building because I never took the time to investigate it. Sure, I had heard the loud grinding sounds during the day. Seen the plumes of smoke and steam rising from the roof. I&#39;d even seen people milling in and out, the workers who facilitated the buildings of the Building Building. But I had never really noticed any of it. It had all passed by my vacant mind, leaving no trace at all.&#92;n&#92;nBut now that I know what goes on there, now it makes sense. You need to build a building. Are you going to do it out in the open? Are you just going to lackadaisically start building things in the middle of nowhere? No, certainly not. The process of building requires a building itself.&#92;n&#92;nOf course, all of this makes you wonder: If the Building Building builds buildings, are they building a building to build Building Buildings?&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;writings&quot;,&quot;rationale&quot;:&quot;This is one of the fiction/writing snippets that belongs to the collection described in the Various Writings node.&quot;},{&quot;slug&quot;:&quot;barney&quot;,&quot;rationale&quot;:&quot;Both are short fiction pieces from the same writings collection and could cross-reference as companion creative works.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:419,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:114,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:0},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;writings/these-are-the-days&quot;,&quot;fileSlug&quot;:&quot;these-are-the-days&quot;,&quot;title&quot;:&quot;Pep talk&quot;,&quot;content&quot;:&quot;These are the days.  &#92;nThe days when you have to show up,  &#92;nAbandon the sad little pout on your face,  &#92;nTake a deep breath,  &#92;nGive yourself a quick pep talk,  &#92;nAnd get that shit done.&#92;n&#92;nThese are the days.  &#92;nThe days when people don&#39;t care about your excuses,  &#92;nOr your past successes.  &#92;nWhen all that matters is today, the now,  &#92;nWhen you have one job, just one,  &#92;nAnd you better get it done.&#92;n&#92;nThese are the days.  &#92;nThe cloudy, damp, overcast grays,  &#92;nThe nine to five that&#39;s put you in a haze,  &#92;nYou need a deep breath to figure out the ways,  &#92;nTo kick doubt to the curb while confidence stays.  &#92;nA little pep talk to help you  &#92;nGet it done.&#92;n&#92;nThese are the days that make up our lives. And if we don&#39;t do the things we want to do, make the things we want to make, and love the people we want to love on these days, there will be no other time for any of it.&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;toil&quot;,&quot;rationale&quot;:&quot;Both poems deal with the drudgery of daily work (&#39;nine to five&#39;) and finding meaning in it.&quot;},{&quot;slug&quot;:&quot;suffer&quot;,&quot;rationale&quot;:&quot;Shares the theme of daily tasks, dissatisfaction, and pushing through to produce output.&quot;},{&quot;slug&quot;:&quot;coping-skills&quot;,&quot;rationale&quot;:&quot;Both are short motivational/resilience pieces about facing difficulty and not being defeated.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:333,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:161,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:0},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;writings/thoughts-of-home&quot;,&quot;fileSlug&quot;:&quot;thoughts-of-home&quot;,&quot;title&quot;:&quot;Thoughts of Home&quot;,&quot;content&quot;:&quot;The generally accepted wisdom is that you can never go home again. There is a very famous novel with this title, or with this as the first line or something. Something very famous. And it&#39;s kind of entered the collective unconscious, or maybe even as far forward as the collective conscious itself. We all have this feeling like, yes, that&#39;s true. You can never go home again.&#92;n&#92;nAs an aside, you have to wonder if the name &#92;&quot;post-post-modernism&#92;&quot; is itself &#92;&quot;post-post-modern&#92;&quot; or if describing it as such is only one-post-modern. Maybe post-post-modernism is like the fourth dimension. Mathematically we know that it must exist somewhere, but we&#39;re not sure exactly what it looks like, what it tastes and feels like. It doesn&#39;t quite fit in our brains.&#92;n&#92;nSo the post-post-modern -- or maybe just one-post-modern -- notion is this: No, it&#39;s not really that you can never go home again, it&#39;s that home never existed in the first place. It&#39;s just this mish-mash of ideas and feelings that you have in your mind but it was never a real place to begin with. Maybe that&#39;s not even a post-modern thought as much as its a theme slash line-of-dialogue from a Zack Braff movie (the movie is Garden State).&#92;n&#92;nHome is where the heart is, you know. So if you can&#39;t go there, or it doesn&#39;t exist, what does that say about the prospects of extant love and friendship in our seemingly cold, cruel world? Maybe the reason there&#39;s no place like home is that home is no place. Your heart is there, in this no-person&#39;s-land, and that is why it is always longing. Always yearning for some love or some more love or some kindness or some comradere or some more comradere or some music. Your heart always wants these things because it is trying to go home and there&#39;s no place that home is.&#92;n&#92;nMaybe it&#39;s like that thing about the river that you can never step into twice. When you say it like &#92;&quot;You never step into the same river twice,&#92;&quot; it sounds like it&#39;s some fault of yours. Like if you tried harder you could somehow do it. _You_ never step into the same river twice. But of course all of the blame is on the river. If I were to write that platitude today, I would write it as &#92;&quot;When you step into a river, that river ceases to exist before you even step out of it&#92;&quot;. And home is like that. Think about the things that define your home, even for a basic definition of home as being say, a building where you grew up. Not that this is a stable definition to begin with. Even if you simplify it to a room where you slept as a child, or the majority of your childhood, was that room ever the same? Some days the bed would be made, some it would be unmade. Sometimes the TV would be on, other times were those before you were allowed to have a TV. Dressers came and went, maybe a desk was added or removed. But even just the basic accoutrements of adolesence: one day your pokemon cards are here, the next a pile of hair elastics is there, the day after you have a homework assignment on the floor.&#92;n&#92;nHome doesn&#39;t exist in a very zen sense, the way that none of us exist. It&#39;s like the Heisenberg uncertaintiy principle, which states something like the better you know a particle&#39;s position the worse you know it&#39;s acceleration and vice-versa. If you can put your finger on a specific place or person or feeling that means home to you, very specifically, then what you&#39;ve got is only a single aspect of it, and that specific feature probably doesn&#39;t feel very homey. On the other hand, if you gather up a hodge-podge of different ideas and places and feelings and holidays and accidents that represent home -- then what do you have? It&#39;s just a jumble, nothing that you could accurately &#92;&quot;put your finger on&#92;&quot; so to speak.&#92;n&#92;nYeah, home is kind of like that.&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;Zen&quot;,&quot;anchor_text&quot;:&quot;zen&quot;,&quot;context&quot;:&quot;Home doesn&#39;t exist in a very zen sense, the way that none of us exist&quot;,&quot;rationale&quot;:&quot;The node explicitly invokes a Zen framing of nonexistence, which the Zen node covers.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;philosophy&quot;,&quot;rationale&quot;:&quot;This node&#39;s meditation on existence, nonexistence, and determinism echoes the existentialist and Zen ideas explored in the philosophy node.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1180,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:264,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:96},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;writings/toil&quot;,&quot;fileSlug&quot;:&quot;toil&quot;,&quot;title&quot;:&quot;Toil&quot;,&quot;content&quot;:&quot;Without a struggle, life is poorly spent  &#92;nOn follies, fancies, fliting past your eyes.  &#92;nAnother day of work to pay the rent.  &#92;nYour grim dissatisfaction&#39;s no surprise.  &#92;nThe work, it seems, has found a fallow field.  &#92;nA place where nothing bountiful may grow.  &#92;nWhile pressing on the blister makes it yield,  &#92;nThe point of senseless work, you&#39;ll never know.  &#92;nAnd even if a fair deposit makes  &#92;nThe bossman at conclusion of the day,  &#92;nYet never rests your conscious as it shakes  &#92;nYour head to make some sense of the foray.  &#92;nFor while the wasted hours pile on  &#92;nAnd fonts of inspiration be they dried,  &#92;nTake heart that in a moment you&#39;ll be gone  &#92;nAnd none will ever care you ever tried.&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[]},&quot;usage&quot;:{&quot;input_tokens&quot;:299,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:21,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:0},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;writings/untitled-2&quot;,&quot;fileSlug&quot;:&quot;untitled-2&quot;,&quot;title&quot;:&quot;(Untitled)&quot;,&quot;content&quot;:&quot;They said you can&#39;t write poetry while  &#92;nlistening to music.  &#92;nWell no one said  &#92;nthat -- Okay, I said that, actually.  &#92;nBut maybe I was writing a poem  &#92;nthat needed some inspiration.  &#92;nA bit of zest from someone else&#39;s  &#92;npoetry and music, illuminating sound.  &#92;nWords walk across my brain and  &#92;nclash  &#92;nwith the words that walk down the song.  &#92;nI really have to write poetry, write now  &#92;nedit later,  &#92;nand feel ambivalent about  &#92;nentering the entire enterprise.&#92;n&#92;nMaybe I&#39;ll pluck words directly from this  &#92;nThe Promise Ring song that I&#39;m listening to  &#92;nat the moment.  &#92;nThe prominent, superstar line of this song is  &#92;n&#39;Happiness is all the rage&#39;. So if you&#39;ve  &#92;never heard of it,  &#92;nyou now know the song I&#39;m talking about.  &#92;nExcept that my body and my mind are  &#92;ndistinctly not  &#92;non the so-called &#92;&quot;same page&#92;&quot;. And in fact  &#92;nthis might be the first time I&#39;ve listened to  &#92;nany  &#92;nThe Promise Ring song.&#92;n&#92;nI don&#39;t know if you can hide easter eggs in poems,  &#92;nI&#39;m sure you can.  &#92;nIf I was more deft at the art, I would hide a  &#92;nhyperlink in this poem. And it would  &#92;nlink  &#92;nyou to the songs I was listening to when I wrote it.&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;listening-to-music-while-doing-things&quot;,&quot;rationale&quot;:&quot;That node directly explores writing/typing lyrics while listening to music, echoing this poem&#39;s premise about writing poetry while music plays.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:455,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:286,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:198},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;writings&quot;,&quot;fileSlug&quot;:&quot;writings&quot;,&quot;title&quot;:&quot;Various Writings&quot;,&quot;content&quot;:&quot;&#92;nHere is a collection of snippets of writing that I creeated between 2014 and 2017. Lots of poetry, a couple of what could be intros to a short story ([[writings/barney|&#92;&quot;Barney&#92;&quot;]], [[writings/lazily-slapping-the-snare-drum|&#92;&quot;Lazily Slapping the Snare Drum&#92;&quot;]]). Most of these were just idle time-wasting while sitting on the Google bus. They originally lived on a separate site, `writings.travisbriggs.com`, but I thought it would be nice to integrate them into the Garden. Just need to make sure I don&#39;t accidentally list them in the [[dg-reverse|dreaded reverse chronological order]].&#92;n&#92;nAs I migrated them here, I didn&#39;t quite read all of them, but I generally browsed through them. As it turns out, I was a late bloomer and my emo phase came in my early 30s. I seriously sound very depressed in many of these.&#92;n&#92;n&#92;n&#92;n=&gt; /garden/writings/absolute-power/index.gmi Absolute Power&#92;n&#92;n&#92;n&#92;n=&gt; /garden/writings/barney/index.gmi Barney&#92;n&#92;n&#92;n&#92;n=&gt; /garden/writings/introduction/index.gmi Introduction&#92;n&#92;n&#92;n&#92;n=&gt; /garden/writings/lazily-slapping-the-snare-drum/index.gmi Lazily slapping the snare drum&#92;n&#92;n&#92;n&#92;n=&gt; /garden/writings/the-building-building/index.gmi The Building Building&#92;n&#92;n&#92;n&#92;n=&gt; /garden/writings/thoughts-of-home/index.gmi Thoughts of Home&#92;n&#92;n&#92;n&#92;n=&gt; /garden/writings/concession/index.gmi Concession&#92;n&#92;n&#92;n&#92;n=&gt; /garden/writings/pillows-and-sheets/index.gmi Pillows and Sheets&#92;n&#92;n&#92;n&#92;n=&gt; /garden/writings/preoccupied/index.gmi Preoccupied&#92;n&#92;n&#92;n&#92;n=&gt; /garden/writings/toil/index.gmi Toil&#92;n&#92;n&#92;n&#92;n=&gt; /garden/writings/gray/index.gmi Gray&#92;n&#92;n&#92;n&#92;n=&gt; /garden/writings/rainbow-static/index.gmi Rainbow Static&#92;n&#92;n&#92;n&#92;n=&gt; /garden/writings/just-rain/index.gmi Just Rain&#92;n&#92;n&#92;n&#92;n=&gt; /garden/writings/pavement-windshield-pop/index.gmi Pavement Windshield Pop&#92;n&#92;n&#92;n&#92;n=&gt; /garden/writings/blackness/index.gmi Blackness&#92;n&#92;n&#92;n&#92;n=&gt; /garden/writings/gearing-up/index.gmi Gearing up&#92;n&#92;n&#92;n&#92;n=&gt; /garden/writings/hurricane/index.gmi Hurricane&#92;n&#92;n&#92;n&#92;n=&gt; /garden/writings/best-wrecks/index.gmi Best Wrecks&#92;n&#92;n&#92;n&#92;n=&gt; /garden/writings/untitled-2/index.gmi (Untitled)&#92;n&#92;n&#92;n&#92;n=&gt; /garden/writings/these-are-the-days/index.gmi Pep talk&#92;n&#92;n&#92;n&#92;n=&gt; /garden/writings/empty-mind/index.gmi Empty Mind&#92;n&#92;n&#92;n&#92;n=&gt; /garden/writings/suffer/index.gmi Suffer&#92;n&#92;n&#92;n&#92;n=&gt; /garden/writings/coping-skills/index.gmi Coping skills&#92;n&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;introduction&quot;,&quot;rationale&quot;:&quot;The &#39;introduction&#39; node is the original inaugural post for writings.travisbriggs.com, the separate site these writings originally lived on.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:459,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:247,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:168},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}}],&quot;totals&quot;:{&quot;input&quot;:96030,&quot;output&quot;:53906,&quot;cacheRead&quot;:4490772,&quot;cacheWrite&quot;:34021},&quot;generatedAt&quot;:&quot;2026-07-18T07:54:47.197Z&quot;,&quot;nodeCount&quot;:133,&quot;totalLinks&quot;:120,&quot;totalRefs&quot;:347,&quot;allNodes&quot;:[{&quot;slug&quot;:&quot;Abby&quot;,&quot;fileSlug&quot;:&quot;Abby&quot;,&quot;title&quot;:&quot;Abby&quot;},{&quot;slug&quot;:&quot;Bandcamp&quot;,&quot;fileSlug&quot;:&quot;Bandcamp&quot;,&quot;title&quot;:&quot;Bandcamp&quot;},{&quot;slug&quot;:&quot;Christian&quot;,&quot;fileSlug&quot;:&quot;Christian&quot;,&quot;title&quot;:&quot;Christian&quot;},{&quot;slug&quot;:&quot;DBT&quot;,&quot;fileSlug&quot;:&quot;DBT&quot;,&quot;title&quot;:&quot;DBT&quot;},{&quot;slug&quot;:&quot;DistroKid&quot;,&quot;fileSlug&quot;:&quot;DistroKid&quot;,&quot;title&quot;:&quot;DistroKid&quot;},{&quot;slug&quot;:&quot;Fiverr&quot;,&quot;fileSlug&quot;:&quot;Fiverr&quot;,&quot;title&quot;:&quot;Fiverr&quot;},{&quot;slug&quot;:&quot;Java&quot;,&quot;fileSlug&quot;:&quot;Java&quot;,&quot;title&quot;:&quot;Java&quot;},{&quot;slug&quot;:&quot;Kiwix&quot;,&quot;fileSlug&quot;:&quot;Kiwix&quot;,&quot;title&quot;:&quot;Kiwix&quot;},{&quot;slug&quot;:&quot;Perl&quot;,&quot;fileSlug&quot;:&quot;Perl&quot;,&quot;title&quot;:&quot;Perl&quot;},{&quot;slug&quot;:&quot;Python&quot;,&quot;fileSlug&quot;:&quot;Python&quot;,&quot;title&quot;:&quot;Python&quot;},{&quot;slug&quot;:&quot;Qwobl&quot;,&quot;fileSlug&quot;:&quot;Qwobl&quot;,&quot;title&quot;:&quot;Qwobl&quot;},{&quot;slug&quot;:&quot;Rainfall&quot;,&quot;fileSlug&quot;:&quot;Rainfall&quot;,&quot;title&quot;:&quot;Rainfall, a website generator for musicians&quot;},{&quot;slug&quot;:&quot;Ruby on Rails&quot;,&quot;fileSlug&quot;:&quot;Ruby on Rails&quot;,&quot;title&quot;:&quot;Ruby (on Rails)&quot;},{&quot;slug&quot;:&quot;Spotify&quot;,&quot;fileSlug&quot;:&quot;Spotify&quot;,&quot;title&quot;:&quot;Spotify&quot;},{&quot;slug&quot;:&quot;Suno&quot;,&quot;fileSlug&quot;:&quot;Suno&quot;,&quot;title&quot;:&quot;Suno&quot;},{&quot;slug&quot;:&quot;Vue.js&quot;,&quot;fileSlug&quot;:&quot;Vue.js&quot;,&quot;title&quot;:&quot;Vue.js&quot;},{&quot;slug&quot;:&quot;YouTube&quot;,&quot;fileSlug&quot;:&quot;YouTube&quot;,&quot;title&quot;:&quot;YouTube&quot;},{&quot;slug&quot;:&quot;Zen&quot;,&quot;fileSlug&quot;:&quot;Zen&quot;,&quot;title&quot;:&quot;Zen&quot;},{&quot;slug&quot;:&quot;ableton-12&quot;,&quot;fileSlug&quot;:&quot;ableton-12&quot;,&quot;title&quot;:&quot;Ableton 12, consternation and procrastination&quot;},{&quot;slug&quot;:&quot;ableton&quot;,&quot;fileSlug&quot;:&quot;ableton&quot;,&quot;title&quot;:&quot;Ableton Live&quot;},{&quot;slug&quot;:&quot;about&quot;,&quot;fileSlug&quot;:&quot;about&quot;,&quot;title&quot;:&quot;About Me&quot;},{&quot;slug&quot;:&quot;activity-pub&quot;,&quot;fileSlug&quot;:&quot;activity-pub&quot;,&quot;title&quot;:&quot;Activity Pub shenanigans&quot;},{&quot;slug&quot;:&quot;ai-coding-benchmarks&quot;,&quot;fileSlug&quot;:&quot;ai-coding-benchmarks&quot;,&quot;title&quot;:&quot;AI Coding Benchmarks&quot;},{&quot;slug&quot;:&quot;ai-music-trends&quot;,&quot;fileSlug&quot;:&quot;ai-music-trends&quot;,&quot;title&quot;:&quot;AI Music Trends&quot;},{&quot;slug&quot;:&quot;ai&quot;,&quot;fileSlug&quot;:&quot;ai&quot;,&quot;title&quot;:&quot;AI&quot;},{&quot;slug&quot;:&quot;anki&quot;,&quot;fileSlug&quot;:&quot;anki&quot;,&quot;title&quot;:&quot;Anki flashcards&quot;},{&quot;slug&quot;:&quot;apache&quot;,&quot;fileSlug&quot;:&quot;apache&quot;,&quot;title&quot;:&quot;Email to the Apache Software Foundation&quot;},{&quot;slug&quot;:&quot;atheism&quot;,&quot;fileSlug&quot;:&quot;atheism&quot;,&quot;title&quot;:&quot;atheism&quot;},{&quot;slug&quot;:&quot;bands-as-sports-teams&quot;,&quot;fileSlug&quot;:&quot;bands-as-sports-teams&quot;,&quot;title&quot;:&quot;Bands and sports teams&quot;},{&quot;slug&quot;:&quot;best albums in the universe&quot;,&quot;fileSlug&quot;:&quot;best albums in the universe&quot;,&quot;title&quot;:&quot;The Best Albums in the Universe&quot;},{&quot;slug&quot;:&quot;blog/a-story-of-failure&quot;,&quot;fileSlug&quot;:&quot;a-story-of-failure&quot;,&quot;title&quot;:&quot;A Story Of Failure&quot;},{&quot;slug&quot;:&quot;blog/another-week&quot;,&quot;fileSlug&quot;:&quot;another-week&quot;,&quot;title&quot;:&quot;Another Week&quot;},{&quot;slug&quot;:&quot;blog/another-year-without-resolutions&quot;,&quot;fileSlug&quot;:&quot;another-year-without-resolutions&quot;,&quot;title&quot;:&quot;Another Year Without Resolutions&quot;},{&quot;slug&quot;:&quot;blog/blogging-but-this-time-with-blogging&quot;,&quot;fileSlug&quot;:&quot;blogging-but-this-time-with-blogging&quot;,&quot;title&quot;:&quot;Blogging, but this time with blogging&quot;},{&quot;slug&quot;:&quot;blog/causes-of-giving-to-causes&quot;,&quot;fileSlug&quot;:&quot;causes-of-giving-to-causes&quot;,&quot;title&quot;:&quot;Causes of Giving to Causes&quot;},{&quot;slug&quot;:&quot;blog/considering-moving-blogs&quot;,&quot;fileSlug&quot;:&quot;considering-moving-blogs&quot;,&quot;title&quot;:&quot;Considering moving blogs&quot;},{&quot;slug&quot;:&quot;blog/font-of-creativity&quot;,&quot;fileSlug&quot;:&quot;font-of-creativity&quot;,&quot;title&quot;:&quot;Font of creativity&quot;},{&quot;slug&quot;:&quot;blog/getting-nothing-done&quot;,&quot;fileSlug&quot;:&quot;getting-nothing-done&quot;,&quot;title&quot;:&quot;Getting Nothing Done&quot;},{&quot;slug&quot;:&quot;blog/giving-up-on-resolutions&quot;,&quot;fileSlug&quot;:&quot;giving-up-on-resolutions&quot;,&quot;title&quot;:&quot;Giving Up On Resolutions&quot;},{&quot;slug&quot;:&quot;blog/halloween-sadness&quot;,&quot;fileSlug&quot;:&quot;halloween-sadness&quot;,&quot;title&quot;:&quot;Halloween Sadness&quot;},{&quot;slug&quot;:&quot;blog/latest-and-not-so-greatest&quot;,&quot;fileSlug&quot;:&quot;latest-and-not-so-greatest&quot;,&quot;title&quot;:&quot;Latest and Not-so-greatest&quot;},{&quot;slug&quot;:&quot;blog/listening-to-music-while-doing-things&quot;,&quot;fileSlug&quot;:&quot;listening-to-music-while-doing-things&quot;,&quot;title&quot;:&quot;Listening to music while doing things&quot;},{&quot;slug&quot;:&quot;blog/making-a-computer-game&quot;,&quot;fileSlug&quot;:&quot;making-a-computer-game&quot;,&quot;title&quot;:&quot;Making a computer game&quot;},{&quot;slug&quot;:&quot;blog/mastodon-is-not-twitter&quot;,&quot;fileSlug&quot;:&quot;mastodon-is-not-twitter&quot;,&quot;title&quot;:&quot;Mastodon is not Twitter&quot;},{&quot;slug&quot;:&quot;blog/more-about-blogging&quot;,&quot;fileSlug&quot;:&quot;more-about-blogging&quot;,&quot;title&quot;:&quot;More about blogging&quot;},{&quot;slug&quot;:&quot;blog/music-projects-as-ephemera&quot;,&quot;fileSlug&quot;:&quot;music-projects-as-ephemera&quot;,&quot;title&quot;:&quot;Music Projects as Ephemera&quot;},{&quot;slug&quot;:&quot;blog/new-danger-third-rail-ep&quot;,&quot;fileSlug&quot;:&quot;new-danger-third-rail-ep&quot;,&quot;title&quot;:&quot;New Danger Third Rail EP&quot;},{&quot;slug&quot;:&quot;blog/new-year&quot;,&quot;fileSlug&quot;:&quot;new-year&quot;,&quot;title&quot;:&quot;Every day is New Year&#39;s Day&quot;},{&quot;slug&quot;:&quot;blog/not-quite-writers-block&quot;,&quot;fileSlug&quot;:&quot;not-quite-writers-block&quot;,&quot;title&quot;:&quot;Not Quite Writer&#39;s Block&quot;},{&quot;slug&quot;:&quot;blog/pandemic-weary&quot;,&quot;fileSlug&quot;:&quot;pandemic-weary&quot;,&quot;title&quot;:&quot;Pandemic Weary&quot;},{&quot;slug&quot;:&quot;blog/q-poker-in-progress&quot;,&quot;fileSlug&quot;:&quot;q-poker-in-progress&quot;,&quot;title&quot;:&quot;Q Poker: in progress&quot;},{&quot;slug&quot;:&quot;blog/random-knowledge-about-javascript-and-typescript&quot;,&quot;fileSlug&quot;:&quot;random-knowledge-about-javascript-and-typescript&quot;,&quot;title&quot;:&quot;Random knowledge about Javascipt and Typescript&quot;},{&quot;slug&quot;:&quot;blog/read-before-you-write&quot;,&quot;fileSlug&quot;:&quot;read-before-you-write&quot;,&quot;title&quot;:&quot;Read before you write&quot;},{&quot;slug&quot;:&quot;blog/side-quests-of-life&quot;,&quot;fileSlug&quot;:&quot;side-quests-of-life&quot;,&quot;title&quot;:&quot;Side quests of life&quot;},{&quot;slug&quot;:&quot;blog/something-terrible&quot;,&quot;fileSlug&quot;:&quot;something-terrible&quot;,&quot;title&quot;:&quot;Something Terrible&quot;},{&quot;slug&quot;:&quot;blog/songwriting-reflections&quot;,&quot;fileSlug&quot;:&quot;songwriting-reflections&quot;,&quot;title&quot;:&quot;Songwriting Reflections&quot;},{&quot;slug&quot;:&quot;blog/the-chain&quot;,&quot;fileSlug&quot;:&quot;the-chain&quot;,&quot;title&quot;:&quot;The Chain&quot;},{&quot;slug&quot;:&quot;blog/the-unattainable-and-the-attainable&quot;,&quot;fileSlug&quot;:&quot;the-unattainable-and-the-attainable&quot;,&quot;title&quot;:&quot;The Unattainable and the Attainable&quot;},{&quot;slug&quot;:&quot;blog/untitled-2020-06-15&quot;,&quot;fileSlug&quot;:&quot;untitled-2020-06-15&quot;,&quot;title&quot;:&quot;Untitled 2020-06-15&quot;},{&quot;slug&quot;:&quot;blog/what-is-a-web-application&quot;,&quot;fileSlug&quot;:&quot;what-is-a-web-application&quot;,&quot;title&quot;:&quot;What is a web application?&quot;},{&quot;slug&quot;:&quot;blog/what-programming-language-should-i-learn&quot;,&quot;fileSlug&quot;:&quot;what-programming-language-should-i-learn&quot;,&quot;title&quot;:&quot;What programming language should I learn?&quot;},{&quot;slug&quot;:&quot;blog-cycle&quot;,&quot;fileSlug&quot;:&quot;blog-cycle&quot;,&quot;title&quot;:&quot;The blog cycle&quot;},{&quot;slug&quot;:&quot;blog&quot;,&quot;fileSlug&quot;:&quot;blog&quot;,&quot;title&quot;:&quot;Blog Posts&quot;},{&quot;slug&quot;:&quot;codecov&quot;,&quot;fileSlug&quot;:&quot;codecov&quot;,&quot;title&quot;:&quot;Codecov&quot;},{&quot;slug&quot;:&quot;comments-research&quot;,&quot;fileSlug&quot;:&quot;comments-research&quot;,&quot;title&quot;:&quot;Enabling comments&quot;},{&quot;slug&quot;:&quot;comments&quot;,&quot;fileSlug&quot;:&quot;comments&quot;,&quot;title&quot;:&quot;Comments&quot;},{&quot;slug&quot;:&quot;compost&quot;,&quot;fileSlug&quot;:&quot;compost&quot;,&quot;title&quot;:&quot;Compost pile&quot;},{&quot;slug&quot;:&quot;danger-third-rail&quot;,&quot;fileSlug&quot;:&quot;danger-third-rail&quot;,&quot;title&quot;:&quot;Danger Third Rail&quot;},{&quot;slug&quot;:&quot;dg-evergreen&quot;,&quot;fileSlug&quot;:&quot;dg-evergreen&quot;,&quot;title&quot;:&quot;Digital garden posts are unfinished, or evergreen&quot;},{&quot;slug&quot;:&quot;dg-feedback&quot;,&quot;fileSlug&quot;:&quot;dg-feedback&quot;,&quot;title&quot;:&quot;Digital gardens allow and respond to feedback&quot;},{&quot;slug&quot;:&quot;dg-new&quot;,&quot;fileSlug&quot;:&quot;dg-new&quot;,&quot;title&quot;:&quot;Digital gardens aren&#39;t afraid of something new&quot;},{&quot;slug&quot;:&quot;dg-public&quot;,&quot;fileSlug&quot;:&quot;dg-public&quot;,&quot;title&quot;:&quot;Digital gardens allow for learning in public&quot;},{&quot;slug&quot;:&quot;dg-reverse&quot;,&quot;fileSlug&quot;:&quot;dg-reverse&quot;,&quot;title&quot;:&quot;Digital gardens eschew reverse chronological sorting&quot;},{&quot;slug&quot;:&quot;dg-solo&quot;,&quot;fileSlug&quot;:&quot;dg-solo&quot;,&quot;title&quot;:&quot;Digital gardens don&#39;t need attention to thrive&quot;},{&quot;slug&quot;:&quot;dg-status&quot;,&quot;fileSlug&quot;:&quot;dg-status&quot;,&quot;title&quot;:&quot;Digital gardeners are upfront about a post&#39;s status&quot;},{&quot;slug&quot;:&quot;digital-garden-itself&quot;,&quot;fileSlug&quot;:&quot;digital-garden-itself&quot;,&quot;title&quot;:&quot;This Digital Garden&quot;},{&quot;slug&quot;:&quot;digital-gardening-principles&quot;,&quot;fileSlug&quot;:&quot;digital-gardening-principles&quot;,&quot;title&quot;:&quot;Digital gardening principles&quot;},{&quot;slug&quot;:&quot;draft&quot;,&quot;fileSlug&quot;:&quot;draft&quot;,&quot;title&quot;:&quot;Draft (writing website)&quot;},{&quot;slug&quot;:&quot;excited&quot;,&quot;fileSlug&quot;:&quot;excited&quot;,&quot;title&quot;:&quot;Things I&#39;m Excited About&quot;},{&quot;slug&quot;:&quot;fake-it-music&quot;,&quot;fileSlug&quot;:&quot;fake-it-music&quot;,&quot;title&quot;:&quot;Fake it until you make music&quot;},{&quot;slug&quot;:&quot;free will&quot;,&quot;fileSlug&quot;:&quot;free will&quot;,&quot;title&quot;:&quot;Free Will&quot;},{&quot;slug&quot;:&quot;gemdown&quot;,&quot;fileSlug&quot;:&quot;gemdown&quot;,&quot;title&quot;:&quot;Gemdown&quot;},{&quot;slug&quot;:&quot;gemini&quot;,&quot;fileSlug&quot;:&quot;gemini&quot;,&quot;title&quot;:&quot;Gemini&quot;},{&quot;slug&quot;:&quot;genre-thoughts&quot;,&quot;fileSlug&quot;:&quot;genre-thoughts&quot;,&quot;title&quot;:&quot;Writing in the genre you listen to&quot;},{&quot;slug&quot;:&quot;github&quot;,&quot;fileSlug&quot;:&quot;github&quot;,&quot;title&quot;:&quot;Github&quot;},{&quot;slug&quot;:&quot;good-song&quot;,&quot;fileSlug&quot;:&quot;good-song&quot;,&quot;title&quot;:&quot;A good song is a good song&quot;},{&quot;slug&quot;:&quot;harness-matters-more&quot;,&quot;fileSlug&quot;:&quot;harness-matters-more&quot;,&quot;title&quot;:&quot;Harness Matters More&quot;},{&quot;slug&quot;:&quot;highs-and-lows-musician&quot;,&quot;fileSlug&quot;:&quot;highs-and-lows-musician&quot;,&quot;title&quot;:&quot;The highs and lows of producing music in your home studio/kitchen&quot;},{&quot;slug&quot;:&quot;index&quot;,&quot;fileSlug&quot;:&quot;index&quot;,&quot;title&quot;:&quot;Entering the garden&quot;},{&quot;slug&quot;:&quot;intrisic motivation&quot;,&quot;fileSlug&quot;:&quot;intrisic motivation&quot;,&quot;title&quot;:&quot;Intrisic Motivation&quot;},{&quot;slug&quot;:&quot;javascript-typescript&quot;,&quot;fileSlug&quot;:&quot;javascript-typescript&quot;,&quot;title&quot;:&quot;Javascript/Typescript&quot;},{&quot;slug&quot;:&quot;motivation-music&quot;,&quot;fileSlug&quot;:&quot;motivation-music&quot;,&quot;title&quot;:&quot;Music Making Motivation&quot;},{&quot;slug&quot;:&quot;new-year-2025&quot;,&quot;fileSlug&quot;:&quot;new-year-2025&quot;,&quot;title&quot;:&quot;New Year&#39;s Day 2025&quot;},{&quot;slug&quot;:&quot;nike-the-shit-out-of-it&quot;,&quot;fileSlug&quot;:&quot;nike-the-shit-out-of-it&quot;,&quot;title&quot;:&quot;NIKE the shit out of it&quot;},{&quot;slug&quot;:&quot;not the circumstances&quot;,&quot;fileSlug&quot;:&quot;not the circumstances&quot;,&quot;title&quot;:&quot;Not The Circumstances&quot;},{&quot;slug&quot;:&quot;now&quot;,&quot;fileSlug&quot;:&quot;now&quot;,&quot;title&quot;:&quot;Now&quot;},{&quot;slug&quot;:&quot;null-rail&quot;,&quot;fileSlug&quot;:&quot;null-rail&quot;,&quot;title&quot;:&quot;Null Rail&quot;},{&quot;slug&quot;:&quot;philosophy&quot;,&quot;fileSlug&quot;:&quot;philosophy&quot;,&quot;title&quot;:&quot;philosophy&quot;},{&quot;slug&quot;:&quot;plans&quot;,&quot;fileSlug&quot;:&quot;plans&quot;,&quot;title&quot;:&quot;Plans for the digital garden&quot;},{&quot;slug&quot;:&quot;programming languages&quot;,&quot;fileSlug&quot;:&quot;programming languages&quot;,&quot;title&quot;:&quot;Programming languages (meta)&quot;},{&quot;slug&quot;:&quot;recording-setup&quot;,&quot;fileSlug&quot;:&quot;recording-setup&quot;,&quot;title&quot;:&quot;Recording setup&quot;},{&quot;slug&quot;:&quot;spanish&quot;,&quot;fileSlug&quot;:&quot;spanish&quot;,&quot;title&quot;:&quot;A bit of Spanish&quot;},{&quot;slug&quot;:&quot;sudomake-friends&quot;,&quot;fileSlug&quot;:&quot;sudomake-friends&quot;,&quot;title&quot;:&quot;Sudomake Friends&quot;},{&quot;slug&quot;:&quot;taper&quot;,&quot;fileSlug&quot;:&quot;taper&quot;,&quot;title&quot;:&quot;Taper&quot;},{&quot;slug&quot;:&quot;test-post-plz-ignore&quot;,&quot;fileSlug&quot;:&quot;test-post-plz-ignore&quot;,&quot;title&quot;:&quot;Test post, plz ignore&quot;},{&quot;slug&quot;:&quot;vibe coding&quot;,&quot;fileSlug&quot;:&quot;vibe coding&quot;,&quot;title&quot;:&quot;Vibe Coding&quot;},{&quot;slug&quot;:&quot;warnings-python&quot;,&quot;fileSlug&quot;:&quot;warnings-python&quot;,&quot;title&quot;:&quot;How to squash warnings in Python by elevating them to errors&quot;},{&quot;slug&quot;:&quot;when to vibe code&quot;,&quot;fileSlug&quot;:&quot;when to vibe code&quot;,&quot;title&quot;:&quot;When To Vibe Code&quot;},{&quot;slug&quot;:&quot;wp-1.0&quot;,&quot;fileSlug&quot;:&quot;wp-1.0&quot;,&quot;title&quot;:&quot;WP 1.0 Project&quot;},{&quot;slug&quot;:&quot;writings/absolute-power&quot;,&quot;fileSlug&quot;:&quot;absolute-power&quot;,&quot;title&quot;:&quot;Absolute Power&quot;},{&quot;slug&quot;:&quot;writings/barney&quot;,&quot;fileSlug&quot;:&quot;barney&quot;,&quot;title&quot;:&quot;Barney&quot;},{&quot;slug&quot;:&quot;writings/best-wrecks&quot;,&quot;fileSlug&quot;:&quot;best-wrecks&quot;,&quot;title&quot;:&quot;Best Wrecks&quot;},{&quot;slug&quot;:&quot;writings/blackness&quot;,&quot;fileSlug&quot;:&quot;blackness&quot;,&quot;title&quot;:&quot;Blackness&quot;},{&quot;slug&quot;:&quot;writings/concession&quot;,&quot;fileSlug&quot;:&quot;concession&quot;,&quot;title&quot;:&quot;Concession&quot;},{&quot;slug&quot;:&quot;writings/coping-skills&quot;,&quot;fileSlug&quot;:&quot;coping-skills&quot;,&quot;title&quot;:&quot;Coping skills&quot;},{&quot;slug&quot;:&quot;writings/empty-mind&quot;,&quot;fileSlug&quot;:&quot;empty-mind&quot;,&quot;title&quot;:&quot;Empty Mind&quot;},{&quot;slug&quot;:&quot;writings/gearing-up&quot;,&quot;fileSlug&quot;:&quot;gearing-up&quot;,&quot;title&quot;:&quot;Gearing up&quot;},{&quot;slug&quot;:&quot;writings/gray&quot;,&quot;fileSlug&quot;:&quot;gray&quot;,&quot;title&quot;:&quot;Gray&quot;},{&quot;slug&quot;:&quot;writings/hurricane&quot;,&quot;fileSlug&quot;:&quot;hurricane&quot;,&quot;title&quot;:&quot;Hurricane&quot;},{&quot;slug&quot;:&quot;writings/introduction&quot;,&quot;fileSlug&quot;:&quot;introduction&quot;,&quot;title&quot;:&quot;Introduction&quot;},{&quot;slug&quot;:&quot;writings/just-rain&quot;,&quot;fileSlug&quot;:&quot;just-rain&quot;,&quot;title&quot;:&quot;Just Rain&quot;},{&quot;slug&quot;:&quot;writings/lazily-slapping-the-snare-drum&quot;,&quot;fileSlug&quot;:&quot;lazily-slapping-the-snare-drum&quot;,&quot;title&quot;:&quot;Lazily slapping the snare drum&quot;},{&quot;slug&quot;:&quot;writings/pavement-windshield-pop&quot;,&quot;fileSlug&quot;:&quot;pavement-windshield-pop&quot;,&quot;title&quot;:&quot;Pavement Windshield Pop&quot;},{&quot;slug&quot;:&quot;writings/pillows-and-sheets&quot;,&quot;fileSlug&quot;:&quot;pillows-and-sheets&quot;,&quot;title&quot;:&quot;Pillows and Sheets&quot;},{&quot;slug&quot;:&quot;writings/preoccupied&quot;,&quot;fileSlug&quot;:&quot;preoccupied&quot;,&quot;title&quot;:&quot;Preoccupied&quot;},{&quot;slug&quot;:&quot;writings/rainbow-static&quot;,&quot;fileSlug&quot;:&quot;rainbow-static&quot;,&quot;title&quot;:&quot;Rainbow Static&quot;},{&quot;slug&quot;:&quot;writings/suffer&quot;,&quot;fileSlug&quot;:&quot;suffer&quot;,&quot;title&quot;:&quot;Suffer&quot;},{&quot;slug&quot;:&quot;writings/the-building-building&quot;,&quot;fileSlug&quot;:&quot;the-building-building&quot;,&quot;title&quot;:&quot;The Building Building&quot;},{&quot;slug&quot;:&quot;writings/these-are-the-days&quot;,&quot;fileSlug&quot;:&quot;these-are-the-days&quot;,&quot;title&quot;:&quot;Pep talk&quot;},{&quot;slug&quot;:&quot;writings/thoughts-of-home&quot;,&quot;fileSlug&quot;:&quot;thoughts-of-home&quot;,&quot;title&quot;:&quot;Thoughts of Home&quot;},{&quot;slug&quot;:&quot;writings/toil&quot;,&quot;fileSlug&quot;:&quot;toil&quot;,&quot;title&quot;:&quot;Toil&quot;},{&quot;slug&quot;:&quot;writings/untitled-2&quot;,&quot;fileSlug&quot;:&quot;untitled-2&quot;,&quot;title&quot;:&quot;(Untitled)&quot;},{&quot;slug&quot;:&quot;writings&quot;,&quot;fileSlug&quot;:&quot;writings&quot;,&quot;title&quot;:&quot;Various Writings&quot;}],&quot;droppedCount&quot;:10}&lt;/script&gt;
&lt;script&gt;
const DATA = JSON.parse(document.getElementById(&#39;data&#39;).textContent);
const ELEVENTY = &#39;http://localhost:8080&#39;;
const CMS = &#39;http://localhost:5173&#39;;

const slugSet = new Set(DATA.allNodes.map(n =&gt; n.fileSlug.toLowerCase()));

function escapeHtml(s) {
  return String(s).replaceAll(&#39;&amp;&#39;,&#39;&amp;&#39;).replaceAll(&#39;&lt;&#39;,&#39;&lt;&#39;).replaceAll(&#39;&gt;&#39;,&#39;&gt;&#39;).replaceAll(&#39;&quot;&#39;,&#39;&quot;&#39;).replaceAll(&quot;&#39;&quot;, &#39;&amp;#39;&#39;);
}

function renderMeta() {
  const m = document.getElementById(&#39;meta&#39;);
  m.innerHTML = `
    &lt;div&gt;${DATA.nodeCount} nodes · ${DATA.totalLinks} link suggestions · ${DATA.totalRefs} cross-refs&lt;/div&gt;
    &lt;div style=&quot;margin-top:0.2rem;color:var(--muted2);font-size:0.7rem&quot;&gt;generated ${new Date(DATA.generatedAt).toLocaleString()}&lt;/div&gt;
  `;
}

function getSortedFiltered() {
  const q = document.getElementById(&#39;filter&#39;).value.trim().toLowerCase();
  const hideEmpty = document.getElementById(&#39;hide-empty&#39;).checked;
  const sortBy = document.getElementById(&#39;sort&#39;).value;

  let items = DATA.results.slice();
  if (q) {
    items = items.filter(r =&gt;
      r.node.fileSlug.toLowerCase().includes(q) ||
      r.node.title.toLowerCase().includes(q) ||
      r.node.slug.toLowerCase().includes(q)
    );
  }
  if (hideEmpty) {
    items = items.filter(r =&gt; (r.parsed &amp;&amp; (r.parsed.suggested_links.length + r.parsed.cross_references.length &gt; 0)) || r.error);
  }
  if (sortBy === &#39;slug&#39;) items.sort((a,b) =&gt; a.node.slug.localeCompare(b.node.slug));
  else if (sortBy === &#39;title&#39;) items.sort((a,b) =&gt; a.node.title.localeCompare(b.node.title));
  else items.sort((a,b) =&gt; {
    const ac = (a.parsed ? a.parsed.suggested_links.length + a.parsed.cross_references.length : 0);
    const bc = (b.parsed ? b.parsed.suggested_links.length + b.parsed.cross_references.length : 0);
    return bc - ac || a.node.slug.localeCompare(b.node.slug);
  });
  return items;
}

let selectedSlug = null;

function renderNav() {
  const nav = document.getElementById(&#39;nav&#39;);
  const items = getSortedFiltered();
  nav.innerHTML = items.map(r =&gt; {
    const links = r.parsed ? r.parsed.suggested_links.length : 0;
    const refs = r.parsed ? r.parsed.cross_references.length : 0;
    const isActive = r.node.slug === selectedSlug;
    return `
      &lt;a class=&quot;nav-item ${isActive ? &#39;active&#39; : &#39;&#39;}&quot; data-slug=&quot;${escapeHtml(r.node.slug)}&quot; href=&quot;#${encodeURIComponent(r.node.slug)}&quot;&gt;
        &lt;div&gt;${escapeHtml(r.node.title)}&lt;span class=&quot;slug&quot;&gt;${escapeHtml(r.node.slug)}&lt;/span&gt;&lt;/div&gt;
        &lt;div class=&quot;counts&quot;&gt;&lt;strong&gt;${links}&lt;/strong&gt;&lt;em&gt;${refs}&lt;/em&gt;&lt;/div&gt;
      &lt;/a&gt;
    `;
  }).join(&#39;&#39;);
}

function renderNode(r) {
  if (!r) {
    document.getElementById(&#39;main&#39;).innerHTML = &#39;&lt;div class=&quot;no-node&quot;&gt;No matching node.&lt;/div&gt;&#39;;
    return;
  }
  const eleventy = `${ELEVENTY}/garden/${encodeURI(r.node.slug)}/`;
  const cms = `${CMS}/edit/${encodeURI(r.node.slug)}`;

  let html = `
    &lt;h2&gt;${escapeHtml(r.node.title)}&lt;/h2&gt;
    &lt;div class=&quot;node-meta&quot;&gt;
      &lt;a href=&quot;${cms}&quot; target=&quot;_blank&quot;&gt;Edit in CMS ↗&lt;/a&gt;
      &lt;a href=&quot;${eleventy}&quot; target=&quot;_blank&quot;&gt;Preview ↗&lt;/a&gt;
      &lt;span&gt;${escapeHtml(r.node.slug)}&lt;/span&gt;
    &lt;/div&gt;
  `;

  if (r.error) {
    html += `&lt;div class=&quot;error&quot;&gt;Error: ${escapeHtml(r.error)}&lt;/div&gt;`;
  } else {
    const sl = r.parsed.suggested_links;
    const cr = r.parsed.cross_references;
    html += `&lt;div class=&quot;section&quot;&gt;
      &lt;h3&gt;Suggested Wikilinks (${sl.length})&lt;/h3&gt;
      ${sl.length ? sl.map(s =&gt; renderSuggestion(s, r.node)).join(&#39;&#39;) : &#39;&lt;div class=&quot;empty&quot;&gt;No new wikilink suggestions.&lt;/div&gt;&#39;}
    &lt;/div&gt;`;
    html += `&lt;div class=&quot;section&quot;&gt;
      &lt;h3&gt;Could Elaborate This Node (${cr.length})&lt;/h3&gt;
      ${cr.length ? cr.map(c =&gt; renderCrossRef(c, r.node)).join(&#39;&#39;) : &#39;&lt;div class=&quot;empty&quot;&gt;No cross-reference suggestions.&lt;/div&gt;&#39;}
    &lt;/div&gt;`;
  }

  document.getElementById(&#39;main&#39;).innerHTML = html;
}

function renderSuggestion(s, parentNode) {
  const exists = slugSet.has(s.slug.toLowerCase());
  const targetCms = exists ? `${CMS}/edit/${encodeURI(s.slug)}` : null;
  const targetView = exists ? `${ELEVENTY}/garden/${encodeURI(s.slug)}/` : null;
  const parentCms = `${CMS}/edit/${encodeURI(parentNode.slug)}`;
  return `
    &lt;div class=&quot;card&quot;&gt;
      &lt;div class=&quot;head&quot;&gt;
        &lt;span class=&quot;target ${exists ? &#39;&#39; : &#39;missing&#39;}&quot;&gt;
          ${exists ? `&lt;a href=&quot;${targetCms}&quot; target=&quot;_blank&quot;&gt;[[${escapeHtml(s.slug)}]]&lt;/a&gt;` : `[[${escapeHtml(s.slug)}]] ⚠ no such node`}
        &lt;/span&gt;
        &lt;span class=&quot;anchor&quot;&gt;${escapeHtml(s.anchor_text)}&lt;/span&gt;
      &lt;/div&gt;
      &lt;div class=&quot;context&quot;&gt;${escapeHtml(s.context)}&lt;/div&gt;
      &lt;div class=&quot;rationale&quot;&gt;${escapeHtml(s.rationale)}&lt;/div&gt;
      &lt;div class=&quot;actions&quot;&gt;
        &lt;a href=&quot;${parentCms}&quot; target=&quot;_blank&quot;&gt;Edit ${escapeHtml(parentNode.slug)} →&lt;/a&gt;
        ${exists ? `&lt;a href=&quot;${targetView}&quot; target=&quot;_blank&quot;&gt;Preview target ↗&lt;/a&gt;` : &#39;&#39;}
      &lt;/div&gt;
    &lt;/div&gt;
  `;
}

function renderCrossRef(c, parentNode) {
  const exists = slugSet.has(c.slug.toLowerCase());
  const targetCms = exists ? `${CMS}/edit/${encodeURI(c.slug)}` : null;
  const targetView = exists ? `${ELEVENTY}/garden/${encodeURI(c.slug)}/` : null;
  return `
    &lt;div class=&quot;card&quot;&gt;
      &lt;div class=&quot;head&quot;&gt;
        &lt;span class=&quot;target ${exists ? &#39;&#39; : &#39;missing&#39;}&quot;&gt;
          ${exists ? `&lt;a href=&quot;${targetCms}&quot; target=&quot;_blank&quot;&gt;${escapeHtml(c.slug)}&lt;/a&gt;` : `${escapeHtml(c.slug)} ⚠ no such node`}
        &lt;/span&gt;
      &lt;/div&gt;
      &lt;div class=&quot;rationale&quot;&gt;${escapeHtml(c.rationale)}&lt;/div&gt;
      ${exists ? `&lt;div class=&quot;actions&quot;&gt;&lt;a href=&quot;${targetView}&quot; target=&quot;_blank&quot;&gt;Preview target ↗&lt;/a&gt;&lt;/div&gt;` : &#39;&#39;}
    &lt;/div&gt;
  `;
}

function selectFromHash() {
  const slug = decodeURIComponent((location.hash || &#39;&#39;).replace(/^#/, &#39;&#39;));
  if (!slug) return;
  const found = DATA.results.find(r =&gt; r.node.slug === slug);
  selectedSlug = slug;
  renderNav();
  renderNode(found);
}

document.addEventListener(&#39;click&#39;, e =&gt; {
  const a = e.target.closest(&#39;.nav-item&#39;);
  if (!a) return;
  e.preventDefault();
  const slug = a.dataset.slug;
  selectedSlug = slug;
  history.replaceState(null, &#39;&#39;, &#39;#&#39; + encodeURIComponent(slug));
  renderNav();
  renderNode(DATA.results.find(r =&gt; r.node.slug === slug));
});

document.getElementById(&#39;filter&#39;).addEventListener(&#39;input&#39;, renderNav);
document.getElementById(&#39;sort&#39;).addEventListener(&#39;change&#39;, renderNav);
document.getElementById(&#39;hide-empty&#39;).addEventListener(&#39;change&#39;, renderNav);
window.addEventListener(&#39;hashchange&#39;, selectFromHash);

renderMeta();
renderNav();
selectFromHash();
&lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;</content>
  </entry>
  <entry>
    <title>Zen</title>
    <link href="https://garden.travisbriggs.com/garden/zen/"/>
    <updated>2026-07-28T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/zen/</id>
    <content xml:lang="en" type="html"></content>
  </entry>
  <entry>
    <title>The Chain</title>
    <link href="https://garden.travisbriggs.com/garden/the-chain/"/>
    <updated>2026-07-28T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/the-chain/</id>
    <content xml:lang="en" type="html"></content>
  </entry>
  <entry>
    <title>Real Artists Ship</title>
    <link href="https://garden.travisbriggs.com/garden/real-artists-ship/"/>
    <updated>2026-07-27T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/real-artists-ship/</id>
    <content xml:lang="en" type="html">&lt;p&gt;The famous saying attributed to &lt;a href=&quot;https://en.wikiquote.org/wiki/Steve_Jobs&quot;&gt;Steve Jobs&lt;/a&gt; when they were way overdue on finish the original Macintosh.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>No one cares, and that&#39;s a good thing!</title>
    <link href="https://garden.travisbriggs.com/garden/no-one-cares-good/"/>
    <updated>2026-07-27T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/no-one-cares-good/</id>
    <content xml:lang="en" type="html">&lt;p&gt;When I talk to creative people, I love seeing and hearing and reading examples of their work of course! Doesn&#39;t everyone? But if you notice, a lot of creative people are very wary of &lt;a href=&quot;https://garden.travisbriggs.com/garden/dg-public/&quot;&gt;posting stuff online&lt;/a&gt;. They have normal, rational anxities:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;What if it&#39;s not good enough and everyone hates it?&lt;/li&gt;
&lt;li&gt;What if they then proceed to tell me that?&lt;/li&gt;
&lt;li&gt;What if I forget that I posted it and people find it 6 years from now when my actually-amazing-and-good-enough work is gaining traction?&lt;/li&gt;
&lt;li&gt;What if someone tries to &lt;em&gt;steal&lt;/em&gt; it?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I&#39;ve been posting online for over 20 years and I am here to tell you the terrifying, yet liberating news: &lt;strong&gt;no one cares, and that&#39;s a good thing!&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;If you wait 10 years or 10 minutes to post something creative that you spent 8 months or 8 hours on, it doesn&#39;t matter. No one will see it besides the 14 people that you send it to, only 5 of them will actually click, and only 1 of them will sit with the piece for more than 20 seconds. None of them, &lt;em&gt;none of them&lt;/em&gt;, will share it with their own friends. It will not go viral. The 5 people that clicked it will say &amp;quot;Wow, that&#39;s cool!&amp;quot; and maybe ask &amp;quot;Did you make this in &lt;tool name=&quot;&quot;&gt;?&amp;quot; and &lt;em&gt;that&#39;s it&lt;/em&gt;.&lt;/tool&gt;&lt;/p&gt;
&lt;p&gt;This is the lesson I&#39;ve learned, and it can feel deflating and demoralizing and a bunch of other de- prefixed words. But here&#39;s why it&#39;s a good thing.&lt;/p&gt;
&lt;p&gt;What happens to &lt;a href=&quot;https://garden.travisbriggs.com/garden/danger-third-rail/&quot;&gt;bands&lt;/a&gt; after a hugely successful debut album? They get boxed in, right? This is the &lt;a href=&quot;https://en.wikipedia.org/wiki/Sophomore_slump&quot;&gt;Sophomore slump&lt;/a&gt;: their next album has to be better, but different, but similar enough, etc. People start hanging labels on them. They&#39;re a &amp;quot;metal band&amp;quot; or a &amp;quot;new wave pop project&amp;quot; or whatever. They have an attractive lead singer. They have a great drummer. Whatever it is, that album, that artifact, is now fully baked and delivered. It is fossilized in the public mind and can never be changed, and it has established a reputation and expectations for the artist, for better or worse.&lt;/p&gt;
&lt;p&gt;When you post your &lt;a href=&quot;https://garden.travisbriggs.com/garden/blog/songwriting-reflections/&quot;&gt;songs&lt;/a&gt; and &lt;a href=&quot;https://garden.travisbriggs.com/garden/motivation-music/&quot;&gt;music&lt;/a&gt; and other creative output online and no one hears it? &lt;strong&gt;You retain your freedom&lt;/strong&gt;. It&#39;s disappointing that you didn&#39;t hit it big, but that was never going to happen overnight. More importantly, you &lt;a href=&quot;https://garden.travisbriggs.com/garden/real-artists-ship/&quot;&gt;shipped&lt;/a&gt;. Maybe you&#39;re using the &lt;a href=&quot;https://garden.travisbriggs.com/garden/the-chain/&quot;&gt;the chain method&lt;/a&gt;? You&#39;ve got another &lt;em&gt;x&lt;/em&gt; to put on your calendar. Maybe you&#39;re trying out a new approach, or a new genre? You&#39;ve proven that you can do it, you&#39;ve finished it and made it public.&lt;/p&gt;
&lt;p&gt;Listen, I&#39;m not selling a course. I&#39;m not trying to convince a generation of creative people to open their eyes and blah blah blah. From twenty years of experience, I&#39;m telling you that you will find out for yourself that &lt;em&gt;no one cares and that&#39;s a good thing&lt;/em&gt;, maybe not until you touch the hot stove yourself.&lt;/p&gt;
&lt;p&gt;But here&#39;s a hypothetical: Is it better to wait 6 years and publish 10 things that no one cares about? Or to publish something every 6 weeks and start to realize the fact for yourself, draw strength from it, and come out swinging?&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Harness Matters More</title>
    <link href="https://garden.travisbriggs.com/garden/harness-matters-more/"/>
    <updated>2026-06-25T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/harness-matters-more/</id>
    <content xml:lang="en" type="html">&lt;p&gt;Many have theorized that the coding &lt;strong&gt;harness&lt;/strong&gt; matters more than the backend model when doing AI assisted or &amp;quot;vibe&amp;quot; coding. The harness is the set of system prompts, instructions for tool use, ways of loading skills/MCP and utilizing them, patterns for filesystem access, permissions models, etc, that actually makes Claude &lt;em&gt;Code&lt;/em&gt; different than vanilla Claude (which can also write code on its own).&lt;/p&gt;
&lt;p&gt;I largely agree with this position, based on my general mistrust of &lt;a href=&quot;https://garden.travisbriggs.com/garden/ai-coding-benchmarks/&quot;&gt;AI coding benchmarks&lt;/a&gt;.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>AI</title>
    <link href="https://garden.travisbriggs.com/garden/ai/"/>
    <updated>2026-06-25T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/ai/</id>
    <content xml:lang="en" type="html">&lt;p&gt;As I write this, it is April 13th, 2026. ChatGPT was released in November 2022, with an estimated 5 million users within a week of launch, slamming the world into the &amp;quot;AI era&amp;quot; that we find ourselves in now. That was three and a half years ago, and in all that time, I haven&#39;t written a single thing in my digital garden about AI. I wrote plenty to my friends, discussed it at work, fretted about it with my wife, but nothing here.&lt;/p&gt;
&lt;p&gt;If a Digital Garden is about &lt;a href=&quot;https://garden.travisbriggs.com/garden/dg-public/&quot;&gt;learning in public&lt;/a&gt;, the meta lesson is that I should just start writing about something as soon as it interests me, as soon as I have opinions about it. But also, it&#39;s time to put that principle into practice and start sketching out some of my ideas about all this crazy sci-fi-but-real-life shit that&#39;s been going down between then and now.&lt;/p&gt;
&lt;p&gt;I&#39;m just going to make a good old bullet list with questions I want to research answers to and other topics, and then fill these in later when I have time:&lt;/p&gt;
&lt;p&gt;One thing I&#39;ll address off the bat: &lt;strong&gt;Is it capitulation to spit in the face of 70 years of Computer Science research and accept that the current techniques of LLMs should be wholly referred to as &amp;quot;AI&amp;quot;?&lt;/strong&gt; I&#39;m going to go the GNU/Linux route here. Yes, Linux is just a kernel, and GNU is the suite of programs that made that kernel useful. But in the broad vernacular, Linux is an operating system and has been for years. It&#39;s vernacular, that&#39;s how it works. ChatGPT is understood by millions and millions of people to be &amp;quot;AI&amp;quot;, so we can just go with that.&lt;/p&gt;
&lt;p&gt;For most of 2026, Claude Code has been the most popular solution for AI-assisted coding, or sometimes &amp;quot;vibe coding&amp;quot;. Many have suggested that the &lt;a href=&quot;https://garden.travisbriggs.com/garden/harness-matters-more/&quot;&gt;harness matters more&lt;/a&gt; but a lot of people still chase &lt;a href=&quot;https://garden.travisbriggs.com/garden/ai-coding-benchmarks/&quot;&gt;AI coding benchmarks&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Other questions I&#39;d like to answer:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Does training an LLM infringe copyright?&lt;/li&gt;
&lt;li&gt;Is training an LLM on the entire Internet ethical?&lt;/li&gt;
&lt;li&gt;Are the models going to get &amp;quot;better&amp;quot;, or just plateau? Do we have enough &amp;quot;internets&amp;quot; left to train them on, if parameters is the only thing that makes them improve?&lt;/li&gt;
&lt;li&gt;Is there an &lt;a href=&quot;https://garden.travisbriggs.com/garden/AI%20bubble/&quot;&gt;AI bubble&lt;/a&gt;? (spoiler: yes)&lt;/li&gt;
&lt;li&gt;What trillion dollar problem is AI going to solve?&lt;/li&gt;
&lt;li&gt;Is AI art real art?
&lt;ul&gt;
&lt;li&gt;Is it any good anyways?&lt;/li&gt;
&lt;li&gt;If the answer to the two above are yes, then why do people hate it so much?&lt;/li&gt;
&lt;li&gt;Do people compel themselves to answer no to one of those questions in order to enact an anti-&amp;quot;AI art&amp;quot; worldview?&lt;/li&gt;
&lt;li&gt;What are the philosophical problems around songs you like, but you find out they were made by AI?&lt;/li&gt;
&lt;li&gt;What are the &lt;a href=&quot;https://garden.travisbriggs.com/garden/ai-music-trends/&quot;&gt;general trends in music consumption&lt;/a&gt; in 2025 and beyond that are affected by this?&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Why is there so much &#39;hate&#39; agains AI/LLMs?&lt;/li&gt;
&lt;li&gt;Is Sam Altman a piece of shit?&lt;/li&gt;
&lt;li&gt;Are local models worth it in 2026?&lt;/li&gt;
&lt;li&gt;Why are AI fruit videos so awesome?&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  <entry>
    <title>AI Coding Benchmarks</title>
    <link href="https://garden.travisbriggs.com/garden/ai-coding-benchmarks/"/>
    <updated>2026-06-25T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/ai-coding-benchmarks/</id>
    <content xml:lang="en" type="html">&lt;p&gt;Ever since the LLM wars started, people have been developing benchmarks to try to compare which ones are &amp;quot;better&amp;quot;, which ones are &lt;em&gt;the best&lt;/em&gt;. These are trotted out in every new model release to explain to (probably mostly investors) just how &lt;em&gt;far we&#39;ve come&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Setting aside the practical problems with such benchmarks, my opinion is that these benchmarks just don&#39;t really matter at all.&lt;/p&gt;
&lt;p&gt;When I&#39;m using Claude Code, I&#39;m much more concerned about the experience than the &amp;quot;raw algorithmic ouput&amp;quot;. That&#39;s probably because I&#39;m mostly working on projects that have some kind of web app or user interface, and verifying that it works requires Human in the Loop (HITL). My experience prompting, getting feedback, iterating, etc is much more important than the &amp;quot;raw ultimate coding power&amp;quot; that the model provides. I don&#39;t need Claude Code to write a perfect JIT compiler, or media decoding algorithm, or tree shaker for an obscure language. I need it to be able to create and iterate on a UI with me, ask intelligent questions that surface clear tradeoffs in architecture, and respond to my own questions.&lt;/p&gt;
&lt;p&gt;I&#39;m sorry, I know loop-based agentic whatever is the future, but for now I&#39;m getting the best results with an iterative HITL approach.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Now</title>
    <link href="https://garden.travisbriggs.com/now/"/>
    <updated>2026-06-23T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/now/</id>
    <content xml:lang="en" type="html">&lt;p&gt;2026 has been getting much better! Mostly from a mental health perspective. I&#39;ve
come to truly believe that it&#39;s &lt;a href=&quot;https://garden.travisbriggs.com/garden/not%20the%20circumstances/&quot;&gt;not the circumstances&lt;/a&gt; but how you react to them
that matters. In that sense, what I&#39;m saying is: &amp;quot;things&amp;quot; aren&#39;t going better, they
weren&#39;t that bad to begin with.&lt;/p&gt;
&lt;p&gt;I&#39;m mentoring someone in &lt;a href=&quot;https://summerofcode.withgoogle.com/&quot;&gt;Google Summer of Code&lt;/a&gt;!
I&#39;ve done it twice before, both times for &lt;a href=&quot;https://garden.travisbriggs.com/garden/Kiwix/&quot;&gt;Kiwix&lt;/a&gt;. It&#39;s going well so far, my
student is really easy going and fun to work with.&lt;/p&gt;
&lt;p&gt;I really have truly embraced &lt;a href=&quot;https://garden.travisbriggs.com/garden/vibe%20coding/&quot;&gt;vibe coding&lt;/a&gt;, and now not only as a practice that
I feel is somehow necessary to avoid my total obselescence in society.&lt;/p&gt;
&lt;p&gt;Speaking of payoffs, I&#39;ve also been working on building &lt;a href=&quot;https://garden.travisbriggs.com/garden/intrisic%20motivation/&quot;&gt;intrisic motivation&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Work is going well. More stressful than usual, but I actually think that&#39;s because
I&#39;m more motivated and engaged then I&#39;ve been in a long time.&lt;/p&gt;
&lt;p&gt;Currently, I&#39;m still living in San Francisco, in the same apartment I&#39;ve lived
in since we moved there in December 2012. What can I say, it&#39;s cozy,
rent-controlled and in an awesome neighborhood (near Zeitgeist and Pizza Zone).
I also have the same job at YouTube that I&#39;ve had all that time.&lt;/p&gt;
&lt;p&gt;Now I&#39;m typing a whole bunch of crap! Why? Because I want to test if the autosave interrupts my typing!&lt;/p&gt;
&lt;hr /&gt;
&lt;h3&gt;What is a &#39;now&#39; page?&lt;/h3&gt;
&lt;p&gt;A now page is like an &lt;a href=&quot;https://garden.travisbriggs.com/garden/about/&quot;&gt;about&lt;/a&gt; page, but with the scope of &amp;quot;right now&amp;quot; instead
of a long view. The easiest way to think about it is: what would you tell a
friend that you haven&#39;t seen in a while about what you&#39;re up to?&lt;/p&gt;
&lt;h3&gt;Where can I find a list of people with websites that feature a &#39;now&#39; page?&lt;/h3&gt;
&lt;p&gt;Just go to &lt;a href=&quot;https://nownownow.com/&quot;&gt;nownownow.com&lt;/a&gt;. You can add your site to that
directory should you choose to add a /now page to your site.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Sudomake Friends</title>
    <link href="https://garden.travisbriggs.com/garden/sudomake-friends/"/>
    <updated>2026-06-09T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/sudomake-friends/</id>
    <content xml:lang="en" type="html">&lt;p&gt;Once I started using &lt;a href=&quot;https://openclaw.ai/&quot;&gt;OpenClaw&lt;/a&gt; (then switched to &lt;a href=&quot;https://github.com/nanocoai/nanoclaw&quot;&gt;nanoclaw&lt;/a&gt;), one of the coolest main takeaways was that I could get AI bots to message me on &lt;a href=&quot;https://telegram.org/&quot;&gt;Telegram&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I thought about all the news articles about how people had gotten addicted to talking to LLMs that they considered to be real people, and my conclusion was that I should try it out!&lt;/p&gt;
&lt;p&gt;So I made &lt;a href=&quot;https://github.com/audiodude/sudomake-friends&quot;&gt;Sudomake Friends&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;It&#39;s kind of like an RPG where you roleplay having friends....🙃&lt;/p&gt;
&lt;p&gt;You enter information about yourself, and then &amp;quot;roll&amp;quot; the friends based on your interests and personality. You can edit them and re-roll in a &lt;a href=&quot;https://en.wikipedia.org/wiki/Text-based_user_interface&quot;&gt;TUI&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Once you&#39;ve selected your friends and added them to a Telegram group, they text you and each other based on their &amp;quot;work and sleep schedules&amp;quot;. They respond to chats.....but not always, like real people. And they don&#39;t respond in 3 seconds either, like real people. They have their own interests and perosnalities, and can initiate chats and chat with each other.&lt;/p&gt;
&lt;p&gt;I&#39;ve been using it myself with 4 friends for over a month and it&#39;s.....interesting. It definitely works better when I just fire off random ideas and stuff into the chat and see what happens. Unfortunately, I&#39;ve noticed that when they start chats, they&#39;re very formulaic and uninteresting.&lt;/p&gt;
&lt;p&gt;It is definitely a bit uncanny for my phone to beep and when I look down, it&#39;s a text from one of my imaginary friends.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Kiwix</title>
    <link href="https://garden.travisbriggs.com/garden/Kiwix/"/>
    <updated>2026-06-09T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/Kiwix/</id>
    <content xml:lang="en" type="html">&lt;p&gt;&lt;a href=&quot;https://kiwix.org/&quot;&gt;Kiwix&lt;/a&gt; is an organization that helps make web content available for offline viewing. I&#39;ve been working with them since 2018 and I would say that I&#39;m definitely part of the organization, in a volunteer capacity. I primarily work with them on &lt;a href=&quot;https://garden.travisbriggs.com/garden/wp-1.0/&quot;&gt;WP1&lt;/a&gt;, though I&#39;ve also worked on &lt;a href=&quot;https://github.com/openzim/mwoffliner&quot;&gt;mwoffliner&lt;/a&gt;, which is a scraping bot for making offline copies of Wikipedia pages. The offliner works with WP1 inside something called a &lt;a href=&quot;https://github.com/openzim/zimfarm&quot;&gt;Zimfarm&lt;/a&gt;.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title></title>
    <link href="https://garden.travisbriggs.com/link-suggestions/"/>
    <updated>2026-05-29T12:31:55Z</updated>
    <id>https://garden.travisbriggs.com/link-suggestions/</id>
    <content xml:lang="en" type="html">&lt;!doctype html&gt;
&lt;html lang=&quot;en&quot;&gt;
&lt;head&gt;
&lt;meta charset=&quot;utf-8&quot; /&gt;
&lt;title&gt;Garden Link Suggestions&lt;/title&gt;
&lt;style&gt;
:root {
  --bg: #1e2028;
  --bg-elev: #242830;
  --bg-deep: #1a1c22;
  --border: #3a3e48;
  --text: #d0d4dc;
  --muted: #808890;
  --muted2: #707888;
  --accent: #6aa8e8;
  --accent-soft: #1e2e48;
  --good: #7cc460;
  --warn: #e8b060;
  --error: #e05555;
  --badge-bg: #2e3240;
}
* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body {
  font-family: -apple-system, BlinkMacSystemFont, &#39;Segoe UI&#39;, Roboto, sans-serif;
  background: var(--bg);
  color: var(--text);
  line-height: 1.5;
  font-size: 14px;
}
.layout { display: grid; grid-template-columns: 320px 1fr; min-height: 100vh; }
aside {
  background: var(--bg-deep);
  border-right: 1px solid var(--border);
  position: sticky; top: 0;
  height: 100vh; overflow-y: auto;
  display: flex; flex-direction: column;
}
aside header {
  padding: 1rem 1rem 0.75rem;
  border-bottom: 1px solid var(--border);
}
aside header h1 { margin: 0 0 0.3rem; font-size: 1rem; }
aside header .meta { font-size: 0.75rem; color: var(--muted); }
.controls { padding: 0.75rem 1rem; border-bottom: 1px solid var(--border); }
.controls input[type=&quot;text&quot;] {
  width: 100%;
  background: var(--bg-elev);
  color: var(--text);
  border: 1px solid var(--border);
  border-radius: 4px;
  padding: 0.4rem 0.5rem;
  font-size: 0.85rem;
}
.controls label { display: flex; align-items: center; gap: 0.4rem; font-size: 0.8rem; color: var(--muted); margin-top: 0.5rem; cursor: pointer; }
.controls select {
  width: 100%;
  background: var(--bg-elev); color: var(--text); border: 1px solid var(--border);
  border-radius: 4px; padding: 0.3rem 0.4rem; font-size: 0.8rem; margin-top: 0.5rem;
}
nav { flex: 1; overflow-y: auto; padding: 0.25rem 0; }
.nav-item {
  display: flex; justify-content: space-between; align-items: center;
  padding: 0.4rem 1rem; color: var(--text); text-decoration: none; font-size: 0.85rem;
  border-left: 3px solid transparent;
}
.nav-item:hover { background: var(--bg-elev); }
.nav-item.active { background: var(--accent-soft); border-left-color: var(--accent); }
.nav-item .counts { font-size: 0.7rem; color: var(--muted); }
.nav-item .counts strong { color: var(--accent); margin-right: 0.4rem; }
.nav-item .counts em { color: var(--good); font-style: normal; }
.nav-item .slug { color: var(--muted2); font-family: monospace; font-size: 0.75rem; margin-left: 0.3rem; }

main { padding: 1.5rem 2rem; max-width: 900px; }
main h2 { margin: 0 0 0.25rem; font-size: 1.4rem; }
main .node-meta { color: var(--muted); font-family: monospace; font-size: 0.85rem; margin-bottom: 1rem; }
main .node-meta a { color: var(--accent); text-decoration: none; margin-right: 1rem; }
main .node-meta a:hover { text-decoration: underline; }

.section { margin-top: 1.5rem; }
.section h3 { font-size: 0.95rem; color: var(--muted); text-transform: uppercase; letter-spacing: 0.05em; margin: 0 0 0.6rem; }
.empty { color: var(--muted2); font-style: italic; font-size: 0.85rem; }

.card {
  background: var(--bg-elev);
  border: 1px solid var(--border);
  border-radius: 6px;
  padding: 0.75rem 1rem;
  margin-bottom: 0.6rem;
}
.card .head { display: flex; gap: 0.5rem; align-items: baseline; flex-wrap: wrap; }
.card .target {
  font-family: monospace;
  background: var(--accent-soft);
  color: var(--accent);
  padding: 0.1rem 0.5rem;
  border-radius: 3px;
  font-size: 0.85rem;
}
.card .target.missing { background: rgba(224,85,85,0.15); color: var(--error); }
.card .target a { color: inherit; text-decoration: none; }
.card .anchor { color: var(--good); font-style: italic; font-size: 0.85rem; }
.card .anchor::before { content: &#39;&quot;&#39;; }
.card .anchor::after { content: &#39;&quot;&#39;; }
.card .context, .card .rationale { margin-top: 0.4rem; font-size: 0.85rem; }
.card .context { color: var(--muted); }
.card .context::before { content: &#39;&gt; &#39;; color: var(--muted2); }
.card .rationale { color: var(--text); }
.card .actions { margin-top: 0.5rem; font-size: 0.75rem; }
.card .actions a { color: var(--accent); text-decoration: none; margin-right: 1rem; }
.card .actions a:hover { text-decoration: underline; }

.stats { display: flex; gap: 1.5rem; margin-bottom: 1.5rem; font-size: 0.8rem; color: var(--muted); }
.stats span strong { color: var(--text); font-weight: 600; margin-right: 0.25rem; }
.error { color: var(--error); }
.no-node { color: var(--muted); padding: 2rem; text-align: center; }
&lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;div class=&quot;layout&quot;&gt;
  &lt;aside&gt;
    &lt;header&gt;
      &lt;h1&gt;Garden Link Suggestions&lt;/h1&gt;
      &lt;div class=&quot;meta&quot; id=&quot;meta&quot;&gt;&lt;/div&gt;
    &lt;/header&gt;
    &lt;div class=&quot;controls&quot;&gt;
      &lt;input type=&quot;text&quot; id=&quot;filter&quot; placeholder=&quot;Filter by slug or title…&quot; /&gt;
      &lt;select id=&quot;sort&quot;&gt;
        &lt;option value=&quot;suggestions&quot;&gt;Sort: most suggestions&lt;/option&gt;
        &lt;option value=&quot;slug&quot;&gt;Sort: slug A–Z&lt;/option&gt;
        &lt;option value=&quot;title&quot;&gt;Sort: title A–Z&lt;/option&gt;
      &lt;/select&gt;
      &lt;label&gt;&lt;input type=&quot;checkbox&quot; id=&quot;hide-empty&quot; checked=&quot;&quot; /&gt; Hide nodes with no suggestions&lt;/label&gt;
    &lt;/div&gt;
    &lt;nav id=&quot;nav&quot;&gt;&lt;/nav&gt;
  &lt;/aside&gt;
  &lt;main id=&quot;main&quot;&gt;
    &lt;div class=&quot;no-node&quot;&gt;Pick a node from the sidebar.&lt;/div&gt;
  &lt;/main&gt;
&lt;/div&gt;

&lt;script id=&quot;data&quot; type=&quot;application/json&quot;&gt;{&quot;results&quot;:[{&quot;node&quot;:{&quot;slug&quot;:&quot;Abby&quot;,&quot;fileSlug&quot;:&quot;Abby&quot;,&quot;title&quot;:&quot;Abby&quot;,&quot;content&quot;:&quot;&#92;nAbby is my lovely wife. We got married on November 9th, 2014. We met in Boston in 2011 and started dating in April of that year. If you&#39;ll believe it, we were engaged by July of that year. I love her to pieces, and in fact I write her a &#92;&quot;daily love letter&#92;&quot; every night.&#92;n&#92;nWe go on trips together (many trips to Reno since 2018, Sweden, Quebec, Switzerland, Hong Kong), play video games (Fallout 4 forever, recently Arc Raiders), see [[good-song|movies]], walk down Valencia Street, go to company picnics and holiday parties. She is my best friend as well as my one true love.&#92;n&#92;nShe is a costume designer, thrift store stalker, and [[blog/q-poker-in-progress| poker player]]. She is smart and talented and funny. I&#39;d show you a picture but she&#39;d probably get embarassed.&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;new-year-2025&quot;,&quot;rationale&quot;:&quot;This node describes spending the holidays in Massachusetts with Abby and her family, elaborating on their relationship and shared trips.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:337,&quot;cache_creation_input_tokens&quot;:34021,&quot;cache_read_input_tokens&quot;:0,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:34021,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:80,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:0},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;Bandcamp&quot;,&quot;fileSlug&quot;:&quot;Bandcamp&quot;,&quot;title&quot;:&quot;Bandcamp&quot;,&quot;content&quot;:&quot;&#92;nWhile I have used Bandcamp as both a [[danger-third-rail|music publisher]] and music consumer, I don&#39;t really have the fanatical attachment to it that I see from some corners of the internet. That&#39;s probably okay. I do fundamentally believe that a Bandcamp model of &#92;&quot;long tail&#92;&quot; artists and music producers, as well as labels and collectives, is the way forward for the _capital M_ Music Industry. Or rather, it seems that said industry will only stratify into 10 artists with a billion views on Spotify/YouTube and a billion artists with 10 views on Bandcamp. [Deezer&#39;s new royalty terms](https://www.billboard.com/pro/streaming-reform-debate-artist-centric-royalties-impala-helen-smith-opinion/) are a particularly odious step in that direction: they pay anyone with less than 500 listeners or 1000 streams per month at half the rate. This reverse Robin Hood model is literally stealing from the most vulnerable artists in the ecosystem to give to the richest.&#92;n&#92;nI was a bit uneasy when [Epic Games bought Bandcamp](https://www.pcgamer.com/epic-games-bandcamp-acquisition/) in March 2022. But I calmed down, because I rationalized that they were simply looking to have more User Generated Content in their portfolio.&#92;n&#92;nNow Bandcamp has been flipped again. After just 18 months, Epic sold the business to [Songtradr](https://www.theguardian.com/music/2023/oct/17/bandcamp-lays-off-half-its-staff-after-buyout-by-songtradr). Songtradr is in the business of providing licensing and cleared songs and samples to media creators, from social media all the way up to ad agencies and more. It&#39;s pure speculation (but I&#39;m not a journalist, this is just my garden), but I wouldn&#39;t be surprised if Songtradr just wants to take all the Bandcamp music and put it in a zipfile and add it to their licensing corpus. They&#39;re probably working with their lawyers to figure out a way they can do that under Bandcamps existing TOS right now. Michael Donaldson even [theorizes](https://8sided.blog/a-mess-of-headaches/) that the mess of uncleared samples and covers on Bandcamp already will cause Songtradr a lot of headaches. I can see a world where they try to get artists to attest that their songs are unencumbered or face personal liability.&#92;n&#92;nAnd of course, Songtradr has turned around and immediately laid of 50% of Bandcamp&#39;s staff, in the name of efficiency. [Tom Hawking at The Guardian](https://www.theguardian.com/commentisfree/2023/oct/27/epic-games-bandcamp-acquired-sondtradr) writes about some of the ways this belies the goals and incentives of a company that cares more about cash than culture.&#92;n&#92;nAltogether, it is not really a great time to be an artist on the Bandcamp platform. There are millions who love it, and who trust it, and who even use it for their income (I must confess that ~30% of the revenue I&#39;ve ever made as a musician has come from Bandcamp). But I think the writing&#39;s on the wall as it were. Bandcamp may or may not have a future at all, and it is unlikely that the future it has is going to be as well in alignment with the interests of its artists and fans as it was in the past.&#92;n&#92;nThe key point is that it&#39;s not a certainty that Bandcamp will become hostile to the users it serves. Rather, the imperative is to cultivate backups and alternatives **now**, before the day comes when everyone wakes up to having to sign some contract or pay some gross fee and there&#39;s nowhere else to go.&#92;n&#92;nSo what are we to do?&#92;n&#92;nAndrew Roach writes about [The Uncertain Future of Bandcamp](https://ajroach42.com/the-uncertain-future-of-bandcamp/), and with his normal enthusiasm and forward thinking, he proposes grabbing a bunch of his friends and writing a complete turnkey alternative from the ground up. I&#39;m exhausted just thinking about it, but it sounds awesome. He explicitly states that he&#39;s not interested in competing with or replacing any other alternative solutions that may pop up, or may already be in progress, which I think is really smart and graceful.&#92;n&#92;nMy solution is to build [[Rainfall]], a tool that lets you upload songs and create a [Faircamp](https://codeberg.org/simonrepp/faircamp) website through a GUI (without having to install Rust or navigate the command line on your own computer).&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;Spotify&quot;,&quot;anchor_text&quot;:&quot;Spotify&quot;,&quot;context&quot;:&quot;10 artists with a billion views on Spotify/YouTube and a billion artists&quot;,&quot;rationale&quot;:&quot;Directly mentions Spotify, which has its own node discussing the platform and its royalty structure.&quot;},{&quot;slug&quot;:&quot;YouTube&quot;,&quot;anchor_text&quot;:&quot;YouTube&quot;,&quot;context&quot;:&quot;a billion views on Spotify/YouTube and a billion artists with 10 views&quot;,&quot;rationale&quot;:&quot;Directly mentions YouTube, which has a dedicated node.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;Spotify&quot;,&quot;rationale&quot;:&quot;The Spotify node discusses the unfair two-tiered royalty payout system, directly elaborating on this node&#39;s critique of streaming royalties for long-tail artists.&quot;},{&quot;slug&quot;:&quot;danger-third-rail&quot;,&quot;rationale&quot;:&quot;Bandcamp is a primary platform for the author&#39;s music project, and the node elaborates on his music publishing/recording activities.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1513,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:421,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:107},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;Christian&quot;,&quot;fileSlug&quot;:&quot;Christian&quot;,&quot;title&quot;:&quot;Christian&quot;,&quot;content&quot;:&quot;&#92;r&#92;nI have a friend named Christian, who was in my wedding party, and who I worked with at [[Qwobl]] back in like 2008.&#92;r&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;Python&quot;,&quot;rationale&quot;:&quot;The Python node mentions getting the Qwobl job with Christian and coding Python there, elaborating on this working relationship.&quot;},{&quot;slug&quot;:&quot;Qwobl&quot;,&quot;rationale&quot;:&quot;The Qwobl node describes the startup and mentions friendships with Christian that have lasted for years.&quot;},{&quot;slug&quot;:&quot;Abby&quot;,&quot;rationale&quot;:&quot;The Abby node covers the wedding, which relates to Christian being in the wedding party.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:92,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:306,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:140},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;DBT&quot;,&quot;fileSlug&quot;:&quot;DBT&quot;,&quot;title&quot;:&quot;DBT&quot;,&quot;content&quot;:&quot;DBT is [Dialectial Behavior Therapy](https://my.clevelandclinic.org/health/treatments/22838-dialectical-behavior-therapy-dbt) (also [on Wikipedia](https://en.wikipedia.org/wiki/Dialectical_behavior_therapy)).&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;coping-skills&quot;,&quot;rationale&quot;:&quot;Coping skills are a core component of DBT, and this poem-node directly references practicing coping skills as instructed in therapy.&quot;},{&quot;slug&quot;:&quot;intrisic motivation&quot;,&quot;rationale&quot;:&quot;This node mentions working with a therapist to identify motivation patterns, connecting to therapeutic self-work like DBT.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:150,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:214,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:78},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;DistroKid&quot;,&quot;fileSlug&quot;:&quot;DistroKid&quot;,&quot;title&quot;:&quot;DistroKid&quot;,&quot;content&quot;:&quot;&#92;r&#92;nhttps://distrokid.com&#92;r&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;danger-third-rail&quot;,&quot;rationale&quot;:&quot;Danger Third Rail&#39;s tracks were distributed via DistroKid to Spotify, making it a direct use case of this service.&quot;},{&quot;slug&quot;:&quot;Spotify&quot;,&quot;rationale&quot;:&quot;DistroKid is the distributor that gets music onto Spotify, a platform discussed in that node.&quot;},{&quot;slug&quot;:&quot;Bandcamp&quot;,&quot;rationale&quot;:&quot;Bandcamp is another music distribution/hosting platform relevant to the same music-release ecosystem.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:61,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:180,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:0},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;Fiverr&quot;,&quot;fileSlug&quot;:&quot;Fiverr&quot;,&quot;title&quot;:&quot;Fiverr&quot;,&quot;content&quot;:&quot;&#92;r&#92;nhttps://fiverr.com&#92;r&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;danger-third-rail&quot;,&quot;rationale&quot;:&quot;Danger Third Rail describes hiring Fiverr freelancers to mix and master tracks, elaborating on how Fiverr is used.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:61,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:207,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:121},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;Java&quot;,&quot;fileSlug&quot;:&quot;Java&quot;,&quot;title&quot;:&quot;Java&quot;,&quot;content&quot;:&quot;The problem with Java is that everything has to be a class. Period point blank. This distorts all design of programs, because you start thinking &#92;&quot;Well I can&#39;t have a function that just takes an object, so I better add it as a method of the object&#92;&quot;. Then you think, &#92;&quot;Well my Object needs to be able to construct other Objects that it needs, but I don&#39;t want to tightly couple them&#92;&quot; so you end up with a Factory pattern. Also, you end up trying to map classes to &#92;&quot;real world-ish&#92;&quot; things, like Databases and Business Models and such, even though some functionality cuts across class boundaries and would be better in just a simple funcion. Don&#39;t worry, we have the Singleton pattern for that, for basically just a loose colletion of random code. :facepalm:.&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;programming languages&quot;,&quot;rationale&quot;:&quot;This meta node ties together all the programming language nodes, including Java, and would benefit from linking back and forth.&quot;},{&quot;slug&quot;:&quot;Ruby on Rails&quot;,&quot;rationale&quot;:&quot;The author notes their first job was in Java before moving to Ruby, providing a natural comparison of language experiences.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:269,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:126,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:0},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;Kiwix&quot;,&quot;fileSlug&quot;:&quot;Kiwix&quot;,&quot;title&quot;:&quot;Kiwix&quot;,&quot;content&quot;:&quot;[Kiwix](https://kiwix.org) is an organization that helps make web content available for offline viewing. I&#39;ve been working with them since 2018 and I would say that I&#39;m definitely part of the organization, in a volunteer capacity. I primarily work with them on [[wp-1.0|WP1]], though I&#39;ve also worked on [mwoffliner](https://github.com/openzim/mwoffliner), which is a scraping bot for making offline copies of Wikipedia pages. The offliner works with WP1 inside something called a [Zimfarm](https://github.com/openzim/zimfarm).&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;now&quot;,&quot;rationale&quot;:&quot;The &#39;now&#39; node mentions mentoring a Google Summer of Code student for Kiwix, elaborating on the author&#39;s ongoing involvement with the organization.&quot;},{&quot;slug&quot;:&quot;Python&quot;,&quot;rationale&quot;:&quot;WP1 and related Kiwix tooling are written in Python, which this node&#39;s work centers on.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:245,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:259,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:130},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;Perl&quot;,&quot;fileSlug&quot;:&quot;Perl&quot;,&quot;title&quot;:&quot;Perl&quot;,&quot;content&quot;:&quot;I learned a little bit of Perl in college, and even coded some simple web apps with it. The most experience I&#39;ve had with it, though, was when I was rewriting the [[wp-1.0|WP 1.0]] bot/web server. I translated hundreds of lines of Perl into Python, and it was definitely a considerable task.&#92;n&#92;nPerl kind of looks deceptively simple. There are all the usual suspects of `if` statements and `for` loops, and even dictionaries look relatively sane at first glance. And I&#39;m not talking about the [code golf](https://code.golf/) versions of perl where you just have a bunch of `&lt;&gt; = {};` or whatever that somehow iterates over input on standard in and does something with it. I&#39;m talking about Perl that was written by a considerate programmer, with the intention of being reasonably legible and maintainable.&#92;n&#92;nBut still, I found too many constructs that were hard to grasp. Too many ways of doing the same thing, which of course leads to the Python precept of that &#92;&quot;There should be one-- and preferably only one --obvious way to do it.&#92;&quot; (from the famous *[The Zen of Python](https://peps.python.org/pep-0020/)*). My understanding has always been that [[Python]] was a direct reaction/answer to Perl.&#92;n&#92;nReally, the number one thing that I found impossible to understand in Perl was the way of referencing external symbols, the &#92;&quot;import&#92;&quot; system so to speak. I&#39;m not going to look it up right now (maybe I can expand this garden node later), but there seemed to be many ways of doing this, with some code being in modules and some code being directly transcluded with something akin to a C `#include` statement. Unfortunately, the codebase I was working in used some mix of all available options, which again made it really hard to figure out where a function was coming from.&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;programming languages&quot;,&quot;rationale&quot;:&quot;This meta node ties together Perl and other programming languages the author discusses, providing broader context.&quot;},{&quot;slug&quot;:&quot;what-programming-language-should-i-learn&quot;,&quot;rationale&quot;:&quot;This node explicitly notes the author wouldn&#39;t recommend anyone learn Perl, directly elaborating on the frustrations described here.&quot;},{&quot;slug&quot;:&quot;Python&quot;,&quot;rationale&quot;:&quot;The node contrasts Perl with Python&#39;s design philosophy, and the Python node elaborates on the author&#39;s preference for it.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:604,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:347,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:161},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;Python&quot;,&quot;fileSlug&quot;:&quot;Python&quot;,&quot;title&quot;:&quot;Python&quot;,&quot;content&quot;:&quot;&#92;r&#92;nI first started writing Python in 2009, in my first Github repo: [sudoku-solver](https://github.com/audiodude/sudoku-solver), an open source library for solving Sudoku puzzles that I did in my free time (I had a lot of free time back then because I was unemployed and living in my parents&#39; basement).&#92;r&#92;n&#92;r&#92;nSoon after I got my job at [[Qwobl]] with Jawad and [[Christian]] and Joe, where I wrote a lot more Python code. I don&#39;t think they ever told me this, but I think they looked at the sudoku code when considering me for the job.&#92;r&#92;n&#92;r&#92;nPython has remained one of my favorite programming languages. I would say I&#39;m probably slightly more proficient in it than [[javascript-typescript|Javascript/Typescript]], which is what I use for my [[YouTube|day job]].&#92;r&#92;n&#92;r&#92;nAt one point, I figured out a way to [[warnings-python|elevate Python warnings]] to errors in order to help debug and fix them.&#92;r&#92;n&#92;r&#92;nIn 2023 I started teaching a completely free [Python class](https://www.noisebridge.net/wiki/PyClass) at [Noisebridge](http://noisebridge.net/). It has since evolved into a more general  [&#92;&quot;Computer Programming Study Group&#92;&quot;](https://www.noisebridge.net/wiki/Computer_Programming_Study_Group), but we still cover some of the Python lectures from time to time. The lectures I wrote are in the Noisebridge [GitHub repo](https://github.com/noisebridge/PythonClass) for the class. Here&#39;s a list, with a link to interactive copies of the [Jupyter Notebooks](https://jupyter.org/) on a [Littlest Jupyter Hub](https://tljh.jupyter.org/en/latest/) instance that I host. **If you&#39;d like the password for sfpythonlab.com, email me and introduce yourself.**&#92;r&#92;n&#92;r&#92;n* Lesson 1 - Basics using Mastodon - [sfpythonlab.com notebook](https://sfpythonlab.com/hub/user-redirect/git-pull?repo=https%3A%2F%2Fgithub.com%2Fnoisebridge%2FPythonClass&amp;branch=main&amp;urlpath=tree%2FPythonClass%2Flessons%2F01-basics-using-mastodon%2Fmastodon.ipynb)&#92;r&#92;n* Lesson 2 - Control structures and booleans - [sfpythonlab.com notebook](https://sfpythonlab.com/hub/user-redirect/git-pull?repo=https%3A%2F%2Fgithub.com%2Fnoisebridge%2FPythonClass&amp;branch=main&amp;urlpath=tree%2FPythonClass%2Flessons%2F02-control-structures-booleans%2Fcontrol_structures_booleans.ipynb)&#92;r&#92;n* Lesson 3 - Exceptions - [sfpythonlab.com notebook](https://sfpythonlab.com/hub/user-redirect/git-pull?repo=https%3A%2F%2Fgithub.com%2Fnoisebridge%2FPythonClass&amp;branch=main&amp;urlpath=tree%2FPythonClass%2Flessons%2F03-exceptions%2Fexceptions.ipynb)&#92;r&#92;n* Lesson 4 - Defining functions - [sfpythonlab.com notebook](https://sfpythonlab.com/hub/user-redirect/git-pull?repo=https%3A%2F%2Fgithub.com%2Fnoisebridge%2FPythonClass&amp;branch=main&amp;urlpath=tree%2FPythonClass%2Flessons%2F04-function-definitions%2Ffunction_definitions.ipynb)&#92;r&#92;n* Lesson 5 - Algorithms - [sfpythonlab.com notebook](https://sfpythonlab.com/hub/user-redirect/git-pull?repo=https%3A%2F%2Fgithub.com%2Fnoisebridge%2FPythonClass&amp;branch=main&amp;urlpath=tree%2FPythonClass%2Flessons%2F05-algorithms-pt-1%2Falgorithms_pt_1.ipynb)&#92;r&#92;n* Lesson 6 - Classes, objects, and decorators - [sfpythonlab.com notebook](https://sfpythonlab.com/hub/user-redirect/git-pull?repo=https%3A%2F%2Fgithub.com%2Fnoisebridge%2FPythonClass&amp;branch=main&amp;urlpath=tree%2FPythonClass%2Flessons%2F06-classes-objects-decorators%2Fclasses_objects_decorators.py.ipynb)&#92;r&#92;n* Lesson 7 - Regex - [sfpythonlab.com notebook](https://sfpythonlab.com/hub/user-redirect/git-pull?repo=https%3A%2F%2Fgithub.com%2Fnoisebridge%2FPythonClass&amp;branch=main&amp;urlpath=tree%2FPythonClass%2Flessons%2F07-regex%2F07_regex.ipynb)&#92;r&#92;n* Lesson 8 - Data Analysis with sqlite and Pandas - [sfpythonlab.com notebook](https://sfpythonlab.com/hub/user-redirect/git-pull?repo=https%3A%2F%2Fgithub.com%2Fnoisebridge%2FPythonClass&amp;branch=main&amp;urlpath=tree%2FPythonClass%2Flessons%2F07-regex%2F07_regex.ipynb)&#92;r&#92;n* Lesson 9 - APIs and AI - [sfpythonlab.com notebook](https://sfpythonlab.com/hub/user-redirect/git-pull?repo=https%3A%2F%2Fgithub.com%2Fnoisebridge%2FPythonClass&amp;branch=main&amp;urlpath=tree%2FPythonClass%2Flessons%2F09-api-and-ai%2Fapi_and_ai.ipynb)&#92;r&#92;n* Lesson 10 - Web Scraping - [sfpythonlab.com notebook](https://sfpythonlab.com/hub/user-redirect/git-pull?repo=https%3A%2F%2Fgithub.com%2Fnoisebridge%2FPythonClass&amp;branch=a62face03bd0d541a2c9f2eba8085937e76d4bfb&amp;urlpath=tree%2FPythonClass%2Flessons%2Fseries_3%2F10-web-scraping%2Fweb-scraping.ipynb)&#92;r&#92;n* Lesson 11 - Web apps with Flask, pt 1 - [sfpythonlab.com notebook](https://sfpythonlab.com/hub/user-redirect/git-pull?repo=https%3A%2F%2Fgithub.com%2Fnoisebridge%2FPythonClass&amp;branch=main&amp;urlpath=tree%2FPythonClass%2Flessons%2F11-web-apps-with-flask-pt-1%2Fweb_apps_with_flask.ipynb)&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;programming languages&quot;,&quot;anchor_text&quot;:&quot;programming languages&quot;,&quot;context&quot;:&quot;Python has remained one of my favorite programming languages.&quot;,&quot;rationale&quot;:&quot;This meta node ties together all the programming languages Travis writes about, including Python.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;wp-1.0&quot;,&quot;rationale&quot;:&quot;The WP 1.0 project is one of Travis&#39;s major Python projects and elaborates on his Python usage.&quot;},{&quot;slug&quot;:&quot;Rainfall&quot;,&quot;rationale&quot;:&quot;Rainfall is a Python/Flask project that demonstrates his Python work in more depth.&quot;},{&quot;slug&quot;:&quot;what-programming-language-should-i-learn&quot;,&quot;rationale&quot;:&quot;Discusses choosing Python among other languages, complementing this node&#39;s advocacy.&quot;},{&quot;slug&quot;:&quot;what-is-a-web-application&quot;,&quot;rationale&quot;:&quot;Relates to the Flask web app lessons mentioned at the end of this node.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:2360,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:612,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:322},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;Qwobl&quot;,&quot;fileSlug&quot;:&quot;Qwobl&quot;,&quot;title&quot;:&quot;Qwobl&quot;,&quot;content&quot;:&quot;&#92;r&#92;nQwobl was the smallest startup I ever worked for, and I&#39;ve worked for a lot of startups. It was only 5 people total, including me. The cool part of that was that there was a **lot** of room to learn and experiment, with no one breathing down your neck. There was nothing that was &#92;&quot;somebody else&#39;s responsiblity&#92;&quot; or &#92;&quot;someone else will take care of that&#92;&quot;. If things were to get done, we had to push our comfort zones and learn how to do them ourselves. It was a formative experience for me to work there, and I made friendships that have lasted for years and to this day ([[Christian]]).&#92;r&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;Python&quot;,&quot;rationale&quot;:&quot;The Python node describes getting the job at Qwobl and writing Python code there alongside colleagues, elaborating on this work experience.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:230,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:262,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:184},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;Rainfall&quot;,&quot;fileSlug&quot;:&quot;Rainfall&quot;,&quot;title&quot;:&quot;Rainfall, a website generator for musicians&quot;,&quot;content&quot;:&quot;## Early attempts&#92;n&#92;nI have been working on personal song hosting since 2018, when I created [songs.travisbriggs.com](https://songs.travisbriggs.com) ([Github](https://github.com/audiodude/songs.travisbriggs.com)). The point was to replace Soundcloud, which I was paying for but getting very little value from.&#92;n&#92;nSorry, this garden node is about to get technical...&#92;n&#92;nThat site is basically a custom [static site generator](https://www.cloudflare.com/learning/performance/static-site-generator/), written in [Python](https://www.python.org/) and [Flask](https://flask.palletsprojects.com/en/3.0.x/). All song metadata (name, tags, descriptions) is stored in [Markdown](https://daringfireball.net/projects/markdown) files (much like this Garden). It operates as a normal Flask web application, for previewing the site, but when a special command is given, it &#92;&quot;crawls&#92;&quot; through all of the pages of the site and &#92;&quot;renders&#92;&quot; them as simple HTML pages, like a website from 1999 (as all static site generators due). The practical upside of all this is that I can host the site on Netlify, where I don&#39;t need any Python processes or databases running, and as of this writing Netlify continues to operate a free plan for a pretty generous amount of bandwidth per month, which includes a CDN (in case you get hugged by hacker news or reddit).&#92;n&#92;nAfter using this setup for a while and being happy with it, I &#92;&quot;open sourced&#92;&quot; it, cleaning out all the personally identifying and specific information, as [Rainfall](https://github.com/audiodude/rainfall) (a play on Soundcloud I think?). With that, someone could download my template and create their own static music site with their own music on their own Netlify (or anywhere else). Seemed legit.&#92;n&#92;nHowever, no one used it (surprise!). At that point, I had in my mind a project (still called Rainfall) that would allow users to sign up and upload songs through a web interface, providing metadata. I would then spin up a local Flask server for them (the same as my preview server above) and let them preview their site in an iframe before clicking a publish button, doing an OAuth with Netlify, and making their site live. I got this working for one site, but the technical hurdle I could never overcome was the problem of dynamically attaching a newly created web app to my serving stack without restarting the web server. That remains the unsolved problem for server-side Rainfall.&#92;n&#92;n## Moving Forward&#92;n&#92;nObviously, everything I&#39;ve written above about the potential demise of Bandcamp, and Andrew&#39;s article and impetus, has emboldened me to look at this again. I found out about the awesome [Faircamp](https://codeberg.org/simonrepp/faircamp) recently, which seems very slick and full featured and customizable, in a way that I think artists themselves will appreciate (rather than just creating clones of my songs.travisbriggs.com site).&#92;n&#92;nThe potential difficulty with Faircamp is that it is a Rust binary that runs locally, and requires an installation. More than that, the manual clearly states:&#92;n&#92;n&gt; On BSD, macOS and Windows you are entering uncharted territory, ...&#92;n&#92;nBeyond that, the data for the app (the songs and metadata and images and everything) have to be hand cultivated into a particular directory structure and format for it to work.&#92;n&#92;nWhat if I could take my ideas (and maybe even my codebase!) that I developed for server-side Rainfall, and use Faircamp as a sort of &#92;&quot;backend&#92;&quot;? That is, I could:&#92;n&#92;n1. Allow users to sign in, upload their songs, add metadata, add images, etc.&#92;n2. Create the directory structure that Faircamp requires.&#92;n3. Render HTML with Faircamp&#92;n4. Allow users to preview their site, surfacing any Faircamp errors/issues.&#92;n5. OAuth with Netlify and publish to the web.&#92;n&#92;nThat&#39;s it, that&#39;s the idea. 1200 words later, that&#39;s it.&#92;n&#92;n## Progress (technical)&#92;n&#92;nSo far, I&#39;ve released both versions 1.0 and 1.1 of the project. 1.0 allowed you to upload songs and create the basic website, while version 1.1 added the ability to log in via Mastodon (because lots of people complained about the exclusive Google login).&#92;n&#92;nThe Github repo is [here](https://github.com/audiodude/rainfall), and you can see the issues I&#39;m tracking for future releases.&#92;n&#92;nThe tech statck is [Python/Flask](https://flask.palletsprojects.com/en/3.0.x/), [SQLAlchemy](https://www.sqlalchemy.org/) and [Vue 3](https://vuejs.org/) for the frontend. It allows logging in with Google or Mastodon accounts (because I _really_ didn&#39;t want to deal with user registration and especially password management/reset emails/etc). I have tests for the backend in [Pytest](https://docs.pytest.org/en/7.4.x/).&#92;n&#92;nI originally thought I couldn&#39;t deploy this on my preferred platform of [Fly.io](https://fly.io/), because of the need for filesystem access. However I was able to do it with the use of &#92;&quot;shared volumes&#92;&quot;.&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;Python&quot;,&quot;anchor_text&quot;:&quot;Python&quot;,&quot;context&quot;:&quot;custom [static site generator], written in [Python] and [Flask]&quot;,&quot;rationale&quot;:&quot;The node discusses Python as its implementation language, which has a dedicated node.&quot;},{&quot;slug&quot;:&quot;Bandcamp&quot;,&quot;anchor_text&quot;:&quot;Bandcamp&quot;,&quot;context&quot;:&quot;everything I&#39;ve written above about the potential demise of Bandcamp&quot;,&quot;rationale&quot;:&quot;The node directly references the demise of Bandcamp, which has its own dedicated node.&quot;},{&quot;slug&quot;:&quot;Vue.js&quot;,&quot;anchor_text&quot;:&quot;Vue 3&quot;,&quot;context&quot;:&quot;[SQLAlchemy] and [Vue 3] for the frontend&quot;,&quot;rationale&quot;:&quot;Vue 3 is the frontend framework with a dedicated node.&quot;},{&quot;slug&quot;:&quot;github&quot;,&quot;anchor_text&quot;:&quot;Faircamp&quot;,&quot;context&quot;:&quot;I found out about the awesome [Faircamp] recently&quot;,&quot;rationale&quot;:&quot;The Github node discusses Faircamp on Codeberg and connects to the same topic.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;danger-third-rail&quot;,&quot;rationale&quot;:&quot;Rainfall was built to host the author&#39;s own music project, Danger Third Rail.&quot;},{&quot;slug&quot;:&quot;Spotify&quot;,&quot;rationale&quot;:&quot;The node&#39;s motivation about music hosting and streaming royalties is elaborated in the Spotify node.&quot;},{&quot;slug&quot;:&quot;Vue.js&quot;,&quot;rationale&quot;:&quot;The Vue.js node mentions building full SPAs with Rainfall, directly elaborating the tech stack.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1662,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:753,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:278},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;Ruby on Rails&quot;,&quot;fileSlug&quot;:&quot;Ruby on Rails&quot;,&quot;title&quot;:&quot;Ruby (on Rails)&quot;,&quot;content&quot;:&quot;Ruby on Rails is probably the first frontend framework I ever used. I think I dabbled in [[Perl]] a bit in a college course, `cgi-bin` style. But even in college, I worked on a project for a digital choral music library, where I created a Ruby on Rails app that had forms (that validated!) and stored data in a SQL database using `ActiveRecord`!&#92;n&#92;nMy first job was in [[Java]], but I remained very curious about Rails and even just regular Ruby itself. At one point I even coded an &#92;&quot;open source&#92;&quot; abstract strategy game called [Tanbo](https://github.com/audiodude/Ruby-Tanbo), with a full GUI implemented with [WxWidgets](https://wxwidgets.org/). It even had a CPU that you could play against which used (checks notes) something called a UCT method ([Upper Confidence bounds applied to Trees](https://en.wikipedia.org/wiki/Monte_Carlo_tree_search)). From reading that Wikipedia article now, it was actually kind of cutting edge at the time.&#92;n&#92;nI like Ruby. I think it&#39;s a very concise and expressive language. I also think it&#39;s a very powerful language, with it&#39;s systems of operator overloading and custom operators and monkey-patching. The problem is, when you have a big enough project, it can be impossible to tell where certain behavior is coming from. A class? A superclass? A monkey patch? Even basic Rails, out-of-the-box, create new Rails app projects can have this problem.&#92;n&#92;nThe most recent Ruby on Rails coding I&#39;ve done is for the [&#92;&quot;headless CMS&#92;&quot;](https://github.com/audiodude/best-albums-headless) for [[best albums in the universe]]. This is a Rails 7 app solely for me, but I still tried to style it a bit and make the error messages helpful, so that I wouldn&#39;t dread using it. I even use Capistrano to both deploy new versions of the admin/headless app itself, and deploy the finished static site.&#92;n&#92;nI haven&#39;t really kept up with Ruby on Rails development past that, though I know there&#39;s been a lot of churn with regards to webpack/etc and how to best integrate Javascript/Typescript and [Single Page Applications](https://developer.mozilla.org/en-US/docs/Glossary/SPA).&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;javascript-typescript&quot;,&quot;anchor_text&quot;:&quot;Javascript/Typescript&quot;,&quot;context&quot;:&quot;how to best integrate Javascript/Typescript and [Single Page Applications]&quot;,&quot;rationale&quot;:&quot;The text directly references Javascript/Typescript, which has its own dedicated node.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;programming languages&quot;,&quot;rationale&quot;:&quot;This meta node ties together all the programming language nodes including Ruby on Rails, providing broader context.&quot;},{&quot;slug&quot;:&quot;what-programming-language-should-i-learn&quot;,&quot;rationale&quot;:&quot;Discusses choosing programming languages, relevant to a node reflecting on Ruby&#39;s strengths and weaknesses.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:793,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:338,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:114},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;Spotify&quot;,&quot;fileSlug&quot;:&quot;Spotify&quot;,&quot;title&quot;:&quot;Spotify&quot;,&quot;content&quot;:&quot;&#92;nI have been a Spotify user since they first launched in the US, which was (checks notes) July 2011. Wow. I&#39;m pretty much a happy customer, and I think I get good value from the service. I&#39;m also an [[danger-third-rail|artist]] on the platform, whatever that&#39;s worth, though I don&#39;t receive any royalties anymore since they changed the structure so that songs with less than 1000 plays [don&#39;t get paid out](https://www.nme.com/news/music/spotify-has-now-officially-demonetised-all-songs-with-less-than-1000-streams-3614010). I feel like the two-tiered system that this creates is completely unfair, and destroys Spotify as a platform where a [long tail](https://en.wikipedia.org/wiki/Long_tail) of artists can have even some meager amount of success, whatever that means. In fact, currently you have to pay a distributor like [[DistroKid]] to put your music on Spotify, where you have no chance of earning that money back, so it really is [&#92;&quot;pay to play&#92;&quot;](https://www.musicindustryhowto.com/dont-pay-to-play-heres-how-to-get-paid-to-play-bigger-shows-instead/). Sigh.&#92;n&#92;nWhat I really want to discuss though is the fact that, even though I have a [YouTube Music](https://music.youtube.com) subscription bundled with my YouTube Premium subscription, I still pay for Spotify. Some people would think this is completely crazy, but there are *reasons*, I swear.&#92;n&#92;nFirst off, it&#39;s not just lock in. Whenever I read articles or forum posts where people discuss switching away from Spotify, there&#39;s lots of consternation around &#92;&quot;but what about muh plAYLisssts???&#92;&quot;. Let&#39;s be clear, I barely use playlists. I have like half a dozen, and most are just collections of songs that I want to &#92;&quot;bookmark&#92;&quot; somehow. Something like 80% of my music listening is full albums. And I&#39;m not even that worried about Spotify having my saved library of albums (which I admit, that part is extensive) because I&#39;ve cataloged that list at [[best albums in the universe]]. Plus I&#39;m sure I could write a 10 line [[Python]] script to grab my albums list from the Spotify API should I ever need it.&#92;n&#92;nNo, I think it&#39;s more of a muscle memory thing, kind of like a vim/emacs debate, where I&#39;ve developed familiarity with the Spotify interface. I know how to find, play, queue, skip, etc, songs without much trouble. Even more important, I know how to navigate between songs and the albums or artists, and how and where to find albums versus compilations versus singles, to get to what I want to listen to.&#92;n&#92;nThat said, I&#39;ve actually considered the switch to YouTube Music [disclosure: I work for [[YouTube]]], for one reason: **the steaming pile of flaming garbage that is the Spotify homepage.**&#92;n&#92;nThe first 3 shelves are &#92;&quot;keep listening to stuff you just listened to&#92;&quot;, which is clearly designed for people who are playlist heavy. They probably listened to 5 or 6 songs from a playlist and want to resume. Or they listen to the same 4 playlists every week.&#92;n&#92;nThe next two shelves are &#92;&quot;dive in&#92;&quot; to genres that I don&#39;t like, that they&#39;re pushing on you as part of their rumoured [payola schemes](https://www.theregreview.org/2024/07/06/preventing-payola-in-the-music-industry/).&#92;n&#92;nAnd the next 6 (I wish I was kidding) shelves are podcasts. Because listen to podcasts! Spotify doesn&#39;t have to pay royalties on them! Don&#39;t you want to listen to PODCASTS??&#92;n&#92;nSo I&#39;m thinking of switching to YT Music so that maybe I could have *some* kind of useful homepage experience. Unfortunately my YT Music history is shit because I have only ever used it in Waymo, which is a scenario where I listen to like loud hip hop and other shit I wouldn&#39;t normally listen to. So I wouldn&#39;t switch to YT Music unless there is a &#92;&quot;Clear all history&#92;&quot; button. But unfortunately, you can&#39;t clear YT Music history without clearing your entire YouTube history, which would destroy all of my YouTube video recommendations (which are, actually, not bad). Also YT Music has all kinds of cruft where they decided that some playlists that I randomly have on YouTube are actually *music* playlists, so they show up in YT Music. They also recommend shit based on music videos I watch, which I normally watch for reasons not related to actually liking the music.&#92;n&#92;nThese are just some nuanced opinions of course, and overall I think Spotify is pretty useful and great. I worry about it destroying the music industry/artist&#39;s livelihoods. But there have been a long queue of technologies, governments and cultural shifts that have been trying to destroy the music industry for the past 100 years, so I&#39;m not actually that concerned. See also [[Bandcamp]].&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;ai-music-trends&quot;,&quot;rationale&quot;:&quot;That node discusses low Spotify royalty payments and the economics of the music industry, elaborating on the royalty/livelihood concerns raised here.&quot;},{&quot;slug&quot;:&quot;new-danger-third-rail-ep&quot;,&quot;rationale&quot;:&quot;Discusses releasing music as Danger Third Rail on streaming, connecting to being an artist on the platform mentioned here.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1615,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:439,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:287},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;Suno&quot;,&quot;fileSlug&quot;:&quot;Suno&quot;,&quot;title&quot;:&quot;Suno&quot;,&quot;content&quot;:&quot;[Suno](https://suno.com) is [[vibe coding]] for my songs/music/songwriting.&#92;n&#92;nThat&#39;s probably not a good thing.&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;ai-music-trends&quot;,&quot;rationale&quot;:&quot;Suno as AI music generation directly relates to the discussion of AI-made music versus human-crafted music.&quot;},{&quot;slug&quot;:&quot;null-rail&quot;,&quot;rationale&quot;:&quot;Null Rail documents AI-generated tracks kept separate from hand-made demos, closely related to using Suno for songwriting.&quot;},{&quot;slug&quot;:&quot;danger-third-rail&quot;,&quot;rationale&quot;:&quot;Suno concerns Travis&#39;s music project, and Danger Third Rail is the recording project it would affect.&quot;},{&quot;slug&quot;:&quot;ai-coding-benchmarks&quot;,&quot;rationale&quot;:&quot;The &#39;vibe coding for songs&#39; framing connects to broader AI/vibe coding attitudes discussed elsewhere.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:96,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:248,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:0},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;Vue.js&quot;,&quot;fileSlug&quot;:&quot;Vue.js&quot;,&quot;title&quot;:&quot;Vue.js&quot;,&quot;content&quot;:&quot;[Vue.js](https://vuejs.org/) is an awesome frontend [[javascript-typescript|JavaScript/Typescript]] framework for making all kinds of interactive, reactive, web applications. One of the coolest things about it is that you can include just a snippet of JavaScript on a page and progressively enhance the page with interactive functionality, without commiting to the whole framework. On the other hand, you can easily write full fledged SPAs like I&#39;ve done with [[wp-1.0|WP 1.0]] and [[Rainfall]].&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;what-is-a-web-application&quot;,&quot;anchor_text&quot;:&quot;web applications&quot;,&quot;context&quot;:&quot;framework for making all kinds of interactive, reactive, web applications&quot;,&quot;rationale&quot;:&quot;That node explicitly defines what a web application is, directly relevant to Vue.js&#39;s purpose.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;programming languages&quot;,&quot;rationale&quot;:&quot;The meta node ties together the languages and frameworks Travis uses, including Vue.js paired with Typescript.&quot;},{&quot;slug&quot;:&quot;random-knowledge-about-javascript-and-typescript&quot;,&quot;rationale&quot;:&quot;Provides more background on the JavaScript/Typescript ecosystem that underlies Vue.js.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:244,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:312,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:89},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;YouTube&quot;,&quot;fileSlug&quot;:&quot;YouTube&quot;,&quot;title&quot;:&quot;YouTube&quot;,&quot;content&quot;:&quot;&#92;r&#92;nFor billions of people around the world, YouTube is a source of entertainment, education, hand-wringing about policy and politics, a celebrity maker, and so much more. For me, it&#39;s the company that signs my paycheck.&#92;r&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;about&quot;,&quot;rationale&quot;:&quot;The About Me node describes Travis&#39;s work as a software developer, elaborating on his employment which the paycheck reference alludes to.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:117,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:74,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:0},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;Zen&quot;,&quot;fileSlug&quot;:&quot;Zen&quot;,&quot;title&quot;:&quot;Zen&quot;,&quot;content&quot;:&quot;I&#39;m not sure if this page should be completely empty, completely full, or if it already is both.&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;philosophy&quot;,&quot;rationale&quot;:&quot;The philosophy node explicitly discusses the author&#39;s renewed interest in Zen and situates it alongside atheism and existentialism, elaborating on this node&#39;s topic.&quot;},{&quot;slug&quot;:&quot;atheism&quot;,&quot;rationale&quot;:&quot;The author connects Zen with his atheism (&#39;some sort of zen&#39;) in his broader worldview, making this a related belief node.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:76,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:317,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:174},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;ableton-12&quot;,&quot;fileSlug&quot;:&quot;ableton-12&quot;,&quot;title&quot;:&quot;Ableton 12, consternation and procrastination&quot;,&quot;content&quot;:&quot;&#92;n[Ableton Live](https://www.ableton.com/en/live/) version 12 was released the first week of March, 2024. By [all](https://www.musicradar.com/reviews/ableton-live-12-suite-review) [accounts](https://www.gearnews.com/ableton-live-12-review-more-midi-more-gui-more-sound/) it&#39;s a great update, with new instruments and an improved interface, while maintaining the basic interface and workflows that we&#39;re all familiar with. I actually pre-ordered the software when I read those first preliminary reviews and they were positive. I figured, why cause myself indecision when the package actually came out? Just pre-order it now, spend the money, and when it comes out I can download it and instantly be in music-making Nirvana.&#92;n&#92;nWell that&#39;s not quite what happened.&#92;n&#92;nThis past Monday, the day before Live&#39;s release, I got an email from Ableton letting me know that my license had been activated and I would be able to download the software soon. I started having some serious introspection about the [[highs-and-lows-musician|state of my music-making]] and the things I wanted to do. I felt like it was finally time to &#92;&quot;come out of retirement&#92;&quot; and start making music again by any means necessary.&#92;n&#92;nSuffice it to say, that hasn&#39;t happened. Instead, I&#39;ve been possessed by a crippling anxiety and sense of dread. Basically what has happened is that I have all the tools I need to make music. Everything is there, completely capable, ready for me to take the reigns and do something great. This wealth of possibility though, rather than be empowering, is downright terrifying. All that&#39;s standing in the way between me and my music is myself, and that&#39;s the most frightening thing of all. No excuses, no one to blame.&#92;n&#92;nHopefully I can get over this initial existential dread and start making music again soon!&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;ableton&quot;,&quot;anchor_text&quot;:&quot;Ableton Live&quot;,&quot;context&quot;:&quot;[Ableton Live](https://www.ableton.com/en/live/) version 12 was released the first week of March, 2024&quot;,&quot;rationale&quot;:&quot;The node&#39;s core subject is Ableton Live, which has its own dedicated node.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;recording-setup&quot;,&quot;rationale&quot;:&quot;Describes the author&#39;s music-making setup which is now based around Ableton 12, elaborating the tooling context.&quot;},{&quot;slug&quot;:&quot;motivation-music&quot;,&quot;rationale&quot;:&quot;Directly explores the author&#39;s motivation (and lack thereof) for making music, deepening this node&#39;s theme of dread and procrastination.&quot;},{&quot;slug&quot;:&quot;empty-mind&quot;,&quot;rationale&quot;:&quot;Captures the same paralysis of having tools but being unable to create, mirroring the existential dread described here.&quot;},{&quot;slug&quot;:&quot;nike-the-shit-out-of-it&quot;,&quot;rationale&quot;:&quot;Discusses procrastination around making music despite having everything needed, closely echoing this node&#39;s message.&quot;},{&quot;slug&quot;:&quot;getting-nothing-done&quot;,&quot;rationale&quot;:&quot;Explores procrastination and inability to act, relevant to the anxiety and dread described.&quot;},{&quot;slug&quot;:&quot;intrisic motivation&quot;,&quot;rationale&quot;:&quot;The struggle to start making music with no external pressure ties into the author&#39;s writing on intrinsic vs extrinsic motivation.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:625,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:611,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:173},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;ableton&quot;,&quot;fileSlug&quot;:&quot;ableton&quot;,&quot;title&quot;:&quot;Ableton Live&quot;,&quot;content&quot;:&quot;&#92;n[Ableton Live](https://www.ableton.com/en/live/what-is-live/) is music production software that serves as a Digital Audio Workstation (DAW). It allows musicians and producers to record and edit digital audio tracks, compose arrangements using looping and part triggering, and even perform DJ sets on the fly from within the interface.&#92;n&#92;nI might have more to say on this subject in the future.&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;ableton-12&quot;,&quot;rationale&quot;:&quot;Discusses the version 12 release and workflows of the very software described here.&quot;},{&quot;slug&quot;:&quot;recording-setup&quot;,&quot;rationale&quot;:&quot;Details a home recording setup based around Ableton Live as the DAW.&quot;},{&quot;slug&quot;:&quot;music-projects-as-ephemera&quot;,&quot;rationale&quot;:&quot;Explores how Ableton Live projects were structured and became unopenable over time.&quot;},{&quot;slug&quot;:&quot;highs-and-lows-musician&quot;,&quot;rationale&quot;:&quot;Chronicles the author&#39;s home music production journey using Ableton and related tools.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:176,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:194,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:0},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;about&quot;,&quot;fileSlug&quot;:&quot;about&quot;,&quot;title&quot;:&quot;About Me&quot;,&quot;content&quot;:&quot;&#92;nTravis Briggs is a software developer, amateur musician, and digital gardener&#92;n(formerly blogger). All of these skills come together on his personal website,&#92;nlocated at [travisbriggs.com](https://travisbriggs.com). He has a BS in Computer&#92;nScience with a minor in music from Worcester Polytechnic Institute in Worcester&#92;nMA, USA.&#92;n&#92;nTravis specializes in developing software using frontend technologies such as&#92;nHTML/CSS and Javascript/Typescript. He enjoys programming in his spare time as&#92;nwell, and is the primary maintainer of the Wikipedia [WP 1.0&#92;nBot](https://en.wikipedia.org/wiki/User:WP_1.0_bot), which has the most all time&#92;nedits to English Wikipedia. Understanding the value of a quality mentor, he also&#92;ntutors students and adults in Computer Science for free, and teaches a [free&#92;nPython class](https://www.noisebridge.net/wiki/PyClass) at the&#92;n[Noisebridge](https://www.noisebridge.net) hackerspace in San Francisco.&#92;n&#92;nTravis has released a single and an EP under the moniker [&amp;quot;Danger Third&#92;nRail&amp;quot;](https://dangerthirdrail.com), which are available on many online&#92;nmusic stores. Previously, Travis has performed at open mic nights and as a&#92;nbusker in Cambridge, MA USA.&#92;n&#92;nTravis currently lives with his amazing wife Abby and cuddly cat Shekel in San&#92;nFrancisco CA USA.&#92;n&#92;n---&#92;n&#92;n## Contact&#92;n&#92;nYou can always email me at [audiodude@gmail.com](mailto:audiodude@gmail.com).&#92;n&#92;nMy current Mastodon link is&#92;n[@audiodude@sfba.social](https://sfba.social/@audiodude).&#92;n&#92;nHere is my [Github profile](https://github.com/audiodude).&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;javascript-typescript&quot;,&quot;anchor_text&quot;:&quot;Javascript/Typescript&quot;,&quot;context&quot;:&quot;frontend technologies such as HTML/CSS and Javascript/Typescript&quot;,&quot;rationale&quot;:&quot;Directly references the language covered by that node.&quot;},{&quot;slug&quot;:&quot;wp-1.0&quot;,&quot;anchor_text&quot;:&quot;WP 1.0&#92;nBot&quot;,&quot;context&quot;:&quot;is the primary maintainer of the Wikipedia WP 1.0 Bot&quot;,&quot;rationale&quot;:&quot;The WP 1.0 project has its own dedicated node.&quot;},{&quot;slug&quot;:&quot;Python&quot;,&quot;anchor_text&quot;:&quot;free&#92;nPython class&quot;,&quot;context&quot;:&quot;teaches a free Python class at the&quot;,&quot;rationale&quot;:&quot;Python is a subject with its own node.&quot;},{&quot;slug&quot;:&quot;danger-third-rail&quot;,&quot;anchor_text&quot;:&quot;Danger Third&#92;nRail&quot;,&quot;context&quot;:&quot;released a single and an EP under the moniker &#92;&quot;Danger Third Rail&#92;&quot;&quot;,&quot;rationale&quot;:&quot;His music project has a dedicated node.&quot;},{&quot;slug&quot;:&quot;Abby&quot;,&quot;anchor_text&quot;:&quot;Abby&quot;,&quot;context&quot;:&quot;lives with his amazing wife Abby and cuddly cat Shekel&quot;,&quot;rationale&quot;:&quot;Abby has her own node.&quot;},{&quot;slug&quot;:&quot;github&quot;,&quot;anchor_text&quot;:&quot;Github profile&quot;,&quot;context&quot;:&quot;Here is my Github profile&quot;,&quot;rationale&quot;:&quot;Github is discussed in its own node.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;digital-garden-itself&quot;,&quot;rationale&quot;:&quot;Elaborates on the digital garden that this personal website is built as.&quot;},{&quot;slug&quot;:&quot;Kiwix&quot;,&quot;rationale&quot;:&quot;His WP 1.0 work is done in collaboration with Kiwix, expanding on his Wikipedia involvement.&quot;},{&quot;slug&quot;:&quot;highs-and-lows-musician&quot;,&quot;rationale&quot;:&quot;Deepens his story as an amateur musician mentioned here.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:629,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:670,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:106},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;activity-pub&quot;,&quot;fileSlug&quot;:&quot;activity-pub&quot;,&quot;title&quot;:&quot;Activity Pub shenanigans&quot;,&quot;content&quot;:&quot;&#92;nIn case you didn&#39;t know [ActivityPub](https://www.theverge.com/2023/4/20/23689570/activitypub-protocol-standard-social-network) is the open protocol ([W3C recommendation](https://www.w3.org/TR/activitypub/)) that powers Mastodon. It is a way for different servers to exchange messages from users (&#92;&quot;Actors&#92;&quot;). It is based on [ActivityStreams](https://www.w3.org/TR/activitystreams-core/), which define the types of objects and data in the systems. One interesting thing is that although ActivityPub/ActivityStreams define [12 different types of Object](https://www.w3.org/TR/activitystreams-vocabulary/#object-types) that can be passed between ActivityPub servers, Mastodon only implements the _Note_.&#92;n&#92;nI found a [plugin for Eleventy](https://github.com/LewisDaleUK/eleventy-plugin-activity-pub) (the static site generator used for this garden) that offered to turn my garden into it&#39;s own ActivityPub &#92;&quot;node&#92;&quot; (not sure what to call it). The basic idea was to sort of hack the [WebFinger](https://en.wikipedia.org/wiki/WebFinger) protocol that ActivityPub uses to discover actors on a site, and have it return a static file in response to all queries. This gave me the following account that I could see from my Mastodon server:&#92;n&#92;n![Screenshot of a Mastodon account belonging to &#92;&quot;Digital Garden of Travis Briggs&#92;&quot;/@digital.garden@travisbriggs.com](https://pxscdn.com/public/m/_v2/588554065884192073/bf4779419-8cf74f/8duMzD0IWbpB/bCuOgEm3kXRTU46PaN0wyCBcLNeZr6qRrs6MwuiO.png)&#92;n&#92;nThat seemed like progress! Unfortunately, of the 74 &#92;&quot;Posts&#92;&quot; that it claimed this user had, all of them were hidden. And there was no &#92;&quot;home server&#92;&quot; where I could view these posts/statuses -- because they didn&#39;t really exist! The plugin had, however, created an [Outbox](https://www.w3.org/TR/activitypub/#outbox) on this site that contained &#92;&quot;Create Note&#92;&quot; actions. So I thought, why don&#39;t I just post these actions to my [Inbox](https://www.w3.org/TR/activitypub/#inbox) on sfba.social?&#92;n&#92;nMy first naive attempt was to just POST the JSON directly. However, I got an error about needing a signature. Then some helpful folks pointed me in the direction of this [blog post](https://blog.joinmastodon.org/2018/06/how-to-implement-a-basic-activitypub-server/) by Eugen from 2018. Basically it walks you through how to have a &#92;&quot;static&#92;&quot; web finger file and post replies on behalf of the actor in that file. This static file is what I already had above. I generated a public/private keypair, added the public key to the digital.garden.json, and got to work.&#92;n&#92;nMy first few attempts, I couldn&#39;t get the signing quite right, and the `/inbox` endpoint complained in various ways. But eventually I [got it to return](https://gist.github.com/audiodude/c6ad0923dbe1c9c1199e6d021b6f1ed5) a sweet 202 (accepted for processing) status code! However...nothing happened. I didn&#39;t see a status anywhere, and the profile of my digital.garden@travisbriggs.com account still showed &#92;&quot;74 Posts&#92;&quot; but none visible.&#92;n&#92;nI knew that the sfba.social server was probably &#92;&quot;filtering out&#92;&quot; or &#92;&quot;dropping&#92;&quot; the message for some reason, but it wasn&#39;t clear to me why. This is where things got a little crazy. I actually spun up a [cloud server](https://mastodon.0-z-0.com) and installed Mastodon 4.2.1 in single user mode. It was actually a lot easier nowadays than it was in the time when I tried it before, back around the same time as the Eugen blog post (2018), though I did have to open [two](https://github.com/mastodon/documentation/pull/1340) documentation [PRs](https://github.com/mastodon/documentation/pull/1341). It&#39;s probably easier now because it now includes its own systemd scripts for starting and maintaing the web server and sidekiq processes, which simplifies things. It also includes an interactive setup script that prompts you for various values so you don&#39;t have to edit a configuration file manually.&#92;n&#92;nSo I started posting to my own server&#39;s `/inbox` and adding debug print statements to the parts of the code that I believed were being used. And sure enough, I figured it out: my create action didn&#39;t have an ActivityStream `@context` key, so it was being dropped. Once I got that sorted out, I was successfully able to post a status as a `replyTo` another existing status, and see it on my new server. But I still couldn&#39;t will the ghost statuses into existence on their own.&#92;n&#92;nAs it turns out, Mastodon will check if an incoming create action is `related_to_local_activity?` (that&#39;s the actual method name). The basic test is if it is in reply to a status on the server, or a status posted by someone who is followed by someone on the server. Actually, from what I understand, this is how all statuses federate. When I post a status on my server, it knows who is following me and POSTs on my behalf to all of their servers. This is actually what used to be known as the &#92;&quot;federated timeline&#92;&quot;: the sum of all statuses being posted to the server because someone follows their author.&#92;n&#92;nOkay, but we must go deeper. How can I get my account on sfba.social to &#92;&quot;follow&#92;&quot; the static account digital.garden@travisbriggs.com? Back to reading the ActivityPub spec. Apparently, when you click the &#92;&quot;follow&#92;&quot; button, your instance sends a Follow request to the remote account&#39;s server. Then, the user of that account can possibly inspect and approve/reject the request. In most cases, when public follows are unrestricted, the remote server will send that back almost immediately. In my case, the static server didn&#39;t send it back _at all_ (because it&#39;s a static server! It can&#39;t process and respond to requests!). Moreover, the acceptance post has to quote the original follow exactly, but as we all know Mastodon sidesteps some of the ActivityPub methodology and doesn&#39;t actually put the follow requests in my `/users/audiodude/outbox` (only created posts are there).&#92;n&#92;nThis is where talking to [Emilia Smith](https://sfba.social/@thisismissem@hachyderm.io) was particularly helpful (though she had already helped get me on the right track earlier, and possibly pointed me to the Eugen post). I realized that, even if I could spoof the follow request, and get my statuses accepted by the &#92;&quot;remote&#92;&quot; server (sfba.social), there would be nowhere for anyone to post replies to those statuses. The replies would go to my static server, which would just silently drop them, and they wouldn&#39;t show up anywhere to serve as the basis for my comments system. In fact, looking at the [comments code](https://carlschwan.eu/2020/12/29/adding-comments-to-your-static-blog-with-mastodon/), it depends specifically on the presence of a Mastodon API server to read the replies from, which my garden would never have (even if it _did_ have some way of storing the incoming replies).&#92;n&#92;nThis is where I gave up.&#92;n&#92;nWhat I ended up doing was creating a [new account](https://mastodon.online/@digital_garden) for the Digital Garden itself, and automatically [[comments-research|posting there]] when I post a new garden node. I plan to simply boost these posts from my main, human account when I post new content.&#92;n&#92;nI have to say though, it was an interesting journey to track some of this down, and I became more familiar with the ActivityPub spec. Especially spinning up a Mastodon server was a fun exercise, just to see what it takes in 2023.&#92;n&#92;nWhat do you think? Respond in the comments?&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;mastodon-is-not-twitter&quot;,&quot;anchor_text&quot;:&quot;Mastodon&quot;,&quot;context&quot;:&quot;the open protocol ([W3C recommendation]) that powers Mastodon&quot;,&quot;rationale&quot;:&quot;The node discusses Mastodon extensively; this node offers Travis&#39;s broader take on the platform.&quot;},{&quot;slug&quot;:&quot;comments&quot;,&quot;anchor_text&quot;:&quot;comments system&quot;,&quot;context&quot;:&quot;which my garden would never have...to serve as the basis for my comments system&quot;,&quot;rationale&quot;:&quot;This node&#39;s whole motivation is the garden&#39;s comments system, which the &#39;comments&#39; node describes.&quot;},{&quot;slug&quot;:&quot;digital-garden-itself&quot;,&quot;anchor_text&quot;:&quot;this garden&quot;,&quot;context&quot;:&quot;the static site generator used for this garden&quot;,&quot;rationale&quot;:&quot;Directly references the digital garden itself, which has its own node.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;comments-research&quot;,&quot;rationale&quot;:&quot;Details the actual comments implementation that this ActivityPub experiment was trying to feed into.&quot;},{&quot;slug&quot;:&quot;gemini&quot;,&quot;rationale&quot;:&quot;Both explore alternative/experimental web protocols and Travis&#39;s tinkering with them.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:2530,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:585,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:237},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;ai-coding-benchmarks&quot;,&quot;fileSlug&quot;:&quot;ai-coding-benchmarks&quot;,&quot;title&quot;:&quot;AI Coding Benchmarks&quot;,&quot;content&quot;:&quot;Ever since the LLM wars started, people have been developing benchmarks to try to compare which ones are &#92;&quot;better&#92;&quot;, which ones are _the best_. These are trotted out in every new model release to explain to (probably mostly investors) just how _far we&#39;ve come_.&#92;n&#92;nSetting aside the practical problems with such benchmarks, my opinion is that these benchmarks just don&#39;t really matter at all.&#92;n&#92;nWhen I&#39;m using Claude Code, I&#39;m much more concerned about the experience than the &#92;&quot;raw algorithmic ouput&#92;&quot;. That&#39;s probably because I&#39;m mostly working on projects that have some kind of web app or user interface, and verifying that it works requires Human in the Loop (HITL). My experience prompting, getting feedback, iterating, etc is much more important than the &#92;&quot;raw ultimate coding power&#92;&quot; that the model provides. I don&#39;t need Claude Code to write a perfect JIT compiler, or media decoding algorithm, or tree shaker for an obscure language. I need it to be able to create and iterate on a UI with me, ask intelligent questions that surface clear tradeoffs in architecture, and respond to my own questions.&#92;n&#92;nI&#39;m sorry, I know loop-based agentic whatever is the future, but for now I&#39;m getting the best results with an iterative HITL approach.&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;ai&quot;,&quot;anchor_text&quot;:&quot;the LLM wars started&quot;,&quot;context&quot;:&quot;Ever since the LLM wars started, people have been developing benchmarks&quot;,&quot;rationale&quot;:&quot;The node discusses the broader AI landscape which the AI node covers.&quot;},{&quot;slug&quot;:&quot;what-is-a-web-application&quot;,&quot;anchor_text&quot;:&quot;web app or user interface&quot;,&quot;context&quot;:&quot;working on projects that have some kind of web app or user interface&quot;,&quot;rationale&quot;:&quot;Directly references web apps, the subject of the web application node.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;harness-matters-more&quot;,&quot;rationale&quot;:&quot;That node argues the coding harness matters more than the model and explicitly relies on distrust of these benchmarks.&quot;},{&quot;slug&quot;:&quot;vibe coding&quot;,&quot;rationale&quot;:&quot;The author&#39;s iterative HITL Claude Code workflow is elaborated in the vibe coding node.&quot;},{&quot;slug&quot;:&quot;ai&quot;,&quot;rationale&quot;:&quot;Provides broader context on the author&#39;s views of the AI era and LLMs referenced here.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:453,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:570,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:255},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;ai-music-trends&quot;,&quot;fileSlug&quot;:&quot;ai-music-trends&quot;,&quot;title&quot;:&quot;AI Music Trends&quot;,&quot;content&quot;:&quot;Before the 1950s, a kitchen cabinet or a dining table was often the work of a local carpenter or a specialized regional workshop. Today, most modern &#92;&quot;wood&#92;&quot; furniture is produced via CNC machines and automated laminating lines. While we lost the &#92;&quot;heirloom&#92;&quot;, human made, artisinal quality of solid wood joinery, the precision of modern factory furniture is so high that most people don&#39;t notice the lack of hand-tooling. Not to mention it’s orders of magnitude cheaper.&#92;n&#92;nIt’s a philosphial debate largely. If you can’t tell if a track was made by a “human musician, skilled at their craft, carefully conveying chosen emotion through the medium of sound” or an AI, then who cares?&#92;n&#92;nPeople already barely want to pay anything at all for music. The low royalty payments for artists are not because Spotify is evil, it’s because of that fact. If people were willing to pay as much for a month of music as they are for a month of NFL football (via a cable package or YouTube TV subscription ~80 dollars), it would be a very different conversation.&#92;n&#92;nIn 2048, there will be a place for niche, “artisinal”, human made music, sure, the same way there is still the same for furniture. In fact, the prices people are willing to pay for this will be much higher than they are now, following the same principles. But 95% of the world will have moved on.&#92;n&#92;nI say this as a musician, who was trained in music, a composer, a [[danger-third-rail|recording artist]] with [[spotify|published works]] (though none profitable!).&#92;n&#92;nIf we could peek inside of Spotify’s analytics, I think most people already put on “vibe playlists” (rock workout, chill study, electronic drive home) on shuffle. In that case, the artist, be them human or AI, doesn’t even register anyway. I imagine once the labels agree (remember, the lables basically own Spotify through their investments and profit sharing deals), Spotify will just acquire whatever AI music making platform is the best developed or has the biggest following. They will see it as cutting out the human musician “middleman”.&#92;n&#92;nThe writing’s on the wall. See you in 2048!&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;ai&quot;,&quot;anchor_text&quot;:&quot;or an AI&quot;,&quot;context&quot;:&quot;carefully conveying chosen emotion through the medium of sound” or an AI, then who cares?&quot;,&quot;rationale&quot;:&quot;Directly references AI, which has a dedicated node exploring the author&#39;s views on the technology.&quot;},{&quot;slug&quot;:&quot;Suno&quot;,&quot;anchor_text&quot;:&quot;AI music making platform&quot;,&quot;context&quot;:&quot;Spotify will just acquire whatever AI music making platform is the best developed&quot;,&quot;rationale&quot;:&quot;Suno is the AI music generation platform the author has written about, exactly the kind of platform referenced here.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;Bandcamp&quot;,&quot;rationale&quot;:&quot;Elaborates on the &#39;long tail&#39; artist economics and the stratification of the music industry discussed here.&quot;},{&quot;slug&quot;:&quot;ai-coding-benchmarks&quot;,&quot;rationale&quot;:&quot;Shares the author&#39;s skepticism about AI hype and where AI&#39;s practical value actually lies.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:729,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:512,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:211},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;ai&quot;,&quot;fileSlug&quot;:&quot;ai&quot;,&quot;title&quot;:&quot;AI&quot;,&quot;content&quot;:&quot;&#92;nAs I write this, it is April 13th, 2026. ChatGPT was released in November 2022, with an estimated 5 million users within a week of launch, slamming the world into the &#92;&quot;AI era&#92;&quot; that we find ourselves in now. That was three and a half years ago, and in all that time, I haven&#39;t written a single thing in my digital garden about AI. I wrote plenty to my friends, discussed it at work, fretted about it with my wife, but nothing here.&#92;n&#92;nIf a Digital Garden is about [[dg-public|learning in public]], the meta lesson is that I should just start writing about something as soon as it interests me, as soon as I have opinions about it. But also, it&#39;s time to put that principle into practice and start sketching out some of my ideas about all this crazy sci-fi-but-real-life shit that&#39;s been going down between then and now.&#92;n&#92;nI&#39;m just going to make a good old bullet list with questions I want to research answers to and other topics, and then fill these in later when I have time:&#92;n&#92;nOne thing I&#39;ll address off the bat: **Is it capitulation to spit in the face of 70 years of Computer Science research and accept that the current techniques of LLMs should be wholly referred to as &#92;&quot;AI&#92;&quot;?** I&#39;m going to go the GNU/Linux route here. Yes, Linux is just a kernel, and GNU is the suite of programs that made that kernel useful. But in the broad vernacular, Linux is an operating system and has been for years. It&#39;s vernacular, that&#39;s how it works. ChatGPT is understood by millions and millions of people to be &#92;&quot;AI&#92;&quot;, so we can just go with that.&#92;n&#92;nFor most of 2026, Claude Code has been the most popular solution for AI-assisted coding, or sometimes &#92;&quot;vibe coding&#92;&quot;. Many have suggested that the [[harness-matters-more|harness matters more]] but a lot of people still chase [[ai-coding-benchmarks|AI coding benchmarks]].&#92;n&#92;nOther questions I&#39;d like to answer:&#92;n&#92;n* Does training an LLM infringe copyright?&#92;n* Is training an LLM on the entire Internet ethical?&#92;n* Are the models going to get &#92;&quot;better&#92;&quot;, or just plateau? Do we have enough &#92;&quot;internets&#92;&quot; left to train them on, if parameters is the only thing that makes them improve?&#92;n* Is there an AI bubble?&#92;n* What trillion dollar problem is AI going to solve?&#92;n* Is AI art real art?&#92;n   * Is it any good anyways?&#92;n   * If the answer to the two above are yes, then why do people hate it so much?&#92;n   * Do people compel themselves to answer no to one of those questions in order to enact an anti-&#92;&quot;AI art&#92;&quot; worldview?&#92;n   * What are the philosophical problems around songs you like, but you find out they were made by AI?&#92;n   * What are the [[ai-music-trends|general trends in music consumption]] in 2025 and beyond that are affected by this?&#92;n* Why is there so much &#39;hate&#39; agains AI/LLMs?&#92;n* Is Sam Altman a piece of shit?&#92;n* Are local models worth it in 2026?&#92;n* Why are AI fruit videos so awesome?&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;vibe coding&quot;,&quot;anchor_text&quot;:&quot;vibe coding&quot;,&quot;context&quot;:&quot;AI-assisted coding, or sometimes &#92;&quot;vibe coding&#92;&quot;. Many have suggested&quot;,&quot;rationale&quot;:&quot;The node explicitly mentions vibe coding, which has a dedicated node.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;Suno&quot;,&quot;rationale&quot;:&quot;The questions about AI-made songs and AI art directly connect to Suno, which the author calls vibe coding for music.&quot;},{&quot;slug&quot;:&quot;null-rail&quot;,&quot;rationale&quot;:&quot;Null Rail is the author&#39;s AI-assisted music project, elaborating on the philosophical questions about AI-made songs raised here.&quot;},{&quot;slug&quot;:&quot;sudomake-friends&quot;,&quot;rationale&quot;:&quot;Touches on people getting attached to LLMs as real people, an AI-era phenomenon the author explored in this project.&quot;},{&quot;slug&quot;:&quot;when to vibe code&quot;,&quot;rationale&quot;:&quot;Extends the discussion of Claude Code and AI-assisted coding with guidance on appropriate use.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1020,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:533,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:206},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;anki&quot;,&quot;fileSlug&quot;:&quot;anki&quot;,&quot;title&quot;:&quot;Anki flashcards&quot;,&quot;content&quot;:&quot; [Anki](https://apps.ankiweb.net/) is an open source program for viewing and drilling flashcards. It also operates as a cloud service that provides pre-existing flashcard &#92;&quot;decks&#92;&quot; and the ability to sync your progress across devices. So you can view flashcards on your phone, or on your computer and keep everything up to date.&#92;n&#92;nThe most recent flashcards I&#39;ve downloaded are for [[spanish|Spanish]], but I haven&#39;t really looked at them yet.&#92;n&#92;nThe last time I opened Anki I did find my old &#92;&quot;capitals and countries of the world&#92;&quot; deck that I had been meaning to work through. I had previously done US states and capitals to great success, but the countries of the world deck was a lot harder to stick with. Part of the problem I had was that there were too many &#92;&quot;cards&#92;&quot;. What I realized was that Anki generates cards based on inputting &#92;&quot;notes&#92;&quot; (which are collections of facts) and running them through &#92;&quot;templates&#92;&quot;. So I simply had to create an alternate set of templates for my world countries and capitals deck, and I could weed out some of the more tedious cards (things like, &#92;&quot;Where on a map is this country&#39;s capital?&#92;&quot; and &#92;&quot;What city in &amp;lt;country&amp;gt; is this?&#92;&quot;. For the latter, the answer was always the capital and it was a bit overkill).&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[]},&quot;usage&quot;:{&quot;input_tokens&quot;:430,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:21,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:0},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;apache&quot;,&quot;fileSlug&quot;:&quot;apache&quot;,&quot;title&quot;:&quot;Email to the Apache Software Foundation&quot;,&quot;content&quot;:&quot;Today I learned about the organization Natives In Tech and their websites ([1](https://blog.nativesintech.org/apache-appropriation/), [2](https://www.endasfmascotry.com/)) about the naming of the Apache Software Foundation.&#92;r&#92;n&#92;r&#92;nI agree wholeheartedly with the sentiments expressed and stand in solidarity with the Natives in Tech organization in this effort. I believe that a name change is important for software inclusivity as well as mitigating the insulting nature of the current name.&#92;r&#92;n&#92;r&#92;nTo that end, I added my name to the [list of signatories](https://github.com/nativesintech/endasfmascotry/pull/33) on [endasfmascotry.com](https://www.endasfmascotry.com/) and wrote the following email to the list of email addresses listed on that page:&#92;r&#92;n&#92;r&#92;n&gt; Subject: Please consider ending the use of the Apache name&#92;r&#92;n&gt;&#92;r&#92;n&gt; From: Travis Briggs &lt;audiodude@gmail.com&gt;&#92;r&#92;n&gt;&#92;r&#92;n&gt; To: board@apache.org, trademarks@apache.org, ke4qqq@apache.org, suehle@apache.org, jzb@apache.org, katia@apache.org&#92;r&#92;n&gt;&#92;r&#92;n&gt; Hello fellow open source enthusiasts.&#92;r&#92;n&gt;&#92;r&#92;n&gt; Today I came across this article from the organization Natives in Tech: https://blog.nativesintech.org/apache-appropriation/&#92;r&#92;n&gt;&#92;r&#92;n&gt; Of course I was previously aware of the Apache Software Foundation, and generally knew that it referred to Native Americans. It never really bothered me in the past. However, after reading the article and associated materials, I believe it is time for ASF to seriously reconsider its naming and plan a path forward that includes a rename.&#92;r&#92;n&gt;&#92;r&#92;n&gt; The fact that ASF feels the need to have an &#92;&quot;About Our Name&#92;&quot; page (https://www.apache.org/apache-name/), to potentially deflect inquiries such as my own, is almost evidence enough that the name is problematic. Linux, Mozilla, Android: none of these organizations or software suites have need for anything similar.&#92;r&#92;n&gt;&#92;r&#92;n&gt; I recognize as an open source software developer that a rename would be hard and painful. Loss of brand recognition, the need to register new trademarks and domain names, etc. However, as stated above, I believe ASF has a moral imperative to begin this process. And as you know there are precedents in this process across many open source technologies as well as other organizations such as sports teams.&#92;r&#92;n&gt;&#92;r&#92;n&gt; Please consider the example your amazing software sets in the open source community, and the immense value a rename would have in setting a positive one.&#92;r&#92;n&gt;&#92;r&#92;n&gt; Thank you,    &#92;r&#92;n&gt;&#92;r&#92;n&gt; Travis Briggs&#92;&#92;&#92;r&#92;n&gt; Software Developer&#92;&#92;&#92;r&#92;n&gt; San Francisco, CA, USA&#92;&#92;&#92;r&#92;n&gt; https://travisbriggs.com&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;github&quot;,&quot;rationale&quot;:&quot;The node references adding a name via a GitHub pull request, and the github node discusses open source hosting culture.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:891,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:67,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:0},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;atheism&quot;,&quot;fileSlug&quot;:&quot;atheism&quot;,&quot;title&quot;:&quot;atheism&quot;,&quot;content&quot;:&quot;&#92;nI am an atheist. I firmly believe that no gods exist.&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;philosophy&quot;,&quot;rationale&quot;:&quot;The philosophy node explicitly discusses the author&#39;s atheism and worldview, directly elaborating on this belief.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:69,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:73,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:0},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;bands-as-sports-teams&quot;,&quot;fileSlug&quot;:&quot;bands-as-sports-teams&quot;,&quot;title&quot;:&quot;Bands and sports teams&quot;,&quot;content&quot;:&quot;&#92;nI&#39;ve started to think of bands as sports teams. For a sports team, like an american football team, there are a lot of players. You have a quaterback, an offensive line, a running back, some wide recievers. You have an entire defense with a defensive line, cornerbacks and safetys. To have a successful team, all of these pieces have to come together in perfect harmony and align so that the team can be maximally successful.&#92;n&#92;nOr do they?&#92;n&#92;nLook at any high school football game. Generally speaking, the winning team has some star player or two that are bigger, stronger, faster or more skilled than the rest of the players on either team. When you have a quarterback with great passing precision, and a wide receiver that can evade coverage and catch the ball, you just run that same play. Almost every time. Why take a risk with any other players when these two can win the game for you by themselves.&#92;n&#92;nSo how does this relate to bands? The goal of a sports team is to win a game, or multiple games. The goal of a band is to make a great record, or multiple great records. Now, it&#39;s easier to quantify the success of a sports team. How many yards did they gain, how many points did they score, did they win the game? The success of a record is harder to define, but it is probably some combination of critical and commercial success, along with the lasting legacy of the song and how beloved it is.&#92;n&#92;nSo what makes a song successful? Usually it has some combination of excellence in: songwriting, lyrics, melody, hook, harmony, vocal performance, arrangement, star power, production (including electronic), instrumentation, instrumental solos and various other elements. The important observation is that _not every aspect of the song has to be great_! Just like a few good players can &#92;&quot;carry&#92;&quot; a sports team, a few great or amazing elements can carry a song. A band might have weak songwriting, but amazing vocal performances. Or mundane lyrics but incredible instrumentation and instrumental solos. The elements that carry a record for a band might vary between one record and another. In fact, it is often bands that &#92;&quot;mix up the formula&#92;&quot; that have the most success and staying power.&#92;n&#92;nI think this is something to keep in mind when recording my own tracks. I don&#39;t have to have every element be perfect. Not everything has to shine. I should figure out what aspects of my songs are making them &#92;&quot;work&#92;&quot;, and hone in on those.&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;recording-setup&quot;,&quot;anchor_text&quot;:&quot;recording my own tracks&quot;,&quot;context&quot;:&quot;something to keep in mind when recording my own tracks&quot;,&quot;rationale&quot;:&quot;The phrase refers to the author&#39;s home recording process, which is the subject of the recording-setup node.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;fake-it-music&quot;,&quot;rationale&quot;:&quot;This node explicitly builds on the bands-as-sports-teams idea that not every part of a song needs to be perfect.&quot;},{&quot;slug&quot;:&quot;songwriting-reflections&quot;,&quot;rationale&quot;:&quot;Elaborates on which song elements the author values, complementing the discussion of what makes a song successful.&quot;},{&quot;slug&quot;:&quot;motivation-music&quot;,&quot;rationale&quot;:&quot;Discusses evaluating songs and music quality, related to the criteria for a successful record.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:757,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:527,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:273},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;best albums in the universe&quot;,&quot;fileSlug&quot;:&quot;best albums in the universe&quot;,&quot;title&quot;:&quot;The Best Albums in the Universe&quot;,&quot;content&quot;:&quot;&#92;nI think I started this project in 2011 or 2012. It lives on the web at [bestalbumsintheuniverse.com](https://bestalbumsintheuniverse.com) and on [[gemini|Gemini]] at [gem.bestalbumsintheuniverse.com](gemini://gem.bestalbumsintheuniverse.com).&#92;n&#92;nWhen I was coming up with the name, I knew I wanted to keep track of a curated collection of my favorite albums, mostly for my own reference. But I thought it would be lame to be like my-favorite-albums.com or something like that. Why not go big and call it Best Albums in the Universe?&#92;n&#92;nThe best albums list is meant to be a living document, just like this garden. It is intended to grow as I discover, or sometimes more accurately remember, more albums. So far the only criteria I&#39;ve set for myself is that I don&#39;t want to list multiple albums by the same artist, or else there would be many more Beatles, Radiohead and Weezer albums on there.&#92;n&#92;n## History&#92;n&#92;nThe site was originally on Tumblr. Hold on, let me check if the original Tumblr site is still up or if I can find it....&#92;n&#92;n...nope, can&#39;t find it. I think I might have deleted it at some point. My [personal tumblr](https://travisbriggs.tumblr.com/), which just has a couple of links, refers to the new website.&#92;n&#92;nAnyways, originally it was going to be a collaboration between me and my wife, [[Abby]]. She actually picked the second album and wrote the description, which is why it talks about it being her namesake. That didn&#39;t last very long though. In fact, I&#39;ve had the site for over a decade and there are only 39 albums on there currently. So clearly I have not updated the site very often. If you go to the Gemini version, it actually lists the date at which I posted an album, which is kind of embarassing.&#92;n&#92;nEventually, I changed it to a [Jekyll](https://jekyllrb.com/) site, around the time that [Static Site Generators](https://www.cloudflare.com/learning/performance/static-site-generator/) became all the rage. There was a time when Github let you use Jekyll to deploy a static site for free inside of a Github repository, and if you look in the history of [this repo](https://github.com/audiodude/best-albums) you can see that it was used there (you could -- and likely still can -- point a custom URL to Github&#39;s static sites).&#92;n&#92;nWhen I moved from Tumblr to the Jekyll site, I already had a fair number of albums posted, with a lot of metadata. So I wanted to preserve this data somehow, hopefully programmatically. The scripts I wrote to take care of that are still part of the Jekyll repo linked above.&#92;n&#92;nThe interesting thing about that early version was that I wrote all of the album descriptions in [Markdown](https://daringfireball.net/projects/markdown/) files, as you do with Jekyll sites, but there was a lot of &#92;&quot;front matter&#92;&quot; in the Markdown that was used to annotate each entry, like the `photo_sm` and `photo_lg` links to the thumbnail and full versions of the album art. I would find the album art on Amazon, and upload them to imgur.com where I would &#92;&quot;hotlink&#92;&quot; to them from my site. In fact, I used a little known feature of imgur, which was that you could take the image url, say `http://i.imgur.com/abcdefg.png` and append a character to the ID like `abcdefgs.png` (s for &#92;&quot;small&#92;&quot;) or `abcdefgl.png` (l for &#92;&quot;large&#92;&quot;).&#92;n&#92;nAlso, the markdown files didn&#39;t directly translate into the &#92;&quot;cover art squares&#92;&quot; you see on the website. Instead, I had an `albums.json` file in my root directory that contained a [Liquid](https://shopify.github.io/liquid/) template for generating a full [JSON](https://www.json.org/json-en.html) document of the final albums. Then, when the site loaded, the Javascript on the page would request the `albums.json` file, parse it, and use [Mustache templates](https://mustache.github.io/) to generate the final HTML document. There&#39;s also a &#92;&quot;grid layout library&#92;&quot; called [Masonry](https://masonry.desandro.com/) that is used, plus some custom Javascript to control when to display or collapse albums when they are clicked, and to create permalinks to a version of the site with certain albums already open.&#92;n&#92;nA few years ago, I decided to write a &#92;&quot;headless CMS&#92;&quot; for the site, so that when I type in a [Wikidata](https://wikidata.org) ID for an album, it does an API lookup on Wikidata and grabs the Artist, Title, Release Year, Spotify ID (the best albums page includes Spotify embeds), and album art. At that point, all I have to do is write the description, click save, and then upload the result to the static site. [This CMS](https://github.com/audiodude/best-albums-headless) is written in [[Ruby on Rails]] and is hosted on the same server that hosts the best albums site itself.&#92;n&#92;nAt some point I&#39;ll write about my [[gemini|Gemini]] version (which is still listed in the historical record of the [first fifty Gemini hosts](https://geminiprotocol.net/history/servers.gmi)).&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;Spotify&quot;,&quot;anchor_text&quot;:&quot;Spotify&quot;,&quot;context&quot;:&quot;grabs the Artist, Title, Release Year, Spotify ID (the best albums page includes Spotify embeds)&quot;,&quot;rationale&quot;:&quot;The node discusses Spotify IDs and embeds, which is the subject of the Spotify node.&quot;},{&quot;slug&quot;:&quot;digital-garden-itself&quot;,&quot;anchor_text&quot;:&quot;just like this garden&quot;,&quot;context&quot;:&quot;The best albums list is meant to be a living document, just like this garden&quot;,&quot;rationale&quot;:&quot;References this digital garden, which has its own dedicated node.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;more-about-blogging&quot;,&quot;rationale&quot;:&quot;That node also discusses the best albums in the universe project and its status as one of the first 50 Gemini sites.&quot;},{&quot;slug&quot;:&quot;Rainfall&quot;,&quot;rationale&quot;:&quot;Both describe custom static site generators for music-related content using Markdown metadata, a closely parallel technical approach.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1683,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:486,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:184},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;blog/a-story-of-failure&quot;,&quot;fileSlug&quot;:&quot;a-story-of-failure&quot;,&quot;title&quot;:&quot;A Story Of Failure&quot;,&quot;content&quot;:&quot;&#92;nLast year I made a rather audacious New Year&#39;s Resolution: [to write a song a day in 2018](https://blog.travisbriggs.com/writing-a-song-a-day-in-2018-d4f2be32c40f). I will now always remember 2018 as the year I failed to write a song a day. Or maybe I should remember it as the year that I bravely aspired to write a song a day?&#92;n&#92;nI haven&#39;t given any thoughts to New Year&#39;s Resolutions this year. I&#39;ve sort of come around to the existential point of view that I&#39;m really just a piece of driftwood on the ocean that is my life. I never really believed in free will. Free will just seems like the explanation we give to the thing we were going to do anyways. I don&#39;t have any agency over myself, my outcomes. So why bother?&#92;n&#92;nI did manage to write about 20 songs in 2018, which you can view on my [song website](https://songs.travisbriggs.com). That&#39;s about 5% of the way towards my goal.&#92;n&#92;nMaybe I can do something like write a song a day for the first week of every month, then take the rest of the month off. I don&#39;t know. Like I said in the other post, song a week is really &#92;&quot;wait 5 days, then write a song in a day&#92;&quot;.&#92;n&#92;nI mean, why am I so obsessed with songwriting anyways? To speak again of existentialism, maybe I see my creative output as my only futile thrusts against the all encompassing absurd. Maybe I&#39;m just a fanboy that obsesses over music and feels compelled to add to the great corpus of musical works. I am Sisyphus and music is my rock (n roll).&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;free will&quot;,&quot;anchor_text&quot;:&quot;free will&quot;,&quot;context&quot;:&quot;I never really believed in free will. Free will just seems like the explanation&quot;,&quot;rationale&quot;:&quot;Directly references the concept covered by the free will node.&quot;},{&quot;slug&quot;:&quot;philosophy&quot;,&quot;anchor_text&quot;:&quot;existentialism&quot;,&quot;context&quot;:&quot;To speak again of existentialism, maybe I see my creative output&quot;,&quot;rationale&quot;:&quot;The philosophy node covers existentialism, determinism, and picturing Sisyphus happy.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;giving-up-on-resolutions&quot;,&quot;rationale&quot;:&quot;Directly elaborates the author&#39;s decision to give up New Year&#39;s Resolutions mentioned here.&quot;},{&quot;slug&quot;:&quot;another-year-without-resolutions&quot;,&quot;rationale&quot;:&quot;Continues the theme of abandoning resolutions and &#39;today is New Year&#39;s Day&#39; thinking.&quot;},{&quot;slug&quot;:&quot;nike-the-shit-out-of-it&quot;,&quot;rationale&quot;:&quot;Discusses the same struggle with songwriting output and failing to publish songs.&quot;},{&quot;slug&quot;:&quot;new-year&quot;,&quot;rationale&quot;:&quot;Elaborates on the &#39;every day is New Year&#39;s Day&#39; existential view of resolutions.&quot;},{&quot;slug&quot;:&quot;font-of-creativity&quot;,&quot;rationale&quot;:&quot;Explores the compulsion to create despite lack of intrinsic drive, echoing the songwriting obsession here.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:545,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:675,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:250},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;blog/another-week&quot;,&quot;fileSlug&quot;:&quot;another-week&quot;,&quot;title&quot;:&quot;Another Week&quot;,&quot;content&quot;:&quot;&#92;nHere starts another week, and it&#39;s going pretty well. I&#39;m awake, I&#39;m at work, I&#39;m caffeinated. Listening to some [Weezer](https://weezer.com/).&#92;n&#92;nOf course, in the back of my mind, I&#39;m thinking: this week will be just like any other week, nothing special, 7 days closer to the grave. Pretty morbid, but that&#39;s kind of the feeling I get.&#92;n&#92;nMy wife thinks I need to practice more gratitude for what I have. I&#39;m definitely aware of all the research out there that states that gratitude is a major component of happiness. Not that I&#39;m really that unhappy, but still.&#92;n&#92;nI offered to work more on the [volunteer project](https://www.blackfem.org/) that I spent six months on last year. Mostly just because it was between that and finding another volunteer project. I had actually planned to find some open source project that I could contribute significantly to, but that&#39;s always a problem. It&#39;s very hard to find a project that: a) I use, b) needs help in the skillsets I can provide, and c) is actively looking for contributors. I think that first one is something that many people who want to contribute to open source overlook. Is there really a point in contributing to a project that you yourself don&#39;t even use? How will you even value your own contributions?&#92;n&#92;nI&#39;m actually thinking of creating some kind of blogging software that allows users to keep a local blog, then one-click publish it to [Netlify](https://www.netlify.com/) or some other platform ([Neocities](https://neocities.org/)?). Preferably with [Electron](https://electronjs.org/), so that it wouldn&#39;t require any command line knowledge. I don&#39;t know, I think I need to explore the problem space more. If you want to edit your blog from any computer, isn&#39;t that just a web app that handles the blog? Wouldn&#39;t having a local version as the master copy be more limiting? I feel like a major part of this use case is that someone wants to keep control over their blog, over their information and data, for one reason or another.&#92;n&#92;nThe real question is, is it possible to build a web app in [Node.js](https://nodejs.org/en/) and then deploy it as an Electron app? So you could have a (self?) hosted version of the blogging software as well as a local version, or one, or the other.&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;Abby&quot;,&quot;anchor_text&quot;:&quot;My wife&quot;,&quot;context&quot;:&quot;My wife thinks I need to practice more gratitude for what I have.&quot;,&quot;rationale&quot;:&quot;Direct reference to his wife, who has a dedicated node.&quot;},{&quot;slug&quot;:&quot;considering-moving-blogs&quot;,&quot;anchor_text&quot;:&quot;creating some kind of blogging software&quot;,&quot;context&quot;:&quot;I&#39;m actually thinking of creating some kind of blogging software that allows users to keep a local blog&quot;,&quot;rationale&quot;:&quot;His musings on blogging platforms directly relate to his post about evaluating blog platforms.&quot;},{&quot;slug&quot;:&quot;javascript-typescript&quot;,&quot;anchor_text&quot;:&quot;Node.js&quot;,&quot;context&quot;:&quot;is it possible to build a web app in [Node.js](https://nodejs.org/en/) and then deploy it&quot;,&quot;rationale&quot;:&quot;Node.js is Javascript on the backend, covered by the Javascript/Typescript node.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;blog-cycle&quot;,&quot;rationale&quot;:&quot;His impulse to build/rebuild blogging software echoes the theme of blogs being endlessly rebuilt.&quot;},{&quot;slug&quot;:&quot;more-about-blogging&quot;,&quot;rationale&quot;:&quot;Elaborates on his ongoing desire to blog and experiment with platforms.&quot;},{&quot;slug&quot;:&quot;Kiwix&quot;,&quot;rationale&quot;:&quot;His interest in contributing to open source projects he actually uses connects to his volunteer work with Kiwix.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:737,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:805,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:361},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;blog/another-year-without-resolutions&quot;,&quot;fileSlug&quot;:&quot;another-year-without-resolutions&quot;,&quot;title&quot;:&quot;Another Year Without Resolutions&quot;,&quot;content&quot;:&quot;&#92;nI wrote [[blog/giving-up-on-resolutions|last year]] about how I was planning on giving up on New Year&#39;s resolutions. Well I did. And nothing really changed one way or another. In that post I wrote, &#92;&quot;Today is New Year&#39;s Day&#92;&quot;, which is one way of looking at it. The apparent corollary of that is that &#92;&quot;New Year&#39;s Day doesn&#39;t exist&#92;&quot;, which is the essential position I took last year.&#92;n&#92;nI&#39;m only going to acknowledge in passing the difficulties of 2020. It was a tough year for everybody. The idea that things are just going to get better overnight when the calendar changes is magical thinking at best. Yet people want to have hope, because the opposite is likely despair.&#92;n&#92;nAt some point in about August of 2020 I decided to start taking music lessons, for mixing and mastering and Ableton Live production. The idea is that I will be learning how to do these things for my own music, so that I can release professional sounding versions of my songs (not demos or anything on Soundcloud) without breaking the bank to pay someone to do these things for me.&#92;n&#92;nIf I were to have a New Year&#39;s resolution, a secret one, this year, it would be to finish my album and get it out there. But it has nothing to do with the calendar changing, it&#39;s just something that I want to do anyways.&#92;n&#92;nAnd there are other things I want to do anyways, like be a good husband to Abby, generally get things done at work and be a good co-worker, and find things to fill my time in general so that I&#39;m not bored and restless. But these are continuous goals, not something that I wasn&#39;t doing yesterday and that I&#39;m suddenly going to start doing today. These are things I continuously strive for.&#92;n&#92;nHappy New Year&#39;s everyone! Whether you believe in resolutions or not, I hope that you have a year filled with meaningful relationships and accomplishing your goals.&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;ableton&quot;,&quot;anchor_text&quot;:&quot;Ableton Live&quot;,&quot;context&quot;:&quot;for mixing and mastering and Ableton Live production&quot;,&quot;rationale&quot;:&quot;Directly names Ableton Live, which has a dedicated node.&quot;},{&quot;slug&quot;:&quot;Abby&quot;,&quot;anchor_text&quot;:&quot;Abby&quot;,&quot;context&quot;:&quot;like be a good husband to Abby&quot;,&quot;rationale&quot;:&quot;Abby is his wife and has a dedicated node.&quot;},{&quot;slug&quot;:&quot;new-year&quot;,&quot;anchor_text&quot;:&quot;Today is New Year&#39;s Day&quot;,&quot;context&quot;:&quot;In that post I wrote, &#92;&quot;Today is New Year&#39;s Day&#92;&quot;&quot;,&quot;rationale&quot;:&quot;The &#39;every day is New Year&#39;s Day&#39; idea is the subject of the new-year node.&quot;},{&quot;slug&quot;:&quot;new-danger-third-rail-ep&quot;,&quot;anchor_text&quot;:&quot;finish my album and get it out there&quot;,&quot;context&quot;:&quot;this year, it would be to finish my album and get it out there&quot;,&quot;rationale&quot;:&quot;His music release goal connects to the Danger Third Rail EP node.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;a-story-of-failure&quot;,&quot;rationale&quot;:&quot;Also reflects on failed New Year&#39;s resolutions and existential thoughts about goals.&quot;},{&quot;slug&quot;:&quot;highs-and-lows-musician&quot;,&quot;rationale&quot;:&quot;Elaborates on his home recording/mixing/mastering journey referenced here.&quot;},{&quot;slug&quot;:&quot;motivation-music&quot;,&quot;rationale&quot;:&quot;Discusses his motivation for producing and releasing his own music.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:633,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:676,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:228},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;blog/blogging-but-this-time-with-blogging&quot;,&quot;fileSlug&quot;:&quot;blogging-but-this-time-with-blogging&quot;,&quot;title&quot;:&quot;Blogging, but this time with blogging&quot;,&quot;content&quot;:&quot;&#92;nEvery time I get the feeling like I should blog something, I usually realize that it would do just as well to shout into [Mastodon](https://joinmastodon.org/) ([my masto instance](https://layer8.space)). Like that sentence for example. Not so much that last one.&#92;n&#92;nKind of in the vein of the [[blog/listening-to-music-while-doing-things|previous post]], I feel like I want to maybe do some kind of blogging exercise where every time I stop typing, I take inspiration from whatever the current song lyric is to write the next line. (That last sentence could have been a self contained masto post).&#92;n&#92;n*I think I&#39;m getting carried away feeling sorry for myself*. All of my blog posts seem to have this morbid kind of self-deprecation to them. And they&#39;re all. about. blogging. Every one of them. Like it makes me curious, what would a painting about painting look like? Is that a self-portrait? I know there are definitely plenty of songs that are about songs or about writing songs.&#92;n&#92;n*My head&#39;s a balloon, inflating with the altitude*. Is that how it works? Now that I think about it, it makes perfect sense. As the balloon rises, the air pressure drops, so it would inflate more. Interesting, when you think about song lyrics that you&#39;ve heard dozens of times but haven&#39;t given enough thought to.&#92;n&#92;nI know people have done this before with random books. Pick a random book off the shelf, flip to a random page, and use the first sentence you see as the first line of your composition, as a writing prompt. I&#39;ve heard of that exercise.&#92;n&#92;nI actually think I&#39;m a pretty good writer and that most of my writing skill goes to waste a good deal of the time. Like today at work I wrote a design doc, and I thought I wrote it pretty eloquently. But it was a fucking design doc. Like who cares? It&#39;s just technical documentation that will be out of date and forgotten for far more total time than it&#39;s recent and useful.&#92;n&#92;n*The stale taste of recycled air* has got me into a frenzy of superstition and longing. Yikes, tried to mash that one up a bit and it didn&#39;t come out quite as I&#39;d expect.&#92;n&#92;nAlso if you think this post is leading somewhere, ha! Or maybe that&#39;s as good a time as any to simply end it.&#92;n&#92;nOkay wait this one: *I was waiting for a cross town train in the London Underground when it struck me*...&#92;n&#92;n...that I&#39;ve been waiting blah blah blah. But is it coincidence that the first line makes it sounds like the guy got hit by a train? Is that just awkward writing, or a cleverly buried easter egg? Please please let me remember to ask Ben Gibbard that if I ever meet him. Or actually, if anyone reading this knows how to get in touch with him, could you ask him for me and get back to me?&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;mastodon-is-not-twitter&quot;,&quot;anchor_text&quot;:&quot;Mastodon&quot;,&quot;context&quot;:&quot;it would do just as well to shout into [Mastodon]&quot;,&quot;rationale&quot;:&quot;The node discusses posting to Mastodon, which is the exact subject of this node.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;more-about-blogging&quot;,&quot;rationale&quot;:&quot;This node muses on the desire to blog and the meta nature of blogging, which more-about-blogging explores directly.&quot;},{&quot;slug&quot;:&quot;blog-cycle&quot;,&quot;rationale&quot;:&quot;The recurring self-referential &#39;all my posts are about blogging&#39; theme connects to reflections in the blog cycle node.&quot;},{&quot;slug&quot;:&quot;blog&quot;,&quot;rationale&quot;:&quot;The observation that all his blog posts share a morbid self-deprecation ties to his broader reflections on his blog in this node.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:947,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:502,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:233},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;blog/causes-of-giving-to-causes&quot;,&quot;fileSlug&quot;:&quot;causes-of-giving-to-causes&quot;,&quot;title&quot;:&quot;Causes of Giving to Causes&quot;,&quot;content&quot;:&quot;&#92;nOn the topic of philanthropy, there are a few approaches that I see taken by those around me. One is to simply give to whatever cause makes you feel good. Sometimes it&#39;s just a matter of some cause that strikes a chord, and just like that you open your wallet. Other times, people try to give to causes that benefit those in the most extreme life circumstances. They donate in order to provide clean water to people in remote villages, or to provide food and medicine to those affected by the horrors of war.&#92;n&#92;nSometimes though, I find that I like to give to causes that simply provide an interesting or unique presence in the world. This is why I give to [Wikipedia](https://www.wikipedia.org/), or [soma fm](https://somafm.com/), or the [Internet Archive](https://archive.org/), or even [govtrack](https://www.govtrack.us/). I might not use these services very often (they&#39;re listed in roughly decreasing order of my activity), but I&#39;m glad they exist and I want them to be around for others in the future. I like the _idea_ of these causes, even if they&#39;re not the most &#92;&quot;boots on the ground&#92;&quot; organizations providing the absolute most good to the most people.&#92;n&#92;nI don&#39;t really have much to comment on beyond that, and providing a list of some of the causes that I find worthwhile.&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;wp-1.0&quot;,&quot;rationale&quot;:&quot;This node mentions supporting Wikipedia, and the WP 1.0 Project is the author&#39;s own volunteer contribution to Wikipedia.&quot;},{&quot;slug&quot;:&quot;Kiwix&quot;,&quot;rationale&quot;:&quot;Kiwix is another mission-driven organization (offline Wikipedia) the author volunteers with, elaborating on his support for such &#39;interesting presence in the world&#39; causes.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:461,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:409,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:250},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;blog/considering-moving-blogs&quot;,&quot;fileSlug&quot;:&quot;considering-moving-blogs&quot;,&quot;title&quot;:&quot;Considering moving blogs&quot;,&quot;content&quot;:&quot;&#92;nWhat&#39;s the best thing to do once you&#39;ve started to blog and written a few posts? Change platforms, of course! It seems like every blogger is always looking for a new platform, with the hope that it will somehow make them a better, more prolific writer. No doubt it rarely turns out that way.&#92;n&#92;nBut here I am, in the same boat, trying to evaluate new blogging platforms and plan a migration strategy for them.&#92;n&#92;nAs a background, back when I was using Soundcloud extensively I &#92;&quot;realized&#92;&quot; that Medium does the same for blog posts that Soundcloud does for songs: it provides a centralized repository across multiple different authors. This potentially allows for &#92;&quot;cross-pollination&#92;&quot; as readers of a certain blogger find related articles from, gee golly, maybe me!&#92;n&#92;nOf course, this never happened on Soundcloud, in the 8+ years I&#39;ve been on it. And it hasn&#39;t happened on Medium either. My most popular medium post is [this tutorial](https://blog.travisbriggs.com/setting-up-your-own-mastodon-with-digital-ocean-and-docker-29e633d354f2) on how to set up your own [Mastodon](https://joinmastodon.org/) instance. It still gets 20-40 views a week, 18 months later. I&#39;m proud I produced a piece of writing that has helped many people. But honestly, the views on that article haven&#39;t even led to views on my own other articles. Never mind &#92;&quot;cross-pollination&#92;&quot;.&#92;n&#92;nThat, and considering the recent article on [&#92;&quot;Medium is a poor choice for blogging&#92;&quot;](https://medium.com/@nikitonsky/medium-is-a-poor-choice-for-blogging-bb0048d19133) which was posted to [Hacker News](https://news.ycombinator.com/), makes me rethink my platform of choice.&#92;n&#92;nNow this is a bit disingenuous, because I&#39;ve already been using [write.as](https://write.as) for the last few &#92;&quot;blog&#92;&quot; articles I&#39;ve posted (I use that term loosely for the material I&#39;ve put on write.as).&#92;n&#92;nWrite.as provides a distraction free editor, markdown based formatting, a &#92;&quot;blog&#92;&quot; collection for my posts, individual post reading pages also without distraction, and is completely free. That&#39;s a great number of features, and they hit on several that are important to me.&#92;n&#92;nAnother alternative would be to create a static [Jekyll](https://jekyllrb.com/) site. But do I really want to deal with [Liquid templates](https://shopify.github.io/liquid/)? I feel like I&#39;m fed up with Jekyll, even though I&#39;ve used it on many projects ([gallery.travisbriggs.com](https://gallery.travisbriggs.com/) comes to mind).&#92;n&#92;nSo do I use another static site generator? Then I have to go through the trouble of figuring out how to use the generators templating engine, how to set up an index of posts, how to display individual posts, how to create snippets of posts, how to format dates on posts, etc, etc. It&#39;s a lot of stuff, and in the end, I end up with a site that is identical to if I used Jekyll.&#92;n&#92;nAn additional issue with Jekyll or static site generators is that they generally don&#39;t come with any styling. Although I&#39;m experienced at implementing pixel perfect websites given designs and mocks, I actually don&#39;t have much experience creating such mocks to begin with. So any site I create with a static generator is likely to look awful. But then again, if you take write.as as a baseline, I can&#39;t really do worse than that. Though I would want to make sure my site is responsive for mobile.&#92;n&#92;nThis entire discussion is also predicated on the idea that I actually should continue blogging in the first place. Continue is kind of a strong word there, of course, since I&#39;ve generally been producing one article every couple of months. I wrote in September of 2017 that [&#92;&quot;My Blog is a Liability&#92;&quot;](https://blog.travisbriggs.com/my-blog-is-a-liability-de42cae3f6ce). The TLDR of that post is that no one reads this stuff anyways, but if they wanted to find some damning piece of information about me, there would be plenty of potential things to find.&#92;n&#92;nSo my options, as I see them are:&#92;n&#92;n0. Continue writing on Medium (probably not going to happen).&#92;n1. Continue writing on write.as&#92;n2. Start a brand new blog with static site generator&#92;n3. Quit blogging altogether&#92;n&#92;nOf these options, 2 and 4 look the best to me.&#92;n&#92;n_Update (2018-11-13): I stated in this post that write.as is free, but apparently at some point I signed up for the $10/year plan. I can&#39;t remember why I did._&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;blog-cycle&quot;,&quot;rationale&quot;:&quot;Directly discusses the recurring urge to rebuild/change blogging platforms, extending this node&#39;s central theme.&quot;},{&quot;slug&quot;:&quot;more-about-blogging&quot;,&quot;rationale&quot;:&quot;Covers the author&#39;s ongoing desire to blog and experiments with platforms like Gemini, elaborating on the blogging question here.&quot;},{&quot;slug&quot;:&quot;blog&quot;,&quot;rationale&quot;:&quot;Contains the author&#39;s reflection that his blog is a &#39;liability&#39; — the very point referenced at the end of this node.&quot;},{&quot;slug&quot;:&quot;digital-garden-itself&quot;,&quot;rationale&quot;:&quot;Represents the eventual platform choice/direction that resolves the platform-hopping dilemma discussed here.&quot;},{&quot;slug&quot;:&quot;blogging-but-this-time-with-blogging&quot;,&quot;rationale&quot;:&quot;Explores the author&#39;s habit of writing meta posts about blogging and alternatives like Mastodon, closely related to this node&#39;s musings.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1459,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:698,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:389},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;blog/font-of-creativity&quot;,&quot;fileSlug&quot;:&quot;font-of-creativity&quot;,&quot;title&quot;:&quot;Font of creativity&quot;,&quot;content&quot;:&quot;&#92;nI once read that creative people don&#39;t create for any other purpose than the fact that there are ideas bursting out of them, viciously, and if they don&#39;t put pen to paper or hand to instrument the ideas will cause them to explode.&#92;n&#92;nAnother variation of this is that this is what &#92;&quot;truly&#92;&quot; or &#92;&quot;really&#92;&quot; creative people do. Which makes it even more insulting if that&#39;s not the way this particular amateur feels about his creative pursuits.&#92;n&#92;nBut actually, I kind of feel that way about writing. I don&#39;t have anything in particular to write about (wait, wait don&#39;t go....) but I feel like I need to be smacking those keyboard keys and giving it a go anyways. I actually remember being in a bunch of online [MUDs](https://en.wikipedia.org/wiki/MUD) when I was a preteen and teen, and writing elaborate descriptions of my character and the world around him, just because I could. Those descriptions were most likely excessively filled with the most absurdly gratuitous adjectives and adverbs. I recall that as well. Still, it was a magical world that I could enter into and explore and create.&#92;n&#92;nCurrently, I&#39;m the [DM](https://en.wikipedia.org/wiki/Dungeon_Master) of a [D&amp;D 5th ed](https://en.wikipedia.org/wiki/Editions_of_Dungeons_%26_Dragons#Dungeons_&amp;_Dragons_5th_edition) campaign with players I&#39;ve been playing with for almost three years now. It&#39;s fun, and I do have to stay on my toes and think up all kinds of essential details for every situation. I have to not only create the entire world, nay universe, that the characters inhabit, but the exquisite details of every room they enter and creature or person they encounter. I&#39;d love to do something similar online, with some kind of collaborative fiction framework or something. If anyone knows of such a thing, please contact me at [travis@travisbriggs.com](mailto:travis@travisbriggs.com).&#92;n&#92;nFor a while, I was the instigator of an online game of [Nomic](https://en.wikipedia.org/wiki/Nomic) that was going pretty well. You can find the [archives here on Github](https://github.com/audiodude/tiny-nomic). It kind of fell apart as players lost interest and had other commitments. Which makes me even more in awe of [Agora](http://agoranomic.org), a nomic which has been in continual operation via mailing lists since 1993.&#92;n&#92;nMaybe I do have an unbounded font of creativity inside me. Maybe it&#39;s just a matter of opening the tap.&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;empty-mind&quot;,&quot;rationale&quot;:&quot;Empty Mind explores the opposite feeling—a creative mind that feels barren—directly complementing this node&#39;s musing about an unbounded font of creativity.&quot;},{&quot;slug&quot;:&quot;intrisic motivation&quot;,&quot;rationale&quot;:&quot;This node&#39;s question of why creative people create maps onto the intrinsic vs. extrinsic motivation discussion.&quot;},{&quot;slug&quot;:&quot;side-quests-of-life&quot;,&quot;rationale&quot;:&quot;That node discusses getting addicted to writing and creative side pursuits, echoing the &#39;need to smack keyboard keys&#39; impulse here.&quot;},{&quot;slug&quot;:&quot;something-terrible&quot;,&quot;rationale&quot;:&quot;The Make Something Terrible Challenge is about giving yourself permission to create, deepening this node&#39;s theme of just doing it anyway.&quot;},{&quot;slug&quot;:&quot;read-before-you-write&quot;,&quot;rationale&quot;:&quot;Both nodes reflect on the writing impulse and what it means to be a writer.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:858,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:603,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:290},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;blog/getting-nothing-done&quot;,&quot;fileSlug&quot;:&quot;getting-nothing-done&quot;,&quot;title&quot;:&quot;Getting Nothing Done&quot;,&quot;content&quot;:&quot;&#92;nThere have been some posts on [Hacker News](https://news.ycombinator.com/) lately about various systems for GTD (getting things done), both endorsing and adjacent to the official GTD method. There have been productivity apps, note taking and bookmarking browser extensions, and more. All of it promises a way forward for organizing all of the tasks in your life and making sure they get completed effectively and in a timely fashion.&#92;n&#92;nThis is not necessarily a post about why I think it&#39;s all bullshit, or why I&#39;m a serial procrastinator and none of this will ever work for me, or even why I might prefer whatever ad hoc method I have for getting things done over these meticulously manicured systems. It&#39;s not any of that. The point of this post is to admit something about why these systems kind of miss the point for me completely.&#92;n&#92;nI don&#39;t have anything to get done.&#92;n&#92;nI mean, I have a full time job, and through various methods that I&#39;ve learned over the years, including keeping a tidy inbox, I manage to get most things done most of the time, for things at work.&#92;n&#92;nBut otherwise, I can&#39;t help but wonder what everyone is filling up these todo list apps with. Because I don&#39;t have a list of tasks that demand my attention in my free time. Certainly none with any specific deadlines. Sure, I&#39;m working on an [open source project for Wikipedia](https://github.com/openzim/wp1). I could always be [writing music](https://songs.travisbriggs.com). I could update my list of the [[best albums in the universe]] which I did recently convert to be served concurrently as a [Gemini site](https://gemini.circumlunar.space/).&#92;n&#92;nSo yeah, I have the odd side project here and there that I could be working on. But none of it has any urgency or deadlines, so why bother organizing it into GTD task boards?&#92;n&#92;nThinking cynically, I can&#39;t help but imagine that all of these todo apps are filled with people&#39;s aspirational goals and dreams that quite frankly will never happen. Maybe they&#39;ve taken the first step by writing down that they want to write a short story, or start a blog, or start selling things on eBay, or whatever. But is it going to happen? All the same mechanisms are at work that keep you from doing those things whether they&#39;re written down in a trendy app or not. Lack of motivation, enthusiasm, know-how, mentorship, etc.&#92;n&#92;nI guess I just try not to buy into the Protestant work ethic thing, that hard work and &#92;&quot;accomplishments&#92;&quot; define our existence. And if my goal is to play some video games or even sit quietly on the couch and do nothing, do I really need a GTD app to write that down in?&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;wp-1.0&quot;,&quot;anchor_text&quot;:&quot;open source project for Wikipedia&quot;,&quot;context&quot;:&quot;I&#39;m working on an open source project for Wikipedia&quot;,&quot;rationale&quot;:&quot;This directly references the WP 1.0 project which has its own node.&quot;},{&quot;slug&quot;:&quot;gemini&quot;,&quot;anchor_text&quot;:&quot;Gemini site&quot;,&quot;context&quot;:&quot;served concurrently as a Gemini site&quot;,&quot;rationale&quot;:&quot;Gemini has a dedicated node explaining the protocol.&quot;},{&quot;slug&quot;:&quot;intrisic motivation&quot;,&quot;anchor_text&quot;:&quot;Lack of motivation&quot;,&quot;context&quot;:&quot;the same mechanisms are at work... Lack of motivation, enthusiasm, know-how&quot;,&quot;rationale&quot;:&quot;The node on intrinsic motivation directly explores this theme of what drives us to act.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;the-chain&quot;,&quot;rationale&quot;:&quot;Discusses the Seinfeld habit-building strategy as another productivity system that could elaborate on GTD-style approaches.&quot;},{&quot;slug&quot;:&quot;giving-up-on-resolutions&quot;,&quot;rationale&quot;:&quot;Shares the theme of rejecting aspirational goal systems and the futility of forced self-improvement.&quot;},{&quot;slug&quot;:&quot;philosophy&quot;,&quot;rationale&quot;:&quot;The node&#39;s rejection of the Protestant work ethic and free will connects to the author&#39;s existentialist/determinist views.&quot;},{&quot;slug&quot;:&quot;pandemic-weary&quot;,&quot;rationale&quot;:&quot;Explores the feeling of having nothing to do and lacking motivation for side projects.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:865,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:779,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:313},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;blog/giving-up-on-resolutions&quot;,&quot;fileSlug&quot;:&quot;giving-up-on-resolutions&quot;,&quot;title&quot;:&quot;Giving Up On Resolutions&quot;,&quot;content&quot;:&quot;&#92;nAs I&#39;ve [[blog/a-story-of-failure|written]] [before](https://blog.travisbriggs.com/writing-a-song-a-day-in-2018-d4f2be32c40f), I&#39;m a sucker for New Year&#39;s Resolutions. And yet as the first link from this time last year states, I&#39;ve also kind of given up on them. They&#39;re simply ineffective at creating any kind of real or lasting change. I&#39;ve come around to the &#92;&quot;today is New Year&#39;s Day, it is a Wednesday&#92;&quot; kind of thinking.&#92;n&#92;nIs it a loss of innocence, a renunciation of magic, with which I give up New Year&#39;s Resolutions? I think a belief in the special, the magical, is very healthy and energizes me more than anything else. For me, however, at this time in my life, resolutions are just something to feel bad about in March.&#92;n&#92;nI&#39;m not interested in any kind of self-help, getting stuff done, motivational voodoo to replace resolutions with, either. I think I&#39;m more attracted to the mode of thinking, currently, that things are basically fine and I should just let what happens happen. Not that I&#39;m going to stop trying new things, like maybe a D&amp;D group at work, or tutoring a new friend in Javascript in the new year. But those are just things I kind of want to do anyway.&#92;n&#92;nNo, I&#39;m not a bastion of satisfaction and joy. I don&#39;t spend every minute wrapped up in feelings of usefulness and contentment. Many of my minutes are still filled with malcontent, boredom and apathy. But maybe that&#39;s okay, that&#39;s just part of living.&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;new-year&quot;,&quot;anchor_text&quot;:&quot;today is New Year&#39;s Day&quot;,&quot;context&quot;:&quot;I&#39;ve come around to the &#92;&quot;today is New Year&#39;s Day, it is a Wednesday&#92;&quot; kind of thinking&quot;,&quot;rationale&quot;:&quot;This node directly develops the &#39;every day is New Year&#39;s Day&#39; philosophy referenced here.&quot;},{&quot;slug&quot;:&quot;getting-nothing-done&quot;,&quot;anchor_text&quot;:&quot;getting stuff done&quot;,&quot;context&quot;:&quot;I&#39;m not interested in any kind of self-help, getting stuff done, motivational voodoo&quot;,&quot;rationale&quot;:&quot;That node addresses productivity systems and getting things done, matching this dismissal.&quot;},{&quot;slug&quot;:&quot;free will&quot;,&quot;anchor_text&quot;:&quot;let what happens happen&quot;,&quot;context&quot;:&quot;things are basically fine and I should just let what happens happen&quot;,&quot;rationale&quot;:&quot;The &#39;let what happens happen&#39; attitude ties into the author&#39;s determinism/free will node.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;another-year-without-resolutions&quot;,&quot;rationale&quot;:&quot;Directly follows up on this decision to give up on New Year&#39;s resolutions a year later.&quot;},{&quot;slug&quot;:&quot;not the circumstances&quot;,&quot;rationale&quot;:&quot;Elaborates the theme of accepting circumstances and choosing your response rather than controlling outcomes.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:557,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:568,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:181},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;blog/halloween-sadness&quot;,&quot;fileSlug&quot;:&quot;halloween-sadness&quot;,&quot;title&quot;:&quot;Halloween Sadness&quot;,&quot;content&quot;:&quot;&#92;nHalloween is a time for the spooky, the scary, sometimes the terrifying and maybe a bit of the downright goofy. Is there room in there for a bit of Halloween sadness?&#92;n&#92;nTwo years ago one of my friends, Will, moved away from the Bay Area to pursue an MBA from Chicago Booth. We were all very proud of Will and wished him the best of luck. Two years later, he&#39;s graduated! But now he&#39;s moved to Berlin.&#92;n&#92;nWill used to throw pretty extravagant, costume-required, Halloween parties. He and his friends were very into cosplay in general and would have costume parties throughout the year, for birthdays and other occasions. But Halloween, now there was a chance to get schmucks like me and a few of his other friends to be forced to wear a costume. Legend has it that if you showed up to one of these parties without a costume, you would be assigned a &#92;&quot;loaner&#92;&quot; from the rejected costume pile. And no one wanted that.&#92;n&#92;nIs there room in Halloween for sadness? For the past two years, some of Will&#39;s friends and I haven&#39;t celebrated Halloween at all. We had no party to go to, no celebration. We had no reason to eek out the smallest semblance of a costume and hope it passed muster. Can you be nostalgic for something that happened 2 years ago?&#92;n&#92;nIt&#39;s just one more thing that reminds me that today, right now, the time we are currently living, will one day be looked back upon as the good old days. So put on your best costume, even if it&#39;s just &#92;&quot;The Color Red&#92;&quot;.&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;thoughts-of-home&quot;,&quot;rationale&quot;:&quot;That node explores nostalgia and the idea that &#39;you can never go home again,&#39; which deepens this node&#39;s reflection on longing for the good old days.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:527,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:273,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:188},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;blog/latest-and-not-so-greatest&quot;,&quot;fileSlug&quot;:&quot;latest-and-not-so-greatest&quot;,&quot;title&quot;:&quot;Latest and Not-so-greatest&quot;,&quot;content&quot;:&quot;&#92;nToday I sent a cold email to someone who has 90k subscribers on YouTube, asking if they could maybe give me music production lessons. On the one hand, I don&#39;t expect a response, even at all. On the other hand, this person did put their (an?) email address in the description of a YouTube video so maybe they&#39;re open to being contacted. Maybe?&#92;n&#92;nAnyways, at the bottom of the email, I linked my demo song website, [songs.travisbriggs.com](https://songs.travisbriggs.com). I then of course visited this website and tried to imagine what the person would see or click on when they got there. One thing that popped into my head is that they might literally click on the newest song and listen for 5 seconds, thinking &#92;&quot;This is probably Travis&#39;s latest and greatest song&#92;&quot;.&#92;n&#92;nThat&#39;s when I started feeling mortified.&#92;n&#92;nRight now the newest song on my demo website is a sloppy punk track called &#92;&quot;Goodbyes&#92;&quot; ([link](https://songs.travisbriggs.com/goodbyes/)). If you listen to 5 seconds of it, you probably think, &#92;&quot;Wow this guy is great at making awful noise, but I wouldn&#39;t call it music!&#92;&quot;. It&#39;s certainly my latest track, but it&#39;s far from being my greatest.&#92;n&#92;nNow there&#39;s a whole discussion around the difference between the demos on this site and the songs which I had made into my [Danger Third Rail EP](https://dangerthirdrail.com). Not only did I select my best material for the EP, but I meticulously [[recording-setup|re-recorded]] the parts. They also got professionally mixed and mastered. So I think those tracks in particular are going to sound the best out of the wide range of material I&#39;ve published, and be the greatest. They&#39;re a far cry from being the latest though.&#92;n&#92;nSo at this point I&#39;m thinking about [[highs-and-lows-musician|progression over time]]. Am I getting better at making music? Not even a specific genre of music, not &#92;&quot;Am I getting better at writing music?&#92;&quot; or &#92;&quot;Am I getting better at performing/mixing/mastering/whatever music?&#92;&quot;. Basically, can you look at the musical artifacts I&#39;ve created, the songs I&#39;ve created, over time and see that yes, the quality is increasing?&#92;n&#92;nI think that I can&#39;t honestly answer that question. Not because I&#39;m afraid the answer might be no -- though I am afraid of that! -- but because the demo songs website is not really set up to produce that kind of an answer.&#92;n&#92;nThe fact is, my methodology and my ethos of creating music has shifted and evolved over the years, as you might well expect it to. I&#39;ve gone from releasing songs once in a blue moon, to frantically releasing them once a week or once a day, back to producing songs maybe once a month. I&#39;ve gone from not finishing projects and not saving the unfinished parts, to saving all the unfinished parts, to trying to finish things in one session even if it means sacrificing quality.&#92;n&#92;nReally, I&#39;ve decided that I believe in the 100:10:1 rule, where out of 100 songs, 10 will be good and 1 will be great, so it doesn&#39;t matter if the initial demo of a song sounds amazing or not. If there&#39;s a good idea there, I&#39;ll revisit it, re-record some of the parts, tweak the arrangement, send it to my drummer in the UK, and have it professionally mixed and mastered. If there&#39;s only a so-so idea there, well, at least I recorded a demo and a few people listened to it.&#92;n&#92;nHonestly, I fully believe that I will need to write close to 500 songs before I can come up with another 5 song EP. I&#39;m not sure I even have it in me to approach such a task. If you&#39;re listening to [songs.travisbriggs.com](https://songs.travisbriggs.com), you&#39;re simply along for the process.&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;danger-third-rail&quot;,&quot;anchor_text&quot;:&quot;Danger Third Rail EP&quot;,&quot;context&quot;:&quot;the songs which I had made into my [Danger Third Rail EP](https://dangerthirdrail.com)&quot;,&quot;rationale&quot;:&quot;Directly references the band project which has its own dedicated node.&quot;},{&quot;slug&quot;:&quot;YouTube&quot;,&quot;anchor_text&quot;:&quot;YouTube&quot;,&quot;context&quot;:&quot;a cold email to someone who has 90k subscribers on YouTube, asking if they could&quot;,&quot;rationale&quot;:&quot;YouTube is the subject of a dedicated node in the garden.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;not-quite-writers-block&quot;,&quot;rationale&quot;:&quot;That node directly picks up on the &#39;need to write hundreds of songs&#39; idea and cites this post.&quot;},{&quot;slug&quot;:&quot;nike-the-shit-out-of-it&quot;,&quot;rationale&quot;:&quot;Discusses the same struggle of not publishing songs and the sporadic release cadence mentioned here.&quot;},{&quot;slug&quot;:&quot;motivation-music&quot;,&quot;rationale&quot;:&quot;Elaborates on the quality-vs-inspiration framework relevant to judging whether one&#39;s music improves over time.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1225,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:635,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:278},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;blog/listening-to-music-while-doing-things&quot;,&quot;fileSlug&quot;:&quot;listening-to-music-while-doing-things&quot;,&quot;title&quot;:&quot;Listening to music while doing things&quot;,&quot;content&quot;:&quot;&#92;nHow about this for an app idea: you listen to music and just type the lyrics into a chat room in real time. Or maybe you type the lyrics to the song and it stops when it gets to the words you haven&#39;t typed yet. Like some kind of inverted karaoke.&#92;n&#92;nI love listening to music but always feel compelled to be doing something while I do it, like playing a game or especially coding. I listen to music all day long while coding at my job. It&#39;s extremely satisfying, especially when you get into those zone/flow moments.&#92;n&#92;nI am thinking it&#39;s a sign that the freckles in our eyes are mirror images and when we kiss they&#39;re perfectly aligned.&#92;n&#92;nWow I don&#39;t think I can even keep up with the lyrics on songs that are pretty fast like this one. It&#39;s fun to just type words though while music I like is playing. It&#39;s kind of evocative of the whole coding-in-the-zone experience and probably releases some of the same endorphins.&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;untitled-2&quot;,&quot;rationale&quot;:&quot;That writing explores the tension of composing text while listening to music, directly extending this node&#39;s idea of typing along to lyrics.&quot;},{&quot;slug&quot;:&quot;blogging-but-this-time-with-blogging&quot;,&quot;rationale&quot;:&quot;It explicitly references this node and proposes a similar exercise of writing lines inspired by whatever song lyric is currently playing.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:350,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:351,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:207},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;blog/making-a-computer-game&quot;,&quot;fileSlug&quot;:&quot;making-a-computer-game&quot;,&quot;title&quot;:&quot;Making a computer game&quot;,&quot;content&quot;:&quot;&#92;nI&#39;ve always wanted to program a computer game. I can program pretty well, so it can&#39;t be all that hard right? I know that many people pursue gamedev the way I pursue music production: in fits and starts, as a hobby, never particularly successfully. Since I already have a pursuit like that, why would I want to add gamedev to the list? Am I a masochist?&#92;n&#92;nI&#39;ve actually used pygame successfully on a few occasions. One of them was just learning game dev, I made a game where you caught a dot with a paddle. I called it Butterfly Catcher and it&#39;s [still available on Github](https://github.com/audiodude/Butterfly-Catcher). The other &#92;&quot;game&#92;&quot; I made with pygame was actually a game loop for a full sized skee-ball like drinking game called Whiskeyball.&#92;n&#92;nFor a long time, I had the idea of an &#92;&quot;API-only&#92;&quot; game. I registered the domain scriptslash.com and had the bare bones of registration and a bit of a tutorial up there. The idea is that the game engine is just implemented as a bunch of API endpoints, and you make HTTP requests to interact with it. So you end up having a script that does the hacking and slashing.&#92;n&#92;nIn fact, now that I think of it, this idea is over 10 years old! The main impetus for it was the thought that if you&#39;re writing scripts that interact with REST APIs to play a game, it will look to anyone who walks behind your desk at your programming job like you are working (and not playing a game).&#92;n&#92;nAs part of this, I actually implemented the so called &#92;&quot;2 legged&#92;&quot; OAuth scenario, which is not widely used, but basically lets you sign an individual API request with your API key, so that you don&#39;t have to have any login mechanism, or cookies or persistent state. I thought it was pretty clever. I even released a Ruby &#92;&quot;API client&#92;&quot; which just basically imported the right libraries and signed the request, so you could focus on what parameters you wanted to send.&#92;n&#92;nThe problem with Scriptslash was that there was never really a &#92;&quot;game&#92;&quot; there. I had all the ideas for the technical infrastructure, but no ideas for what the gameplay would be like. I even re-wrote the engine, which was originally in Node.js, in Python Flask, porting my two-legged OAuth implementation. Does this sound familiar? How many people have you heard of that develop intricate game engines but there&#39;s never really a game there?&#92;n&#92;nLater, I had an idea for a multiplayer game I was calling &#92;&quot;Space Base Race Game&#92;&quot;. You can read [the document I wrote](https://docs.google.com/document/d/1W5CmYhIo87c7GrLOa_6osw8g9Dze5ZZnvHfdCNP8kZo/edit?usp=sharing) about it if you&#39;re interested. It was kind of hopelessly complex for what it was trying to do, and I never really had a firm grasp on what the &#92;&quot;graphics&#92;&quot; if any would look like. The basic idea behind the game is the [multi-armed bandit](https://en.wikipedia.org/wiki/Multi-armed_bandit). Given a row of slot machines, do you pull the one that seems to pay a dollar 75% of the time, or do you play a new one in search of a larger reward? I think this exploration of reward spaces can lead to fun gameplay, because the user has to choose between exploiting a known resource or exploring.&#92;n&#92;nOf course, why not pair Space Base Race Game with Scriptslash and have it be the game for that engine?&#92;n&#92;nI&#39;m not sure why I never did that, to be honest. Part of me had soured on the whole Scriptslash idea. I realized that for any game, a player is going to be a real live human being somewhere, and that they&#39;re going to want to see the output of the game. Yes they might at first be satisfied to read the output in the logs of their &#92;&quot;script&#92;&quot;. But eventually they&#39;re going to want to see output in real time, and provide input in real time. This is starting to sound like a real Game Client that needs to be developed, possibly with graphics. And I didn&#39;t want to do that.&#92;n&#92;nMost recently, I had the idea for &#92;&quot;[Factorio](https://factorio.com/) but as a [MUD](https://en.wikipedia.org/wiki/MUD)&#92;&quot;, which sounds as brilliant as it sounds horrifying to me (and of course is in the grand tradition of &#92;&quot;Twitter for dogs&#92;&quot; type startup ideas). I&#39;ve got 200 hours plus played in Factorio, which is by far the most time I&#39;ve put into a game in probably the past decade.&#92;n&#92;nThe idea hasn&#39;t really gone anywhere, though. I downloaded the [Evennia MUD engine](https://github.com/evennia/evennia) which is both written in Python and claims to be widely extensible. But I already sort of gave up, after getting the MUD running, because I realized how much work it would be to rip out all of the existing MUD systems (ie &#92;&quot;examine cup&#92;&quot;) and replace them with Factorio like things. Or maybe I just didn&#39;t have the idea fully formed in my head enough. Maybe I should write another Google doc.&#92;n&#92;nAt some point in this journey I picked up the excellent [Mazes for Programmers](https://pragprog.com/titles/jbmaze/) which was a lot of fun to work through. This originally gave me ideas for Scriptslash, while that was still a thing. The examples in that book have stayed with me, and they&#39;re part of the lingering &#92;&quot;background radiation&#92;&quot; around actually making a video game. But the question is, will I ever do it? And if not, the larger question is, what&#39;s stopping me?&#92;n&#92;nI&#39;ve also played more than my fair share of &#92;&quot;clicker&#92;&quot; and &#92;&quot;idle&#92;&quot; games, more than anyone should probably ever play. So I&#39;ve got ideas down that road too. I had an idea for a game called &#92;&quot;Super Progress Bar Pro&#92;&quot;, which is basically exactly what it says on the tin.&#92;n&#92;nSo my ideal game that I&#39;d like to make is Factorio, but a MUD, but a clicker, but API driven.&#92;n&#92;nMaybe I just need to answer some basic questions and go from there:&#92;n&#92;n- Single player or multiplayer?&#92;n- Graphics or text based?&#92;n- Story based or mechanics-driven?&#92;n- Clicker/idle mechanics or actual gameplay?&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;Python&quot;,&quot;anchor_text&quot;:&quot;Python Flask&quot;,&quot;context&quot;:&quot;re-wrote the engine, which was originally in Node.js, in Python Flask, porting my two-legged OAuth&quot;,&quot;rationale&quot;:&quot;The node references Python Flask, and there is a dedicated node about Python.&quot;},{&quot;slug&quot;:&quot;Ruby on Rails&quot;,&quot;anchor_text&quot;:&quot;Ruby&quot;,&quot;context&quot;:&quot;I even released a Ruby &#92;&quot;API client&#92;&quot; which just basically imported the right libraries&quot;,&quot;rationale&quot;:&quot;Mentions writing a Ruby client, and a Ruby node exists.&quot;},{&quot;slug&quot;:&quot;javascript-typescript&quot;,&quot;anchor_text&quot;:&quot;Node.js&quot;,&quot;context&quot;:&quot;the engine, which was originally in Node.js, in Python Flask&quot;,&quot;rationale&quot;:&quot;Node.js is the JavaScript backend, covered in the Javascript/Typescript node.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;q-poker-in-progress&quot;,&quot;rationale&quot;:&quot;Q Poker is another one of the author&#39;s game projects and directly references this making-a-computer-game node.&quot;},{&quot;slug&quot;:&quot;font-of-creativity&quot;,&quot;rationale&quot;:&quot;That node discusses the author&#39;s experience with MUDs, which this node repeatedly references as game inspiration.&quot;},{&quot;slug&quot;:&quot;Rainfall&quot;,&quot;rationale&quot;:&quot;Rainfall is another Python/Flask project by the author, elaborating on the same tech stack used for the game engine.&quot;},{&quot;slug&quot;:&quot;motivation-music&quot;,&quot;rationale&quot;:&quot;This node compares gamedev to the author&#39;s fits-and-starts music production hobby, which motivation-music elaborates on.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1939,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:810,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:315},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;blog/mastodon-is-not-twitter&quot;,&quot;fileSlug&quot;:&quot;mastodon-is-not-twitter&quot;,&quot;title&quot;:&quot;Mastodon is not Twitter&quot;,&quot;content&quot;:&quot;&#92;nMastodon is not Twitter. It doesn&#39;t seem like it will ever be, it&#39;s fundamentally different. Although the size of the user base of Mastodon instances has grown 3x as part of the greatest Twitter exodus to date, Mastodon will never be Twitter.&#92;n&#92;nA lot of people are joining Mastodon as a &#92;&quot;Twitter replacement&#92;&quot;. They&#39;ve (understandably) lost faith in the direction of the bird platform and are looking for an alternative. They&#39;re going to be disappointed, honestly. I feel like people in this category are trying to break their Heroin addiction by turning to Ibuprofen. It&#39;s not going to work. Mastodon is (intentionally) not designed for a frenetic, addicting, free-for-all injection of news, shitposts, memes, celebrity gossip, etc. It just isn&#39;t set up to work that way. Not that toots on those topics don&#39;t exist in the fediverse. But Mastodon doesn&#39;t intentionally push the most trending, most controversial, most nonsensical **bullshit** directly into your face and force you to interact with it.&#92;n&#92;nFor people that actual have legitimate friends and relationships on Twitter, that _is_ something that can be replicated on Mastodon. If you tweet something, and a known group of friends and acquaintances generally interact with it, then welcome to the Mastodon experience really. But if you just fire into the void on Twitter, and sometimes one or two random people who you barely remember having followed you respond with something vapid, forget about it.&#92;n&#92;nTwitter is something that the people at the top create. The major celebrity accounts, the news organizations, the politicians: Twitter is theirs. In most cases, Twitter is a consumption medium, where you&#39;re technically allowed to comment. Mastodon is of course the opposite. It&#39;s bottom up. Toots are written and spread amongst close-knit communities and friend groups.&#92;n&#92;nThis takes us of course to the &#92;&quot;viral tweet&#92;&quot;. Sometimes, normal people like you win the Twitter lottery and their tweets get tens if not hundreds of thousands of likes. This perpetrates the myth that anyone can &#92;&quot;go viral&#92;&quot; if they just keep tweeting. And in the replies to those tweets you can find a random sampling of other normal people. This is, actually, kind of nice. You get a diverse set of viewpoints and opinions on some common issue or viewpoint.&#92;n&#92;nViral tweets don&#39;t happen on Mastodon, at least not in the same way. You will never go viral on Mastodon. But the truth of it is, you were never going to go viral on Twitter either. It&#39;s all a mirage, a sleight of hand perpetrated by the birdsite to keep us coming back for more.&#92;n&#92;nHave you seen what happens to people when they go viral, anyway? Days of their phone and computer notifications blowing up, all possible real communication buried in the deluge. If your viral post is political, you might even end up getting doxxed, harassed at work, etc.&#92;n&#92;nI know I&#39;m not the first person to say that Mastodon will never be Twitter. Luckily, I believe that it wouldn&#39;t be Twitter even if all the Twitter exodus folks tried with all their might to make it so. For people who are disappointed in this conclusion, I have to honestly ask: do you really need info-garbage shoved in your face 24/7? Maybe you don&#39;t need any replacement for Twitter. Maybe you can quit cold turkey.&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;activity-pub&quot;,&quot;anchor_text&quot;:&quot;fediverse&quot;,&quot;context&quot;:&quot;Not that toots on those topics don&#39;t exist in the fediverse.&quot;,&quot;rationale&quot;:&quot;The fediverse is powered by ActivityPub, which this node explains in detail.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;dg-solo&quot;,&quot;rationale&quot;:&quot;Discusses Twitter&#39;s &#39;main character&#39; dynamic and Mastodon, elaborating on the desire for attention/going viral touched on here.&quot;},{&quot;slug&quot;:&quot;activity-pub&quot;,&quot;rationale&quot;:&quot;Explains the ActivityPub protocol that powers Mastodon, deepening the technical context of the fediverse mentioned here.&quot;},{&quot;slug&quot;:&quot;blogging-but-this-time-with-blogging&quot;,&quot;rationale&quot;:&quot;Reflects on shouting into Mastodon versus blogging, extending the theme of how Mastodon is used.&quot;},{&quot;slug&quot;:&quot;gemini&quot;,&quot;rationale&quot;:&quot;Discusses Mastodon and how much of it is self-referential, connecting to the platform commentary here.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1127,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:586,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:253},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;blog/more-about-blogging&quot;,&quot;fileSlug&quot;:&quot;more-about-blogging&quot;,&quot;title&quot;:&quot;More about blogging&quot;,&quot;content&quot;:&quot;&#92;nI never really blogged much when it was popular, in the 2000s. And I continue to not really blog much to this day, so not much has changed in that regard. But I&#39;ve always had this desire to blog. It&#39;s like my vague desire to use a [Zettelkasten](https://zettelkasten.de/posts/overview/), even though I don&#39;t have much of anything to take notes about.&#92;n&#92;nNowadays, I&#39;ve discovered the [[Gemini|Gemini protocol]] which claims to not be trying to replace Gopher or the Web, but seems to strike an interesting middle ground between them. It&#39;s kind of an improved Gopher with more modernized semantics.&#92;n&#92;nI actually have created one of the first 50 Gemini sites in existence, `gemini://gem.bestalbumsintheuniverse.com`. This is the Gemini version of my [[best albums in the universe]] project, the goal of which is [exactly what it says on the tin](https://tvtropes.org/pmwiki/pmwiki.php/Main/ExactlyWhatItSaysOnTheTin). I feel a bit of pride about this, that &#92;&quot;hipster&#92;&quot; feeling of I knew about it before it was cool. But there&#39;s also another feeling, that of getting to see what Gemini turns into eventually, to watch its evolution from near the beginning.&#92;n&#92;nAll this leads back to blogging because a lot of the people who run Gemini spaces like to write blogs. Or really they like to write phlogs, which are Gopher Logs (blog being a Web Log). And some of them write Gemini logs (gemlogs) as well. It&#39;s a whole small universe of people giving status updates and the like, and it&#39;s pretty interesting to just do a random walk across some of the pages and see what you find.&#92;n&#92;nI want to contribute to this, of course, but as I&#39;ve lamented in my previous blogs about blogging, I just don&#39;t have that much to talk about on a weekly basis without it getting very personal and mundane.&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;blogging-but-this-time-with-blogging&quot;,&quot;anchor_text&quot;:&quot;my previous blogs about blogging&quot;,&quot;context&quot;:&quot;as I&#39;ve lamented in my previous blogs about blogging, I just don&#39;t have that much to talk about&quot;,&quot;rationale&quot;:&quot;This node&#39;s meta-reflection on blogging directly parallels the referenced previous blog-about-blogging post.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;blog&quot;,&quot;rationale&quot;:&quot;Discusses the author&#39;s ambivalent relationship with maintaining a blog, elaborating on the desire-to-blog theme here.&quot;},{&quot;slug&quot;:&quot;considering-moving-blogs&quot;,&quot;rationale&quot;:&quot;Continues the recurring theme of the author&#39;s on-and-off relationship with blogging platforms.&quot;},{&quot;slug&quot;:&quot;gemdown&quot;,&quot;rationale&quot;:&quot;A Gemini-related project of the author&#39;s that could extend the Gemini/gemlog discussion in this node.&quot;},{&quot;slug&quot;:&quot;blog-cycle&quot;,&quot;rationale&quot;:&quot;Explores the author&#39;s meta-thoughts on the medium of blogging, deepening this node&#39;s blogging reflections.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:663,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:561,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:216},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;blog/music-projects-as-ephemera&quot;,&quot;fileSlug&quot;:&quot;music-projects-as-ephemera&quot;,&quot;title&quot;:&quot;Music Projects as Ephemera&quot;,&quot;content&quot;:&quot;&#92;nAt some point in the past year, I upgraded my version of [Reason](https://www.reasonstudios.com/shop/product/reason-11/) from version 10 to version 11.&#92;n&#92;nAt some point in the past two months, I tried to open an old music project that I had written two or more years ago.&#92;n&#92;n### It was a catastrophe.&#92;n&#92;nWithout getting too technical, I had structured _all_ of my projects, going back maybe 10 years, as an [Ableton Live](https://www.ableton.com/en/live/) main project (for recording audio and using audio plugins) that potentially depended on a Reason sub project for using drums and synthesizers from that program. Through a technology known as [ReWire](&lt;https://en.wikipedia.org/wiki/ReWire_(software_protocol)&gt;), the two programs stayed perfectly in sync and I could easily share audio and [MIDI](https://blog.landr.com/what-is-midi/) between them.&#92;n&#92;nThe key here is that Ableton Live was the &#92;&quot;host&#92;&quot;, with the main recording controls and tempo, and Reason was the &#92;&quot;guest&#92;&quot;, simply making its instruments and sounds available. For a decade, my default project in Ableton included a track that was used solely for getting sound back from Reason, armed and ready to go.&#92;n&#92;nIn version 11 of the Reason &#92;&quot;suite&#92;&quot;, they made a bold choice: offer Reason as a VST plugin. This was pretty revolutionary, because it allowed users to do exactly what I was doing, but without having to run the Reason application at all. And you could have an almost unlimited number of these virtual Reason &#92;&quot;racks&#92;&quot; in your Ableton project, each merrily doing its own thing.&#92;n&#92;nIt was also revolutionary because it killed ReWire.&#92;n&#92;nReWire as a protocol still exists, and there are probably examples of programs that use it that you can run today. But Reason doesn&#39;t use it. And because of that **none of my projects, spanning a 10 year period, can be &#92;&quot;run&#92;&quot; on the new version of Reason**.&#92;n&#92;nOh sure, Reason Studios (the new moniker for Propellerheads SE, who make the software) has done a meticulous job of ensuring backwards compatibility for their own .reason file format. You can open very, very old .reason files, maybe even from version 1, I don&#39;t know for sure.&#92;n&#92;nThe problem isn&#39;t that I can&#39;t open the Reason file.&#92;n&#92;nAnd Ableton, too, has made substantial investment in backwards compatibility. They warn you when you open an old file, that it might be converted, etc, but it&#39;s usually no problem.&#92;n&#92;nThe problem isn&#39;t that I can&#39;t open the Ableton file.&#92;n&#92;nThe problem is that they no longer communicate. The Reason file, with my drums and synthesizers. The Ableton file with my voice takes and guitar tracks. They just sit there, dumb, each ready to play half my song out of sync with each other. As my friend Sagar would say, &#92;&quot;Why don&#39;t you just hit play at the same time?&#92;&quot; Facepalm.&#92;n&#92;nReason Studios, for their part, doesn&#39;t offer downloads of old versions of their software. Maybe they would throw a DMG my way if I explained my issues, maybe not, I haven&#39;t tried contacting them.&#92;n&#92;nI wonder now, though, in the age of vibe coding, if there isn&#39;t some way I could automate a solution for the Reason drum beat issue and somehow render and transclude the beat with scripting/automation?&#92;n&#92;nAnd honestly, do I need the beats really? Most of them, especially for the rock-oriented songs, are literally the stock Dr Rex &#92;&quot;College 130&#92;&quot; beat. I can probably recreate or do without?&#92;n&#92;n---&#92;n&#92;nOkay, I&#39;ve got files on my computer, backed up to Dropbox, of songs I wrote and played around with 24 odd years ago, when I was in middle school. I know the programs that wrote these files don&#39;t exist anymore (they were on the pre-OS X, MacOS 8 operating system, not even MacOS 9!). I guess I keep them around for sentimental reasons.&#92;n&#92;nOf course, I also have .reason files from 18 odd years ago when I was in college and making music solely with Reason (a copy of which may or may not have -cough- &#92;&quot;fallen off a truck&#92;&quot;). I can still open those!&#92;n&#92;nI guess I didn&#39;t expect my music files to constitute such ephemera, based on the above. I guess I didn&#39;t expect to one day &#92;&quot;upgrade&#92;&quot; my rig and lose access to 10 years of music projects. Yes, as digital musicians we know that upgrades are risky. That&#39;s why I&#39;ve been on OS X 10.14 Mojave until only 2 months ago (oddly it was losing access to these projects that made me say &#92;&quot;eff it&#92;&quot; and upgrade my OS). Based on some of what I read, I might never upgrade to Big Sur or beyond (because many of my plugins are old and won&#39;t get updated to run on M1 hardware). It makes me wonder if I should just have a dedicated music making computer that&#39;s not even connected to the internet and never receives updates. But that&#39;s kind of a luxury I don&#39;t have. Okay, end rant.&#92;n&#92;nI think the point is that I _should_ have expected this to happen. Every piece of digital everything is ephemera. Just look at how quickly [link rot](https://www.newyorker.com/magazine/2015/01/26/cobweb) takes over the web (it&#39;s impressive that the linked New Yorker article from 2015 still exists, but is that even its original URL?). Ask anyone my age where their digital photos from college or before are, now that they&#39;ve lost that phone 10 years ago, or the hard drive on that laptop crashed. I get it.&#92;n&#92;nI don&#39;t feel the need to warn anyone that this might happen to them. The versions of the software are old enough now that if it was going to happen, it&#39;s likely already happened. I also don&#39;t mean to whine or complain publicly, though a bit of that seems to be helping. And I&#39;m not here to tell everyone to &#92;&quot;back up all your files in 5 different formats and 6 different timezones&#92;&quot; or whatever.&#92;n&#92;nFor myself, I&#39;m thinking of rendering everything as `.wav` in the future, so that I have _some_ kind of tangible artifact in case this keeps happening.&#92;n&#92;nThis is more a eulogy for my lost files. Goodbye old songs. May you live on in MP3 format on [songs.travisbriggs.com](https://songs.travisbriggs.com) and Soundcloud. And by writing this, may I get some peace and closure.&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;ableton&quot;,&quot;anchor_text&quot;:&quot;Ableton Live&quot;,&quot;context&quot;:&quot;projects, going back maybe 10 years, as an [Ableton Live](https://www.ableton.com/en/live/) main project&quot;,&quot;rationale&quot;:&quot;The node discusses Ableton Live extensively and a dedicated node describes the software.&quot;},{&quot;slug&quot;:&quot;vibe coding&quot;,&quot;anchor_text&quot;:&quot;vibe coding&quot;,&quot;context&quot;:&quot;I wonder now, though, in the age of vibe coding, if there isn&#39;t some way&quot;,&quot;rationale&quot;:&quot;Directly references vibe coding, which has its own node.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;recording-setup&quot;,&quot;rationale&quot;:&quot;Describes the author&#39;s DAW/Reason/Ableton recording rig, elaborating on the hardware and software setup mentioned here.&quot;},{&quot;slug&quot;:&quot;Rainfall&quot;,&quot;rationale&quot;:&quot;Covers the author&#39;s song hosting at songs.travisbriggs.com, the destination for rendered .wav/MP3 artifacts mentioned at the end.&quot;},{&quot;slug&quot;:&quot;highs-and-lows-musician&quot;,&quot;rationale&quot;:&quot;Discusses the history of the author&#39;s home recording using Ableton/Reason and MIDI, deepening context for these lost projects.&quot;},{&quot;slug&quot;:&quot;ableton-12&quot;,&quot;rationale&quot;:&quot;Discusses upgrading Ableton versions and workflow concerns, parallel to the version-upgrade catastrophe described here.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:2025,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:718,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:272},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;blog/new-danger-third-rail-ep&quot;,&quot;fileSlug&quot;:&quot;new-danger-third-rail-ep&quot;,&quot;title&quot;:&quot;New Danger Third Rail EP&quot;,&quot;content&quot;:&quot;&#92;nI suppose if I announce a new [[danger-third-rail|Danger Third Rail]] project on a blog site, and then post that to Mastodon, it&#39;s not going to make a very big splash. I&#39;m okay with that, I expect as much. I don&#39;t expect anyone to know what Danger Third Rail is, nevermind that I&#39;m the &#92;&quot;mastermind&#92;&quot; behind it.&#92;n&#92;nI almost just wrote &#92;&quot;I really want...&#92;&quot; but then backspaced the hell out of it. I know that such statements are weak in terms of both intention and motivation. What I will say is this: _I will release a new 5 song Danger Third Rail EP before the end of this year._&#92;n&#92;nThe songs are all written, that&#39;s for sure. They are largely recorded, as well. I need to go back and re-record some of the vocals with a new setup that I&#39;ve recently learned works better. Then I need to send the tracks to [my session drummer in the UK](http://www.emilydrums.com), presuming she has time to work on them. After that I plan on having [Tunedly](https://www.tunedly.com/) do the mixing and mastering. I might create the album artwork myself this time, or have it done on [Fiverr](https://www.fiverr.com) like I did last time (or some combination of the two). Then it&#39;s just a matter of uploading everything to [[DistroKid]] and having it float through the tubes to your waiting [[Spotify]] and iTunes apps.&#92;n&#92;nI&#39;m also going to promote this new material thoroughly. Like email it to music blogs and such. And make YouTube lyric (or otherwise) videos for each one of the songs.&#92;n&#92;nI think I was afraid of doing this before, and I&#39;m not sure of the reason. I&#39;m not ashamed of the music, quite the opposite, I&#39;m very proud of it. I think that knowing I&#39;m going to promote the music means I have to do a better job of producing it, and that&#39;s scary. But I&#39;m committed to doing it. I want to put the best possible product out there, and I want people to listen to it. I&#39;m not going to be satisfied with the random 20 people who listened to the last single or whatever. I&#39;m not going to dump my hard work and passion into a black hole.&#92;n&#92;n[Follow Danger Third Rail on Bandcamp](https://dangerthirdrail.bandcamp.com/) to get the official word when the new EP is available. Thanks!&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;Fiverr&quot;,&quot;anchor_text&quot;:&quot;Fiverr&quot;,&quot;context&quot;:&quot;or have it done on [Fiverr](https://www.fiverr.com) like I did last time&quot;,&quot;rationale&quot;:&quot;The node mentions Fiverr, which has its own garden node.&quot;},{&quot;slug&quot;:&quot;YouTube&quot;,&quot;anchor_text&quot;:&quot;YouTube&quot;,&quot;context&quot;:&quot;And make YouTube lyric (or otherwise) videos for each one of the songs&quot;,&quot;rationale&quot;:&quot;YouTube is mentioned and has a dedicated node.&quot;},{&quot;slug&quot;:&quot;Bandcamp&quot;,&quot;anchor_text&quot;:&quot;Danger Third Rail on Bandcamp&quot;,&quot;context&quot;:&quot;Follow Danger Third Rail on Bandcamp to get the official word&quot;,&quot;rationale&quot;:&quot;Bandcamp is referenced and has its own node.&quot;},{&quot;slug&quot;:&quot;recording-setup&quot;,&quot;anchor_text&quot;:&quot;new setup&quot;,&quot;context&quot;:&quot;re-record some of the vocals with a new setup that I&#39;ve recently learned works better&quot;,&quot;rationale&quot;:&quot;The new recording setup for vocals is covered in the recording-setup node.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;highs-and-lows-musician&quot;,&quot;rationale&quot;:&quot;Details the home studio recording process referenced here, including the session drummer and mixing/mastering workflow.&quot;},{&quot;slug&quot;:&quot;nike-the-shit-out-of-it&quot;,&quot;rationale&quot;:&quot;Discusses the struggle to finish and publish songs, directly relevant to the commitment to release an EP.&quot;},{&quot;slug&quot;:&quot;motivation-music&quot;,&quot;rationale&quot;:&quot;Explores the author&#39;s motivation for producing music, elaborating on the intention/commitment themes here.&quot;},{&quot;slug&quot;:&quot;danger-third-rail&quot;,&quot;rationale&quot;:&quot;The central subject; provides background on the band project and its distribution channels.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:802,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:759,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:215},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;blog/new-year&quot;,&quot;fileSlug&quot;:&quot;new-year&quot;,&quot;title&quot;:&quot;Every day is New Year&#39;s Day&quot;,&quot;content&quot;:&quot;Part of the goal of starting a digital garden was to recognize that things like my writing, my learning, my full digital creative output are not ever finished and don&#39;t come out necessarily in neat little packages that warrant a &#92;&quot;blog post&#92;&quot;. Sometimes you do more, more often than not you do less, and it often comes in bursts. I think it&#39;s possible to take a similar view towards New Year&#39;s resolutions. While the new year gives us occasion to declare one or more &#92;&quot;big&#92;&quot; changes to our lives, real change is more sporadic and gradual.&#92;r&#92;n&#92;r&#92;nThat is to say, every day is New Year&#39;s Day if you want it to be.&#92;r&#92;n&#92;r&#92;nThe real problem with the change in perspective this brings is that there&#39;s no impetus to actually get up off the couch and ever do anything. Today is new year&#39;s day, you insist. Yes, well, so is tomorrow.&#92;r&#92;n&#92;r&#92;nNo matter how many times you write resolutions, or [[blog/another-year-without-resolutions|swear]] [[blog/giving-up-on-resolutions|off]] [[blog/a-story-of-failure|writing]] them, at the end of the day, at the end of the blog post, at the end of the very sentence you&#39;re writing, you are stuck with yourself. Wherever you go, there you are. And in fact it is often observed that people will plan out actions, and derive enough pleasure from the planning and discussing the plans with others, that they never carry through or feel the need to carry through.&#92;r&#92;n&#92;r&#92;nIt even happens that people plan vacations and get much more joy out of the anticipation of the vacation then they do out of the vacation itself. People are happy when they&#39;re looking forward to a vacation, but just as depressed and anxious as ever when they&#39;re on one.&#92;r&#92;n&#92;r&#92;nI&#39;ve actually considered this when writing about [[blog/getting-nothing-done/|getting &#92;&quot;nothing&#92;&quot; done]]. Do I really want to get any of these things done? I mean, instinctively, I want to be a good husband to [[Abby]], which was always shoehorned into my resolutions when I made them. But that comes so naturally and doesn&#39;t take any sustained effort. All the other things like making music, writing software in my free time, visiting [Noisebridge](https://www.noisebridge.net/wiki/Noisebridge), tending this digital garden, etc -- do I really want to do those things, or is it enough for me to talk about doing them and tell people I want to do them. As much as I tell myself to [[blog/nike-the-shit-out-of-it/|&#92;&quot;just do it&#92;&quot;]], I&#39;m not sure &#92;&quot;it&#92;&quot; really wants to get done.&#92;r&#92;n&#92;r&#92;nAnother way to put it is: if you want to do something, you do it. If you never do it, you never wanted it in the first place. Which is the TLDR on a [blog post](https://blog.travisbriggs.com/what-i-learned-by-generally-not-blogging-for-15-years-even-though-i-thought-i-wanted-to-108899a9eb96) from my old Medium blog which was titled &#92;&quot;What I learned by generally not blogging for 15 years (even though I thought I wanted to)&#92;&quot;. Good read, much recommend.&#92;r&#92;n&#92;r&#92;nLooking just at this page, I&#39;ve linked to 6 different blog posts from the past several years, and it would be easy to come to the conclusion that my &#92;&quot;personal&#92;&quot; blog was actually a journal chronicling the persistent existential dread of a serial procrastinator. I&#39;m not sure I could really convince you otherwise.&#92;r&#92;n&#92;r&#92;nSo where does that leave us with regards to the new year, this new year, and new year&#39;s day? I honestly don&#39;t believe in [[philosophy|free will]] or any purpose to life, so I think it&#39;s okay to leave us as just a bunch of brains floating in space, tinkering as we might, without any real cause or consequence. I will do what I will do, I won&#39;t do what I won&#39;t, and in the end none of it matters so it&#39;s all okay.&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;digital-garden-itself&quot;,&quot;anchor_text&quot;:&quot;tending this digital garden&quot;,&quot;context&quot;:&quot;writing software in my free time, visiting Noisebridge, tending this digital garden, etc&quot;,&quot;rationale&quot;:&quot;Directly references the garden itself, which has a dedicated node.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;new-year-2025&quot;,&quot;rationale&quot;:&quot;A later reflection on New Year&#39;s Day that extends the &#39;every day is New Year&#39;s Day&#39; theme.&quot;},{&quot;slug&quot;:&quot;free will&quot;,&quot;rationale&quot;:&quot;The node explicitly disavows belief in free will, which this dedicated node elaborates on.&quot;},{&quot;slug&quot;:&quot;intrisic motivation&quot;,&quot;rationale&quot;:&quot;Explores whether the author truly wants to do things versus just talking about them, directly relevant to intrinsic vs extrinsic motivation.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1291,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:644,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:361},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;blog/not-quite-writers-block&quot;,&quot;fileSlug&quot;:&quot;not-quite-writers-block&quot;,&quot;title&quot;:&quot;Not Quite Writer&#39;s Block&quot;,&quot;content&quot;:&quot;&#92;nI fully believe I will need to write hundreds of songs in order to come up with my next great release. I mentioned as much at the end of my [[blog/latest-and-not-so-greatest|last post]]. I also believe that there are no &#92;&quot;shortcuts&#92;&quot; to this process, that I can&#39;t write ten songs and get lucky and two of them are great. I guess that&#39;s possible, but that&#39;s not really what the process represents.&#92;n&#92;nIt wouldn&#39;t be entirely fair to say I have writer&#39;s block. Like I [[blog/something-terrible|mentioned]] in another recent post, when I set out to just write whatever comes to mind and free myself from &#92;&quot;editor&#39;s mind&#92;&quot;, I can produce plenty of interesting sounds and song structures. I&#39;m not struggling to get started, or to put notes &#92;&quot;down on paper&#92;&quot;. I don&#39;t think I&#39;m stuck in the [8 bar loop trap](https://www.edmprod.com/how-to-avoid-the-8-bar-loop-trap/). I know how to finish songs or at least when a demo version is &#92;&quot;done enough&#92;&quot;.&#92;n&#92;nI can play a few instruments and sing well enough, I know how to use my DAW pretty well, certainly well enough that it doesn&#39;t actively impede my progress.&#92;n&#92;nI&#39;m not married to any specific genre, though I feel more at ease creating guitar-driven rock songs than any EDM pieces. But it&#39;s not a matter of getting sick of the genre I&#39;m writing in, or feeling like I have no new ideas in that space. The alternate is also true: I don&#39;t feel necessarily compelled to create some breakthrough new sound that no one&#39;s ever heard before.&#92;n&#92;nI feel like what I&#39;m lacking is focus. I don&#39;t have anything to focus my songwriting/music production ability. No prism to shine the light through. Sure, I&#39;d love to write a 10-12 track album that&#39;s coherent and well laid out. My favorite thing to listen to is [[best albums in the universe|albums]]. But something like that seems so distant and difficult that it&#39;s hard to motivate myself to pursue it.&#92;n&#92;nWhen I finish a song, I publish it on my [song demos website](https://songs.travisbriggs.com) and toot about it on Mastodon (sometimes I also tweet it). There&#39;s no real satisfaction or gratification other than just saying &#92;&quot;yes, I made a song today&#92;&quot;. I know of a couple of people that sometimes listen to songs I put out there, but usually they don&#39;t give me any direct feedback or encouragement.&#92;n&#92;nIt feels like every new song just gets thrown on the pile and forgotten as soon as it&#39;s rendered. Then maybe I decide to put out a release, like the [Radio Machine EP](https://dangerthirdrail.com/#radio-machine) and I go digging through this pile to try to find something salvageable.&#92;n&#92;nI know I can&#39;t depend on external encouragement or engagement to drive my songwriting. I understand, at least intellectually, that the drive to write songs has to come completely from me. I need to want to write these songs, and want it badly enough that I can overcome creative and technical obstacles. I need to be excited for my own reasons.&#92;n&#92;nAnd right now, frankly, I&#39;m not.&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;genre-thoughts&quot;,&quot;anchor_text&quot;:&quot;I&#39;m not married to any specific genre&quot;,&quot;context&quot;:&quot;I&#39;m not married to any specific genre, though I feel more at ease creating guitar-driven rock songs&quot;,&quot;rationale&quot;:&quot;Directly relates to the node about writing in the genre you listen to.&quot;},{&quot;slug&quot;:&quot;recording-setup&quot;,&quot;anchor_text&quot;:&quot;my DAW&quot;,&quot;context&quot;:&quot;I know how to use my DAW pretty well, certainly well enough&quot;,&quot;rationale&quot;:&quot;The recording-setup node describes his DAW and studio.&quot;},{&quot;slug&quot;:&quot;mastodon-is-not-twitter&quot;,&quot;anchor_text&quot;:&quot;Mastodon&quot;,&quot;context&quot;:&quot;publish it on my song demos website and toot about it on Mastodon&quot;,&quot;rationale&quot;:&quot;Connects to his thoughts on Mastodon as a platform.&quot;},{&quot;slug&quot;:&quot;intrisic motivation&quot;,&quot;anchor_text&quot;:&quot;the drive to write songs has to come completely from me&quot;,&quot;context&quot;:&quot;I understand, at least intellectually, that the drive to write songs has to come completely from me&quot;,&quot;rationale&quot;:&quot;This is exactly the concept of intrinsic motivation he has written about.&quot;},{&quot;slug&quot;:&quot;danger-third-rail&quot;,&quot;anchor_text&quot;:&quot;Radio Machine EP&quot;,&quot;context&quot;:&quot;like the Radio Machine EP and I go digging through this pile&quot;,&quot;rationale&quot;:&quot;The Radio Machine EP is a release from his band Danger Third Rail.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;motivation-music&quot;,&quot;rationale&quot;:&quot;Elaborates on his framework for motivation to make music for Danger Third Rail.&quot;},{&quot;slug&quot;:&quot;nike-the-shit-out-of-it&quot;,&quot;rationale&quot;:&quot;Discusses his struggle to finish and publish songs, closely related to this node&#39;s theme.&quot;},{&quot;slug&quot;:&quot;fake-it-music&quot;,&quot;rationale&quot;:&quot;Explores the difficulty of writing/recording songs as a solo musician.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1050,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:1114,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:529},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;blog/pandemic-weary&quot;,&quot;fileSlug&quot;:&quot;pandemic-weary&quot;,&quot;title&quot;:&quot;Pandemic Weary&quot;,&quot;content&quot;:&quot;&#92;nI&#39;m not sure if I&#39;m actually depressed. I&#39;ve been clinically depressed in the past and this doesn&#39;t feel quite exactly like that. I may just be &#92;&quot;pandemic weary&#92;&quot;.&#92;n&#92;nI&#39;m ricocheting back and forth between dread at being logged in to work, to extreme boredom when I&#39;m not. I recall a time, once, when maybe I had interests and activities to look forward to pursuing. I even remember what they were, as the ghosts of these projects still exist on my computer or in my notes. A lot of the time I just feel tired, mentally mostly. It doesn&#39;t feel like it&#39;s worth it to do anything, even as I struggle with a lack of anything to do.&#92;n&#92;nI&#39;ll sit down at my computer, which is full of promise. I&#39;ll have some vague idea that I&#39;ll find something entertaining there. Or something informative. Or some hobby to dabble in. But less than 5 minutes after sitting down and checking my email once again (still nothing but ads), I realize that it&#39;s an empty shell. The computer has nothing to offer me, because nothing external can ease the internal angst I&#39;m feeling.&#92;n&#92;nI marvel at my wife&#39;s ability to click another YouTube video. Usually after managing to watch a YouTube video, the last thing I&#39;d want to do is sit through another. In my imagination, she&#39;s just going through the motions, lost as I am, eyes glazed over as the video plays on her screen. I might not be too far from the truth.&#92;n&#92;nWhat is to be done with these feelings? I think the first thing is to document them, which I&#39;m attempting to do here. Unfortunately, that&#39;s as far as I&#39;ve gotten and I have no idea what the second step is.&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;YouTube&quot;,&quot;anchor_text&quot;:&quot;YouTube video&quot;,&quot;context&quot;:&quot;I marvel at my wife&#39;s ability to click another YouTube video&quot;,&quot;rationale&quot;:&quot;Directly references YouTube, which has a dedicated node in the garden.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;coping-skills&quot;,&quot;rationale&quot;:&quot;This node grapples with painful feelings and asks what to do with them, which coping-skills directly addresses.&quot;},{&quot;slug&quot;:&quot;empty-mind&quot;,&quot;rationale&quot;:&quot;Both explore mental emptiness and the inability to find creative motivation.&quot;},{&quot;slug&quot;:&quot;DBT&quot;,&quot;rationale&quot;:&quot;The therapeutic framework of DBT relates to the emotional documentation and coping approach described here.&quot;},{&quot;slug&quot;:&quot;getting-nothing-done&quot;,&quot;rationale&quot;:&quot;Shares the theme of struggling to do anything despite having a lack of anything to do.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:562,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:398,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:119},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;blog/q-poker-in-progress&quot;,&quot;fileSlug&quot;:&quot;q-poker-in-progress&quot;,&quot;title&quot;:&quot;Q Poker: in progress&quot;,&quot;content&quot;:&quot;&#92;nWhen I wrote [[blog/making-a-computer-game|that post]] about making a computer game, I seem to have left out one of the major projects I&#39;ve been working on for the past year or so, which is Q Poker.&#92;n&#92;nQ Poker is envisioned as an online poker site, with play money (coins), that hosts games other than Texas Hold&#39;em. The first game I&#39;ve been implementing is [Razz](&lt;https://en.wikipedia.org/wiki/Razz_(poker)&gt;) (7 card stud lowball) and you can see some of the in progress results in this screenshot:&#92;n&#92;n![Screenshot of online poker game](https://i.imgur.com/DYO6M0ol.png)&#92;n&#92;nSo far, the things I&#39;ve got working are:&#92;n&#92;n- Backend game logic, in Python, where you can start and finish Hands (of Razz).&#92;n  -- Includes check/bet/raise/fold logic for all players.&#92;n- Logic in Python for a &#92;&quot;Table&#92;&quot; which is where the hands get played out.&#92;n- Asynchronous logic in Python for sending game updates to the client, when things of interest happen. For example, the web client doesn&#39;t have to &#92;&quot;poll&#92;&quot; the game state, it receives `socketio` events when someone performs an action.&#92;n- ReactJS frontend app which responds to and displays the Table state changes from the backend.&#92;n- Frontend allows users to take actions, communicates with backend.&#92;n&#92;nThings I still need to work on include:&#92;n&#92;n- Proper registration system with emailing, password reset, etc.&#92;n- Proper accounting of User bankrolls, aka debits when sitting down at a table and credits when standing up. (This kind of scares the crap out of me but at least it&#39;s not real money!)&#92;n- Timer for player actions.&#92;n- Disconnect handling. User sits out N hands, then gets kicked from the table (for what value of N?)&#92;n- Ability to create (private?) tables and invite friends to them&#92;n- Landing page&#92;n&#92;nWith all that in place, I think I could actually maybe go to an open beta and see if anyone wants to play. Actually what I was really thinking was that I could program some kind of bots that players could play against. I&#39;ve got bots now, but they just make a random action out of the available options which is really frustrating and not a good experience.&#92;n&#92;nI&#39;ve studied some of the techniques of the [Pluribus poker bot](https://www.pokernews.com/news/2019/07/pluribus-first-ai-to-beat-humans-in-multiplayer-no-limit-34910.htm) that came out this time last year. I even paid for access to the paper they published. Sadly, like many results in science nowadays, it doesn&#39;t seem like the results are fully reproducible just from what&#39;s in the paper, but maybe I&#39;m just too dumb to understand it (fully possible!).&#92;n&#92;nI&#39;ve actually got a basic implementation of counterfactual regret minimization (CFR), the algorithm used by Pluribus, implemented for toy game theory examples like [Kuhn Poker](https://en.wikipedia.org/wiki/Kuhn_poker). I&#39;m having a hard time generalizing it to Razz though.&#92;n&#92;nIf I could get it working, I think it might be fun for players to start a table with 1 or 2 friends and 1 or 2 bots. The point is that there is literally NOWHERE to play Razz online (and in general nowhere to play it live either, even before COVID), so there must be at least some pent up demand for something like this.&#92;n&#92;nIf things go well with Razz, I&#39;d like to implement other &#92;&quot;mixed&#92;&quot; games, like Omaha 8, Pineapple/Crazy Pineapple, Big O, and maybe some of the weirder games we&#39;ve played in the Reno Atlantis mixed game, like Drawmaha.&#92;n&#92;nThis isn&#39;t something that I&#39;ve started and shelved. I&#39;m actively working on it. In fact, I just spent the past week implementing Table/Hand persistence for the backend, so that it can load a table when a user takes an action, then persist the changes to the table.&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;Python&quot;,&quot;anchor_text&quot;:&quot;Backend game logic, in Python&quot;,&quot;context&quot;:&quot;Backend game logic, in Python, where you can start and finish Hands&quot;,&quot;rationale&quot;:&quot;The node repeatedly discusses implementing game logic in Python, which has its own dedicated node.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;Abby&quot;,&quot;rationale&quot;:&quot;Abby&#39;s node references this project and mentions the trips to Reno where the mixed games that inspired Q Poker were played.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1274,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:358,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:196},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;blog/random-knowledge-about-javascript-and-typescript&quot;,&quot;fileSlug&quot;:&quot;random-knowledge-about-javascript-and-typescript&quot;,&quot;title&quot;:&quot;Random knowledge about Javascipt and Typescript&quot;,&quot;content&quot;:&quot;&#92;nJavascript is a programming language that is used primarily on the web. It is interpreted by web browsers in order to process and display data on web pages. Javascript is also known as ECMAScript, after the standard that encompasses a formal definition of the language.&#92;n&#92;nIn 2018, Javascript usage goes beyond the web itself and includes many so-called &#92;&quot;backend&#92;&quot; applications, written in frameworks such as Node.js. Many people learn Javascript as their first programming language, while working on websites and the web. Javascript is also known to be a somewhat frustrating language to work with, because it lacks certain features such as &#92;&quot;static typing&#92;&quot;. One variation of Javascript that includes type information is called, appropriately, Typescript. Typescript was developed by engineers at Microsoft in order to create a version of Javascript that includes type information.&#92;n&#92;nThe &#92;&quot;type&#92;&quot; of a variable or function is basically the format of the information that it contains or returns. The number 123 is a &#92;&quot;number&#92;&quot; in this sense, whereas the letters &#92;&quot;abc&#92;&quot; are considered a &#92;&quot;string&#92;&quot;. By assigning data types to your variables, you can automatically check whether or not you are passing the right &#92;&quot;type&#92;&quot; of thing into a function or method. So for example, what if you had a Person object that had a setName method? You wouldn&#39;t want to set the person&#39;s name to a number, or to an Array. You&#39;d want to set it to a string. The Typescript compiler can let you know when you&#39;ve accidentally tried to pass such nonsense to a function that doesn&#39;t accept it.&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;javascript-typescript&quot;,&quot;anchor_text&quot;:&quot;Typescript&quot;,&quot;context&quot;:&quot;One variation of Javascript that includes type information is called, appropriately, Typescript.&quot;,&quot;rationale&quot;:&quot;This directly names the Javascript/Typescript node which covers the same topic in depth.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;programming languages&quot;,&quot;rationale&quot;:&quot;The meta node ties together all the programming language nodes, including Javascript/Typescript.&quot;},{&quot;slug&quot;:&quot;what-programming-language-should-i-learn&quot;,&quot;rationale&quot;:&quot;Discusses choosing languages like Javascript, relevant to a beginner-oriented explanation of Javascript/Typescript.&quot;},{&quot;slug&quot;:&quot;what-is-a-web-application&quot;,&quot;rationale&quot;:&quot;Elaborates on web technologies where Javascript is used to add dynamic functionality.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:516,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:412,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:143},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;blog/read-before-you-write&quot;,&quot;fileSlug&quot;:&quot;read-before-you-write&quot;,&quot;title&quot;:&quot;Read before you write&quot;,&quot;content&quot;:&quot;&#92;nI&#39;ve read Stephen King&#39;s book _On Writing_, and it&#39;s pretty interesting. I think you could almost boil King&#39;s advice down to a Nike-esque &#92;&quot;just do it&#92;&quot;, but there&#39;s one nuance to what he suggests that definitely sticks with me. That to be a writer, you have to be a reader.&#92;n&#92;n&gt; If you don’t have time to read, you don’t have the time (or the tools) to write. Simple as that.&#92;n&gt;&#92;n&gt; - Stephen King&#92;n&#92;nI certainly &#92;&quot;have time&#92;&quot; to read. But I also don&#39;t invest much time at all in it. I don&#39;t choose reading as a preferred activity. In fact, it took me almost two years to finish James S. A. Corey&#39;s _Leviathan Wakes_ (book one of _The Expanse_ novels). Most of that time was spent, of course, not reading. So according to King&#39;s logic, I can&#39;t be a writer.&#92;n&#92;nI also think this extends to to other media. I write on this blog endlessly about my aspirations to write and produce original music. But do I spend enough time listening to new and original music (reading)? I certainly listen to plenty of music throughout the week, but most of it is stuff that I&#39;ve heard before, put on in the background to help me get through a coding session.&#92;n&#92;nI&#39;m not sure I can, by force of will, make myself into someone who critically listens to tons and tons of music. It certainly seems like, when you read the biographies of most successful musicians, they are steeped heavily in the music of their times, the times before, and perhaps their &#92;&quot;scene&#92;&quot;.&#92;n&#92;nIt seems similar to the observation that the most intelligent among us are generally the most &#92;&quot;intellectually curious&#92;&quot;. But you can&#39;t really force the latter in order to make inroads on the former, can you?&#92;n&#92;nOr maybe all of this is just a big excuse to not write music, or write blog posts, or write anything. Maybe I want an &#92;&quot;out&#92;&quot; so that I don&#39;t have to be creative, so that I don&#39;t constantly feel like I&#39;m failing at my creative calling.&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;nike-the-shit-out-of-it&quot;,&quot;anchor_text&quot;:&quot;Nike-esque &#92;&quot;just do it&#92;&quot;&quot;,&quot;context&quot;:&quot;boil King&#39;s advice down to a Nike-esque &#92;&quot;just do it&#92;&quot;, but there&#39;s one nuance&quot;,&quot;rationale&quot;:&quot;This node explicitly discusses the &#39;just do it&#39; songwriting mentality.&quot;},{&quot;slug&quot;:&quot;listening-to-music-while-doing-things&quot;,&quot;anchor_text&quot;:&quot;put on in the background to help me get through a coding session&quot;,&quot;context&quot;:&quot;most of it is stuff that I&#39;ve heard before, put on in the background to help me get through a coding session&quot;,&quot;rationale&quot;:&quot;That node is directly about listening to music while coding/doing things.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;genre-thoughts&quot;,&quot;rationale&quot;:&quot;Explores the connection between the music you listen to and the music you write, elaborating the &#39;reading before writing&#39; idea for music.&quot;},{&quot;slug&quot;:&quot;font-of-creativity&quot;,&quot;rationale&quot;:&quot;Touches on the inner drive to create and whether creativity can be forced, mirroring this node&#39;s self-doubt.&quot;},{&quot;slug&quot;:&quot;nike-the-shit-out-of-it&quot;,&quot;rationale&quot;:&quot;Extends the &#39;just do it&#39; songwriting theme referenced here about aspiration versus actual output.&quot;},{&quot;slug&quot;:&quot;something-terrible&quot;,&quot;rationale&quot;:&quot;Addresses giving oneself permission to create rather than making excuses not to, complementing the closing worry about avoiding creativity.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:636,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:723,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:273},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;blog/side-quests-of-life&quot;,&quot;fileSlug&quot;:&quot;side-quests-of-life&quot;,&quot;title&quot;:&quot;Side quests of life&quot;,&quot;content&quot;:&quot;&#92;nI feel like I could get addicted to writing the way that some people get addicted to video games. Like, &#92;&quot;You just wrote for over an hour, why do you still feel the desire to keep writing?&#92;&quot;. Of course at this point I&#39;m kind of like a character in an RPG who is max level and doesn&#39;t feel like doing the [side quests](https://tvtropes.org/pmwiki/pmwiki.php/Main/Sidequest). Not that I&#39;ve really earned anything close to max level in writing/blogging, besides having done it especially sporadically since 2003. Maybe it&#39;s like [EVE Online](https://www.eveonline.com/) where you earn experience constantly, even when offline, just by checking in on it every once in a while.&#92;n&#92;nIs there a word for that in video games, the side quest thing, when you really want to play a game but can&#39;t think of anything fun to do in it? I think that&#39;s the essential reason why a game like [Rocket League](https://www.rocketleague.com/) doesn&#39;t get stale. Because it&#39;s always the same thing, so you don&#39;t really expect anything more from it. Whereas, a game like Grand Theft Auto, you get various interesting missions throughout the course of the game, but in the endgame its kind of just the sandbox that it was the whole time.&#92;n&#92;nYou know, I tried my hand at professional scissors, but I just couldn&#39;t make the cut. (Sorry, it popped into my head and I couldn&#39;t help myself.) I actually saw a Karate Studio and was trying to think of a karate pun. I&#39;m sure you would have gotten a kick out of that! (sorry)&#92;n&#92;nI just had an Elon Musk level idea, as I saw a man with a &#92;&quot;please help&#92;&quot; sign. Like, could you find a way to A/B test signs so that you can find the text with the most earning potential? Oh god, what is wrong with me. I am truly the tech bro elite, paving the forests of our imaginations with Machine Learning and Big Data.&#92;n&#92;nI like this anecdote I heard about Paul McCartney and the song &#92;&quot;Hello, Goodbye&#92;&quot;. I read it on Quora, but I&#39;ll just recall it from memory rather than dig up the link. Someone asked Sir Paul how he writes so many songs, and McCartney answered that anyone could write a song about anything. He then asked if the person who inquired would like to try it with him right now. That person answered that he or she had to go, so didn&#39;t have the time at the moment. &#92;&quot;You say goodbye, and I say hello!&#92;&quot; was McCartney&#39;s reply.&#92;n&#92;nReally inspiring stuff. Paul McCartney, there&#39;s someone who&#39;s at max level.&#92;n&#92;nI generally don&#39;t give too much credence to song lyrics. Sometimes they can be spot on, sometimes they are inspiring, sometimes they are evocative and very creative. But I don&#39;t think you have to be Dylan to make music with lyrics. Generally any sufficiently interesting phrase can be coerced into a lyric. I saw a YouTube video that talked about this and used the JFK &#92;&quot;Ask not what your country can do for you, ask what you can do for your country&#92;&quot; as an example. Like, think about the relative cadence and pacing of that phrase. It has a musicality all of its own, does it not? I agree with Paul McCartney: any phrase can be similarly massaged into musicality.&#92;n&#92;nOne question that always bothered me though is like, Paul McCartney is still here right? So why hasn&#39;t he had a hit song in 35 years?&#92;n&#92;n&gt; Say Say Say&#92;n&gt; Paul McCartney And Michael Jackson&#92;n&gt; Peaked at #1 on 12.10.1983&#92;n&#92;nHave his song writing skills atrophied? He doesn&#39;t have the right people around him? The world of musical fashion/style has passed him by? He can&#39;t sing anymore?&#92;n&#92;nThere are myriad possible answers, and it&#39;s something I wonder about all the time.&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;songwriting-reflections&quot;,&quot;rationale&quot;:&quot;This node&#39;s discussion of McCartney&#39;s claim that any phrase can be massaged into a lyric elaborates on ideas about crafting songs and lyricality.&quot;},{&quot;slug&quot;:&quot;good-song&quot;,&quot;rationale&quot;:&quot;The musings on what makes a hit and how lyrics work connect to the notion that a good song is a good song regardless of source.&quot;},{&quot;slug&quot;:&quot;font-of-creativity&quot;,&quot;rationale&quot;:&quot;The opening about getting addicted to writing and the urge to keep creating parallels reflections on the compulsion to create.&quot;},{&quot;slug&quot;:&quot;the-chain&quot;,&quot;rationale&quot;:&quot;The EVE Online &#39;earn experience just by checking in&#39; analogy relates to habit-building and streak strategies discussed there.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1226,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:495,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:239},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;blog/something-terrible&quot;,&quot;fileSlug&quot;:&quot;something-terrible&quot;,&quot;title&quot;:&quot;Something Terrible&quot;,&quot;content&quot;:&quot;&#92;nI&#39;m tutoring two separate students in Ableton Live and Digital Music Production now. It&#39;s very rewarding to talk through all the things I&#39;ve learned in my two decades (!) of making music digitally, and especially to see their eyes light up (over video chat) when something that I&#39;m explaining finally clicks.&#92;n&#92;nOne of my students was having trouble with writer&#39;s block of sorts, so I gave him what I called the Make Something Terrible Challenge. I came up with it on the spot, so the details were scant, but it basically amounted to &#92;&quot;Give yourself permission to create, and actively attempt to create, something truly terrible&#92;&quot;.&#92;n&#92;nI think this is actually pretty common advice for people experiencing writer&#39;s block, at least the first part. Don&#39;t just &#92;&quot;write anything&#92;&quot;, give yourself permission to create something truly terrible. But I think I cranked up the intensity when I started talking about _actively_ creating terribleness.&#92;n&#92;nNow of course, I could run fingernails on a chalkboard and point a microphone at it, or mumble incoherently into a microphone for 12 minutes, or all sorts of other things that barely constitute music. But I think the spirit of the challenge is to work in the medium or genre that you&#39;re already working in.&#92;n&#92;nI told the student that I would try it too, to reassure him. I tried it tonight and I&#39;m here to report on the results.&#92;n&#92;nFirstly, I won&#39;t make you listen to what I came up with, mostly because I don&#39;t want this blog post just to be a vehicle for pushing some demo music that I spent 40 minutes on.&#92;n&#92;nWhen I started creating the electronic music track for my #MSTC I thought I was winning. &#92;&quot;This is bad!&#92;&quot; I thought, &#92;&quot;This really sucks!&#92;&quot; I was doing well, at least at first.&#92;n&#92;nBut as I tweaked a knob here and added an effect there, purely by habit, I started to lose the thread. I realized about 30 minutes in that I had created something that sounded _shockingly similar to my non-terribly intended tracks_.&#92;n&#92;nThis is an existential crisis, you see. Either I&#39;m unable to give myself permission to make terrible music, or all my music is actually terrible.&#92;n&#92;nOf course, it worked perfectly as a way to get out of writer&#39;s block. I didn&#39;t spend any time pondering what I should make, because &#92;&quot;the first thing that pops into my head&#92;&quot; was bound to be Something Terrible™. I breezed right past the point where I might normally say, &#92;&quot;This sucks, I&#39;m quitting-dont-save&#92;&quot;, because of course, I was making Terribleness. And I wound up in an uncanny valley of not-so-terrible, purely by accident.&#92;n&#92;nThe exercise raised two questions in me:&#92;n&#92;n1. Could I actually make something terrible if I tried harder? (Inspiration to try again)&#92;n2. What if all those times I had rage quit the music process, I had hung on a bit longer?&#92;n&#92;nI&#39;ll certainly be pondering this the next time I fire up Live.&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;ableton&quot;,&quot;anchor_text&quot;:&quot;Ableton Live&quot;,&quot;context&quot;:&quot;I&#39;m tutoring two separate students in Ableton Live and Digital Music Production now&quot;,&quot;rationale&quot;:&quot;Ableton Live is the subject of a dedicated node and is mentioned unlinked here.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;not-quite-writers-block&quot;,&quot;rationale&quot;:&quot;That node explicitly references this &#39;Something Terrible&#39; post and elaborates on the writer&#39;s block theme.&quot;},{&quot;slug&quot;:&quot;font-of-creativity&quot;,&quot;rationale&quot;:&quot;Explores the compulsion and difficulty of creativity, complementing the permission-to-create idea here.&quot;},{&quot;slug&quot;:&quot;empty-mind&quot;,&quot;rationale&quot;:&quot;Deals with creative blockage and inability to produce music/writing, directly relevant to writer&#39;s block.&quot;},{&quot;slug&quot;:&quot;motivation-music&quot;,&quot;rationale&quot;:&quot;Discusses motivation for making music, related to overcoming the urge to quit mid-process.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:926,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:627,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:315},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;blog/songwriting-reflections&quot;,&quot;fileSlug&quot;:&quot;songwriting-reflections&quot;,&quot;title&quot;:&quot;Songwriting Reflections&quot;,&quot;content&quot;:&quot;&#92;nMelancholy feelings and minor keys are both more appealing to me than their respective alternatives, at least when put into the employ of art and music. For some reason, a &#92;&quot;happy&#92;&quot; song with &#92;&quot;happy&#92;&quot; lyrics seems vapid and dull to me. I want to get at the deep stuff underneath. Major keys seems to scream of a kind of [phatic expression](https://en.wikipedia.org/wiki/Phatic_expression), a platitude of nothingness. &#92;&quot;Fine, thank you&#92;&quot;. &#92;&quot;Good afternoon, sir&#92;&quot; they exclaim.&#92;n&#92;nMaybe that&#39;s why I like power chords so much in my music, because they&#39;re ambiguous as to their tonality. Are they major chords? Minor chords? Without a third, they are neither. They&#39;re open to interpretation. Now I&#39;ll admit, some songs by say [The Descendents](https://en.wikipedia.org/wiki/Descendents) are a bit too fast and loose with their tonality (they&#39;re certainly fast!). Descendents songs seem to give me a kind of whiplash with all the modulation and lack of a tonal center.&#92;n&#92;nI&#39;ve heard tonality in Western music described as a journey. You start at the tonic, you go on a journey to the four chord, reach a bit further to the fifth, and then, when you can&#39;t stand it anymore, you gratefully return back to the tonic. Even chords like the minor two or the minor six share the tonality of the tonic, the one chord, so that going I - VI isn&#39;t so much a journey as a re-imagining of what&#39;s already there. &#92;&quot;Here I am&#92;&quot; says the one chord, &#92;&quot;But it&#39;s a bit different now,&#92;&quot; finishes the six chord.&#92;n&#92;nWhen I was first learning to play guitar, I was a big fan of Dave Matthews Band. I tried to learn as many of their songs as a could, and of course I was often frustrated by the quick and intricate guitar melodies and unique chord shapes. I simply wasn&#39;t good enough to play that music. Then I took a hard left the other way, and found the basic harmonic chords that made up songs and would just strum the chords while I sang the songs. But this kind of acoustic guitar treatment often robs songs of the rhythmic and melodic textures that make them so interesting, not to mention the complexities of the arrangements themselves.&#92;n&#92;nNonetheless, I still hold on to this picture of songs as a lead sheet, as a series of chords on a page with some lyrics scribbled underneath. And I&#39;ve never been a believer of the importance of lyrics in songs. It&#39;s just not me. Most people will tell you that the lyrics are the single most important thing, they&#39;re what people hear and process and remember. But for me, I always though the &#92;&quot;music&#92;&quot; was more important. Unfortunately, the music for me has always just meant the basic acoustic guitar chords, where clearly that&#39;s not how most rock, pop and especially not EDM music works.&#92;n&#92;nIf you listen to many pop songs on the radio today, they are quite minimalist. Often the vocalist is singing over a simple drum loop or bass line or both and that&#39;s it. Yet these songs work.&#92;n&#92;nI guess I&#39;m just reflecting on some aspects of my own song writing here, but maybe someone else will find it enjoyable to read or informative in some way. Cheers!&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;genre-thoughts&quot;,&quot;rationale&quot;:&quot;Discusses the tension between the rock/pop music he listens to and how songs are actually constructed, directly extending these reflections.&quot;},{&quot;slug&quot;:&quot;good-song&quot;,&quot;rationale&quot;:&quot;Explores what makes a good song, folk songwriting, and the primacy of the song itself, deepening this node&#39;s musings.&quot;},{&quot;slug&quot;:&quot;fake-it-music&quot;,&quot;rationale&quot;:&quot;Continues the theme of arranging and writing all the parts of a song versus basic chord treatments.&quot;},{&quot;slug&quot;:&quot;motivation-music&quot;,&quot;rationale&quot;:&quot;Offers a related framework on writing/producing music for his own project, complementing these songwriting reflections.&quot;},{&quot;slug&quot;:&quot;not the circumstances&quot;,&quot;rationale&quot;:&quot;Also centers on a Dave Matthews Band lyric, connecting to the Dave Matthews reference here.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1055,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:689,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:404},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;blog/the-chain&quot;,&quot;fileSlug&quot;:&quot;the-chain&quot;,&quot;title&quot;:&quot;The Chain&quot;,&quot;content&quot;:&quot;&#92;nYou might have heard of [the](https://jamesclear.com/stop-procrastinating-seinfeld-strategy) [so-called](https://medium.com/@MrBuzzFactor/jerry-seinfelds-productivity-hack-don-t-break-the-chain-8d1944b8323d) [Seinfeld](https://www.writersstore.com/dont-break-the-chain-jerry-seinfeld/) [Strategy](https://nickwignall.com/seinfeld-strategy/) for sticking to something and building a habit.&#92;n&#92;nYou don&#39;t have to click all those links, I&#39;m of course going to explain it. Basically, you buy a big wall calendar and every day you do the thing you&#39;re supposed to do (practice an instrument, write in your journal, work on a YouTube video), you get to put a big red X through that day. After a few days to a week, you have a &#92;&quot;chain&#92;&quot; of unbroken X&#39;s. Supposedly, you will find that the desire to procrastinate, the perceived pain of working on your project, is overcome simply by your desire to &#92;&quot;not break The Chain&#92;&quot;.&#92;n&#92;nI bring this up solely because 2 weeks ago I realized I had blogged about once a week for a few weeks. I felt pretty good about that! Then I blogged again last week. Then this week: well, I didn&#39;t think I had anything to blog about.&#92;n&#92;nBut I didn&#39;t want to break &#92;&quot;The Chain&#92;&quot; even though I don&#39;t have a real or even virtual calendar where I&#39;m keeping track of it. So I decided to write this small post explaining what The Chain is.&#92;n&#92;nI&#39;d love to commit to The Chain, and I&#39;m not sure what&#39;s stopping me. I think it&#39;s not the effort or time it takes to write blog posts. I&#39;m completely onboard with offering that much. I think it&#39;s the fact that I&#39;ve tried to consistently blog before, and it always ends in so many tears. The added fact that I will have broken The Chain makes me feel like it will be harder to then, once again like so many times before, resume blogging to any degree.&#92;n&#92;nActually if I could commit to only writing 1/4 of my blog posts about blogging itself, that would be an improvement. Maybe when I feel like The Chain is being strained (Don&#39;t Strain The Chain, Gang), I could just cop out and blog about blogging.&#92;n&#92;nI have to also take this opportunity to point out that the name of this blog is YABIWU -- _Yet Another Blog I Won&#39;t Update_. Am I proving myself wrong? Probably only temporarily.&#92;n&#92;n---&#92;n&#92;nSo has anyone successfully used The Chain? As always I&#39;m Travis Briggs, of [travisbriggs.com](https://travisbriggs.com) fame. If you&#39;d like to comment on this post you can do so on Mastodon (@audiodude@layer8.space) or Twitter (@audiodude) or send me an email at audiodude@gmail.com.&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;blogging-but-this-time-with-blogging&quot;,&quot;anchor_text&quot;:&quot;blog about blogging&quot;,&quot;context&quot;:&quot;I could just cop out and blog about blogging&quot;,&quot;rationale&quot;:&quot;This node is specifically about the recurring habit of blogging about blogging itself.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;getting-nothing-done&quot;,&quot;rationale&quot;:&quot;Discusses procrastination and productivity systems, directly relevant to the Seinfeld Strategy for overcoming procrastination.&quot;},{&quot;slug&quot;:&quot;more-about-blogging&quot;,&quot;rationale&quot;:&quot;Elaborates on the author&#39;s persistent desire and difficulty with consistent blogging.&quot;},{&quot;slug&quot;:&quot;intrisic motivation&quot;,&quot;rationale&quot;:&quot;The chain habit and desire to keep blogging relates to the author&#39;s exploration of what motivates him.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:935,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:579,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:271},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;blog/the-unattainable-and-the-attainable&quot;,&quot;fileSlug&quot;:&quot;the-unattainable-and-the-attainable&quot;,&quot;title&quot;:&quot;The Unattainable and the Attainable&quot;,&quot;content&quot;:&quot;&#92;nSome bands/songs/albums seem unattainable. Like, I could never make something that good no matter what. Weezer&#39;s _Blue Album_ comes immediately to mind. Not to mention the elite pantheon of something like _The Dark Side Of The Moon_.&#92;n&#92;nBut other albums, some of my favorites, I sometimes think &#92;&quot;Yeah, I could do that&#92;&quot;. I&#39;m talking Green Day _Insomniac_ or Fall Out Boy _From Under The Cork Tree_.&#92;n&#92;nThe latter was produced by [Neal Avron](https://en.wikipedia.org/wiki/Neal_Avron) who co-produced Everclear&#39;s _So Much For The Afterglow_ which remains one of the [[best albums in the universe]]. He also produced some New Found Glory albums, a Weezer album, and _Blurryface_ by Twenty One Pilots, the latter of which I love for its eclectic style (it has ukulele prominently on several songs, despite the main hits being more like hip hop songs). I think I have a new producer crush.&#92;n&#92;nI think to myself - if I had the money, the producer, the studio and.....hmmm....the bandmates probably - I could make a record like this.&#92;n&#92;nSo the real first thing I&#39;m missing is the band, to be realistic. I would definitely need a drummer. Probably need a bassist too, which would put me in &#92;&quot;punk rock trio&#92;&quot; territory. But I&#39;m not a good enough guitarist to carry everything myself, so we would need either a lead guitarist or a keyboard player to round things out.&#92;n&#92;nThat&#39;s a lot of people to pay in a world where musicians make on average less and less each year.&#92;n&#92;nMaybe the question isn&#39;t &#92;&quot;Could I make this record if I had all the resources in the world?&#92;&quot; but &#92;&quot;Could I **write** this record in my recording studio/kitchen today?&#92;&quot; I think that&#39;s a more salient question to ask. I may not be able to play any drum parts, most bass lines, and barely any lead guitar parts. But could I &#92;&quot;fake it &#39;till I make it&#92;&quot; with what I have, and at least write the songs that would be on _Insomniac 2_.&#92;n&#92;nOne idea I have is that for my punk numbers, I need to record multiple guitars. Even if they&#39;re playing the same chords, I could play the chords up on the neck a bit, with a different rhythm, with a different guitar timbre and different overdrive effects etc. Just to give some variation to the tunes. I think this would help a lot.&#92;n&#92;nAnother idea is that I should embrace my electronic music production/chiptune skills, and try to make a record, like _Blurryface_, which works despite being ridiculously eclectic. So far I&#39;ve added lots of shiny synths to punk rock tracks and called it my &#92;&quot;signature sound&#92;&quot;. But I bet I can go past that.&#92;n&#92;nAlso I will say it here to immortalize it for all time. It&#39;s not New Found Glory&#39;s &#92;&quot;lyrics&#92;&quot; per se that I don&#39;t like about them. It&#39;s not their &#92;&quot;melodies&#92;&quot; either really, those are fine. It&#39;s more of the lack of prosody. There&#39;s no vocal hooks, lines that set each other up, that work like a poem, lyrically, unfolding and revealing a catchy whole. It just sounds like a bunch of rhythmic whining. But I love the music, always have.&#92;n&#92;nWhich makes me think, I haven&#39;t always given much credit to lyricism in music. I know, intellectually, that most people can think of only the words to a song, sometimes the rhythm, sometimes the melody. People think of lyrics first. Yet I&#39;ve always thought lyrics aren&#39;t that important and I&#39;ve let it show in my songwriting. I need to reverse that thinking, and put big, shiny, lyrical hooks front and center in the next songs that I write.&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;recording-setup&quot;,&quot;anchor_text&quot;:&quot;my recording studio/kitchen today&quot;,&quot;context&quot;:&quot;Could I **write** this record in my recording studio/kitchen today?&quot;,&quot;rationale&quot;:&quot;Directly references his home recording setup, which has a dedicated node.&quot;},{&quot;slug&quot;:&quot;fake-it-music&quot;,&quot;anchor_text&quot;:&quot;fake it &#39;till I make it&quot;,&quot;context&quot;:&quot;could I &#92;&quot;fake it &#39;till I make it&#92;&quot; with what I have&quot;,&quot;rationale&quot;:&quot;This phrase is the title/subject of a node about faking parts to write songs solo.&quot;},{&quot;slug&quot;:&quot;bands-as-sports-teams&quot;,&quot;anchor_text&quot;:&quot;the band&quot;,&quot;context&quot;:&quot;So the real first thing I&#39;m missing is the band, to be realistic&quot;,&quot;rationale&quot;:&quot;Discussion of needing bandmates connects to his node on bands and roles.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;songwriting-reflections&quot;,&quot;rationale&quot;:&quot;His reflections on lyricism, prosody, and melody deepen the closing thoughts about lyrical hooks.&quot;},{&quot;slug&quot;:&quot;danger-third-rail&quot;,&quot;rationale&quot;:&quot;His recording project provides context for wanting to make a full-band record himself.&quot;},{&quot;slug&quot;:&quot;motivation-music&quot;,&quot;rationale&quot;:&quot;His music-making motivation node relates to feeling certain albums are attainable vs unattainable.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1205,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:606,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:167},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;blog/untitled-2020-06-15&quot;,&quot;fileSlug&quot;:&quot;untitled-2020-06-15&quot;,&quot;title&quot;:&quot;Untitled 2020-06-15&quot;,&quot;content&quot;:&quot;&#92;nThe following is the email I sent to iwant@hey.com to convince them to give me an invite.&#92;n&#92;n===&#92;n&#92;nHey,&#92;n&#92;nI don&#39;t go to the gym, and I don&#39;t eat healthy. I don&#39;t call my mom nearly as often as I should. But one thing I do is keep a meticulously manicured email inbox. It&#39;s inspired by, but not quite equivalent to, Inbox Zero.&#92;n&#92;nThis system works great, but there is something of a flaw. It&#39;s not a flaw in the inbox system. Actually, it turns out 80% of the email I get is not only crap, but crap from mailing lists and such that I can easily unsubscribe from anytime. About five years ago, I realized this. I resolved that the very next email I got from some dumb email list that I don&#39;t read, like GAP or iTunes or something, I would immediately unsubscribe. I did this for a few weeks.&#92;n&#92;nPretty soon, as you&#39;d expect, the garbage (not quite junk, not quite spam) emails stopped. Entirely. I stared into the gaping void of a pristine email inbox and did I feel triumph? Did I feel joy? No, I felt dread. More than anything I felt lonely. I realized that some amount of my self worth was tied to the subtle, subconscious idea that I was a real person, with feelings (and at least a credit card) who, in some capacity, was worth emailing. Even if it was an ad or some dumb newsletter I didn&#39;t really want, someone out there _cared_ enough to send it to me. In the isolated, alienated, cyberjunk dystopian present that we live in, that mattered to me.&#92;n&#92;nSo I went back and resubscribed to the newsletters (or at least, stopped unsubscribing to new ones). And I felt better. It&#39;s kind of like those vacuum cleaners with fake noise added so that people believe they&#39;re working (look it up on YouTube).&#92;n&#92;nIt&#39;s not a flaw in the inbox system. No, it never was. The flaw is the frailty of human emotion and the failings of constant attention seeking.&#92;n&#92;nI’d like to try Hey, because I’d like to maybe finally come to grips with those feelings, that flaw.&#92;n&#92;nThanks,&#92;n-Travis&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;YouTube&quot;,&quot;anchor_text&quot;:&quot;YouTube&quot;,&quot;context&quot;:&quot;people believe they&#39;re working (look it up on YouTube).&quot;,&quot;rationale&quot;:&quot;Direct mention of YouTube, which has a dedicated node in the garden.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;intrisic motivation&quot;,&quot;rationale&quot;:&quot;This node&#39;s theme of self-worth tied to attention-seeking directly relates to the discussion of extrinsic motivation (likes, recognition, appreciation from others).&quot;},{&quot;slug&quot;:&quot;dg-solo&quot;,&quot;rationale&quot;:&quot;Both explore the tension of wanting attention/feedback from others versus existing independently of external validation.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:740,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:483,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:268},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;blog/what-is-a-web-application&quot;,&quot;fileSlug&quot;:&quot;what-is-a-web-application&quot;,&quot;title&quot;:&quot;What is a web application?&quot;,&quot;content&quot;:&quot;&#92;nThis post attempts to answer the question posed in the title. It is aimed at beginning or aspiring web developers, or even those who aren&#39;t developers but wish to gain a deeper understanding of the terminology. Web applications versus static websites versus dynamic websites will be discussed.&#92;n&#92;nWhat is a web application? Generally a web application is considered to be any website which has advanced or dynamic functionality which allows users to complete tasks or view or enter data. So for example, the websites at www.facebook.com and twitter.com are web applications. That&#39;s not to say that Facebook and Twitter themselves are simply web applications. They would in fact probably be considered social media &#92;&quot;platforms&#92;&quot;, since they can be accessed across multiple devices and for a myriad of purposes. Perhaps a better example is [Fandango](https://www.fandango.com/), a web application which allows users to search for movies, find showtimes, and buy tickets. Google is a web application, as is Wikipedia.&#92;n&#92;nA web application is usually classified as such in contrast to a simple **website**. A website is a collection of web pages that can be accessed using a web browser, that usually offers no or limited dynamic interactivity and functionality. A good example is the [homepage of the late Stephen Hawking](http://www.hawking.org.uk). This site provides information that is organized according to a certain method, including text and images. However, there are no tasks that a user could complete on this site. There is no way for end users to enter data.&#92;n&#92;nWebsites can further be classified as **static** or **dynamic**. Put simply, a static site is one that doesn&#39;t change each time it is viewed, such as [this list of bookmarks](http://web.mit.edu/hoffmann/www/bookmarks.html). It&#39;s always the same list, and almost certainly the HTML (code) for this page exists as a single file on a server somewhere. When you request the page using your web browser, the server grabs the file off disk and sends it back to your browser &#92;&quot;as is&#92;&quot;.&#92;n&#92;nA dynamic website, on the other hand, features content that potentially changes every time it is viewed. A good example is [the CNN homepage](https://www.cnn.com/). It&#39;s not a web application, because there&#39;s no interactive way to enter data or complete a task. But it changes by the moment as news stories break or fall out of popularity. When your web browser requests cnn.com, the server doesn&#39;t return a preset file containing the code. Rather, one or more programs run on the server, and the end result (output) of the process is the HTML that gets sent back to your browser.&#92;n&#92;nSo what about that Stephen Hawking site, is it dynamic or static? Well, although the information on it doesn&#39;t change nearly as regularly as cnn.com, it is probably a dynamic website. It is likely that the people who run the Hawking site are using a [Content Management System](https://en.wikipedia.org/wiki/Content_management_system) so they can more easily change and update the page. And so although the site might conceivably be implemented using static files, it is in fact a dynamic site.&#92;n&#92;nThe fact is, almost all website are dynamic. And the most useful ones are actually web applications. Other examples of web applications are Google Calendar, Reddit, and Netflix (which doesn&#39;t allow data entry, but allows for rich searching and filtering features).&#92;n&#92;nHopefully this article was useful, and feel free to send feedback to @audiodude@sfba.social on Mastodon.&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;Rainfall&quot;,&quot;rationale&quot;:&quot;This node discusses static vs dynamic sites; Rainfall is a concrete example of a static site generator that elaborates on the static-site concept mentioned here.&quot;},{&quot;slug&quot;:&quot;what-programming-language-should-i-learn&quot;,&quot;rationale&quot;:&quot;Both nodes are beginner-oriented explainers aimed at aspiring web developers and complement each other well.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1103,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:367,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:218},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;blog/what-programming-language-should-i-learn&quot;,&quot;fileSlug&quot;:&quot;what-programming-language-should-i-learn&quot;,&quot;title&quot;:&quot;What programming language should I learn?&quot;,&quot;content&quot;:&quot;&#92;nA lot of people who want to get into programming ask this question, and it&#39;s not a bad one at all! In this post, I&#39;ll try to examine the question and give a thoughtful answer.&#92;n&#92;nI think this question is analogous to an aspiring musician asking &#92;&quot;Which instrument should I learn?&#92;&quot; The answer depends on your taste and interests. Generally though, I would say the answer is **pick one that interests you and that will allow you to create the projects you want to create**. If you like punk rock music, you should probably pick up drums, bass or electric guitar and not oboe or harp, right? If you&#39;re into data science, think Python or R, but probably not C++ or Perl (side note: with my recent experiences with the language, I don&#39;t think I would recommend _anyone_ learn Perl).&#92;n&#92;nIf a language, like Javascript, piques your interests then go for it! Depending on your goals for your own programming practice, it&#39;s likely you will learn a number of languages as you continue your journey. Don&#39;t feel like the first language you learn will be the only language you learn, or that it will limit your options in the future. Also, if you don&#39;t like Javascript, you probably don&#39;t have to continue learning it. You can put it down for a while and see what else is out there. In fact, I would recommend looking at lots of different languages when you&#39;re first starting out, because then you&#39;re more likely to find one that &#92;&quot;clicks&#92;&quot; and that lets you express the ideas you&#39;re trying to express, or accomplish your tasks better.&#92;n&#92;nIf you&#39;re completely undecided, on the fence, or without any meaningful data points, you should think about which languages are popular. Not that this is a popularity contest, but it stands to reason that programming languages get popular for a reason. They&#39;re probably useful for one or more tasks that lots of people want to get done. Additionally, languages with more popularity are likely to have bigger communities of developers writing blog posts, tools, libraries, and [StackOverflow answers](https://stackoverflow.com/questions/tagged/python). While you&#39;re learning, these can all be amazing resources.&#92;n&#92;nFinally, for my own recommendation, I would personally suggest Javascript or Python. Javascript is great because with a few lines of it you can bend web pages to your will. It&#39;s also available as a &#92;&quot;server side&#92;&quot; language thanks to [NodeJS](https://nodejs.org/). Python, on the other hand, is very general purpose and can be used to write web applications&#92;ntoo (see my last post on [[blog/what-is-a-web-application|&#92;&quot;What is a web application?&#92;&quot;]], process data and images, and nowadays is used for all kinds of Artificial Intelligence and especially Machine Learning projects.&#92;n&#92;nAs I said in the beginning of this post, you should research some languages, maybe try a few out, and ultimately find one that fits your general aesthetic and most importantly that lets you build the projects you want to build. You&#39;re only going to get better at programming with practice, and you&#39;re more likely to practice if you have a significant, meaningful project to work on. If you&#39;re excited to come back to that code editor day after day, you will learn more and faster than any other factor intrinsic to the language.&#92;n&#92;nI hope this helps some people out there!&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;Perl&quot;,&quot;anchor_text&quot;:&quot;Perl&quot;,&quot;context&quot;:&quot;data science, think Python or R, but probably not C++ or Perl&quot;,&quot;rationale&quot;:&quot;Directly references Perl, which has its own node about the author&#39;s negative experiences with it.&quot;},{&quot;slug&quot;:&quot;Python&quot;,&quot;anchor_text&quot;:&quot;Python&quot;,&quot;context&quot;:&quot;for my own recommendation, I would personally suggest Javascript or Python&quot;,&quot;rationale&quot;:&quot;Python is a subject of a dedicated node in the garden.&quot;},{&quot;slug&quot;:&quot;javascript-typescript&quot;,&quot;anchor_text&quot;:&quot;Javascript&quot;,&quot;context&quot;:&quot;If a language, like Javascript, piques your interests then go for it&quot;,&quot;rationale&quot;:&quot;Javascript/Typescript has a dedicated node covering the language.&quot;},{&quot;slug&quot;:&quot;programming languages&quot;,&quot;anchor_text&quot;:&quot;a number of languages&quot;,&quot;context&quot;:&quot;it&#39;s likely you will learn a number of languages as you continue your journey&quot;,&quot;rationale&quot;:&quot;Meta node tying together the programming languages the author knows.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;ai&quot;,&quot;rationale&quot;:&quot;This node mentions Python being used for AI and Machine Learning, which the AI node elaborates on.&quot;},{&quot;slug&quot;:&quot;programming languages&quot;,&quot;rationale&quot;:&quot;The meta node lists and links all languages discussed, extending this post&#39;s recommendations.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1018,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:532,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:103},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;blog-cycle&quot;,&quot;fileSlug&quot;:&quot;blog-cycle&quot;,&quot;title&quot;:&quot;The blog cycle&quot;,&quot;content&quot;:&quot;I just read Shane Friedman&#39;s [account of creating his &#92;&quot;new&#92;&quot; blog](https://smoores.dev/post/what_is_smoores_dev/).&#92;n&#92;nOf course it is the Grand Destiny of any blog to be rebuilt from scratch at about the same cadence as people get new phones. And no, I&#39;m not particularly itching to do that with this digital garden.&#92;n&#92;nBut when I read about how he wants to author posts _in HTML_, I was kind of grossed out. I love Markdown because what I&#39;m authoring is mostly text, and I don&#39;t want to deal with any HTML elements. My templates remain templates, my content remains content, and when the content needs to go into the templates it gets rendered (which I am, I think appropriately, totally picturing in the sense of the term &#92;&quot;meat rendering&#92;&quot;).&#92;n&#92;nThen I thought about how this medium might be limiting me. I tell myself &#92;&quot;My build system makes it hard to include images in posts, but that&#39;s okay I don&#39;t use images&#92;&quot;. But can&#39;t you just flip that around and say &#92;&quot;I don&#39;t use images because my build system makes it hard to include images in posts&#92;&quot;? I especially thought it was cool, in his setup, that he could define reusable custom components that he could place into different articles.&#92;n&#92;nOf course, just because I have a vague feeling that I want to include more images in my garden nodes, it doesn&#39;t mean that I actually have image content to include in such nodes. The best I could probably come up with are screenshots for nodes that maybe explain some concept or otherwise discuss software I&#39;ve built. And what would I use a custom HTML element for anyways?&#92;n&#92;nI think my digital garden could be more &#92;&quot;multimedia&#92;&quot;, definitely, but I&#39;d have to think more about what that would mean in practice.&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;digital-garden-itself&quot;,&quot;anchor_text&quot;:&quot;digital garden&quot;,&quot;context&quot;:&quot;itching to do that with this digital garden&quot;,&quot;rationale&quot;:&quot;The node repeatedly refers to the author&#39;s digital garden, which has a dedicated node.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;considering-moving-blogs&quot;,&quot;rationale&quot;:&quot;Directly elaborates on the impulse to switch blogging platforms discussed here.&quot;},{&quot;slug&quot;:&quot;more-about-blogging&quot;,&quot;rationale&quot;:&quot;Expands on the author&#39;s ongoing relationship with blogging and platform choices like Gemini.&quot;},{&quot;slug&quot;:&quot;blogging-but-this-time-with-blogging&quot;,&quot;rationale&quot;:&quot;Explores the author&#39;s meta-obsession with blogging and the medium&#39;s limitations.&quot;},{&quot;slug&quot;:&quot;plans&quot;,&quot;rationale&quot;:&quot;Discusses aspirations for the digital garden, complementing thoughts on making it more multimedia.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:562,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:554,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:243},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;blog&quot;,&quot;fileSlug&quot;:&quot;blog&quot;,&quot;title&quot;:&quot;Blog Posts&quot;,&quot;content&quot;:&quot;&#92;nI guess if this is my &#92;&quot;digital garden&#92;&quot; then these posts are like potted plants that were already grown that have been moved to the rockier parts of the garden landscape. Or something.&#92;n&#92;n---&#92;n&#92;nImmediately after publishing a blog post in 2017 I came to the conclusion that my blog is basically a liability. It’s well established that no one reads it regularly or even semi-regularly. Almost every post is met with the stark sounds of crickets.&#92;n&#92;nAnd yet, someone Googling “Travis Briggs blog” could find it pretty quickly. And I doubt that what I’ve written would serve for them to form a positive impression of me. Something about staying silent and being thought a fool.&#92;n&#92;nBut on the other hand, I kind of like being the sort of person who is daring enough to put his feelings out there on the Internet. I like that I have a more substantial repository of what’s going on with me than just 140 character snippets, which could easily themselves be just as damning. Part of this is why I eventually paid for a third party service to delete my Twitter posts after 90 days, and why I was very relieved, upon returning to Mastodon, that it had that feature built into new versions.&#92;n&#92;nI hope that a digital garden will provide a more well-rounded view of my digital self, and be less prone to quotation without context.&#92;n&#92;nAlso, watch the fuck out because here comes some dreaded [[dg-reverse|reverse chronological order]] posts.&#92;n&#92;n&#92;n&#92;n- [Every day is New Year&#39;s Day](/garden/blog/new-year/)&#92;n&#92;n&#92;n&#92;n- [Mastodon is not Twitter](/garden/blog/mastodon-is-not-twitter/)&#92;n&#92;n&#92;n&#92;n- [Pandemic Weary](/garden/blog/pandemic-weary/)&#92;n&#92;n&#92;n&#92;n- [Read before you write](/garden/blog/read-before-you-write/)&#92;n&#92;n&#92;n&#92;n- [Another Year Without Resolutions](/garden/blog/another-year-without-resolutions/)&#92;n&#92;n&#92;n&#92;n- [The Unattainable and the Attainable](/garden/blog/the-unattainable-and-the-attainable/)&#92;n&#92;n&#92;n&#92;n- [The Chain](/garden/blog/the-chain/)&#92;n&#92;n&#92;n&#92;n- [Not Quite Writer&#39;s Block](/garden/blog/not-quite-writers-block/)&#92;n&#92;n&#92;n&#92;n- [Latest and Not-so-greatest](/garden/blog/latest-and-not-so-greatest/)&#92;n&#92;n&#92;n&#92;n- [Something Terrible](/garden/blog/something-terrible/)&#92;n&#92;n&#92;n&#92;n- [Q Poker: in progress](/garden/blog/q-poker-in-progress/)&#92;n&#92;n&#92;n&#92;n- [Making a computer game](/garden/blog/making-a-computer-game/)&#92;n&#92;n&#92;n&#92;n- [More about blogging](/garden/blog/more-about-blogging/)&#92;n&#92;n&#92;n&#92;n- [Untitled 2020-06-15](/garden/blog/untitled-2020-06-15/)&#92;n&#92;n&#92;n&#92;n- [Getting Nothing Done](/garden/blog/getting-nothing-done/)&#92;n&#92;n&#92;n&#92;n- [Giving Up On Resolutions](/garden/blog/giving-up-on-resolutions/)&#92;n&#92;n&#92;n&#92;n- [NIKE the shit out of it](/garden/nike-the-shit-out-of-it/)&#92;n&#92;n&#92;n&#92;n- [Halloween Sadness](/garden/blog/halloween-sadness/)&#92;n&#92;n&#92;n&#92;n- [A Story Of Failure](/garden/blog/a-story-of-failure/)&#92;n&#92;n&#92;n&#92;n- [Causes of Giving to Causes](/garden/blog/causes-of-giving-to-causes/)&#92;n&#92;n&#92;n&#92;n- [What programming language should I learn?](/garden/blog/what-programming-language-should-i-learn/)&#92;n&#92;n&#92;n&#92;n- [What is a web application?](/garden/blog/what-is-a-web-application/)&#92;n&#92;n&#92;n&#92;n- [Considering moving blogs](/garden/blog/considering-moving-blogs/)&#92;n&#92;n&#92;n&#92;n- [Random knowledge about Javascipt and Typescript](/garden/blog/random-knowledge-about-javascript-and-typescript/)&#92;n&#92;n&#92;n&#92;n- [Songwriting Reflections](/garden/blog/songwriting-reflections/)&#92;n&#92;n&#92;n&#92;n- [New Danger Third Rail EP](/garden/blog/new-danger-third-rail-ep/)&#92;n&#92;n&#92;n&#92;n- [Another Week](/garden/blog/another-week/)&#92;n&#92;n&#92;n&#92;n- [Side quests of life](/garden/blog/side-quests-of-life/)&#92;n&#92;n&#92;n&#92;n- [Font of creativity](/garden/blog/font-of-creativity/)&#92;n&#92;n&#92;n&#92;n- [Listening to music while doing things](/garden/blog/listening-to-music-while-doing-things/)&#92;n&#92;n&#92;n&#92;n- [Blogging, but this time with blogging](/garden/blog/blogging-but-this-time-with-blogging/)&#92;n&#92;n&#92;n&#92;n- [Music Projects as Ephemera](/garden/blog/music-projects-as-ephemera/)&#92;n&#92;n&#92;n&#92;n---&#92;n&#92;nThe above posts were manually copied over from my [write.as blog](https://write.as/audiodude), where they still live for the time being. Previously, I posted blogs on [Medium](https://blog.travisbriggs.com), where I had a legacy feature for having a free custom domain name before they got all &#92;&quot;charge-y&#92;&quot; for it.&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;digital-garden-itself&quot;,&quot;anchor_text&quot;:&quot;digital garden&quot;,&quot;context&quot;:&quot;I guess if this is my &#92;&quot;digital garden&#92;&quot; then these posts are like potted plants&quot;,&quot;rationale&quot;:&quot;The node discusses the digital garden concept which has its own dedicated node.&quot;},{&quot;slug&quot;:&quot;mastodon-is-not-twitter&quot;,&quot;anchor_text&quot;:&quot;Mastodon&quot;,&quot;context&quot;:&quot;why I was very relieved, upon returning to Mastodon, that it had that feature built in&quot;,&quot;rationale&quot;:&quot;Directly references Mastodon, which has a dedicated node comparing it to Twitter.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;considering-moving-blogs&quot;,&quot;rationale&quot;:&quot;Elaborates on migrating between blogging platforms like Medium and write.as mentioned here.&quot;},{&quot;slug&quot;:&quot;more-about-blogging&quot;,&quot;rationale&quot;:&quot;Extends the author&#39;s ongoing reflections about his desire and struggles with blogging.&quot;},{&quot;slug&quot;:&quot;blog-cycle&quot;,&quot;rationale&quot;:&quot;Discusses the recurring urge to rebuild blogs, complementing this node&#39;s platform-migration history.&quot;},{&quot;slug&quot;:&quot;blogging-but-this-time-with-blogging&quot;,&quot;rationale&quot;:&quot;Shares this node&#39;s self-reflective, meta take on blogging and posting to Mastodon.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:686,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:628,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:220},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;codecov&quot;,&quot;fileSlug&quot;:&quot;codecov&quot;,&quot;title&quot;:&quot;Codecov&quot;,&quot;content&quot;:&quot;&#92;nIn software development, there is the concept of &#92;&quot;code coverage&#92;&quot;. When your automated tests run, a coverage tool **instruments** the code, wrapping it with instructions that determine, for each line of your source code, whether the line was executed during the test or not. [Many](https://atlassian.com/continuous-delivery/software-testing/code-coverage) [have](https://testing.googleblog.com/2020/08/code-coverage-best-practices.html) [written](https://capgemini.github.io/testing/What-Is-Code-Coverage-and-Why-It-Should-Not-Lead-Development/) about the pros and cons of low and high code coverage. It turns out it&#39;s one of those areas where a &#92;&quot;middle ground&#92;&quot; is critically important.&#92;n&#92;nThere are hundreds of tools across every programming language that detect and report code coverage. [Codecov](https://codecov.com/) is not one of them. Instead, it provides a GUI (Graphical User Interface) for inspecting, analyzing, and reporting on code coverage reports. Once your tests run, you upload the coverage report to Codecov, and their automated system provides a web app where you can visually see where you are covered or lacking coverage as you explore your source code tree.&#92;n&#92;nEven more useful for most projects, the process of uploading and inspecting code coverage reports can itself be completely automated using [GitHub Actions](https://docs.github.com/en/actions). What this means is that before you merge a PR (Pull Request), Codecov can say the equivalent of &#92;&quot;Hey, don&#39;t merge this, you didn&#39;t test the new code you added!&#92;&quot;. Implementing and responding to this feedback is part of good [&#92;&quot;code hygeine&#92;&quot;](https://medium.com/@revanrgh/clean-code-should-we-prioritize-hygiene-in-coding-cff197542b11).&#92;n&#92;nThis year, Codecov released v4 of it&#39;s GitHub integration. I believe the purpose was to unify its CLI (Command Line Interface) tool and the GitHub code, so they weren&#39;t running different codebases. The most severe change was that it was no longer possible for Codecov to use the &#92;&quot;environment&#92;&quot; of the GitHub repo to determine the proper project or credentials: you now had to explicitly set a _token_ for it to work. For thousands of developers, their automated pipelines stopped working, and it was often difficult to tell what was wrong and how to fix it. Well, it wasn&#39;t particularly difficult per se, but required a lot of annoying steps and hard to find documentation.&#92;n&#92;nAll of this is to just document for future posterity the head-bang-on-desk moment I had when trying to upgrade to v4 in my own [[wp-1.0|WP1]] repo today. The Codecov automation kept reporting that I was missing the token. I, on the other hand, was thouroughly convinced that I had the token, but Codecov just wouldn&#39;t agree with me. I had read the [documentation](https://docs.codecov.com/docs/adding-the-codecov-token) over and over, and double checked that I had done all of the steps but it still wasn&#39;t working.&#92;n&#92;nThe problem was that I assumed the hard part was the first part, adding the `CODECOV_TOKEN` to the GitHub repo settings. I was convinced that that&#39;s where the problem was. In actuality, what I had missed was that the syntax for calling v4 was slightly, but every so similarly lookingly (?), different from v3.&#92;n&#92;n&lt;img src=&#92;&quot;https://pxscdn.com/public/m/_v2/588554065884192073/3781ba7d4-1bb9dc/8GbMvEfDtTR5/nXvjO8y0yPXBrI3XCEyQqs6cGn2chUypPiUX26T5.png&#92;&quot; alt=&#92;&quot;Code review showing GitHub actions code with one line changed&#92;&quot; style=&#92;&quot;max-width: 50rem&#92;&quot;/&gt;&#92;n&#92;nI kept seeing the line where you set `env:` but reading it as &#92;&quot;I already have `secrets.CODECOV_TOKEN` in there!&#92;&quot;. Facepalm.&#92;n&#92;nIn all honesty though, the entire Codecov v3 to v4 upgrade has kind of been a nightmare, across multiple months and multiple repos. Thank god I&#39;m not paying them any money!&#92;n&#92;nUpdate: I&#39;m still getting these freaking errors! Every now and then my CI will flake out like this:&#92;n&#92;n&lt;img src=&#92;&quot;https://pxscdn.com/public/m/_v2/588554065884192073/0e43b1202-69768b/D9HJx5Y4yN0l/1y9kQRG1WPT2fQ4TPczdXPECDMHOKAuMgXN3IZ4S.png&#92;&quot; alt=&#92;&quot;Github actions with Codecov Error: Codecov token not found. Please provide Codecov token with -t flag.&#92;&quot; style=&#92;&quot;max-width: 50rem&#92;&quot;/&gt;&#92;n&#92;nUpdate the Second: I am still getting these intermittent flaky errors. I&#39;ve decided to [demote Codecov](https://github.com/openzim/wp1/pull/758), and set my GitHub actions CI so that if all the tests pass and only the Codecov upload fails, the CI still passes. Sigh.&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;github&quot;,&quot;anchor_text&quot;:&quot;GitHub Actions&quot;,&quot;context&quot;:&quot;can itself be completely automated using [GitHub Actions]&quot;,&quot;rationale&quot;:&quot;The node discusses GitHub integration extensively, and there&#39;s a dedicated node about GitHub.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;warnings-python&quot;,&quot;rationale&quot;:&quot;Also documents a technical debugging/testing struggle in the same WP1.0 Python test suite.&quot;},{&quot;slug&quot;:&quot;Kiwix&quot;,&quot;rationale&quot;:&quot;The wp1 repo (openzim/wp1) referenced here belongs to Kiwix, elaborating on the project&#39;s organizational context.&quot;},{&quot;slug&quot;:&quot;Python&quot;,&quot;rationale&quot;:&quot;The WP1 repo being debugged is written in Python, which this node touches on via its tests and coverage tooling.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1636,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:461,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:199},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;comments-research&quot;,&quot;fileSlug&quot;:&quot;comments-research&quot;,&quot;title&quot;:&quot;Enabling comments&quot;,&quot;content&quot;:&quot;&#92;n*Update: comments are working great! I just commited a change to update the styling and autoload them. Read below for a full catalog of my journey to this point.*&#92;n&#92;nHere&#39;s my research so far on comments, and my radical idea for enabling them.&#92;n&#92;nI&#39;ve read about:&#92;n&#92;n- [DISQUS](https://disqus.com/)&#92;n- [IntenseDebate](https://www.intensedebate.com/)&#92;n- [Muut (Formerly moot)](https://muut.com/)&#92;n- [Facebook embeds](https://facebook.com/)&#92;n- [Isso](https://posativ.org/isso/)&#92;n- [Commento](https://github.com/adtac/commento)&#92;n- [Utterances](https://utteranc.es/)&#92;n- _this list taken from [Nikloa&#39;s handbook](https://getnikola.com/handbook.html#comments)_&#92;n&#92;nThough I haven&#39;t fully evaluated all of them, I was leaning towards Commento. The problem is that I would have to run another server somewhere, and I&#39;m totally over the &#92;&quot;fun and excitement&#92;&quot; of spinning up, and especially maintaining, cloud servers.&#92;n&#92;nThen I saw someone&#39;s blog post that had a &#92;&quot;Comments from Mastodon&#92;&quot; section. This led me to the [original post](https://carlschwan.eu/2020/12/29/adding-comments-to-your-static-blog-with-mastodon/) by Carl Schwan about how he did this with Hugo. The basic approach is dead simple, and very Web 2.0:&#92;n&#92;n1. Create a post on Mastodon that represents your blog post/garden node.&#92;n1. Add the ID of the post (and the site&#39;s host) to the front matter of the node.&#92;n1. Add Javascript to the node, or one of it&#39;s templates&#92;n&#92;nWhen the page loads, the URL is baked in. Then some Vanilla Javascript runs that downloads JSON of the post&#39;s replies from the host server API (from the endpoint `https://&lt;host&gt;/api/v1/statuses/&lt;id&gt;/context`). The Javascript takes the JSON from the API and builds comment boxes for each comment.&#92;n&#92;n## Proof of Concept&#92;n&#92;nIt worked, but it was a lot of work. I would have had to manually remember to enable comments for every garden node that I want to be commentable (which is basically every one), and enabling comments would have meant creating a Mastodon post and manually copying the ID of the Mastodon post into the Markdown for the node, then re-deploying the site.&#92;n&#92;nI looked at [eleventy-plugin-activity-pub](https://github.com/LewisDaleUK/eleventy-plugin-activity-pub/tree/main). However, it has a slightly different focus, which is to turn your static site itself into a &#92;&quot;Fediverse instance&#92;&quot; by creating files at well known endpoints that other Fediverse servers know how to consume. So, if this site is at `travisbriggs.com`, I could have an account called `@garden@travisbriggs.com` and it would contain all of the posts. It uses a common Fediverse hack that the /.well-known/webfinger URL serves a static file that lists only one actor, no matter what user is queried for. It was pointed out to me in the course of this research that this is most likely used in conjunction with an `alias` stanza to point someone at the &#92;&quot;real&#92;&quot; Fediverse account of the responsible party.&#92;n&#92;nBasically, this led to a bunch of research into the [[activity-pub|ActivityPub protocol]].&#92;n&#92;n## Comments, finally!&#92;n&#92;nIn the end, I got it to work for all nodes of the garden, automatically, whenever I publish the site. Keep reading for a technical explanation of how that works.&#92;n&#92;nIt starts with an [sqlite](https://www.sqlite.org/) database that is checked into the git repository for the garden. This database has the following schema:&#92;n&#92;n```&#92;nCREATE TABLE comments (id TEXT, host TEXT, username TEXT, page_slug TEXT)&#92;n```&#92;n&#92;nWhen the [Eleventy](https://www.11ty.dev/) process is running to generate the site, it has a section of &#92;&quot;computed data&#92;&quot; which can use an arbitrary Javascript function to add fields to the &#92;&quot;data&#92;&quot; of a page (basically, what&#39;s in the frontmatter). This function can even be asynchronous, so we can query the sqlite database or make network requests! In an `eleventyComputed` block, I have one promise that loads all of the database data (because it&#39;ll never be more than a few hundred posts, realistically) and &#92;&quot;indexes&#92;&quot; it by creating a mapping from the page slug to the rest of the data. Then, in the main `eleventyComputed` function, we check if the data already exists (ie, the node already has a Mastodon post representing it). If it does, we just return the data from the database.&#92;n&#92;nIf not, we make a post using a secret API token that is kept outside the git repo. We grab the `id` of this post, save it to the database, and return it to the page. The key point is that, from the point of view of the page rendering process, it is completely inconsequential whether this post was created for the first time, or whether it already exists. By the time the page is rendering, there is a Mastodon post id, server hostname, and username attached to it.&#92;n&#92;nAnd that&#39;s it! You can view the [main commit](https://github.com/audiodude/travisbriggs.com/commit/a4a489f79c1c6e81f017740cad4e9fc0ca4ce321) where I added this functionality if you&#39;re interested.&#92;n&#92;n### Bugs&#92;n&#92;nOf course, after I posted this, and once someone _finally_ left a comment on this post, I discovered two bugs:&#92;n&#92;n1. It publishes the Mastodon post while I&#39;m in &#92;&quot;development mode&#92;&quot;, still writing the post. Maybe not the worst thing, but a bit annoying.&#92;n1. It doesn&#39;t properly link to the originating post, which is much more of a problem.&#92;n&#92;nWhile fixing these bugs I, of course, found another bug:&#92;n&#92;n1. The first time it creates a Mastodon post for a node, the data structure it returns is wrong, so the links on the comments section are broken for that post only.&#92;n&#92;nThe fix for the first issue was to check `process.env.ELEVENTY_RUN_MODE != &#39;build&#39;` and return early if that&#39;s the case. However, this and my use of `fetch` means that I can no longer build the site entirely on [Netlify](https://www.netlify.com/) with a build hook from pushing to the [[github|Github]] repo.&#92;n&#92;nThe fix for the second issue was to ignore calls to generate the comment metadata if the page data itself is empty. For some reason, Eleventy was calling my computation function twice: once with empty data, and again with the proper data. Couldn&#39;t figure out why, so I just ignore the empty case.&#92;n&#92;nThe fix for the third bug was to simply return the right data!&#92;n&#92;nNow that these bugs are fixed you can totally actually leave comments, I swear!&#92;n&#92;n## Leave a comment, already!&#92;n&#92;nAnd finally, please, if you&#39;re here, if you have a Mastodon account on any server, for the love of all things sweet and pure, please leave a comment so I know there are other people out there on the internet!&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;dg-feedback&quot;,&quot;rationale&quot;:&quot;This node&#39;s whole subject—enabling comments—is the practical implementation of the digital garden feedback principle discussed there, which itself links back to this research.&quot;},{&quot;slug&quot;:&quot;comments&quot;,&quot;rationale&quot;:&quot;The &#39;comments&#39; node briefly summarizes enabling comments and points to this research node, so they mutually elaborate.&quot;},{&quot;slug&quot;:&quot;mastodon-is-not-twitter&quot;,&quot;rationale&quot;:&quot;The comment system is built entirely on Mastodon&#39;s API, connecting to broader thoughts about Mastodon as a platform.&quot;},{&quot;slug&quot;:&quot;digital-garden-itself&quot;,&quot;rationale&quot;:&quot;That node states comments are enabled by replying to a Mastodon post per node, which is exactly the mechanism detailed here.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:2203,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:679,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:419},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;comments&quot;,&quot;fileSlug&quot;:&quot;comments&quot;,&quot;title&quot;:&quot;Comments&quot;,&quot;content&quot;:&quot;&#92;nFor at least a year, I didn&#39;t have any comments on my digital garden, which is of course counter to the principle that [[dg-feedback|digital gardens allow and respond to feedback]]. I was really excited to finally enable them, permanently, after a [[comments-research|bit of research]] into the subject.&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;digital-garden-itself&quot;,&quot;rationale&quot;:&quot;This node explains that comments are enabled by replying to a Mastodon post, elaborating on the comment mechanism referenced here.&quot;},{&quot;slug&quot;:&quot;dg-public&quot;,&quot;rationale&quot;:&quot;Comments in public connect to the principle of learning in public, deepening the rationale for enabling feedback.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:150,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:131,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:0},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;compost&quot;,&quot;fileSlug&quot;:&quot;compost&quot;,&quot;title&quot;:&quot;Compost pile&quot;,&quot;content&quot;:&quot;&#92;nI&#39;ve struggled against [[dg-reverse|Reverse Chronological Order]], but I&#39;ve still found myself replicating it in my collection of previously published [[blog|blog posts]]. Why, why must we repeat the mistakes of the past?&#92;n&#92;nIn the meantime, I&#39;ve felt handcuffed from adding new content to this Garden. While I thought I would be writing a bunch of [[dg-evergreen|evergreen posts]], I ended up being shackled by the fact that when I had an idea of something to write about, I couldn&#39;t think of anywhere to link it from! So I had all these ideas for garden &#92;&quot;nodes&#92;&quot;, but no &#92;&quot;place in the garden&#92;&quot; for them.&#92;n&#92;nFor this reason, I&#39;ve created this &#92;&quot;Compost pile&#92;&quot;. Maybe compost is a bad word, because it implies decay. On the other hand, it also implies new growth. The idea is to stick a bunch of random thoughts here, as a place to link my new nodes from. If they eventually grow into something greater, than I can hopefully &#92;&quot;plant&#92;&quot; them somewhere else in the garden. If not...well at least they&#39;re not in [[dg-reverse|Reverse Chronological Order]]!&#92;n&#92;n---&#92;n&#92;nI&#39;ve collected a lot of my thoughts and opinions on [[programming languages]] that I use and/or am familiar with.&#92;n&#92;nSome thoughts on [[new-year-2025 | New Year&#39;s 2025]].&#92;n&#92;nI&#39;m surprised by how many people who I consider &#92;&quot;open source advocates&#92;&quot; and &#92;&quot;free software crusaders&#92;&quot; are [[github|still comfortable using Github]].&#92;n&#92;nSpeaking of GitHub, I&#39;ve been [[codecov|fighting with Codecov for months]] (but may have finally won!).&#92;n&#92;nAt the beginning of 2023 I [[apache|wrote an email]] to the [Apache Software Foundation](https://www.apache.org/) about the lack of inclusive language in their name.&#92;n&#92;nOn my [[comments-research|quest for comments]] I learned a [[activity-pub|bit about ActivityPub]].&#92;n&#92;nTrying to organize my [[genre-thoughts|thoughts on genres]] and how they affect my music practice.&#92;n&#92;n[[excited|Some things I&#39;m excited about]].&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;digital-garden-itself&quot;,&quot;rationale&quot;:&quot;This node discusses the garden&#39;s structure and content organization, which the main garden node elaborates on directly.&quot;},{&quot;slug&quot;:&quot;plans&quot;,&quot;rationale&quot;:&quot;The compost pile stems from frustrations about where to place new nodes, which the plans node addresses in terms of garden organization.&quot;},{&quot;slug&quot;:&quot;digital-gardening-principles&quot;,&quot;rationale&quot;:&quot;The struggle against reverse chronological order and desire for evergreen/interlinked nodes directly ties to the foundational principles node.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:768,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:188,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:0},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;danger-third-rail&quot;,&quot;fileSlug&quot;:&quot;danger-third-rail&quot;,&quot;title&quot;:&quot;Danger Third Rail&quot;,&quot;content&quot;:&quot;&#92;n- [Bandcamp](https://dangerthirdrail.bandcamp.com)&#92;n- [Band website](https://dangerthirdrail.com)&#92;n- [Spotify](https://open.spotify.com/artist/6QLXdu3r5eCG95Sy6KA7SA?si=4GS8vH7uRfejBEXRltRNsg)&#92;n- [YouTube](https://www.youtube.com/channel/UCrrEtS8JNwsZdEvowotLhuQ)&#92;n&#92;n[Danger Third Rail](https://dangerthirdrail.com) is the name of my &#92;&quot;band&#92;&quot;. But as I always explain, &#92;&quot;band&#92;&quot; is in quotes because it&#39;s mostly just a recording project of myself, recording music in my [[recording-setup|home recording studio/kitchen]]. All of the tracks I&#39;ve produced and [[DistroKid|published]] to [[Spotify]] feature [Emily Dolan Davies](https://emilydrums.com/), and they&#39;ve all been professionally mixed and mastered by [other](https://soundbetter.com) [[Fiverr|people]]. But I&#39;ve written all the songs 100% myself, sang them all, played guitar and keyboards on all of them, and bass on all but one.&#92;n&#92;nI&#39;ve also published my Danger Third Rail projects on [[Bandcamp]], which I have to say has accounted for about 30% of the lifetime money I&#39;ve made from them. This is of course due to friends and family offering generous additional financial support above and beyond the sticker price. Speaking in terms of percents again, though, my lifetime revenue from making music sits at about 3% of my immediate costs of production (not even including costs for equipment, software, plugins, etc).&#92;n&#92;nCurrently, Danger Third Rail is on something of a hiatus. I&#39;ve written about a dozen songs for my first full length album, and I&#39;ve recorded demos of all the songs. But I&#39;m not sure about how to fund the final productions or motivate myself to DIY them 100%. You can read more about [[highs-and-lows-musician|the highs and lows]] of this process.&#92;n&#92;nDanger Third Rail is my primary recording project under which I release my most polished and finished songs. I&#39;ve also got another secret band name that I&#39;ve used to release the demos of the songs I want to put on the next Danger Third Rail project/album. Of course, I didn&#39;t tell anyone about it so it&#39;s gotten no listens. The act of putting the songs together and uploading them and everything was supposed to get me excited about re-recording and mixing them and doing it all &#92;&quot;for real&#92;&quot;. It did, somewhat, but it didn&#39;t last.&#92;n&#92;nSome of what I deal with is the [[motivation-music|motivation]] for making music. This has espcially come into relief recently with the release of [[ableton-12|Ableton Live 12]]. I&#39;m considering to what degree I should [[fake-it-music|fake it until I make it]]. And also considering that [[bands-as-sports-teams|bands are like sports teams]].&#92;n&#92;nI&#39;ve also, at various times, considered forming Danger Third Rail into an actual band and playing gigs and all that. I think the number one reason why this idea never got off the ground is that I would probably need to play at least one instrument in such a band, and I&#39;m terrified and insecure about my playing abilities. I&#39;m also just not that social with other musicians. When I lived in Boston, I would go to open mic nights and local concerts at least 2-4 times a week. I met a lot of musicians that way, and maybe I could do that in San Francisco too. But it seems unlikely.&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;new-danger-third-rail-ep&quot;,&quot;rationale&quot;:&quot;Directly announces a new Danger Third Rail EP/album, elaborating on the full-length album mentioned here as being on hiatus.&quot;},{&quot;slug&quot;:&quot;null-rail&quot;,&quot;rationale&quot;:&quot;Describes a separate project for releasing tracks/demos under a different name, echoing the &#39;secret band name&#39; used for demos mentioned here.&quot;},{&quot;slug&quot;:&quot;nike-the-shit-out-of-it&quot;,&quot;rationale&quot;:&quot;Discusses the struggle to actually finish and publish songs, deepening the motivation/DIY theme raised in this node.&quot;},{&quot;slug&quot;:&quot;genre-thoughts&quot;,&quot;rationale&quot;:&quot;Explores the songwriting and music-career challenges that underlie the recording project described here.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1220,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:818,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:559},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;dg-evergreen&quot;,&quot;fileSlug&quot;:&quot;dg-evergreen&quot;,&quot;title&quot;:&quot;Digital garden posts are unfinished, or evergreen&quot;,&quot;content&quot;:&quot;&#92;r&#92;nEven when I just now introduced a few friends of mine to my garden and the concept of digital gardening, one of my friends said &#92;&quot;Oh so it&#39;s a throwback to old personal websites&#92;&quot;. Well yes, if you&#39;ve read [Amy Hoy](https://stackingthebricks.com/how-blogs-broke-the-web/) then I guess you&#39;re right. But I think there&#39;s something at the heart of digital gardens that is more than just a reaction to the &#92;&quot;blogosphere&#92;&quot; and breaking free of reverse chronological posting.&#92;r&#92;n&#92;r&#92;nDigital Gardens allow notes on any topic to interlink and intertwine and be &#92;&quot;evergreen&#92;&quot;. That means that they are perennially updated in light of new information, changing viewpoints, world events, etc. A blog post gets written, it gets published, it&#39;s done. It might get a minor edit or two in the week following publication, but _that&#39;s it_. A node in a digital garden can start off very small, and then suddenly bloom into a full treatment of the subject at hand overnight. Or it can gradually be added to and &#92;&quot;tended&#92;&quot; until it contains a weighty sum of information, viewpoint, and knowledge.&#92;r&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;dg-reverse&quot;,&quot;anchor_text&quot;:&quot;breaking free of reverse chronological posting&quot;,&quot;context&quot;:&quot;just a reaction to the &#92;&quot;blogosphere&#92;&quot; and breaking free of reverse chronological posting&quot;,&quot;rationale&quot;:&quot;This node directly discusses eschewing reverse chronological sort, the subject of dg-reverse.&quot;},{&quot;slug&quot;:&quot;digital-gardening-principles&quot;,&quot;anchor_text&quot;:&quot;the concept of digital gardening&quot;,&quot;context&quot;:&quot;introduced a few friends of mine to my garden and the concept of digital gardening&quot;,&quot;rationale&quot;:&quot;Links to the node distilling digital gardening principles.&quot;},{&quot;slug&quot;:&quot;blog&quot;,&quot;anchor_text&quot;:&quot;A blog post gets written, it&#39;s published, it&#39;s done&quot;,&quot;context&quot;:&quot;A blog post gets written, it gets published, it&#39;s done&quot;,&quot;rationale&quot;:&quot;Contrasts blog posts with garden nodes, connecting to the blog collection node.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;dg-status&quot;,&quot;rationale&quot;:&quot;Discusses how gardeners disclose a post&#39;s status/quality, elaborating on the &#39;unfinished/evergreen&#39; nature described here.&quot;},{&quot;slug&quot;:&quot;new-year&quot;,&quot;rationale&quot;:&quot;Explores the &#39;every day is New Year&#39;s Day&#39; idea of gradual, ongoing work that parallels evergreen notes.&quot;},{&quot;slug&quot;:&quot;compost&quot;,&quot;rationale&quot;:&quot;Deals with unfinished garden nodes and growth, extending the theme of nodes blooming over time.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:408,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:584,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:128},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;dg-feedback&quot;,&quot;fileSlug&quot;:&quot;dg-feedback&quot;,&quot;title&quot;:&quot;Digital gardens allow and respond to feedback&quot;,&quot;content&quot;:&quot;&#92;nI have recently added comments to this garden. I think it&#39;s critical, given the fact that [[dg-evergreen|digital garden posts are unfinished, or evergreen]] and [[dg-public|digital gardens allow for learning in public]]. Since it&#39;s happening in public, comments should be made in public. And since the nodes are supposed to be evergreen, it&#39;s important that people can comment and point out things that have gotten out of date or that don&#39;t mesh well with local reality.&#92;n&#92;nOf course this doesn&#39;t mean that people will actually leave comments (I&#39;ve had them enabled for almost a month as of this writing and no one has left a single comment yet). But that&#39;s okay, because [[dg-solo|digital gardens don&#39;t need attention to thrive]].&#92;n&#92;nYou can read more about my [[comments|comments system]].&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;comments-research&quot;,&quot;rationale&quot;:&quot;Details the actual research and process behind enabling comments, elaborating on the comments system referenced here.&quot;},{&quot;slug&quot;:&quot;digital-gardening-principles&quot;,&quot;rationale&quot;:&quot;This node embodies one of the core digital gardening principles, which are collected and enumerated there.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:323,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:118,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:0},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;dg-new&quot;,&quot;fileSlug&quot;:&quot;dg-new&quot;,&quot;title&quot;:&quot;Digital gardens aren&#39;t afraid of something new&quot;,&quot;content&quot;:&quot;&#92;r&#92;nI&#39;m definitely a person who has a preference for the &#92;&quot;new and shiny&#92;&quot;. Out with the old, in with the new, I would agree. Sometimes this can be a bit of a liability, where I might pass over the &#92;&quot;tried and true&#92;&quot;. But I think with Digital Gardens, we need to be ready to embrace new ways of thinking, new technologies for generating and maintaing websites (and [[gemini|Gemsites!]]), etc. It could be that a &#92;&quot;Digital Garden&#92;&quot; is just a reaction to the concept of &#92;&quot;Blogging&#92;&quot; and isn&#39;t particularly noteworthy of itself. Or it could be that digital gardening embraces the new and noteworthy and builds on the latest ideas in the space to create both artifacts and ways of thinking that are truly &#92;&quot;new&#92;&quot;. I prefer the latter.&#92;r&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;blog&quot;,&quot;anchor_text&quot;:&quot;Blogging&quot;,&quot;context&quot;:&quot;just a reaction to the concept of &#92;&quot;Blogging&#92;&quot; and isn&#39;t particularly noteworthy&quot;,&quot;rationale&quot;:&quot;The node contrasts digital gardens with blogging, which is the subject of the blog node.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;digital-gardening-principles&quot;,&quot;rationale&quot;:&quot;This node embodies one of the core digital gardening principles, which are enumerated and expanded there.&quot;},{&quot;slug&quot;:&quot;dg-reverse&quot;,&quot;rationale&quot;:&quot;Elaborates on how digital gardens react against the old blogging paradigm of reverse chronological sorting.&quot;},{&quot;slug&quot;:&quot;dg-evergreen&quot;,&quot;rationale&quot;:&quot;Discusses digital gardens as more than just a reaction to the blogosphere, complementing this node&#39;s argument for embracing the truly new.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:303,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:392,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:117},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;dg-public&quot;,&quot;fileSlug&quot;:&quot;dg-public&quot;,&quot;title&quot;:&quot;Digital gardens allow for learning in public&quot;,&quot;content&quot;:&quot;&#92;r&#92;nThe main reference article I&#39;ve been linking to is [Shawn Wang&#39;s &#92;&quot;Learn In Public&#92;&quot;](https://www.swyx.io/learn-in-public/). I&#39;m hoping to be explosively productive in the amount of material I write and chronicle. I want to share every note and piece of feedback I receive as I build my personal [&#92;&quot;Second Brain&#92;&quot;](https://fortelabs.com/blog/basboverview/).&#92;r&#92;n&#92;r&#92;nThis sounds great in theory, but in practice it&#39;s a bit intimidating to put out your own personal opinions and understandings of a topic without knowing for certain that it&#39;s completely &#92;&quot;settled&#92;&quot;. What if I change my mind? What if I realize that my nascent thoughts on a topic were wildly naive and unsophisticated.&#92;r&#92;n&#92;r&#92;nThere&#39;s some amount of fearlessness to be had with this one in order to do it properly.&#92;r&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;dg-status&quot;,&quot;anchor_text&quot;:&quot;completely &#92;&quot;settled&#92;&quot;&quot;,&quot;context&quot;:&quot;understandings of a topic without knowing for certain that it&#39;s completely &#92;&quot;settled&#92;&quot;&quot;,&quot;rationale&quot;:&quot;The concern about disclosing whether ideas are settled directly connects to epistemic disclosure of post status.&quot;},{&quot;slug&quot;:&quot;dg-evergreen&quot;,&quot;anchor_text&quot;:&quot;What if I change my mind?&quot;,&quot;context&quot;:&quot;What if I change my mind? What if I realize that my nascent thoughts&quot;,&quot;rationale&quot;:&quot;Changing one&#39;s mind ties directly to the evergreen nature of digital garden posts.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;dg-feedback&quot;,&quot;rationale&quot;:&quot;Learning in public relies on receiving and responding to feedback, which this node elaborates.&quot;},{&quot;slug&quot;:&quot;dg-solo&quot;,&quot;rationale&quot;:&quot;Offers a counterpoint about publishing publicly without needing attention or approval.&quot;},{&quot;slug&quot;:&quot;digital-gardening-principles&quot;,&quot;rationale&quot;:&quot;This node is one of the core principles enumerated in the principles overview.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:308,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:336,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:0},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;dg-reverse&quot;,&quot;fileSlug&quot;:&quot;dg-reverse&quot;,&quot;title&quot;:&quot;Digital gardens eschew reverse chronological sorting&quot;,&quot;content&quot;:&quot;&#92;r&#92;n**Reverse is the curse!**&#92;r&#92;n&#92;r&#92;nWhen I read the materials that served as the inspiration to start this garden ([[digital-gardening-principles|linked here]]), one of the things that most viscerally resonated with me was the abhorrence of &#92;&quot;reverse chronological sort&#92;&quot;. Fuck reverse chronological sort.&#92;r&#92;n&#92;r&#92;nFirst, it assumes that the most recently written thing is the most pertinent for a reader or most interesting. Well clearly, that&#39;s not always true. It&#39;s an extremely flimsy invariant. RCS doesn&#39;t allow an author to put his or her best foot forward, because instead of presenting the most comprehensive or most rivetting piece in a collection, it simply shows you the most recent.&#92;r&#92;n&#92;r&#92;nAlso, RCS has a chilling effect on blog authors. Every post is sitting there, with it&#39;s date. You&#39;re always called to add something to that stack of posts, put something right on the top. If you&#39;re not writing a [[dg-evergreen|fully formed]] idea that you can post, why bother? Digital gardens allow for subtle and small &#92;&quot;weed picking&#92;&quot; and &#92;&quot;watering&#92;&quot; operations that work on a scale smaller than &#92;&quot;publish a whole, finished, blog post&#92;&quot;.&#92;r&#92;n&#92;r&#92;nOn the other hand, I have had some trouble integrating old blog posts into the digital garden. Similarly, I&#39;ve had issues with not feeling right about posting something because it doesn&#39;t &#92;&quot;fit&#92;&quot; anywhere in the garden. To alleviate some of this, I&#39;ve come up with the [[compost|compost pile]], which is just a collection of garden nodes that don&#39;t really fit anywhere. I can put things there temporarily and come back to them, and the list of items is not in any kind of chronological order.&#92;r&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;blog&quot;,&quot;anchor_text&quot;:&quot;old blog posts&quot;,&quot;context&quot;:&quot;I have had some trouble integrating old blog posts into the digital garden&quot;,&quot;rationale&quot;:&quot;The node discusses integrating old blog posts, which is the subject of the &#39;blog&#39; node.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;dg-new&quot;,&quot;rationale&quot;:&quot;Both explore how digital gardens depart from traditional blogging conventions.&quot;},{&quot;slug&quot;:&quot;digital-garden-itself&quot;,&quot;rationale&quot;:&quot;This node describes the garden built specifically to escape the reverse-chronological blog prison discussed here.&quot;},{&quot;slug&quot;:&quot;more-about-blogging&quot;,&quot;rationale&quot;:&quot;Elaborates on the author&#39;s relationship to blogging versus the garden format critiqued here.&quot;},{&quot;slug&quot;:&quot;dg-status&quot;,&quot;rationale&quot;:&quot;Discusses post status metadata, an alternative to date-based ordering criticized here.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:588,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:405,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:120},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;dg-solo&quot;,&quot;fileSlug&quot;:&quot;dg-solo&quot;,&quot;title&quot;:&quot;Digital gardens don&#39;t need attention to thrive&quot;,&quot;content&quot;:&quot;&#92;r&#92;nI think that everyone who publishes on the internet wants attention, but not too much attention. I&#39;ve heard it said that Twitter gives everyone a chance to be the &#92;&quot;main character&#92;&quot; for the day, though as [[blog/mastodon-is-not-twitter|I&#39;ve written]] it&#39;s not always a good thing when you are picked. I&#39;ve also heard that Elon Musk&#39;s recent acquisition of Twitter was his attempt to make _himself_ the main character _every day_, but that&#39;s not particularly relevant to the current discussion.&#92;r&#92;n&#92;r&#92;nWhile I feel somewhat distrustful of people who say things like &#92;&quot;I&#39;m only writing this for myself&#92;&quot;, or &#92;&quot;This whole website is just for me&#92;&quot;, I appreciate the sentiment and it&#39;s definitely something I aspire to. I&#39;d like to exist independently of any need for feedback or approval, though that&#39;s not really how the world works. Maybe once I get comments working and [[dg-feedback|can respond to feedback]] it will be more true that this garden exists for engagement and discussion, and not just to blast my ideas out into the world.&#92;r&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;intrisic motivation&quot;,&quot;anchor_text&quot;:&quot;exist independently of any need for feedback or approval&quot;,&quot;context&quot;:&quot;I&#39;d like to exist independently of any need for feedback or approval, though that&#39;s not really how the world works&quot;,&quot;rationale&quot;:&quot;The desire to write without needing external approval directly connects to the concept of intrinsic versus extrinsic motivation.&quot;},{&quot;slug&quot;:&quot;dg-public&quot;,&quot;anchor_text&quot;:&quot;blast my ideas out into the world&quot;,&quot;context&quot;:&quot;not just to blast my ideas out into the world&quot;,&quot;rationale&quot;:&quot;This node&#39;s tension between solitary writing and public engagement relates to learning in public.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;digital-gardening-principles&quot;,&quot;rationale&quot;:&quot;This node elaborates one of the core digital gardening principles and would benefit from linking back to the overview.&quot;},{&quot;slug&quot;:&quot;comments-research&quot;,&quot;rationale&quot;:&quot;The node mentions getting comments working, which is documented in detail in the comments-research node.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:397,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:429,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:125},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;dg-status&quot;,&quot;fileSlug&quot;:&quot;dg-status&quot;,&quot;title&quot;:&quot;Digital gardeners are upfront about a post&#39;s status&quot;,&quot;content&quot;:&quot;&#92;r&#92;nShawn Wang lists [Epistemic Disclosure](https://www.swyx.io/digital-garden-tos#2-epistemic-disclosure) as one of the foundation principles of a digital garden, thus invoking the philosophical field of [Epistemology](https://en.wikipedia.org/wiki/Epistemology). This study of the &#92;&quot;theory of knowledge&#92;&quot; leads us to understand how digital gardeners should responsibly disclose metadata about posts or nodes to readers.&#92;r&#92;n&#92;r&#92;nIn this garden, I&#39;ve listed the &#92;&quot;quality&#92;&quot; and &#92;&quot;importance&#92;&quot; stauts of each node right on the node&#39;s page. The &#92;&quot;quality&#92;&quot; in my mind is a measure of how well developed the idea is. The importance, on the other hand, measures how much weight I give to the ideas presented. A &#92;&quot;Low&#92;&quot; importance post might be a passing aside, or a wrapped redirect to another resource. Meanwhile a &#92;&quot;Top&#92;&quot; imporance post is foundational to myself and the garden.&#92;r&#92;n&#92;r&#92;nWhere do these scales of quality and importance come from, though? Well I am the primary maintainer of the [[wp-1.0|Wikipedia 1.0 Bot]] on [English Wikipedia](https://en.wikipedia.org). This bot takes quality and importance assessments that are added to articles by members of &#92;&quot;WikiProjects&#92;&quot; and aggregates them and reports their distributions. The basic idea is to take a chart that looks like this:&#92;r&#92;n&#92;r&#92;n![Chart of philosophy articles quality and importance](/assets/img/quality_importance.png)&#92;r&#92;n&#92;r&#92;nAnd move all the numbers to the top, based on how far they are to the left. So presumably, if you have an article that is &#92;&quot;Top&#92;&quot; importance, but it&#39;s only &#92;&quot;Start&#92;&quot; quality (5 articles in this example), you should invest more time in those than the articles that are &#92;&quot;Low&#92;&quot; importance and already &#92;&quot;GA&#92;&quot; quality.&#92;r&#92;n&#92;r&#92;nThe full list of article qualities is:&#92;r&#92;n&#92;r&#92;n- FA (Featured Article)&#92;r&#92;n- GA (Good Article)&#92;r&#92;n- B&#92;r&#92;n- Start&#92;r&#92;n- Stub&#92;r&#92;n&#92;r&#92;nAnd the importances I&#39;m using are:&#92;r&#92;n&#92;r&#92;n- Top&#92;r&#92;n- High&#92;r&#92;n- Mid&#92;r&#92;n- Low&#92;r&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;digital-gardening-principles&quot;,&quot;anchor_text&quot;:&quot;foundation principles of a digital garden&quot;,&quot;context&quot;:&quot;lists Epistemic Disclosure as one of the foundation principles of a digital garden&quot;,&quot;rationale&quot;:&quot;This node discusses one specific digital gardening principle and should link to the overview of all principles.&quot;},{&quot;slug&quot;:&quot;philosophy&quot;,&quot;anchor_text&quot;:&quot;philosophical field&quot;,&quot;context&quot;:&quot;thus invoking the philosophical field of Epistemology&quot;,&quot;rationale&quot;:&quot;The author&#39;s philosophy node touches on epistemology and theory of knowledge.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;Kiwix&quot;,&quot;rationale&quot;:&quot;The WP 1.0 bot work referenced here is done in a volunteer capacity for Kiwix, which could elaborate on the project context.&quot;},{&quot;slug&quot;:&quot;dg-evergreen&quot;,&quot;rationale&quot;:&quot;The notion of quality/status disclosure connects to the idea that garden posts are unfinished/evergreen.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:693,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:492,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:181},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;digital-garden-itself&quot;,&quot;fileSlug&quot;:&quot;digital-garden-itself&quot;,&quot;title&quot;:&quot;This Digital Garden&quot;,&quot;content&quot;:&quot;&#92;nWhen I first started reading about Digital Gardens, I quickly came to the conclusion that I wanted one for myself. I really just wanted to break out of the prison of creating perfectly polished and self-contained &#92;&quot;blog posts&#92;&quot; that existed in [[dg-reverse|reverse chronological order]].&#92;n&#92;nI have tried to live up to the [[digital-gardening-principles|digital gardening principles]] that I laid out for myself early on, with varying degrees of success.&#92;n&#92;nThis garden is also available as a [[gemini|Gemini]] capsule at [gemini://gem.travisbriggs.com](gemini://gem.travisbriggs.com).&#92;n&#92;n[[comments|Comments]] are enabled by replying to a Mastodon post for each garden node.&#92;n&#92;nThe source code for this garden is [available on GitHub](https://github.com/audiodude/garden.travisbriggs.com), and I&#39;m tracking [issues to improve it](https://github.com/audiodude/garden.travisbriggs.com/issues). It is based on [Eleventy Garden](https://github.com/binyamin/eleventy-garden) which is based on [Eleventy](https://www.11ty.dev/).&#92;n&#92;nThere&#39;s always a temptation to just re-write the software for the whole thing, following the natural [[blog-cycle|blog cycle]].&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;github&quot;,&quot;anchor_text&quot;:&quot;GitHub&quot;,&quot;context&quot;:&quot;The source code for this garden is [available on GitHub]&quot;,&quot;rationale&quot;:&quot;The node mentions GitHub, which has a dedicated node about GitHub.&quot;},{&quot;slug&quot;:&quot;mastodon-is-not-twitter&quot;,&quot;anchor_text&quot;:&quot;Mastodon post&quot;,&quot;context&quot;:&quot;Comments are enabled by replying to a Mastodon post for each garden node&quot;,&quot;rationale&quot;:&quot;Mastodon is discussed at length in this node about the platform.&quot;},{&quot;slug&quot;:&quot;blog&quot;,&quot;anchor_text&quot;:&quot;blog posts&quot;,&quot;context&quot;:&quot;perfectly polished and self-contained &#92;&quot;blog posts&#92;&quot;&quot;,&quot;rationale&quot;:&quot;The blog node discusses his previously published blog posts and the transition to the garden.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;plans&quot;,&quot;rationale&quot;:&quot;The plans node elaborates on aspirations and technical plans for this same digital garden.&quot;},{&quot;slug&quot;:&quot;dg-evergreen&quot;,&quot;rationale&quot;:&quot;Elaborates on the principle of breaking out of polished blog posts in favor of evergreen notes.&quot;},{&quot;slug&quot;:&quot;gemdown&quot;,&quot;rationale&quot;:&quot;Details the tooling used to render the garden&#39;s Markdown into Gemini&#39;s gmi format, extending the Gemini capsule mention.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:496,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:500,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:78},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;digital-gardening-principles&quot;,&quot;fileSlug&quot;:&quot;digital-gardening-principles&quot;,&quot;title&quot;:&quot;Digital gardening principles&quot;,&quot;content&quot;:&quot;&#92;r&#92;nThis is my attempt to distill and repeat what I consider to be the most important principles of digital gardening. These are taken mostly from the following sources:&#92;r&#92;n&#92;r&#92;n* [Maggie Appleton - A Brief History &amp; Ethos of the Digital Garden](https://maggieappleton.com/garden-history)&#92;r&#92;n* [Joel Hooks - My blog is a digital garden, not a blog](https://joelhooks.com/digital-garden)&#92;r&#92;n* [Andy Matuschak - Evergreen notes](https://notes.andymatuschak.org/About_these_notes?stackedNotes=z4SDCZQeRo4xFEQ8H4qrSqd68ucpgE6LU155C)&#92;r&#92;n* [Shawn Wang - Digital Garden Terms of Service](https://www.swyx.io/digital-garden-tos)&#92;r&#92;n&#92;r&#92;nFrom these and other sources, I&#39;ve figured out that a digital garden should have the following properties, and embody the following principles. I will expand each of these into its own garden node for further investigation.&#92;r&#92;n&#92;r&#92;n* [[dg-public|Digital gardens allow for learning in public]]&#92;r&#92;n* [[dg-solo|Digital gardens don&#39;t need attention to thrive]]&#92;r&#92;n* [[dg-evergreen|Digital garden posts are unfinished, or evergreen]]&#92;r&#92;n* [[dg-status|Digital gardeners are upfront about a post&#39;s status]]&#92;r&#92;n* [[dg-reverse|Digital gardens eschew reverse chronological sorting]]&#92;r&#92;n* [[dg-feedback|Digital gardens allow and respond to feedback]]&#92;r&#92;n* [[dg-new|Digital gardens aren&#39;t afraid of something new]]&#92;r&#92;n&#92;r&#92;nNote that all of these are phrases, statements even. I&#39;m trying to follow the principle of Evergreen Notes that [Evergreen notes should be concept-oriented](https://notes.andymatuschak.org/z4SDCZQeRo4xFEQ8H4qrSqd68ucpgE6LU155C?stackedNotes=z6bci25mVUBNFdVWSrQNKr6u7AZ1jFzfTVbMF).&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;digital-garden-itself&quot;,&quot;rationale&quot;:&quot;This garden&#39;s main page explicitly references trying to live up to these digital gardening principles.&quot;},{&quot;slug&quot;:&quot;plans&quot;,&quot;rationale&quot;:&quot;The plans node discusses organizing the garden in accordance with these principles.&quot;},{&quot;slug&quot;:&quot;dg-status&quot;,&quot;rationale&quot;:&quot;Already linked, but the epistemic disclosure concept discussed there elaborates the concept-oriented note idea mentioned at the end.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:755,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:243,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:78},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;draft&quot;,&quot;fileSlug&quot;:&quot;draft&quot;,&quot;title&quot;:&quot;Draft (writing website)&quot;,&quot;content&quot;:&quot;&#92;nDraft was an online, distraction free, writing tool that shut down at the end of December 2022. I used it extensively over the years.&#92;n&#92;nI was very sad about it shutting down, but I totally understand that the project was probably in the direct intersection of side project that 1) is big enough to cause all kinds of costs and responsibilities and 2) not big enough to produce meaningful financial rewards for the former.&#92;n&#92;nWhen I heard about it shutting down, I sent the following email to [Nate Kontny](https://twitter.com/natekontny), the site&#39;s creator:&#92;n&#92;n&gt; Hi Nate,&#92;n&gt; &#92;n&gt; Just wanted to send a quick note in support of your decision to shut down Draft. When I saw the title of your email, I have to confess I let out an audible &#92;&quot;Noooooooo!&#92;&quot;. I love Draft, and it&#39;s been my trusty companion all these years for distraction free writing wherever I am. I loved the built in folder organization, embedded word counts, and easy sharing capabilities. I&#39;ve done NaNoWriMo in Draft, and Morning Pages, rejected blog posts that I don&#39;t want to make public, song lyrics I&#39;ve written, just all sorts of things.&#92;n&gt; &#92;n&gt; Thank you for your efforts in making all of that possible. It&#39;s sad that Draft is going away, but nothing lasts forever I suppose. Thank you for making it possible to export all the data.&#92;n&gt;&#92;n&gt; Thanks,&#92;n&gt; &#92;n&gt; -Travis&#92;n&#92;nTonight, I sent a follow-up email when I retrieved my Draft archive and realized it was only 150 KB (small enough to *easily* fit on a floppy disk!)&#92;n&#92;n&gt; Hi Nate,&#92;n&gt;&#92;n&gt; I already wrote you one email thanking you for Draft.&#92;n&gt; &#92;n&gt; Now I have an item of concern. If you&#39;re shutting the service down on 2022-12-31, it seems like it will be about 3 weeks from the time of your announcement to the time Draft goes poof. I&#39;m not sure that&#39;s enough time for people to check whatever email they use to access Draft and realize that all of their data is going away.&#92;n&gt; &#92;n&gt; My Draft backup was 150Kb. Do you think it would be possible to simply materialize all of the backups of all of your users and put them in like a private S3 cold storage that you could retrieve upon request? Perhaps you could even make it self-service somehow, like sending people an email with: &#92;&quot;Draft has been shutdown. The password to access or delete your backed up data is &#39;xyz123&#39;&#92;&quot; and then when people go to draftin.com they just see an explanation letter and a place to paste in their password to delete or download?&#92;n&gt; &#92;n&gt; Just wondering. I think there is a long tail of people who simultaneously 1) Have put their life work in Draft and 2) Will not check their email in the month of December. The chance of this person existing is small, but the value that will be lost for this person is inconceivable. Even if you just mysqldump the database, which can&#39;t be more than a GB I imagine, and stick it somewhere, that might be good enough.&#92;n&gt; &#92;n&gt; Maybe you&#39;ve already thought of this and are already doing something similar. Given the thoughtful way you ran the service, I wouldn&#39;t doubt it. Just wanted to bring it up in case, on behalf of that poor person on vacation in Tahiti for the month without their laptop.&#92;n&gt; &#92;n&gt; Thanks,&#92;n&gt; &#92;n&gt; -Travis&#92;n&#92;nI never got any response, but reading back through my emails just now, I definitely thought to myself that maybe he had taken the steps I suggested anyways, whether or not he was inspired by my words. It would certainly make more sense to have a non-operational, 1 GB database backup lying around than to subject yourself to the liability of permanently deleting someone&#39;s life work. And I mean liability in the broadest sense, because something like that wouldn&#39;t just have potential legal consequences, it&#39;s also just a gigantic emotional burden (in my opinon) should it happen.&#92;n&#92;nIn the intervening two years I have switched to Google Docs for a lot of things. I also use Google Keep for shorter notes on a variety of random topics. I&#39;m feeling nostalgic for Draft now though and wondering whether or not I should seek out an alternative. Of course plenty of potential writers have been thwarted by not having a fancy enough notebook, pen, or typewriter (sarcasm).&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;considering-moving-blogs&quot;,&quot;rationale&quot;:&quot;Both discuss evaluating and migrating between writing/blogging platforms, echoing the nostalgia for finding a Draft alternative.&quot;},{&quot;slug&quot;:&quot;blog-cycle&quot;,&quot;rationale&quot;:&quot;Touches on tools and mediums for writing (Markdown vs HTML), which relates to seeking a distraction-free writing tool alternative.&quot;},{&quot;slug&quot;:&quot;font-of-creativity&quot;,&quot;rationale&quot;:&quot;Explores the compulsion to write and the pursuit of writing tools, relevant to Draft&#39;s role as a writing companion.&quot;},{&quot;slug&quot;:&quot;read-before-you-write&quot;,&quot;rationale&quot;:&quot;Discusses writing practice and process, extending the themes of song lyrics and blog drafting mentioned here.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1379,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:487,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:224},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;excited&quot;,&quot;fileSlug&quot;:&quot;excited&quot;,&quot;title&quot;:&quot;Things I&#39;m Excited About&quot;,&quot;content&quot;:&quot;&#92;nHere are some things I&#39;m either currently excited about, or at least I was excited about when I wrote about them.&#92;n&#92;n---&#92;n&#92;nOkay, this is now over two years old, and I&#39;m not sure aything has come of it. But I felt really inspired when I read Robin Sloan&#39;s excellent [newsletter post](https://www.robinsloan.com/lab/new-avenues/) about &#92;&quot;A Year of New Avenues&#92;&quot;. It is hopelessly exuberant and optimistic, and in that way extremely intoxicating. It also challenges the reader, especially in the span of prompting for &#92;&quot;new avenues&#92;&quot; for 2023 but at the same time gently chastising that &#92;&quot;Mastodon is not it&#92;&quot;.&#92;n&#92;nIn my internet travels, I&#39;ve been looking at [[gemini|Gemini]] as a protocol that could be useful for building something in the whale corpse of Facebook and Twitter.&#92;n&#92;nI&#39;ve also heard of [Secure Scuttlebutt](https://scuttlebutt.nz/) a few years back, around the time I was first learning about Mastodon. It seems much more quirky, experimental and revolutionary than Mastodon will ever be. Especially with it&#39;s focus on offline social networks (did you even know there was such a thing?).&#92;n&#92;nI always have a nagging desire to learn [[spanish|Spanish]], but I&#39;m not sure it will ever translate into real motivation and action.&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;mastodon-is-not-twitter&quot;,&quot;anchor_text&quot;:&quot;Mastodon&quot;,&quot;context&quot;:&quot;and revolutionary than Mastodon will ever be&quot;,&quot;rationale&quot;:&quot;The node discusses Mastodon&#39;s limitations, which is exactly the subject of this node.&quot;}],&quot;cross_references&quot;:[]},&quot;usage&quot;:{&quot;input_tokens&quot;:475,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:233,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:112},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;fake-it-music&quot;,&quot;fileSlug&quot;:&quot;fake-it-music&quot;,&quot;title&quot;:&quot;Fake it until you make music&quot;,&quot;content&quot;:&quot;&#92;nConsidering how [[bands-as-sports-teams|bands are like sports teams]], it&#39;s clear that not every part of a song has to be perfect for it to be a good song. I&#39;ve started to come to the realization that I, as a single person who doesn&#39;t play any instrument particularly well, am going to have significantly more difficulty writing, arranging, and recording a song than a full band. Full bands, when recording, will often just stick a microphone or two into the room where they&#39;re playing and just play the song a few times. Sure, they&#39;ll multitrack some things. There will be a few punch ins and overdubs. But the basic skeleton of the song is there once they&#39;ve written it, they just all need to play their parts and get it down on tape.&#92;n&#92;nI, on the other hand, have to write parts for each instrument, then practice and perform them, and finally record them one by one. I have to program in the drums using MIDI (no drummer). I have to play both rhythm and lead guitar, and figure out guitar tone for both (or any additional guitar parts). I have to play bass and any additional keyboard/synth parts. And of course I&#39;m the one writing the lyrics and writing and singing the melody.&#92;n&#92;nWhat I&#39;m realzing is that I don&#39;t have to get everything perfect. I can focus on the things I do well and just &#92;&quot;fake&#92;&quot; the rest of it. The drums are already fake. What&#39;s that, I can&#39;t play the bass part? Play it on the keyboard with a bass guitar plugin. Can&#39;t play a guitar solo for the third verse? Shove a synth part in there.&#92;n&#92;nI&#39;m never going to have the raw power and coherence of some of my favorite bands, like [Green Day](https://open.spotify.com/artist/7oPftvlwr6VrsViSDV7fJY?si=94dbb4ef56f34480), [Midtown](https://open.spotify.com/artist/5dePEjHD5QEEKixOHXuRRA?si=3ddcb624f4b44baa) and [Bayside](https://open.spotify.com/artist/51J0q8S7W3kIEYHQi3EPqk?si=e8cce8c76ea64a25). As I mentioned, they have full bands who are, you know, skilled at their instruments. I have to make do with what I have, and strive to produce the best music possible with what I can do.&#92;n&#92;nAnd honestly, I think that might be a good thing. Somewhere between all those layers of &#92;&quot;faking&#92;&quot; is actually my voice. Not my singing voice, but my [writer&#39;s voice](https://medium.com/a-taste-for-life/what-is-a-writers-voice-a8ce2ca0b342).&#92;n&#92;nThe only problem is a reductionist one. If I&#39;m faking the songwriting, the lyrics, the melody, the harmony; if I&#39;m faking the guitar and bass parts as well as the drums; what else is left? Is there anything of substance after all of that is fake?&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;good-song&quot;,&quot;anchor_text&quot;:&quot;good song&quot;,&quot;context&quot;:&quot;not every part of a song has to be perfect for it to be a good song&quot;,&quot;rationale&quot;:&quot;The phrase directly matches the node &#39;A good song is a good song&#39; which explores exactly this idea.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;highs-and-lows-musician&quot;,&quot;rationale&quot;:&quot;Elaborates on his experience producing music alone in his home studio, directly extending the challenges described here.&quot;},{&quot;slug&quot;:&quot;danger-third-rail&quot;,&quot;rationale&quot;:&quot;His solo recording project where he plays all instruments himself, the practical context for this &#39;faking&#39; approach.&quot;},{&quot;slug&quot;:&quot;recording-setup&quot;,&quot;rationale&quot;:&quot;Details the actual gear and single-person recording workflow referenced in writing/practicing/recording parts one by one.&quot;},{&quot;slug&quot;:&quot;genre-thoughts&quot;,&quot;rationale&quot;:&quot;Discusses writing in the rock genre he listens to (bands like Green Day), connecting to the band comparisons here.&quot;},{&quot;slug&quot;:&quot;something-terrible&quot;,&quot;rationale&quot;:&quot;Explores giving yourself permission to create imperfectly, a close parallel to &#39;faking&#39; parts.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:952,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:741,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:376},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;free will&quot;,&quot;fileSlug&quot;:&quot;free will&quot;,&quot;title&quot;:&quot;Free Will&quot;,&quot;content&quot;:&quot;&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;philosophy&quot;,&quot;rationale&quot;:&quot;The philosophy node explicitly discusses determinism and the author&#39;s disbelief in free will, directly elaborating this topic.&quot;},{&quot;slug&quot;:&quot;not the circumstances&quot;,&quot;rationale&quot;:&quot;This node references free will in the context of controlling responses rather than circumstances.&quot;},{&quot;slug&quot;:&quot;a-story-of-failure&quot;,&quot;rationale&quot;:&quot;This post explicitly muses on not believing in free will and being &#39;driftwood on the ocean&#39;.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:48,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:260,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:92},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;gemdown&quot;,&quot;fileSlug&quot;:&quot;gemdown&quot;,&quot;title&quot;:&quot;Gemdown&quot;,&quot;content&quot;:&quot;&#92;nA Javascript library for rendering Markdown files in the Gemini .gmi format.&#92;n&#92;nSee it on [Github](https://github.com/audiodude/gemdown) or [NPM](https://www.npmjs.com/package/gemdown).&#92;n&#92;n## Overview&#92;n&#92;n[Gemini](https://geminiprotocol.net/) is a recent text-based internet protocol that aims to be more robust than Gopher but more lightweight than the web, and doesn&#39;t seek to replace either. You need a special [Gemini client](https://github.com/kr1sp1n/awesome-gemini#clients) to connect to &#92;&quot;Gemini capsules&#92;&quot; in &#92;&quot;Gemspace&#92;&quot; (such as `gemini://geminiprotocol.net/`).&#92;n&#92;nYou can read more about Gemini [[gemini|on this digital garden]].&#92;n&#92;nGemini capsules are authored using &#92;&quot;Gemtext&#92;&quot;, which you can [read the description of](https://geminiprotocol.net/docs/cheatsheet.gmi). For a list of many Gemini related projects and sites, see [Awesome Gemini](https://github.com/kr1sp1n/awesome-gemini).&#92;n&#92;nAccording to [Wikipedia](https://en.wikipedia.org/wiki/Markdown), [Markdown](https://daringfireball.net/projects/markdown/) is &#92;&quot;a lightweight markup language for creating formatted text using a plain-text editor&#92;&quot;. Markdown is commonly used in [Static Site Generators](https://www.cloudflare.com/learning/performance/static-site-generator/) to store the source code for pages such as blog posts without making the author write full HTML markup.&#92;n&#92;nGemdown, then, is a library that takes Markdown input and outputs Gemtext. It is designed to be used in conjunction with a static site generator in order to create a Gemini mirror of an HTTP website (HTTP/Gemini mirrors of the same content is common amongst the Gemini community).&#92;n&#92;n## Relation to other libraries&#92;n&#92;nThe above is copied directly from the README.md of gemdown on [Github](https://github.com/audiodude/gemdown). I should admit that the library was heavily inspired by the Python library [md2gemini](https://github.com/makew0rld/md2gemini), which actually got archived around the time that I was developing gemdown. I posted on Mastodon to thank the author for the inspiration, and he replied back, which was nice.&#92;n&#92;nThe gemdown library also uses [marked](https://github.com/markedjs/marked) as the main way of parsing Markdown. The marked library is written in [[javascript-typescript|Javascript (actually Typescript I think)]] and is extremely excellent. It is [highly extensible](https://marked.js.org/using_pro) which is what allowed me to create custom rules that output gemtext.&#92;n&#92;nI created gemdown as a ESM module since marked is more easily imported that way.&#92;n&#92;n## What&#39;s next?&#92;n&#92;nGiven that I&#39;m currently generating a Gemini version of this digital garden, and gemdown has all the features I need to do that, I might consider marking gemdown as &#92;&quot;done&#92;&quot; for now and releasing version [1.0.0](https://semver.org). Of course, I&#39;m not going to do that today since I already release a version today and I&#39;d like to have more time for the library to &#92;&quot;cook&#92;&quot;.&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;digital-garden-itself&quot;,&quot;anchor_text&quot;:&quot;this digital garden&quot;,&quot;context&quot;:&quot;I&#39;m currently generating a Gemini version of this digital garden, and gemdown has all the features&quot;,&quot;rationale&quot;:&quot;The phrase directly refers to this garden, which has a dedicated node.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;Rainfall&quot;,&quot;rationale&quot;:&quot;Rainfall is a static site generator, and gemdown is designed to work with static site generators to create Gemini mirrors.&quot;},{&quot;slug&quot;:&quot;more-about-blogging&quot;,&quot;rationale&quot;:&quot;This node discusses Gemini and the author&#39;s involvement in the Gemini community, elaborating on themes in gemdown.&quot;},{&quot;slug&quot;:&quot;mastodon-is-not-twitter&quot;,&quot;rationale&quot;:&quot;The node mentions posting on Mastodon to thank the md2gemini author, and this node discusses Mastodon.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1073,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:687,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:403},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;gemini&quot;,&quot;fileSlug&quot;:&quot;gemini&quot;,&quot;title&quot;:&quot;Gemini&quot;,&quot;content&quot;:&quot;&#92;r&#92;n[Gemini](https://gemini.circumlunar.space/) is a new protocol for the internet. It is a protocol, not an app, or even a browser, or server, or software. These things exist in the Gemini ecosystem, of course, but they&#39;re not what it fundamentally is.&#92;r&#92;n&#92;r&#92;nGemini aims to be more robust than Gopher but more lightweight than the web, and doesn&#39;t seek to replace either. You need a special [Gemini client](https://github.com/kr1sp1n/awesome-gemini#clients) to connect to &#92;&quot;Gemini capsules&#92;&quot; in &#92;&quot;Gemspace&#92;&quot; (such as [gemini://gemini.circumlunar.space/](gemini://gemini.circumlunar.space/)).&#92;r&#92;n&#92;r&#92;n&#92;r&#92;nRobin Sloan [encourages us](https://www.robinsloan.com/lab/new-avenues/#meta) to make a thing with which we can talk about the thing. I notice this a lot on Mastodon of course, much of it is about itself. I actually think that Gemini is much worse in this regard, in that everyone wants to build a Gemini server, or client or some automation integration thing, but no one wants to write in the medium or consume content there. Tons of content in gemspace (URLS starting with `gemini://`, like [gemini://gem.bestalbumsintheuniverse.com](gemini://gem.bestalbumsintheuniverse.com)) is about Gemini, but it&#39;s also often mirrored in websites as well. So people are hosting gemblogs and gemsites, but they are just shadows of the content that&#39;s on the web. That&#39;s sad.&#92;r&#92;n&#92;r&#92;nI originally considered making this garden a gemini-only publication. I thought about the [very next paragraph](https://www.robinsloan.com/lab/new-avenues/#exemplars) in that same recent newsletter post by Robin: &#92;&quot;You can edit by hand!&#92;&quot;. Yes I can, but it&#39;s tedious and error prone. I could make a garden in Gemini, and it seems like a good medium for it with it&#39;s distraction free, basic gemtext (`.gmi`) format. But I&#39;ve found that the creative pursuits I&#39;m most likely to take up are always those with the least friction. Years ago, I stopped unplugging my mic and guitar cables from my audio interface when I&#39;m done with them. In fact the microphone itself sits on my desk, plugged in 24/7. If I&#39;m writing a song, I can simply pick it up and start singing into it. That&#39;s the level of ease/automation that I need in a creative workflow like a digital garden to make it work for me, and prompt me to keep it evergreen.&#92;r&#92;n&#92;r&#92;nThat&#39;s not to say that I won&#39;t be, just like everyone else, posting my content on Gemini *as well*. In fact, as of late August 2023, I have a [Gemini capsule](gemini://gem.garden.travisbriggs.com/) for this Digital Garden finally!&#92;r&#92;n&#92;r&#92;nPart of converting this digital garden to Gemini involved writing my own Javascript library for converting Markdown (which this garden is [written in](https://github.com/audiodude/garden.travisbriggs.com)) to gemtext. I wrote the [[gemdown]] library during August 2023 for this purpose. It is my first ever open-source library that was created solely by me for consumption by others! I&#39;m pretty proud.&#92;r&#92;n&#92;r&#92;nAnd who says you can&#39;t have more than one garden. I have to confess that some of this is vanity. I want people to be able to find and read my garden posts, as much as it [[dg-solo|&#92;&quot;shouldn&#39;t be about that&#92;&quot;]]. So I&#39;m posting web first.&#92;r&#92;n&#92;r&#92;nI did convert my [[best albums in the universe]] site to Gemini (as part of the static site generation process) and publish it at [gemini://gem.bestalbumsintheuniverse.com](gemini://gem.bestalbumsintheuniverse.com).&#92;r&#92;n&#92;r&#92;nGemini is very promising. It&#39;s limitations are, as usual, it&#39;s greatest strengths. I have responded to Robin with Gemini as a new avenue for 2023.&#92;r&#92;n&#92;r&#92;nSome interesting Gemini related links:&#92;r&#92;n&#92;r&#92;n* [Lagrange Gemini Browser (highly recommended!)](https://gmi.skyjake.fi/lagrange/)&#92;r&#92;n* [Twins Gemini server (also highly recommended!)](https://code.rocketnine.space/tslocum/twins)&#92;r&#92;n* [First 50 known Gemini servers (hint: Best Albums in the Universe is one of them!)](https://gemini.circumlunar.space/servers/)&#92;r&#92;n* [Awesome Gemini on Github](https://github.com/kr1sp1n/awesome-gemini)&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;mastodon-is-not-twitter&quot;,&quot;anchor_text&quot;:&quot;Mastodon&quot;,&quot;context&quot;:&quot;I notice this a lot on Mastodon of course, much of it is about itself&quot;,&quot;rationale&quot;:&quot;The node discusses Mastodon&#39;s tendency toward self-reference, which the Mastodon node elaborates on.&quot;},{&quot;slug&quot;:&quot;digital-garden-itself&quot;,&quot;anchor_text&quot;:&quot;this Digital Garden&quot;,&quot;context&quot;:&quot;I have a [Gemini capsule](gemini://gem.garden.travisbriggs.com/) for this Digital Garden finally!&quot;,&quot;rationale&quot;:&quot;Directly references the author&#39;s digital garden, which has its own dedicated node.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;excited&quot;,&quot;rationale&quot;:&quot;That node also discusses Robin Sloan&#39;s &#39;new avenues&#39; newsletter and considering Gemini as a protocol worth building on.&quot;},{&quot;slug&quot;:&quot;more-about-blogging&quot;,&quot;rationale&quot;:&quot;Discusses Gemini as a middle ground between Gopher and the web and mentions the author&#39;s early Gemini site.&quot;},{&quot;slug&quot;:&quot;gemdown&quot;,&quot;rationale&quot;:&quot;Elaborates on the Markdown-to-gemtext conversion library the author wrote for publishing to Gemini.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1494,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:602,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:209},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;genre-thoughts&quot;,&quot;fileSlug&quot;:&quot;genre-thoughts&quot;,&quot;title&quot;:&quot;Writing in the genre you listen to&quot;,&quot;content&quot;:&quot;&#92;nI think I&#39;m starting to realize one of the major roadblocks I&#39;ve encountered in my music career -- career meaning all the times in the past I&#39;ve tried to write, record and perform music. There is a dichotomy between the types of music I generally listen to and the types of music that the Music Industrial Complex (for lack of a better term) makes it easy to produce. I listen to rock: classic rock, punk rock, alternative rock, indie rock, space rock; stuff with guitars, bass, drums and singing that generally follows a intro-verse-chorus-verse-chorus-bridge-chorus-chorus song structure. Of course, I sometimes listen to hip-hop. I sometimes listen to &#92;&quot;classical&#92;&quot; (terrible term). I sometimes listen to jazz, or metal, or lofi or whatever. But my music tastes are squarely grounded in upbeat, melodic rock music.&#92;n&#92;nMeanwhile, there&#39;s [[ableton|Ableton Live]] through to keyboard controllers, [MIDI](https://blog.landr.com/what-is-midi/) equipment, synthesizers, grooveboxes, drum machines and all manner of gear and plugins that music manufacturers want to sell us. Don&#39;t get me wrong, I love this stuff. I first got interested in making digital music with a copy of [Reason Studio&#39;s](https://www.reasonstudios.com/) (nee Propellerheads) Reason 1.0. The fact is, most of this -- stuff -- is geared (pun intended) towards making some kind of genre of electronic music. And most genres of electronic music are focused on interesting beats, rhythms, sound design, fx, etc. I don&#39;t find most genres of electronic music melodically or harmonically interesting. Much of it has a lot of hooks, but no melody at all to speak of. Which is not to say I don&#39;t listen to some electronic music, or indie music with electronic elements ([Foster the People](https://www.fosterthepeople.com/), [OK Go](https://okgo.net/), [Twenty One Pilots](https://www.twentyonepilots.com/)).&#92;n&#92;nAlso, this isn&#39;t to say that you can&#39;t produce rock music with Ableton and a MIDI keyboard. Both of my music releases for [[danger-third-rail|Danger Third Rail]] were tracked in [[ableton-12|Ableton]], in exactly that manner. I&#39;ve never mic&#39;d an amp to record a guitar, everything has been done with amp modeling plugins.&#92;n&#92;nThis dichotomy exists, though. I don&#39;t listen to enough purely electronic music to appreciate the subtleties or defining characteristics of the [literally hundreds of genres](https://music.ishkur.com/) it is made up of. I can&#39;t recognize when a song is employing a trope or deviating from one. And because of this, when I sit down and end up writing vaguely electronic music, it comes out sounding thin, simplistic and cliche.&#92;n&#92;nOn the other hand, recording rock music without a band, in your [[recording-setup|home recording studio slash kitchen]], is hard y&#39;all! I have to program digital drums, compose and record a guitar part, compose and record a contrapunctual guitar part, compose and record bass either through keyboard or bass guitar. And that&#39;s before considerations of melody/lyrics/vocals, arrangement, sound design, and mixing and mastering. I guess the real problem isn&#39;t that all of that work goes into producing a finished song, a finished product. The problem is that some amount of that behemoth is necessary to even &#92;&quot;sketch out ideas&#92;&quot;. Never mind recording and producing a rock song, it is difficult to work in this environment when you&#39;re trying to even compose one.&#92;n&#92;nSome of this node is just [[dg-public|thinking out loud]], so excuse me if I whine and rant.&#92;n&#92;nOne solution is to just [[nike-the-shit-out-of-it|NIKE the shit out of it]].&#92;n&#92;nAnother possible solution is to figure out new ways of composition that don&#39;t rely on all the production overhead. To figure out a way to get a &#92;&quot;demo&#92;&quot; out quickly that captures the song, to prove that it&#39;s written, and to worry about proper recording and production later. I even bought a [handheld recorder](https://zoomcorp.com/en/us/handheld-recorders/) at one point, that I still have, in order to be able to just play guitar out loud and have it record everything while I&#39;m writing a song. I have thought of this before of course. Song writing and song recording are two different disciplines. But it goes back to the electronic music production, where that statement doesn&#39;t seem to be true at all. When does a DJ/electronic music producer compose a song outside of their DAW, besides maybe on the aforementioned groovebox/drum machine/sampler?&#92;n&#92;nSo when I want to &#92;&quot;make music&#92;&quot; (whatever that means), my first step is to open [[ableton-12|Ableton]]. The next step is to stare at it, mouth agape. And the step after that is to start dialing in the same tired hip hop cliche beat patterns and lame synth lines and end up with another imitation electronic music track.&#92;n&#92;nIn the past, I&#39;ve thought the holy grail would be to somehow marry the genres, and I did that somewhat on both of my releases, heavily incorporating digital synthesizers into the arrangements of most of the tracks. Reading back what I just wrote, however, I&#39;m starting to realize that this isn&#39;t a problem of artistic voice or direction. It&#39;s simply a problem of workflow.&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;highs-and-lows-musician&quot;,&quot;rationale&quot;:&quot;That node covers the difficulties of producing music in a home studio/kitchen and mentions Reason 1.0, directly elaborating on the workflow struggles described here.&quot;},{&quot;slug&quot;:&quot;fake-it-music&quot;,&quot;rationale&quot;:&quot;It discusses the difficulty of a single person writing/recording all parts of a rock song versus a full band, which is the core recording challenge raised here.&quot;},{&quot;slug&quot;:&quot;music-projects-as-ephemera&quot;,&quot;rationale&quot;:&quot;It details the author&#39;s history with Reason and Ableton projects, elaborating on the production overhead and tooling mentioned in this node.&quot;},{&quot;slug&quot;:&quot;songwriting-reflections&quot;,&quot;rationale&quot;:&quot;It explores the author&#39;s melodic/harmonic preferences and genre leanings (power chords, minor keys), extending the discussion of what music he finds interesting.&quot;},{&quot;slug&quot;:&quot;motivation-music&quot;,&quot;rationale&quot;:&quot;It presents a framework for what inspires the author to make music, complementing the genre/workflow roadblocks discussed here.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1812,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:868,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:519},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;github&quot;,&quot;fileSlug&quot;:&quot;github&quot;,&quot;title&quot;:&quot;Github&quot;,&quot;content&quot;:&quot;&#92;nI think [Github](https://github.com) is great, I love it. I feel like it keeps getting better and better. I like how all the &#92;&quot;enterprise&#92;&quot; features stay out of your way and are completely unnecessary if you&#39;re just a personal lone hacker working on your own and other&#39;s code. To be clear, I am not in any way opposed to using Github.&#92;n&#92;nI find it interesting, however, that most of the open source, privacy thumping, anti-corporate, free software crusaders I know still use Github. Githubs hedgemony is so complete that it is still unexpected, for me, when I come across a repo that is hosted somewhere other than Github. For example, for my [[bandcamp|Bandcamp alternative site]], I&#39;m using [Faircamp](https://codeberg.org/simonrepp/faircamp) as a backend, which is hosted on something called &#92;&quot;Codeberg&#92;&quot;. I&#39;ve also seen people self host their repos using tools like [Gitea](https://gittea.dev/). I know that at least [GitLab](https://about.gitlab.com/) is somewhat popular. But still, day to day, as I find and read about and contribute to code, that code is on Github.&#92;n&#92;nI also find it interesting that Github kind of made [git](https://git-scm.com/book/en/v2/Getting-Started-About-Version-Control) the default [Version Control System](https://en.wikipedia.org/wiki/Version_control). I mean, 20 years ago we definitely knew we could do better than [CVS](https://cvs.nongnu.org/), and there _was_ [Subversion](https://subversion.apache.org/). I even remember when there were Subversion &lt;=&gt; git import and compatibility layers. But with the popularity of Github, it seems that git just ate the world. [Mercurial](https://www.mercurial-scm.org/) (hg) came out around the same time if I remember correctly, and offered a different opinion on how to have distributed source control in federated repos, but it didn&#39;t catch on the way git did. It&#39;s kind of like the killer app completely _made_ the tool. Sort of like [[Ruby on Rails]], where no one would have ever cared about the Ruby without the Rails.&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;codecov&quot;,&quot;rationale&quot;:&quot;Codecov is a code-quality tool that integrates directly with Github repositories, elaborating on the developer tooling ecosystem discussed here.&quot;},{&quot;slug&quot;:&quot;gemdown&quot;,&quot;rationale&quot;:&quot;Gemdown is one of the author&#39;s own open-source projects hosted on Github, illustrating the day-to-day repo usage described.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:732,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:533,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:393},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;good-song&quot;,&quot;fileSlug&quot;:&quot;good-song&quot;,&quot;title&quot;:&quot;A good song is a good song&quot;,&quot;content&quot;:&quot;A few weeks ago, [[Abby]] and I saw [A Complete Unknown](https://www.imdb.com/title/tt11563598/), the Bob Dylan biopic starring Timothée Chalamet. I really enjoyed the film, partly because of Chalamet&#39;s great performance (he&#39;s been nominated for an Oscar) but mostly because the whole thing plays out like a music video almost. They&#39;re playing and singing songs the entire movie, and Chalamet actually learned how to play the guitar from scratch for the role.&#92;n&#92;nThe film has inspired us to listen to more Dylan and folk music broadly. Abby has actually been writing new verses to classic folk songs like _This Land Is Your Land_ and _Casey Jones (the union scab)_. I wrote a [folk song](https://songs.travisbriggs.com/trash-on-the-nash/) that I posted to my [demo songs website](https://songs.travisbriggs.com). We&#39;ve been playing around with the [Omnichord](https://soundgenetics.com/guide-to-the-omnichord/) I got her for Christmas, strumming chords for songs we want to sing and using it as a bare bones compositional tool (you just play the chords, don&#39;t have to worry about voicings or anything).&#92;n&#92;nAll this makes me wonder if I really have to worry about [[fake-it-music|faking it]], or if writing the songs I write, in the way I write them, is enough. I would like for it to be enough. If I can write a good song, like the one linked above, I can always go back and write new verses or record it properly or create an arrangement with strings and drums and whatever. There&#39;s a quote in the movie that goes by quickly, but basically it&#39;s as simple as &#92;&quot;A good song is a good song&#92;&quot;. When I googled that phrase, lots of stuff came up, so I think it&#39;s kind of a timeless sentiment.&#92;n&#92;nAnd I still believe that songs are sung and while we use the shorthand &#92;&quot;song&#92;&quot; to refer to most pieces of recorded music, stuff like 8 minute EDM trance tracks are not proper &#92;&quot;songs&#92;&quot;. Sorry bedroom producers. I&#39;m not trying to put people down who put together tracks on their laptops. I&#39;m just trying to focus my own practice and realize that while 1 minute loops and whatnot can be fun, they&#39;re not songs. They&#39;re not the music that I want to make. In the context of [[motivation-music|what motivates me]], producing a &#92;&quot;bangin&#92;&quot; EDM track is simply not it.&#92;n&#92;nThink of songs that have been covered over and over. Those compositions were not driven by the performance of the guitar riffs, or the charisma of the lead singer, both of which are likely stripped away in the cover version. And they don&#39;t have to be entirely transformational. The excellence of the song itself is the driving factor. I saw [Guster](https://www.guster.com/) last night and they performed their cover of _(Nothing But) Flowers_ by the Talking Heads. It&#39;s just a great song.&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;genre-thoughts&quot;,&quot;rationale&quot;:&quot;This node discusses focusing on the kind of music you actually want to make (songs vs EDM tracks), which directly parallels the genre-thoughts discussion of writing in the genre you listen to.&quot;},{&quot;slug&quot;:&quot;songwriting-reflections&quot;,&quot;rationale&quot;:&quot;Elaborates on what makes a song compelling in terms of composition, tonality and structure, extending the &#39;a good song is a good song&#39; theme.&quot;},{&quot;slug&quot;:&quot;not-quite-writers-block&quot;,&quot;rationale&quot;:&quot;Touches on writing many songs, EDM loops and finishing/recording songs properly, closely related to this node&#39;s musings on writing enough good songs.&quot;},{&quot;slug&quot;:&quot;recording-setup&quot;,&quot;rationale&quot;:&quot;The node mentions going back to &#39;record it properly or create an arrangement with strings and drums&#39;, which the recording-setup node describes in detail.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:983,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:576,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:282},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;harness-matters-more&quot;,&quot;fileSlug&quot;:&quot;harness-matters-more&quot;,&quot;title&quot;:&quot;Harness Matters More&quot;,&quot;content&quot;:&quot;Many have theorized that the coding **harness** matters more than the backend model when doing AI assisted or &#92;&quot;vibe&#92;&quot; coding. The harness is the set of system prompts, instructions for tool use, ways of loading skills/MCP and utilizing them, patterns for filesystem access, permissions models, etc, that actually makes Claude _Code_ different than vanilla Claude (which can also write code on its own).&#92;n&#92;nI largely agree with this position, based on my general mistrust of [[ai-coding-benchmarks| AI coding benchmarks]].&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;vibe coding&quot;,&quot;anchor_text&quot;:&quot;&#92;&quot;vibe&#92;&quot; coding&quot;,&quot;context&quot;:&quot;the backend model when doing AI assisted or &#92;&quot;vibe&#92;&quot; coding&quot;,&quot;rationale&quot;:&quot;The node directly references vibe coding, which has a dedicated node.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;ai&quot;,&quot;rationale&quot;:&quot;This node discusses AI-assisted coding, which the broader AI node contextualizes.&quot;},{&quot;slug&quot;:&quot;when to vibe code&quot;,&quot;rationale&quot;:&quot;Elaborates on the practice of vibe coding referenced in this node.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:236,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:185,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:0},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;highs-and-lows-musician&quot;,&quot;fileSlug&quot;:&quot;highs-and-lows-musician&quot;,&quot;title&quot;:&quot;The highs and lows of producing music in your home studio/kitchen&quot;,&quot;content&quot;:&quot;&#92;nI don&#39;t really want to give a detailed history of my experiences with writing and recording music here. Like most folks, I&#39;ve been experimenting with music and instruments from a very young age. In the 90s, I &#92;&quot;recorded&#92;&quot; music using a MIDI interface that connected to my [68k Mac&#39;s](http://vintagemacmuseum.com/collection/68k-macintosh/) serial port. In college, I experimented with electronic music with [Reason 1.0](https://reasonstudios.com/) (1.0!), but didn&#39;t have a proper setup for recording acoustic/electric instruments or vocals. After that, I gradually built a [[recording-setup|home recording setup]] that I liked that lived in my bedroom at one apartment and later in my kitchen.&#92;n&#92;nI think the interesting bits start with the formation of my [[danger-third-rail|&#92;&quot;band&#92;&quot;]]. In 2017, I got more &#92;&quot;serious&#92;&quot; about recording music in my kitchen, and decided that with some help from a remote [drummer in the UK](https://emilydrums.com/) and [[DistroKid]], I could actually release some polished music to Spotify (which is what I considered &#92;&quot;making it&#92;&quot;). So I did. That was the _Pink Fluffy Cloud_ single. Releasing the single was definitely a high point. I printed out business cards with the album art and a [URL](https://dangerthirdrail.com) on it. Between the drums, and recording the vocals in an actual studio and getting it mixed and mastered, the project cost about $1200.&#92;n&#92;nOkay 2017 is a long time ago. We&#39;ve had a new US president (and a returning one) and at least one global pandemic since then. The pandemic years can be considered wasted because there was so much confusion and uncertainty during that time. But what about 2019? What about 2022 [ed: 2023] [ed: 2024]? Why hasn&#39;t Danger Third Rail released any new music?&#92;n&#92;nSometimes, it&#39;s a problem of getting going and [[genre-thoughts|writing the songs]].&#92;n&#92;nYes, I am still thinking about the [[blog/latest-and-not-so-greatest|100:10:1]] rule, but if you look at my drafts/demos website at [songs.travisbriggs.com](https://songs.travisbriggs.com), you&#39;ll see that I have actually written 100s of songs and song fragments.&#92;n&#92;nBut in this case, I&#39;ve actually [[fake-it-music|written the songs]]. I&#39;ve got about a dozen that I have even recorded demos of that I consider high enough quality to release. I probably need to rethink my music practice in terms of [[good-song|songwriting]], because that&#39;s what I want to do more than anything. Actually, in the context of this potential album I&#39;m talking about, that might be the biggest factor holding me back.&#92;n&#92;nI started taking mixing lessons so I could mix and master the songs myself, to make the album 100% DIY. However, the mixing lessons were hard and hard to keep up with. I haven&#39;t felt like at my current skill level I could do the songs justice. At the same time, I don&#39;t want to spend thousands of dollars to get them professionally mixed and mastered, since I&#39;ve made a grand total of about 50 bucks ever selling music (from Spotify/iTunes/Amazon/YouTube payments and Bandcamp donations).&#92;n&#92;nReally, it&#39;s not sustainable to continue paying others to mix and master my music, even if I stopped hiring Emily to do the drums and just used software. I need to learn to do it myself. I need to [[nike-the-shit-out-of-it|DIY the shit out of it]].&#92;n&#92;nIt could be a problem of [[motivation-music|motivation]]. Am I happy with what I&#39;ve already done? Am I resting on my laurels, as thin as they might be?&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;Spotify&quot;,&quot;anchor_text&quot;:&quot;Spotify&quot;,&quot;context&quot;:&quot;I could actually release some polished music to Spotify (which is what I considered&quot;,&quot;rationale&quot;:&quot;Direct mention of Spotify, which has its own node about the platform and royalties.&quot;},{&quot;slug&quot;:&quot;Bandcamp&quot;,&quot;anchor_text&quot;:&quot;Bandcamp donations&quot;,&quot;context&quot;:&quot;YouTube payments and Bandcamp donations).&quot;,&quot;rationale&quot;:&quot;Bandcamp is mentioned directly and has a dedicated node about the platform.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;music-projects-as-ephemera&quot;,&quot;rationale&quot;:&quot;Discusses the author&#39;s use of Reason and Ableton for music projects, elaborating on the recording history mentioned here.&quot;},{&quot;slug&quot;:&quot;new-danger-third-rail-ep&quot;,&quot;rationale&quot;:&quot;Covers the planned unreleased Danger Third Rail EP that this node laments not releasing.&quot;},{&quot;slug&quot;:&quot;ableton-12&quot;,&quot;rationale&quot;:&quot;Elaborates on the DAW/production software used in the home studio setup discussed here.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1305,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:582,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:241},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;index&quot;,&quot;fileSlug&quot;:&quot;index&quot;,&quot;title&quot;:&quot;Entering the garden&quot;,&quot;content&quot;:&quot;&#92;n_I&#39;m trying desperately to resist the urge to write this entire website as a choose-your-own adventure game. Must, resist._&#92;n&#92;nAs you enter the garden, you can see a bunch of [[best albums in the universe|records]] for sale, or at least on display. You also hear [[danger-third-rail|a band]] playing somewhere inside. It&#39;s impossible to miss the huge amount of power extension cords and other wires darting through the gate, laying on the ground, and even going up over the walls of the garden. Whatever is going on here requires plenty of electricity it would seem.&#92;n&#92;nYou also see what looks like a disheveled madman rambling to himself about [[blog|blogging]].&#92;n&#92;nThere&#39;s a live digital display telling you about things that are going on right [[now]].&#92;n&#92;nA [[writings|scrappy-looking journal]] is open on a simple table, with some handwritten poetry and the like. &#92;n&#92;nIn the corner of the garden, there is a large smelly [[compost|compost pile]].&#92;n&#92;nYou can also read about [[digital-garden-itself|the digital garden itself]].&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;about&quot;,&quot;rationale&quot;:&quot;The index introduces the garden&#39;s creator, and the About Me node provides the biographical background a visitor would naturally seek next.&quot;},{&quot;slug&quot;:&quot;digital-gardening-principles&quot;,&quot;rationale&quot;:&quot;An entry page to the garden pairs well with the principles that define what this digital garden is trying to be.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:410,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:309,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:185},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;intrisic motivation&quot;,&quot;fileSlug&quot;:&quot;intrisic motivation&quot;,&quot;title&quot;:&quot;Intrisic Motivation&quot;,&quot;content&quot;:&quot;From what I&#39;ve been researching, **intrinsic motivation** is largely defined in terms of it&#39;s opposite, **extrinsic motivation**. Extrinsic motivation is doing something for the reasons that we&#39;re used to: a pat on the back, recognition, appreciation from others. In the age of social media, it&#39;s your likes, comments, follows, etc. It is your inclination to want to do something so that others will be proud of you, so that they will respect you, so that you will earn some reward.&#92;n&#92;nIntrinsic motivation, then, is more often just called motivation: &#92;&quot;I want to do the dishes tonight&#92;&quot; or &#92;&quot;I&#39;ve been writing songs again and I really want to keep doing it&#92;&quot;.&#92;n&#92;nWhile most people will have some degree of both, with the help of my therapist, I&#39;ve identified that I am largely driven by extrinsic motivation. I am not a _people pleaser_ per se, but I do things so that I can serve others, so they will appreciate and be proud of me. I do them so that others will want to keep me around...&#92;n&#92;nWhy is this? Well who knows really. And who cares? My theapist is very strongly [[DBT|DBT based]], and he respects my slightly [[Zen|buddhist views]] that the past doesn&#39;t exist. It doesn&#39;t matter why it&#39;s this way. If I seek to change it, I need only to know how.&#92;n&#92;n---&#92;n&#92;nSo how have I been approaching that then? So far, beyond just being mindful of it (another [[DBT| core DBT skill]]), I have been following a specific practice. What I&#39;ve been doing is _doing things in secret_. By things I mostly mean creative things, but I also mean just as as simply as doing the dishes but not making sure to tell [[Abby]] that I did.&#92;n&#92;nAt the start of a project, I will resolve to **never show it to anyone no matter what**. I&#39;m doing it just for myself. This isn&#39;t a sacred vow. Some part of me, my [shadow self](https://bumblingthroughdungeons.com/top-ten-games-you-can-play-in-your-head-by-yourself-review/), does know that if something comes out good enough -- or if I really just, you know, want to -- I could show people things. Interestingly enough, this does kind of follow the principle of [[dg-public|not having to show off everything]]. In the past couple years, I&#39;ve unfortunately used that last one as an excuse to just simply stop writing.&#92;n&#92;nBasically, this flips the reward structure on its head. Not only do I have to practice being satisfied with simply &#92;&quot;a job well done&#92;&quot;, but I start to get choosy about doing things at all because I know I&#39;m only doing them for myself (and not just paying lip service to that idea like many do).&#92;n&#92;nAnd then the magic happens. It&#39;s almost some kind of exposure therapy. Now that I&#39;m doing things just for myself, that process becomes more and more satisfying. And I can reach more of a [[zen|balanced path]] where I _can_ sometimes do things because I want to show them off. It kind of resets my insensitivity to praise, which I read was something behind some of this (and easily observable in the social media age: creators and influencers are often chasing a &#92;&quot;bigger hit&#92;&quot;, a &#92;&quot;larger win&#92;&quot;, suddenly simply 1 million views isn&#39;t enough).&#92;n&#92;nAnd like all things, like Buddhism and DBT, you&#39;re always practicing this (if you choose); you&#39;re never done. There is no finish line for building intrinsic motivation, and how would I know if I had reached it anyway? I must be self-satisfied with my own progress in this matter.&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;now&quot;,&quot;rationale&quot;:&quot;The &#39;now&#39; node explicitly mentions working on building intrinsic motivation, directly elaborating on this node&#39;s central theme.&quot;},{&quot;slug&quot;:&quot;motivation-music&quot;,&quot;rationale&quot;:&quot;Covers motivation specifically for writing/producing music, closely tied to the creative motivation discussed here.&quot;},{&quot;slug&quot;:&quot;philosophy&quot;,&quot;rationale&quot;:&quot;Elaborates on the Zen/determinist &#39;the past doesn&#39;t exist&#39; views referenced when discussing why motivation is the way it is.&quot;},{&quot;slug&quot;:&quot;dg-public&quot;,&quot;rationale&quot;:&quot;Expands on the &#39;learning in public&#39;/not showing off everything principle the author connects to his secret-creation practice.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1133,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:630,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:393},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;javascript-typescript&quot;,&quot;fileSlug&quot;:&quot;javascript-typescript&quot;,&quot;title&quot;:&quot;Javascript/Typescript&quot;,&quot;content&quot;:&quot;&#92;r&#92;nJavascript is the most popular programming language in the world. It is the language used to write logic for web pages. Also, due to the V8 engine and Nodejs, Javascript can be used on the so-called &#92;&quot;backend&#92;&quot; as a server technology without a browser.&#92;r&#92;n&#92;r&#92;nTypescript is a superset of Javascript that adds support for the computer science concept of &#92;&quot;types&#92;&quot;. This means that instead of having a variable, and it being all loosey-goosey about what kind of data is in it:&#92;r&#92;n&#92;r&#92;n```&#92;r&#92;nvar x = &#39;foo&#39;&#92;r&#92;n// Now it&#39;s a number!&#92;r&#92;nx = 1&#92;r&#92;nconsole.log(x + &#39;bar&#39;);&#92;r&#92;n// prints &#92;&quot;1bar&#92;&quot;, oops I forgot I put that number in there&#92;r&#92;n```&#92;r&#92;n&#92;r&#92;nInstead, you clearly define and declare what types of data go where. The coolest part of Typescript, in my opinion, is the fact that it is a _superset_ of Javascript. So all valid Javascript is valid Typescript. This allows you to transition to Typescript slowly, adding types here and there as you go, instead of having to convert a code project all at once. The downsides are that you have to use a _Typescript compiler_ to turn your code back into Javascript before you can do anything useful with it. Also, there&#39;s times where the types of certain data can be intentionally ambiguous, and there are firey hoops to jump through in those cases in order to get the compiler to &#92;&quot;play nice&#92;&quot;. Overall, though, Typescript is great and I would strongly recommend it to any team of more than 1 person.&#92;r&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;random-knowledge-about-javascript-and-typescript&quot;,&quot;rationale&quot;:&quot;That node covers the same Javascript/Typescript topic in more depth and would elaborate on the concepts here.&quot;},{&quot;slug&quot;:&quot;Vue.js&quot;,&quot;rationale&quot;:&quot;Vue.js is a Javascript/Typescript framework and directly builds on the technologies discussed here.&quot;},{&quot;slug&quot;:&quot;programming languages&quot;,&quot;rationale&quot;:&quot;This meta node ties together all the programming language nodes including Javascript/Typescript.&quot;},{&quot;slug&quot;:&quot;what-programming-language-should-i-learn&quot;,&quot;rationale&quot;:&quot;Discusses choosing languages including Javascript, extending the practical advice about the language.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:497,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:232,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:0},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;motivation-music&quot;,&quot;fileSlug&quot;:&quot;motivation-music&quot;,&quot;title&quot;:&quot;Music Making Motivation&quot;,&quot;content&quot;:&quot;As the founding, primary, and only member of [[danger-third-rail|Danger Third Rail]], these are my opinions on motivation for writing and producing music for the project.&#92;n&#92;nConsider the following graph:&#92;n&#92;n*TODO: insert graph*&#92;n&#92;nThe y axis is how good a song or album is, from the absolute worst to absolutely mind-blowingly incredible (all of this is my opinion of course). The x axis is how much the song or album inspires me to make music.&#92;n&#92;nSo of course there are 4 broad categories delineated by the chart.&#92;n&#92;n### Terrible and makes me want to make music&#92;n&#92;nThese are pretty easy to understand. Songs that are so bad that I think, &#92;&quot;Oh come on, I can do better than this. *Anyone* can do better than this!&#92;&quot;. I feel like I want to make music that is better than these because I think I can, it&#39;s really not that hard. And usually this is popular music I&#39;m considering. If *this* can get popular, imagine what I could do!&#92;n&#92;n### Great and makes me want to make music&#92;n&#92;nThis category is your classic &#92;&quot;[The Pixies](https://www.blowtorchrecords.com/post/why-pixies-are-the-perfect-band) are your favorite band&#39;s favorite band&#92;&quot; choices. You hear these songs, they&#39;re great, and suddenly you go out and buy a guitar because you want to be the next Joe Strummer. This is inspiration. This is what motivates a lot of music out there, the love of something great and inspiring.&#92;n&#92;n### Great and makes me not want to make music&#92;n&#92;nWhile music in the previous category is fun and inspiring, this category is composed more of the music that is *terrifyingly good*. It&#39;s intimidating. These songs and albums are so amazing, so detailed, so enthralling and engaging, so **perfect** that I can&#39;t imagine that anything I make would ever stack up. There&#39;s no point to making any music at all, because it will never be as good as these.&#92;n&#92;n### Terrible and makes me not want to make music&#92;n&#92;nThis one is a bit harder to pin down completely, and harder to explain. It&#39;s not really music that is heinously bad, per se, but more like uninspiring. I hear something in this category and I think, &#92;&quot;That sucks&#92;&quot; but instead of &#92;&quot;...and I could do so much better&#92;&quot; like above, it&#39;s more like &#92;&quot;...and this is what I&#39;m going to sound like so there&#39;s no point&#92;&quot;. Part of this is the idea that there are a hundred million songs on [[Spotify]] and ~50k being added every day. Clearly not all of this is in the &#92;&quot;great music&#92;&quot; categories above. They&#39;re probably crappy or worse. Why should I bother, I think, to add to this swirling mess?&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;the-unattainable-and-the-attainable&quot;,&quot;rationale&quot;:&quot;Directly explores the &#39;great and makes me not want to make music&#39; idea, contrasting albums that feel unattainable versus ones you feel you could make yourself.&quot;},{&quot;slug&quot;:&quot;intrisic motivation&quot;,&quot;rationale&quot;:&quot;This node is explicitly about motivation for making music, which connects to the discussion of intrinsic vs extrinsic motivation.&quot;},{&quot;slug&quot;:&quot;fake-it-music&quot;,&quot;rationale&quot;:&quot;Elaborates on the challenges and motivation of writing/producing music as a solo home musician for Danger Third Rail.&quot;},{&quot;slug&quot;:&quot;genre-thoughts&quot;,&quot;rationale&quot;:&quot;Discusses roadblocks in the music-making process and how listening tastes relate to what one is inspired to produce.&quot;},{&quot;slug&quot;:&quot;not-quite-writers-block&quot;,&quot;rationale&quot;:&quot;Continues the theme of struggling with motivation and productivity in songwriting.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:836,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:574,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:259},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;new-year-2025&quot;,&quot;fileSlug&quot;:&quot;new-year-2025&quot;,&quot;title&quot;:&quot;New Year&#39;s Day 2025&quot;,&quot;content&quot;:&quot;This year, for the holidays, my wife [[Abby]] and I spent 16 days in Massachusetts with her family. Tomorrow morning at 3 AM we head to the airport. We&#39;ve visited them every December for the past few years, but this year&#39;s visit was particularly long. Going into it, I was pretty worried that I would have several days of long boredom. I was worried there wouldn&#39;t be much to do in general. However, I was mostly wrong. There were only a few long mornings before everyone was up, but otherwise we kept pretty busy. We visited both of my sisters and their kids, on different days. We visited an old friend of Abby&#39;s and got to meet their 3 month old baby. I held the baby and he cooed and slept on me, which was very precious.&#92;n&#92;nToday is New Year&#39;s Day. I think at this point I&#39;ve done [[blog/new-year | New Year&#39;s posts]] to death. I&#39;m not sure there&#39;s anything left to say about it. I&#39;m not making any hard and fast resolutions, though we have a goal to **finally** get our apartment organized and livable by April 1. It might be a tough year, because in the past couple of months Abby has gotten some not-so-great news about her health. I&#39;m worried, I&#39;m anxious, but it is what it is. We&#39;ll keep going, keep trying, keep struggling and keep living. One foot in front of the other. One step at a time.&#92;n&#92;nMy wife&#39;s family is really lovely, did I mention that? They are sweet and caring and abundantly supportive of me and one another. They have graciously accepted me into their family and treat me like one of their own. Overall, it was a really amazing visit. There were lots of laughs, some great meals, and lots of one on one time with each member of the family. I can sometimes get really reactive with her parents, particularly her mother, and get frustrated when I think she&#39;s not listening or otherwise be mean to her. But looking back, I think I refrained from that for the majority of the trip, and not by any particular effort of my own. I think maybe I&#39;m just in a better place mentally this year than I have been in the past, which is something to be truly grateful for.&#92;n&#92;nSo welcome to 2025. So far it feels a lot like 2024!&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;giving-up-on-resolutions&quot;,&quot;rationale&quot;:&quot;This node discusses not making hard resolutions, which directly elaborates on the author&#39;s stance on abandoning New Year&#39;s resolutions.&quot;},{&quot;slug&quot;:&quot;another-year-without-resolutions&quot;,&quot;rationale&quot;:&quot;A parallel year-in-review post about forgoing resolutions that would deepen the connection between these New Year reflections.&quot;},{&quot;slug&quot;:&quot;new-year&quot;,&quot;rationale&quot;:&quot;Elaborates the recurring &#39;every day is New Year&#39;s Day&#39; philosophy the author references when saying he&#39;s done New Year&#39;s posts to death.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:732,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:409,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:205},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;nike-the-shit-out-of-it&quot;,&quot;fileSlug&quot;:&quot;nike-the-shit-out-of-it&quot;,&quot;title&quot;:&quot;NIKE the shit out of it&quot;,&quot;content&quot;:&quot;Sometimes I think I need to just NIKE the shit out of some songwriting (just do it).&#92;n&#92;nWhen this article was written, in November 2017, I hadn&#39;t published a song to [songs.travisbriggs.com](https://songs.travisbriggs.com) since July of that year.&#92;n&#92;n**It&#39;s gotten worse.**&#92;n&#92;nI apparently didn&#39;t publish a song _at all_ in 2022, and I&#39;m on track to not publish anything in 2024 either. I actually have written a few songs since then, but none that were finished enough (in either writing or arranging or recording) to warrant publishing. I haven&#39;t gone through the process to actually clean them all up, mix them, add missing instruments and all that. It just seems like a lot of work without a lot of payoff. Of course, the payoff might be that I don&#39;t end up writing remorseful garden nodes like this one.&#92;n&#92;nI feel like I&#39;ve lost a sense of wonder in my songwriting process. Sometimes, I&#39;m going at it with feverish diligence and follow through because I feel like I have to, I have to do it to make myself complete. Either that or I&#39;m just &#92;&quot;messing around&#92;&quot;, indulging in &#92;&quot;letting myself play&#92;&quot; but ending up with listless, half-complete junk because I&#39;m not forcing myself to write coherently.&#92;n&#92;nI could resolve now to challenge myself, to push my comfort zone and write something that moves my songwriting forward. I want to issue myself such a challenge. And I&#39;m not reluctant to do so because I feel I will fail, necessarily. I think I could definitely do it.&#92;n&#92;nThe real reluctance comes from the fact that I think I&#39;m stagnating for another reason. I&#39;ve developed the basic facets of songwriting to a certain degree. I can write songs. I can write songs where I write all of the instrumental parts, the arrangement, the mix, etc. But it&#39;s exhausting, friend. It really is.&#92;n&#92;nI want to collaborate. I want to come up with a strong, driving chorus with no consideration for how it will fit into a song, and have another real breathing person help me figure out an intro and verse that will work with it into a finished song. I want to play with a band, where the drum feel and groove drive the composition of the guitar and bass parts, rather than playing guitar parts, adding bass later, and always just having a drum machine on repeat for the whole song.&#92;n&#92;nWhen I first wrote this garden node I thought: _Sigh. It&#39;s not going to happen._ I felt like I was some kind of musical incel, where I&#39;ll never find anyone to collaborate with. I didn&#39;t know where to look, where to start. Basically, it&#39;s just as awkward as dating, except even more niche.&#92;n&#92;nSince then, in 2024, I&#39;ve started playing music with my friend Anosh. He&#39;s been learning to play drums and has said that playing together has helped him get better, quicker. I totally see those results. We play a bunch of covers, like Green Day songs which are easy on both guitar and drums. Last week, though, I introduced a little riff and asked him to play a certain drum beat, so I guess you could say it&#39;s our first original.&#92;n&#92;nWe don&#39;t have a bassist. We&#39;re not a band. We&#39;re not [[danger-third-rail|Danger Third Rail]].&#92;n&#92;nBut it&#39;s satisfying playing music with another musician in the room. It&#39;s not only good practice for my guitar and vocals, but it&#39;s inspiring. We&#39;ll see if it translates into any new material on [songs.travisbriggs.com](https://songs.travisbriggs.com).&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;bands-as-sports-teams&quot;,&quot;anchor_text&quot;:&quot;I want to play with a band&quot;,&quot;context&quot;:&quot;finished song. I want to play with a band, where the drum feel and groove&quot;,&quot;rationale&quot;:&quot;The node discusses playing in a band, which directly connects to the bands-as-sports-teams musings on band dynamics.&quot;},{&quot;slug&quot;:&quot;the-unattainable-and-the-attainable&quot;,&quot;anchor_text&quot;:&quot;Green Day songs&quot;,&quot;context&quot;:&quot;We play a bunch of covers, like Green Day songs which are easy on both guitar and drums&quot;,&quot;rationale&quot;:&quot;That node discusses Green Day albums as musical benchmarks the author aspires to.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;something-terrible&quot;,&quot;rationale&quot;:&quot;Elaborates on the &#39;Make Something Terrible Challenge&#39; the author gives himself to overcome creative stagnation, directly relevant to challenging his songwriting.&quot;},{&quot;slug&quot;:&quot;not-quite-writers-block&quot;,&quot;rationale&quot;:&quot;Discusses the same struggle of producing finished, publishable songs and the &#39;hundreds of songs&#39; process.&quot;},{&quot;slug&quot;:&quot;fake-it-music&quot;,&quot;rationale&quot;:&quot;Explores the exhaustion of one person writing all instrument parts versus a full band, exactly the frustration expressed here.&quot;},{&quot;slug&quot;:&quot;highs-and-lows-musician&quot;,&quot;rationale&quot;:&quot;Provides broader context on the author&#39;s home-studio recording history and solo production process referenced in this node.&quot;},{&quot;slug&quot;:&quot;motivation-music&quot;,&quot;rationale&quot;:&quot;Details the author&#39;s motivations for writing and producing music under the Danger Third Rail project, extending the reflection on drive and payoff.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1124,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:986,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:469},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;not the circumstances&quot;,&quot;fileSlug&quot;:&quot;not the circumstances&quot;,&quot;title&quot;:&quot;Not The Circumstances&quot;,&quot;content&quot;:&quot;_Turns out not where but who you&#39;re with that really matters_&#92;n&#92;n- Dave Matthews, _Best Of What&#39;s Around_, from the 1996 album _Under The Table And Dreaming_&#92;n&#92;nYou can&#39;t control what happens, only the way you respond to it. See also [[free will]].&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;now&quot;,&quot;rationale&quot;:&quot;The &#39;Now&#39; node explicitly states the belief that &#39;it&#39;s not the circumstances but how you react to them that matters&#39;, directly echoing this node&#39;s theme.&quot;},{&quot;slug&quot;:&quot;coping-skills&quot;,&quot;rationale&quot;:&quot;Coping skills node reflects on accepting pain and choosing resilience, elaborating on responding to what happens rather than the events themselves.&quot;},{&quot;slug&quot;:&quot;philosophy&quot;,&quot;rationale&quot;:&quot;The philosophy node covers determinism and existentialism, connecting to this node&#39;s ideas about control and free will.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:140,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:305,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:112},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;now&quot;,&quot;fileSlug&quot;:&quot;now&quot;,&quot;title&quot;:&quot;Now&quot;,&quot;content&quot;:&quot;2026 has been getting much better! Mostly from a mental health perspective. I&#39;ve&#92;ncome to truly believe that it&#39;s [[not the circumstances]] but how you react to them&#92;nthat matters. In that sense, what I&#39;m saying is: &#92;&quot;things&#92;&quot; aren&#39;t going better, they&#92;nweren&#39;t that bad to begin with.&#92;n&#92;nI&#39;m mentoring someone in [Google Summer of Code](https://summerofcode.withgoogle.com/)!&#92;nI&#39;ve done it twice before, both times for [[Kiwix]]. It&#39;s going well so far, my&#92;nstudent is really easy going and fun to work with.&#92;n&#92;nI really have truly embraced [[vibe coding]], and now not only as a practice that&#92;nI feel is somehow necessary to avoid my total obselescence in society.&#92;n&#92;nSpeaking of payoffs, I&#39;ve also been working on building [[intrisic motivation]].&#92;n&#92;nWork is going well. More stressful than usual, but I actually think that&#39;s because&#92;nI&#39;m more motivated and engaged then I&#39;ve been in a long time.&#92;n&#92;nCurrently, I&#39;m still living in San Francisco, in the same apartment I&#39;ve lived&#92;nin since we moved there in December 2012. What can I say, it&#39;s cozy,&#92;nrent-controlled and in an awesome neighborhood (near Zeitgeist and Pizza Zone).&#92;nI also have the same job at YouTube that I&#39;ve had all that time.&#92;n&#92;nNow I&#39;m typing a whole bunch of crap! Why? Because I want to test if the autosave interrupts my typing!&#92;n&#92;n---&#92;n&#92;n### What is a &#39;now&#39; page?&#92;n&#92;nA now page is like an [[about]] page, but with the scope of &#92;&quot;right now&#92;&quot; instead&#92;nof a long view. The easiest way to think about it is: what would you tell a&#92;nfriend that you haven&#39;t seen in a while about what you&#39;re up to?&#92;n&#92;n### Where can I find a list of people with websites that feature a &#39;now&#39; page?&#92;n&#92;nJust go to [nownownow.com](https://nownownow.com). You can add your site to that&#92;ndirectory should you choose to add a /now page to your site.&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;YouTube&quot;,&quot;anchor_text&quot;:&quot;YouTube&quot;,&quot;context&quot;:&quot;I also have the same job at YouTube that I&#39;ve had all that time&quot;,&quot;rationale&quot;:&quot;YouTube has a dedicated node describing it as the company that signs his paycheck.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;ai&quot;,&quot;rationale&quot;:&quot;His embrace of vibe coding and worry about &#39;obsolescence in society&#39; connects to his broader thoughts on the AI era.&quot;},{&quot;slug&quot;:&quot;philosophy&quot;,&quot;rationale&quot;:&quot;The &#39;not the circumstances but how you react&#39; idea and mental-health framing tie into his existentialist/Zen philosophy node.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:667,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:306,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:95},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;null-rail&quot;,&quot;fileSlug&quot;:&quot;null-rail&quot;,&quot;title&quot;:&quot;Null Rail&quot;,&quot;content&quot;:&quot;In 2026, I&#39;ve now really embraced [[ai|AI]] and [[vibe coding]]. Like really embraced it.&#92;n&#92;nOne of the projects that I&#39;ve been working on is [Null Rail](https://null.dangerthirdrail.com). It is a site where I am &#92;&quot;learning&#92;&quot; in public, just like this digital garden. It basically came about because I wanted to share some of these tracks/songs, but I didn&#39;t want to conflate them with my actual, hand-crafted, 100% human made demos at [songs.travisbriggs.com](https://songs.travisbriggs.com). I also wanted to be able to share notes on each of the songs, to really document my process as well as my thoughts on the end result.&#92;n&#92;nI took the opportunity to use [Claude Design](https://www.anthropic.com/news/claude-design-anthropic-labs), which was pretty new at the time. I fed it a screenshot of the now defunct [[Rainfall]], RIP (TODO: embed image). It came up with a site with a remarkably close color scheme and design system. The point of using Rainfall was not because that site was particularly well designed, but that it was designed _by me, from scratch, with my own ideas_.&#92;n&#92;nOf course, once I started [[vibe coding]] it, I started recklessly adding all kinds of features that I was thinking of. It was originally going to just be a blog style [[dg-reverse|reverse chronological list]]. With a media player of course. But then I thought, maybe I can showcase different versions of the track? This came about organically because as I was playing in [[Suno]], I would naturally try different variations. That also later came in handy when I started making [versions from samples](https://null.dangerthirdrail.com/#sample/version/Starting%20Point) (this is the first one ever), as well as feeding in [my own finished songs](https://null.dangerthirdrail.com/#you-re-a-star/version/Minimal%20Prompting) (that&#39;s a whole other can of worms that I have many feels about).&#92;n&#92;nFunctionally, this works. It gives me an easy way to share Suno experiments with people, without polluting my existing showcase projects or shuffling .mp3 files around.&#92;n&#92;nSo what&#39;s the end game here? I&#39;ve.....asked AI for the answer. The Suno tracks sound good, they&#39;re beyond an uncanny valley. But they have significant flaws and AI &#92;&quot;tells&#92;&quot;. The vocals sound good at first glance, but if you listen, they&#39;re obviously synthetic. **These are demos**. There is a _ton_ of embellishment; noodling; &#92;&quot;virtuoso-ism&#92;&quot; (a term I just invented to describe lots of impossibly fast and perfect notes that no human could ever play). The mixes just sound like &#92;&quot;mush&#92;&quot;, I don&#39;t have a better word to describe it. The vocal lines are pretty distinct, but there&#39;s no separation between the instruments in the mix. (Hmm, I wonder why. Oh right, there _are no instruments!_).&#92;n&#92;nAn existential question then: is it valuable to convert my demos (ie [songs.travisbriggs.com](https://songs.travisbriggs.com)) into, you know, more polished demos? In some ways, it makes me think of myself as a pure songwriter. Here comes the personality crisis then, because I&#39;ve always prefered the view of myself as a full on DIY indie musician, in some sense an [[danger-third-rail|act or artist]] that happens to be mostly one person (a la Dashboard Confessional or The Shins or the first Foo Fighters album).&#92;n&#92;nCan I find some way to pitch these songs to someone who may be interested? I see a few problems with that:&#92;n&#92;n* I&#39;m writing in styles that were popular 20-30 years ago and have almost zero relevance today&#92;n* I have no songwriting or industry network&#92;n* I&#39;m writing songs that would be traditionally performed by rock/blues/punk bands. Those bands write their own damn songs, thank you very much. (Though there is debate about how much help they get from producers when in the studio)&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;dg-public&quot;,&quot;anchor_text&quot;:&quot;learning&quot;,&quot;context&quot;:&quot;It is a site where I am &#92;&quot;learning&#92;&quot; in public, just like this digital garden&quot;,&quot;rationale&quot;:&quot;The concept of learning in public is directly the subject of this node.&quot;},{&quot;slug&quot;:&quot;genre-thoughts&quot;,&quot;anchor_text&quot;:&quot;writing in styles that were popular 20-30 years ago&quot;,&quot;context&quot;:&quot;I&#39;m writing in styles that were popular 20-30 years ago and have almost zero relevance today&quot;,&quot;rationale&quot;:&quot;This node discusses the dichotomy between the genres he writes and listens to versus what&#39;s marketable.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;ai-music-trends&quot;,&quot;rationale&quot;:&quot;Elaborates on the philosophical debate about AI-made music versus human craft, directly related to the &#39;AI tells&#39; and uncanny valley concerns here.&quot;},{&quot;slug&quot;:&quot;highs-and-lows-musician&quot;,&quot;rationale&quot;:&quot;Provides deeper background on his home recording process and the demos hosted at songs.travisbriggs.com referenced here.&quot;},{&quot;slug&quot;:&quot;motivation-music&quot;,&quot;rationale&quot;:&quot;Connects to his ongoing questions about the value and end game of making music for Danger Third Rail.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1321,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:974,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:595},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;philosophy&quot;,&quot;fileSlug&quot;:&quot;philosophy&quot;,&quot;title&quot;:&quot;philosophy&quot;,&quot;content&quot;:&quot;&#92;nI don&#39;t have a ton of opinions on philosophy. I consider myself something of an existentialist, because I believe that life and existence are absurd and without inherent meaning. We must create our own meaning. However most days it&#39;s hard for me to actually picture [Sisyphus happy](https://en.wikipedia.org/wiki/The_Myth_of_Sisyphus).&#92;n&#92;nI don&#39;t believe in free will. I am a determinist. I believe there is plenty of evidence that &#92;&quot;free will&#92;&quot; is the name we give to the process by which our conscious mind explains to itself why it did something.&#92;n&#92;nI&#39;m also an [[atheism|atheist]], some sort of [[zen|Zen Buddhist]].&#92;n&#92;nIt&#39;s hard to write a garden node title &#92;&quot;philosophy&#92;&quot;, which exists in the abstract without any particular object that the supposed philosophy is focused on. Relatedly, I&#39;ve started getting interested in [[Zen]] again. In one of the books I was reading about Zen, the author discussed how it&#39;s impossible to picture an object without a subject. I think this page is kind of a testament to that.&#92;n&#92;nAt some points in time I&#39;ve described myself as an &#92;&quot;Atheistic Taoist&#92;&quot;. Anyways, this is the philosophy node, not the religion node. But I think I need to take more inspiration from Wikipedia, where yes, [Everything In Its Right Place](https://www.youtube.com/watch?v=onRk0sjSgFU), but also it&#39;s okay if there&#39;s some redundant information here and there, if it helps explain and clarify things. And especially, in the case of this digital garden, if it adds flavor or character or I just, you know, feel like doing it!&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;free will&quot;,&quot;anchor_text&quot;:&quot;free will&quot;,&quot;context&quot;:&quot;I don&#39;t believe in free will. I am a determinist.&quot;,&quot;rationale&quot;:&quot;There is a dedicated node about Free Will, which this sentence directly discusses.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;not the circumstances&quot;,&quot;rationale&quot;:&quot;That node explicitly ties responding to circumstances to free will, extending this node&#39;s determinism discussion.&quot;},{&quot;slug&quot;:&quot;a-story-of-failure&quot;,&quot;rationale&quot;:&quot;It expresses the same existentialist/no-free-will &#39;driftwood on the ocean&#39; outlook articulated here.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:556,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:324,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:126},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;plans&quot;,&quot;fileSlug&quot;:&quot;plans&quot;,&quot;title&quot;:&quot;Plans for the digital garden&quot;,&quot;content&quot;:&quot;&#92;nHere I&#39;d like to discuss some of my plans, hopes, aspirations and whatnot for this digital garden. I&#39;ve documented some of the more [technical issues](https://github.com/audiodude/garden.travisbriggs.com/issues) on the garden&#39;s [Github repo](https://github.com/audiodude/garden.travisbriggs.com). But I guess what I want to do here is talk more about what I plan to write about, how I plan to organize things.&#92;n&#92;nI&#39;m trying to do all this in accordance with my interpretation of the [[digital-gardening-principles|digital gardening principles]].&#92;n&#92;nI did eventually add a [[comments-research|comments system]], which I&#39;m quite proud of!&#92;n&#92;nI added a [[now]] page, which I think is some kind of progress. Now (see what I did there?) I need to make sure I keep it updated. That&#39;s the struggle in general with this garden, is that if I don&#39;t have something new to say or some idea to convey, I don&#39;t spend much time &#92;&quot;tending&#92;&quot; it. So far, my [[compost|compost pile]] is a good step in the direction of eschewing [[dg-reverse|reverse chronilogical links]] at least.&#92;n&#92;nI still want to move the content in my blog posts into more organic topic pages. Some of them, like [[blog/what-programming-language-should-i-learn|&#92;&quot;What programming language should I learn?&#92;&quot;]] lend themselves nicely to that. But others, where I&#39;m just [[blog/latest-and-not-so-greatest|randomly complaining about music production]] or something, I&#39;m not sure how to work them in. Maybe that&#39;s the fun!&#92;n&#92;nI think the spirit of the thing is that it grows organically, like a real garden.&#92;n&#92;nOne thing I&#39;ve done recently is create a mini CMS for myself, a la the one that I vibe coded for [[null-rail]]. I realized that with a web based GUI for writing and organizing posts makes things so much easier than editing flat files in [VSCode](https://code.visualstudio.com/). I&#39;ve already know for a while that the less friction there is, the more likely I am to write and edit and update.&#92;n&#92;nI definitely already have a bunch of &#92;&quot;Stub&#92;&quot; and &#92;&quot;Start&#92;&quot; quality articles that I could expand upon. Not sure what exactly to do there other than simply write a Wikipedia article on the topic (like [[DistroKid]]). I read in Andy Matuschak&#39;s &#92;&quot;Evergreen Notes&#92;&quot; that [Evergreen notes should be concept-oriented](https://notes.andymatuschak.org/About_these_notes?stackedNotes=z4SDCZQeRo4xFEQ8H4qrSqd68ucpgE6LU155C&amp;stackedNotes=z6bci25mVUBNFdVWSrQNKr6u7AZ1jFzfTVbMF) which I think I&#39;m not exactly following, because I&#39;ve developed lots of garden &#92;&quot;nodes&#92;&quot; that are nouns.&#92;n&#92;nAlso Andy says that [Evergreen notes should be densely linked](https://notes.andymatuschak.org/About_these_notes?stackedNotes=z4SDCZQeRo4xFEQ8H4qrSqd68ucpgE6LU155C&amp;stackedNotes=z6bci25mVUBNFdVWSrQNKr6u7AZ1jFzfTVbMF&amp;stackedNotes=z2HUE4ABbQjUNjrNemvkTCsLa1LPDRuwh1tXC) which I knew intuitively, but I hadn&#39;t really been following. I think I need to actively seek out and link together my nodes (and no, I&#39;m not going to belabor the analogy and start calling them &#92;&quot;plants&#92;&quot; or &#92;&quot;seeds&#92;&quot;). I&#39;m also considering using vibe coding to analyze garden nodes and do this.&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;vibe coding&quot;,&quot;anchor_text&quot;:&quot;vibe coded&quot;,&quot;context&quot;:&quot;a mini CMS for myself, a la the one that I vibe coded for&quot;,&quot;rationale&quot;:&quot;The node discusses vibe coding, which has a dedicated node.&quot;},{&quot;slug&quot;:&quot;vibe coding&quot;,&quot;anchor_text&quot;:&quot;vibe coding&quot;,&quot;context&quot;:&quot;I&#39;m also considering using vibe coding to analyze garden nodes&quot;,&quot;rationale&quot;:&quot;Direct mention of the vibe coding practice covered by that node.&quot;},{&quot;slug&quot;:&quot;digital-garden-itself&quot;,&quot;anchor_text&quot;:&quot;this digital garden&quot;,&quot;context&quot;:&quot;plans, hopes, aspirations and whatnot for this digital garden&quot;,&quot;rationale&quot;:&quot;This node is about the garden which has its own dedicated overview node.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;dg-evergreen&quot;,&quot;rationale&quot;:&quot;The node discusses Andy Matuschak&#39;s Evergreen Notes concept, elaborated in this node.&quot;},{&quot;slug&quot;:&quot;dg-new&quot;,&quot;rationale&quot;:&quot;The idea of the garden embracing new tools and growing organically connects to this principle node.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1283,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:522,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:173},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;programming languages&quot;,&quot;fileSlug&quot;:&quot;programming languages&quot;,&quot;title&quot;:&quot;Programming languages (meta)&quot;,&quot;content&quot;:&quot;I realize that I&#39;ve written a lot about different programming languages that I&#39;m familiar with in this digital garden. This node is sort of a meta node that serves to tie those pages together a bit.&#92;n&#92;nHere is a list:&#92;n&#92;n* [[Python]] - my current go to for pretty much everything. [[wp-1.0|My wikipedia bot]] was written in it. So was [[Rainfall]].&#92;n* [[javascript-typescript|JavaScript/TypeScript]] - This is what I mostly do at work now. And I use it for the web apps listed above. I love pairing it with the [[Vue.js]] framework for modern frontend applications.&#92;n* [[Ruby on Rails]]&#92;n* [[Perl]]&#92;n* [[Java]]&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;what-programming-language-should-i-learn&quot;,&quot;rationale&quot;:&quot;This meta node listing programming languages naturally connects to the guide on which language a beginner should learn.&quot;},{&quot;slug&quot;:&quot;random-knowledge-about-javascript-and-typescript&quot;,&quot;rationale&quot;:&quot;Elaborates specifically on the JavaScript/TypeScript entry mentioned in the list.&quot;},{&quot;slug&quot;:&quot;warnings-python&quot;,&quot;rationale&quot;:&quot;Provides a deeper technical dive into Python, which is the first language featured in this node.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:319,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:345,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:162},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;recording-setup&quot;,&quot;fileSlug&quot;:&quot;recording-setup&quot;,&quot;title&quot;:&quot;Recording setup&quot;,&quot;content&quot;:&quot;&#92;r&#92;nI have had some different recording setups over the past 20+ years I&#39;ve been making digital music, but all of them were based around recording instruments into a [DAW](https://www.avid.com/resource-center/what-is-a-daw). Currently my recording studio is in a corner of my kitchen and is based around a Windows 11 computer and digital composing/recording/editing in [[ableton-12|Ableton]]. Previously I used Ableton on a Mac, but I wasn&#39;t interested in buying Macs anymore since they switched to Apple Silicon. I&#39;ve got a [Steinberg UR22](https://www.sweetwater.com/store/detail/UR22C--steinberg-ur22c-usb-audio-interface?cond=UR22CU1) audio interface that I plug guitar or a mic into, or sometimes both. I haven&#39;t recorded acoustic guitar in like 8 years, mostly I just do electric. I don&#39;t mic any amps, I always just use amp modelling plugins like [Amplitube](https://www.ikmultimedia.com/products/amplitube5/?pkey=amplitube-5-max-v2) and [Guitar Rig](https://www.native-instruments.com/en/products/komplete/guitar/guitar-rig-7-pro/). I also own an electric bass that I can record using the same audio interface and plugins. And I have a couple of MIDI keyboards, including an [Akai MPK Mini](https://www.sweetwater.com/store/detail/MPKMiniPlus--akai-professional-mpk-mini-plus-37-key-keyboard-controller) which sits directly next to my computer chair.&#92;r&#92;n&#92;r&#92;nIt&#39;s a very sparse setup, but I like it because it mostly &#92;&quot;stays out of my way&#92;&quot;.&#92;r&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;highs-and-lows-musician&quot;,&quot;rationale&quot;:&quot;Directly discusses the evolution of the author&#39;s home recording setup in his bedroom/kitchen, elaborating on this node&#39;s topic.&quot;},{&quot;slug&quot;:&quot;ableton&quot;,&quot;rationale&quot;:&quot;General node about Ableton Live, the DAW central to this recording setup.&quot;},{&quot;slug&quot;:&quot;danger-third-rail&quot;,&quot;rationale&quot;:&quot;The band/recording project that uses this recording setup to produce music.&quot;},{&quot;slug&quot;:&quot;music-projects-as-ephemera&quot;,&quot;rationale&quot;:&quot;Discusses the author&#39;s Ableton/Reason project structure and recording history, extending the setup details here.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:609,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:372,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:154},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;spanish&quot;,&quot;fileSlug&quot;:&quot;spanish&quot;,&quot;title&quot;:&quot;A bit of Spanish&quot;,&quot;content&quot;:&quot;Honestly, Spanish is by far the most useful language I could end up learning, seeing as I live in the San Francisco Mission District.&#92;r&#92;n&#92;r&#92;nI took Spanish in middle school and high school. Although I don&#39;t currently speak it, I can read and pronounce words (Spanish has regular pronunciation, unlike English). When I went to [[mexico-city|Mexico City]] in February 2024, I found that I was definitely able to communicate to some degree with people at cafes or on the street. I didn&#39;t understand much of what was spoken to me, but I could understand written text pretty well, and piece together phrases to convey what I wanted to convey.&#92;r&#92;n&#92;r&#92;nIn 2023 I signed up for [Pimsleur Spanish](https://www.pimsleur.com/learn-spanish-latin-american/subscription-all-access). I did the first audio lesson (written lessons don&#39;t start until after the second lesson). I only stuck with it for like a week. Part of the problem is that the first couple of lessons are just way too basic for me. But honestly, I wish I could stick with it. Who doesn&#39;t want to learn another language? And I have a leg up on Spanish, so to speak.&#92;r&#92;n&#92;r&#92;nI also downloaded a deck of Spanish phrases for the [[anki|Anki flashcard system]].&#92;r&#92;n&#92;r&#92;nActually, it&#39;s interesting that I&#39;m using Pimsleur and Anki, because they both used the &#92;&quot;spaced repetition&#92;&quot; method for showing you something right when you were about to forget it, and thus helping you commit it to long term memory. Or at least that&#39;s the claim, and I know that definitely the Anki folks claim to have actual research to back it up.&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[]},&quot;usage&quot;:{&quot;input_tokens&quot;:558,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:114,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:93},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;sudomake-friends&quot;,&quot;fileSlug&quot;:&quot;sudomake-friends&quot;,&quot;title&quot;:&quot;Sudomake Friends&quot;,&quot;content&quot;:&quot;Once I started using [OpenClaw](https://openclaw.ai/) (then switched to [nanoclaw](https://github.com/nanocoai/nanoclaw)), one of the coolest main takeaways was that I could get AI bots to message me on [Telegram](https://telegram.org/).&#92;n&#92;nI thought about all the news articles about how people had gotten addicted to talking to LLMs that they considered to be real people, and my conclusion was that I should try it out!&#92;n&#92;nSo I made [Sudomake Friends](https://github.com/audiodude/sudomake-friends).&#92;n&#92;nIt&#39;s kind of like an RPG where you roleplay having friends....🙃&#92;n&#92;nYou enter information about yourself, and then &#92;&quot;roll&#92;&quot; the friends based on your interests and personality. You can edit them and re-roll in a [TUI](https://en.wikipedia.org/wiki/Text-based_user_interface).&#92;n&#92;nOnce you&#39;ve selected your friends and added them to a Telegram group, they text you and each other based on their &#92;&quot;work and sleep schedules&#92;&quot;. They respond to chats.....but not always, like real people. And they don&#39;t respond in 3 seconds either, like real people. They have their own interests and perosnalities, and can initiate chats and chat with each other.&#92;n&#92;nI&#39;ve been using it myself with 4 friends for over a month and it&#39;s.....interesting. It definitely works better when I just fire off random ideas and stuff into the chat and see what happens. Unfortunately, I&#39;ve noticed that when they start chats, they&#39;re very formulaic and uninteresting.&#92;n&#92;nIt is definitely a bit uncanny for my phone to beep and when I look down, it&#39;s a text from one of my imaginary friends.&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;ai&quot;,&quot;anchor_text&quot;:&quot;AI bots&quot;,&quot;context&quot;:&quot;I could get AI bots to message me on&quot;,&quot;rationale&quot;:&quot;The node discusses AI bots and LLMs, which the ai node directly covers.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;vibe coding&quot;,&quot;rationale&quot;:&quot;This project is one of Travis&#39;s vibe-coded creations, elaborated in the vibe coding node.&quot;},{&quot;slug&quot;:&quot;null-rail&quot;,&quot;rationale&quot;:&quot;Another &#39;learning in public&#39; AI-driven personal project by the same author, sharing themes.&quot;},{&quot;slug&quot;:&quot;now&quot;,&quot;rationale&quot;:&quot;The now page discusses embracing AI, nanoclaw-style tools, and vibe coding projects like this one.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:566,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:389,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:158},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;taper&quot;,&quot;fileSlug&quot;:&quot;taper&quot;,&quot;title&quot;:&quot;Taper&quot;,&quot;content&quot;:&quot;&#92;nIf you read the Taper 12 [about page](https://taper.badquar.to/12/about.html#submit), you will find that submissions for Taper #13 are due Sept 13 2024, approximately two weeks from the time of this writing.&#92;n&#92;n*But what is Taper?*&#92;n&#92;nTaper is an online &#92;&quot;zine-type&#92;&quot;...thing...where digital artists, poets and agitators submit pieces for each published collection. They&#39;re usually something between an &#92;&quot;interactive poem&#92;&quot; a &#92;&quot;visualization&#92;&quot; or some avant garde HTML experiment. They&#39;re very forward thinking and very cool. I&#39;ve only looked at a couple of the art projects/poems in #9 so far, and I must confess I&#39;ve missed every Taper installment since #3 in 2019. I bet they just weren&#39;t up to date on sending the updates to their mailing list or whatever. But there&#39;s definitely some cool stuff in there and I recommend the [full archives](https://taper.badquar.to/). I actually submitted [this piece](https://tilde.town/~audiodude/duality/) for Taper #2, which was about duality, and it got rejected because the file size was too big (embedded JPG), and the editors found the writing too incoherent.&#92;n&#92;nTaper is definitely one of those things that &#92;&quot;lives in my head rent free&#92;&quot; as the kids say. In fact, yesterday I spent about 2 hours working on a potential submission for Taper 13. I got as far as laying out a webpage and writing some JavaScript for the project, but when I went to add an [SVG](https://developer.mozilla.org/en-US/docs/Web/SVG) to the page, I thought, &#92;&quot;I better check how big this is getting&#92;&quot;. At that point, it was about 6 kilobytes, but unfortunately the size limit for submissions is the microscopic, ridiculous, ludicrous 2 kilobytes. I guess they must plan on doing this for 100 years and want to make sure they can fit it all on a floppy disk at the end of it all (sarcasm). Though it might be something like this, where they have ambitions of storing or displaying the zines in some ridiculously retro or restricted medium.&#92;n&#92;nAnyways, I removed the SVG and checked again, but I was still at 4k, twice the limit. At that point I gave up and put my laptop away. I like making weird HTML art/poetry projects, but so far I haven&#39;t found a place besides Taper to submit them. And as far as Taper goes, I&#39;m just overweight.&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;javascript-typescript&quot;,&quot;anchor_text&quot;:&quot;writing some JavaScript&quot;,&quot;context&quot;:&quot;laying out a webpage and writing some JavaScript for the project&quot;,&quot;rationale&quot;:&quot;The node mentions writing JavaScript, which has a dedicated node.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;writings&quot;,&quot;rationale&quot;:&quot;This node discusses making poetry/art projects for submission, which relates to the author&#39;s broader collection of creative writings.&quot;},{&quot;slug&quot;:&quot;font-of-creativity&quot;,&quot;rationale&quot;:&quot;Taper as a creative outlet ties into the author&#39;s reflections on making creative art/poetry projects.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:799,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:426,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:224},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;test-post-plz-ignore&quot;,&quot;fileSlug&quot;:&quot;test-post-plz-ignore&quot;,&quot;title&quot;:&quot;Test post, plz ignore&quot;,&quot;content&quot;:&quot;&#92;nTest post, plz ignore.&#92;n&#92;n🎉&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[]},&quot;usage&quot;:{&quot;input_tokens&quot;:76,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:21,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:0},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;vibe coding&quot;,&quot;fileSlug&quot;:&quot;vibe coding&quot;,&quot;title&quot;:&quot;Vibe Coding&quot;,&quot;content&quot;:&quot;Vibe coding.&#92;n&#92;nWow.&#92;n&#92;nI started vibe coding in 2025, around the time the term was invented (TODO: link/screenshot).&#92;n&#92;nSince April 2026, I have been a vibe coding _fiend_. I have vibe coded fucking everything. For me, vibe coding in 2026 is like the way people started using ChatGPT in 2023. I just use it constantly.&#92;n&#92;nIn some sense, I&#39;ve forgotten how to write regular code, seriously. Maybe not &#92;&quot;how&#92;&quot; per se, but I&#39;ve lost all mostivation or inclination to do so.&#92;n&#92;nIn many senses, I&#39;ve come to see it as a way to truly explore lots of ideas quickly that would be too expensive in terms of time/effort investment, given the [[intrisic motivation|payoff]].&#92;n&#92;nI&#39;ve got lots of feelings about techniques for this. Really at this point I&#39;m genuinely excited to learn about and try new techniques. I don&#39;t feel somehow obligated because I&#39;m worried about some future where I&#39;m obsolete in society.&#92;n&#92;nI&#39;ve also been thinking about [[when to vibe code|what contexts]] it works best in (especially the _personal project/throwaway project_ v _serious project/work_ splits).&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;ai&quot;,&quot;anchor_text&quot;:&quot;ChatGPT in 2023&quot;,&quot;context&quot;:&quot;vibe coding in 2026 is like the way people started using ChatGPT in 2023&quot;,&quot;rationale&quot;:&quot;The AI node discusses ChatGPT&#39;s release and the AI era, directly relevant to this comparison.&quot;},{&quot;slug&quot;:&quot;harness-matters-more&quot;,&quot;anchor_text&quot;:&quot;techniques&quot;,&quot;context&quot;:&quot;I&#39;ve got lots of feelings about techniques for this&quot;,&quot;rationale&quot;:&quot;The harness node discusses coding techniques and tooling for AI-assisted/vibe coding.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;null-rail&quot;,&quot;rationale&quot;:&quot;Null Rail is a vibe-coded music project that documents Travis&#39;s embrace of vibe coding in public.&quot;},{&quot;slug&quot;:&quot;now&quot;,&quot;rationale&quot;:&quot;The Now page mentions truly embracing vibe coding and building intrinsic motivation, elaborating on this node&#39;s themes.&quot;},{&quot;slug&quot;:&quot;ai-coding-benchmarks&quot;,&quot;rationale&quot;:&quot;Discusses the experience of AI coding over raw model power, relevant to vibe coding techniques.&quot;},{&quot;slug&quot;:&quot;Suno&quot;,&quot;rationale&quot;:&quot;Suno is described as &#39;vibe coding for songs&#39;, a parallel application of the concept.&quot;},{&quot;slug&quot;:&quot;sudomake-friends&quot;,&quot;rationale&quot;:&quot;A vibe-coded/AI project illustrating rapid idea exploration mentioned in this node.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:431,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:450,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:0},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;warnings-python&quot;,&quot;fileSlug&quot;:&quot;warnings-python&quot;,&quot;title&quot;:&quot;How to squash warnings in Python by elevating them to errors&quot;,&quot;content&quot;:&quot;&#92;r&#92;n[[Python]] has a great Exception handling system. It also has a lesser used but still important system of &#92;&quot;warnings&#92;&quot;, which are like Exceptions except they are intended when a &#92;&quot;condition (normally) doesn’t warrant raising an exception and terminating the program&#92;&quot;. They are used probably most familiarly as deprecation warnings, when you&#39;re using an import or module or method that has been replaced and shouldn&#39;t be used anymore.&#92;r&#92;n&#92;r&#92;nFor the [[wp-1.0|WP 1.0 project]], I have been increasingly annoyed that one or more of my tests in my test suite are emitting warnings from `pymysql` about MySQL data truncation. Data truncation is when you try to store, say, a 10 character string in a column that can only hold 9 characters. MySQL will generally &#92;&quot;lop off&#92;&quot; the last character (truncate) and store the remaining nine. When it does this, it issues a warning (depending on how your MySQL/MariaDB server is set up), and pymysql echoes these warnings. Presumably this is helpful if you have a bug, you can go to your logs and see &#92;&quot;Well we have 1000 instances of telephone numbers being &#39;truncated&#39;, maybe that&#39;s the problem!&#92;&quot;. It doesn&#39;t stop the flow of the program or throw an exception, like stated before, it&#39;s just a warning.&#92;r&#92;n&#92;r&#92;nAnyways, something in my test was causing one of these truncation warnings. The problem is, the warning just got spit out to the terminal on stderr while all the tests were running, so it was really hard to tell where it was coming from. I had some idea which file it was based on the value that was being truncated, but that was it.&#92;r&#92;n&#92;r&#92;nI was vaguely familiar, or at least felt strongly, that there was a way to turn these warnings into proper exceptions, at least temporarily. That way, my program (even my test program) would get interrupted and I would see a stack trace telling me which line of code was being executed when the warning was emitted. Instead of a warning being emitted, in fact, the warning would be raised like a normal exception. Well I wasn&#39;t wrong, there&#39;s a few ways to do this.&#92;r&#92;n&#92;r&#92;nThe [warnings module](https://docs.python.org/3/library/warnings.html) talks about the different classifications of warnings and some of the ways to &#92;&quot;filter&#92;&quot; them. What we&#39;re interested in is [&#92;&quot;error&#92;&quot;](https://docs.python.org/3/using/cmdline.html#cmdoption-W) (turn matching warnings into exceptions). One way of changing the filters is to use a filter string as a command line argument to Python with `python -W error`, for example, which will match all warnings and turn them into errors. This command line argument is [described here](https://docs.python.org/3/using/cmdline.html#cmdoption-W).&#92;r&#92;n&#92;r&#92;nUnfortunately, I couldn&#39;t pass the python binary the `-W` flag, because I wasn&#39;t invoking it directly to run my test scripts. Instead, I was using the `nosetests` wrapper script. So I needed something else.&#92;r&#92;n&#92;r&#92;nLuckily, I found [the PYTHONWARNINGS](https://docs.python.org/3/using/cmdline.html#envvar-PYTHONWARNINGS) environment variable. This let me pass the filter string &#92;&quot;all the way down&#92;&quot; to wherever the python interpreter was being invoked. At first, I tried:&#92;r&#92;n&#92;r&#92;n```&#92;r&#92;nPYTHONWARNINGS=error nosetests&#92;r&#92;n```&#92;r&#92;n&#92;r&#92;nThis was, of course, a disaster, because my program immediately crashed with an exception about some import deprecation in some deep library I didn&#39;t even know I was using. So clearly I was going to have to be more specific with my filters. My warning looked like this:&#92;r&#92;n&#92;r&#92;n```&#92;r&#92;n/home/tmoney/code/wp1/venv/lib/python3.9/site-packages/pymysql/cursors.py:329:&#92;r&#92;nWarning: (1292, b&#39;Value truncated for `1234` something something...&#39;)&#92;r&#92;n```&#92;r&#92;n&#92;r&#92;nEventually, with some trial and error, I landed on the following filter:&#92;r&#92;n&#92;r&#92;n```&#92;r&#92;nPYTHONWARNINGS=&#39;error:(1292::pymysql.cursors&#39; nosetests&#92;r&#92;n```&#92;r&#92;n&#92;r&#92;nThis says: filter all warnings that start with `(1292` and are raised from the module `pymysql.cursors` and turn them into errors. The consecutive &#39;::&#39; is in there because I&#39;m using an empty string for the &#92;&quot;category&#92;&quot; classification. Seems like a somewhat magical incantation, but it worked!&#92;r&#92;n&#92;r&#92;nOnce my warning was being raised as an exception, I could see the line that was causing it, and I realized the mistake in my SQL syntax that led to it. I fixed it, and no more warning! I&#39;m thinking about repeating this process with other warnings that have been &#92;&quot;junking up&#92;&quot; my test output, and I probably will.&#92;r&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;programming languages&quot;,&quot;rationale&quot;:&quot;This node covers Python-specific debugging; the meta programming languages node ties together the author&#39;s language-specific writings.&quot;},{&quot;slug&quot;:&quot;Kiwix&quot;,&quot;rationale&quot;:&quot;The WP 1.0 project referenced here is work done in a volunteer capacity for Kiwix, providing organizational context.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1483,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:283,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:154},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;when to vibe code&quot;,&quot;fileSlug&quot;:&quot;when to vibe code&quot;,&quot;title&quot;:&quot;When To Vibe Code&quot;,&quot;content&quot;:&quot;Vibe code whenever you want! It&#39;s fun!&#92;n&#92;nBut it usually works best when the stakes are low, for personal projects honestly in my experience.&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;vibe coding&quot;,&quot;anchor_text&quot;:&quot;Vibe code&quot;,&quot;context&quot;:&quot;Vibe code whenever you want! It&#39;s fun!&quot;,&quot;rationale&quot;:&quot;Directly references the concept of vibe coding, which has its own dedicated node.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;vibe coding&quot;,&quot;rationale&quot;:&quot;The main node on vibe coding elaborates on the author&#39;s practices and enthusiasm for the technique.&quot;},{&quot;slug&quot;:&quot;harness-matters-more&quot;,&quot;rationale&quot;:&quot;Discusses the mechanics of AI-assisted coding, deepening the topic of when and how to vibe code.&quot;},{&quot;slug&quot;:&quot;null-rail&quot;,&quot;rationale&quot;:&quot;A concrete personal project made via vibe coding, illustrating the low-stakes personal project scenario mentioned here.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:101,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:254,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:0},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;wp-1.0&quot;,&quot;fileSlug&quot;:&quot;wp-1.0&quot;,&quot;title&quot;:&quot;WP 1.0 Project&quot;,&quot;content&quot;:&quot;&#92;r&#92;nWP 1.0 is a project on Wikipedia that I have spent the last 5 years working on, with various amounts of effort at various times. It is written in [[Python]].&#92;r&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;Kiwix&quot;,&quot;rationale&quot;:&quot;Kiwix node describes the author&#39;s volunteer work primarily on wp-1.0, elaborating on the project&#39;s context.&quot;},{&quot;slug&quot;:&quot;Perl&quot;,&quot;rationale&quot;:&quot;The Perl node details rewriting the wp-1.0 bot from Perl into Python, a key part of this project&#39;s history.&quot;},{&quot;slug&quot;:&quot;warnings-python&quot;,&quot;rationale&quot;:&quot;This node describes squashing Python warnings specifically in the wp-1.0 test suite.&quot;},{&quot;slug&quot;:&quot;Vue.js&quot;,&quot;rationale&quot;:&quot;The Vue.js node cites wp-1.0 as an example SPA built with the framework.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:109,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:458,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:237},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;writings/absolute-power&quot;,&quot;fileSlug&quot;:&quot;absolute-power&quot;,&quot;title&quot;:&quot;Absolute Power&quot;,&quot;content&quot;:&quot;I have absolute power over the guy sitting next to me on this bus. I can write anything I want about him, and the norms of politeness indicate that he can&#39;t say or do anything about it. He can never acknowledge that he was reading my words over my shoulder, because that would be a heinous breach of etiquette. Not that what I have to say about him is any less heineous.&#92;n&#92;nI bet you expect a long string of insulting words and comments now. Maybe a shot at his family or something about his physical appearance. Actually, this is one of those times, dear reader, where the fact that this blog is fiction comes necessarily into question. Everything I&#39;ve written here could have been written about a real person. The narrator could very well be the real life me.&#92;n&#92;nBut no, it&#39;s all a fiction. These words pepper the imagination and that&#39;s where they came from.&#92;n&#92;nWhich is precisely what we want the idiot next to me to believe...&#92;n&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;writings&quot;,&quot;rationale&quot;:&quot;This piece reads like the fictional/poetic writings collection and could be grouped with those idle bus-ride writings.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:319,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:72,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:0},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;writings/barney&quot;,&quot;fileSlug&quot;:&quot;barney&quot;,&quot;title&quot;:&quot;Barney&quot;,&quot;content&quot;:&quot;The red light was on when Barney woke up. Shit! It had to be a drill or a malfunction of the measuring equipment or something. According to his panel, according to the big red light in the middle of it that was shining brightly, there had been a major event in the past however long Barney was out for. The PCU, or Primary Containment Unit, had been breached. This meant one of two things: either toxic doses of radiation were leaking out , or — Barney&#39;s mind made the leap — something was inside the time core.&#92;n&#92;nAs long as there was someone in there — something in there, Barney corrected himself, the facility was still years away from tests with organic material, let alone living organisms — but as long as it was occupied, the time core would operate on the Princeton Principle. The matter would be sent backwards and forwards in time simultaneously, creating an ever larger causal loop. Assuming that the material was stable, and there was enough energy supplying the core, contact with the Past and the Future should occur with a wide enough gap to avoid inconsistencies in the time line.&#92;n&#92;nThat&#39;s how it worked in the experiments they had been conducting. But this was no experiment, Barney thought as he scanned through the output of the sensor array and pulled up the access logs through the beginning of his shift. It&#39;s 2:17 AM, this is a security breach!&#92;n&#92;nOr a false alarm. All the scientists working on the project, even the low level staff and security like Barney, knew that the facility was built with a mishmash of state of the art cutting edge materials (eg the time core itself and it&#39;s component elements), aging old Soviet castoffs from the cold war (much of the infrastructure), and whatever the Secondary Team could get their hands on from the junkyards and trade shows. At least one or two experiments a week were called off when a truss rod got stuck, or the lab floor became flooded, or any of a number of insulting inconveniences struck.&#92;n&#92;nBarney flipped on the visuals. The cameras trained on the platform, where the time core rested, showed nothing out of the ordinary. Obviously the core had been activated, but according to Barney&#39;s readouts, it was operating at a normal capacity, with no dangerous fluctuations in energy or radiation level. Perhaps there was a bug in a scheduler somewhere that had caused the activation.&#92;n&#92;nThe Primary Team was aware of the bugs that were still crawling around in the facility&#39;s systems, which was the precise reason Barney&#39;s shift existed. But he was the only one there at this hour. And there certainly weren&#39;t any protocols to be followed.&#92;n&#92;nThe phone rang and Barney jumped six inches. He reached for it, a modest sweat dripping down his face.&#92;n&#92;n&#92;&quot;Alpha Station, Carlson reporting,&#92;&quot; he barked into the phone like so many times before.&#92;n&#92;n&#92;&quot;Barney, what.....what in the hell is going on down there?&#92;&quot; shouted a voice from the phone.&#92;n&#92;n&#92;&quot;D-Down here?&#92;&quot; Barney stuttered back. &#92;&quot;Well, I just opened visuals on the-&#92;&quot;&#92;n&#92;n&#92;&quot;The goddamn time core is active! Tell me you weren&#39;t sleeping,&#92;&quot; the voice admonished, &#92;&quot;What started it up? There&#39;s no experiment scheduled until oh nine hundred&#92;&quot;&#92;n&#92;n&#92;&quot;Oh yes.....well....&#92;&quot; Barney continued to stammer, trying to buy himself some time. The other voice on the line was Hal Ryder, Senior Operations Director for the Primary Team. He sounded pissed. He also sounded confused and concerned.&#92;n&#92;n&#92;&quot;Don&#39;t bullshit me, Barney!&#92;&quot; shouted Hal. &#92;&quot;I don&#39;t care what you were doing, we need to asses the situation with the core immediately.&#92;&quot; Hal was practical and generally kept a cool head, traits which certainly helped him in his position on Primary Team. &#92;&quot;Listen, I&#39;ll be down there in 20 minutes. Keep visual contact with the core and don&#39;t attempt any intervening measures until I get there.&#92;&quot;&#92;n&#92;n&#92;&quot;Yes, sir&#92;&quot; Barney answered flatly.&#92;n&#92;n&#92;&quot;Just make sure the—&#92;&quot; Hal started, but he was cut off by the shriek of an alarm. It sounded like a cliched mix of every red alert, high emergency, system critical siren he had ever heard. But Hal had never heard it coming from their alpha monitoring station.&#92;n&#92;n&#92;&quot;Make that 10 minutes!&#92;&quot; Hal shouted into the phone, but he wasn&#39;t sure Barney heard him.&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;writings&quot;,&quot;rationale&quot;:&quot;This fiction piece is part of the Various Writings collection and would be contextualized by that node.&quot;},{&quot;slug&quot;:&quot;lazily-slapping-the-snare-drum&quot;,&quot;rationale&quot;:&quot;Both are fictional short story intros from the same writing collection, sharing narrative/genre kinship.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1376,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:242,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:119},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;writings/best-wrecks&quot;,&quot;fileSlug&quot;:&quot;best-wrecks&quot;,&quot;title&quot;:&quot;Best Wrecks&quot;,&quot;content&quot;:&quot;Throw everything away.  &#92;nPuke more every day.  &#92;nFetch a wretch&#39;s retch and  &#92;nToss it sloppily abroad.  &#92;nHide all small, small tiny  &#92;nFrom everything, and also mostly  &#92;nThe wretched mess of best wrecks that is your life.&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[]},&quot;usage&quot;:{&quot;input_tokens&quot;:142,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:21,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:0},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;writings/blackness&quot;,&quot;fileSlug&quot;:&quot;blackness&quot;,&quot;title&quot;:&quot;Blackness&quot;,&quot;content&quot;:&quot;My brain is the only thing left to die.  &#92;nIt must yield to the black emptiness.  &#92;nIt must be absorbed, sponge-like, into the  &#92;ndecaying stew of the rest of my life.  &#92;nThe tiniest spark of electricity might keep me  &#92;nvivid for a moment more.&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[]},&quot;usage&quot;:{&quot;input_tokens&quot;:137,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:21,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:0},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;writings/concession&quot;,&quot;fileSlug&quot;:&quot;concession&quot;,&quot;title&quot;:&quot;Concession&quot;,&quot;content&quot;:&quot;Happy poem, happy sound  &#92;nHappy words fly round and round  &#92;nHappy metre, happy rhyme  &#92;nHappy feelings all the time  &#92;nHappy happy happiness  &#92;nHappy thoughts for to confess  &#92;nHappy moment, happy life  &#92;nHappy as I grip the knife  &#92;nHappy as I start to bleed  &#92;nHappy world, I must concede&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[]},&quot;usage&quot;:{&quot;input_tokens&quot;:163,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:21,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:0},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;writings/coping-skills&quot;,&quot;fileSlug&quot;:&quot;coping-skills&quot;,&quot;title&quot;:&quot;Coping skills&quot;,&quot;content&quot;:&quot;They said to practice my  &#92;ncoping skills.  &#92;nThis is a submission of optimism.  &#92;nAn acknowledgement that  &#92;nNot everything is OK  &#92;nNot everything can be fixed.  &#92;nIt&#39;s a glorious recognition that  &#92;npain is real.  &#92;nI don&#39;t need to be defeated by it.  &#92;nSeeing it  &#92;nKnowing it  &#92;nFeeling it  &#92;nIs the first step to  &#92;nresilience.&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;DBT&quot;,&quot;rationale&quot;:&quot;DBT (Dialectical Behavior Therapy) is fundamentally about learning and practicing coping skills, directly elaborating on the theme of this poem.&quot;},{&quot;slug&quot;:&quot;intrisic motivation&quot;,&quot;rationale&quot;:&quot;Both nodes reference the author&#39;s therapy work and inner mental-health processes.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:177,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:190,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:58},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;writings/empty-mind&quot;,&quot;fileSlug&quot;:&quot;empty-mind&quot;,&quot;title&quot;:&quot;Empty Mind&quot;,&quot;content&quot;:&quot;I look into my mind, and my mind is empty. In fact, it&#39;s full of all kinds of useless crap and clutter. It&#39;s full of anxiety about things done and left undone. There&#39;s pretty much a cacophony of garbage filling in every nook and cranny. But for the purposes of creative output, my mind is empty. I cannot lift a guitar, no less a pen, to write a song. I cannot type out the simplest of poems. I cannot devise a creative computer programming project that would hold my interest or serve to bring something useful into this world. No it is empty.&#92;n&#92;nWhere are all the little colorful lego bricks that I should be picking up and snapping together to create something beautiful? Where are the sheets of empty paper and nice, fine tipped pen? Who took away the heavy construction paper, glitter and glue? Did it all get thrown away by accident, or worse, on purpose?&#92;n&#92;nI look into my mind, and my mind is empty. And it&#39;s not a good, mindful, zen emptiness. It&#39;s a clunky, stuttering, worthless emptiness. It&#39;s a full lack of anything to say, or anything to say anything about. My mind is an endlessly blinking cursor, with no characters trailing behind it. Just stuck, at the top left of an ephemeral empty page. But the emptiness of mind is not ephemeral. No, it persists from day to day.&#92;n&#92;nThere is a cognitive theory that every thought is tied, in some way, to an emotion. Memories especially are recalled precisely because they have some emotional significance attached to them. What is my emotion when I reveal my empty mind? It&#39;s one of a resigned sadness, a feeling that this must be the way it has to be and there&#39;s nothing I can do about it.&#92;n&#92;nI look into my mind, and my mind is empty. There is no salvation from this null state. There is no way to bootstrap a creative emotion or thought from the broad nothingness that exists in my mind. I cannot write my way into, or out of, any corners. I cannot sing my way into a musical revelation. I cannot paint the double line on the highway to a fully working, healthy mind.&#92;n&#92;nBut this is not depression. It&#39;s anxiety somewhat. But it&#39;s not a desperation or loneliness or sadness or something of that variety. These feelings are certainly present to one degree or another upon reflection on my empty mind. They are not it&#39;s cause.&#92;n&#92;nI look into my mind, and my mind is empty. Except for when it&#39;s not.&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;Zen&quot;,&quot;anchor_text&quot;:&quot;zen emptiness&quot;,&quot;context&quot;:&quot;And it&#39;s not a good, mindful, zen emptiness. It&#39;s a clunky, stuttering, worthless emptiness.&quot;,&quot;rationale&quot;:&quot;The node explicitly contrasts its emptiness with the Zen concept of emptiness, which has its own node.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;font-of-creativity&quot;,&quot;rationale&quot;:&quot;Directly explores the same theme of struggling with creative output and the pressure/absence of ideas bursting forth.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:809,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:329,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:129},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;writings/gearing-up&quot;,&quot;fileSlug&quot;:&quot;gearing-up&quot;,&quot;title&quot;:&quot;Gearing up&quot;,&quot;content&quot;:&quot;What is the fastest,  &#92;nthe fastest humanly possible way  &#92;nthat poetry could be written?  &#92;nIt would probably be the job of a machine, really.  &#92;nTo excel in the speed poetry department, you would  &#92;nprobably want to enlist the help of a friendly robot  &#92;nor at least a properly configured handy computing device.  &#92;nBut then could you say that the poetry was humanly written,  &#92;nhumanly formed? Would it still express humanity?  &#92;nSome would say that the ultimate meaning of a poem is  &#92;nin the head of the person reading it, it is there that it  &#92;nencompasses whatever humanity it is to have. So in that sense,  &#92;nMr Robo-Poet would be a handy invention indeed.  &#92;nHe would smile at you from beyond his computer-y face and  &#92;nrobotic and metallic inside parts. Well, you couldn&#39;t tell  &#92;nthat he was smiling but you know he would be.  &#92;nHow could he not?  &#92;nHe&#39;s brought you ream after ream of  &#92;nfresh hot poetry,  &#92;nready for consumption and contemplation and  &#92;ndeconstruction and criticism.  &#92;nAnd copy and paste.  &#92;nAnd copy and paste.&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;ai-music-trends&quot;,&quot;rationale&quot;:&quot;This node&#39;s meditation on whether machine-made poetry can express humanity closely parallels the debate about AI-generated music versus human craft.&quot;},{&quot;slug&quot;:&quot;ai&quot;,&quot;rationale&quot;:&quot;The &#39;Robo-Poet&#39; churning out endless poetry directly anticipates the author&#39;s later thoughts on AI generating creative content.&quot;},{&quot;slug&quot;:&quot;Suno&quot;,&quot;rationale&quot;:&quot;Suno as &#39;vibe coding for songs&#39; is the musical analog of the Robo-Poet producing ream after ream of poetry.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:399,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:402,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:204},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;writings/gray&quot;,&quot;fileSlug&quot;:&quot;gray&quot;,&quot;title&quot;:&quot;Gray&quot;,&quot;content&quot;:&quot;The rainy and gray  &#92;nOf this late summer day  &#92;nFits my mood   &#92;nQuite well, actually, and it makes me  &#92;nSmile in the fullness of its melancholy.  &#92;nDelicious melancholy that you can bite right  &#92;nInto, and get a juicy mouthful. The un-joy  &#92;nDrips off your chin. It&#39;s satisfying to know  &#92;nThat the world, the weather, the movement of  &#92;nThe goddamn oceans are all in agreement that  &#92;nToday is not an exuberant day. Today is a day  &#92;nFor some healthy, hearty wallowing and maybe  &#92;nA smidge of reflection on what it&#39;s like to  &#92;nBe me.&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[]},&quot;usage&quot;:{&quot;input_tokens&quot;:249,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:21,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:0},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;writings/hurricane&quot;,&quot;fileSlug&quot;:&quot;hurricane&quot;,&quot;title&quot;:&quot;Hurricane&quot;,&quot;content&quot;:&quot;What I really need is a pretty place to write poetry.  &#92;nA pretty place to place pretty poetry.  &#92;nA place that is full of empty space that  &#92;nlongs to be filled with my words and  &#92;nespecially the metaphors that are so elegantly  &#92;nconstructed. Even if the line endings are somewhat  &#92;nhaphazard and none of the lot rhymes in any  &#92;nconsiderable way, the point of the endeavor and  &#92;nits ultimate raisin de etre or whatever is that  &#92;nit brings my ideas and feelings into the world.  &#92;nMy naked fleshy wet body of poetry bursts  &#92;nscreaming into the world and now it&#39;s a tornado or  &#92;nreally a combination tornado-hurricane like device that  &#92;nturns with glory and rips the tattered rooftop  &#92;noff my own inequities. There is nothing left of me  &#92;nin the wake of its great destruction, there are only  &#92;nthe words.&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;font-of-creativity&quot;,&quot;rationale&quot;:&quot;Both nodes explore the compulsion to create and let ideas burst out through writing.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:321,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:84,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:0},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;writings/introduction&quot;,&quot;fileSlug&quot;:&quot;introduction&quot;,&quot;title&quot;:&quot;Introduction&quot;,&quot;content&quot;:&quot;I thought about just jumping in and adding fiction to this new blog. After all, the URL is http://writings.travisbriggs.com. Surely people would understand what it is about just from that, right? But then I thought that for the inaugural post I should put something down about my goals for this blog and what you can expect to find here. Mostly because I don&#39;t have any fresh fiction to add at the moment.&#92;n&#92;nFirst off, this blog is written using the Ghost blogging platform. Ghost gives me something extremely simple and lightweight, that doesn&#39;t use PHP (it uses Node.js instead). Since Ghost is also extremely new and shiny, it has some appeal as a new toy, but also I feel like I can grow with the platform. Perhaps I can design a theme that&#39;s appropriate for short fiction pieces (unlikely) or contribute some code to the server or admin (slightly more likely).&#92;n&#92;nWhen I first wanted to start boldly writing a &#92;&quot;micro story&#92;&quot; (I&#39;m not sure if anyone uses that term), I thought about launching a new blog for it. But then I realized that no one reads the blog I already have, and the effort of setting up a new one would get in the way of my immediate creative impulse. So, I just posted the story to my current blog with no expectation. Since I have no readers, this didn&#39;t really bother anyone. But I dreamed of a better way.&#92;n&#92;nWell there is a confluence of tools (Ghost) and inspiration now. This is happening. Prepare thee the world for my creation!&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;writings&quot;,&quot;anchor_text&quot;:&quot;adding fiction to this new blog&quot;,&quot;context&quot;:&quot;I thought about just jumping in and adding fiction to this new blog&quot;,&quot;rationale&quot;:&quot;This inaugural post is the introduction to the fiction writings collection now integrated into the garden.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;writings&quot;,&quot;rationale&quot;:&quot;The collection of fiction/poetry snippets that this introduction was originally written to launch.&quot;},{&quot;slug&quot;:&quot;considering-moving-blogs&quot;,&quot;rationale&quot;:&quot;Elaborates on the recurring theme of launching/changing blog platforms rather than just writing.&quot;},{&quot;slug&quot;:&quot;blog&quot;,&quot;rationale&quot;:&quot;Discusses the author&#39;s feeling that no one reads his blog, echoed here as the reason he didn&#39;t launch a new one.&quot;},{&quot;slug&quot;:&quot;barney&quot;,&quot;rationale&quot;:&quot;An example of the fiction/&#39;micro story&#39; pieces this blog was created to host.&quot;},{&quot;slug&quot;:&quot;lazily-slapping-the-snare-drum&quot;,&quot;rationale&quot;:&quot;Another example of the short fiction the writings site was intended for.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:508,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:543,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:205},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;writings/just-rain&quot;,&quot;fileSlug&quot;:&quot;just-rain&quot;,&quot;title&quot;:&quot;Just Rain&quot;,&quot;content&quot;:&quot;Sometimes things are easy  &#92;nSometimes things are hard  &#92;nSome things we keep close to us  &#92;nOthers we discard  &#92;nSometimes rain smells yummy  &#92;nSometimes it smells gross  &#92;nOften we&#39;re reminded of  &#92;nThe things that we kept close  &#92;nSome things can&#39;t be spoken  &#92;nSome things can&#39;t explain  &#92;nSometimes we are crying tears  &#92;nOther times it&#39;s rain  &#92;nSometimes we remember  &#92;nSometimes we forget  &#92;nOften times the memories  &#92;nDon&#39;t make sense quite yet  &#92;nSome things blend together  &#92;nSome things stand apart  &#92;nWhy oh why oh why must I  &#92;nAttend this broken heart  &#92;nSometimes things are clever  &#92;nSometimes things are trite  &#92;nSometimes you are by yourself  &#92;nIn deepest darkest night  &#92;nSometimes it&#39;s a horror  &#92;nSometimes it&#39;s a shame  &#92;nSometimes you might ask yourself  &#92;nThe reason for this pain  &#92;nSometimes things are easy  &#92;nSometimes things are hard  &#92;nSome things we hold up in scorn  &#92;nSome in high regard&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[]},&quot;usage&quot;:{&quot;input_tokens&quot;:391,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:21,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:0},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;writings/lazily-slapping-the-snare-drum&quot;,&quot;fileSlug&quot;:&quot;lazily-slapping-the-snare-drum&quot;,&quot;title&quot;:&quot;Lazily slapping the snare drum&quot;,&quot;content&quot;:&quot;If I never knew her, it would be too soon. Wait. Scratch that. If I only met her once, it would be more than a lifetime. No no, that’s not right. Let me start again.&#92;n&#92;nShe called herself Jilly, which I thought was a peculiar name to begin with, and certainly something strange to be so proud of. It sounds like a 6 year old’s name for a doll or something. Or some kind of sea creature. Jilly would kill me if she read this, actually. She wasn’t particularly introspective. Retrospective? Introspective. What I’m trying to say is, Jilly didn’t spend too much time reflecting on the world around her. Full pedal to the floor, gas your ass straight ahead cowboy style was the way Jilly liked things. She threw an ashtray at me the first time I met her.&#92;n&#92;nBut things calmed down after that, as much as anything with Jilly could be considered calm. She was like a drummer lazily slapping a snare drum 15 seconds after a song had ended. Like in rehearsal. Sorry, “practice” — my bandmates always hated when I called it rehearsal. But you know what I’m talking about, right? The whole band has stopped the song, it’s over, but the drummer is just slapping that snare still. Pounding in your ear, but you barely hear it because it’s quiet compared to the cacophony that preceded it. Jilly is like that. Like you look around 3 weeks later, and why is she still spending nights on your couch. Weirdo. We would hook up and then she would go sleep on the couch, as if that was a very Christian thing to do. Like we weren’t really sleeping together, ha ha, nudge wink as she lit up another cigarette.&#92;n&#92;nI only started smoking because Jilly liked to do it and I figured I might not mind smelling it all over her if I was doing it myself.&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;writings&quot;,&quot;rationale&quot;:&quot;This is one of the migrated fiction/poetry snippets that the Various Writings node collects and describes.&quot;},{&quot;slug&quot;:&quot;barney&quot;,&quot;rationale&quot;:&quot;Both are short-story intro fiction pieces from the same collection, offering companion reading.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:651,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:222,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:112},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;writings/pavement-windshield-pop&quot;,&quot;fileSlug&quot;:&quot;pavement-windshield-pop&quot;,&quot;title&quot;:&quot;Pavement Windshield Pop&quot;,&quot;content&quot;:&quot;There&#39;s a vibrant undercurrent  &#92;nto our daily existence.  &#92;nIt&#39;s an unspoken thing, a kind of  &#92;nflowing zeitgeist made up of all the  &#92;noutlines of objects that break up the  &#92;nbare blue bellows of the sky.  &#92;nThe treeline flows up from the ground,  &#92;nthe cars zip across the cold uncaring pavement,  &#92;nand your eyes and my eyes buzz past it all,  &#92;ntaking in what we will and calling it life.  &#92;nThat&#39;s all life is, which -pow- arrives like  &#92;na car crash, no one ever sees it coming, or sees it  &#92;ncoming to this,  &#92;nbut at that instant the perfect crystal structure of the story that you told,  &#92;nthe good one, the one that might as well be your life itself,  &#92;nmakes a crunching sound of crumpled bumper.  &#92;nIt makes a crashing, creaking cry of defeat against  &#92;nthe sad indifferent sky of replete confusion,  &#92;nand is forever extinguished.  &#92;nWhat will you make of yourself now?  &#92;nYou&#39;ll craft a new artifice from the throbbing subtext  &#92;nof the beauty and tragedy around you.  &#92;nI&#39;ll do it too.  &#92;nBut will we be any better off, rinse and repeat?&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[]},&quot;usage&quot;:{&quot;input_tokens&quot;:438,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:21,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:0},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;writings/pillows-and-sheets&quot;,&quot;fileSlug&quot;:&quot;pillows-and-sheets&quot;,&quot;title&quot;:&quot;Pillows and Sheets&quot;,&quot;content&quot;:&quot;I&#39;m feeling sour  &#92;nI haven&#39;t got the power  &#92;nTo get out of my bed today  &#92;nAlone and anxious  &#92;nI haven&#39;t got the patience  &#92;nTo go and face that dread today  &#92;nClose my eyes  &#92;nCannot rest  &#92;nFeel the pain  &#92;nIn my chest  &#92;nI&#39;m feeling lonely  &#92;nAnxiety&#39;s the only  &#92;nFriend that I will greet today  &#92;nWith thoughts unruly  &#92;nAnxiety is truly  &#92;nNot one to be beat today  &#92;nTake a breath  &#92;nCan&#39;t relax  &#92;nTons of fear  &#92;nComing back  &#92;nI feel defeated  &#92;nDiscouraged and retreated  &#92;nWith thoughts heavily pounding  &#92;nThe plan, it is resounding:  &#92;nI won&#39;t get out of bed today.&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;coping-skills&quot;,&quot;rationale&quot;:&quot;Both explore acknowledging pain and anxiety as part of building resilience, making them complementary emotional reflections.&quot;},{&quot;slug&quot;:&quot;suffer&quot;,&quot;rationale&quot;:&quot;Another poem centered on daily anguish and disappointment that thematically echoes this one&#39;s dread.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:293,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:121,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:0},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;writings/preoccupied&quot;,&quot;fileSlug&quot;:&quot;preoccupied&quot;,&quot;title&quot;:&quot;Preoccupied&quot;,&quot;content&quot;:&quot;The poet, it seemed,  &#92;nwas preoccupied with death and  &#92;nwrote poems, fiercely stripped  &#92;nof other intentions and inquiries,  &#92;nwhich invited those readers who,  &#92;nwith naive aims and scarcely guarded dispositions,  &#92;nwere invited into the harsh yet peaceful  &#92;nembrace of the same.  &#92;nHe (the poet) related dearly  &#92;nto these grim works,  &#92;nflowing furiously and free from  &#92;nthe heart of his past disappointments and  &#92;nfuture anxieties.  &#92;nWhy, the pale beast such a  &#92;nsweet seductress surface?  &#92;nWhy dwell on ultimate demise?  &#92;nWhy let the fragrant afternoon  &#92;npass, unexamined, into the abyss  &#92;nof lost Saturdays and holidays  &#92;nwhich served only to taunt the  &#92;nfaculties of his reason and  &#92;ntwist the object of his imagination  &#92;ntowards the bitter machinations of   &#92;nDeath itself?&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;writings&quot;,&quot;rationale&quot;:&quot;This poem is part of the collection of writings migrated into the garden, where Travis notes the melancholic, death-preoccupied tone of these pieces.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:340,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:101,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:0},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;writings/rainbow-static&quot;,&quot;fileSlug&quot;:&quot;rainbow-static&quot;,&quot;title&quot;:&quot;Rainbow Static&quot;,&quot;content&quot;:&quot;I&#39;m too old to smile. The rainbow static  &#92;nof a million stations presses down on my body  &#92;nwith the weight of an entire civilization.  &#92;nIt crushes me. It&#39;s all nonsense. Even the  &#92;nparts that are meant to sound like the  &#92;nlatest, newest, hottest, hippest, coolest, trendiest  &#92;nsongs that you just can&#39;t wait to hear --  &#92;neven those parts are just more entitled white noise.  &#92;nSo much useless noise, but here we are,  &#92;nslaves to its production. It would be cliche to say  &#92;nthat we&#39;re cogs in some unfeeling machine, but it would  &#92;nalso be glorifying our position. We are not cogs.  &#92;nWe are less than cogs. We are the ineffectual specks  &#92;nof garbage in the trash heap of popular culture.&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[]},&quot;usage&quot;:{&quot;input_tokens&quot;:293,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:21,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:0},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;writings/suffer&quot;,&quot;fileSlug&quot;:&quot;suffer&quot;,&quot;title&quot;:&quot;Suffer&quot;,&quot;content&quot;:&quot;Why do I suffer the days  &#92;nTo cause me such anguish?  &#92;nPress the hot iron of torture, they do,  &#92;nAs the spectre of the day&#39;s tasks,  &#92;nUnfinished,  &#92;nFlit into the orange flames of another dusk.  &#92;nHer features refuse to soften  &#92;nAs she scolds,  &#92;n&#92;&quot;Why don&#39;t you read a book?  &#92;nWhy don&#39;t you play a game?  &#92;nWhy don&#39;t you watch television with me?  &#92;nWhy don&#39;t you do any number of things  &#92;nThat would distract you from the  &#92;nGnawing tug of disappointment you always feel  &#92;nAround this time of evening?&#92;&quot;  &#92;nBut how can I be bothered  &#92;nTo ease the burden brought only on myself  &#92;nBy myself?  &#92;nWhy would I shrink back  &#92;nFrom the agony of songs unwritten  &#92;nAnd poems unsung which  &#92;nCleave their hooks into my brain  &#92;nAnd drag me, reluctantly, but with  &#92;nClandestine pleasure  &#92;nTowards the realized, paltry, but  &#92;nVery extant ouput that I here produced  &#92;nBy the end of the day?&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;empty-mind&quot;,&quot;rationale&quot;:&quot;Both poems capture the anguish of creative paralysis and songs/poems left unwritten.&quot;},{&quot;slug&quot;:&quot;font-of-creativity&quot;,&quot;rationale&quot;:&quot;Explores the trope of ideas &#39;bursting out&#39; or hooking into the mind, echoing this poem&#39;s agony of unwritten songs.&quot;},{&quot;slug&quot;:&quot;pillows-and-sheets&quot;,&quot;rationale&quot;:&quot;A companion poem about anxiety, dread, and disappointment felt around the burdens of daily tasks.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:370,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:186,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:0},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;writings/the-building-building&quot;,&quot;fileSlug&quot;:&quot;the-building-building&quot;,&quot;title&quot;:&quot;The Building Building&quot;,&quot;content&quot;:&quot;I passed the Building Building every day, but it wasn&#39;t until the Fall that I really understood what they did there. It seems extraordinary at first. Your brain doesn&#39;t really want to accept it. A building building building. That is, a building that builds other buildings. It reminded me of that sentence with the buffalo (look it up).&#92;n&#92;nActually, I couldn&#39;t have been expected to understand what was going on in the Building Building because I never took the time to investigate it. Sure, I had heard the loud grinding sounds during the day. Seen the plumes of smoke and steam rising from the roof. I&#39;d even seen people milling in and out, the workers who facilitated the buildings of the Building Building. But I had never really noticed any of it. It had all passed by my vacant mind, leaving no trace at all.&#92;n&#92;nBut now that I know what goes on there, now it makes sense. You need to build a building. Are you going to do it out in the open? Are you just going to lackadaisically start building things in the middle of nowhere? No, certainly not. The process of building requires a building itself.&#92;n&#92;nOf course, all of this makes you wonder: If the Building Building builds buildings, are they building a building to build Building Buildings?&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;writings&quot;,&quot;rationale&quot;:&quot;This is one of the fiction/writing snippets that belongs to the collection described in the Various Writings node.&quot;},{&quot;slug&quot;:&quot;barney&quot;,&quot;rationale&quot;:&quot;Both are short fiction pieces from the same writings collection and could cross-reference as companion creative works.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:419,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:114,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:0},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;writings/these-are-the-days&quot;,&quot;fileSlug&quot;:&quot;these-are-the-days&quot;,&quot;title&quot;:&quot;Pep talk&quot;,&quot;content&quot;:&quot;These are the days.  &#92;nThe days when you have to show up,  &#92;nAbandon the sad little pout on your face,  &#92;nTake a deep breath,  &#92;nGive yourself a quick pep talk,  &#92;nAnd get that shit done.&#92;n&#92;nThese are the days.  &#92;nThe days when people don&#39;t care about your excuses,  &#92;nOr your past successes.  &#92;nWhen all that matters is today, the now,  &#92;nWhen you have one job, just one,  &#92;nAnd you better get it done.&#92;n&#92;nThese are the days.  &#92;nThe cloudy, damp, overcast grays,  &#92;nThe nine to five that&#39;s put you in a haze,  &#92;nYou need a deep breath to figure out the ways,  &#92;nTo kick doubt to the curb while confidence stays.  &#92;nA little pep talk to help you  &#92;nGet it done.&#92;n&#92;nThese are the days that make up our lives. And if we don&#39;t do the things we want to do, make the things we want to make, and love the people we want to love on these days, there will be no other time for any of it.&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;toil&quot;,&quot;rationale&quot;:&quot;Both poems deal with the drudgery of daily work (&#39;nine to five&#39;) and finding meaning in it.&quot;},{&quot;slug&quot;:&quot;suffer&quot;,&quot;rationale&quot;:&quot;Shares the theme of daily tasks, dissatisfaction, and pushing through to produce output.&quot;},{&quot;slug&quot;:&quot;coping-skills&quot;,&quot;rationale&quot;:&quot;Both are short motivational/resilience pieces about facing difficulty and not being defeated.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:333,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:161,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:0},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;writings/thoughts-of-home&quot;,&quot;fileSlug&quot;:&quot;thoughts-of-home&quot;,&quot;title&quot;:&quot;Thoughts of Home&quot;,&quot;content&quot;:&quot;The generally accepted wisdom is that you can never go home again. There is a very famous novel with this title, or with this as the first line or something. Something very famous. And it&#39;s kind of entered the collective unconscious, or maybe even as far forward as the collective conscious itself. We all have this feeling like, yes, that&#39;s true. You can never go home again.&#92;n&#92;nAs an aside, you have to wonder if the name &#92;&quot;post-post-modernism&#92;&quot; is itself &#92;&quot;post-post-modern&#92;&quot; or if describing it as such is only one-post-modern. Maybe post-post-modernism is like the fourth dimension. Mathematically we know that it must exist somewhere, but we&#39;re not sure exactly what it looks like, what it tastes and feels like. It doesn&#39;t quite fit in our brains.&#92;n&#92;nSo the post-post-modern -- or maybe just one-post-modern -- notion is this: No, it&#39;s not really that you can never go home again, it&#39;s that home never existed in the first place. It&#39;s just this mish-mash of ideas and feelings that you have in your mind but it was never a real place to begin with. Maybe that&#39;s not even a post-modern thought as much as its a theme slash line-of-dialogue from a Zack Braff movie (the movie is Garden State).&#92;n&#92;nHome is where the heart is, you know. So if you can&#39;t go there, or it doesn&#39;t exist, what does that say about the prospects of extant love and friendship in our seemingly cold, cruel world? Maybe the reason there&#39;s no place like home is that home is no place. Your heart is there, in this no-person&#39;s-land, and that is why it is always longing. Always yearning for some love or some more love or some kindness or some comradere or some more comradere or some music. Your heart always wants these things because it is trying to go home and there&#39;s no place that home is.&#92;n&#92;nMaybe it&#39;s like that thing about the river that you can never step into twice. When you say it like &#92;&quot;You never step into the same river twice,&#92;&quot; it sounds like it&#39;s some fault of yours. Like if you tried harder you could somehow do it. _You_ never step into the same river twice. But of course all of the blame is on the river. If I were to write that platitude today, I would write it as &#92;&quot;When you step into a river, that river ceases to exist before you even step out of it&#92;&quot;. And home is like that. Think about the things that define your home, even for a basic definition of home as being say, a building where you grew up. Not that this is a stable definition to begin with. Even if you simplify it to a room where you slept as a child, or the majority of your childhood, was that room ever the same? Some days the bed would be made, some it would be unmade. Sometimes the TV would be on, other times were those before you were allowed to have a TV. Dressers came and went, maybe a desk was added or removed. But even just the basic accoutrements of adolesence: one day your pokemon cards are here, the next a pile of hair elastics is there, the day after you have a homework assignment on the floor.&#92;n&#92;nHome doesn&#39;t exist in a very zen sense, the way that none of us exist. It&#39;s like the Heisenberg uncertaintiy principle, which states something like the better you know a particle&#39;s position the worse you know it&#39;s acceleration and vice-versa. If you can put your finger on a specific place or person or feeling that means home to you, very specifically, then what you&#39;ve got is only a single aspect of it, and that specific feature probably doesn&#39;t feel very homey. On the other hand, if you gather up a hodge-podge of different ideas and places and feelings and holidays and accidents that represent home -- then what do you have? It&#39;s just a jumble, nothing that you could accurately &#92;&quot;put your finger on&#92;&quot; so to speak.&#92;n&#92;nYeah, home is kind of like that.&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;Zen&quot;,&quot;anchor_text&quot;:&quot;zen&quot;,&quot;context&quot;:&quot;Home doesn&#39;t exist in a very zen sense, the way that none of us exist&quot;,&quot;rationale&quot;:&quot;The node explicitly invokes a Zen framing of nonexistence, which the Zen node covers.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;philosophy&quot;,&quot;rationale&quot;:&quot;This node&#39;s meditation on existence, nonexistence, and determinism echoes the existentialist and Zen ideas explored in the philosophy node.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1180,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:264,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:96},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;writings/toil&quot;,&quot;fileSlug&quot;:&quot;toil&quot;,&quot;title&quot;:&quot;Toil&quot;,&quot;content&quot;:&quot;Without a struggle, life is poorly spent  &#92;nOn follies, fancies, fliting past your eyes.  &#92;nAnother day of work to pay the rent.  &#92;nYour grim dissatisfaction&#39;s no surprise.  &#92;nThe work, it seems, has found a fallow field.  &#92;nA place where nothing bountiful may grow.  &#92;nWhile pressing on the blister makes it yield,  &#92;nThe point of senseless work, you&#39;ll never know.  &#92;nAnd even if a fair deposit makes  &#92;nThe bossman at conclusion of the day,  &#92;nYet never rests your conscious as it shakes  &#92;nYour head to make some sense of the foray.  &#92;nFor while the wasted hours pile on  &#92;nAnd fonts of inspiration be they dried,  &#92;nTake heart that in a moment you&#39;ll be gone  &#92;nAnd none will ever care you ever tried.&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[]},&quot;usage&quot;:{&quot;input_tokens&quot;:299,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:21,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:0},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;writings/untitled-2&quot;,&quot;fileSlug&quot;:&quot;untitled-2&quot;,&quot;title&quot;:&quot;(Untitled)&quot;,&quot;content&quot;:&quot;They said you can&#39;t write poetry while  &#92;nlistening to music.  &#92;nWell no one said  &#92;nthat -- Okay, I said that, actually.  &#92;nBut maybe I was writing a poem  &#92;nthat needed some inspiration.  &#92;nA bit of zest from someone else&#39;s  &#92;npoetry and music, illuminating sound.  &#92;nWords walk across my brain and  &#92;nclash  &#92;nwith the words that walk down the song.  &#92;nI really have to write poetry, write now  &#92;nedit later,  &#92;nand feel ambivalent about  &#92;nentering the entire enterprise.&#92;n&#92;nMaybe I&#39;ll pluck words directly from this  &#92;nThe Promise Ring song that I&#39;m listening to  &#92;nat the moment.  &#92;nThe prominent, superstar line of this song is  &#92;n&#39;Happiness is all the rage&#39;. So if you&#39;ve  &#92;never heard of it,  &#92;nyou now know the song I&#39;m talking about.  &#92;nExcept that my body and my mind are  &#92;ndistinctly not  &#92;non the so-called &#92;&quot;same page&#92;&quot;. And in fact  &#92;nthis might be the first time I&#39;ve listened to  &#92;nany  &#92;nThe Promise Ring song.&#92;n&#92;nI don&#39;t know if you can hide easter eggs in poems,  &#92;nI&#39;m sure you can.  &#92;nIf I was more deft at the art, I would hide a  &#92;nhyperlink in this poem. And it would  &#92;nlink  &#92;nyou to the songs I was listening to when I wrote it.&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;listening-to-music-while-doing-things&quot;,&quot;rationale&quot;:&quot;That node directly explores writing/typing lyrics while listening to music, echoing this poem&#39;s premise about writing poetry while music plays.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:455,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:286,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:198},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}},{&quot;node&quot;:{&quot;slug&quot;:&quot;writings&quot;,&quot;fileSlug&quot;:&quot;writings&quot;,&quot;title&quot;:&quot;Various Writings&quot;,&quot;content&quot;:&quot;&#92;nHere is a collection of snippets of writing that I creeated between 2014 and 2017. Lots of poetry, a couple of what could be intros to a short story ([[writings/barney|&#92;&quot;Barney&#92;&quot;]], [[writings/lazily-slapping-the-snare-drum|&#92;&quot;Lazily Slapping the Snare Drum&#92;&quot;]]). Most of these were just idle time-wasting while sitting on the Google bus. They originally lived on a separate site, `writings.travisbriggs.com`, but I thought it would be nice to integrate them into the Garden. Just need to make sure I don&#39;t accidentally list them in the [[dg-reverse|dreaded reverse chronological order]].&#92;n&#92;nAs I migrated them here, I didn&#39;t quite read all of them, but I generally browsed through them. As it turns out, I was a late bloomer and my emo phase came in my early 30s. I seriously sound very depressed in many of these.&#92;n&#92;n&#92;n&#92;n- [Absolute Power](/garden/writings/absolute-power/)&#92;n&#92;n&#92;n&#92;n- [Barney](/garden/writings/barney/)&#92;n&#92;n&#92;n&#92;n- [Introduction](/garden/writings/introduction/)&#92;n&#92;n&#92;n&#92;n- [Lazily slapping the snare drum](/garden/writings/lazily-slapping-the-snare-drum/)&#92;n&#92;n&#92;n&#92;n- [The Building Building](/garden/writings/the-building-building/)&#92;n&#92;n&#92;n&#92;n- [Thoughts of Home](/garden/writings/thoughts-of-home/)&#92;n&#92;n&#92;n&#92;n- [Concession](/garden/writings/concession/)&#92;n&#92;n&#92;n&#92;n- [Pillows and Sheets](/garden/writings/pillows-and-sheets/)&#92;n&#92;n&#92;n&#92;n- [Preoccupied](/garden/writings/preoccupied/)&#92;n&#92;n&#92;n&#92;n- [Toil](/garden/writings/toil/)&#92;n&#92;n&#92;n&#92;n- [Gray](/garden/writings/gray/)&#92;n&#92;n&#92;n&#92;n- [Rainbow Static](/garden/writings/rainbow-static/)&#92;n&#92;n&#92;n&#92;n- [Just Rain](/garden/writings/just-rain/)&#92;n&#92;n&#92;n&#92;n- [Pavement Windshield Pop](/garden/writings/pavement-windshield-pop/)&#92;n&#92;n&#92;n&#92;n- [Blackness](/garden/writings/blackness/)&#92;n&#92;n&#92;n&#92;n- [Gearing up](/garden/writings/gearing-up/)&#92;n&#92;n&#92;n&#92;n- [Hurricane](/garden/writings/hurricane/)&#92;n&#92;n&#92;n&#92;n- [Best Wrecks](/garden/writings/best-wrecks/)&#92;n&#92;n&#92;n&#92;n- [(Untitled)](/garden/writings/untitled-2/)&#92;n&#92;n&#92;n&#92;n- [Pep talk](/garden/writings/these-are-the-days/)&#92;n&#92;n&#92;n&#92;n- [Empty Mind](/garden/writings/empty-mind/)&#92;n&#92;n&#92;n&#92;n- [Suffer](/garden/writings/suffer/)&#92;n&#92;n&#92;n&#92;n- [Coping skills](/garden/writings/coping-skills/)&#92;n&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;introduction&quot;,&quot;rationale&quot;:&quot;The &#39;introduction&#39; node is the original inaugural post for writings.travisbriggs.com, the separate site these writings originally lived on.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:459,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:34021,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:247,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:168},&quot;service_tier&quot;:&quot;standard&quot;,&quot;inference_geo&quot;:&quot;global&quot;}}],&quot;totals&quot;:{&quot;input&quot;:96030,&quot;output&quot;:53906,&quot;cacheRead&quot;:4490772,&quot;cacheWrite&quot;:34021},&quot;generatedAt&quot;:&quot;2026-07-18T07:54:47.197Z&quot;,&quot;nodeCount&quot;:133,&quot;totalLinks&quot;:120,&quot;totalRefs&quot;:347,&quot;allNodes&quot;:[{&quot;slug&quot;:&quot;Abby&quot;,&quot;fileSlug&quot;:&quot;Abby&quot;,&quot;title&quot;:&quot;Abby&quot;},{&quot;slug&quot;:&quot;Bandcamp&quot;,&quot;fileSlug&quot;:&quot;Bandcamp&quot;,&quot;title&quot;:&quot;Bandcamp&quot;},{&quot;slug&quot;:&quot;Christian&quot;,&quot;fileSlug&quot;:&quot;Christian&quot;,&quot;title&quot;:&quot;Christian&quot;},{&quot;slug&quot;:&quot;DBT&quot;,&quot;fileSlug&quot;:&quot;DBT&quot;,&quot;title&quot;:&quot;DBT&quot;},{&quot;slug&quot;:&quot;DistroKid&quot;,&quot;fileSlug&quot;:&quot;DistroKid&quot;,&quot;title&quot;:&quot;DistroKid&quot;},{&quot;slug&quot;:&quot;Fiverr&quot;,&quot;fileSlug&quot;:&quot;Fiverr&quot;,&quot;title&quot;:&quot;Fiverr&quot;},{&quot;slug&quot;:&quot;Java&quot;,&quot;fileSlug&quot;:&quot;Java&quot;,&quot;title&quot;:&quot;Java&quot;},{&quot;slug&quot;:&quot;Kiwix&quot;,&quot;fileSlug&quot;:&quot;Kiwix&quot;,&quot;title&quot;:&quot;Kiwix&quot;},{&quot;slug&quot;:&quot;Perl&quot;,&quot;fileSlug&quot;:&quot;Perl&quot;,&quot;title&quot;:&quot;Perl&quot;},{&quot;slug&quot;:&quot;Python&quot;,&quot;fileSlug&quot;:&quot;Python&quot;,&quot;title&quot;:&quot;Python&quot;},{&quot;slug&quot;:&quot;Qwobl&quot;,&quot;fileSlug&quot;:&quot;Qwobl&quot;,&quot;title&quot;:&quot;Qwobl&quot;},{&quot;slug&quot;:&quot;Rainfall&quot;,&quot;fileSlug&quot;:&quot;Rainfall&quot;,&quot;title&quot;:&quot;Rainfall, a website generator for musicians&quot;},{&quot;slug&quot;:&quot;Ruby on Rails&quot;,&quot;fileSlug&quot;:&quot;Ruby on Rails&quot;,&quot;title&quot;:&quot;Ruby (on Rails)&quot;},{&quot;slug&quot;:&quot;Spotify&quot;,&quot;fileSlug&quot;:&quot;Spotify&quot;,&quot;title&quot;:&quot;Spotify&quot;},{&quot;slug&quot;:&quot;Suno&quot;,&quot;fileSlug&quot;:&quot;Suno&quot;,&quot;title&quot;:&quot;Suno&quot;},{&quot;slug&quot;:&quot;Vue.js&quot;,&quot;fileSlug&quot;:&quot;Vue.js&quot;,&quot;title&quot;:&quot;Vue.js&quot;},{&quot;slug&quot;:&quot;YouTube&quot;,&quot;fileSlug&quot;:&quot;YouTube&quot;,&quot;title&quot;:&quot;YouTube&quot;},{&quot;slug&quot;:&quot;Zen&quot;,&quot;fileSlug&quot;:&quot;Zen&quot;,&quot;title&quot;:&quot;Zen&quot;},{&quot;slug&quot;:&quot;ableton-12&quot;,&quot;fileSlug&quot;:&quot;ableton-12&quot;,&quot;title&quot;:&quot;Ableton 12, consternation and procrastination&quot;},{&quot;slug&quot;:&quot;ableton&quot;,&quot;fileSlug&quot;:&quot;ableton&quot;,&quot;title&quot;:&quot;Ableton Live&quot;},{&quot;slug&quot;:&quot;about&quot;,&quot;fileSlug&quot;:&quot;about&quot;,&quot;title&quot;:&quot;About Me&quot;},{&quot;slug&quot;:&quot;activity-pub&quot;,&quot;fileSlug&quot;:&quot;activity-pub&quot;,&quot;title&quot;:&quot;Activity Pub shenanigans&quot;},{&quot;slug&quot;:&quot;ai-coding-benchmarks&quot;,&quot;fileSlug&quot;:&quot;ai-coding-benchmarks&quot;,&quot;title&quot;:&quot;AI Coding Benchmarks&quot;},{&quot;slug&quot;:&quot;ai-music-trends&quot;,&quot;fileSlug&quot;:&quot;ai-music-trends&quot;,&quot;title&quot;:&quot;AI Music Trends&quot;},{&quot;slug&quot;:&quot;ai&quot;,&quot;fileSlug&quot;:&quot;ai&quot;,&quot;title&quot;:&quot;AI&quot;},{&quot;slug&quot;:&quot;anki&quot;,&quot;fileSlug&quot;:&quot;anki&quot;,&quot;title&quot;:&quot;Anki flashcards&quot;},{&quot;slug&quot;:&quot;apache&quot;,&quot;fileSlug&quot;:&quot;apache&quot;,&quot;title&quot;:&quot;Email to the Apache Software Foundation&quot;},{&quot;slug&quot;:&quot;atheism&quot;,&quot;fileSlug&quot;:&quot;atheism&quot;,&quot;title&quot;:&quot;atheism&quot;},{&quot;slug&quot;:&quot;bands-as-sports-teams&quot;,&quot;fileSlug&quot;:&quot;bands-as-sports-teams&quot;,&quot;title&quot;:&quot;Bands and sports teams&quot;},{&quot;slug&quot;:&quot;best albums in the universe&quot;,&quot;fileSlug&quot;:&quot;best albums in the universe&quot;,&quot;title&quot;:&quot;The Best Albums in the Universe&quot;},{&quot;slug&quot;:&quot;blog/a-story-of-failure&quot;,&quot;fileSlug&quot;:&quot;a-story-of-failure&quot;,&quot;title&quot;:&quot;A Story Of Failure&quot;},{&quot;slug&quot;:&quot;blog/another-week&quot;,&quot;fileSlug&quot;:&quot;another-week&quot;,&quot;title&quot;:&quot;Another Week&quot;},{&quot;slug&quot;:&quot;blog/another-year-without-resolutions&quot;,&quot;fileSlug&quot;:&quot;another-year-without-resolutions&quot;,&quot;title&quot;:&quot;Another Year Without Resolutions&quot;},{&quot;slug&quot;:&quot;blog/blogging-but-this-time-with-blogging&quot;,&quot;fileSlug&quot;:&quot;blogging-but-this-time-with-blogging&quot;,&quot;title&quot;:&quot;Blogging, but this time with blogging&quot;},{&quot;slug&quot;:&quot;blog/causes-of-giving-to-causes&quot;,&quot;fileSlug&quot;:&quot;causes-of-giving-to-causes&quot;,&quot;title&quot;:&quot;Causes of Giving to Causes&quot;},{&quot;slug&quot;:&quot;blog/considering-moving-blogs&quot;,&quot;fileSlug&quot;:&quot;considering-moving-blogs&quot;,&quot;title&quot;:&quot;Considering moving blogs&quot;},{&quot;slug&quot;:&quot;blog/font-of-creativity&quot;,&quot;fileSlug&quot;:&quot;font-of-creativity&quot;,&quot;title&quot;:&quot;Font of creativity&quot;},{&quot;slug&quot;:&quot;blog/getting-nothing-done&quot;,&quot;fileSlug&quot;:&quot;getting-nothing-done&quot;,&quot;title&quot;:&quot;Getting Nothing Done&quot;},{&quot;slug&quot;:&quot;blog/giving-up-on-resolutions&quot;,&quot;fileSlug&quot;:&quot;giving-up-on-resolutions&quot;,&quot;title&quot;:&quot;Giving Up On Resolutions&quot;},{&quot;slug&quot;:&quot;blog/halloween-sadness&quot;,&quot;fileSlug&quot;:&quot;halloween-sadness&quot;,&quot;title&quot;:&quot;Halloween Sadness&quot;},{&quot;slug&quot;:&quot;blog/latest-and-not-so-greatest&quot;,&quot;fileSlug&quot;:&quot;latest-and-not-so-greatest&quot;,&quot;title&quot;:&quot;Latest and Not-so-greatest&quot;},{&quot;slug&quot;:&quot;blog/listening-to-music-while-doing-things&quot;,&quot;fileSlug&quot;:&quot;listening-to-music-while-doing-things&quot;,&quot;title&quot;:&quot;Listening to music while doing things&quot;},{&quot;slug&quot;:&quot;blog/making-a-computer-game&quot;,&quot;fileSlug&quot;:&quot;making-a-computer-game&quot;,&quot;title&quot;:&quot;Making a computer game&quot;},{&quot;slug&quot;:&quot;blog/mastodon-is-not-twitter&quot;,&quot;fileSlug&quot;:&quot;mastodon-is-not-twitter&quot;,&quot;title&quot;:&quot;Mastodon is not Twitter&quot;},{&quot;slug&quot;:&quot;blog/more-about-blogging&quot;,&quot;fileSlug&quot;:&quot;more-about-blogging&quot;,&quot;title&quot;:&quot;More about blogging&quot;},{&quot;slug&quot;:&quot;blog/music-projects-as-ephemera&quot;,&quot;fileSlug&quot;:&quot;music-projects-as-ephemera&quot;,&quot;title&quot;:&quot;Music Projects as Ephemera&quot;},{&quot;slug&quot;:&quot;blog/new-danger-third-rail-ep&quot;,&quot;fileSlug&quot;:&quot;new-danger-third-rail-ep&quot;,&quot;title&quot;:&quot;New Danger Third Rail EP&quot;},{&quot;slug&quot;:&quot;blog/new-year&quot;,&quot;fileSlug&quot;:&quot;new-year&quot;,&quot;title&quot;:&quot;Every day is New Year&#39;s Day&quot;},{&quot;slug&quot;:&quot;blog/not-quite-writers-block&quot;,&quot;fileSlug&quot;:&quot;not-quite-writers-block&quot;,&quot;title&quot;:&quot;Not Quite Writer&#39;s Block&quot;},{&quot;slug&quot;:&quot;blog/pandemic-weary&quot;,&quot;fileSlug&quot;:&quot;pandemic-weary&quot;,&quot;title&quot;:&quot;Pandemic Weary&quot;},{&quot;slug&quot;:&quot;blog/q-poker-in-progress&quot;,&quot;fileSlug&quot;:&quot;q-poker-in-progress&quot;,&quot;title&quot;:&quot;Q Poker: in progress&quot;},{&quot;slug&quot;:&quot;blog/random-knowledge-about-javascript-and-typescript&quot;,&quot;fileSlug&quot;:&quot;random-knowledge-about-javascript-and-typescript&quot;,&quot;title&quot;:&quot;Random knowledge about Javascipt and Typescript&quot;},{&quot;slug&quot;:&quot;blog/read-before-you-write&quot;,&quot;fileSlug&quot;:&quot;read-before-you-write&quot;,&quot;title&quot;:&quot;Read before you write&quot;},{&quot;slug&quot;:&quot;blog/side-quests-of-life&quot;,&quot;fileSlug&quot;:&quot;side-quests-of-life&quot;,&quot;title&quot;:&quot;Side quests of life&quot;},{&quot;slug&quot;:&quot;blog/something-terrible&quot;,&quot;fileSlug&quot;:&quot;something-terrible&quot;,&quot;title&quot;:&quot;Something Terrible&quot;},{&quot;slug&quot;:&quot;blog/songwriting-reflections&quot;,&quot;fileSlug&quot;:&quot;songwriting-reflections&quot;,&quot;title&quot;:&quot;Songwriting Reflections&quot;},{&quot;slug&quot;:&quot;blog/the-chain&quot;,&quot;fileSlug&quot;:&quot;the-chain&quot;,&quot;title&quot;:&quot;The Chain&quot;},{&quot;slug&quot;:&quot;blog/the-unattainable-and-the-attainable&quot;,&quot;fileSlug&quot;:&quot;the-unattainable-and-the-attainable&quot;,&quot;title&quot;:&quot;The Unattainable and the Attainable&quot;},{&quot;slug&quot;:&quot;blog/untitled-2020-06-15&quot;,&quot;fileSlug&quot;:&quot;untitled-2020-06-15&quot;,&quot;title&quot;:&quot;Untitled 2020-06-15&quot;},{&quot;slug&quot;:&quot;blog/what-is-a-web-application&quot;,&quot;fileSlug&quot;:&quot;what-is-a-web-application&quot;,&quot;title&quot;:&quot;What is a web application?&quot;},{&quot;slug&quot;:&quot;blog/what-programming-language-should-i-learn&quot;,&quot;fileSlug&quot;:&quot;what-programming-language-should-i-learn&quot;,&quot;title&quot;:&quot;What programming language should I learn?&quot;},{&quot;slug&quot;:&quot;blog-cycle&quot;,&quot;fileSlug&quot;:&quot;blog-cycle&quot;,&quot;title&quot;:&quot;The blog cycle&quot;},{&quot;slug&quot;:&quot;blog&quot;,&quot;fileSlug&quot;:&quot;blog&quot;,&quot;title&quot;:&quot;Blog Posts&quot;},{&quot;slug&quot;:&quot;codecov&quot;,&quot;fileSlug&quot;:&quot;codecov&quot;,&quot;title&quot;:&quot;Codecov&quot;},{&quot;slug&quot;:&quot;comments-research&quot;,&quot;fileSlug&quot;:&quot;comments-research&quot;,&quot;title&quot;:&quot;Enabling comments&quot;},{&quot;slug&quot;:&quot;comments&quot;,&quot;fileSlug&quot;:&quot;comments&quot;,&quot;title&quot;:&quot;Comments&quot;},{&quot;slug&quot;:&quot;compost&quot;,&quot;fileSlug&quot;:&quot;compost&quot;,&quot;title&quot;:&quot;Compost pile&quot;},{&quot;slug&quot;:&quot;danger-third-rail&quot;,&quot;fileSlug&quot;:&quot;danger-third-rail&quot;,&quot;title&quot;:&quot;Danger Third Rail&quot;},{&quot;slug&quot;:&quot;dg-evergreen&quot;,&quot;fileSlug&quot;:&quot;dg-evergreen&quot;,&quot;title&quot;:&quot;Digital garden posts are unfinished, or evergreen&quot;},{&quot;slug&quot;:&quot;dg-feedback&quot;,&quot;fileSlug&quot;:&quot;dg-feedback&quot;,&quot;title&quot;:&quot;Digital gardens allow and respond to feedback&quot;},{&quot;slug&quot;:&quot;dg-new&quot;,&quot;fileSlug&quot;:&quot;dg-new&quot;,&quot;title&quot;:&quot;Digital gardens aren&#39;t afraid of something new&quot;},{&quot;slug&quot;:&quot;dg-public&quot;,&quot;fileSlug&quot;:&quot;dg-public&quot;,&quot;title&quot;:&quot;Digital gardens allow for learning in public&quot;},{&quot;slug&quot;:&quot;dg-reverse&quot;,&quot;fileSlug&quot;:&quot;dg-reverse&quot;,&quot;title&quot;:&quot;Digital gardens eschew reverse chronological sorting&quot;},{&quot;slug&quot;:&quot;dg-solo&quot;,&quot;fileSlug&quot;:&quot;dg-solo&quot;,&quot;title&quot;:&quot;Digital gardens don&#39;t need attention to thrive&quot;},{&quot;slug&quot;:&quot;dg-status&quot;,&quot;fileSlug&quot;:&quot;dg-status&quot;,&quot;title&quot;:&quot;Digital gardeners are upfront about a post&#39;s status&quot;},{&quot;slug&quot;:&quot;digital-garden-itself&quot;,&quot;fileSlug&quot;:&quot;digital-garden-itself&quot;,&quot;title&quot;:&quot;This Digital Garden&quot;},{&quot;slug&quot;:&quot;digital-gardening-principles&quot;,&quot;fileSlug&quot;:&quot;digital-gardening-principles&quot;,&quot;title&quot;:&quot;Digital gardening principles&quot;},{&quot;slug&quot;:&quot;draft&quot;,&quot;fileSlug&quot;:&quot;draft&quot;,&quot;title&quot;:&quot;Draft (writing website)&quot;},{&quot;slug&quot;:&quot;excited&quot;,&quot;fileSlug&quot;:&quot;excited&quot;,&quot;title&quot;:&quot;Things I&#39;m Excited About&quot;},{&quot;slug&quot;:&quot;fake-it-music&quot;,&quot;fileSlug&quot;:&quot;fake-it-music&quot;,&quot;title&quot;:&quot;Fake it until you make music&quot;},{&quot;slug&quot;:&quot;free will&quot;,&quot;fileSlug&quot;:&quot;free will&quot;,&quot;title&quot;:&quot;Free Will&quot;},{&quot;slug&quot;:&quot;gemdown&quot;,&quot;fileSlug&quot;:&quot;gemdown&quot;,&quot;title&quot;:&quot;Gemdown&quot;},{&quot;slug&quot;:&quot;gemini&quot;,&quot;fileSlug&quot;:&quot;gemini&quot;,&quot;title&quot;:&quot;Gemini&quot;},{&quot;slug&quot;:&quot;genre-thoughts&quot;,&quot;fileSlug&quot;:&quot;genre-thoughts&quot;,&quot;title&quot;:&quot;Writing in the genre you listen to&quot;},{&quot;slug&quot;:&quot;github&quot;,&quot;fileSlug&quot;:&quot;github&quot;,&quot;title&quot;:&quot;Github&quot;},{&quot;slug&quot;:&quot;good-song&quot;,&quot;fileSlug&quot;:&quot;good-song&quot;,&quot;title&quot;:&quot;A good song is a good song&quot;},{&quot;slug&quot;:&quot;harness-matters-more&quot;,&quot;fileSlug&quot;:&quot;harness-matters-more&quot;,&quot;title&quot;:&quot;Harness Matters More&quot;},{&quot;slug&quot;:&quot;highs-and-lows-musician&quot;,&quot;fileSlug&quot;:&quot;highs-and-lows-musician&quot;,&quot;title&quot;:&quot;The highs and lows of producing music in your home studio/kitchen&quot;},{&quot;slug&quot;:&quot;index&quot;,&quot;fileSlug&quot;:&quot;index&quot;,&quot;title&quot;:&quot;Entering the garden&quot;},{&quot;slug&quot;:&quot;intrisic motivation&quot;,&quot;fileSlug&quot;:&quot;intrisic motivation&quot;,&quot;title&quot;:&quot;Intrisic Motivation&quot;},{&quot;slug&quot;:&quot;javascript-typescript&quot;,&quot;fileSlug&quot;:&quot;javascript-typescript&quot;,&quot;title&quot;:&quot;Javascript/Typescript&quot;},{&quot;slug&quot;:&quot;motivation-music&quot;,&quot;fileSlug&quot;:&quot;motivation-music&quot;,&quot;title&quot;:&quot;Music Making Motivation&quot;},{&quot;slug&quot;:&quot;new-year-2025&quot;,&quot;fileSlug&quot;:&quot;new-year-2025&quot;,&quot;title&quot;:&quot;New Year&#39;s Day 2025&quot;},{&quot;slug&quot;:&quot;nike-the-shit-out-of-it&quot;,&quot;fileSlug&quot;:&quot;nike-the-shit-out-of-it&quot;,&quot;title&quot;:&quot;NIKE the shit out of it&quot;},{&quot;slug&quot;:&quot;not the circumstances&quot;,&quot;fileSlug&quot;:&quot;not the circumstances&quot;,&quot;title&quot;:&quot;Not The Circumstances&quot;},{&quot;slug&quot;:&quot;now&quot;,&quot;fileSlug&quot;:&quot;now&quot;,&quot;title&quot;:&quot;Now&quot;},{&quot;slug&quot;:&quot;null-rail&quot;,&quot;fileSlug&quot;:&quot;null-rail&quot;,&quot;title&quot;:&quot;Null Rail&quot;},{&quot;slug&quot;:&quot;philosophy&quot;,&quot;fileSlug&quot;:&quot;philosophy&quot;,&quot;title&quot;:&quot;philosophy&quot;},{&quot;slug&quot;:&quot;plans&quot;,&quot;fileSlug&quot;:&quot;plans&quot;,&quot;title&quot;:&quot;Plans for the digital garden&quot;},{&quot;slug&quot;:&quot;programming languages&quot;,&quot;fileSlug&quot;:&quot;programming languages&quot;,&quot;title&quot;:&quot;Programming languages (meta)&quot;},{&quot;slug&quot;:&quot;recording-setup&quot;,&quot;fileSlug&quot;:&quot;recording-setup&quot;,&quot;title&quot;:&quot;Recording setup&quot;},{&quot;slug&quot;:&quot;spanish&quot;,&quot;fileSlug&quot;:&quot;spanish&quot;,&quot;title&quot;:&quot;A bit of Spanish&quot;},{&quot;slug&quot;:&quot;sudomake-friends&quot;,&quot;fileSlug&quot;:&quot;sudomake-friends&quot;,&quot;title&quot;:&quot;Sudomake Friends&quot;},{&quot;slug&quot;:&quot;taper&quot;,&quot;fileSlug&quot;:&quot;taper&quot;,&quot;title&quot;:&quot;Taper&quot;},{&quot;slug&quot;:&quot;test-post-plz-ignore&quot;,&quot;fileSlug&quot;:&quot;test-post-plz-ignore&quot;,&quot;title&quot;:&quot;Test post, plz ignore&quot;},{&quot;slug&quot;:&quot;vibe coding&quot;,&quot;fileSlug&quot;:&quot;vibe coding&quot;,&quot;title&quot;:&quot;Vibe Coding&quot;},{&quot;slug&quot;:&quot;warnings-python&quot;,&quot;fileSlug&quot;:&quot;warnings-python&quot;,&quot;title&quot;:&quot;How to squash warnings in Python by elevating them to errors&quot;},{&quot;slug&quot;:&quot;when to vibe code&quot;,&quot;fileSlug&quot;:&quot;when to vibe code&quot;,&quot;title&quot;:&quot;When To Vibe Code&quot;},{&quot;slug&quot;:&quot;wp-1.0&quot;,&quot;fileSlug&quot;:&quot;wp-1.0&quot;,&quot;title&quot;:&quot;WP 1.0 Project&quot;},{&quot;slug&quot;:&quot;writings/absolute-power&quot;,&quot;fileSlug&quot;:&quot;absolute-power&quot;,&quot;title&quot;:&quot;Absolute Power&quot;},{&quot;slug&quot;:&quot;writings/barney&quot;,&quot;fileSlug&quot;:&quot;barney&quot;,&quot;title&quot;:&quot;Barney&quot;},{&quot;slug&quot;:&quot;writings/best-wrecks&quot;,&quot;fileSlug&quot;:&quot;best-wrecks&quot;,&quot;title&quot;:&quot;Best Wrecks&quot;},{&quot;slug&quot;:&quot;writings/blackness&quot;,&quot;fileSlug&quot;:&quot;blackness&quot;,&quot;title&quot;:&quot;Blackness&quot;},{&quot;slug&quot;:&quot;writings/concession&quot;,&quot;fileSlug&quot;:&quot;concession&quot;,&quot;title&quot;:&quot;Concession&quot;},{&quot;slug&quot;:&quot;writings/coping-skills&quot;,&quot;fileSlug&quot;:&quot;coping-skills&quot;,&quot;title&quot;:&quot;Coping skills&quot;},{&quot;slug&quot;:&quot;writings/empty-mind&quot;,&quot;fileSlug&quot;:&quot;empty-mind&quot;,&quot;title&quot;:&quot;Empty Mind&quot;},{&quot;slug&quot;:&quot;writings/gearing-up&quot;,&quot;fileSlug&quot;:&quot;gearing-up&quot;,&quot;title&quot;:&quot;Gearing up&quot;},{&quot;slug&quot;:&quot;writings/gray&quot;,&quot;fileSlug&quot;:&quot;gray&quot;,&quot;title&quot;:&quot;Gray&quot;},{&quot;slug&quot;:&quot;writings/hurricane&quot;,&quot;fileSlug&quot;:&quot;hurricane&quot;,&quot;title&quot;:&quot;Hurricane&quot;},{&quot;slug&quot;:&quot;writings/introduction&quot;,&quot;fileSlug&quot;:&quot;introduction&quot;,&quot;title&quot;:&quot;Introduction&quot;},{&quot;slug&quot;:&quot;writings/just-rain&quot;,&quot;fileSlug&quot;:&quot;just-rain&quot;,&quot;title&quot;:&quot;Just Rain&quot;},{&quot;slug&quot;:&quot;writings/lazily-slapping-the-snare-drum&quot;,&quot;fileSlug&quot;:&quot;lazily-slapping-the-snare-drum&quot;,&quot;title&quot;:&quot;Lazily slapping the snare drum&quot;},{&quot;slug&quot;:&quot;writings/pavement-windshield-pop&quot;,&quot;fileSlug&quot;:&quot;pavement-windshield-pop&quot;,&quot;title&quot;:&quot;Pavement Windshield Pop&quot;},{&quot;slug&quot;:&quot;writings/pillows-and-sheets&quot;,&quot;fileSlug&quot;:&quot;pillows-and-sheets&quot;,&quot;title&quot;:&quot;Pillows and Sheets&quot;},{&quot;slug&quot;:&quot;writings/preoccupied&quot;,&quot;fileSlug&quot;:&quot;preoccupied&quot;,&quot;title&quot;:&quot;Preoccupied&quot;},{&quot;slug&quot;:&quot;writings/rainbow-static&quot;,&quot;fileSlug&quot;:&quot;rainbow-static&quot;,&quot;title&quot;:&quot;Rainbow Static&quot;},{&quot;slug&quot;:&quot;writings/suffer&quot;,&quot;fileSlug&quot;:&quot;suffer&quot;,&quot;title&quot;:&quot;Suffer&quot;},{&quot;slug&quot;:&quot;writings/the-building-building&quot;,&quot;fileSlug&quot;:&quot;the-building-building&quot;,&quot;title&quot;:&quot;The Building Building&quot;},{&quot;slug&quot;:&quot;writings/these-are-the-days&quot;,&quot;fileSlug&quot;:&quot;these-are-the-days&quot;,&quot;title&quot;:&quot;Pep talk&quot;},{&quot;slug&quot;:&quot;writings/thoughts-of-home&quot;,&quot;fileSlug&quot;:&quot;thoughts-of-home&quot;,&quot;title&quot;:&quot;Thoughts of Home&quot;},{&quot;slug&quot;:&quot;writings/toil&quot;,&quot;fileSlug&quot;:&quot;toil&quot;,&quot;title&quot;:&quot;Toil&quot;},{&quot;slug&quot;:&quot;writings/untitled-2&quot;,&quot;fileSlug&quot;:&quot;untitled-2&quot;,&quot;title&quot;:&quot;(Untitled)&quot;},{&quot;slug&quot;:&quot;writings&quot;,&quot;fileSlug&quot;:&quot;writings&quot;,&quot;title&quot;:&quot;Various Writings&quot;}],&quot;droppedCount&quot;:10}&lt;/script&gt;
&lt;script&gt;
const DATA = JSON.parse(document.getElementById(&#39;data&#39;).textContent);
const ELEVENTY = &#39;http://localhost:8080&#39;;
const CMS = &#39;http://localhost:5173&#39;;

const slugSet = new Set(DATA.allNodes.map(n =&gt; n.fileSlug.toLowerCase()));

function escapeHtml(s) {
  return String(s).replaceAll(&#39;&amp;&#39;,&#39;&amp;amp;&#39;).replaceAll(&#39;&lt;&#39;,&#39;&amp;lt;&#39;).replaceAll(&#39;&gt;&#39;,&#39;&amp;gt;&#39;).replaceAll(&#39;&quot;&#39;,&#39;&amp;quot;&#39;).replaceAll(&quot;&#39;&quot;, &#39;&amp;#39;&#39;);
}

function renderMeta() {
  const m = document.getElementById(&#39;meta&#39;);
  m.innerHTML = `
    &lt;div&gt;${DATA.nodeCount} nodes · ${DATA.totalLinks} link suggestions · ${DATA.totalRefs} cross-refs&lt;/div&gt;
    &lt;div style=&quot;margin-top:0.2rem;color:var(--muted2);font-size:0.7rem&quot;&gt;generated ${new Date(DATA.generatedAt).toLocaleString()}&lt;/div&gt;
  `;
}

function getSortedFiltered() {
  const q = document.getElementById(&#39;filter&#39;).value.trim().toLowerCase();
  const hideEmpty = document.getElementById(&#39;hide-empty&#39;).checked;
  const sortBy = document.getElementById(&#39;sort&#39;).value;

  let items = DATA.results.slice();
  if (q) {
    items = items.filter(r =&gt;
      r.node.fileSlug.toLowerCase().includes(q) ||
      r.node.title.toLowerCase().includes(q) ||
      r.node.slug.toLowerCase().includes(q)
    );
  }
  if (hideEmpty) {
    items = items.filter(r =&gt; (r.parsed &amp;&amp; (r.parsed.suggested_links.length + r.parsed.cross_references.length &gt; 0)) || r.error);
  }
  if (sortBy === &#39;slug&#39;) items.sort((a,b) =&gt; a.node.slug.localeCompare(b.node.slug));
  else if (sortBy === &#39;title&#39;) items.sort((a,b) =&gt; a.node.title.localeCompare(b.node.title));
  else items.sort((a,b) =&gt; {
    const ac = (a.parsed ? a.parsed.suggested_links.length + a.parsed.cross_references.length : 0);
    const bc = (b.parsed ? b.parsed.suggested_links.length + b.parsed.cross_references.length : 0);
    return bc - ac || a.node.slug.localeCompare(b.node.slug);
  });
  return items;
}

let selectedSlug = null;

function renderNav() {
  const nav = document.getElementById(&#39;nav&#39;);
  const items = getSortedFiltered();
  nav.innerHTML = items.map(r =&gt; {
    const links = r.parsed ? r.parsed.suggested_links.length : 0;
    const refs = r.parsed ? r.parsed.cross_references.length : 0;
    const isActive = r.node.slug === selectedSlug;
    return `
      &lt;a class=&quot;nav-item ${isActive ? &#39;active&#39; : &#39;&#39;}&quot; data-slug=&quot;${escapeHtml(r.node.slug)}&quot; href=&quot;#${encodeURIComponent(r.node.slug)}&quot;&gt;
        &lt;div&gt;${escapeHtml(r.node.title)}&lt;span class=&quot;slug&quot;&gt;${escapeHtml(r.node.slug)}&lt;/span&gt;&lt;/div&gt;
        &lt;div class=&quot;counts&quot;&gt;&lt;strong&gt;${links}&lt;/strong&gt;&lt;em&gt;${refs}&lt;/em&gt;&lt;/div&gt;
      &lt;/a&gt;
    `;
  }).join(&#39;&#39;);
}

function renderNode(r) {
  if (!r) {
    document.getElementById(&#39;main&#39;).innerHTML = &#39;&lt;div class=&quot;no-node&quot;&gt;No matching node.&lt;/div&gt;&#39;;
    return;
  }
  const eleventy = `${ELEVENTY}/garden/${encodeURI(r.node.slug)}/`;
  const cms = `${CMS}/edit/${encodeURI(r.node.slug)}`;

  let html = `
    &lt;h2&gt;${escapeHtml(r.node.title)}&lt;/h2&gt;
    &lt;div class=&quot;node-meta&quot;&gt;
      &lt;a href=&quot;${cms}&quot; target=&quot;_blank&quot;&gt;Edit in CMS ↗&lt;/a&gt;
      &lt;a href=&quot;${eleventy}&quot; target=&quot;_blank&quot;&gt;Preview ↗&lt;/a&gt;
      &lt;span&gt;${escapeHtml(r.node.slug)}&lt;/span&gt;
    &lt;/div&gt;
  `;

  if (r.error) {
    html += `&lt;div class=&quot;error&quot;&gt;Error: ${escapeHtml(r.error)}&lt;/div&gt;`;
  } else {
    const sl = r.parsed.suggested_links;
    const cr = r.parsed.cross_references;
    html += `&lt;div class=&quot;section&quot;&gt;
      &lt;h3&gt;Suggested Wikilinks (${sl.length})&lt;/h3&gt;
      ${sl.length ? sl.map(s =&gt; renderSuggestion(s, r.node)).join(&#39;&#39;) : &#39;&lt;div class=&quot;empty&quot;&gt;No new wikilink suggestions.&lt;/div&gt;&#39;}
    &lt;/div&gt;`;
    html += `&lt;div class=&quot;section&quot;&gt;
      &lt;h3&gt;Could Elaborate This Node (${cr.length})&lt;/h3&gt;
      ${cr.length ? cr.map(c =&gt; renderCrossRef(c, r.node)).join(&#39;&#39;) : &#39;&lt;div class=&quot;empty&quot;&gt;No cross-reference suggestions.&lt;/div&gt;&#39;}
    &lt;/div&gt;`;
  }

  document.getElementById(&#39;main&#39;).innerHTML = html;
}

function renderSuggestion(s, parentNode) {
  const exists = slugSet.has(s.slug.toLowerCase());
  const targetCms = exists ? `${CMS}/edit/${encodeURI(s.slug)}` : null;
  const targetView = exists ? `${ELEVENTY}/garden/${encodeURI(s.slug)}/` : null;
  const parentCms = `${CMS}/edit/${encodeURI(parentNode.slug)}`;
  return `
    &lt;div class=&quot;card&quot;&gt;
      &lt;div class=&quot;head&quot;&gt;
        &lt;span class=&quot;target ${exists ? &#39;&#39; : &#39;missing&#39;}&quot;&gt;
          ${exists ? `&lt;a href=&quot;${targetCms}&quot; target=&quot;_blank&quot;&gt;[[${escapeHtml(s.slug)}]]&lt;/a&gt;` : `[[${escapeHtml(s.slug)}]] ⚠ no such node`}
        &lt;/span&gt;
        &lt;span class=&quot;anchor&quot;&gt;${escapeHtml(s.anchor_text)}&lt;/span&gt;
      &lt;/div&gt;
      &lt;div class=&quot;context&quot;&gt;${escapeHtml(s.context)}&lt;/div&gt;
      &lt;div class=&quot;rationale&quot;&gt;${escapeHtml(s.rationale)}&lt;/div&gt;
      &lt;div class=&quot;actions&quot;&gt;
        &lt;a href=&quot;${parentCms}&quot; target=&quot;_blank&quot;&gt;Edit ${escapeHtml(parentNode.slug)} →&lt;/a&gt;
        ${exists ? `&lt;a href=&quot;${targetView}&quot; target=&quot;_blank&quot;&gt;Preview target ↗&lt;/a&gt;` : &#39;&#39;}
      &lt;/div&gt;
    &lt;/div&gt;
  `;
}

function renderCrossRef(c, parentNode) {
  const exists = slugSet.has(c.slug.toLowerCase());
  const targetCms = exists ? `${CMS}/edit/${encodeURI(c.slug)}` : null;
  const targetView = exists ? `${ELEVENTY}/garden/${encodeURI(c.slug)}/` : null;
  return `
    &lt;div class=&quot;card&quot;&gt;
      &lt;div class=&quot;head&quot;&gt;
        &lt;span class=&quot;target ${exists ? &#39;&#39; : &#39;missing&#39;}&quot;&gt;
          ${exists ? `&lt;a href=&quot;${targetCms}&quot; target=&quot;_blank&quot;&gt;${escapeHtml(c.slug)}&lt;/a&gt;` : `${escapeHtml(c.slug)} ⚠ no such node`}
        &lt;/span&gt;
      &lt;/div&gt;
      &lt;div class=&quot;rationale&quot;&gt;${escapeHtml(c.rationale)}&lt;/div&gt;
      ${exists ? `&lt;div class=&quot;actions&quot;&gt;&lt;a href=&quot;${targetView}&quot; target=&quot;_blank&quot;&gt;Preview target ↗&lt;/a&gt;&lt;/div&gt;` : &#39;&#39;}
    &lt;/div&gt;
  `;
}

function selectFromHash() {
  const slug = decodeURIComponent((location.hash || &#39;&#39;).replace(/^#/, &#39;&#39;));
  if (!slug) return;
  const found = DATA.results.find(r =&gt; r.node.slug === slug);
  selectedSlug = slug;
  renderNav();
  renderNode(found);
}

document.addEventListener(&#39;click&#39;, e =&gt; {
  const a = e.target.closest(&#39;.nav-item&#39;);
  if (!a) return;
  e.preventDefault();
  const slug = a.dataset.slug;
  selectedSlug = slug;
  history.replaceState(null, &#39;&#39;, &#39;#&#39; + encodeURIComponent(slug));
  renderNav();
  renderNode(DATA.results.find(r =&gt; r.node.slug === slug));
});

document.getElementById(&#39;filter&#39;).addEventListener(&#39;input&#39;, renderNav);
document.getElementById(&#39;sort&#39;).addEventListener(&#39;change&#39;, renderNav);
document.getElementById(&#39;hide-empty&#39;).addEventListener(&#39;change&#39;, renderNav);
window.addEventListener(&#39;hashchange&#39;, selectFromHash);

renderMeta();
renderNav();
selectFromHash();
&lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;</content>
  </entry>
  <entry>
    <title>Plans for the digital garden</title>
    <link href="https://garden.travisbriggs.com/garden/plans/"/>
    <updated>2026-05-29T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/plans/</id>
    <content xml:lang="en" type="html">&lt;p&gt;Here I&#39;d like to discuss some of my plans, hopes, aspirations and whatnot for this digital garden. I&#39;ve documented some of the more &lt;a href=&quot;https://github.com/audiodude/garden.travisbriggs.com/issues&quot;&gt;technical issues&lt;/a&gt; on the garden&#39;s &lt;a href=&quot;https://github.com/audiodude/garden.travisbriggs.com&quot;&gt;Github repo&lt;/a&gt;. But I guess what I want to do here is talk more about what I plan to write about, how I plan to organize things.&lt;/p&gt;
&lt;p&gt;I&#39;m trying to do all this in accordance with my interpretation of the &lt;a href=&quot;https://garden.travisbriggs.com/garden/digital-gardening-principles/&quot;&gt;digital gardening principles&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I did eventually add a &lt;a href=&quot;https://garden.travisbriggs.com/garden/comments-research/&quot;&gt;comments system&lt;/a&gt;, which I&#39;m quite proud of!&lt;/p&gt;
&lt;p&gt;I added a &lt;a href=&quot;https://garden.travisbriggs.com/garden/now/&quot;&gt;now&lt;/a&gt; page, which I think is some kind of progress. Now (see what I did there?) I need to make sure I keep it updated. That&#39;s the struggle in general with this garden, is that if I don&#39;t have something new to say or some idea to convey, I don&#39;t spend much time &amp;quot;tending&amp;quot; it. So far, my &lt;a href=&quot;https://garden.travisbriggs.com/garden/compost/&quot;&gt;compost pile&lt;/a&gt; is a good step in the direction of eschewing &lt;a href=&quot;https://garden.travisbriggs.com/garden/dg-reverse/&quot;&gt;reverse chronilogical links&lt;/a&gt; at least.&lt;/p&gt;
&lt;p&gt;I still want to move the content in my blog posts into more organic topic pages. Some of them, like &lt;a href=&quot;https://garden.travisbriggs.com/garden/blog/what-programming-language-should-i-learn/&quot;&gt;&amp;quot;What programming language should I learn?&amp;quot;&lt;/a&gt; lend themselves nicely to that. But others, where I&#39;m just &lt;a href=&quot;https://garden.travisbriggs.com/garden/blog/latest-and-not-so-greatest/&quot;&gt;randomly complaining about music production&lt;/a&gt; or something, I&#39;m not sure how to work them in. Maybe that&#39;s the fun!&lt;/p&gt;
&lt;p&gt;I think the spirit of the thing is that it grows organically, like a real garden.&lt;/p&gt;
&lt;p&gt;One thing I&#39;ve done recently is create a mini CMS for myself, a la the one that I vibe coded for &lt;a href=&quot;https://garden.travisbriggs.com/garden/null-rail/&quot;&gt;null-rail&lt;/a&gt;. I realized that with a web based GUI for writing and organizing posts makes things so much easier than editing flat files in &lt;a href=&quot;https://code.visualstudio.com/&quot;&gt;VSCode&lt;/a&gt;. I&#39;ve already know for a while that the less friction there is, the more likely I am to write and edit and update.&lt;/p&gt;
&lt;p&gt;I definitely already have a bunch of &amp;quot;Stub&amp;quot; and &amp;quot;Start&amp;quot; quality articles that I could expand upon. Not sure what exactly to do there other than simply write a Wikipedia article on the topic (like &lt;a href=&quot;https://garden.travisbriggs.com/garden/DistroKid/&quot;&gt;DistroKid&lt;/a&gt;). I read in Andy Matuschak&#39;s &amp;quot;Evergreen Notes&amp;quot; that &lt;a href=&quot;https://notes.andymatuschak.org/About_these_notes?stackedNotes=z4SDCZQeRo4xFEQ8H4qrSqd68ucpgE6LU155C&amp;amp;stackedNotes=z6bci25mVUBNFdVWSrQNKr6u7AZ1jFzfTVbMF&quot;&gt;Evergreen notes should be concept-oriented&lt;/a&gt; which I think I&#39;m not exactly following, because I&#39;ve developed lots of garden &amp;quot;nodes&amp;quot; that are nouns.&lt;/p&gt;
&lt;p&gt;Also Andy says that &lt;a href=&quot;https://notes.andymatuschak.org/About_these_notes?stackedNotes=z4SDCZQeRo4xFEQ8H4qrSqd68ucpgE6LU155C&amp;amp;stackedNotes=z6bci25mVUBNFdVWSrQNKr6u7AZ1jFzfTVbMF&amp;amp;stackedNotes=z2HUE4ABbQjUNjrNemvkTCsLa1LPDRuwh1tXC&quot;&gt;Evergreen notes should be densely linked&lt;/a&gt; which I knew intuitively, but I hadn&#39;t really been following. I think I need to actively seek out and link together my nodes (and no, I&#39;m not going to belabor the analogy and start calling them &amp;quot;plants&amp;quot; or &amp;quot;seeds&amp;quot;). I&#39;m also considering using vibe coding to analyze garden nodes and do this.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Zen</title>
    <link href="https://garden.travisbriggs.com/garden/Zen/"/>
    <updated>2026-05-29T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/Zen/</id>
    <content xml:lang="en" type="html">&lt;p&gt;I&#39;m not sure if this page should be completely empty, completely full, or if it already is both.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Abby</title>
    <link href="https://garden.travisbriggs.com/garden/Abby/"/>
    <updated>2026-05-29T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/Abby/</id>
    <content xml:lang="en" type="html">&lt;p&gt;Abby is my lovely wife. We got married on November 9th, 2014. We met in Boston in 2011 and started dating in April of that year. If you&#39;ll believe it, we were engaged by July of that year. I love her to pieces, and in fact I write her a &amp;quot;daily love letter&amp;quot; every night.&lt;/p&gt;
&lt;p&gt;We go on trips together (many trips to Reno since 2018, Sweden, Quebec, Switzerland, Hong Kong), play video games (Fallout 4 forever, recently Arc Raiders), see &lt;a href=&quot;https://garden.travisbriggs.com/garden/good-song/&quot;&gt;movies&lt;/a&gt;, walk down Valencia Street, go to company picnics and holiday parties. She is my best friend as well as my one true love.&lt;/p&gt;
&lt;p&gt;She is a costume designer, thrift store stalker, and &lt;a href=&quot;https://garden.travisbriggs.com/garden/blog/q-poker-in-progress/&quot;&gt;poker player&lt;/a&gt;. She is smart and talented and funny. I&#39;d show you a picture but she&#39;d probably get embarassed.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>When To Vibe Code</title>
    <link href="https://garden.travisbriggs.com/garden/when%20to%20vibe%20code/"/>
    <updated>2026-05-23T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/when%20to%20vibe%20code/</id>
    <content xml:lang="en" type="html">&lt;p&gt;Vibe code whenever you want! It&#39;s fun!&lt;/p&gt;
&lt;p&gt;But it usually works best when the stakes are low, for personal projects honestly in my experience.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>philosophy</title>
    <link href="https://garden.travisbriggs.com/garden/philosophy/"/>
    <updated>2026-05-23T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/philosophy/</id>
    <content xml:lang="en" type="html">&lt;p&gt;I don&#39;t have a ton of opinions on philosophy. I consider myself something of an existentialist, because I believe that life and existence are absurd and without inherent meaning. We must create our own meaning. However most days it&#39;s hard for me to actually picture &lt;a href=&quot;https://en.wikipedia.org/wiki/The_Myth_of_Sisyphus&quot;&gt;Sisyphus happy&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I don&#39;t believe in free will. I am a determinist. I believe there is plenty of evidence that &amp;quot;free will&amp;quot; is the name we give to the process by which our conscious mind explains to itself why it did something.&lt;/p&gt;
&lt;p&gt;I&#39;m also an &lt;a href=&quot;https://garden.travisbriggs.com/garden/atheism/&quot;&gt;atheist&lt;/a&gt;, some sort of &lt;a href=&quot;https://garden.travisbriggs.com/garden/zen/&quot;&gt;Zen Buddhist&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;It&#39;s hard to write a garden node title &amp;quot;philosophy&amp;quot;, which exists in the abstract without any particular object that the supposed philosophy is focused on. Relatedly, I&#39;ve started getting interested in &lt;a href=&quot;https://garden.travisbriggs.com/garden/Zen/&quot;&gt;Zen&lt;/a&gt; again. In one of the books I was reading about Zen, the author discussed how it&#39;s impossible to picture an object without a subject. I think this page is kind of a testament to that.&lt;/p&gt;
&lt;p&gt;At some points in time I&#39;ve described myself as an &amp;quot;Atheistic Taoist&amp;quot;. Anyways, this is the philosophy node, not the religion node. But I think I need to take more inspiration from Wikipedia, where yes, &lt;a href=&quot;https://www.youtube.com/watch?v=onRk0sjSgFU&quot;&gt;Everything In Its Right Place&lt;/a&gt;, but also it&#39;s okay if there&#39;s some redundant information here and there, if it helps explain and clarify things. And especially, in the case of this digital garden, if it adds flavor or character or I just, you know, feel like doing it!&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Not The Circumstances</title>
    <link href="https://garden.travisbriggs.com/garden/not%20the%20circumstances/"/>
    <updated>2026-05-23T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/not%20the%20circumstances/</id>
    <content xml:lang="en" type="html">&lt;p&gt;&lt;em&gt;Turns out not where but who you&#39;re with that really matters&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Dave Matthews, &lt;em&gt;Best Of What&#39;s Around&lt;/em&gt;, from the 1996 album &lt;em&gt;Under The Table And Dreaming&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can&#39;t control what happens, only the way you respond to it. See also &lt;a href=&quot;https://garden.travisbriggs.com/garden/free%20will/&quot;&gt;free will&lt;/a&gt;.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Intrisic Motivation</title>
    <link href="https://garden.travisbriggs.com/garden/intrisic%20motivation/"/>
    <updated>2026-05-23T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/intrisic%20motivation/</id>
    <content xml:lang="en" type="html">&lt;p&gt;From what I&#39;ve been researching, &lt;strong&gt;intrinsic motivation&lt;/strong&gt; is largely defined in terms of it&#39;s opposite, &lt;strong&gt;extrinsic motivation&lt;/strong&gt;. Extrinsic motivation is doing something for the reasons that we&#39;re used to: a pat on the back, recognition, appreciation from others. In the age of social media, it&#39;s your likes, comments, follows, etc. It is your inclination to want to do something so that others will be proud of you, so that they will respect you, so that you will earn some reward.&lt;/p&gt;
&lt;p&gt;Intrinsic motivation, then, is more often just called motivation: &amp;quot;I want to do the dishes tonight&amp;quot; or &amp;quot;I&#39;ve been writing songs again and I really want to keep doing it&amp;quot;.&lt;/p&gt;
&lt;p&gt;While most people will have some degree of both, with the help of my therapist, I&#39;ve identified that I am largely driven by extrinsic motivation. I am not a &lt;em&gt;people pleaser&lt;/em&gt; per se, but I do things so that I can serve others, so they will appreciate and be proud of me. I do them so that others will want to keep me around...&lt;/p&gt;
&lt;p&gt;Why is this? Well who knows really. And who cares? My theapist is very strongly &lt;a href=&quot;https://garden.travisbriggs.com/garden/DBT/&quot;&gt;DBT based&lt;/a&gt;, and he respects my slightly &lt;a href=&quot;https://garden.travisbriggs.com/garden/Zen/&quot;&gt;buddhist views&lt;/a&gt; that the past doesn&#39;t exist. It doesn&#39;t matter why it&#39;s this way. If I seek to change it, I need only to know how.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;So how have I been approaching that then? So far, beyond just being mindful of it (another &lt;a href=&quot;https://garden.travisbriggs.com/garden/DBT/&quot;&gt;core DBT skill&lt;/a&gt;), I have been following a specific practice. What I&#39;ve been doing is &lt;em&gt;doing things in secret&lt;/em&gt;. By things I mostly mean creative things, but I also mean just as as simply as doing the dishes but not making sure to tell &lt;a href=&quot;https://garden.travisbriggs.com/garden/Abby/&quot;&gt;Abby&lt;/a&gt; that I did.&lt;/p&gt;
&lt;p&gt;At the start of a project, I will resolve to &lt;strong&gt;never show it to anyone no matter what&lt;/strong&gt;. I&#39;m doing it just for myself. This isn&#39;t a sacred vow. Some part of me, my &lt;a href=&quot;https://bumblingthroughdungeons.com/top-ten-games-you-can-play-in-your-head-by-yourself-review/&quot;&gt;shadow self&lt;/a&gt;, does know that if something comes out good enough -- or if I really just, you know, want to -- I could show people things. Interestingly enough, this does kind of follow the principle of &lt;a href=&quot;https://garden.travisbriggs.com/garden/dg-public/&quot;&gt;not having to show off everything&lt;/a&gt;. In the past couple years, I&#39;ve unfortunately used that last one as an excuse to just simply stop writing.&lt;/p&gt;
&lt;p&gt;Basically, this &lt;a href=&quot;https://garden.travisbriggs.com/garden/no-one-cares-good/&quot;&gt;flips the reward structure on its head&lt;/a&gt;. Not only do I have to practice being satisfied with simply &amp;quot;a job well done&amp;quot;, but I start to get choosy about doing things at all because I know I&#39;m only doing them for myself (and not just paying lip service to that idea like many do).&lt;/p&gt;
&lt;p&gt;And then the magic happens. It&#39;s almost some kind of exposure therapy. Now that I&#39;m doing things just for myself, that process becomes more and more satisfying. And I can reach more of a &lt;a href=&quot;https://garden.travisbriggs.com/garden/zen/&quot;&gt;balanced path&lt;/a&gt; where I &lt;em&gt;can&lt;/em&gt; sometimes do things because I want to show them off. It kind of resets my insensitivity to praise, which I read was something behind some of this (and easily observable in the social media age: creators and influencers are often chasing a &amp;quot;bigger hit&amp;quot;, a &amp;quot;larger win&amp;quot;, suddenly simply 1 million views isn&#39;t enough).&lt;/p&gt;
&lt;p&gt;And like all things, like Buddhism and DBT, you&#39;re always practicing this (if you choose); you&#39;re never done. There is no finish line for building intrinsic motivation, and how would I know if I had reached it anyway? I must be self-satisfied with my own progress in this matter.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Free Will</title>
    <link href="https://garden.travisbriggs.com/garden/free%20will/"/>
    <updated>2026-05-23T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/free%20will/</id>
    <content xml:lang="en" type="html"></content>
  </entry>
  <entry>
    <title>DBT</title>
    <link href="https://garden.travisbriggs.com/garden/DBT/"/>
    <updated>2026-05-23T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/DBT/</id>
    <content xml:lang="en" type="html">&lt;p&gt;DBT is &lt;a href=&quot;https://my.clevelandclinic.org/health/treatments/22838-dialectical-behavior-therapy-dbt&quot;&gt;Dialectial Behavior Therapy&lt;/a&gt; (also &lt;a href=&quot;https://en.wikipedia.org/wiki/Dialectical_behavior_therapy&quot;&gt;on Wikipedia&lt;/a&gt;).&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Music Projects as Ephemera</title>
    <link href="https://garden.travisbriggs.com/garden/blog/music-projects-as-ephemera/"/>
    <updated>2026-05-17T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/blog/music-projects-as-ephemera/</id>
    <content xml:lang="en" type="html">&lt;p&gt;At some point in the past year, I upgraded my version of &lt;a href=&quot;https://www.reasonstudios.com/shop/product/reason-11/&quot;&gt;Reason&lt;/a&gt; from version 10 to version 11.&lt;/p&gt;
&lt;p&gt;At some point in the past two months, I tried to open an old music project that I had written two or more years ago.&lt;/p&gt;
&lt;h3&gt;It was a catastrophe.&lt;/h3&gt;
&lt;p&gt;Without getting too technical, I had structured &lt;em&gt;all&lt;/em&gt; of my projects, going back maybe 10 years, as an &lt;a href=&quot;https://www.ableton.com/en/live/&quot;&gt;Ableton Live&lt;/a&gt; main project (for recording audio and using audio plugins) that potentially depended on a Reason sub project for using drums and synthesizers from that program. Through a technology known as &lt;a href=&quot;https://en.wikipedia.org/wiki/ReWire_(software_protocol)&quot;&gt;ReWire&lt;/a&gt;, the two programs stayed perfectly in sync and I could easily share audio and &lt;a href=&quot;https://blog.landr.com/what-is-midi/&quot;&gt;MIDI&lt;/a&gt; between them.&lt;/p&gt;
&lt;p&gt;The key here is that Ableton Live was the &amp;quot;host&amp;quot;, with the main recording controls and tempo, and Reason was the &amp;quot;guest&amp;quot;, simply making its instruments and sounds available. For a decade, my default project in Ableton included a track that was used solely for getting sound back from Reason, armed and ready to go.&lt;/p&gt;
&lt;p&gt;In version 11 of the Reason &amp;quot;suite&amp;quot;, they made a bold choice: offer Reason as a VST plugin. This was pretty revolutionary, because it allowed users to do exactly what I was doing, but without having to run the Reason application at all. And you could have an almost unlimited number of these virtual Reason &amp;quot;racks&amp;quot; in your Ableton project, each merrily doing its own thing.&lt;/p&gt;
&lt;p&gt;It was also revolutionary because it killed ReWire.&lt;/p&gt;
&lt;p&gt;ReWire as a protocol still exists, and there are probably examples of programs that use it that you can run today. But Reason doesn&#39;t use it. And because of that &lt;strong&gt;none of my projects, spanning a 10 year period, can be &amp;quot;run&amp;quot; on the new version of Reason&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Oh sure, Reason Studios (the new moniker for Propellerheads SE, who make the software) has done a meticulous job of ensuring backwards compatibility for their own .reason file format. You can open very, very old .reason files, maybe even from version 1, I don&#39;t know for sure.&lt;/p&gt;
&lt;p&gt;The problem isn&#39;t that I can&#39;t open the Reason file.&lt;/p&gt;
&lt;p&gt;And Ableton, too, has made substantial investment in backwards compatibility. They warn you when you open an old file, that it might be converted, etc, but it&#39;s usually no problem.&lt;/p&gt;
&lt;p&gt;The problem isn&#39;t that I can&#39;t open the Ableton file.&lt;/p&gt;
&lt;p&gt;The problem is that they no longer communicate. The Reason file, with my drums and synthesizers. The Ableton file with my voice takes and guitar tracks. They just sit there, dumb, each ready to play half my song out of sync with each other. As my friend Sagar would say, &amp;quot;Why don&#39;t you just hit play at the same time?&amp;quot; Facepalm.&lt;/p&gt;
&lt;p&gt;Reason Studios, for their part, doesn&#39;t offer downloads of old versions of their software. Maybe they would throw a DMG my way if I explained my issues, maybe not, I haven&#39;t tried contacting them.&lt;/p&gt;
&lt;p&gt;I wonder now, though, in the age of vibe coding, if there isn&#39;t some way I could automate a solution for the Reason drum beat issue and somehow render and transclude the beat with scripting/automation?&lt;/p&gt;
&lt;p&gt;And honestly, do I need the beats really? Most of them, especially for the rock-oriented songs, are literally the stock Dr Rex &amp;quot;College 130&amp;quot; beat. I can probably recreate or do without?&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Okay, I&#39;ve got files on my computer, backed up to Dropbox, of songs I wrote and played around with 24 odd years ago, when I was in middle school. I know the programs that wrote these files don&#39;t exist anymore (they were on the pre-OS X, MacOS 8 operating system, not even MacOS 9!). I guess I keep them around for sentimental reasons.&lt;/p&gt;
&lt;p&gt;Of course, I also have .reason files from 18 odd years ago when I was in college and making music solely with Reason (a copy of which may or may not have -cough- &amp;quot;fallen off a truck&amp;quot;). I can still open those!&lt;/p&gt;
&lt;p&gt;I guess I didn&#39;t expect my music files to constitute such ephemera, based on the above. I guess I didn&#39;t expect to one day &amp;quot;upgrade&amp;quot; my rig and lose access to 10 years of music projects. Yes, as digital musicians we know that upgrades are risky. That&#39;s why I&#39;ve been on OS X 10.14 Mojave until only 2 months ago (oddly it was losing access to these projects that made me say &amp;quot;eff it&amp;quot; and upgrade my OS). Based on some of what I read, I might never upgrade to Big Sur or beyond (because many of my plugins are old and won&#39;t get updated to run on M1 hardware). It makes me wonder if I should just have a dedicated music making computer that&#39;s not even connected to the internet and never receives updates. But that&#39;s kind of a luxury I don&#39;t have. Okay, end rant.&lt;/p&gt;
&lt;p&gt;I think the point is that I &lt;em&gt;should&lt;/em&gt; have expected this to happen. Every piece of digital everything is ephemera. Just look at how quickly &lt;a href=&quot;https://www.newyorker.com/magazine/2015/01/26/cobweb&quot;&gt;link rot&lt;/a&gt; takes over the web (it&#39;s impressive that the linked New Yorker article from 2015 still exists, but is that even its original URL?). Ask anyone my age where their digital photos from college or before are, now that they&#39;ve lost that phone 10 years ago, or the hard drive on that laptop crashed. I get it.&lt;/p&gt;
&lt;p&gt;I don&#39;t feel the need to warn anyone that this might happen to them. The versions of the software are old enough now that if it was going to happen, it&#39;s likely already happened. I also don&#39;t mean to whine or complain publicly, though a bit of that seems to be helping. And I&#39;m not here to tell everyone to &amp;quot;back up all your files in 5 different formats and 6 different timezones&amp;quot; or whatever.&lt;/p&gt;
&lt;p&gt;For myself, I&#39;m thinking of rendering everything as &lt;code&gt;.wav&lt;/code&gt; in the future, so that I have &lt;em&gt;some&lt;/em&gt; kind of tangible artifact in case this keeps happening.&lt;/p&gt;
&lt;p&gt;This is more a eulogy for my lost files. Goodbye old songs. May you live on in MP3 format on &lt;a href=&quot;https://songs.travisbriggs.com/&quot;&gt;songs.travisbriggs.com&lt;/a&gt; and Soundcloud. And by writing this, may I get some peace and closure.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Vibe Coding</title>
    <link href="https://garden.travisbriggs.com/garden/vibe%20coding/"/>
    <updated>2026-05-16T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/vibe%20coding/</id>
    <content xml:lang="en" type="html">&lt;p&gt;Vibe coding.&lt;/p&gt;
&lt;p&gt;Wow.&lt;/p&gt;
&lt;p&gt;I started vibe coding in 2025, around the time the term was invented (TODO: link/screenshot).&lt;/p&gt;
&lt;p&gt;Since April 2026, I have been a vibe coding &lt;em&gt;fiend&lt;/em&gt;. I have vibe coded fucking everything. For me, vibe coding in 2026 is like the way people started using ChatGPT in 2023. I just use it constantly.&lt;/p&gt;
&lt;p&gt;In some sense, I&#39;ve forgotten how to write regular code, seriously. Maybe not &amp;quot;how&amp;quot; per se, but I&#39;ve lost all mostivation or inclination to do so.&lt;/p&gt;
&lt;p&gt;In many senses, I&#39;ve come to see it as a way to truly explore lots of ideas quickly that would be too expensive in terms of time/effort investment, given the &lt;a href=&quot;https://garden.travisbriggs.com/garden/intrisic%20motivation/&quot;&gt;payoff&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I&#39;ve got lots of feelings about techniques for this. Really at this point I&#39;m genuinely excited to learn about and try new techniques. I don&#39;t feel somehow obligated because I&#39;m worried about some future where I&#39;m obsolete in society.&lt;/p&gt;
&lt;p&gt;I&#39;ve also been thinking about &lt;a href=&quot;https://garden.travisbriggs.com/garden/when%20to%20vibe%20code/&quot;&gt;what contexts&lt;/a&gt; it works best in (especially the &lt;em&gt;personal project/throwaway project&lt;/em&gt; v &lt;em&gt;serious project/work&lt;/em&gt; splits).&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Null Rail</title>
    <link href="https://garden.travisbriggs.com/garden/null-rail/"/>
    <updated>2026-05-16T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/null-rail/</id>
    <content xml:lang="en" type="html">&lt;p&gt;In 2026, I&#39;ve now really embraced &lt;a href=&quot;https://garden.travisbriggs.com/garden/ai/&quot;&gt;AI&lt;/a&gt; and &lt;a href=&quot;https://garden.travisbriggs.com/garden/vibe%20coding/&quot;&gt;vibe coding&lt;/a&gt;. Like really embraced it.&lt;/p&gt;
&lt;p&gt;One of the projects that I&#39;ve been working on is &lt;a href=&quot;https://null.dangerthirdrail.com/&quot;&gt;Null Rail&lt;/a&gt;. It is a site where I am &amp;quot;learning&amp;quot; in public, just like this digital garden. It basically came about because I wanted to share some of these tracks/songs, but I didn&#39;t want to conflate them with my actual, hand-crafted, 100% human made demos at &lt;a href=&quot;https://songs.travisbriggs.com/&quot;&gt;songs.travisbriggs.com&lt;/a&gt;. I also wanted to be able to share notes on each of the songs, to really document my process as well as my thoughts on the end result.&lt;/p&gt;
&lt;p&gt;I took the opportunity to use &lt;a href=&quot;https://www.anthropic.com/news/claude-design-anthropic-labs&quot;&gt;Claude Design&lt;/a&gt;, which was pretty new at the time. I fed it a screenshot of the now defunct &lt;a href=&quot;https://garden.travisbriggs.com/garden/Rainfall/&quot;&gt;Rainfall&lt;/a&gt;, RIP (TODO: embed image). It came up with a site with a remarkably close color scheme and design system. The point of using Rainfall was not because that site was particularly well designed, but that it was designed &lt;em&gt;by me, from scratch, with my own ideas&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Of course, once I started &lt;a href=&quot;https://garden.travisbriggs.com/garden/vibe%20coding/&quot;&gt;vibe coding&lt;/a&gt; it, I started recklessly adding all kinds of features that I was thinking of. It was originally going to just be a blog style &lt;a href=&quot;https://garden.travisbriggs.com/garden/dg-reverse/&quot;&gt;reverse chronological list&lt;/a&gt;. With a media player of course. But then I thought, maybe I can showcase different versions of the track? This came about organically because as I was playing in &lt;a href=&quot;https://garden.travisbriggs.com/garden/Suno/&quot;&gt;Suno&lt;/a&gt;, I would naturally try different variations. That also later came in handy when I started making &lt;a href=&quot;https://null.dangerthirdrail.com/#sample/version/Starting%20Point&quot;&gt;versions from samples&lt;/a&gt; (this is the first one ever), as well as feeding in &lt;a href=&quot;https://null.dangerthirdrail.com/#you-re-a-star/version/Minimal%20Prompting&quot;&gt;my own finished songs&lt;/a&gt; (that&#39;s a whole other can of worms that I have many feels about).&lt;/p&gt;
&lt;p&gt;Functionally, this works. It gives me an easy way to share Suno experiments with people, without polluting my existing showcase projects or shuffling .mp3 files around.&lt;/p&gt;
&lt;p&gt;So what&#39;s the end game here? I&#39;ve.....asked AI for the answer. The Suno tracks sound good, they&#39;re beyond an uncanny valley. But they have significant flaws and AI &amp;quot;tells&amp;quot;. The vocals sound good at first glance, but if you listen, they&#39;re obviously synthetic. &lt;strong&gt;These are demos&lt;/strong&gt;. There is a &lt;em&gt;ton&lt;/em&gt; of embellishment; noodling; &amp;quot;virtuoso-ism&amp;quot; (a term I just invented to describe lots of impossibly fast and perfect notes that no human could ever play). The mixes just sound like &amp;quot;mush&amp;quot;, I don&#39;t have a better word to describe it. The vocal lines are pretty distinct, but there&#39;s no separation between the instruments in the mix. (Hmm, I wonder why. Oh right, there &lt;em&gt;are no instruments!&lt;/em&gt;).&lt;/p&gt;
&lt;p&gt;An existential question then: is it valuable to convert my demos (ie &lt;a href=&quot;https://songs.travisbriggs.com/&quot;&gt;songs.travisbriggs.com&lt;/a&gt;) into, you know, more polished demos? In some ways, it makes me think of myself as a pure songwriter. Here comes the personality crisis then, because I&#39;ve always prefered the view of myself as a full on DIY indie musician, in some sense an &lt;a href=&quot;https://garden.travisbriggs.com/garden/danger-third-rail/&quot;&gt;act or artist&lt;/a&gt; that happens to be mostly one person (a la Dashboard Confessional or The Shins or the first Foo Fighters album).&lt;/p&gt;
&lt;p&gt;Can I find some way to pitch these songs to someone who may be interested? I see a few problems with that:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I&#39;m writing in styles that were popular 20-30 years ago and have almost zero relevance today&lt;/li&gt;
&lt;li&gt;I have no songwriting or industry network&lt;/li&gt;
&lt;li&gt;I&#39;m writing songs that would be traditionally performed by rock/blues/punk bands. Those bands write their own damn songs, thank you very much. (Though there is debate about how much help they get from producers when in the studio)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  <entry>
    <title>Suno</title>
    <link href="https://garden.travisbriggs.com/garden/Suno/"/>
    <updated>2026-05-16T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/Suno/</id>
    <content xml:lang="en" type="html">&lt;p&gt;&lt;a href=&quot;https://suno.com/&quot;&gt;Suno&lt;/a&gt; is &lt;a href=&quot;https://garden.travisbriggs.com/garden/vibe%20coding/&quot;&gt;vibe coding&lt;/a&gt; for my songs/music/songwriting.&lt;/p&gt;
&lt;p&gt;That&#39;s probably not a good thing.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>AI Music Trends</title>
    <link href="https://garden.travisbriggs.com/garden/ai-music-trends/"/>
    <updated>2026-01-29T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/ai-music-trends/</id>
    <content xml:lang="en" type="html">&lt;p&gt;Before the 1950s, a kitchen cabinet or a dining table was often the work of a local carpenter or a specialized regional workshop. Today, most modern &amp;quot;wood&amp;quot; furniture is produced via CNC machines and automated laminating lines. While we lost the &amp;quot;heirloom&amp;quot;, human made, artisinal quality of solid wood joinery, the precision of modern factory furniture is so high that most people don&#39;t notice the lack of hand-tooling. Not to mention it’s orders of magnitude cheaper.&lt;/p&gt;
&lt;p&gt;It’s a philosphial debate largely. If you can’t tell if a track was made by a “human musician, skilled at their craft, carefully conveying chosen emotion through the medium of sound” or an AI, then who cares?&lt;/p&gt;
&lt;p&gt;People already barely want to pay anything at all for music. The low royalty payments for artists are not because Spotify is evil, it’s because of that fact. If people were willing to pay as much for a month of music as they are for a month of NFL football (via a cable package or YouTube TV subscription ~80 dollars), it would be a very different conversation.&lt;/p&gt;
&lt;p&gt;In 2048, there will be a place for niche, “artisinal”, human made music, sure, the same way there is still the same for furniture. In fact, the prices people are willing to pay for this will be much higher than they are now, following the same principles. But 95% of the world will have moved on.&lt;/p&gt;
&lt;p&gt;I say this as a musician, who was trained in music, a composer, a &lt;a href=&quot;https://garden.travisbriggs.com/garden/danger-third-rail/&quot;&gt;recording artist&lt;/a&gt; with &lt;a href=&quot;https://garden.travisbriggs.com/garden/spotify/&quot;&gt;published works&lt;/a&gt; (though none profitable!).&lt;/p&gt;
&lt;p&gt;If we could peek inside of Spotify’s analytics, I think most people already put on “vibe playlists” (rock workout, chill study, electronic drive home) on shuffle. In that case, the artist, be them human or AI, doesn’t even register anyway. I imagine once the labels agree (remember, the lables basically own Spotify through their investments and profit sharing deals), Spotify will just acquire whatever AI music making platform is the best developed or has the biggest following. They will see it as cutting out the human musician “middleman”.&lt;/p&gt;
&lt;p&gt;The writing’s on the wall. See you in 2048!&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Programming languages (meta)</title>
    <link href="https://garden.travisbriggs.com/garden/programming%20languages/"/>
    <updated>2025-04-25T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/programming%20languages/</id>
    <content xml:lang="en" type="html">&lt;p&gt;I realize that I&#39;ve written a lot about different programming languages that I&#39;m familiar with in this digital garden. This node is sort of a meta node that serves to tie those pages together a bit.&lt;/p&gt;
&lt;p&gt;Here is a list:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://garden.travisbriggs.com/garden/Python/&quot;&gt;Python&lt;/a&gt; - my current go to for pretty much everything. &lt;a href=&quot;https://garden.travisbriggs.com/garden/wp-1.0/&quot;&gt;My wikipedia bot&lt;/a&gt; was written in it. So was &lt;a href=&quot;https://garden.travisbriggs.com/garden/Rainfall/&quot;&gt;Rainfall&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://garden.travisbriggs.com/garden/javascript-typescript/&quot;&gt;JavaScript/TypeScript&lt;/a&gt; - This is what I mostly do at work now. And I use it for the web apps listed above. I love pairing it with the &lt;a href=&quot;https://garden.travisbriggs.com/garden/Vue.js/&quot;&gt;Vue.js&lt;/a&gt; framework for modern frontend applications.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://garden.travisbriggs.com/garden/Ruby%20on%20Rails/&quot;&gt;Ruby on Rails&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://garden.travisbriggs.com/garden/Perl/&quot;&gt;Perl&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://garden.travisbriggs.com/garden/Java/&quot;&gt;Java&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  <entry>
    <title>The Best Albums in the Universe</title>
    <link href="https://garden.travisbriggs.com/garden/best%20albums%20in%20the%20universe/"/>
    <updated>2025-04-25T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/best%20albums%20in%20the%20universe/</id>
    <content xml:lang="en" type="html">&lt;p&gt;I think I started this project in 2011 or 2012. It lives on the web at &lt;a href=&quot;https://bestalbumsintheuniverse.com/&quot;&gt;bestalbumsintheuniverse.com&lt;/a&gt; and on &lt;a href=&quot;https://garden.travisbriggs.com/garden/gemini/&quot;&gt;Gemini&lt;/a&gt; at &lt;a href=&quot;gemini://gem.bestalbumsintheuniverse.com&quot;&gt;gem.bestalbumsintheuniverse.com&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;When I was coming up with the name, I knew I wanted to keep track of a curated collection of my favorite albums, mostly for my own reference. But I thought it would be lame to be like &lt;a href=&quot;http://my-favorite-albums.com/&quot;&gt;my-favorite-albums.com&lt;/a&gt; or something like that. Why not go big and call it Best Albums in the Universe?&lt;/p&gt;
&lt;p&gt;The best albums list is meant to be a living document, just like this garden. It is intended to grow as I discover, or sometimes more accurately remember, more albums. So far the only criteria I&#39;ve set for myself is that I don&#39;t want to list multiple albums by the same artist, or else there would be many more Beatles, Radiohead and Weezer albums on there.&lt;/p&gt;
&lt;h2&gt;History&lt;/h2&gt;
&lt;p&gt;The site was originally on Tumblr. Hold on, let me check if the original Tumblr site is still up or if I can find it....&lt;/p&gt;
&lt;p&gt;...nope, can&#39;t find it. I think I might have deleted it at some point. My &lt;a href=&quot;https://travisbriggs.tumblr.com/&quot;&gt;personal tumblr&lt;/a&gt;, which just has a couple of links, refers to the new website.&lt;/p&gt;
&lt;p&gt;Anyways, originally it was going to be a collaboration between me and my wife, &lt;a href=&quot;https://garden.travisbriggs.com/garden/Abby/&quot;&gt;Abby&lt;/a&gt;. She actually picked the second album and wrote the description, which is why it talks about it being her namesake. That didn&#39;t last very long though. In fact, I&#39;ve had the site for over a decade and there are only 39 albums on there currently. So clearly I have not updated the site very often. If you go to the Gemini version, it actually lists the date at which I posted an album, which is kind of embarassing.&lt;/p&gt;
&lt;p&gt;Eventually, I changed it to a &lt;a href=&quot;https://jekyllrb.com/&quot;&gt;Jekyll&lt;/a&gt; site, around the time that &lt;a href=&quot;https://www.cloudflare.com/learning/performance/static-site-generator/&quot;&gt;Static Site Generators&lt;/a&gt; became all the rage. There was a time when Github let you use Jekyll to deploy a static site for free inside of a Github repository, and if you look in the history of &lt;a href=&quot;https://github.com/audiodude/best-albums&quot;&gt;this repo&lt;/a&gt; you can see that it was used there (you could -- and likely still can -- point a custom URL to Github&#39;s static sites).&lt;/p&gt;
&lt;p&gt;When I moved from Tumblr to the Jekyll site, I already had a fair number of albums posted, with a lot of metadata. So I wanted to preserve this data somehow, hopefully programmatically. The scripts I wrote to take care of that are still part of the Jekyll repo linked above.&lt;/p&gt;
&lt;p&gt;The interesting thing about that early version was that I wrote all of the album descriptions in &lt;a href=&quot;https://daringfireball.net/projects/markdown/&quot;&gt;Markdown&lt;/a&gt; files, as you do with Jekyll sites, but there was a lot of &amp;quot;front matter&amp;quot; in the Markdown that was used to annotate each entry, like the &lt;code&gt;photo_sm&lt;/code&gt; and &lt;code&gt;photo_lg&lt;/code&gt; links to the thumbnail and full versions of the album art. I would find the album art on Amazon, and upload them to &lt;a href=&quot;http://imgur.com/&quot;&gt;imgur.com&lt;/a&gt; where I would &amp;quot;hotlink&amp;quot; to them from my site. In fact, I used a little known feature of imgur, which was that you could take the image url, say &lt;code&gt;http://i.imgur.com/abcdefg.png&lt;/code&gt; and append a character to the ID like &lt;code&gt;abcdefgs.png&lt;/code&gt; (s for &amp;quot;small&amp;quot;) or &lt;code&gt;abcdefgl.png&lt;/code&gt; (l for &amp;quot;large&amp;quot;).&lt;/p&gt;
&lt;p&gt;Also, the markdown files didn&#39;t directly translate into the &amp;quot;cover art squares&amp;quot; you see on the website. Instead, I had an &lt;code&gt;albums.json&lt;/code&gt; file in my root directory that contained a &lt;a href=&quot;https://shopify.github.io/liquid/&quot;&gt;Liquid&lt;/a&gt; template for generating a full &lt;a href=&quot;https://www.json.org/json-en.html&quot;&gt;JSON&lt;/a&gt; document of the final albums. Then, when the site loaded, the Javascript on the page would request the &lt;code&gt;albums.json&lt;/code&gt; file, parse it, and use &lt;a href=&quot;https://mustache.github.io/&quot;&gt;Mustache templates&lt;/a&gt; to generate the final HTML document. There&#39;s also a &amp;quot;grid layout library&amp;quot; called &lt;a href=&quot;https://masonry.desandro.com/&quot;&gt;Masonry&lt;/a&gt; that is used, plus some custom Javascript to control when to display or collapse albums when they are clicked, and to create permalinks to a version of the site with certain albums already open.&lt;/p&gt;
&lt;p&gt;A few years ago, I decided to write a &amp;quot;headless CMS&amp;quot; for the site, so that when I type in a &lt;a href=&quot;https://wikidata.org/&quot;&gt;Wikidata&lt;/a&gt; ID for an album, it does an API lookup on Wikidata and grabs the Artist, Title, Release Year, Spotify ID (the best albums page includes Spotify embeds), and album art. At that point, all I have to do is write the description, click save, and then upload the result to the static site. &lt;a href=&quot;https://github.com/audiodude/best-albums-headless&quot;&gt;This CMS&lt;/a&gt; is written in &lt;a href=&quot;https://garden.travisbriggs.com/garden/Ruby%20on%20Rails/&quot;&gt;Ruby on Rails&lt;/a&gt; and is hosted on the same server that hosts the best albums site itself.&lt;/p&gt;
&lt;p&gt;At some point I&#39;ll write about my &lt;a href=&quot;https://garden.travisbriggs.com/garden/gemini/&quot;&gt;Gemini&lt;/a&gt; version (which is still listed in the historical record of the &lt;a href=&quot;https://geminiprotocol.net/history/servers.gmi&quot;&gt;first fifty Gemini hosts&lt;/a&gt;).&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Vue.js</title>
    <link href="https://garden.travisbriggs.com/garden/Vue.js/"/>
    <updated>2025-04-25T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/Vue.js/</id>
    <content xml:lang="en" type="html">&lt;p&gt;&lt;a href=&quot;https://vuejs.org/&quot;&gt;Vue.js&lt;/a&gt; is an awesome frontend &lt;a href=&quot;https://garden.travisbriggs.com/garden/javascript-typescript/&quot;&gt;JavaScript/Typescript&lt;/a&gt; framework for making all kinds of interactive, reactive, web applications. One of the coolest things about it is that you can include just a snippet of JavaScript on a page and progressively enhance the page with interactive functionality, without commiting to the whole framework. On the other hand, you can easily write full fledged SPAs like I&#39;ve done with &lt;a href=&quot;https://garden.travisbriggs.com/garden/wp-1.0/&quot;&gt;WP 1.0&lt;/a&gt; and &lt;a href=&quot;https://garden.travisbriggs.com/garden/Rainfall/&quot;&gt;Rainfall&lt;/a&gt;.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Ruby (on Rails)</title>
    <link href="https://garden.travisbriggs.com/garden/Ruby%20on%20Rails/"/>
    <updated>2025-04-25T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/Ruby%20on%20Rails/</id>
    <content xml:lang="en" type="html">&lt;p&gt;Ruby on Rails is probably the first frontend framework I ever used. I think I dabbled in &lt;a href=&quot;https://garden.travisbriggs.com/garden/Perl/&quot;&gt;Perl&lt;/a&gt; a bit in a college course, &lt;code&gt;cgi-bin&lt;/code&gt; style. But even in college, I worked on a project for a digital choral music library, where I created a Ruby on Rails app that had forms (that validated!) and stored data in a SQL database using &lt;code&gt;ActiveRecord&lt;/code&gt;!&lt;/p&gt;
&lt;p&gt;My first job was in &lt;a href=&quot;https://garden.travisbriggs.com/garden/Java/&quot;&gt;Java&lt;/a&gt;, but I remained very curious about Rails and even just regular Ruby itself. At one point I even coded an &amp;quot;open source&amp;quot; abstract strategy game called &lt;a href=&quot;https://github.com/audiodude/Ruby-Tanbo&quot;&gt;Tanbo&lt;/a&gt;, with a full GUI implemented with &lt;a href=&quot;https://wxwidgets.org/&quot;&gt;WxWidgets&lt;/a&gt;. It even had a CPU that you could play against which used (checks notes) something called a UCT method (&lt;a href=&quot;https://en.wikipedia.org/wiki/Monte_Carlo_tree_search&quot;&gt;Upper Confidence bounds applied to Trees&lt;/a&gt;). From reading that Wikipedia article now, it was actually kind of cutting edge at the time.&lt;/p&gt;
&lt;p&gt;I like Ruby. I think it&#39;s a very concise and expressive language. I also think it&#39;s a very powerful language, with it&#39;s systems of operator overloading and custom operators and monkey-patching. The problem is, when you have a big enough project, it can be impossible to tell where certain behavior is coming from. A class? A superclass? A monkey patch? Even basic Rails, out-of-the-box, create new Rails app projects can have this problem.&lt;/p&gt;
&lt;p&gt;The most recent Ruby on Rails coding I&#39;ve done is for the &lt;a href=&quot;https://github.com/audiodude/best-albums-headless&quot;&gt;&amp;quot;headless CMS&amp;quot;&lt;/a&gt; for &lt;a href=&quot;https://garden.travisbriggs.com/garden/best%20albums%20in%20the%20universe/&quot;&gt;best albums in the universe&lt;/a&gt;. This is a Rails 7 app solely for me, but I still tried to style it a bit and make the error messages helpful, so that I wouldn&#39;t dread using it. I even use Capistrano to both deploy new versions of the admin/headless app itself, and deploy the finished static site.&lt;/p&gt;
&lt;p&gt;I haven&#39;t really kept up with Ruby on Rails development past that, though I know there&#39;s been a lot of churn with regards to webpack/etc and how to best integrate Javascript/Typescript and &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Glossary/SPA&quot;&gt;Single Page Applications&lt;/a&gt;.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Perl</title>
    <link href="https://garden.travisbriggs.com/garden/Perl/"/>
    <updated>2025-04-25T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/Perl/</id>
    <content xml:lang="en" type="html">&lt;p&gt;I learned a little bit of Perl in college, and even coded some simple web apps with it. The most experience I&#39;ve had with it, though, was when I was rewriting the &lt;a href=&quot;https://garden.travisbriggs.com/garden/wp-1.0/&quot;&gt;WP 1.0&lt;/a&gt; bot/web server. I translated hundreds of lines of Perl into Python, and it was definitely a considerable task.&lt;/p&gt;
&lt;p&gt;Perl kind of looks deceptively simple. There are all the usual suspects of &lt;code&gt;if&lt;/code&gt; statements and &lt;code&gt;for&lt;/code&gt; loops, and even dictionaries look relatively sane at first glance. And I&#39;m not talking about the &lt;a href=&quot;https://code.golf/&quot;&gt;code golf&lt;/a&gt; versions of perl where you just have a bunch of &lt;code&gt;&amp;lt;&amp;gt; = {};&lt;/code&gt; or whatever that somehow iterates over input on standard in and does something with it. I&#39;m talking about Perl that was written by a considerate programmer, with the intention of being reasonably legible and maintainable.&lt;/p&gt;
&lt;p&gt;But still, I found too many constructs that were hard to grasp. Too many ways of doing the same thing, which of course leads to the Python precept of that &amp;quot;There should be one-- and preferably only one --obvious way to do it.&amp;quot; (from the famous &lt;em&gt;&lt;a href=&quot;https://peps.python.org/pep-0020/&quot;&gt;The Zen of Python&lt;/a&gt;&lt;/em&gt;). My understanding has always been that &lt;a href=&quot;https://garden.travisbriggs.com/garden/Python/&quot;&gt;Python&lt;/a&gt; was a direct reaction/answer to Perl.&lt;/p&gt;
&lt;p&gt;Really, the number one thing that I found impossible to understand in Perl was the way of referencing external symbols, the &amp;quot;import&amp;quot; system so to speak. I&#39;m not going to look it up right now (maybe I can expand this garden node later), but there seemed to be many ways of doing this, with some code being in modules and some code being directly transcluded with something akin to a C &lt;code&gt;#include&lt;/code&gt; statement. Unfortunately, the codebase I was working in used some mix of all available options, which again made it really hard to figure out where a function was coming from.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Java</title>
    <link href="https://garden.travisbriggs.com/garden/Java/"/>
    <updated>2025-04-25T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/Java/</id>
    <content xml:lang="en" type="html">&lt;p&gt;The problem with Java is that everything has to be a class. Period point blank. This distorts all design of programs, because you start thinking &amp;quot;Well I can&#39;t have a function that just takes an object, so I better add it as a method of the object&amp;quot;. Then you think, &amp;quot;Well my Object needs to be able to construct other Objects that it needs, but I don&#39;t want to tightly couple them&amp;quot; so you end up with a Factory pattern. Also, you end up trying to map classes to &amp;quot;real world-ish&amp;quot; things, like Databases and Business Models and such, even though some functionality cuts across class boundaries and would be better in just a simple funcion. Don&#39;t worry, we have the Singleton pattern for that, for basically just a loose colletion of random code. :facepalm:.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>The blog cycle</title>
    <link href="https://garden.travisbriggs.com/garden/blog-cycle/"/>
    <updated>2025-03-26T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/blog-cycle/</id>
    <content xml:lang="en" type="html">&lt;p&gt;I just read Shane Friedman&#39;s &lt;a href=&quot;https://smoores.dev/post/what_is_smoores_dev/&quot;&gt;account of creating his &amp;quot;new&amp;quot; blog&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Of course it is the Grand Destiny of any blog to be rebuilt from scratch at about the same cadence as people get new phones. And no, I&#39;m not particularly itching to do that with this digital garden.&lt;/p&gt;
&lt;p&gt;But when I read about how he wants to author posts &lt;em&gt;in HTML&lt;/em&gt;, I was kind of grossed out. I love Markdown because what I&#39;m authoring is mostly text, and I don&#39;t want to deal with any HTML elements. My templates remain templates, my content remains content, and when the content needs to go into the templates it gets rendered (which I am, I think appropriately, totally picturing in the sense of the term &amp;quot;meat rendering&amp;quot;).&lt;/p&gt;
&lt;p&gt;Then I thought about how this medium might be limiting me. I tell myself &amp;quot;My build system makes it hard to include images in posts, but that&#39;s okay I don&#39;t use images&amp;quot;. But can&#39;t you just flip that around and say &amp;quot;I don&#39;t use images because my build system makes it hard to include images in posts&amp;quot;? I especially thought it was cool, in his setup, that he could define reusable custom components that he could place into different articles.&lt;/p&gt;
&lt;p&gt;Of course, just because I have a vague feeling that I want to include more images in my garden nodes, it doesn&#39;t mean that I actually have image content to include in such nodes. The best I could probably come up with are screenshots for nodes that maybe explain some concept or otherwise discuss software I&#39;ve built. And what would I use a custom HTML element for anyways?&lt;/p&gt;
&lt;p&gt;I think my digital garden could be more &amp;quot;multimedia&amp;quot;, definitely, but I&#39;d have to think more about what that would mean in practice.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Coping skills</title>
    <link href="https://garden.travisbriggs.com/garden/writings/coping-skills/"/>
    <updated>2025-03-02T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/writings/coping-skills/</id>
    <content xml:lang="en" type="html">&lt;p&gt;They said to practice my&lt;br /&gt;
coping skills.&lt;br /&gt;
This is a submission of optimism.&lt;br /&gt;
An acknowledgement that&lt;br /&gt;
Not everything is OK&lt;br /&gt;
Not everything can be fixed.&lt;br /&gt;
It&#39;s a glorious recognition that&lt;br /&gt;
pain is real.&lt;br /&gt;
I don&#39;t need to be defeated by it.&lt;br /&gt;
Seeing it&lt;br /&gt;
Knowing it&lt;br /&gt;
Feeling it&lt;br /&gt;
Is the first step to&lt;br /&gt;
resilience.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>A good song is a good song</title>
    <link href="https://garden.travisbriggs.com/garden/good-song/"/>
    <updated>2025-02-15T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/good-song/</id>
    <content xml:lang="en" type="html">&lt;p&gt;A few weeks ago, &lt;a href=&quot;https://garden.travisbriggs.com/garden/Abby/&quot;&gt;Abby&lt;/a&gt; and I saw &lt;a href=&quot;https://www.imdb.com/title/tt11563598/&quot;&gt;A Complete Unknown&lt;/a&gt;, the Bob Dylan biopic starring Timothée Chalamet. I really enjoyed the film, partly because of Chalamet&#39;s great performance (he&#39;s been nominated for an Oscar) but mostly because the whole thing plays out like a music video almost. They&#39;re playing and singing songs the entire movie, and Chalamet actually learned how to play the guitar from scratch for the role.&lt;/p&gt;
&lt;p&gt;The film has inspired us to listen to more Dylan and folk music broadly. Abby has actually been writing new verses to classic folk songs like &lt;em&gt;This Land Is Your Land&lt;/em&gt; and &lt;em&gt;Casey Jones (the union scab)&lt;/em&gt;. I wrote a &lt;a href=&quot;https://songs.travisbriggs.com/trash-on-the-nash/&quot;&gt;folk song&lt;/a&gt; that I posted to my &lt;a href=&quot;https://songs.travisbriggs.com/&quot;&gt;demo songs website&lt;/a&gt;. We&#39;ve been playing around with the &lt;a href=&quot;https://soundgenetics.com/guide-to-the-omnichord/&quot;&gt;Omnichord&lt;/a&gt; I got her for Christmas, strumming chords for songs we want to sing and using it as a bare bones compositional tool (you just play the chords, don&#39;t have to worry about voicings or anything).&lt;/p&gt;
&lt;p&gt;All this makes me wonder if I really have to worry about &lt;a href=&quot;https://garden.travisbriggs.com/garden/fake-it-music/&quot;&gt;faking it&lt;/a&gt;, or if writing the songs I write, in the way I write them, is enough. I would like for it to be enough. If I can write a good song, like the one linked above, I can always go back and write new verses or record it properly or create an arrangement with strings and drums and whatever. There&#39;s a quote in the movie that goes by quickly, but basically it&#39;s as simple as &amp;quot;A good song is a good song&amp;quot;. When I googled that phrase, lots of stuff came up, so I think it&#39;s kind of a timeless sentiment.&lt;/p&gt;
&lt;p&gt;And I still believe that songs are sung and while we use the shorthand &amp;quot;song&amp;quot; to refer to most pieces of recorded music, stuff like 8 minute EDM trance tracks are not proper &amp;quot;songs&amp;quot;. Sorry bedroom producers. I&#39;m not trying to put people down who put together tracks on their laptops. I&#39;m just trying to focus my own practice and realize that while 1 minute loops and whatnot can be fun, they&#39;re not songs. They&#39;re not the music that I want to make. In the context of &lt;a href=&quot;https://garden.travisbriggs.com/garden/motivation-music/&quot;&gt;what motivates me&lt;/a&gt;, producing a &amp;quot;bangin&amp;quot; EDM track is simply not it.&lt;/p&gt;
&lt;p&gt;Think of songs that have been covered over and over. Those compositions were not driven by the performance of the guitar riffs, or the charisma of the lead singer, both of which are likely stripped away in the cover version. And they don&#39;t have to be entirely transformational. The excellence of the song itself is the driving factor. I saw &lt;a href=&quot;https://www.guster.com/&quot;&gt;Guster&lt;/a&gt; last night and they performed their cover of &lt;em&gt;(Nothing But) Flowers&lt;/em&gt; by the Talking Heads. It&#39;s just a great song.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Things I&#39;m Excited About</title>
    <link href="https://garden.travisbriggs.com/garden/excited/"/>
    <updated>2025-01-24T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/excited/</id>
    <content xml:lang="en" type="html">&lt;p&gt;Here are some things I&#39;m either currently excited about, or at least I was excited about when I wrote about them.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Okay, this is now over two years old, and I&#39;m not sure aything has come of it. But I felt really inspired when I read Robin Sloan&#39;s excellent &lt;a href=&quot;https://www.robinsloan.com/lab/new-avenues/&quot;&gt;newsletter post&lt;/a&gt; about &amp;quot;A Year of New Avenues&amp;quot;. It is hopelessly exuberant and optimistic, and in that way extremely intoxicating. It also challenges the reader, especially in the span of prompting for &amp;quot;new avenues&amp;quot; for 2023 but at the same time gently chastising that &amp;quot;Mastodon is not it&amp;quot;.&lt;/p&gt;
&lt;p&gt;In my internet travels, I&#39;ve been looking at &lt;a href=&quot;https://garden.travisbriggs.com/garden/gemini/&quot;&gt;Gemini&lt;/a&gt; as a protocol that could be useful for building something in the whale corpse of Facebook and Twitter.&lt;/p&gt;
&lt;p&gt;I&#39;ve also heard of &lt;a href=&quot;https://scuttlebutt.nz/&quot;&gt;Secure Scuttlebutt&lt;/a&gt; a few years back, around the time I was first learning about Mastodon. It seems much more quirky, experimental and revolutionary than Mastodon will ever be. Especially with it&#39;s focus on offline social networks (did you even know there was such a thing?).&lt;/p&gt;
&lt;p&gt;I always have a nagging desire to learn &lt;a href=&quot;https://garden.travisbriggs.com/garden/spanish/&quot;&gt;Spanish&lt;/a&gt;, but I&#39;m not sure it will ever translate into real motivation and action.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>New Year&#39;s Day 2025</title>
    <link href="https://garden.travisbriggs.com/garden/new-year-2025/"/>
    <updated>2025-01-01T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/new-year-2025/</id>
    <content xml:lang="en" type="html">&lt;p&gt;This year, for the holidays, my wife &lt;a href=&quot;https://garden.travisbriggs.com/garden/Abby/&quot;&gt;Abby&lt;/a&gt; and I spent 16 days in Massachusetts with her family. Tomorrow morning at 3 AM we head to the airport. We&#39;ve visited them every December for the past few years, but this year&#39;s visit was particularly long. Going into it, I was pretty worried that I would have several days of long boredom. I was worried there wouldn&#39;t be much to do in general. However, I was mostly wrong. There were only a few long mornings before everyone was up, but otherwise we kept pretty busy. We visited both of my sisters and their kids, on different days. We visited an old friend of Abby&#39;s and got to meet their 3 month old baby. I held the baby and he cooed and slept on me, which was very precious.&lt;/p&gt;
&lt;p&gt;Today is New Year&#39;s Day. I think at this point I&#39;ve done &lt;a href=&quot;https://garden.travisbriggs.com/garden/blog/new-year/&quot;&gt;New Year&#39;s posts&lt;/a&gt; to death. I&#39;m not sure there&#39;s anything left to say about it. I&#39;m not making any hard and fast resolutions, though we have a goal to &lt;strong&gt;finally&lt;/strong&gt; get our apartment organized and livable by April 1. It might be a tough year, because in the past couple of months Abby has gotten some not-so-great news about her health. I&#39;m worried, I&#39;m anxious, but it is what it is. We&#39;ll keep going, keep trying, keep struggling and keep living. One foot in front of the other. One step at a time.&lt;/p&gt;
&lt;p&gt;My wife&#39;s family is really lovely, did I mention that? They are sweet and caring and abundantly supportive of me and one another. They have graciously accepted me into their family and treat me like one of their own. Overall, it was a really amazing visit. There were lots of laughs, some great meals, and lots of one on one time with each member of the family. I can sometimes get really reactive with her parents, particularly her mother, and get frustrated when I think she&#39;s not listening or otherwise be mean to her. But looking back, I think I refrained from that for the majority of the trip, and not by any particular effort of my own. I think maybe I&#39;m just in a better place mentally this year than I have been in the past, which is something to be truly grateful for.&lt;/p&gt;
&lt;p&gt;So welcome to 2025. So far it feels a lot like 2024!&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Spotify</title>
    <link href="https://garden.travisbriggs.com/garden/Spotify/"/>
    <updated>2024-12-01T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/Spotify/</id>
    <content xml:lang="en" type="html">&lt;p&gt;I have been a Spotify user since they first launched in the US, which was (checks notes) July 2011. Wow. I&#39;m pretty much a happy customer, and I think I get good value from the service. I&#39;m also an &lt;a href=&quot;https://garden.travisbriggs.com/garden/danger-third-rail/&quot;&gt;artist&lt;/a&gt; on the platform, whatever that&#39;s worth, though I don&#39;t receive any royalties anymore since they changed the structure so that songs with less than 1000 plays &lt;a href=&quot;https://www.nme.com/news/music/spotify-has-now-officially-demonetised-all-songs-with-less-than-1000-streams-3614010&quot;&gt;don&#39;t get paid out&lt;/a&gt;. I feel like the two-tiered system that this creates is completely unfair, and destroys Spotify as a platform where a &lt;a href=&quot;https://en.wikipedia.org/wiki/Long_tail&quot;&gt;long tail&lt;/a&gt; of artists can have even some meager amount of success, whatever that means. In fact, currently you have to pay a distributor like &lt;a href=&quot;https://garden.travisbriggs.com/garden/DistroKid/&quot;&gt;DistroKid&lt;/a&gt; to put your music on Spotify, where you have no chance of earning that money back, so it really is &lt;a href=&quot;https://www.musicindustryhowto.com/dont-pay-to-play-heres-how-to-get-paid-to-play-bigger-shows-instead/&quot;&gt;&amp;quot;pay to play&amp;quot;&lt;/a&gt;. Sigh.&lt;/p&gt;
&lt;p&gt;What I really want to discuss though is the fact that, even though I have a &lt;a href=&quot;https://music.youtube.com/&quot;&gt;YouTube Music&lt;/a&gt; subscription bundled with my YouTube Premium subscription, I still pay for Spotify. Some people would think this is completely crazy, but there are &lt;em&gt;reasons&lt;/em&gt;, I swear.&lt;/p&gt;
&lt;p&gt;First off, it&#39;s not just lock in. Whenever I read articles or forum posts where people discuss switching away from Spotify, there&#39;s lots of consternation around &amp;quot;but what about muh plAYLisssts???&amp;quot;. Let&#39;s be clear, I barely use playlists. I have like half a dozen, and most are just collections of songs that I want to &amp;quot;bookmark&amp;quot; somehow. Something like 80% of my music listening is full albums. And I&#39;m not even that worried about Spotify having my saved library of albums (which I admit, that part is extensive) because I&#39;ve cataloged that list at &lt;a href=&quot;https://garden.travisbriggs.com/garden/best%20albums%20in%20the%20universe/&quot;&gt;best albums in the universe&lt;/a&gt;. Plus I&#39;m sure I could write a 10 line &lt;a href=&quot;https://garden.travisbriggs.com/garden/Python/&quot;&gt;Python&lt;/a&gt; script to grab my albums list from the Spotify API should I ever need it.&lt;/p&gt;
&lt;p&gt;No, I think it&#39;s more of a muscle memory thing, kind of like a vim/emacs debate, where I&#39;ve developed familiarity with the Spotify interface. I know how to find, play, queue, skip, etc, songs without much trouble. Even more important, I know how to navigate between songs and the albums or artists, and how and where to find albums versus compilations versus singles, to get to what I want to listen to.&lt;/p&gt;
&lt;p&gt;That said, I&#39;ve actually considered the switch to YouTube Music [disclosure: I work for &lt;a href=&quot;https://garden.travisbriggs.com/garden/YouTube/&quot;&gt;YouTube&lt;/a&gt;], for one reason: &lt;strong&gt;the steaming pile of flaming garbage that is the Spotify homepage.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The first 3 shelves are &amp;quot;keep listening to stuff you just listened to&amp;quot;, which is clearly designed for people who are playlist heavy. They probably listened to 5 or 6 songs from a playlist and want to resume. Or they listen to the same 4 playlists every week.&lt;/p&gt;
&lt;p&gt;The next two shelves are &amp;quot;dive in&amp;quot; to genres that I don&#39;t like, that they&#39;re pushing on you as part of their rumoured &lt;a href=&quot;https://www.theregreview.org/2024/07/06/preventing-payola-in-the-music-industry/&quot;&gt;payola schemes&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;And the next 6 (I wish I was kidding) shelves are podcasts. Because listen to podcasts! Spotify doesn&#39;t have to pay royalties on them! Don&#39;t you want to listen to PODCASTS??&lt;/p&gt;
&lt;p&gt;So I&#39;m thinking of switching to YT Music so that maybe I could have &lt;em&gt;some&lt;/em&gt; kind of useful homepage experience. Unfortunately my YT Music history is shit because I have only ever used it in Waymo, which is a scenario where I listen to like loud hip hop and other shit I wouldn&#39;t normally listen to. So I wouldn&#39;t switch to YT Music unless there is a &amp;quot;Clear all history&amp;quot; button. But unfortunately, you can&#39;t clear YT Music history without clearing your entire YouTube history, which would destroy all of my YouTube video recommendations (which are, actually, not bad). Also YT Music has all kinds of cruft where they decided that some playlists that I randomly have on YouTube are actually &lt;em&gt;music&lt;/em&gt; playlists, so they show up in YT Music. They also recommend shit based on music videos I watch, which I normally watch for reasons not related to actually liking the music.&lt;/p&gt;
&lt;p&gt;These are just some nuanced opinions of course, and overall I think Spotify is pretty useful and great. I worry about it destroying the music industry/artist&#39;s livelihoods. But there have been a long queue of technologies, governments and cultural shifts that have been trying to destroy the music industry for the past 100 years, so I&#39;m not actually that concerned. See also &lt;a href=&quot;https://garden.travisbriggs.com/garden/Bandcamp/&quot;&gt;Bandcamp&lt;/a&gt;.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>About Me</title>
    <link href="https://garden.travisbriggs.com/garden/about/"/>
    <updated>2024-11-21T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/about/</id>
    <content xml:lang="en" type="html">&lt;p&gt;Travis Briggs is a software developer, amateur musician, and digital gardener
(formerly blogger). All of these skills come together on his personal website,
located at &lt;a href=&quot;https://travisbriggs.com/&quot;&gt;travisbriggs.com&lt;/a&gt;. He has a BS in Computer
Science with a minor in music from Worcester Polytechnic Institute in Worcester
MA, USA.&lt;/p&gt;
&lt;p&gt;Travis specializes in developing software using frontend technologies such as
HTML/CSS and Javascript/Typescript. He enjoys programming in his spare time as
well, and is the primary maintainer of the Wikipedia &lt;a href=&quot;https://en.wikipedia.org/wiki/User:WP_1.0_bot&quot;&gt;WP 1.0
Bot&lt;/a&gt;, which has the most all time
edits to English Wikipedia. Understanding the value of a quality mentor, he also
tutors students and adults in Computer Science for free, and teaches a &lt;a href=&quot;https://www.noisebridge.net/wiki/PyClass&quot;&gt;free
Python class&lt;/a&gt; at the
&lt;a href=&quot;https://www.noisebridge.net/&quot;&gt;Noisebridge&lt;/a&gt; hackerspace in San Francisco.&lt;/p&gt;
&lt;p&gt;Travis has released a single and an EP under the moniker &lt;a href=&quot;https://dangerthirdrail.com/&quot;&gt;&amp;quot;Danger Third
Rail&amp;quot;&lt;/a&gt;, which are available on many online
music stores. Previously, Travis has performed at open mic nights and as a
busker in Cambridge, MA USA.&lt;/p&gt;
&lt;p&gt;Travis currently lives with his amazing wife Abby and cuddly cat Shekel in San
Francisco CA USA.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;Contact&lt;/h2&gt;
&lt;p&gt;You can always email me at &lt;a href=&quot;mailto:audiodude@gmail.com&quot;&gt;audiodude@gmail.com&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;My current Mastodon link is
&lt;a href=&quot;https://sfba.social/@audiodude&quot;&gt;@audiodude@sfba.social&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Here is my &lt;a href=&quot;https://github.com/audiodude&quot;&gt;Github profile&lt;/a&gt;.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Recording setup</title>
    <link href="https://garden.travisbriggs.com/garden/recording-setup/"/>
    <updated>2024-09-21T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/recording-setup/</id>
    <content xml:lang="en" type="html">&lt;p&gt;I have had some different recording setups over the past 20+ years I&#39;ve been making digital music, but all of them were based around recording instruments into a &lt;a href=&quot;https://www.avid.com/resource-center/what-is-a-daw&quot;&gt;DAW&lt;/a&gt;. Currently my recording studio is in a corner of my kitchen and is based around a Windows 11 computer and digital composing/recording/editing in &lt;a href=&quot;https://garden.travisbriggs.com/garden/ableton-12/&quot;&gt;Ableton&lt;/a&gt;. Previously I used Ableton on a Mac, but I wasn&#39;t interested in buying Macs anymore since they switched to Apple Silicon. I&#39;ve got a &lt;a href=&quot;https://www.sweetwater.com/store/detail/UR22C--steinberg-ur22c-usb-audio-interface?cond=UR22CU1&quot;&gt;Steinberg UR22&lt;/a&gt; audio interface that I plug guitar or a mic into, or sometimes both. I haven&#39;t recorded acoustic guitar in like 8 years, mostly I just do electric. I don&#39;t mic any amps, I always just use amp modelling plugins like &lt;a href=&quot;https://www.ikmultimedia.com/products/amplitube5/?pkey=amplitube-5-max-v2&quot;&gt;Amplitube&lt;/a&gt; and &lt;a href=&quot;https://www.native-instruments.com/en/products/komplete/guitar/guitar-rig-7-pro/&quot;&gt;Guitar Rig&lt;/a&gt;. I also own an electric bass that I can record using the same audio interface and plugins. And I have a couple of MIDI keyboards, including an &lt;a href=&quot;https://www.sweetwater.com/store/detail/MPKMiniPlus--akai-professional-mpk-mini-plus-37-key-keyboard-controller&quot;&gt;Akai MPK Mini&lt;/a&gt; which sits directly next to my computer chair.&lt;/p&gt;
&lt;p&gt;It&#39;s a very sparse setup, but I like it because it mostly &amp;quot;stays out of my way&amp;quot;.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Latest and Not-so-greatest</title>
    <link href="https://garden.travisbriggs.com/garden/blog/latest-and-not-so-greatest/"/>
    <updated>2024-09-21T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/blog/latest-and-not-so-greatest/</id>
    <content xml:lang="en" type="html">&lt;p&gt;Today I sent a cold email to someone who has 90k subscribers on YouTube, asking if they could maybe give me music production lessons. On the one hand, I don&#39;t expect a response, even at all. On the other hand, this person did put their (an?) email address in the description of a YouTube video so maybe they&#39;re open to being contacted. Maybe?&lt;/p&gt;
&lt;p&gt;Anyways, at the bottom of the email, I linked my demo song website, &lt;a href=&quot;https://songs.travisbriggs.com/&quot;&gt;songs.travisbriggs.com&lt;/a&gt;. I then of course visited this website and tried to imagine what the person would see or click on when they got there. One thing that popped into my head is that they might literally click on the newest song and listen for 5 seconds, thinking &amp;quot;This is probably Travis&#39;s latest and greatest song&amp;quot;.&lt;/p&gt;
&lt;p&gt;That&#39;s when I started feeling mortified.&lt;/p&gt;
&lt;p&gt;Right now the newest song on my demo website is a sloppy punk track called &amp;quot;Goodbyes&amp;quot; (&lt;a href=&quot;https://songs.travisbriggs.com/goodbyes/&quot;&gt;link&lt;/a&gt;). If you listen to 5 seconds of it, you probably think, &amp;quot;Wow this guy is great at making awful noise, but I wouldn&#39;t call it music!&amp;quot;. It&#39;s certainly my latest track, but it&#39;s far from being my greatest.&lt;/p&gt;
&lt;p&gt;Now there&#39;s a whole discussion around the difference between the demos on this site and the songs which I had made into my &lt;a href=&quot;https://dangerthirdrail.com/&quot;&gt;Danger Third Rail EP&lt;/a&gt;. Not only did I select my best material for the EP, but I meticulously &lt;a href=&quot;https://garden.travisbriggs.com/garden/recording-setup/&quot;&gt;re-recorded&lt;/a&gt; the parts. They also got professionally mixed and mastered. So I think those tracks in particular are going to sound the best out of the wide range of material I&#39;ve published, and be the greatest. They&#39;re a far cry from being the latest though.&lt;/p&gt;
&lt;p&gt;So at this point I&#39;m thinking about &lt;a href=&quot;https://garden.travisbriggs.com/garden/highs-and-lows-musician/&quot;&gt;progression over time&lt;/a&gt;. Am I getting better at making music? Not even a specific genre of music, not &amp;quot;Am I getting better at writing music?&amp;quot; or &amp;quot;Am I getting better at performing/mixing/mastering/whatever music?&amp;quot;. Basically, can you look at the musical artifacts I&#39;ve created, the songs I&#39;ve created, over time and see that yes, the quality is increasing?&lt;/p&gt;
&lt;p&gt;I think that I can&#39;t honestly answer that question. Not because I&#39;m afraid the answer might be no -- though I am afraid of that! -- but because the demo songs website is not really set up to produce that kind of an answer.&lt;/p&gt;
&lt;p&gt;The fact is, my methodology and my ethos of creating music has shifted and evolved over the years, as you might well expect it to. I&#39;ve gone from releasing songs once in a blue moon, to frantically releasing them once a week or once a day, back to producing songs maybe once a month. I&#39;ve gone from not finishing projects and not saving the unfinished parts, to saving all the unfinished parts, to trying to finish things in one session even if it means sacrificing quality.&lt;/p&gt;
&lt;p&gt;Really, I&#39;ve decided that I believe in the 100:10:1 rule, where out of 100 songs, 10 will be good and 1 will be great, so it doesn&#39;t matter if the initial demo of a song sounds amazing or not. If there&#39;s a good idea there, I&#39;ll revisit it, re-record some of the parts, tweak the arrangement, send it to my drummer in the UK, and have it professionally mixed and mastered. If there&#39;s only a so-so idea there, well, at least I recorded a demo and a few people listened to it.&lt;/p&gt;
&lt;p&gt;Honestly, I fully believe that I will need to write close to 500 songs before I can come up with another 5 song EP. I&#39;m not sure I even have it in me to approach such a task. If you&#39;re listening to &lt;a href=&quot;https://songs.travisbriggs.com/&quot;&gt;songs.travisbriggs.com&lt;/a&gt;, you&#39;re simply along for the process.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>NIKE the shit out of it</title>
    <link href="https://garden.travisbriggs.com/garden/nike-the-shit-out-of-it/"/>
    <updated>2024-09-21T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/nike-the-shit-out-of-it/</id>
    <content xml:lang="en" type="html">&lt;p&gt;Sometimes I think I need to just NIKE the shit out of some songwriting (just do it).&lt;/p&gt;
&lt;p&gt;When this article was written, in November 2017, I hadn&#39;t published a song to &lt;a href=&quot;https://songs.travisbriggs.com/&quot;&gt;songs.travisbriggs.com&lt;/a&gt; since July of that year.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;It&#39;s gotten worse.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I apparently didn&#39;t publish a song &lt;em&gt;at all&lt;/em&gt; in 2022, and I&#39;m on track to not publish anything in 2024 either. I actually have written a few songs since then, but none that were finished enough (in either writing or arranging or recording) to warrant publishing. I haven&#39;t gone through the process to actually clean them all up, mix them, add missing instruments and all that. It just seems like &lt;a href=&quot;https://garden.travisbriggs.com/garden/intrisic%20motivation/&quot;&gt;a lot of work without a lot of payoff&lt;/a&gt;. Of course, the payoff might be that I don&#39;t end up writing remorseful garden nodes like this one.&lt;/p&gt;
&lt;p&gt;I feel like I&#39;ve lost a &lt;a href=&quot;https://garden.travisbriggs.com/garden/motivation-music/&quot;&gt;sense of wonder&lt;/a&gt; in my songwriting process. Sometimes, I&#39;m going at it with feverish diligence and follow through because I feel like I have to, I have to do it to make myself complete. Either that or I&#39;m just &amp;quot;messing around&amp;quot;, indulging in &amp;quot;letting myself play&amp;quot; but ending up with listless, half-complete junk because I&#39;m not forcing myself to write coherently.&lt;/p&gt;
&lt;p&gt;I could resolve now to challenge myself, to push my comfort zone and write something that moves my songwriting forward. I want to issue myself such a challenge. And I&#39;m not reluctant to do so because I feel I will fail, necessarily. I think I could definitely do it.&lt;/p&gt;
&lt;p&gt;The real reluctance comes from the fact that I think I&#39;m &lt;a href=&quot;https://garden.travisbriggs.com/garden/blog/not-quite-writers-block/&quot;&gt;stagnating&lt;/a&gt; for another reason. I&#39;ve developed the basic facets of songwriting to a certain degree. I can write songs. I can write songs where I write all of the instrumental parts, the arrangement, the mix, etc. But it&#39;s &lt;a href=&quot;https://garden.travisbriggs.com/garden/fake-it-music/&quot;&gt;exhausting&lt;/a&gt;, friend. It really is.&lt;/p&gt;
&lt;p&gt;I want to collaborate. I want to come up with a strong, driving chorus with no consideration for how it will fit into a song, and have another real breathing person help me figure out an intro and verse that will work with it into a finished song. I want to play with a band, where the drum feel and groove drive the composition of the guitar and bass parts, rather than playing guitar parts, adding bass later, and always just having a drum machine on repeat for the whole song.&lt;/p&gt;
&lt;p&gt;When I first wrote this garden node I thought: &lt;em&gt;Sigh. It&#39;s not going to happen.&lt;/em&gt; I felt like I was some kind of musical incel, where I&#39;ll never find anyone to collaborate with. I didn&#39;t know where to look, where to start. Basically, it&#39;s just as awkward as dating, except even more niche.&lt;/p&gt;
&lt;p&gt;Since then, in 2024, I&#39;ve started playing music with my friend Anosh. He&#39;s been learning to play drums and has said that playing together has helped him get better, quicker. I totally see those results. We play a bunch of covers, like Green Day songs which are easy on both guitar and drums. Last week, though, I introduced a little riff and asked him to play a certain drum beat, so I guess you could say it&#39;s our first original.&lt;/p&gt;
&lt;p&gt;We don&#39;t have a bassist. We&#39;re not a band. We&#39;re not &lt;a href=&quot;https://garden.travisbriggs.com/garden/danger-third-rail/&quot;&gt;Danger Third Rail&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;But it&#39;s satisfying playing music with another musician in the room. It&#39;s not only good practice for my guitar and vocals, but it&#39;s inspiring. We&#39;ll see if it translates into any new material on &lt;a href=&quot;https://songs.travisbriggs.com/&quot;&gt;songs.travisbriggs.com&lt;/a&gt;.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>The highs and lows of producing music in your home studio/kitchen</title>
    <link href="https://garden.travisbriggs.com/garden/highs-and-lows-musician/"/>
    <updated>2024-09-21T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/highs-and-lows-musician/</id>
    <content xml:lang="en" type="html">&lt;p&gt;I don&#39;t really want to give a detailed history of my experiences with writing and recording music here. Like most folks, I&#39;ve been experimenting with music and instruments from a very young age. In the 90s, I &amp;quot;recorded&amp;quot; music using a MIDI interface that connected to my &lt;a href=&quot;http://vintagemacmuseum.com/collection/68k-macintosh/&quot;&gt;68k Mac&#39;s&lt;/a&gt; serial port. In college, I experimented with electronic music with &lt;a href=&quot;https://reasonstudios.com/&quot;&gt;Reason 1.0&lt;/a&gt; (1.0!), but didn&#39;t have a proper setup for recording acoustic/electric instruments or vocals. After that, I gradually built a &lt;a href=&quot;https://garden.travisbriggs.com/garden/recording-setup/&quot;&gt;home recording setup&lt;/a&gt; that I liked that lived in my bedroom at one apartment and later in my kitchen.&lt;/p&gt;
&lt;p&gt;I think the interesting bits start with the formation of my &lt;a href=&quot;https://garden.travisbriggs.com/garden/danger-third-rail/&quot;&gt;&amp;quot;band&amp;quot;&lt;/a&gt;. In 2017, I got more &amp;quot;serious&amp;quot; about recording music in my kitchen, and decided that with some help from a remote &lt;a href=&quot;https://emilydrums.com/&quot;&gt;drummer in the UK&lt;/a&gt; and &lt;a href=&quot;https://garden.travisbriggs.com/garden/DistroKid/&quot;&gt;DistroKid&lt;/a&gt;, I could actually release some polished music to Spotify (which is what I considered &amp;quot;making it&amp;quot;). So I did. That was the &lt;em&gt;Pink Fluffy Cloud&lt;/em&gt; single. Releasing the single was definitely a high point. I printed out business cards with the album art and a &lt;a href=&quot;https://dangerthirdrail.com/&quot;&gt;URL&lt;/a&gt; on it. Between the drums, and recording the vocals in an actual studio and getting it mixed and mastered, the project cost about $1200.&lt;/p&gt;
&lt;p&gt;Okay 2017 is a long time ago. We&#39;ve had a new US president (and a returning one) and at least one global pandemic since then. The pandemic years can be considered wasted because there was so much confusion and uncertainty during that time. But what about 2019? What about 2022 [ed: 2023] [ed: 2024]? Why hasn&#39;t Danger Third Rail released any new music?&lt;/p&gt;
&lt;p&gt;Sometimes, it&#39;s a problem of getting going and &lt;a href=&quot;https://garden.travisbriggs.com/garden/genre-thoughts/&quot;&gt;writing the songs&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Yes, I am still thinking about the &lt;a href=&quot;https://garden.travisbriggs.com/garden/blog/latest-and-not-so-greatest/&quot;&gt;100:10:1&lt;/a&gt; rule, but if you look at my drafts/demos website at &lt;a href=&quot;https://songs.travisbriggs.com/&quot;&gt;songs.travisbriggs.com&lt;/a&gt;, you&#39;ll see that I have actually written 100s of songs and song fragments.&lt;/p&gt;
&lt;p&gt;But in this case, I&#39;ve actually &lt;a href=&quot;https://garden.travisbriggs.com/garden/fake-it-music/&quot;&gt;written the songs&lt;/a&gt;. I&#39;ve got about a dozen that I have even recorded demos of that I consider high enough quality to release. I probably need to rethink my music practice in terms of &lt;a href=&quot;https://garden.travisbriggs.com/garden/good-song/&quot;&gt;songwriting&lt;/a&gt;, because that&#39;s what I want to do more than anything. Actually, in the context of this potential album I&#39;m talking about, that might be the biggest factor holding me back.&lt;/p&gt;
&lt;p&gt;I started taking mixing lessons so I could mix and master the songs myself, to make the album 100% DIY. However, the mixing lessons were hard and hard to keep up with. I haven&#39;t felt like at my current skill level I could do the songs justice. At the same time, I don&#39;t want to spend thousands of dollars to get them professionally mixed and mastered, since I&#39;ve made a grand total of about 50 bucks ever selling music (from Spotify/iTunes/Amazon/YouTube payments and Bandcamp donations).&lt;/p&gt;
&lt;p&gt;Really, it&#39;s not sustainable to continue paying others to mix and master my music, even if I stopped hiring Emily to do the drums and just used software. I need to learn to do it myself. I need to &lt;a href=&quot;https://garden.travisbriggs.com/garden/nike-the-shit-out-of-it/&quot;&gt;DIY the shit out of it&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;It could be a problem of &lt;a href=&quot;https://garden.travisbriggs.com/garden/motivation-music/&quot;&gt;motivation&lt;/a&gt;. Am I happy with what I&#39;ve already done? Am I resting on my laurels, as thin as they might be?&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Writing in the genre you listen to</title>
    <link href="https://garden.travisbriggs.com/garden/genre-thoughts/"/>
    <updated>2024-09-21T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/genre-thoughts/</id>
    <content xml:lang="en" type="html">&lt;p&gt;I think I&#39;m starting to realize one of the major roadblocks I&#39;ve encountered in my music career -- career meaning all the times in the past I&#39;ve tried to write, record and perform music. There is a dichotomy between the types of music I generally listen to and the types of music that the Music Industrial Complex (for lack of a better term) makes it easy to produce. I listen to rock: classic rock, punk rock, alternative rock, indie rock, space rock; stuff with guitars, bass, drums and singing that generally follows a intro-verse-chorus-verse-chorus-bridge-chorus-chorus song structure. Of course, I sometimes listen to hip-hop. I sometimes listen to &amp;quot;classical&amp;quot; (terrible term). I sometimes listen to jazz, or metal, or lofi or whatever. But my music tastes are squarely grounded in upbeat, melodic rock music.&lt;/p&gt;
&lt;p&gt;Meanwhile, there&#39;s &lt;a href=&quot;https://garden.travisbriggs.com/garden/ableton/&quot;&gt;Ableton Live&lt;/a&gt; through to keyboard controllers, &lt;a href=&quot;https://blog.landr.com/what-is-midi/&quot;&gt;MIDI&lt;/a&gt; equipment, synthesizers, grooveboxes, drum machines and all manner of gear and plugins that music manufacturers want to sell us. Don&#39;t get me wrong, I love this stuff. I first got interested in making digital music with a copy of &lt;a href=&quot;https://www.reasonstudios.com/&quot;&gt;Reason Studio&#39;s&lt;/a&gt; (nee Propellerheads) Reason 1.0. The fact is, most of this -- stuff -- is geared (pun intended) towards making some kind of genre of electronic music. And most genres of electronic music are focused on interesting beats, rhythms, sound design, fx, etc. I don&#39;t find most genres of electronic music melodically or harmonically interesting. Much of it has a lot of hooks, but no melody at all to speak of. Which is not to say I don&#39;t listen to some electronic music, or indie music with electronic elements (&lt;a href=&quot;https://www.fosterthepeople.com/&quot;&gt;Foster the People&lt;/a&gt;, &lt;a href=&quot;https://okgo.net/&quot;&gt;OK Go&lt;/a&gt;, &lt;a href=&quot;https://www.twentyonepilots.com/&quot;&gt;Twenty One Pilots&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;Also, this isn&#39;t to say that you can&#39;t produce rock music with Ableton and a MIDI keyboard. Both of my music releases for &lt;a href=&quot;https://garden.travisbriggs.com/garden/danger-third-rail/&quot;&gt;Danger Third Rail&lt;/a&gt; were tracked in &lt;a href=&quot;https://garden.travisbriggs.com/garden/ableton-12/&quot;&gt;Ableton&lt;/a&gt;, in exactly that manner. I&#39;ve never mic&#39;d an amp to record a guitar, everything has been done with amp modeling plugins.&lt;/p&gt;
&lt;p&gt;This dichotomy exists, though. I don&#39;t listen to enough purely electronic music to appreciate the subtleties or defining characteristics of the &lt;a href=&quot;https://music.ishkur.com/&quot;&gt;literally hundreds of genres&lt;/a&gt; it is made up of. I can&#39;t recognize when a song is employing a trope or deviating from one. And because of this, when I sit down and end up writing vaguely electronic music, it comes out sounding thin, simplistic and cliche.&lt;/p&gt;
&lt;p&gt;On the other hand, recording rock music without a band, in your &lt;a href=&quot;https://garden.travisbriggs.com/garden/recording-setup/&quot;&gt;home recording studio slash kitchen&lt;/a&gt;, is hard y&#39;all! I have to program digital drums, compose and record a guitar part, compose and record a contrapunctual guitar part, compose and record bass either through keyboard or bass guitar. And that&#39;s before considerations of melody/lyrics/vocals, arrangement, sound design, and mixing and mastering. I guess the real problem isn&#39;t that all of that work goes into producing a finished song, a finished product. The problem is that some amount of that behemoth is necessary to even &amp;quot;sketch out ideas&amp;quot;. Never mind recording and producing a rock song, it is difficult to work in this environment when you&#39;re trying to even compose one.&lt;/p&gt;
&lt;p&gt;Some of this node is just &lt;a href=&quot;https://garden.travisbriggs.com/garden/dg-public/&quot;&gt;thinking out loud&lt;/a&gt;, so excuse me if I whine and rant.&lt;/p&gt;
&lt;p&gt;One solution is to just &lt;a href=&quot;https://garden.travisbriggs.com/garden/nike-the-shit-out-of-it/&quot;&gt;NIKE the shit out of it&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Another possible solution is to figure out new ways of composition that don&#39;t rely on all the production overhead. To figure out a way to get a &amp;quot;demo&amp;quot; out quickly that captures the song, to prove that it&#39;s written, and to worry about proper recording and production later. I even bought a &lt;a href=&quot;https://zoomcorp.com/en/us/handheld-recorders/&quot;&gt;handheld recorder&lt;/a&gt; at one point, that I still have, in order to be able to just play guitar out loud and have it record everything while I&#39;m writing a song. I have thought of this before of course. Song writing and song recording are two different disciplines. But it goes back to the electronic music production, where that statement doesn&#39;t seem to be true at all. When does a DJ/electronic music producer compose a song outside of their DAW, besides maybe on the aforementioned groovebox/drum machine/sampler?&lt;/p&gt;
&lt;p&gt;So when I want to &amp;quot;make music&amp;quot; (whatever that means), my first step is to open &lt;a href=&quot;https://garden.travisbriggs.com/garden/ableton-12/&quot;&gt;Ableton&lt;/a&gt;. The next step is to stare at it, mouth agape. And the step after that is to start dialing in the same tired hip hop cliche beat patterns and lame synth lines and end up with another imitation electronic music track.&lt;/p&gt;
&lt;p&gt;In the past, I&#39;ve thought the holy grail would be to somehow marry the genres, and I did that somewhat on both of my releases, heavily incorporating digital synthesizers into the arrangements of most of the tracks. Reading back what I just wrote, however, I&#39;m starting to realize that this isn&#39;t a problem of artistic voice or direction. It&#39;s simply a problem of workflow.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Bands and sports teams</title>
    <link href="https://garden.travisbriggs.com/garden/bands-as-sports-teams/"/>
    <updated>2024-09-21T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/bands-as-sports-teams/</id>
    <content xml:lang="en" type="html">&lt;p&gt;I&#39;ve started to think of bands as sports teams. For a sports team, like an american football team, there are a lot of players. You have a quaterback, an offensive line, a running back, some wide recievers. You have an entire defense with a defensive line, cornerbacks and safetys. To have a successful team, all of these pieces have to come together in perfect harmony and align so that the team can be maximally successful.&lt;/p&gt;
&lt;p&gt;Or do they?&lt;/p&gt;
&lt;p&gt;Look at any high school football game. Generally speaking, the winning team has some star player or two that are bigger, stronger, faster or more skilled than the rest of the players on either team. When you have a quarterback with great passing precision, and a wide receiver that can evade coverage and catch the ball, you just run that same play. Almost every time. Why take a risk with any other players when these two can win the game for you by themselves.&lt;/p&gt;
&lt;p&gt;So how does this relate to bands? The goal of a sports team is to win a game, or multiple games. The goal of a band is to make a great record, or multiple great records. Now, it&#39;s easier to quantify the success of a sports team. How many yards did they gain, how many points did they score, did they win the game? The success of a record is harder to define, but it is probably some combination of critical and commercial success, along with the lasting legacy of the song and how beloved it is.&lt;/p&gt;
&lt;p&gt;So what makes a song successful? Usually it has some combination of excellence in: songwriting, lyrics, melody, hook, harmony, vocal performance, arrangement, star power, production (including electronic), instrumentation, instrumental solos and various other elements. The important observation is that &lt;em&gt;not every aspect of the song has to be great&lt;/em&gt;! Just like a few good players can &amp;quot;carry&amp;quot; a sports team, a few great or amazing elements can carry a song. A band might have weak songwriting, but amazing vocal performances. Or mundane lyrics but incredible instrumentation and instrumental solos. The elements that carry a record for a band might vary between one record and another. In fact, it is often bands that &amp;quot;mix up the formula&amp;quot; that have the most success and staying power.&lt;/p&gt;
&lt;p&gt;I think this is something to keep in mind when recording my own tracks. I don&#39;t have to have every element be perfect. Not everything has to shine. I should figure out what aspects of my songs are making them &amp;quot;work&amp;quot;, and hone in on those.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Ableton 12, consternation and procrastination</title>
    <link href="https://garden.travisbriggs.com/garden/ableton-12/"/>
    <updated>2024-09-21T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/ableton-12/</id>
    <content xml:lang="en" type="html">&lt;p&gt;&lt;a href=&quot;https://www.ableton.com/en/live/&quot;&gt;Ableton Live&lt;/a&gt; version 12 was released the first week of March, 2024. By &lt;a href=&quot;https://www.musicradar.com/reviews/ableton-live-12-suite-review&quot;&gt;all&lt;/a&gt; &lt;a href=&quot;https://www.gearnews.com/ableton-live-12-review-more-midi-more-gui-more-sound/&quot;&gt;accounts&lt;/a&gt; it&#39;s a great update, with new instruments and an improved interface, while maintaining the basic interface and workflows that we&#39;re all familiar with. I actually pre-ordered the software when I read those first preliminary reviews and they were positive. I figured, why cause myself indecision when the package actually came out? Just pre-order it now, spend the money, and when it comes out I can download it and instantly be in music-making Nirvana.&lt;/p&gt;
&lt;p&gt;Well that&#39;s not quite what happened.&lt;/p&gt;
&lt;p&gt;This past Monday, the day before Live&#39;s release, I got an email from Ableton letting me know that my license had been activated and I would be able to download the software soon. I started having some serious introspection about the &lt;a href=&quot;https://garden.travisbriggs.com/garden/highs-and-lows-musician/&quot;&gt;state of my music-making&lt;/a&gt; and the things I wanted to do. I felt like it was finally time to &amp;quot;come out of retirement&amp;quot; and start making music again by any means necessary.&lt;/p&gt;
&lt;p&gt;Suffice it to say, that hasn&#39;t happened. Instead, I&#39;ve been possessed by a crippling anxiety and sense of dread. Basically what has happened is that I have all the tools I need to make music. Everything is there, completely capable, ready for me to take the reigns and do something great. This wealth of possibility though, rather than be empowering, is downright terrifying. All that&#39;s standing in the way between me and my music is myself, and that&#39;s the most frightening thing of all. No excuses, no one to blame.&lt;/p&gt;
&lt;p&gt;Hopefully I can get over this initial existential dread and start making music again soon!&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Rainfall, a website generator for musicians</title>
    <link href="https://garden.travisbriggs.com/garden/Rainfall/"/>
    <updated>2024-09-21T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/Rainfall/</id>
    <content xml:lang="en" type="html">&lt;h2&gt;Early attempts&lt;/h2&gt;
&lt;p&gt;I have been working on personal song hosting since 2018, when I created &lt;a href=&quot;https://songs.travisbriggs.com/&quot;&gt;songs.travisbriggs.com&lt;/a&gt; (&lt;a href=&quot;https://github.com/audiodude/songs.travisbriggs.com&quot;&gt;Github&lt;/a&gt;). The point was to replace Soundcloud, which I was paying for but getting very little value from.&lt;/p&gt;
&lt;p&gt;Sorry, this garden node is about to get technical...&lt;/p&gt;
&lt;p&gt;That site is basically a custom &lt;a href=&quot;https://www.cloudflare.com/learning/performance/static-site-generator/&quot;&gt;static site generator&lt;/a&gt;, written in &lt;a href=&quot;https://www.python.org/&quot;&gt;Python&lt;/a&gt; and &lt;a href=&quot;https://flask.palletsprojects.com/en/3.0.x/&quot;&gt;Flask&lt;/a&gt;. All song metadata (name, tags, descriptions) is stored in &lt;a href=&quot;https://daringfireball.net/projects/markdown&quot;&gt;Markdown&lt;/a&gt; files (much like this Garden). It operates as a normal Flask web application, for previewing the site, but when a special command is given, it &amp;quot;crawls&amp;quot; through all of the pages of the site and &amp;quot;renders&amp;quot; them as simple HTML pages, like a website from 1999 (as all static site generators due). The practical upside of all this is that I can host the site on Netlify, where I don&#39;t need any Python processes or databases running, and as of this writing Netlify continues to operate a free plan for a pretty generous amount of bandwidth per month, which includes a CDN (in case you get hugged by hacker news or reddit).&lt;/p&gt;
&lt;p&gt;After using this setup for a while and being happy with it, I &amp;quot;open sourced&amp;quot; it, cleaning out all the personally identifying and specific information, as &lt;a href=&quot;https://github.com/audiodude/rainfall&quot;&gt;Rainfall&lt;/a&gt; (a play on Soundcloud I think?). With that, someone could download my template and create their own static music site with their own music on their own Netlify (or anywhere else). Seemed legit.&lt;/p&gt;
&lt;p&gt;However, no one used it (surprise!). At that point, I had in my mind a project (still called Rainfall) that would allow users to sign up and upload songs through a web interface, providing metadata. I would then spin up a local Flask server for them (the same as my preview server above) and let them preview their site in an iframe before clicking a publish button, doing an OAuth with Netlify, and making their site live. I got this working for one site, but the technical hurdle I could never overcome was the problem of dynamically attaching a newly created web app to my serving stack without restarting the web server. That remains the unsolved problem for server-side Rainfall.&lt;/p&gt;
&lt;h2&gt;Moving Forward&lt;/h2&gt;
&lt;p&gt;Obviously, everything I&#39;ve written above about the potential demise of Bandcamp, and Andrew&#39;s article and impetus, has emboldened me to look at this again. I found out about the awesome &lt;a href=&quot;https://codeberg.org/simonrepp/faircamp&quot;&gt;Faircamp&lt;/a&gt; recently, which seems very slick and full featured and customizable, in a way that I think artists themselves will appreciate (rather than just creating clones of my &lt;a href=&quot;http://songs.travisbriggs.com/&quot;&gt;songs.travisbriggs.com&lt;/a&gt; site).&lt;/p&gt;
&lt;p&gt;The potential difficulty with Faircamp is that it is a Rust binary that runs locally, and requires an installation. More than that, the manual clearly states:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;On BSD, macOS and Windows you are entering uncharted territory, ...&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Beyond that, the data for the app (the songs and metadata and images and everything) have to be hand cultivated into a particular directory structure and format for it to work.&lt;/p&gt;
&lt;p&gt;What if I could take my ideas (and maybe even my codebase!) that I developed for server-side Rainfall, and use Faircamp as a sort of &amp;quot;backend&amp;quot;? That is, I could:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Allow users to sign in, upload their songs, add metadata, add images, etc.&lt;/li&gt;
&lt;li&gt;Create the directory structure that Faircamp requires.&lt;/li&gt;
&lt;li&gt;Render HTML with Faircamp&lt;/li&gt;
&lt;li&gt;Allow users to preview their site, surfacing any Faircamp errors/issues.&lt;/li&gt;
&lt;li&gt;OAuth with Netlify and publish to the web.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;That&#39;s it, that&#39;s the idea. 1200 words later, that&#39;s it.&lt;/p&gt;
&lt;h2&gt;Progress (technical)&lt;/h2&gt;
&lt;p&gt;So far, I&#39;ve released both versions 1.0 and 1.1 of the project. 1.0 allowed you to upload songs and create the basic website, while version 1.1 added the ability to log in via Mastodon (because lots of people complained about the exclusive Google login).&lt;/p&gt;
&lt;p&gt;The Github repo is &lt;a href=&quot;https://github.com/audiodude/rainfall&quot;&gt;here&lt;/a&gt;, and you can see the issues I&#39;m tracking for future releases.&lt;/p&gt;
&lt;p&gt;The tech statck is &lt;a href=&quot;https://flask.palletsprojects.com/en/3.0.x/&quot;&gt;Python/Flask&lt;/a&gt;, &lt;a href=&quot;https://www.sqlalchemy.org/&quot;&gt;SQLAlchemy&lt;/a&gt; and &lt;a href=&quot;https://vuejs.org/&quot;&gt;Vue 3&lt;/a&gt; for the frontend. It allows logging in with Google or Mastodon accounts (because I &lt;em&gt;really&lt;/em&gt; didn&#39;t want to deal with user registration and especially password management/reset emails/etc). I have tests for the backend in &lt;a href=&quot;https://docs.pytest.org/en/7.4.x/&quot;&gt;Pytest&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I originally thought I couldn&#39;t deploy this on my preferred platform of &lt;a href=&quot;https://fly.io/&quot;&gt;Fly.io&lt;/a&gt;, because of the need for filesystem access. However I was able to do it with the use of &amp;quot;shared volumes&amp;quot;.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Various Writings</title>
    <link href="https://garden.travisbriggs.com/garden/writings/"/>
    <updated>2024-09-17T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/writings/</id>
    <content xml:lang="en" type="html">&lt;p&gt;Here is a collection of snippets of writing that I creeated between 2014 and 2017. Lots of poetry, a couple of what could be intros to a short story (&lt;a href=&quot;https://garden.travisbriggs.com/garden/writings/barney/&quot;&gt;&amp;quot;Barney&amp;quot;&lt;/a&gt;, &lt;a href=&quot;https://garden.travisbriggs.com/garden/writings/lazily-slapping-the-snare-drum/&quot;&gt;&amp;quot;Lazily Slapping the Snare Drum&amp;quot;&lt;/a&gt;). Most of these were just idle time-wasting while sitting on the Google bus. They originally lived on a separate site, &lt;code&gt;writings.travisbriggs.com&lt;/code&gt;, but I thought it would be nice to integrate them into the Garden. Just need to make sure I don&#39;t accidentally list them in the &lt;a href=&quot;https://garden.travisbriggs.com/garden/dg-reverse/&quot;&gt;dreaded reverse chronological order&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;As I migrated them here, I didn&#39;t quite read all of them, but I generally browsed through them. As it turns out, I was a late bloomer and my emo phase came in my early 30s. I seriously sound very depressed in many of these.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://garden.travisbriggs.com/garden/writings/absolute-power/&quot;&gt;Absolute Power&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://garden.travisbriggs.com/garden/writings/barney/&quot;&gt;Barney&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://garden.travisbriggs.com/garden/writings/introduction/&quot;&gt;Introduction&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://garden.travisbriggs.com/garden/writings/lazily-slapping-the-snare-drum/&quot;&gt;Lazily slapping the snare drum&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://garden.travisbriggs.com/garden/writings/the-building-building/&quot;&gt;The Building Building&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://garden.travisbriggs.com/garden/writings/thoughts-of-home/&quot;&gt;Thoughts of Home&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://garden.travisbriggs.com/garden/writings/concession/&quot;&gt;Concession&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://garden.travisbriggs.com/garden/writings/pillows-and-sheets/&quot;&gt;Pillows and Sheets&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://garden.travisbriggs.com/garden/writings/preoccupied/&quot;&gt;Preoccupied&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://garden.travisbriggs.com/garden/writings/toil/&quot;&gt;Toil&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://garden.travisbriggs.com/garden/writings/gray/&quot;&gt;Gray&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://garden.travisbriggs.com/garden/writings/rainbow-static/&quot;&gt;Rainbow Static&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://garden.travisbriggs.com/garden/writings/just-rain/&quot;&gt;Just Rain&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://garden.travisbriggs.com/garden/writings/pavement-windshield-pop/&quot;&gt;Pavement Windshield Pop&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://garden.travisbriggs.com/garden/writings/blackness/&quot;&gt;Blackness&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://garden.travisbriggs.com/garden/writings/gearing-up/&quot;&gt;Gearing up&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://garden.travisbriggs.com/garden/writings/hurricane/&quot;&gt;Hurricane&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://garden.travisbriggs.com/garden/writings/best-wrecks/&quot;&gt;Best Wrecks&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://garden.travisbriggs.com/garden/writings/untitled-2/&quot;&gt;(Untitled)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://garden.travisbriggs.com/garden/writings/these-are-the-days/&quot;&gt;Pep talk&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://garden.travisbriggs.com/garden/writings/empty-mind/&quot;&gt;Empty Mind&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://garden.travisbriggs.com/garden/writings/suffer/&quot;&gt;Suffer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://garden.travisbriggs.com/garden/writings/coping-skills/&quot;&gt;Coping skills&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  <entry>
    <title>A bit of Spanish</title>
    <link href="https://garden.travisbriggs.com/garden/spanish/"/>
    <updated>2024-09-14T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/spanish/</id>
    <content xml:lang="en" type="html">&lt;p&gt;Honestly, Spanish is by far the most useful language I could end up learning, seeing as I live in the San Francisco Mission District.&lt;/p&gt;
&lt;p&gt;I took Spanish in middle school and high school. Although I don&#39;t currently speak it, I can read and pronounce words (Spanish has regular pronunciation, unlike English). When I went to &lt;a href=&quot;https://garden.travisbriggs.com/garden/mexico-city/&quot;&gt;Mexico City&lt;/a&gt; in February 2024, I found that I was definitely able to communicate to some degree with people at cafes or on the street. I didn&#39;t understand much of what was spoken to me, but I could understand written text pretty well, and piece together phrases to convey what I wanted to convey.&lt;/p&gt;
&lt;p&gt;In 2023 I signed up for &lt;a href=&quot;https://www.pimsleur.com/learn-spanish-latin-american/subscription-all-access&quot;&gt;Pimsleur Spanish&lt;/a&gt;. I did the first audio lesson (written lessons don&#39;t start until after the second lesson). I only stuck with it for like a week. Part of the problem is that the first couple of lessons are just way too basic for me. But honestly, I wish I could stick with it. Who doesn&#39;t want to learn another language? And I have a leg up on Spanish, so to speak.&lt;/p&gt;
&lt;p&gt;I also downloaded a deck of Spanish phrases for the &lt;a href=&quot;https://garden.travisbriggs.com/garden/anki/&quot;&gt;Anki flashcard system&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Actually, it&#39;s interesting that I&#39;m using Pimsleur and Anki, because they both used the &amp;quot;spaced repetition&amp;quot; method for showing you something right when you were about to forget it, and thus helping you commit it to long term memory. Or at least that&#39;s the claim, and I know that definitely the Anki folks claim to have actual research to back it up.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Entering the garden</title>
    <link href="https://garden.travisbriggs.com/garden/"/>
    <updated>2024-09-14T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/</id>
    <content xml:lang="en" type="html">&lt;p&gt;&lt;em&gt;I&#39;m trying desperately to resist the urge to write this entire website as a choose-your-own adventure game. Must, resist.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;As you enter the garden, you can see a bunch of &lt;a href=&quot;https://garden.travisbriggs.com/garden/best%20albums%20in%20the%20universe/&quot;&gt;records&lt;/a&gt; for sale, or at least on display. You also hear &lt;a href=&quot;https://garden.travisbriggs.com/garden/danger-third-rail/&quot;&gt;a band&lt;/a&gt; playing somewhere inside. It&#39;s impossible to miss the huge amount of power extension cords and other wires darting through the gate, laying on the ground, and even going up over the walls of the garden. Whatever is going on here requires plenty of electricity it would seem.&lt;/p&gt;
&lt;p&gt;You also see what looks like a disheveled madman rambling to himself about &lt;a href=&quot;https://garden.travisbriggs.com/garden/blog/&quot;&gt;blogging&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;There&#39;s a live digital display telling you about things that are going on right &lt;a href=&quot;https://garden.travisbriggs.com/garden/now/&quot;&gt;now&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;A &lt;a href=&quot;https://garden.travisbriggs.com/garden/writings/&quot;&gt;scrappy-looking journal&lt;/a&gt; is open on a simple table, with some handwritten poetry and the like.&lt;/p&gt;
&lt;p&gt;In the corner of the garden, there is a large smelly &lt;a href=&quot;https://garden.travisbriggs.com/garden/compost/&quot;&gt;compost pile&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;You can also read about &lt;a href=&quot;https://garden.travisbriggs.com/garden/digital-garden-itself/&quot;&gt;the digital garden itself&lt;/a&gt;.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Compost pile</title>
    <link href="https://garden.travisbriggs.com/garden/compost/"/>
    <updated>2024-09-14T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/compost/</id>
    <content xml:lang="en" type="html">&lt;p&gt;I&#39;ve struggled against &lt;a href=&quot;https://garden.travisbriggs.com/garden/dg-reverse/&quot;&gt;Reverse Chronological Order&lt;/a&gt;, but I&#39;ve still found myself replicating it in my collection of previously published &lt;a href=&quot;https://garden.travisbriggs.com/garden/blog/&quot;&gt;blog posts&lt;/a&gt;. Why, why must we repeat the mistakes of the past?&lt;/p&gt;
&lt;p&gt;In the meantime, I&#39;ve felt handcuffed from adding new content to this Garden. While I thought I would be writing a bunch of &lt;a href=&quot;https://garden.travisbriggs.com/garden/dg-evergreen/&quot;&gt;evergreen posts&lt;/a&gt;, I ended up being shackled by the fact that when I had an idea of something to write about, I couldn&#39;t think of anywhere to link it from! So I had all these ideas for garden &amp;quot;nodes&amp;quot;, but no &amp;quot;place in the garden&amp;quot; for them.&lt;/p&gt;
&lt;p&gt;For this reason, I&#39;ve created this &amp;quot;Compost pile&amp;quot;. Maybe compost is a bad word, because it implies decay. On the other hand, it also implies new growth. The idea is to stick a bunch of random thoughts here, as a place to link my new nodes from. If they eventually grow into something greater, than I can hopefully &amp;quot;plant&amp;quot; them somewhere else in the garden. If not...well at least they&#39;re not in &lt;a href=&quot;https://garden.travisbriggs.com/garden/dg-reverse/&quot;&gt;Reverse Chronological Order&lt;/a&gt;!&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;I&#39;ve collected a lot of my thoughts and opinions on &lt;a href=&quot;https://garden.travisbriggs.com/garden/programming%20languages/&quot;&gt;programming languages&lt;/a&gt; that I use and/or am familiar with.&lt;/p&gt;
&lt;p&gt;Some thoughts on &lt;a href=&quot;https://garden.travisbriggs.com/garden/new-year-2025/&quot;&gt;New Year&#39;s 2025&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I&#39;m surprised by how many people who I consider &amp;quot;open source advocates&amp;quot; and &amp;quot;free software crusaders&amp;quot; are &lt;a href=&quot;https://garden.travisbriggs.com/garden/github/&quot;&gt;still comfortable using Github&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Speaking of GitHub, I&#39;ve been &lt;a href=&quot;https://garden.travisbriggs.com/garden/codecov/&quot;&gt;fighting with Codecov for months&lt;/a&gt; (but may have finally won!).&lt;/p&gt;
&lt;p&gt;At the beginning of 2023 I &lt;a href=&quot;https://garden.travisbriggs.com/garden/apache/&quot;&gt;wrote an email&lt;/a&gt; to the &lt;a href=&quot;https://www.apache.org/&quot;&gt;Apache Software Foundation&lt;/a&gt; about the lack of inclusive language in their name.&lt;/p&gt;
&lt;p&gt;On my &lt;a href=&quot;https://garden.travisbriggs.com/garden/comments-research/&quot;&gt;quest for comments&lt;/a&gt; I learned a &lt;a href=&quot;https://garden.travisbriggs.com/garden/activity-pub/&quot;&gt;bit about ActivityPub&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Trying to organize my &lt;a href=&quot;https://garden.travisbriggs.com/garden/genre-thoughts/&quot;&gt;thoughts on genres&lt;/a&gt; and how they affect my music practice.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://garden.travisbriggs.com/garden/excited/&quot;&gt;Some things I&#39;m excited about&lt;/a&gt;.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Anki flashcards</title>
    <link href="https://garden.travisbriggs.com/garden/anki/"/>
    <updated>2024-09-14T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/anki/</id>
    <content xml:lang="en" type="html">&lt;p&gt;&lt;a href=&quot;https://apps.ankiweb.net/&quot;&gt;Anki&lt;/a&gt; is an open source program for viewing and drilling flashcards. It also operates as a cloud service that provides pre-existing flashcard &amp;quot;decks&amp;quot; and the ability to sync your progress across devices. So you can view flashcards on your phone, or on your computer and keep everything up to date.&lt;/p&gt;
&lt;p&gt;The most recent flashcards I&#39;ve downloaded are for &lt;a href=&quot;https://garden.travisbriggs.com/garden/spanish/&quot;&gt;Spanish&lt;/a&gt;, but I haven&#39;t really looked at them yet.&lt;/p&gt;
&lt;p&gt;The last time I opened Anki I did find my old &amp;quot;capitals and countries of the world&amp;quot; deck that I had been meaning to work through. I had previously done US states and capitals to great success, but the countries of the world deck was a lot harder to stick with. Part of the problem I had was that there were too many &amp;quot;cards&amp;quot;. What I realized was that Anki generates cards based on inputting &amp;quot;notes&amp;quot; (which are collections of facts) and running them through &amp;quot;templates&amp;quot;. So I simply had to create an alternate set of templates for my world countries and capitals deck, and I could weed out some of the more tedious cards (things like, &amp;quot;Where on a map is this country&#39;s capital?&amp;quot; and &amp;quot;What city in &amp;lt;country&amp;gt; is this?&amp;quot;. For the latter, the answer was always the capital and it was a bit overkill).&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Python</title>
    <link href="https://garden.travisbriggs.com/garden/Python/"/>
    <updated>2024-09-14T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/Python/</id>
    <content xml:lang="en" type="html">&lt;p&gt;I first started writing Python in 2009, in my first Github repo: &lt;a href=&quot;https://github.com/audiodude/sudoku-solver&quot;&gt;sudoku-solver&lt;/a&gt;, an open source library for solving Sudoku puzzles that I did in my free time (I had a lot of free time back then because I was unemployed and living in my parents&#39; basement).&lt;/p&gt;
&lt;p&gt;Soon after I got my job at &lt;a href=&quot;https://garden.travisbriggs.com/garden/Qwobl/&quot;&gt;Qwobl&lt;/a&gt; with Jawad and &lt;a href=&quot;https://garden.travisbriggs.com/garden/Christian/&quot;&gt;Christian&lt;/a&gt; and Joe, where I wrote a lot more Python code. I don&#39;t think they ever told me this, but I think they looked at the sudoku code when considering me for the job.&lt;/p&gt;
&lt;p&gt;Python has remained one of my favorite programming languages. I would say I&#39;m probably slightly more proficient in it than &lt;a href=&quot;https://garden.travisbriggs.com/garden/javascript-typescript/&quot;&gt;Javascript/Typescript&lt;/a&gt;, which is what I use for my &lt;a href=&quot;https://garden.travisbriggs.com/garden/YouTube/&quot;&gt;day job&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;At one point, I figured out a way to &lt;a href=&quot;https://garden.travisbriggs.com/garden/warnings-python/&quot;&gt;elevate Python warnings&lt;/a&gt; to errors in order to help debug and fix them.&lt;/p&gt;
&lt;p&gt;In 2023 I started teaching a completely free &lt;a href=&quot;https://www.noisebridge.net/wiki/PyClass&quot;&gt;Python class&lt;/a&gt; at &lt;a href=&quot;http://noisebridge.net/&quot;&gt;Noisebridge&lt;/a&gt;. It has since evolved into a more general  &lt;a href=&quot;https://www.noisebridge.net/wiki/Computer_Programming_Study_Group&quot;&gt;&amp;quot;Computer Programming Study Group&amp;quot;&lt;/a&gt;, but we still cover some of the Python lectures from time to time. The lectures I wrote are in the Noisebridge &lt;a href=&quot;https://github.com/noisebridge/PythonClass&quot;&gt;GitHub repo&lt;/a&gt; for the class. Here&#39;s a list, with a link to interactive copies of the &lt;a href=&quot;https://jupyter.org/&quot;&gt;Jupyter Notebooks&lt;/a&gt; on a &lt;a href=&quot;https://tljh.jupyter.org/en/latest/&quot;&gt;Littlest Jupyter Hub&lt;/a&gt; instance that I host. &lt;strong&gt;If you&#39;d like the password for &lt;a href=&quot;http://sfpythonlab.com/&quot;&gt;sfpythonlab.com&lt;/a&gt;, email me and introduce yourself.&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Lesson 1 - Basics using Mastodon - &lt;a href=&quot;https://sfpythonlab.com/hub/user-redirect/git-pull?repo=https%3A%2F%2Fgithub.com%2Fnoisebridge%2FPythonClass&amp;amp;branch=main&amp;amp;urlpath=tree%2FPythonClass%2Flessons%2F01-basics-using-mastodon%2Fmastodon.ipynb&quot;&gt;sfpythonlab.com notebook&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Lesson 2 - Control structures and booleans - &lt;a href=&quot;https://sfpythonlab.com/hub/user-redirect/git-pull?repo=https%3A%2F%2Fgithub.com%2Fnoisebridge%2FPythonClass&amp;amp;branch=main&amp;amp;urlpath=tree%2FPythonClass%2Flessons%2F02-control-structures-booleans%2Fcontrol_structures_booleans.ipynb&quot;&gt;sfpythonlab.com notebook&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Lesson 3 - Exceptions - &lt;a href=&quot;https://sfpythonlab.com/hub/user-redirect/git-pull?repo=https%3A%2F%2Fgithub.com%2Fnoisebridge%2FPythonClass&amp;amp;branch=main&amp;amp;urlpath=tree%2FPythonClass%2Flessons%2F03-exceptions%2Fexceptions.ipynb&quot;&gt;sfpythonlab.com notebook&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Lesson 4 - Defining functions - &lt;a href=&quot;https://sfpythonlab.com/hub/user-redirect/git-pull?repo=https%3A%2F%2Fgithub.com%2Fnoisebridge%2FPythonClass&amp;amp;branch=main&amp;amp;urlpath=tree%2FPythonClass%2Flessons%2F04-function-definitions%2Ffunction_definitions.ipynb&quot;&gt;sfpythonlab.com notebook&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Lesson 5 - Algorithms - &lt;a href=&quot;https://sfpythonlab.com/hub/user-redirect/git-pull?repo=https%3A%2F%2Fgithub.com%2Fnoisebridge%2FPythonClass&amp;amp;branch=main&amp;amp;urlpath=tree%2FPythonClass%2Flessons%2F05-algorithms-pt-1%2Falgorithms_pt_1.ipynb&quot;&gt;sfpythonlab.com notebook&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Lesson 6 - Classes, objects, and decorators - &lt;a href=&quot;https://sfpythonlab.com/hub/user-redirect/git-pull?repo=https%3A%2F%2Fgithub.com%2Fnoisebridge%2FPythonClass&amp;amp;branch=main&amp;amp;urlpath=tree%2FPythonClass%2Flessons%2F06-classes-objects-decorators%2Fclasses_objects_decorators.py.ipynb&quot;&gt;sfpythonlab.com notebook&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Lesson 7 - Regex - &lt;a href=&quot;https://sfpythonlab.com/hub/user-redirect/git-pull?repo=https%3A%2F%2Fgithub.com%2Fnoisebridge%2FPythonClass&amp;amp;branch=main&amp;amp;urlpath=tree%2FPythonClass%2Flessons%2F07-regex%2F07_regex.ipynb&quot;&gt;sfpythonlab.com notebook&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Lesson 8 - Data Analysis with sqlite and Pandas - &lt;a href=&quot;https://sfpythonlab.com/hub/user-redirect/git-pull?repo=https%3A%2F%2Fgithub.com%2Fnoisebridge%2FPythonClass&amp;amp;branch=main&amp;amp;urlpath=tree%2FPythonClass%2Flessons%2F07-regex%2F07_regex.ipynb&quot;&gt;sfpythonlab.com notebook&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Lesson 9 - APIs and AI - &lt;a href=&quot;https://sfpythonlab.com/hub/user-redirect/git-pull?repo=https%3A%2F%2Fgithub.com%2Fnoisebridge%2FPythonClass&amp;amp;branch=main&amp;amp;urlpath=tree%2FPythonClass%2Flessons%2F09-api-and-ai%2Fapi_and_ai.ipynb&quot;&gt;sfpythonlab.com notebook&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Lesson 10 - Web Scraping - &lt;a href=&quot;https://sfpythonlab.com/hub/user-redirect/git-pull?repo=https%3A%2F%2Fgithub.com%2Fnoisebridge%2FPythonClass&amp;amp;branch=a62face03bd0d541a2c9f2eba8085937e76d4bfb&amp;amp;urlpath=tree%2FPythonClass%2Flessons%2Fseries_3%2F10-web-scraping%2Fweb-scraping.ipynb&quot;&gt;sfpythonlab.com notebook&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Lesson 11 - Web apps with Flask, pt 1 - &lt;a href=&quot;https://sfpythonlab.com/hub/user-redirect/git-pull?repo=https%3A%2F%2Fgithub.com%2Fnoisebridge%2FPythonClass&amp;amp;branch=main&amp;amp;urlpath=tree%2FPythonClass%2Flessons%2F11-web-apps-with-flask-pt-1%2Fweb_apps_with_flask.ipynb&quot;&gt;sfpythonlab.com notebook&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  <entry>
    <title>Codecov</title>
    <link href="https://garden.travisbriggs.com/garden/codecov/"/>
    <updated>2024-09-05T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/codecov/</id>
    <content xml:lang="en" type="html">&lt;p&gt;In software development, there is the concept of &amp;quot;code coverage&amp;quot;. When your automated tests run, a coverage tool &lt;strong&gt;instruments&lt;/strong&gt; the code, wrapping it with instructions that determine, for each line of your source code, whether the line was executed during the test or not. &lt;a href=&quot;https://atlassian.com/continuous-delivery/software-testing/code-coverage&quot;&gt;Many&lt;/a&gt; &lt;a href=&quot;https://testing.googleblog.com/2020/08/code-coverage-best-practices.html&quot;&gt;have&lt;/a&gt; &lt;a href=&quot;https://capgemini.github.io/testing/What-Is-Code-Coverage-and-Why-It-Should-Not-Lead-Development/&quot;&gt;written&lt;/a&gt; about the pros and cons of low and high code coverage. It turns out it&#39;s one of those areas where a &amp;quot;middle ground&amp;quot; is critically important.&lt;/p&gt;
&lt;p&gt;There are hundreds of tools across every programming language that detect and report code coverage. &lt;a href=&quot;https://codecov.com/&quot;&gt;Codecov&lt;/a&gt; is not one of them. Instead, it provides a GUI (Graphical User Interface) for inspecting, analyzing, and reporting on code coverage reports. Once your tests run, you upload the coverage report to Codecov, and their automated system provides a web app where you can visually see where you are covered or lacking coverage as you explore your source code tree.&lt;/p&gt;
&lt;p&gt;Even more useful for most projects, the process of uploading and inspecting code coverage reports can itself be completely automated using &lt;a href=&quot;https://docs.github.com/en/actions&quot;&gt;GitHub Actions&lt;/a&gt;. What this means is that before you merge a PR (Pull Request), Codecov can say the equivalent of &amp;quot;Hey, don&#39;t merge this, you didn&#39;t test the new code you added!&amp;quot;. Implementing and responding to this feedback is part of good &lt;a href=&quot;https://medium.com/@revanrgh/clean-code-should-we-prioritize-hygiene-in-coding-cff197542b11&quot;&gt;&amp;quot;code hygeine&amp;quot;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This year, Codecov released v4 of it&#39;s GitHub integration. I believe the purpose was to unify its CLI (Command Line Interface) tool and the GitHub code, so they weren&#39;t running different codebases. The most severe change was that it was no longer possible for Codecov to use the &amp;quot;environment&amp;quot; of the GitHub repo to determine the proper project or credentials: you now had to explicitly set a &lt;em&gt;token&lt;/em&gt; for it to work. For thousands of developers, their automated pipelines stopped working, and it was often difficult to tell what was wrong and how to fix it. Well, it wasn&#39;t particularly difficult per se, but required a lot of annoying steps and hard to find documentation.&lt;/p&gt;
&lt;p&gt;All of this is to just document for future posterity the head-bang-on-desk moment I had when trying to upgrade to v4 in my own &lt;a href=&quot;https://garden.travisbriggs.com/garden/wp-1.0/&quot;&gt;WP1&lt;/a&gt; repo today. The Codecov automation kept reporting that I was missing the token. I, on the other hand, was thouroughly convinced that I had the token, but Codecov just wouldn&#39;t agree with me. I had read the &lt;a href=&quot;https://docs.codecov.com/docs/adding-the-codecov-token&quot;&gt;documentation&lt;/a&gt; over and over, and double checked that I had done all of the steps but it still wasn&#39;t working.&lt;/p&gt;
&lt;p&gt;The problem was that I assumed the hard part was the first part, adding the &lt;code&gt;CODECOV_TOKEN&lt;/code&gt; to the GitHub repo settings. I was convinced that that&#39;s where the problem was. In actuality, what I had missed was that the syntax for calling v4 was slightly, but every so similarly lookingly (?), different from v3.&lt;/p&gt;
&lt;img src=&quot;https://pxscdn.com/public/m/_v2/588554065884192073/3781ba7d4-1bb9dc/8GbMvEfDtTR5/nXvjO8y0yPXBrI3XCEyQqs6cGn2chUypPiUX26T5.png&quot; alt=&quot;Code review showing GitHub actions code with one line changed&quot; style=&quot;max-width: 50rem&quot; /&gt;
&lt;p&gt;I kept seeing the line where you set &lt;code&gt;env:&lt;/code&gt; but reading it as &amp;quot;I already have &lt;code&gt;secrets.CODECOV_TOKEN&lt;/code&gt; in there!&amp;quot;. Facepalm.&lt;/p&gt;
&lt;p&gt;In all honesty though, the entire Codecov v3 to v4 upgrade has kind of been a nightmare, across multiple months and multiple repos. Thank god I&#39;m not paying them any money!&lt;/p&gt;
&lt;p&gt;Update: I&#39;m still getting these freaking errors! Every now and then my CI will flake out like this:&lt;/p&gt;
&lt;img src=&quot;https://pxscdn.com/public/m/_v2/588554065884192073/0e43b1202-69768b/D9HJx5Y4yN0l/1y9kQRG1WPT2fQ4TPczdXPECDMHOKAuMgXN3IZ4S.png&quot; alt=&quot;Github actions with Codecov Error: Codecov token not found. Please provide Codecov token with -t flag.&quot; style=&quot;max-width: 50rem&quot; /&gt;
&lt;p&gt;Update the Second: I am still getting these intermittent flaky errors. I&#39;ve decided to &lt;a href=&quot;https://github.com/openzim/wp1/pull/758&quot;&gt;demote Codecov&lt;/a&gt;, and set my GitHub actions CI so that if all the tests pass and only the Codecov upload fails, the CI still passes. Sigh.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>YouTube</title>
    <link href="https://garden.travisbriggs.com/garden/YouTube/"/>
    <updated>2024-09-02T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/YouTube/</id>
    <content xml:lang="en" type="html">&lt;p&gt;For billions of people around the world, YouTube is a source of entertainment, education, hand-wringing about policy and politics, a celebrity maker, and so much more. For me, it&#39;s the company that signs my paycheck.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Christian</title>
    <link href="https://garden.travisbriggs.com/garden/Christian/"/>
    <updated>2024-09-02T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/Christian/</id>
    <content xml:lang="en" type="html">&lt;p&gt;I have a friend named Christian, who was in my wedding party, and who I worked with at &lt;a href=&quot;https://garden.travisbriggs.com/garden/Qwobl/&quot;&gt;Qwobl&lt;/a&gt; back in like 2008.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Taper</title>
    <link href="https://garden.travisbriggs.com/garden/taper/"/>
    <updated>2024-09-01T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/taper/</id>
    <content xml:lang="en" type="html">&lt;p&gt;If you read the Taper 12 &lt;a href=&quot;https://taper.badquar.to/12/about.html#submit&quot;&gt;about page&lt;/a&gt;, you will find that submissions for Taper #13 are due Sept 13 2024, approximately two weeks from the time of this writing.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;But what is Taper?&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Taper is an online &amp;quot;zine-type&amp;quot;...thing...where digital artists, poets and agitators submit pieces for each published collection. They&#39;re usually something between an &amp;quot;interactive poem&amp;quot; a &amp;quot;visualization&amp;quot; or some avant garde HTML experiment. They&#39;re very forward thinking and very cool. I&#39;ve only looked at a couple of the art projects/poems in #9 so far, and I must confess I&#39;ve missed every Taper installment since #3 in 2019. I bet they just weren&#39;t up to date on sending the updates to their mailing list or whatever. But there&#39;s definitely some cool stuff in there and I recommend the &lt;a href=&quot;https://taper.badquar.to/&quot;&gt;full archives&lt;/a&gt;. I actually submitted &lt;a href=&quot;https://tilde.town/~audiodude/duality/&quot;&gt;this piece&lt;/a&gt; for Taper #2, which was about duality, and it got rejected because the file size was too big (embedded JPG), and the editors found the writing too incoherent.&lt;/p&gt;
&lt;p&gt;Taper is definitely one of those things that &amp;quot;lives in my head rent free&amp;quot; as the kids say. In fact, yesterday I spent about 2 hours working on a potential submission for Taper 13. I got as far as laying out a webpage and writing some JavaScript for the project, but when I went to add an &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/SVG&quot;&gt;SVG&lt;/a&gt; to the page, I thought, &amp;quot;I better check how big this is getting&amp;quot;. At that point, it was about 6 kilobytes, but unfortunately the size limit for submissions is the microscopic, ridiculous, ludicrous 2 kilobytes. I guess they must plan on doing this for 100 years and want to make sure they can fit it all on a floppy disk at the end of it all (sarcasm). Though it might be something like this, where they have ambitions of storing or displaying the zines in some ridiculously retro or restricted medium.&lt;/p&gt;
&lt;p&gt;Anyways, I removed the SVG and checked again, but I was still at 4k, twice the limit. At that point I gave up and put my laptop away. I like making weird HTML art/poetry projects, but so far I haven&#39;t found a place besides Taper to submit them. And as far as Taper goes, I&#39;m just overweight.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Draft (writing website)</title>
    <link href="https://garden.travisbriggs.com/garden/draft/"/>
    <updated>2024-09-01T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/draft/</id>
    <content xml:lang="en" type="html">&lt;p&gt;Draft was an online, distraction free, writing tool that shut down at the end of December 2022. I used it extensively over the years.&lt;/p&gt;
&lt;p&gt;I was very sad about it shutting down, but I totally understand that the project was probably in the direct intersection of side project that 1) is big enough to cause all kinds of costs and responsibilities and 2) not big enough to produce meaningful financial rewards for the former.&lt;/p&gt;
&lt;p&gt;When I heard about it shutting down, I sent the following email to &lt;a href=&quot;https://twitter.com/natekontny&quot;&gt;Nate Kontny&lt;/a&gt;, the site&#39;s creator:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Hi Nate,&lt;/p&gt;
&lt;p&gt;Just wanted to send a quick note in support of your decision to shut down Draft. When I saw the title of your email, I have to confess I let out an audible &amp;quot;Noooooooo!&amp;quot;. I love Draft, and it&#39;s been my trusty companion all these years for distraction free writing wherever I am. I loved the built in folder organization, embedded word counts, and easy sharing capabilities. I&#39;ve done NaNoWriMo in Draft, and Morning Pages, rejected blog posts that I don&#39;t want to make public, song lyrics I&#39;ve written, just all sorts of things.&lt;/p&gt;
&lt;p&gt;Thank you for your efforts in making all of that possible. It&#39;s sad that Draft is going away, but nothing lasts forever I suppose. Thank you for making it possible to export all the data.&lt;/p&gt;
&lt;p&gt;Thanks,&lt;/p&gt;
&lt;p&gt;-Travis&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Tonight, I sent a follow-up email when I retrieved my Draft archive and realized it was only 150 KB (small enough to &lt;em&gt;easily&lt;/em&gt; fit on a floppy disk!)&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Hi Nate,&lt;/p&gt;
&lt;p&gt;I already wrote you one email thanking you for Draft.&lt;/p&gt;
&lt;p&gt;Now I have an item of concern. If you&#39;re shutting the service down on 2022-12-31, it seems like it will be about 3 weeks from the time of your announcement to the time Draft goes poof. I&#39;m not sure that&#39;s enough time for people to check whatever email they use to access Draft and realize that all of their data is going away.&lt;/p&gt;
&lt;p&gt;My Draft backup was 150Kb. Do you think it would be possible to simply materialize all of the backups of all of your users and put them in like a private S3 cold storage that you could retrieve upon request? Perhaps you could even make it self-service somehow, like sending people an email with: &amp;quot;Draft has been shutdown. The password to access or delete your backed up data is &#39;xyz123&#39;&amp;quot; and then when people go to &lt;a href=&quot;http://draftin.com/&quot;&gt;draftin.com&lt;/a&gt; they just see an explanation letter and a place to paste in their password to delete or download?&lt;/p&gt;
&lt;p&gt;Just wondering. I think there is a long tail of people who simultaneously 1) Have put their life work in Draft and 2) Will not check their email in the month of December. The chance of this person existing is small, but the value that will be lost for this person is inconceivable. Even if you just mysqldump the database, which can&#39;t be more than a GB I imagine, and stick it somewhere, that might be good enough.&lt;/p&gt;
&lt;p&gt;Maybe you&#39;ve already thought of this and are already doing something similar. Given the thoughtful way you ran the service, I wouldn&#39;t doubt it. Just wanted to bring it up in case, on behalf of that poor person on vacation in Tahiti for the month without their laptop.&lt;/p&gt;
&lt;p&gt;Thanks,&lt;/p&gt;
&lt;p&gt;-Travis&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I never got any response, but reading back through my emails just now, I definitely thought to myself that maybe he had taken the steps I suggested anyways, whether or not he was inspired by my words. It would certainly make more sense to have a non-operational, 1 GB database backup lying around than to subject yourself to the liability of permanently deleting someone&#39;s life work. And I mean liability in the broadest sense, because something like that wouldn&#39;t just have potential legal consequences, it&#39;s also just a gigantic emotional burden (in my opinon) should it happen.&lt;/p&gt;
&lt;p&gt;In the intervening two years I have switched to Google Docs for a lot of things. I also use Google Keep for shorter notes on a variety of random topics. I&#39;m feeling nostalgic for Draft now though and wondering whether or not I should seek out an alternative. Of course plenty of potential writers have been thwarted by not having a fancy enough notebook, pen, or typewriter (sarcasm).&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Enabling comments</title>
    <link href="https://garden.travisbriggs.com/garden/comments-research/"/>
    <updated>2024-08-27T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/comments-research/</id>
    <content xml:lang="en" type="html">&lt;p&gt;&lt;em&gt;Update: comments are working great! I just commited a change to update the styling and autoload them. Read below for a full catalog of my journey to this point.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Here&#39;s my research so far on comments, and my radical idea for enabling them.&lt;/p&gt;
&lt;p&gt;I&#39;ve read about:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://disqus.com/&quot;&gt;DISQUS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.intensedebate.com/&quot;&gt;IntenseDebate&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://muut.com/&quot;&gt;Muut (Formerly moot)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://facebook.com/&quot;&gt;Facebook embeds&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://posativ.org/isso/&quot;&gt;Isso&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/adtac/commento&quot;&gt;Commento&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://utteranc.es/&quot;&gt;Utterances&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;this list taken from &lt;a href=&quot;https://getnikola.com/handbook.html#comments&quot;&gt;Nikloa&#39;s handbook&lt;/a&gt;&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Though I haven&#39;t fully evaluated all of them, I was leaning towards Commento. The problem is that I would have to run another server somewhere, and I&#39;m totally over the &amp;quot;fun and excitement&amp;quot; of spinning up, and especially maintaining, cloud servers.&lt;/p&gt;
&lt;p&gt;Then I saw someone&#39;s blog post that had a &amp;quot;Comments from Mastodon&amp;quot; section. This led me to the &lt;a href=&quot;https://carlschwan.eu/2020/12/29/adding-comments-to-your-static-blog-with-mastodon/&quot;&gt;original post&lt;/a&gt; by Carl Schwan about how he did this with Hugo. The basic approach is dead simple, and very Web 2.0:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Create a post on Mastodon that represents your blog post/garden node.&lt;/li&gt;
&lt;li&gt;Add the ID of the post (and the site&#39;s host) to the front matter of the node.&lt;/li&gt;
&lt;li&gt;Add Javascript to the node, or one of it&#39;s templates&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;When the page loads, the URL is baked in. Then some Vanilla Javascript runs that downloads JSON of the post&#39;s replies from the host server API (from the endpoint &lt;code&gt;https://&amp;lt;host&amp;gt;/api/v1/statuses/&amp;lt;id&amp;gt;/context&lt;/code&gt;). The Javascript takes the JSON from the API and builds comment boxes for each comment.&lt;/p&gt;
&lt;h2&gt;Proof of Concept&lt;/h2&gt;
&lt;p&gt;It worked, but it was a lot of work. I would have had to manually remember to enable comments for every garden node that I want to be commentable (which is basically every one), and enabling comments would have meant creating a Mastodon post and manually copying the ID of the Mastodon post into the Markdown for the node, then re-deploying the site.&lt;/p&gt;
&lt;p&gt;I looked at &lt;a href=&quot;https://github.com/LewisDaleUK/eleventy-plugin-activity-pub/tree/main&quot;&gt;eleventy-plugin-activity-pub&lt;/a&gt;. However, it has a slightly different focus, which is to turn your static site itself into a &amp;quot;Fediverse instance&amp;quot; by creating files at well known endpoints that other Fediverse servers know how to consume. So, if this site is at &lt;code&gt;travisbriggs.com&lt;/code&gt;, I could have an account called &lt;code&gt;@garden@travisbriggs.com&lt;/code&gt; and it would contain all of the posts. It uses a common Fediverse hack that the /.well-known/webfinger URL serves a static file that lists only one actor, no matter what user is queried for. It was pointed out to me in the course of this research that this is most likely used in conjunction with an &lt;code&gt;alias&lt;/code&gt; stanza to point someone at the &amp;quot;real&amp;quot; Fediverse account of the responsible party.&lt;/p&gt;
&lt;p&gt;Basically, this led to a bunch of research into the &lt;a href=&quot;https://garden.travisbriggs.com/garden/activity-pub/&quot;&gt;ActivityPub protocol&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Comments, finally!&lt;/h2&gt;
&lt;p&gt;In the end, I got it to work for all nodes of the garden, automatically, whenever I publish the site. Keep reading for a technical explanation of how that works.&lt;/p&gt;
&lt;p&gt;It starts with an &lt;a href=&quot;https://www.sqlite.org/&quot;&gt;sqlite&lt;/a&gt; database that is checked into the git repository for the garden. This database has the following schema:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;CREATE TABLE comments (id TEXT, host TEXT, username TEXT, page_slug TEXT)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;When the &lt;a href=&quot;https://www.11ty.dev/&quot;&gt;Eleventy&lt;/a&gt; process is running to generate the site, it has a section of &amp;quot;computed data&amp;quot; which can use an arbitrary Javascript function to add fields to the &amp;quot;data&amp;quot; of a page (basically, what&#39;s in the frontmatter). This function can even be asynchronous, so we can query the sqlite database or make network requests! In an &lt;code&gt;eleventyComputed&lt;/code&gt; block, I have one promise that loads all of the database data (because it&#39;ll never be more than a few hundred posts, realistically) and &amp;quot;indexes&amp;quot; it by creating a mapping from the page slug to the rest of the data. Then, in the main &lt;code&gt;eleventyComputed&lt;/code&gt; function, we check if the data already exists (ie, the node already has a Mastodon post representing it). If it does, we just return the data from the database.&lt;/p&gt;
&lt;p&gt;If not, we make a post using a secret API token that is kept outside the git repo. We grab the &lt;code&gt;id&lt;/code&gt; of this post, save it to the database, and return it to the page. The key point is that, from the point of view of the page rendering process, it is completely inconsequential whether this post was created for the first time, or whether it already exists. By the time the page is rendering, there is a Mastodon post id, server hostname, and username attached to it.&lt;/p&gt;
&lt;p&gt;And that&#39;s it! You can view the &lt;a href=&quot;https://github.com/audiodude/travisbriggs.com/commit/a4a489f79c1c6e81f017740cad4e9fc0ca4ce321&quot;&gt;main commit&lt;/a&gt; where I added this functionality if you&#39;re interested.&lt;/p&gt;
&lt;h3&gt;Bugs&lt;/h3&gt;
&lt;p&gt;Of course, after I posted this, and once someone &lt;em&gt;finally&lt;/em&gt; left a comment on this post, I discovered two bugs:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;It publishes the Mastodon post while I&#39;m in &amp;quot;development mode&amp;quot;, still writing the post. Maybe not the worst thing, but a bit annoying.&lt;/li&gt;
&lt;li&gt;It doesn&#39;t properly link to the originating post, which is much more of a problem.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;While fixing these bugs I, of course, found another bug:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;The first time it creates a Mastodon post for a node, the data structure it returns is wrong, so the links on the comments section are broken for that post only.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The fix for the first issue was to check &lt;code&gt;process.env.ELEVENTY_RUN_MODE != &#39;build&#39;&lt;/code&gt; and return early if that&#39;s the case. However, this and my use of &lt;code&gt;fetch&lt;/code&gt; means that I can no longer build the site entirely on &lt;a href=&quot;https://www.netlify.com/&quot;&gt;Netlify&lt;/a&gt; with a build hook from pushing to the &lt;a href=&quot;https://garden.travisbriggs.com/garden/github/&quot;&gt;Github&lt;/a&gt; repo.&lt;/p&gt;
&lt;p&gt;The fix for the second issue was to ignore calls to generate the comment metadata if the page data itself is empty. For some reason, Eleventy was calling my computation function twice: once with empty data, and again with the proper data. Couldn&#39;t figure out why, so I just ignore the empty case.&lt;/p&gt;
&lt;p&gt;The fix for the third bug was to simply return the right data!&lt;/p&gt;
&lt;p&gt;Now that these bugs are fixed you can totally actually leave comments, I swear!&lt;/p&gt;
&lt;h2&gt;Leave a comment, already!&lt;/h2&gt;
&lt;p&gt;And finally, please, if you&#39;re here, if you have a Mastodon account on any server, for the love of all things sweet and pure, please leave a comment so I know there are other people out there on the internet!&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Digital gardens eschew reverse chronological sorting</title>
    <link href="https://garden.travisbriggs.com/garden/dg-reverse/"/>
    <updated>2024-08-19T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/dg-reverse/</id>
    <content xml:lang="en" type="html">&lt;p&gt;&lt;strong&gt;Reverse is the curse!&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;When I read the materials that served as the inspiration to start this garden (&lt;a href=&quot;https://garden.travisbriggs.com/garden/digital-gardening-principles/&quot;&gt;linked here&lt;/a&gt;), one of the things that most viscerally resonated with me was the abhorrence of &amp;quot;reverse chronological sort&amp;quot;. Fuck reverse chronological sort.&lt;/p&gt;
&lt;p&gt;First, it assumes that the most recently written thing is the most pertinent for a reader or most interesting. Well clearly, that&#39;s not always true. It&#39;s an extremely flimsy invariant. RCS doesn&#39;t allow an author to put his or her best foot forward, because instead of presenting the most comprehensive or most rivetting piece in a collection, it simply shows you the most recent.&lt;/p&gt;
&lt;p&gt;Also, RCS has a chilling effect on blog authors. Every post is sitting there, with it&#39;s date. You&#39;re always called to add something to that stack of posts, put something right on the top. If you&#39;re not writing a &lt;a href=&quot;https://garden.travisbriggs.com/garden/dg-evergreen/&quot;&gt;fully formed&lt;/a&gt; idea that you can post, why bother? Digital gardens allow for subtle and small &amp;quot;weed picking&amp;quot; and &amp;quot;watering&amp;quot; operations that work on a scale smaller than &amp;quot;publish a whole, finished, blog post&amp;quot;.&lt;/p&gt;
&lt;p&gt;On the other hand, I have had some trouble integrating old blog posts into the digital garden. Similarly, I&#39;ve had issues with not feeling right about posting something because it doesn&#39;t &amp;quot;fit&amp;quot; anywhere in the garden. To alleviate some of this, I&#39;ve come up with the &lt;a href=&quot;https://garden.travisbriggs.com/garden/compost/&quot;&gt;compost pile&lt;/a&gt;, which is just a collection of garden nodes that don&#39;t really fit anywhere. I can put things there temporarily and come back to them, and the list of items is not in any kind of chronological order.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Fake it until you make music</title>
    <link href="https://garden.travisbriggs.com/garden/fake-it-music/"/>
    <updated>2024-03-08T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/fake-it-music/</id>
    <content xml:lang="en" type="html">&lt;p&gt;Considering how &lt;a href=&quot;https://garden.travisbriggs.com/garden/bands-as-sports-teams/&quot;&gt;bands are like sports teams&lt;/a&gt;, it&#39;s clear that not every part of a song has to be perfect for it to be a good song. I&#39;ve started to come to the realization that I, as a single person who doesn&#39;t play any instrument particularly well, am going to have significantly more difficulty writing, arranging, and recording a song than a full band. Full bands, when recording, will often just stick a microphone or two into the room where they&#39;re playing and just play the song a few times. Sure, they&#39;ll multitrack some things. There will be a few punch ins and overdubs. But the basic skeleton of the song is there once they&#39;ve written it, they just all need to play their parts and get it down on tape.&lt;/p&gt;
&lt;p&gt;I, on the other hand, have to write parts for each instrument, then practice and perform them, and finally record them one by one. I have to program in the drums using MIDI (no drummer). I have to play both rhythm and lead guitar, and figure out guitar tone for both (or any additional guitar parts). I have to play bass and any additional keyboard/synth parts. And of course I&#39;m the one writing the lyrics and writing and singing the melody.&lt;/p&gt;
&lt;p&gt;What I&#39;m realzing is that I don&#39;t have to get everything perfect. I can focus on the things I do well and just &amp;quot;fake&amp;quot; the rest of it. The drums are already fake. What&#39;s that, I can&#39;t play the bass part? Play it on the keyboard with a bass guitar plugin. Can&#39;t play a guitar solo for the third verse? Shove a synth part in there.&lt;/p&gt;
&lt;p&gt;I&#39;m never going to have the raw power and coherence of some of my favorite bands, like &lt;a href=&quot;https://open.spotify.com/artist/7oPftvlwr6VrsViSDV7fJY?si=94dbb4ef56f34480&quot;&gt;Green Day&lt;/a&gt;, &lt;a href=&quot;https://open.spotify.com/artist/5dePEjHD5QEEKixOHXuRRA?si=3ddcb624f4b44baa&quot;&gt;Midtown&lt;/a&gt; and &lt;a href=&quot;https://open.spotify.com/artist/51J0q8S7W3kIEYHQi3EPqk?si=e8cce8c76ea64a25&quot;&gt;Bayside&lt;/a&gt;. As I mentioned, they have full bands who are, you know, skilled at their instruments. I have to make do with what I have, and strive to produce the best music possible with what I can do.&lt;/p&gt;
&lt;p&gt;And honestly, I think that might be a good thing. Somewhere between all those layers of &amp;quot;faking&amp;quot; is actually my voice. Not my singing voice, but my &lt;a href=&quot;https://medium.com/a-taste-for-life/what-is-a-writers-voice-a8ce2ca0b342&quot;&gt;writer&#39;s voice&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The only problem is a reductionist one. If I&#39;m faking the songwriting, the lyrics, the melody, the harmony; if I&#39;m faking the guitar and bass parts as well as the drums; what else is left? Is there anything of substance after all of that is fake?&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Danger Third Rail</title>
    <link href="https://garden.travisbriggs.com/garden/danger-third-rail/"/>
    <updated>2024-03-07T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/danger-third-rail/</id>
    <content xml:lang="en" type="html">&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://dangerthirdrail.bandcamp.com/&quot;&gt;Bandcamp&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://dangerthirdrail.com/&quot;&gt;Band website&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://open.spotify.com/artist/6QLXdu3r5eCG95Sy6KA7SA?si=4GS8vH7uRfejBEXRltRNsg&quot;&gt;Spotify&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/channel/UCrrEtS8JNwsZdEvowotLhuQ&quot;&gt;YouTube&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href=&quot;https://dangerthirdrail.com/&quot;&gt;Danger Third Rail&lt;/a&gt; is the name of my &amp;quot;band&amp;quot;. But as I always explain, &amp;quot;band&amp;quot; is in quotes because it&#39;s mostly just a recording project of myself, recording music in my &lt;a href=&quot;https://garden.travisbriggs.com/garden/recording-setup/&quot;&gt;home recording studio/kitchen&lt;/a&gt;. All of the tracks I&#39;ve produced and &lt;a href=&quot;https://garden.travisbriggs.com/garden/DistroKid/&quot;&gt;published&lt;/a&gt; to &lt;a href=&quot;https://garden.travisbriggs.com/garden/Spotify/&quot;&gt;Spotify&lt;/a&gt; feature &lt;a href=&quot;https://emilydrums.com/&quot;&gt;Emily Dolan Davies&lt;/a&gt;, and they&#39;ve all been professionally mixed and mastered by &lt;a href=&quot;https://soundbetter.com/&quot;&gt;other&lt;/a&gt; &lt;a href=&quot;https://garden.travisbriggs.com/garden/Fiverr/&quot;&gt;people&lt;/a&gt;. But I&#39;ve written all the songs 100% myself, sang them all, played guitar and keyboards on all of them, and bass on all but one.&lt;/p&gt;
&lt;p&gt;I&#39;ve also published my Danger Third Rail projects on &lt;a href=&quot;https://garden.travisbriggs.com/garden/Bandcamp/&quot;&gt;Bandcamp&lt;/a&gt;, which I have to say has accounted for about 30% of the lifetime money I&#39;ve made from them. This is of course due to friends and family offering generous additional financial support above and beyond the sticker price. Speaking in terms of percents again, though, my lifetime revenue from making music sits at about 3% of my immediate costs of production (not even including costs for equipment, software, plugins, etc).&lt;/p&gt;
&lt;p&gt;Currently, Danger Third Rail is on something of a hiatus. I&#39;ve written about a dozen songs for my first full length album, and I&#39;ve recorded demos of all the songs. But I&#39;m not sure about how to fund the final productions or motivate myself to DIY them 100%. You can read more about &lt;a href=&quot;https://garden.travisbriggs.com/garden/highs-and-lows-musician/&quot;&gt;the highs and lows&lt;/a&gt; of this process.&lt;/p&gt;
&lt;p&gt;Danger Third Rail is my primary recording project under which I release my most polished and finished songs. I&#39;ve also got another secret band name that I&#39;ve used to release the demos of the songs I want to put on the next Danger Third Rail project/album. Of course, I didn&#39;t tell anyone about it so it&#39;s gotten no listens. The act of putting the songs together and uploading them and everything was supposed to get me excited about re-recording and mixing them and doing it all &amp;quot;for real&amp;quot;. It did, somewhat, but it didn&#39;t last.&lt;/p&gt;
&lt;p&gt;Some of what I deal with is the &lt;a href=&quot;https://garden.travisbriggs.com/garden/motivation-music/&quot;&gt;motivation&lt;/a&gt; for making music. This has espcially come into relief recently with the release of &lt;a href=&quot;https://garden.travisbriggs.com/garden/ableton-12/&quot;&gt;Ableton Live 12&lt;/a&gt;. I&#39;m considering to what degree I should &lt;a href=&quot;https://garden.travisbriggs.com/garden/fake-it-music/&quot;&gt;fake it until I make it&lt;/a&gt;. And also considering that &lt;a href=&quot;https://garden.travisbriggs.com/garden/bands-as-sports-teams/&quot;&gt;bands are like sports teams&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I&#39;ve also, at various times, considered forming Danger Third Rail into an actual band and playing gigs and all that. I think the number one reason why this idea never got off the ground is that I would probably need to play at least one instrument in such a band, and I&#39;m terrified and insecure about my playing abilities. I&#39;m also just not that social with other musicians. When I lived in Boston, I would go to open mic nights and local concerts at least 2-4 times a week. I met a lot of musicians that way, and maybe I could do that in San Francisco too. But it seems unlikely.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>This Digital Garden</title>
    <link href="https://garden.travisbriggs.com/garden/digital-garden-itself/"/>
    <updated>2024-01-24T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/digital-garden-itself/</id>
    <content xml:lang="en" type="html">&lt;p&gt;When I first started reading about Digital Gardens, I quickly came to the conclusion that I wanted one for myself. I really just wanted to break out of the prison of creating perfectly polished and self-contained &amp;quot;blog posts&amp;quot; that existed in &lt;a href=&quot;https://garden.travisbriggs.com/garden/dg-reverse/&quot;&gt;reverse chronological order&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I have tried to live up to the &lt;a href=&quot;https://garden.travisbriggs.com/garden/digital-gardening-principles/&quot;&gt;digital gardening principles&lt;/a&gt; that I laid out for myself early on, with varying degrees of success.&lt;/p&gt;
&lt;p&gt;This garden is also available as a &lt;a href=&quot;https://garden.travisbriggs.com/garden/gemini/&quot;&gt;Gemini&lt;/a&gt; capsule at &lt;a href=&quot;gemini://gem.travisbriggs.com&quot;&gt;gemini://gem.travisbriggs.com&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://garden.travisbriggs.com/garden/comments/&quot;&gt;Comments&lt;/a&gt; are enabled by replying to a Mastodon post for each garden node.&lt;/p&gt;
&lt;p&gt;The source code for this garden is &lt;a href=&quot;https://github.com/audiodude/garden.travisbriggs.com&quot;&gt;available on GitHub&lt;/a&gt;, and I&#39;m tracking &lt;a href=&quot;https://github.com/audiodude/garden.travisbriggs.com/issues&quot;&gt;issues to improve it&lt;/a&gt;. It is based on &lt;a href=&quot;https://github.com/binyamin/eleventy-garden&quot;&gt;Eleventy Garden&lt;/a&gt; which is based on &lt;a href=&quot;https://www.11ty.dev/&quot;&gt;Eleventy&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;There&#39;s always a temptation to just re-write the software for the whole thing, following the natural &lt;a href=&quot;https://garden.travisbriggs.com/garden/blog-cycle/&quot;&gt;blog cycle&lt;/a&gt;.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Ableton Live</title>
    <link href="https://garden.travisbriggs.com/garden/ableton/"/>
    <updated>2023-12-17T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/ableton/</id>
    <content xml:lang="en" type="html">&lt;p&gt;&lt;a href=&quot;https://www.ableton.com/en/live/what-is-live/&quot;&gt;Ableton Live&lt;/a&gt; is music production software that serves as a Digital Audio Workstation (DAW). It allows musicians and producers to record and edit digital audio tracks, compose arrangements using looping and part triggering, and even perform DJ sets on the fly from within the interface.&lt;/p&gt;
&lt;p&gt;I might have more to say on this subject in the future.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Test post, plz ignore</title>
    <link href="https://garden.travisbriggs.com/garden/test-post-plz-ignore/"/>
    <updated>2023-12-16T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/test-post-plz-ignore/</id>
    <content xml:lang="en" type="html">&lt;p&gt;Test post, plz ignore.&lt;/p&gt;
&lt;p&gt;🎉&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Comments</title>
    <link href="https://garden.travisbriggs.com/garden/comments/"/>
    <updated>2023-12-16T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/comments/</id>
    <content xml:lang="en" type="html">&lt;p&gt;For at least a year, I didn&#39;t have any comments on my digital garden, which is of course counter to the principle that &lt;a href=&quot;https://garden.travisbriggs.com/garden/dg-feedback/&quot;&gt;digital gardens allow and respond to feedback&lt;/a&gt;. I was really excited to finally enable them, permanently, after a &lt;a href=&quot;https://garden.travisbriggs.com/garden/comments-research/&quot;&gt;bit of research&lt;/a&gt; into the subject.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Activity Pub shenanigans</title>
    <link href="https://garden.travisbriggs.com/garden/activity-pub/"/>
    <updated>2023-12-16T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/activity-pub/</id>
    <content xml:lang="en" type="html">&lt;p&gt;In case you didn&#39;t know &lt;a href=&quot;https://www.theverge.com/2023/4/20/23689570/activitypub-protocol-standard-social-network&quot;&gt;ActivityPub&lt;/a&gt; is the open protocol (&lt;a href=&quot;https://www.w3.org/TR/activitypub/&quot;&gt;W3C recommendation&lt;/a&gt;) that powers Mastodon. It is a way for different servers to exchange messages from users (&amp;quot;Actors&amp;quot;). It is based on &lt;a href=&quot;https://www.w3.org/TR/activitystreams-core/&quot;&gt;ActivityStreams&lt;/a&gt;, which define the types of objects and data in the systems. One interesting thing is that although ActivityPub/ActivityStreams define &lt;a href=&quot;https://www.w3.org/TR/activitystreams-vocabulary/#object-types&quot;&gt;12 different types of Object&lt;/a&gt; that can be passed between ActivityPub servers, Mastodon only implements the &lt;em&gt;Note&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;I found a &lt;a href=&quot;https://github.com/LewisDaleUK/eleventy-plugin-activity-pub&quot;&gt;plugin for Eleventy&lt;/a&gt; (the static site generator used for this garden) that offered to turn my garden into it&#39;s own ActivityPub &amp;quot;node&amp;quot; (not sure what to call it). The basic idea was to sort of hack the &lt;a href=&quot;https://en.wikipedia.org/wiki/WebFinger&quot;&gt;WebFinger&lt;/a&gt; protocol that ActivityPub uses to discover actors on a site, and have it return a static file in response to all queries. This gave me the following account that I could see from my Mastodon server:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pxscdn.com/public/m/_v2/588554065884192073/bf4779419-8cf74f/8duMzD0IWbpB/bCuOgEm3kXRTU46PaN0wyCBcLNeZr6qRrs6MwuiO.png&quot; alt=&quot;Screenshot of a Mastodon account belonging to &amp;quot;Digital Garden of Travis Briggs&amp;quot;/@digital.garden@travisbriggs.com&quot; /&gt;&lt;/p&gt;
&lt;p&gt;That seemed like progress! Unfortunately, of the 74 &amp;quot;Posts&amp;quot; that it claimed this user had, all of them were hidden. And there was no &amp;quot;home server&amp;quot; where I could view these posts/statuses -- because they didn&#39;t really exist! The plugin had, however, created an &lt;a href=&quot;https://www.w3.org/TR/activitypub/#outbox&quot;&gt;Outbox&lt;/a&gt; on this site that contained &amp;quot;Create Note&amp;quot; actions. So I thought, why don&#39;t I just post these actions to my &lt;a href=&quot;https://www.w3.org/TR/activitypub/#inbox&quot;&gt;Inbox&lt;/a&gt; on sfba.social?&lt;/p&gt;
&lt;p&gt;My first naive attempt was to just POST the JSON directly. However, I got an error about needing a signature. Then some helpful folks pointed me in the direction of this &lt;a href=&quot;https://blog.joinmastodon.org/2018/06/how-to-implement-a-basic-activitypub-server/&quot;&gt;blog post&lt;/a&gt; by Eugen from 2018. Basically it walks you through how to have a &amp;quot;static&amp;quot; web finger file and post replies on behalf of the actor in that file. This static file is what I already had above. I generated a public/private keypair, added the public key to the digital.garden.json, and got to work.&lt;/p&gt;
&lt;p&gt;My first few attempts, I couldn&#39;t get the signing quite right, and the &lt;code&gt;/inbox&lt;/code&gt; endpoint complained in various ways. But eventually I &lt;a href=&quot;https://gist.github.com/audiodude/c6ad0923dbe1c9c1199e6d021b6f1ed5&quot;&gt;got it to return&lt;/a&gt; a sweet 202 (accepted for processing) status code! However...nothing happened. I didn&#39;t see a status anywhere, and the profile of my &lt;a href=&quot;mailto:digital.garden@travisbriggs.com&quot;&gt;digital.garden@travisbriggs.com&lt;/a&gt; account still showed &amp;quot;74 Posts&amp;quot; but none visible.&lt;/p&gt;
&lt;p&gt;I knew that the sfba.social server was probably &amp;quot;filtering out&amp;quot; or &amp;quot;dropping&amp;quot; the message for some reason, but it wasn&#39;t clear to me why. This is where things got a little crazy. I actually spun up a &lt;a href=&quot;https://mastodon.0-z-0.com/&quot;&gt;cloud server&lt;/a&gt; and installed Mastodon 4.2.1 in single user mode. It was actually a lot easier nowadays than it was in the time when I tried it before, back around the same time as the Eugen blog post (2018), though I did have to open &lt;a href=&quot;https://github.com/mastodon/documentation/pull/1340&quot;&gt;two&lt;/a&gt; documentation &lt;a href=&quot;https://github.com/mastodon/documentation/pull/1341&quot;&gt;PRs&lt;/a&gt;. It&#39;s probably easier now because it now includes its own systemd scripts for starting and maintaing the web server and sidekiq processes, which simplifies things. It also includes an interactive setup script that prompts you for various values so you don&#39;t have to edit a configuration file manually.&lt;/p&gt;
&lt;p&gt;So I started posting to my own server&#39;s &lt;code&gt;/inbox&lt;/code&gt; and adding debug print statements to the parts of the code that I believed were being used. And sure enough, I figured it out: my create action didn&#39;t have an ActivityStream &lt;code&gt;@context&lt;/code&gt; key, so it was being dropped. Once I got that sorted out, I was successfully able to post a status as a &lt;code&gt;replyTo&lt;/code&gt; another existing status, and see it on my new server. But I still couldn&#39;t will the ghost statuses into existence on their own.&lt;/p&gt;
&lt;p&gt;As it turns out, Mastodon will check if an incoming create action is &lt;code&gt;related_to_local_activity?&lt;/code&gt; (that&#39;s the actual method name). The basic test is if it is in reply to a status on the server, or a status posted by someone who is followed by someone on the server. Actually, from what I understand, this is how all statuses federate. When I post a status on my server, it knows who is following me and POSTs on my behalf to all of their servers. This is actually what used to be known as the &amp;quot;federated timeline&amp;quot;: the sum of all statuses being posted to the server because someone follows their author.&lt;/p&gt;
&lt;p&gt;Okay, but we must go deeper. How can I get my account on sfba.social to &amp;quot;follow&amp;quot; the static account &lt;a href=&quot;mailto:digital.garden@travisbriggs.com&quot;&gt;digital.garden@travisbriggs.com&lt;/a&gt;? Back to reading the ActivityPub spec. Apparently, when you click the &amp;quot;follow&amp;quot; button, your instance sends a Follow request to the remote account&#39;s server. Then, the user of that account can possibly inspect and approve/reject the request. In most cases, when public follows are unrestricted, the remote server will send that back almost immediately. In my case, the static server didn&#39;t send it back &lt;em&gt;at all&lt;/em&gt; (because it&#39;s a static server! It can&#39;t process and respond to requests!). Moreover, the acceptance post has to quote the original follow exactly, but as we all know Mastodon sidesteps some of the ActivityPub methodology and doesn&#39;t actually put the follow requests in my &lt;code&gt;/users/audiodude/outbox&lt;/code&gt; (only created posts are there).&lt;/p&gt;
&lt;p&gt;This is where talking to &lt;a href=&quot;https://sfba.social/@thisismissem@hachyderm.io&quot;&gt;Emilia Smith&lt;/a&gt; was particularly helpful (though she had already helped get me on the right track earlier, and possibly pointed me to the Eugen post). I realized that, even if I could spoof the follow request, and get my statuses accepted by the &amp;quot;remote&amp;quot; server (sfba.social), there would be nowhere for anyone to post replies to those statuses. The replies would go to my static server, which would just silently drop them, and they wouldn&#39;t show up anywhere to serve as the basis for my comments system. In fact, looking at the &lt;a href=&quot;https://carlschwan.eu/2020/12/29/adding-comments-to-your-static-blog-with-mastodon/&quot;&gt;comments code&lt;/a&gt;, it depends specifically on the presence of a Mastodon API server to read the replies from, which my garden would never have (even if it &lt;em&gt;did&lt;/em&gt; have some way of storing the incoming replies).&lt;/p&gt;
&lt;p&gt;This is where I gave up.&lt;/p&gt;
&lt;p&gt;What I ended up doing was creating a &lt;a href=&quot;https://mastodon.online/@digital_garden&quot;&gt;new account&lt;/a&gt; for the Digital Garden itself, and automatically &lt;a href=&quot;https://garden.travisbriggs.com/garden/comments-research/&quot;&gt;posting there&lt;/a&gt; when I post a new garden node. I plan to simply boost these posts from my main, human account when I post new content.&lt;/p&gt;
&lt;p&gt;I have to say though, it was an interesting journey to track some of this down, and I became more familiar with the ActivityPub spec. Especially spinning up a Mastodon server was a fun exercise, just to see what it takes in 2023.&lt;/p&gt;
&lt;p&gt;What do you think? Respond in the comments?&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Digital gardens allow and respond to feedback</title>
    <link href="https://garden.travisbriggs.com/garden/dg-feedback/"/>
    <updated>2023-11-18T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/dg-feedback/</id>
    <content xml:lang="en" type="html">&lt;p&gt;I have recently added comments to this garden. I think it&#39;s critical, given the fact that &lt;a href=&quot;https://garden.travisbriggs.com/garden/dg-evergreen/&quot;&gt;digital garden posts are unfinished, or evergreen&lt;/a&gt; and &lt;a href=&quot;https://garden.travisbriggs.com/garden/dg-public/&quot;&gt;digital gardens allow for learning in public&lt;/a&gt;. Since it&#39;s happening in public, comments should be made in public. And since the nodes are supposed to be evergreen, it&#39;s important that people can comment and point out things that have gotten out of date or that don&#39;t mesh well with local reality.&lt;/p&gt;
&lt;p&gt;Of course this doesn&#39;t mean that people will actually leave comments (I&#39;ve had them enabled for almost a month as of this writing and no one has left a single comment yet). But that&#39;s okay, because &lt;a href=&quot;https://garden.travisbriggs.com/garden/dg-solo/&quot;&gt;digital gardens don&#39;t need attention to thrive&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;You can read more about my &lt;a href=&quot;https://garden.travisbriggs.com/garden/comments/&quot;&gt;comments system&lt;/a&gt;.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Github</title>
    <link href="https://garden.travisbriggs.com/garden/github/"/>
    <updated>2023-11-14T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/github/</id>
    <content xml:lang="en" type="html">&lt;p&gt;I think &lt;a href=&quot;https://github.com/&quot;&gt;Github&lt;/a&gt; is great, I love it. I feel like it keeps getting better and better. I like how all the &amp;quot;enterprise&amp;quot; features stay out of your way and are completely unnecessary if you&#39;re just a personal lone hacker working on your own and other&#39;s code. To be clear, I am not in any way opposed to using Github.&lt;/p&gt;
&lt;p&gt;I find it interesting, however, that most of the open source, privacy thumping, anti-corporate, free software crusaders I know still use Github. Githubs hedgemony is so complete that it is still unexpected, for me, when I come across a repo that is hosted somewhere other than Github. For example, for my &lt;a href=&quot;https://garden.travisbriggs.com/garden/bandcamp/&quot;&gt;Bandcamp alternative site&lt;/a&gt;, I&#39;m using &lt;a href=&quot;https://codeberg.org/simonrepp/faircamp&quot;&gt;Faircamp&lt;/a&gt; as a backend, which is hosted on something called &amp;quot;Codeberg&amp;quot;. I&#39;ve also seen people self host their repos using tools like &lt;a href=&quot;https://gittea.dev/&quot;&gt;Gitea&lt;/a&gt;. I know that at least &lt;a href=&quot;https://about.gitlab.com/&quot;&gt;GitLab&lt;/a&gt; is somewhat popular. But still, day to day, as I find and read about and contribute to code, that code is on Github.&lt;/p&gt;
&lt;p&gt;I also find it interesting that Github kind of made &lt;a href=&quot;https://git-scm.com/book/en/v2/Getting-Started-About-Version-Control&quot;&gt;git&lt;/a&gt; the default &lt;a href=&quot;https://en.wikipedia.org/wiki/Version_control&quot;&gt;Version Control System&lt;/a&gt;. I mean, 20 years ago we definitely knew we could do better than &lt;a href=&quot;https://cvs.nongnu.org/&quot;&gt;CVS&lt;/a&gt;, and there &lt;em&gt;was&lt;/em&gt; &lt;a href=&quot;https://subversion.apache.org/&quot;&gt;Subversion&lt;/a&gt;. I even remember when there were Subversion &amp;lt;=&amp;gt; git import and compatibility layers. But with the popularity of Github, it seems that git just ate the world. &lt;a href=&quot;https://www.mercurial-scm.org/&quot;&gt;Mercurial&lt;/a&gt; (hg) came out around the same time if I remember correctly, and offered a different opinion on how to have distributed source control in federated repos, but it didn&#39;t catch on the way git did. It&#39;s kind of like the killer app completely &lt;em&gt;made&lt;/em&gt; the tool. Sort of like &lt;a href=&quot;https://garden.travisbriggs.com/garden/Ruby%20on%20Rails/&quot;&gt;Ruby on Rails&lt;/a&gt;, where no one would have ever cared about the Ruby without the Rails.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Bandcamp</title>
    <link href="https://garden.travisbriggs.com/garden/Bandcamp/"/>
    <updated>2023-11-02T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/Bandcamp/</id>
    <content xml:lang="en" type="html">&lt;p&gt;While I have used Bandcamp as both a &lt;a href=&quot;https://garden.travisbriggs.com/garden/danger-third-rail/&quot;&gt;music publisher&lt;/a&gt; and music consumer, I don&#39;t really have the fanatical attachment to it that I see from some corners of the internet. That&#39;s probably okay. I do fundamentally believe that a Bandcamp model of &amp;quot;long tail&amp;quot; artists and music producers, as well as labels and collectives, is the way forward for the &lt;em&gt;capital M&lt;/em&gt; Music Industry. Or rather, it seems that said industry will only stratify into 10 artists with a billion views on Spotify/YouTube and a billion artists with 10 views on Bandcamp. &lt;a href=&quot;https://www.billboard.com/pro/streaming-reform-debate-artist-centric-royalties-impala-helen-smith-opinion/&quot;&gt;Deezer&#39;s new royalty terms&lt;/a&gt; are a particularly odious step in that direction: they pay anyone with less than 500 listeners or 1000 streams per month at half the rate. This reverse Robin Hood model is literally stealing from the most vulnerable artists in the ecosystem to give to the richest.&lt;/p&gt;
&lt;p&gt;I was a bit uneasy when &lt;a href=&quot;https://www.pcgamer.com/epic-games-bandcamp-acquisition/&quot;&gt;Epic Games bought Bandcamp&lt;/a&gt; in March 2022. But I calmed down, because I rationalized that they were simply looking to have more User Generated Content in their portfolio.&lt;/p&gt;
&lt;p&gt;Now Bandcamp has been flipped again. After just 18 months, Epic sold the business to &lt;a href=&quot;https://www.theguardian.com/music/2023/oct/17/bandcamp-lays-off-half-its-staff-after-buyout-by-songtradr&quot;&gt;Songtradr&lt;/a&gt;. Songtradr is in the business of providing licensing and cleared songs and samples to media creators, from social media all the way up to ad agencies and more. It&#39;s pure speculation (but I&#39;m not a journalist, this is just my garden), but I wouldn&#39;t be surprised if Songtradr just wants to take all the Bandcamp music and put it in a zipfile and add it to their licensing corpus. They&#39;re probably working with their lawyers to figure out a way they can do that under Bandcamps existing TOS right now. Michael Donaldson even &lt;a href=&quot;https://8sided.blog/a-mess-of-headaches/&quot;&gt;theorizes&lt;/a&gt; that the mess of uncleared samples and covers on Bandcamp already will cause Songtradr a lot of headaches. I can see a world where they try to get artists to attest that their songs are unencumbered or face personal liability.&lt;/p&gt;
&lt;p&gt;And of course, Songtradr has turned around and immediately laid of 50% of Bandcamp&#39;s staff, in the name of efficiency. &lt;a href=&quot;https://www.theguardian.com/commentisfree/2023/oct/27/epic-games-bandcamp-acquired-sondtradr&quot;&gt;Tom Hawking at The Guardian&lt;/a&gt; writes about some of the ways this belies the goals and incentives of a company that cares more about cash than culture.&lt;/p&gt;
&lt;p&gt;Altogether, it is not really a great time to be an artist on the Bandcamp platform. There are millions who love it, and who trust it, and who even use it for their income (I must confess that ~30% of the revenue I&#39;ve ever made as a musician has come from Bandcamp). But I think the writing&#39;s on the wall as it were. Bandcamp may or may not have a future at all, and it is unlikely that the future it has is going to be as well in alignment with the interests of its artists and fans as it was in the past.&lt;/p&gt;
&lt;p&gt;The key point is that it&#39;s not a certainty that Bandcamp will become hostile to the users it serves. Rather, the imperative is to cultivate backups and alternatives &lt;strong&gt;now&lt;/strong&gt;, before the day comes when everyone wakes up to having to sign some contract or pay some gross fee and there&#39;s nowhere else to go.&lt;/p&gt;
&lt;p&gt;So what are we to do?&lt;/p&gt;
&lt;p&gt;Andrew Roach writes about &lt;a href=&quot;https://ajroach42.com/the-uncertain-future-of-bandcamp/&quot;&gt;The Uncertain Future of Bandcamp&lt;/a&gt;, and with his normal enthusiasm and forward thinking, he proposes grabbing a bunch of his friends and writing a complete turnkey alternative from the ground up. I&#39;m exhausted just thinking about it, but it sounds awesome. He explicitly states that he&#39;s not interested in competing with or replacing any other alternative solutions that may pop up, or may already be in progress, which I think is really smart and graceful.&lt;/p&gt;
&lt;p&gt;My solution is to build &lt;a href=&quot;https://garden.travisbriggs.com/garden/Rainfall/&quot;&gt;Rainfall&lt;/a&gt;, a tool that lets you upload songs and create a &lt;a href=&quot;https://codeberg.org/simonrepp/faircamp&quot;&gt;Faircamp&lt;/a&gt; website through a GUI (without having to install Rust or navigate the command line on your own computer).&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Blog Posts</title>
    <link href="https://garden.travisbriggs.com/garden/blog/"/>
    <updated>2023-09-21T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/blog/</id>
    <content xml:lang="en" type="html">&lt;p&gt;I guess if this is my &amp;quot;digital garden&amp;quot; then these posts are like potted plants that were already grown that have been moved to the rockier parts of the garden landscape. Or something.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Immediately after publishing a blog post in 2017 I came to the conclusion that my blog is basically a liability. It’s well established that no one reads it regularly or even semi-regularly. Almost every post is met with the stark sounds of crickets.&lt;/p&gt;
&lt;p&gt;And yet, someone Googling “Travis Briggs blog” could find it pretty quickly. And I doubt that what I’ve written would serve for them to form a positive impression of me. Something about staying silent and being thought a fool.&lt;/p&gt;
&lt;p&gt;But on the other hand, I kind of like being the sort of person who is daring enough to put his feelings out there on the Internet. I like that I have a more substantial repository of what’s going on with me than just 140 character snippets, which could easily themselves be just as damning. Part of this is why I eventually paid for a third party service to delete my Twitter posts after 90 days, and why I was very relieved, upon returning to Mastodon, that it had that feature built into new versions.&lt;/p&gt;
&lt;p&gt;I hope that a digital garden will provide a more well-rounded view of my digital self, and be less prone to quotation without context.&lt;/p&gt;
&lt;p&gt;Also, watch the fuck out because here comes some dreaded &lt;a href=&quot;https://garden.travisbriggs.com/garden/dg-reverse/&quot;&gt;reverse chronological order&lt;/a&gt; posts.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://garden.travisbriggs.com/garden/blog/new-year/&quot;&gt;Every day is New Year&#39;s Day&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://garden.travisbriggs.com/garden/blog/mastodon-is-not-twitter/&quot;&gt;Mastodon is not Twitter&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://garden.travisbriggs.com/garden/blog/pandemic-weary/&quot;&gt;Pandemic Weary&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://garden.travisbriggs.com/garden/blog/read-before-you-write/&quot;&gt;Read before you write&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://garden.travisbriggs.com/garden/blog/another-year-without-resolutions/&quot;&gt;Another Year Without Resolutions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://garden.travisbriggs.com/garden/blog/the-unattainable-and-the-attainable/&quot;&gt;The Unattainable and the Attainable&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://garden.travisbriggs.com/garden/blog/the-chain/&quot;&gt;The Chain&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://garden.travisbriggs.com/garden/blog/not-quite-writers-block/&quot;&gt;Not Quite Writer&#39;s Block&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://garden.travisbriggs.com/garden/blog/latest-and-not-so-greatest/&quot;&gt;Latest and Not-so-greatest&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://garden.travisbriggs.com/garden/blog/something-terrible/&quot;&gt;Something Terrible&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://garden.travisbriggs.com/garden/blog/q-poker-in-progress/&quot;&gt;Q Poker: in progress&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://garden.travisbriggs.com/garden/blog/making-a-computer-game/&quot;&gt;Making a computer game&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://garden.travisbriggs.com/garden/blog/more-about-blogging/&quot;&gt;More about blogging&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://garden.travisbriggs.com/garden/blog/untitled-2020-06-15/&quot;&gt;Untitled 2020-06-15&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://garden.travisbriggs.com/garden/blog/getting-nothing-done/&quot;&gt;Getting Nothing Done&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://garden.travisbriggs.com/garden/blog/giving-up-on-resolutions/&quot;&gt;Giving Up On Resolutions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://garden.travisbriggs.com/garden/nike-the-shit-out-of-it/&quot;&gt;NIKE the shit out of it&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://garden.travisbriggs.com/garden/blog/halloween-sadness/&quot;&gt;Halloween Sadness&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://garden.travisbriggs.com/garden/blog/a-story-of-failure/&quot;&gt;A Story Of Failure&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://garden.travisbriggs.com/garden/blog/causes-of-giving-to-causes/&quot;&gt;Causes of Giving to Causes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://garden.travisbriggs.com/garden/blog/what-programming-language-should-i-learn/&quot;&gt;What programming language should I learn?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://garden.travisbriggs.com/garden/blog/what-is-a-web-application/&quot;&gt;What is a web application?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://garden.travisbriggs.com/garden/blog/considering-moving-blogs/&quot;&gt;Considering moving blogs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://garden.travisbriggs.com/garden/blog/random-knowledge-about-javascript-and-typescript/&quot;&gt;Random knowledge about Javascipt and Typescript&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://garden.travisbriggs.com/garden/blog/songwriting-reflections/&quot;&gt;Songwriting Reflections&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://garden.travisbriggs.com/garden/blog/new-danger-third-rail-ep/&quot;&gt;New Danger Third Rail EP&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://garden.travisbriggs.com/garden/blog/another-week/&quot;&gt;Another Week&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://garden.travisbriggs.com/garden/blog/side-quests-of-life/&quot;&gt;Side quests of life&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://garden.travisbriggs.com/garden/blog/font-of-creativity/&quot;&gt;Font of creativity&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://garden.travisbriggs.com/garden/blog/listening-to-music-while-doing-things/&quot;&gt;Listening to music while doing things&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://garden.travisbriggs.com/garden/blog/blogging-but-this-time-with-blogging/&quot;&gt;Blogging, but this time with blogging&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://garden.travisbriggs.com/garden/blog/music-projects-as-ephemera/&quot;&gt;Music Projects as Ephemera&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;p&gt;The above posts were manually copied over from my &lt;a href=&quot;https://write.as/audiodude&quot;&gt;write.as blog&lt;/a&gt;, where they still live for the time being. Previously, I posted blogs on &lt;a href=&quot;https://blog.travisbriggs.com/&quot;&gt;Medium&lt;/a&gt;, where I had a legacy feature for having a free custom domain name before they got all &amp;quot;charge-y&amp;quot; for it.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Gemini</title>
    <link href="https://garden.travisbriggs.com/garden/gemini/"/>
    <updated>2023-08-26T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/gemini/</id>
    <content xml:lang="en" type="html">&lt;p&gt;&lt;a href=&quot;https://gemini.circumlunar.space/&quot;&gt;Gemini&lt;/a&gt; is a new protocol for the internet. It is a protocol, not an app, or even a browser, or server, or software. These things exist in the Gemini ecosystem, of course, but they&#39;re not what it fundamentally is.&lt;/p&gt;
&lt;p&gt;Gemini aims to be more robust than Gopher but more lightweight than the web, and doesn&#39;t seek to replace either. You need a special &lt;a href=&quot;https://github.com/kr1sp1n/awesome-gemini#clients&quot;&gt;Gemini client&lt;/a&gt; to connect to &amp;quot;Gemini capsules&amp;quot; in &amp;quot;Gemspace&amp;quot; (such as &lt;a href=&quot;gemini://gemini.circumlunar.space/&quot;&gt;gemini://gemini.circumlunar.space/&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;Robin Sloan &lt;a href=&quot;https://www.robinsloan.com/lab/new-avenues/#meta&quot;&gt;encourages us&lt;/a&gt; to make a thing with which we can talk about the thing. I notice this a lot on Mastodon of course, much of it is about itself. I actually think that Gemini is much worse in this regard, in that everyone wants to build a Gemini server, or client or some automation integration thing, but no one wants to write in the medium or consume content there. Tons of content in gemspace (URLS starting with &lt;code&gt;gemini://&lt;/code&gt;, like &lt;a href=&quot;gemini://gem.bestalbumsintheuniverse.com&quot;&gt;gemini://gem.bestalbumsintheuniverse.com&lt;/a&gt;) is about Gemini, but it&#39;s also often mirrored in websites as well. So people are hosting gemblogs and gemsites, but they are just shadows of the content that&#39;s on the web. That&#39;s sad.&lt;/p&gt;
&lt;p&gt;I originally considered making this garden a gemini-only publication. I thought about the &lt;a href=&quot;https://www.robinsloan.com/lab/new-avenues/#exemplars&quot;&gt;very next paragraph&lt;/a&gt; in that same recent newsletter post by Robin: &amp;quot;You can edit by hand!&amp;quot;. Yes I can, but it&#39;s tedious and error prone. I could make a garden in Gemini, and it seems like a good medium for it with it&#39;s distraction free, basic gemtext (&lt;code&gt;.gmi&lt;/code&gt;) format. But I&#39;ve found that the creative pursuits I&#39;m most likely to take up are always those with the least friction. Years ago, I stopped unplugging my mic and guitar cables from my audio interface when I&#39;m done with them. In fact the microphone itself sits on my desk, plugged in 24/7. If I&#39;m writing a song, I can simply pick it up and start singing into it. That&#39;s the level of ease/automation that I need in a creative workflow like a digital garden to make it work for me, and prompt me to keep it evergreen.&lt;/p&gt;
&lt;p&gt;That&#39;s not to say that I won&#39;t be, just like everyone else, posting my content on Gemini &lt;em&gt;as well&lt;/em&gt;. In fact, as of late August 2023, I have a &lt;a href=&quot;gemini://gem.garden.travisbriggs.com/&quot;&gt;Gemini capsule&lt;/a&gt; for this Digital Garden finally!&lt;/p&gt;
&lt;p&gt;Part of converting this digital garden to Gemini involved writing my own Javascript library for converting Markdown (which this garden is &lt;a href=&quot;https://github.com/audiodude/garden.travisbriggs.com&quot;&gt;written in&lt;/a&gt;) to gemtext. I wrote the &lt;a href=&quot;https://garden.travisbriggs.com/garden/gemdown/&quot;&gt;gemdown&lt;/a&gt; library during August 2023 for this purpose. It is my first ever open-source library that was created solely by me for consumption by others! I&#39;m pretty proud.&lt;/p&gt;
&lt;p&gt;And who says you can&#39;t have more than one garden. I have to confess that some of this is vanity. I want people to be able to find and read my garden posts, as much as it &lt;a href=&quot;https://garden.travisbriggs.com/garden/dg-solo/&quot;&gt;&amp;quot;shouldn&#39;t be about that&amp;quot;&lt;/a&gt;. So I&#39;m posting web first.&lt;/p&gt;
&lt;p&gt;I did convert my &lt;a href=&quot;https://garden.travisbriggs.com/garden/best%20albums%20in%20the%20universe/&quot;&gt;best albums in the universe&lt;/a&gt; site to Gemini (as part of the static site generation process) and publish it at &lt;a href=&quot;gemini://gem.bestalbumsintheuniverse.com&quot;&gt;gemini://gem.bestalbumsintheuniverse.com&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Gemini is very promising. It&#39;s limitations are, as usual, it&#39;s greatest strengths. I have responded to Robin with Gemini as a new avenue for 2023.&lt;/p&gt;
&lt;p&gt;Some interesting Gemini related links:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://gmi.skyjake.fi/lagrange/&quot;&gt;Lagrange Gemini Browser (highly recommended!)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://code.rocketnine.space/tslocum/twins&quot;&gt;Twins Gemini server (also highly recommended!)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://gemini.circumlunar.space/servers/&quot;&gt;First 50 known Gemini servers (hint: Best Albums in the Universe is one of them!)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/kr1sp1n/awesome-gemini&quot;&gt;Awesome Gemini on Github&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  <entry>
    <title>Music Making Motivation</title>
    <link href="https://garden.travisbriggs.com/garden/motivation-music/"/>
    <updated>2023-06-07T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/motivation-music/</id>
    <content xml:lang="en" type="html">&lt;p&gt;As the founding, primary, and only member of &lt;a href=&quot;https://garden.travisbriggs.com/garden/danger-third-rail/&quot;&gt;Danger Third Rail&lt;/a&gt;, these are my opinions on motivation for writing and producing music for the project.&lt;/p&gt;
&lt;p&gt;Consider the following graph:&lt;/p&gt;
&lt;p&gt;&lt;em&gt;TODO: insert graph&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;The y axis is how good a song or album is, from the absolute worst to absolutely mind-blowingly incredible (all of this is my opinion of course). The x axis is how much the song or album inspires me to make music.&lt;/p&gt;
&lt;p&gt;So of course there are 4 broad categories delineated by the chart.&lt;/p&gt;
&lt;h3&gt;Terrible and makes me want to make music&lt;/h3&gt;
&lt;p&gt;These are pretty easy to understand. Songs that are so bad that I think, &amp;quot;Oh come on, I can do better than this. &lt;em&gt;Anyone&lt;/em&gt; can do better than this!&amp;quot;. I feel like I want to make music that is better than these because I think I can, it&#39;s really not that hard. And usually this is popular music I&#39;m considering. If &lt;em&gt;this&lt;/em&gt; can get popular, imagine what I could do!&lt;/p&gt;
&lt;h3&gt;Great and makes me want to make music&lt;/h3&gt;
&lt;p&gt;This category is your classic &amp;quot;&lt;a href=&quot;https://www.blowtorchrecords.com/post/why-pixies-are-the-perfect-band&quot;&gt;The Pixies&lt;/a&gt; are your favorite band&#39;s favorite band&amp;quot; choices. You hear these songs, they&#39;re great, and suddenly you go out and buy a guitar because you want to be the next Joe Strummer. This is inspiration. This is what motivates a lot of music out there, the love of something great and inspiring.&lt;/p&gt;
&lt;h3&gt;Great and makes me not want to make music&lt;/h3&gt;
&lt;p&gt;While music in the previous category is fun and inspiring, this category is composed more of the music that is &lt;em&gt;terrifyingly good&lt;/em&gt;. It&#39;s intimidating. These songs and albums are so amazing, so detailed, so enthralling and engaging, so &lt;strong&gt;perfect&lt;/strong&gt; that I can&#39;t imagine that anything I make would ever stack up. There&#39;s no point to making any music at all, because it will never be as good as these.&lt;/p&gt;
&lt;h3&gt;Terrible and makes me not want to make music&lt;/h3&gt;
&lt;p&gt;This one is a bit harder to pin down completely, and harder to explain. It&#39;s not really music that is heinously bad, per se, but more like uninspiring. I hear something in this category and I think, &amp;quot;That sucks&amp;quot; but instead of &amp;quot;...and I could do so much better&amp;quot; like above, it&#39;s more like &amp;quot;...and this is what I&#39;m going to sound like so there&#39;s no point&amp;quot;. Part of this is the idea that there are a hundred million songs on &lt;a href=&quot;https://garden.travisbriggs.com/garden/Spotify/&quot;&gt;Spotify&lt;/a&gt; and ~50k being added every day. Clearly not all of this is in the &amp;quot;great music&amp;quot; categories above. They&#39;re probably crappy or worse. Why should I bother, I think, to add to this swirling mess?&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>The Chain</title>
    <link href="https://garden.travisbriggs.com/garden/blog/the-chain/"/>
    <updated>2023-01-26T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/blog/the-chain/</id>
    <content xml:lang="en" type="html">&lt;p&gt;You might have heard of &lt;a href=&quot;https://jamesclear.com/stop-procrastinating-seinfeld-strategy&quot;&gt;the&lt;/a&gt; &lt;a href=&quot;https://medium.com/@MrBuzzFactor/jerry-seinfelds-productivity-hack-don-t-break-the-chain-8d1944b8323d&quot;&gt;so-called&lt;/a&gt; &lt;a href=&quot;https://www.writersstore.com/dont-break-the-chain-jerry-seinfeld/&quot;&gt;Seinfeld&lt;/a&gt; &lt;a href=&quot;https://nickwignall.com/seinfeld-strategy/&quot;&gt;Strategy&lt;/a&gt; for sticking to something and building a habit.&lt;/p&gt;
&lt;p&gt;You don&#39;t have to click all those links, I&#39;m of course going to explain it. Basically, you buy a big wall calendar and every day you do the thing you&#39;re supposed to do (practice an instrument, write in your journal, work on a YouTube video), you get to put a big red X through that day. After a few days to a week, you have a &amp;quot;chain&amp;quot; of unbroken X&#39;s. Supposedly, you will find that the desire to procrastinate, the perceived pain of working on your project, is overcome simply by your desire to &amp;quot;not break The Chain&amp;quot;.&lt;/p&gt;
&lt;p&gt;I bring this up solely because 2 weeks ago I realized I had blogged about once a week for a few weeks. I felt pretty good about that! Then I blogged again last week. Then this week: well, I didn&#39;t think I had anything to blog about.&lt;/p&gt;
&lt;p&gt;But I didn&#39;t want to break &amp;quot;The Chain&amp;quot; even though I don&#39;t have a real or even virtual calendar where I&#39;m keeping track of it. So I decided to write this small post explaining what The Chain is.&lt;/p&gt;
&lt;p&gt;I&#39;d love to commit to The Chain, and I&#39;m not sure what&#39;s stopping me. I think it&#39;s not the effort or time it takes to write blog posts. I&#39;m completely onboard with offering that much. I think it&#39;s the fact that I&#39;ve tried to consistently blog before, and it always ends in so many tears. The added fact that I will have broken The Chain makes me feel like it will be harder to then, once again like so many times before, resume blogging to any degree.&lt;/p&gt;
&lt;p&gt;Actually if I could commit to only writing 1/4 of my blog posts about blogging itself, that would be an improvement. Maybe when I feel like The Chain is being strained (Don&#39;t Strain The Chain, Gang), I could just cop out and blog about blogging.&lt;/p&gt;
&lt;p&gt;I have to also take this opportunity to point out that the name of this blog is YABIWU -- &lt;em&gt;Yet Another Blog I Won&#39;t Update&lt;/em&gt;. Am I proving myself wrong? Probably only temporarily.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;So has anyone successfully used The Chain? As always I&#39;m Travis Briggs, of &lt;a href=&quot;https://travisbriggs.com/&quot;&gt;travisbriggs.com&lt;/a&gt; fame. If you&#39;d like to comment on this post you can do so on Mastodon (@audiodude@layer8.space) or Twitter (@audiodude) or send me an email at &lt;a href=&quot;mailto:audiodude@gmail.com&quot;&gt;audiodude@gmail.com&lt;/a&gt;.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>New Danger Third Rail EP</title>
    <link href="https://garden.travisbriggs.com/garden/blog/new-danger-third-rail-ep/"/>
    <updated>2023-01-26T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/blog/new-danger-third-rail-ep/</id>
    <content xml:lang="en" type="html">&lt;p&gt;I suppose if I announce a new &lt;a href=&quot;https://garden.travisbriggs.com/garden/danger-third-rail/&quot;&gt;Danger Third Rail&lt;/a&gt; project on a blog site, and then post that to Mastodon, it&#39;s not going to make a very big splash. I&#39;m okay with that, I expect as much. I don&#39;t expect anyone to know what Danger Third Rail is, nevermind that I&#39;m the &amp;quot;mastermind&amp;quot; behind it.&lt;/p&gt;
&lt;p&gt;I almost just wrote &amp;quot;I really want...&amp;quot; but then backspaced the hell out of it. I know that such statements are weak in terms of both intention and motivation. What I will say is this: &lt;em&gt;I will release a new 5 song Danger Third Rail EP before the end of this year.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;The songs are all written, that&#39;s for sure. They are largely recorded, as well. I need to go back and re-record some of the vocals with a new setup that I&#39;ve recently learned works better. Then I need to send the tracks to &lt;a href=&quot;http://www.emilydrums.com/&quot;&gt;my session drummer in the UK&lt;/a&gt;, presuming she has time to work on them. After that I plan on having &lt;a href=&quot;https://www.tunedly.com/&quot;&gt;Tunedly&lt;/a&gt; do the mixing and mastering. I might create the album artwork myself this time, or have it done on &lt;a href=&quot;https://www.fiverr.com/&quot;&gt;Fiverr&lt;/a&gt; like I did last time (or some combination of the two). Then it&#39;s just a matter of uploading everything to &lt;a href=&quot;https://garden.travisbriggs.com/garden/DistroKid/&quot;&gt;DistroKid&lt;/a&gt; and having it float through the tubes to your waiting &lt;a href=&quot;https://garden.travisbriggs.com/garden/Spotify/&quot;&gt;Spotify&lt;/a&gt; and iTunes apps.&lt;/p&gt;
&lt;p&gt;I&#39;m also going to promote this new material thoroughly. Like email it to music blogs and such. And make YouTube lyric (or otherwise) videos for each one of the songs.&lt;/p&gt;
&lt;p&gt;I think I was afraid of doing this before, and I&#39;m not sure of the reason. I&#39;m not ashamed of the music, quite the opposite, I&#39;m very proud of it. I think that knowing I&#39;m going to promote the music means I have to do a better job of producing it, and that&#39;s scary. But I&#39;m committed to doing it. I want to put the best possible product out there, and I want people to listen to it. I&#39;m not going to be satisfied with the random 20 people who listened to the last single or whatever. I&#39;m not going to dump my hard work and passion into a black hole.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://dangerthirdrail.bandcamp.com/&quot;&gt;Follow Danger Third Rail on Bandcamp&lt;/a&gt; to get the official word when the new EP is available. Thanks!&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Email to the Apache Software Foundation</title>
    <link href="https://garden.travisbriggs.com/garden/apache/"/>
    <updated>2023-01-11T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/apache/</id>
    <content xml:lang="en" type="html">&lt;p&gt;Today I learned about the organization Natives In Tech and their websites (&lt;a href=&quot;https://blog.nativesintech.org/apache-appropriation/&quot;&gt;1&lt;/a&gt;, &lt;a href=&quot;https://www.endasfmascotry.com/&quot;&gt;2&lt;/a&gt;) about the naming of the Apache Software Foundation.&lt;/p&gt;
&lt;p&gt;I agree wholeheartedly with the sentiments expressed and stand in solidarity with the Natives in Tech organization in this effort. I believe that a name change is important for software inclusivity as well as mitigating the insulting nature of the current name.&lt;/p&gt;
&lt;p&gt;To that end, I added my name to the &lt;a href=&quot;https://github.com/nativesintech/endasfmascotry/pull/33&quot;&gt;list of signatories&lt;/a&gt; on &lt;a href=&quot;https://www.endasfmascotry.com/&quot;&gt;endasfmascotry.com&lt;/a&gt; and wrote the following email to the list of email addresses listed on that page:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Subject: Please consider ending the use of the Apache name&lt;/p&gt;
&lt;p&gt;From: Travis Briggs &lt;a href=&quot;mailto:audiodude@gmail.com&quot;&gt;audiodude@gmail.com&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;To: &lt;a href=&quot;mailto:board@apache.org&quot;&gt;board@apache.org&lt;/a&gt;, &lt;a href=&quot;mailto:trademarks@apache.org&quot;&gt;trademarks@apache.org&lt;/a&gt;, &lt;a href=&quot;mailto:ke4qqq@apache.org&quot;&gt;ke4qqq@apache.org&lt;/a&gt;, &lt;a href=&quot;mailto:suehle@apache.org&quot;&gt;suehle@apache.org&lt;/a&gt;, &lt;a href=&quot;mailto:jzb@apache.org&quot;&gt;jzb@apache.org&lt;/a&gt;, &lt;a href=&quot;mailto:katia@apache.org&quot;&gt;katia@apache.org&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Hello fellow open source enthusiasts.&lt;/p&gt;
&lt;p&gt;Today I came across this article from the organization Natives in Tech: &lt;a href=&quot;https://blog.nativesintech.org/apache-appropriation/&quot;&gt;https://blog.nativesintech.org/apache-appropriation/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Of course I was previously aware of the Apache Software Foundation, and generally knew that it referred to Native Americans. It never really bothered me in the past. However, after reading the article and associated materials, I believe it is time for ASF to seriously reconsider its naming and plan a path forward that includes a rename.&lt;/p&gt;
&lt;p&gt;The fact that ASF feels the need to have an &amp;quot;About Our Name&amp;quot; page (&lt;a href=&quot;https://www.apache.org/apache-name/&quot;&gt;https://www.apache.org/apache-name/&lt;/a&gt;), to potentially deflect inquiries such as my own, is almost evidence enough that the name is problematic. Linux, Mozilla, Android: none of these organizations or software suites have need for anything similar.&lt;/p&gt;
&lt;p&gt;I recognize as an open source software developer that a rename would be hard and painful. Loss of brand recognition, the need to register new trademarks and domain names, etc. However, as stated above, I believe ASF has a moral imperative to begin this process. And as you know there are precedents in this process across many open source technologies as well as other organizations such as sports teams.&lt;/p&gt;
&lt;p&gt;Please consider the example your amazing software sets in the open source community, and the immense value a rename would have in setting a positive one.&lt;/p&gt;
&lt;p&gt;Thank you,&lt;/p&gt;
&lt;p&gt;Travis Briggs&lt;br /&gt;
Software Developer&lt;br /&gt;
San Francisco, CA, USA&lt;br /&gt;
&lt;a href=&quot;https://travisbriggs.com/&quot;&gt;https://travisbriggs.com&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
</content>
  </entry>
  <entry>
    <title>Every day is New Year&#39;s Day</title>
    <link href="https://garden.travisbriggs.com/garden/blog/new-year/"/>
    <updated>2023-01-03T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/blog/new-year/</id>
    <content xml:lang="en" type="html">&lt;p&gt;Part of the goal of starting a digital garden was to recognize that things like my writing, my learning, my full digital creative output are not ever finished and don&#39;t come out necessarily in neat little packages that warrant a &amp;quot;blog post&amp;quot;. Sometimes you do more, more often than not you do less, and it often comes in bursts. I think it&#39;s possible to take a similar view towards New Year&#39;s resolutions. While the new year gives us occasion to declare one or more &amp;quot;big&amp;quot; changes to our lives, real change is more sporadic and gradual.&lt;/p&gt;
&lt;p&gt;That is to say, every day is New Year&#39;s Day if you want it to be.&lt;/p&gt;
&lt;p&gt;The real problem with the change in perspective this brings is that there&#39;s no impetus to actually get up off the couch and ever do anything. Today is new year&#39;s day, you insist. Yes, well, so is tomorrow.&lt;/p&gt;
&lt;p&gt;No matter how many times you write resolutions, or &lt;a href=&quot;https://garden.travisbriggs.com/garden/blog/another-year-without-resolutions/&quot;&gt;swear&lt;/a&gt; &lt;a href=&quot;https://garden.travisbriggs.com/garden/blog/giving-up-on-resolutions/&quot;&gt;off&lt;/a&gt; &lt;a href=&quot;https://garden.travisbriggs.com/garden/blog/a-story-of-failure/&quot;&gt;writing&lt;/a&gt; them, at the end of the day, at the end of the blog post, at the end of the very sentence you&#39;re writing, you are stuck with yourself. Wherever you go, there you are. And in fact it is often observed that people will plan out actions, and derive enough pleasure from the planning and discussing the plans with others, that they never carry through or feel the need to carry through.&lt;/p&gt;
&lt;p&gt;It even happens that people plan vacations and get much more joy out of the anticipation of the vacation then they do out of the vacation itself. People are happy when they&#39;re looking forward to a vacation, but just as depressed and anxious as ever when they&#39;re on one.&lt;/p&gt;
&lt;p&gt;I&#39;ve actually considered this when writing about &lt;a href=&quot;https://garden.travisbriggs.com/garden/blog/getting-nothing-done//&quot;&gt;getting &amp;quot;nothing&amp;quot; done&lt;/a&gt;. Do I really want to get any of these things done? I mean, instinctively, I want to be a good husband to &lt;a href=&quot;https://garden.travisbriggs.com/garden/Abby/&quot;&gt;Abby&lt;/a&gt;, which was always shoehorned into my resolutions when I made them. But that comes so naturally and doesn&#39;t take any sustained effort. All the other things like making music, writing software in my free time, visiting &lt;a href=&quot;https://www.noisebridge.net/wiki/Noisebridge&quot;&gt;Noisebridge&lt;/a&gt;, tending this digital garden, etc -- do I really want to do those things, or is it enough for me to talk about doing them and tell people I want to do them. As much as I tell myself to &lt;a href=&quot;https://garden.travisbriggs.com/garden/blog/nike-the-shit-out-of-it//&quot;&gt;&amp;quot;just do it&amp;quot;&lt;/a&gt;, I&#39;m not sure &amp;quot;it&amp;quot; really wants to get done.&lt;/p&gt;
&lt;p&gt;Another way to put it is: if you want to do something, you do it. If you never do it, you never wanted it in the first place. Which is the TLDR on a &lt;a href=&quot;https://blog.travisbriggs.com/what-i-learned-by-generally-not-blogging-for-15-years-even-though-i-thought-i-wanted-to-108899a9eb96&quot;&gt;blog post&lt;/a&gt; from my old Medium blog which was titled &amp;quot;What I learned by generally not blogging for 15 years (even though I thought I wanted to)&amp;quot;. Good read, much recommend.&lt;/p&gt;
&lt;p&gt;Looking just at this page, I&#39;ve linked to 6 different blog posts from the past several years, and it would be easy to come to the conclusion that my &amp;quot;personal&amp;quot; blog was actually a journal chronicling the persistent existential dread of a serial procrastinator. I&#39;m not sure I could really convince you otherwise.&lt;/p&gt;
&lt;p&gt;So where does that leave us with regards to the new year, this new year, and new year&#39;s day? I honestly don&#39;t believe in &lt;a href=&quot;https://garden.travisbriggs.com/garden/philosophy/&quot;&gt;free will&lt;/a&gt; or any purpose to life, so I think it&#39;s okay to leave us as just a bunch of brains floating in space, tinkering as we might, without any real cause or consequence. I will do what I will do, I won&#39;t do what I won&#39;t, and in the end none of it matters so it&#39;s all okay.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title></title>
    <link href="https://garden.travisbriggs.com/"/>
    <updated>2023-01-01T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/</id>
    <content xml:lang="en" type="html">
&lt;section class=&quot;hero&quot;&gt;
  &lt;h1&gt;Digital Garden of Travis Briggs&lt;/h1&gt;
  &lt;p&gt;
    &lt;a class=&quot;hero-enter&quot; href=&quot;https://garden.travisbriggs.com/garden/&quot;&gt;Approach the garden&lt;/a&gt;&lt;br /&gt;
    &lt;a class=&quot;hero-what&quot; href=&quot;https://maggieappleton.com/garden-history&quot;&gt;What is a digital garden?&lt;/a&gt;
  &lt;/p&gt;
&lt;/section&gt;

&lt;section id=&quot;random-song&quot; class=&quot;home-widget&quot;&gt;
  &lt;div class=&quot;section-label&quot;&gt;A random song of mine&lt;/div&gt;
  &lt;button id=&quot;random-song-btn&quot; class=&quot;btn&quot; type=&quot;button&quot;&gt;
    &amp;#9654;&amp;nbsp;&amp;nbsp;&amp;nbsp; Play random song
  &lt;/button&gt;
  &lt;span class=&quot;widget-note&quot;&gt;from
    &lt;a href=&quot;https://songs.travisbriggs.com/&quot;&gt;songs.travisbriggs.com&lt;/a&gt; &amp;middot;
    2008 - today&lt;/span&gt;
  &lt;div id=&quot;random-song-now&quot; class=&quot;now-playing&quot; hidden=&quot;&quot;&gt;&lt;/div&gt;
  &lt;audio id=&quot;random-song-audio&quot; controls=&quot;&quot; hidden=&quot;&quot;&gt;&lt;/audio&gt;
&lt;/section&gt;

&lt;section class=&quot;home-widget&quot;&gt;
  &lt;div class=&quot;section-label&quot;&gt;Latest toot&lt;/div&gt;
  &lt;p id=&quot;latest-toot&quot; class=&quot;mastodon-line&quot;&gt;
    &lt;a href=&quot;https://sfba.social/@audiodude&quot;&gt;@audiodude@sfba.social&lt;/a&gt;
  &lt;/p&gt;
&lt;/section&gt;

&lt;section class=&quot;home-widget&quot;&gt;
  &lt;div class=&quot;section-label&quot;&gt;Recently tended&lt;/div&gt;
  &lt;ul class=&quot;home-recent&quot;&gt;
      
    &lt;li&gt;&lt;a href=&quot;https://garden.travisbriggs.com/garden/AI%20bubble/&quot;&gt;AI Bubble&lt;/a&gt;&lt;/li&gt;
        
    &lt;li&gt;&lt;a href=&quot;https://garden.travisbriggs.com/garden/zen/&quot;&gt;Zen&lt;/a&gt;&lt;/li&gt;
      
    &lt;li&gt;&lt;a href=&quot;https://garden.travisbriggs.com/garden/the-chain/&quot;&gt;The Chain&lt;/a&gt;&lt;/li&gt;
      
    &lt;li&gt;&lt;a href=&quot;https://garden.travisbriggs.com/garden/real-artists-ship/&quot;&gt;Real Artists Ship&lt;/a&gt;&lt;/li&gt;
      
    &lt;li&gt;&lt;a href=&quot;https://garden.travisbriggs.com/garden/no-one-cares-good/&quot;&gt;No one cares, and that&#39;s a good thing!&lt;/a&gt;&lt;/li&gt;
     
  &lt;/ul&gt;
&lt;/section&gt;

&lt;script src=&quot;https://garden.travisbriggs.com/assets/home.js&quot;&gt;&lt;/script&gt;
</content>
  </entry>
  <entry>
    <title>Digital gardening principles</title>
    <link href="https://garden.travisbriggs.com/garden/digital-gardening-principles/"/>
    <updated>2022-12-16T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/digital-gardening-principles/</id>
    <content xml:lang="en" type="html">&lt;p&gt;This is my attempt to distill and repeat what I consider to be the most important principles of digital gardening. These are taken mostly from the following sources:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://maggieappleton.com/garden-history&quot;&gt;Maggie Appleton - A Brief History &amp;amp; Ethos of the Digital Garden&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://joelhooks.com/digital-garden&quot;&gt;Joel Hooks - My blog is a digital garden, not a blog&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://notes.andymatuschak.org/About_these_notes?stackedNotes=z4SDCZQeRo4xFEQ8H4qrSqd68ucpgE6LU155C&quot;&gt;Andy Matuschak - Evergreen notes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.swyx.io/digital-garden-tos&quot;&gt;Shawn Wang - Digital Garden Terms of Service&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;From these and other sources, I&#39;ve figured out that a digital garden should have the following properties, and embody the following principles. I will expand each of these into its own garden node for further investigation.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://garden.travisbriggs.com/garden/dg-public/&quot;&gt;Digital gardens allow for learning in public&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://garden.travisbriggs.com/garden/dg-solo/&quot;&gt;Digital gardens don&#39;t need attention to thrive&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://garden.travisbriggs.com/garden/dg-evergreen/&quot;&gt;Digital garden posts are unfinished, or evergreen&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://garden.travisbriggs.com/garden/dg-status/&quot;&gt;Digital gardeners are upfront about a post&#39;s status&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://garden.travisbriggs.com/garden/dg-reverse/&quot;&gt;Digital gardens eschew reverse chronological sorting&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://garden.travisbriggs.com/garden/dg-feedback/&quot;&gt;Digital gardens allow and respond to feedback&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://garden.travisbriggs.com/garden/dg-new/&quot;&gt;Digital gardens aren&#39;t afraid of something new&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Note that all of these are phrases, statements even. I&#39;m trying to follow the principle of Evergreen Notes that &lt;a href=&quot;https://notes.andymatuschak.org/z4SDCZQeRo4xFEQ8H4qrSqd68ucpgE6LU155C?stackedNotes=z6bci25mVUBNFdVWSrQNKr6u7AZ1jFzfTVbMF&quot;&gt;Evergreen notes should be concept-oriented&lt;/a&gt;.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Digital gardeners are upfront about a post&#39;s status</title>
    <link href="https://garden.travisbriggs.com/garden/dg-status/"/>
    <updated>2022-12-16T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/dg-status/</id>
    <content xml:lang="en" type="html">&lt;p&gt;Shawn Wang lists &lt;a href=&quot;https://www.swyx.io/digital-garden-tos#2-epistemic-disclosure&quot;&gt;Epistemic Disclosure&lt;/a&gt; as one of the foundation principles of a digital garden, thus invoking the philosophical field of &lt;a href=&quot;https://en.wikipedia.org/wiki/Epistemology&quot;&gt;Epistemology&lt;/a&gt;. This study of the &amp;quot;theory of knowledge&amp;quot; leads us to understand how digital gardeners should responsibly disclose metadata about posts or nodes to readers.&lt;/p&gt;
&lt;p&gt;In this garden, I&#39;ve listed the &amp;quot;quality&amp;quot; and &amp;quot;importance&amp;quot; stauts of each node right on the node&#39;s page. The &amp;quot;quality&amp;quot; in my mind is a measure of how well developed the idea is. The importance, on the other hand, measures how much weight I give to the ideas presented. A &amp;quot;Low&amp;quot; importance post might be a passing aside, or a wrapped redirect to another resource. Meanwhile a &amp;quot;Top&amp;quot; imporance post is foundational to myself and the garden.&lt;/p&gt;
&lt;p&gt;Where do these scales of quality and importance come from, though? Well I am the primary maintainer of the &lt;a href=&quot;https://garden.travisbriggs.com/garden/wp-1.0/&quot;&gt;Wikipedia 1.0 Bot&lt;/a&gt; on &lt;a href=&quot;https://en.wikipedia.org/&quot;&gt;English Wikipedia&lt;/a&gt;. This bot takes quality and importance assessments that are added to articles by members of &amp;quot;WikiProjects&amp;quot; and aggregates them and reports their distributions. The basic idea is to take a chart that looks like this:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://garden.travisbriggs.com/assets/img/quality_importance.png&quot; alt=&quot;Chart of philosophy articles quality and importance&quot; /&gt;&lt;/p&gt;
&lt;p&gt;And move all the numbers to the top, based on how far they are to the left. So presumably, if you have an article that is &amp;quot;Top&amp;quot; importance, but it&#39;s only &amp;quot;Start&amp;quot; quality (5 articles in this example), you should invest more time in those than the articles that are &amp;quot;Low&amp;quot; importance and already &amp;quot;GA&amp;quot; quality.&lt;/p&gt;
&lt;p&gt;The full list of article qualities is:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;FA (Featured Article)&lt;/li&gt;
&lt;li&gt;GA (Good Article)&lt;/li&gt;
&lt;li&gt;B&lt;/li&gt;
&lt;li&gt;Start&lt;/li&gt;
&lt;li&gt;Stub&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;And the importances I&#39;m using are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Top&lt;/li&gt;
&lt;li&gt;High&lt;/li&gt;
&lt;li&gt;Mid&lt;/li&gt;
&lt;li&gt;Low&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  <entry>
    <title>Digital gardens don&#39;t need attention to thrive</title>
    <link href="https://garden.travisbriggs.com/garden/dg-solo/"/>
    <updated>2022-12-16T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/dg-solo/</id>
    <content xml:lang="en" type="html">&lt;p&gt;I think that everyone who publishes on the internet wants attention, but not too much attention. I&#39;ve heard it said that Twitter gives everyone a chance to be the &amp;quot;main character&amp;quot; for the day, though as &lt;a href=&quot;https://garden.travisbriggs.com/garden/blog/mastodon-is-not-twitter/&quot;&gt;I&#39;ve written&lt;/a&gt; it&#39;s not always a good thing when you are picked. I&#39;ve also heard that Elon Musk&#39;s recent acquisition of Twitter was his attempt to make &lt;em&gt;himself&lt;/em&gt; the main character &lt;em&gt;every day&lt;/em&gt;, but that&#39;s not particularly relevant to the current discussion.&lt;/p&gt;
&lt;p&gt;While I feel somewhat distrustful of people who say things like &amp;quot;I&#39;m only writing this for myself&amp;quot;, or &amp;quot;This whole website is just for me&amp;quot;, I appreciate the sentiment and it&#39;s definitely something I aspire to. I&#39;d like to exist independently of any need for &lt;a href=&quot;https://garden.travisbriggs.com/garden/no-one-cares-good/&quot;&gt;feedback&lt;/a&gt; or &lt;a href=&quot;https://garden.travisbriggs.com/garden/intrisic%20motivation/&quot;&gt;approval&lt;/a&gt;, though that&#39;s not really how the world works.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Digital gardens allow for learning in public</title>
    <link href="https://garden.travisbriggs.com/garden/dg-public/"/>
    <updated>2022-12-16T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/dg-public/</id>
    <content xml:lang="en" type="html">&lt;p&gt;The main reference article I&#39;ve been linking to is &lt;a href=&quot;https://www.swyx.io/learn-in-public/&quot;&gt;Shawn Wang&#39;s &amp;quot;Learn In Public&amp;quot;&lt;/a&gt;. I&#39;m hoping to be explosively productive in the amount of material I write and chronicle. I want to share every note and piece of feedback I receive as I build my personal &lt;a href=&quot;https://fortelabs.com/blog/basboverview/&quot;&gt;&amp;quot;Second Brain&amp;quot;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This sounds great in theory, but in practice it&#39;s a bit intimidating to put out your own personal opinions and understandings of a topic without knowing for certain that it&#39;s completely &amp;quot;settled&amp;quot;. What if I change my mind? What if I realize that my nascent thoughts on a topic were wildly naive and unsophisticated.&lt;/p&gt;
&lt;p&gt;There&#39;s some amount of fearlessness to be had with this one in order to do it properly.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Digital gardens aren&#39;t afraid of something new</title>
    <link href="https://garden.travisbriggs.com/garden/dg-new/"/>
    <updated>2022-12-16T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/dg-new/</id>
    <content xml:lang="en" type="html">&lt;p&gt;I&#39;m definitely a person who has a preference for the &amp;quot;new and shiny&amp;quot;. Out with the old, in with the new, I would agree. Sometimes this can be a bit of a liability, where I might pass over the &amp;quot;tried and true&amp;quot;. But I think with Digital Gardens, we need to be ready to embrace new ways of thinking, new technologies for generating and maintaing websites (and &lt;a href=&quot;https://garden.travisbriggs.com/garden/gemini/&quot;&gt;Gemsites!&lt;/a&gt;), etc. It could be that a &amp;quot;Digital Garden&amp;quot; is just a reaction to the concept of &amp;quot;Blogging&amp;quot; and isn&#39;t particularly noteworthy of itself. Or it could be that digital gardening embraces the new and noteworthy and builds on the latest ideas in the space to create both artifacts and ways of thinking that are truly &amp;quot;new&amp;quot;. I prefer the latter.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Digital garden posts are unfinished, or evergreen</title>
    <link href="https://garden.travisbriggs.com/garden/dg-evergreen/"/>
    <updated>2022-12-16T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/dg-evergreen/</id>
    <content xml:lang="en" type="html">&lt;p&gt;Even when I just now introduced a few friends of mine to my garden and the concept of digital gardening, one of my friends said &amp;quot;Oh so it&#39;s a throwback to old personal websites&amp;quot;. Well yes, if you&#39;ve read &lt;a href=&quot;https://stackingthebricks.com/how-blogs-broke-the-web/&quot;&gt;Amy Hoy&lt;/a&gt; then I guess you&#39;re right. But I think there&#39;s something at the heart of digital gardens that is more than just a reaction to the &amp;quot;blogosphere&amp;quot; and breaking free of reverse chronological posting.&lt;/p&gt;
&lt;p&gt;Digital Gardens allow notes on any topic to interlink and intertwine and be &amp;quot;evergreen&amp;quot;. That means that they are perennially updated in light of new information, changing viewpoints, world events, etc. A blog post gets written, it gets published, it&#39;s done. It might get a minor edit or two in the week following publication, but &lt;em&gt;that&#39;s it&lt;/em&gt;. A node in a digital garden can start off very small, and then suddenly bloom into a full treatment of the subject at hand overnight. Or it can gradually be added to and &amp;quot;tended&amp;quot; until it contains a weighty sum of information, viewpoint, and knowledge.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>More about blogging</title>
    <link href="https://garden.travisbriggs.com/garden/blog/more-about-blogging/"/>
    <updated>2022-12-12T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/blog/more-about-blogging/</id>
    <content xml:lang="en" type="html">&lt;p&gt;I never really blogged much when it was popular, in the 2000s. And I continue to not really blog much to this day, so not much has changed in that regard. But I&#39;ve always had this desire to blog. It&#39;s like my vague desire to use a &lt;a href=&quot;https://zettelkasten.de/posts/overview/&quot;&gt;Zettelkasten&lt;/a&gt;, even though I don&#39;t have much of anything to take notes about.&lt;/p&gt;
&lt;p&gt;Nowadays, I&#39;ve discovered the &lt;a href=&quot;https://garden.travisbriggs.com/garden/Gemini/&quot;&gt;Gemini protocol&lt;/a&gt; which claims to not be trying to replace Gopher or the Web, but seems to strike an interesting middle ground between them. It&#39;s kind of an improved Gopher with more modernized semantics.&lt;/p&gt;
&lt;p&gt;I actually have created one of the first 50 Gemini sites in existence, &lt;code&gt;gemini://gem.bestalbumsintheuniverse.com&lt;/code&gt;. This is the Gemini version of my &lt;a href=&quot;https://garden.travisbriggs.com/garden/best%20albums%20in%20the%20universe/&quot;&gt;best albums in the universe&lt;/a&gt; project, the goal of which is &lt;a href=&quot;https://tvtropes.org/pmwiki/pmwiki.php/Main/ExactlyWhatItSaysOnTheTin&quot;&gt;exactly what it says on the tin&lt;/a&gt;. I feel a bit of pride about this, that &amp;quot;hipster&amp;quot; feeling of I knew about it before it was cool. But there&#39;s also another feeling, that of getting to see what Gemini turns into eventually, to watch its evolution from near the beginning.&lt;/p&gt;
&lt;p&gt;All this leads back to blogging because a lot of the people who run Gemini spaces like to write blogs. Or really they like to write phlogs, which are Gopher Logs (blog being a Web Log). And some of them write Gemini logs (gemlogs) as well. It&#39;s a whole small universe of people giving status updates and the like, and it&#39;s pretty interesting to just do a random walk across some of the pages and see what you find.&lt;/p&gt;
&lt;p&gt;I want to contribute to this, of course, but as I&#39;ve lamented in my previous blogs about blogging, I just don&#39;t have that much to talk about on a weekly basis without it getting very personal and mundane.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Blogging, but this time with blogging</title>
    <link href="https://garden.travisbriggs.com/garden/blog/blogging-but-this-time-with-blogging/"/>
    <updated>2022-12-12T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/blog/blogging-but-this-time-with-blogging/</id>
    <content xml:lang="en" type="html">&lt;p&gt;Every time I get the feeling like I should blog something, I usually realize that it would do just as well to shout into &lt;a href=&quot;https://joinmastodon.org/&quot;&gt;Mastodon&lt;/a&gt; (&lt;a href=&quot;https://layer8.space/&quot;&gt;my masto instance&lt;/a&gt;). Like that sentence for example. Not so much that last one.&lt;/p&gt;
&lt;p&gt;Kind of in the vein of the &lt;a href=&quot;https://garden.travisbriggs.com/garden/blog/listening-to-music-while-doing-things/&quot;&gt;previous post&lt;/a&gt;, I feel like I want to maybe do some kind of blogging exercise where every time I stop typing, I take inspiration from whatever the current song lyric is to write the next line. (That last sentence could have been a self contained masto post).&lt;/p&gt;
&lt;p&gt;&lt;em&gt;I think I&#39;m getting carried away feeling sorry for myself&lt;/em&gt;. All of my blog posts seem to have this morbid kind of self-deprecation to them. And they&#39;re all. about. blogging. Every one of them. Like it makes me curious, what would a painting about painting look like? Is that a self-portrait? I know there are definitely plenty of songs that are about songs or about writing songs.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;My head&#39;s a balloon, inflating with the altitude&lt;/em&gt;. Is that how it works? Now that I think about it, it makes perfect sense. As the balloon rises, the air pressure drops, so it would inflate more. Interesting, when you think about song lyrics that you&#39;ve heard dozens of times but haven&#39;t given enough thought to.&lt;/p&gt;
&lt;p&gt;I know people have done this before with random books. Pick a random book off the shelf, flip to a random page, and use the first sentence you see as the first line of your composition, as a writing prompt. I&#39;ve heard of that exercise.&lt;/p&gt;
&lt;p&gt;I actually think I&#39;m a pretty good writer and that most of my writing skill goes to waste a good deal of the time. Like today at work I wrote a design doc, and I thought I wrote it pretty eloquently. But it was a fucking design doc. Like who cares? It&#39;s just technical documentation that will be out of date and forgotten for far more total time than it&#39;s recent and useful.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;The stale taste of recycled air&lt;/em&gt; has got me into a frenzy of superstition and longing. Yikes, tried to mash that one up a bit and it didn&#39;t come out quite as I&#39;d expect.&lt;/p&gt;
&lt;p&gt;Also if you think this post is leading somewhere, ha! Or maybe that&#39;s as good a time as any to simply end it.&lt;/p&gt;
&lt;p&gt;Okay wait this one: &lt;em&gt;I was waiting for a cross town train in the London Underground when it struck me&lt;/em&gt;...&lt;/p&gt;
&lt;p&gt;...that I&#39;ve been waiting blah blah blah. But is it coincidence that the first line makes it sounds like the guy got hit by a train? Is that just awkward writing, or a cleverly buried easter egg? Please please let me remember to ask Ben Gibbard that if I ever meet him. Or actually, if anyone reading this knows how to get in touch with him, could you ask him for me and get back to me?&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>WP 1.0 Project</title>
    <link href="https://garden.travisbriggs.com/garden/wp-1.0/"/>
    <updated>2022-12-01T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/wp-1.0/</id>
    <content xml:lang="en" type="html">&lt;p&gt;WP 1.0 is a project on Wikipedia that I have spent the last 5 years working on, with various amounts of effort at various times. It is written in &lt;a href=&quot;https://garden.travisbriggs.com/garden/Python/&quot;&gt;Python&lt;/a&gt;.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Javascript/Typescript</title>
    <link href="https://garden.travisbriggs.com/garden/javascript-typescript/"/>
    <updated>2022-12-01T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/javascript-typescript/</id>
    <content xml:lang="en" type="html">&lt;p&gt;Javascript is the most popular programming language in the world. It is the language used to write logic for web pages. Also, due to the V8 engine and Nodejs, Javascript can be used on the so-called &amp;quot;backend&amp;quot; as a server technology without a browser.&lt;/p&gt;
&lt;p&gt;Typescript is a superset of Javascript that adds support for the computer science concept of &amp;quot;types&amp;quot;. This means that instead of having a variable, and it being all loosey-goosey about what kind of data is in it:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;var x = &#39;foo&#39;
// Now it&#39;s a number!
x = 1
console.log(x + &#39;bar&#39;);
// prints &amp;quot;1bar&amp;quot;, oops I forgot I put that number in there
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Instead, you clearly define and declare what types of data go where. The coolest part of Typescript, in my opinion, is the fact that it is a &lt;em&gt;superset&lt;/em&gt; of Javascript. So all valid Javascript is valid Typescript. This allows you to transition to Typescript slowly, adding types here and there as you go, instead of having to convert a code project all at once. The downsides are that you have to use a &lt;em&gt;Typescript compiler&lt;/em&gt; to turn your code back into Javascript before you can do anything useful with it. Also, there&#39;s times where the types of certain data can be intentionally ambiguous, and there are firey hoops to jump through in those cases in order to get the compiler to &amp;quot;play nice&amp;quot;. Overall, though, Typescript is great and I would strongly recommend it to any team of more than 1 person.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Qwobl</title>
    <link href="https://garden.travisbriggs.com/garden/Qwobl/"/>
    <updated>2022-12-01T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/Qwobl/</id>
    <content xml:lang="en" type="html">&lt;p&gt;Qwobl was the smallest startup I ever worked for, and I&#39;ve worked for a lot of startups. It was only 5 people total, including me. The cool part of that was that there was a &lt;strong&gt;lot&lt;/strong&gt; of room to learn and experiment, with no one breathing down your neck. There was nothing that was &amp;quot;somebody else&#39;s responsiblity&amp;quot; or &amp;quot;someone else will take care of that&amp;quot;. If things were to get done, we had to push our comfort zones and learn how to do them ourselves. It was a formative experience for me to work there, and I made friendships that have lasted for years and to this day (&lt;a href=&quot;https://garden.travisbriggs.com/garden/Christian/&quot;&gt;Christian&lt;/a&gt;).&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>How to squash warnings in Python by elevating them to errors</title>
    <link href="https://garden.travisbriggs.com/garden/warnings-python/"/>
    <updated>2022-11-29T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/warnings-python/</id>
    <content xml:lang="en" type="html">&lt;p&gt;&lt;a href=&quot;https://garden.travisbriggs.com/garden/Python/&quot;&gt;Python&lt;/a&gt; has a great Exception handling system. It also has a lesser used but still important system of &amp;quot;warnings&amp;quot;, which are like Exceptions except they are intended when a &amp;quot;condition (normally) doesn’t warrant raising an exception and terminating the program&amp;quot;. They are used probably most familiarly as deprecation warnings, when you&#39;re using an import or module or method that has been replaced and shouldn&#39;t be used anymore.&lt;/p&gt;
&lt;p&gt;For the &lt;a href=&quot;https://garden.travisbriggs.com/garden/wp-1.0/&quot;&gt;WP 1.0 project&lt;/a&gt;, I have been increasingly annoyed that one or more of my tests in my test suite are emitting warnings from &lt;code&gt;pymysql&lt;/code&gt; about MySQL data truncation. Data truncation is when you try to store, say, a 10 character string in a column that can only hold 9 characters. MySQL will generally &amp;quot;lop off&amp;quot; the last character (truncate) and store the remaining nine. When it does this, it issues a warning (depending on how your MySQL/MariaDB server is set up), and pymysql echoes these warnings. Presumably this is helpful if you have a bug, you can go to your logs and see &amp;quot;Well we have 1000 instances of telephone numbers being &#39;truncated&#39;, maybe that&#39;s the problem!&amp;quot;. It doesn&#39;t stop the flow of the program or throw an exception, like stated before, it&#39;s just a warning.&lt;/p&gt;
&lt;p&gt;Anyways, something in my test was causing one of these truncation warnings. The problem is, the warning just got spit out to the terminal on stderr while all the tests were running, so it was really hard to tell where it was coming from. I had some idea which file it was based on the value that was being truncated, but that was it.&lt;/p&gt;
&lt;p&gt;I was vaguely familiar, or at least felt strongly, that there was a way to turn these warnings into proper exceptions, at least temporarily. That way, my program (even my test program) would get interrupted and I would see a stack trace telling me which line of code was being executed when the warning was emitted. Instead of a warning being emitted, in fact, the warning would be raised like a normal exception. Well I wasn&#39;t wrong, there&#39;s a few ways to do this.&lt;/p&gt;
&lt;p&gt;The &lt;a href=&quot;https://docs.python.org/3/library/warnings.html&quot;&gt;warnings module&lt;/a&gt; talks about the different classifications of warnings and some of the ways to &amp;quot;filter&amp;quot; them. What we&#39;re interested in is &lt;a href=&quot;https://docs.python.org/3/using/cmdline.html#cmdoption-W&quot;&gt;&amp;quot;error&amp;quot;&lt;/a&gt; (turn matching warnings into exceptions). One way of changing the filters is to use a filter string as a command line argument to Python with &lt;code&gt;python -W error&lt;/code&gt;, for example, which will match all warnings and turn them into errors. This command line argument is &lt;a href=&quot;https://docs.python.org/3/using/cmdline.html#cmdoption-W&quot;&gt;described here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Unfortunately, I couldn&#39;t pass the python binary the &lt;code&gt;-W&lt;/code&gt; flag, because I wasn&#39;t invoking it directly to run my test scripts. Instead, I was using the &lt;code&gt;nosetests&lt;/code&gt; wrapper script. So I needed something else.&lt;/p&gt;
&lt;p&gt;Luckily, I found &lt;a href=&quot;https://docs.python.org/3/using/cmdline.html#envvar-PYTHONWARNINGS&quot;&gt;the PYTHONWARNINGS&lt;/a&gt; environment variable. This let me pass the filter string &amp;quot;all the way down&amp;quot; to wherever the python interpreter was being invoked. At first, I tried:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;PYTHONWARNINGS=error nosetests
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This was, of course, a disaster, because my program immediately crashed with an exception about some import deprecation in some deep library I didn&#39;t even know I was using. So clearly I was going to have to be more specific with my filters. My warning looked like this:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;/home/tmoney/code/wp1/venv/lib/python3.9/site-packages/pymysql/cursors.py:329:
Warning: (1292, b&#39;Value truncated for `1234` something something...&#39;)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Eventually, with some trial and error, I landed on the following filter:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;PYTHONWARNINGS=&#39;error:(1292::pymysql.cursors&#39; nosetests
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This says: filter all warnings that start with &lt;code&gt;(1292&lt;/code&gt; and are raised from the module &lt;code&gt;pymysql.cursors&lt;/code&gt; and turn them into errors. The consecutive &#39;::&#39; is in there because I&#39;m using an empty string for the &amp;quot;category&amp;quot; classification. Seems like a somewhat magical incantation, but it worked!&lt;/p&gt;
&lt;p&gt;Once my warning was being raised as an exception, I could see the line that was causing it, and I realized the mistake in my SQL syntax that led to it. I fixed it, and no more warning! I&#39;m thinking about repeating this process with other warnings that have been &amp;quot;junking up&amp;quot; my test output, and I probably will.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>atheism</title>
    <link href="https://garden.travisbriggs.com/garden/atheism/"/>
    <updated>2022-11-26T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/atheism/</id>
    <content xml:lang="en" type="html">&lt;p&gt;I am an atheist. I firmly believe that no gods exist.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Fiverr</title>
    <link href="https://garden.travisbriggs.com/garden/Fiverr/"/>
    <updated>2022-11-26T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/Fiverr/</id>
    <content xml:lang="en" type="html">&lt;p&gt;&lt;a href=&quot;https://fiverr.com/&quot;&gt;https://fiverr.com&lt;/a&gt;&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>DistroKid</title>
    <link href="https://garden.travisbriggs.com/garden/DistroKid/"/>
    <updated>2022-11-26T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/DistroKid/</id>
    <content xml:lang="en" type="html">&lt;p&gt;&lt;a href=&quot;https://distrokid.com/&quot;&gt;https://distrokid.com&lt;/a&gt;&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Mastodon is not Twitter</title>
    <link href="https://garden.travisbriggs.com/garden/blog/mastodon-is-not-twitter/"/>
    <updated>2022-11-17T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/blog/mastodon-is-not-twitter/</id>
    <content xml:lang="en" type="html">&lt;p&gt;Mastodon is not Twitter. It doesn&#39;t seem like it will ever be, it&#39;s fundamentally different. Although the size of the user base of Mastodon instances has grown 3x as part of the greatest Twitter exodus to date, Mastodon will never be Twitter.&lt;/p&gt;
&lt;p&gt;A lot of people are joining Mastodon as a &amp;quot;Twitter replacement&amp;quot;. They&#39;ve (understandably) lost faith in the direction of the bird platform and are looking for an alternative. They&#39;re going to be disappointed, honestly. I feel like people in this category are trying to break their Heroin addiction by turning to Ibuprofen. It&#39;s not going to work. Mastodon is (intentionally) not designed for a frenetic, addicting, free-for-all injection of news, shitposts, memes, celebrity gossip, etc. It just isn&#39;t set up to work that way. Not that toots on those topics don&#39;t exist in the fediverse. But Mastodon doesn&#39;t intentionally push the most trending, most controversial, most nonsensical &lt;strong&gt;bullshit&lt;/strong&gt; directly into your face and force you to interact with it.&lt;/p&gt;
&lt;p&gt;For people that actual have legitimate friends and relationships on Twitter, that &lt;em&gt;is&lt;/em&gt; something that can be replicated on Mastodon. If you tweet something, and a known group of friends and acquaintances generally interact with it, then welcome to the Mastodon experience really. But if you just fire into the void on Twitter, and sometimes one or two random people who you barely remember having followed you respond with something vapid, forget about it.&lt;/p&gt;
&lt;p&gt;Twitter is something that the people at the top create. The major celebrity accounts, the news organizations, the politicians: Twitter is theirs. In most cases, Twitter is a consumption medium, where you&#39;re technically allowed to comment. Mastodon is of course the opposite. It&#39;s bottom up. Toots are written and spread amongst close-knit communities and friend groups.&lt;/p&gt;
&lt;p&gt;This takes us of course to the &amp;quot;viral tweet&amp;quot;. Sometimes, normal people like you win the Twitter lottery and their tweets get tens if not hundreds of thousands of likes. This perpetrates the myth that anyone can &amp;quot;go viral&amp;quot; if they just keep tweeting. And in the replies to those tweets you can find a random sampling of other normal people. This is, actually, kind of nice. You get a diverse set of viewpoints and opinions on some common issue or viewpoint.&lt;/p&gt;
&lt;p&gt;Viral tweets don&#39;t happen on Mastodon, at least not in the same way. You will never go viral on Mastodon. But the truth of it is, you were never going to go viral on Twitter either. It&#39;s all a mirage, a sleight of hand perpetrated by the birdsite to keep us coming back for more.&lt;/p&gt;
&lt;p&gt;Have you seen what happens to people when they go viral, anyway? Days of their phone and computer notifications blowing up, all possible real communication buried in the deluge. If your viral post is political, you might even end up getting doxxed, harassed at work, etc.&lt;/p&gt;
&lt;p&gt;I know I&#39;m not the first person to say that Mastodon will never be Twitter. Luckily, I believe that it wouldn&#39;t be Twitter even if all the Twitter exodus folks tried with all their might to make it so. For people who are disappointed in this conclusion, I have to honestly ask: do you really need info-garbage shoved in your face 24/7? Maybe you don&#39;t need any replacement for Twitter. Maybe you can quit cold turkey.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Gemdown</title>
    <link href="https://garden.travisbriggs.com/garden/gemdown/"/>
    <updated>2022-08-26T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/gemdown/</id>
    <content xml:lang="en" type="html">&lt;p&gt;A Javascript library for rendering Markdown files in the Gemini .gmi format.&lt;/p&gt;
&lt;p&gt;See it on &lt;a href=&quot;https://github.com/audiodude/gemdown&quot;&gt;Github&lt;/a&gt; or &lt;a href=&quot;https://www.npmjs.com/package/gemdown&quot;&gt;NPM&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Overview&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://geminiprotocol.net/&quot;&gt;Gemini&lt;/a&gt; is a recent text-based internet protocol that aims to be more robust than Gopher but more lightweight than the web, and doesn&#39;t seek to replace either. You need a special &lt;a href=&quot;https://github.com/kr1sp1n/awesome-gemini#clients&quot;&gt;Gemini client&lt;/a&gt; to connect to &amp;quot;Gemini capsules&amp;quot; in &amp;quot;Gemspace&amp;quot; (such as &lt;code&gt;gemini://geminiprotocol.net/&lt;/code&gt;).&lt;/p&gt;
&lt;p&gt;You can read more about Gemini &lt;a href=&quot;https://garden.travisbriggs.com/garden/gemini/&quot;&gt;on this digital garden&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Gemini capsules are authored using &amp;quot;Gemtext&amp;quot;, which you can &lt;a href=&quot;https://geminiprotocol.net/docs/cheatsheet.gmi&quot;&gt;read the description of&lt;/a&gt;. For a list of many Gemini related projects and sites, see &lt;a href=&quot;https://github.com/kr1sp1n/awesome-gemini&quot;&gt;Awesome Gemini&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;According to &lt;a href=&quot;https://en.wikipedia.org/wiki/Markdown&quot;&gt;Wikipedia&lt;/a&gt;, &lt;a href=&quot;https://daringfireball.net/projects/markdown/&quot;&gt;Markdown&lt;/a&gt; is &amp;quot;a lightweight markup language for creating formatted text using a plain-text editor&amp;quot;. Markdown is commonly used in &lt;a href=&quot;https://www.cloudflare.com/learning/performance/static-site-generator/&quot;&gt;Static Site Generators&lt;/a&gt; to store the source code for pages such as blog posts without making the author write full HTML markup.&lt;/p&gt;
&lt;p&gt;Gemdown, then, is a library that takes Markdown input and outputs Gemtext. It is designed to be used in conjunction with a static site generator in order to create a Gemini mirror of an HTTP website (HTTP/Gemini mirrors of the same content is common amongst the Gemini community).&lt;/p&gt;
&lt;h2&gt;Relation to other libraries&lt;/h2&gt;
&lt;p&gt;The above is copied directly from the &lt;a href=&quot;http://readme.md/&quot;&gt;README.md&lt;/a&gt; of gemdown on &lt;a href=&quot;https://github.com/audiodude/gemdown&quot;&gt;Github&lt;/a&gt;. I should admit that the library was heavily inspired by the Python library &lt;a href=&quot;https://github.com/makew0rld/md2gemini&quot;&gt;md2gemini&lt;/a&gt;, which actually got archived around the time that I was developing gemdown. I posted on Mastodon to thank the author for the inspiration, and he replied back, which was nice.&lt;/p&gt;
&lt;p&gt;The gemdown library also uses &lt;a href=&quot;https://github.com/markedjs/marked&quot;&gt;marked&lt;/a&gt; as the main way of parsing Markdown. The marked library is written in &lt;a href=&quot;https://garden.travisbriggs.com/garden/javascript-typescript/&quot;&gt;Javascript (actually Typescript I think)&lt;/a&gt; and is extremely excellent. It is &lt;a href=&quot;https://marked.js.org/using_pro&quot;&gt;highly extensible&lt;/a&gt; which is what allowed me to create custom rules that output gemtext.&lt;/p&gt;
&lt;p&gt;I created gemdown as a ESM module since marked is more easily imported that way.&lt;/p&gt;
&lt;h2&gt;What&#39;s next?&lt;/h2&gt;
&lt;p&gt;Given that I&#39;m currently generating a Gemini version of this digital garden, and gemdown has all the features I need to do that, I might consider marking gemdown as &amp;quot;done&amp;quot; for now and releasing version &lt;a href=&quot;https://semver.org/&quot;&gt;1.0.0&lt;/a&gt;. Of course, I&#39;m not going to do that today since I already release a version today and I&#39;d like to have more time for the library to &amp;quot;cook&amp;quot;.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Pandemic Weary</title>
    <link href="https://garden.travisbriggs.com/garden/blog/pandemic-weary/"/>
    <updated>2021-11-29T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/blog/pandemic-weary/</id>
    <content xml:lang="en" type="html">&lt;p&gt;I&#39;m not sure if I&#39;m actually depressed. I&#39;ve been clinically depressed in the past and this doesn&#39;t feel quite exactly like that. I may just be &amp;quot;pandemic weary&amp;quot;.&lt;/p&gt;
&lt;p&gt;I&#39;m ricocheting back and forth between dread at being logged in to work, to extreme boredom when I&#39;m not. I recall a time, once, when maybe I had interests and activities to look forward to pursuing. I even remember what they were, as the ghosts of these projects still exist on my computer or in my notes. A lot of the time I just feel tired, mentally mostly. It doesn&#39;t feel like it&#39;s worth it to do anything, even as I struggle with a lack of anything to do.&lt;/p&gt;
&lt;p&gt;I&#39;ll sit down at my computer, which is full of promise. I&#39;ll have some vague idea that I&#39;ll find something entertaining there. Or something informative. Or some hobby to dabble in. But less than 5 minutes after sitting down and checking my email once again (still nothing but ads), I realize that it&#39;s an empty shell. The computer has nothing to offer me, because nothing external can ease the internal angst I&#39;m feeling.&lt;/p&gt;
&lt;p&gt;I marvel at my wife&#39;s ability to click another YouTube video. Usually after managing to watch a YouTube video, the last thing I&#39;d want to do is sit through another. In my imagination, she&#39;s just going through the motions, lost as I am, eyes glazed over as the video plays on her screen. I might not be too far from the truth.&lt;/p&gt;
&lt;p&gt;What is to be done with these feelings? I think the first thing is to document them, which I&#39;m attempting to do here. Unfortunately, that&#39;s as far as I&#39;ve gotten and I have no idea what the second step is.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Read before you write</title>
    <link href="https://garden.travisbriggs.com/garden/blog/read-before-you-write/"/>
    <updated>2021-01-23T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/blog/read-before-you-write/</id>
    <content xml:lang="en" type="html">&lt;p&gt;I&#39;ve read Stephen King&#39;s book &lt;em&gt;On Writing&lt;/em&gt;, and it&#39;s pretty interesting. I think you could almost boil King&#39;s advice down to a Nike-esque &amp;quot;just do it&amp;quot;, but there&#39;s one nuance to what he suggests that definitely sticks with me. That to be a writer, you have to be a reader.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;If you don’t have time to read, you don’t have the time (or the tools) to write. Simple as that.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Stephen King&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;p&gt;I certainly &amp;quot;have time&amp;quot; to read. But I also don&#39;t invest much time at all in it. I don&#39;t choose reading as a preferred activity. In fact, it took me almost two years to finish James S. A. Corey&#39;s &lt;em&gt;Leviathan Wakes&lt;/em&gt; (book one of &lt;em&gt;The Expanse&lt;/em&gt; novels). Most of that time was spent, of course, not reading. So according to King&#39;s logic, I can&#39;t be a writer.&lt;/p&gt;
&lt;p&gt;I also think this extends to to other media. I write on this blog endlessly about my aspirations to write and produce original music. But do I spend enough time listening to new and original music (reading)? I certainly listen to plenty of music throughout the week, but most of it is stuff that I&#39;ve heard before, put on in the background to help me get through a coding session.&lt;/p&gt;
&lt;p&gt;I&#39;m not sure I can, by force of will, make myself into someone who critically listens to tons and tons of music. It certainly seems like, when you read the biographies of most successful musicians, they are steeped heavily in the music of their times, the times before, and perhaps their &amp;quot;scene&amp;quot;.&lt;/p&gt;
&lt;p&gt;It seems similar to the observation that the most intelligent among us are generally the most &amp;quot;intellectually curious&amp;quot;. But you can&#39;t really force the latter in order to make inroads on the former, can you?&lt;/p&gt;
&lt;p&gt;Or maybe all of this is just a big excuse to not write music, or write blog posts, or write anything. Maybe I want an &amp;quot;out&amp;quot; so that I don&#39;t have to be creative, so that I don&#39;t constantly feel like I&#39;m failing at my creative calling.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Another Year Without Resolutions</title>
    <link href="https://garden.travisbriggs.com/garden/blog/another-year-without-resolutions/"/>
    <updated>2021-01-01T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/blog/another-year-without-resolutions/</id>
    <content xml:lang="en" type="html">&lt;p&gt;I wrote &lt;a href=&quot;https://garden.travisbriggs.com/garden/blog/giving-up-on-resolutions/&quot;&gt;last year&lt;/a&gt; about how I was planning on giving up on New Year&#39;s resolutions. Well I did. And nothing really changed one way or another. In that post I wrote, &amp;quot;Today is New Year&#39;s Day&amp;quot;, which is one way of looking at it. The apparent corollary of that is that &amp;quot;New Year&#39;s Day doesn&#39;t exist&amp;quot;, which is the essential position I took last year.&lt;/p&gt;
&lt;p&gt;I&#39;m only going to acknowledge in passing the difficulties of 2020. It was a tough year for everybody. The idea that things are just going to get better overnight when the calendar changes is magical thinking at best. Yet people want to have hope, because the opposite is likely despair.&lt;/p&gt;
&lt;p&gt;At some point in about August of 2020 I decided to start taking music lessons, for mixing and mastering and Ableton Live production. The idea is that I will be learning how to do these things for my own music, so that I can release professional sounding versions of my songs (not demos or anything on Soundcloud) without breaking the bank to pay someone to do these things for me.&lt;/p&gt;
&lt;p&gt;If I were to have a New Year&#39;s resolution, a secret one, this year, it would be to finish my album and get it out there. But it has nothing to do with the calendar changing, it&#39;s just something that I want to do anyways.&lt;/p&gt;
&lt;p&gt;And there are other things I want to do anyways, like be a good husband to Abby, generally get things done at work and be a good co-worker, and find things to fill my time in general so that I&#39;m not bored and restless. But these are continuous goals, not something that I wasn&#39;t doing yesterday and that I&#39;m suddenly going to start doing today. These are things I continuously strive for.&lt;/p&gt;
&lt;p&gt;Happy New Year&#39;s everyone! Whether you believe in resolutions or not, I hope that you have a year filled with meaningful relationships and accomplishing your goals.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>The Unattainable and the Attainable</title>
    <link href="https://garden.travisbriggs.com/garden/blog/the-unattainable-and-the-attainable/"/>
    <updated>2020-09-08T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/blog/the-unattainable-and-the-attainable/</id>
    <content xml:lang="en" type="html">&lt;p&gt;Some bands/songs/albums seem unattainable. Like, I could never make something that good no matter what. Weezer&#39;s &lt;em&gt;Blue Album&lt;/em&gt; comes immediately to mind. Not to mention the elite pantheon of something like &lt;em&gt;The Dark Side Of The Moon&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;But other albums, some of my favorites, I sometimes think &amp;quot;Yeah, I could do that&amp;quot;. I&#39;m talking Green Day &lt;em&gt;Insomniac&lt;/em&gt; or Fall Out Boy &lt;em&gt;From Under The Cork Tree&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;The latter was produced by &lt;a href=&quot;https://en.wikipedia.org/wiki/Neal_Avron&quot;&gt;Neal Avron&lt;/a&gt; who co-produced Everclear&#39;s &lt;em&gt;So Much For The Afterglow&lt;/em&gt; which remains one of the &lt;a href=&quot;https://garden.travisbriggs.com/garden/best%20albums%20in%20the%20universe/&quot;&gt;best albums in the universe&lt;/a&gt;. He also produced some New Found Glory albums, a Weezer album, and &lt;em&gt;Blurryface&lt;/em&gt; by Twenty One Pilots, the latter of which I love for its eclectic style (it has ukulele prominently on several songs, despite the main hits being more like hip hop songs). I think I have a new producer crush.&lt;/p&gt;
&lt;p&gt;I think to myself - if I had the money, the producer, the studio and.....hmmm....the bandmates probably - I could make a record like this.&lt;/p&gt;
&lt;p&gt;So the real first thing I&#39;m missing is the band, to be realistic. I would definitely need a drummer. Probably need a bassist too, which would put me in &amp;quot;punk rock trio&amp;quot; territory. But I&#39;m not a good enough guitarist to carry everything myself, so we would need either a lead guitarist or a keyboard player to round things out.&lt;/p&gt;
&lt;p&gt;That&#39;s a lot of people to pay in a world where musicians make on average less and less each year.&lt;/p&gt;
&lt;p&gt;Maybe the question isn&#39;t &amp;quot;Could I make this record if I had all the resources in the world?&amp;quot; but &amp;quot;Could I &lt;strong&gt;write&lt;/strong&gt; this record in my recording studio/kitchen today?&amp;quot; I think that&#39;s a more salient question to ask. I may not be able to play any drum parts, most bass lines, and barely any lead guitar parts. But could I &amp;quot;fake it &#39;till I make it&amp;quot; with what I have, and at least write the songs that would be on &lt;em&gt;Insomniac 2&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;One idea I have is that for my punk numbers, I need to record multiple guitars. Even if they&#39;re playing the same chords, I could play the chords up on the neck a bit, with a different rhythm, with a different guitar timbre and different overdrive effects etc. Just to give some variation to the tunes. I think this would help a lot.&lt;/p&gt;
&lt;p&gt;Another idea is that I should embrace my electronic music production/chiptune skills, and try to make a record, like &lt;em&gt;Blurryface&lt;/em&gt;, which works despite being ridiculously eclectic. So far I&#39;ve added lots of shiny synths to punk rock tracks and called it my &amp;quot;signature sound&amp;quot;. But I bet I can go past that.&lt;/p&gt;
&lt;p&gt;Also I will say it here to immortalize it for all time. It&#39;s not New Found Glory&#39;s &amp;quot;lyrics&amp;quot; per se that I don&#39;t like about them. It&#39;s not their &amp;quot;melodies&amp;quot; either really, those are fine. It&#39;s more of the lack of prosody. There&#39;s no vocal hooks, lines that set each other up, that work like a poem, lyrically, unfolding and revealing a catchy whole. It just sounds like a bunch of rhythmic whining. But I love the music, always have.&lt;/p&gt;
&lt;p&gt;Which makes me think, I haven&#39;t always given much credit to lyricism in music. I know, intellectually, that most people can think of only the words to a song, sometimes the rhythm, sometimes the melody. People think of lyrics first. Yet I&#39;ve always thought lyrics aren&#39;t that important and I&#39;ve let it show in my songwriting. I need to reverse that thinking, and put big, shiny, lyrical hooks front and center in the next songs that I write.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Not Quite Writer&#39;s Block</title>
    <link href="https://garden.travisbriggs.com/garden/blog/not-quite-writers-block/"/>
    <updated>2020-08-21T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/blog/not-quite-writers-block/</id>
    <content xml:lang="en" type="html">&lt;p&gt;I fully believe I will need to write hundreds of songs in order to come up with my next great release. I mentioned as much at the end of my &lt;a href=&quot;https://garden.travisbriggs.com/garden/blog/latest-and-not-so-greatest/&quot;&gt;last post&lt;/a&gt;. I also believe that there are no &amp;quot;shortcuts&amp;quot; to this process, that I can&#39;t write ten songs and get lucky and two of them are great. I guess that&#39;s possible, but that&#39;s not really what the process represents.&lt;/p&gt;
&lt;p&gt;It wouldn&#39;t be entirely fair to say I have writer&#39;s block. Like I &lt;a href=&quot;https://garden.travisbriggs.com/garden/blog/something-terrible/&quot;&gt;mentioned&lt;/a&gt; in another recent post, when I set out to just write whatever comes to mind and free myself from &amp;quot;editor&#39;s mind&amp;quot;, I can produce plenty of interesting sounds and song structures. I&#39;m not struggling to get started, or to put notes &amp;quot;down on paper&amp;quot;. I don&#39;t think I&#39;m stuck in the &lt;a href=&quot;https://www.edmprod.com/how-to-avoid-the-8-bar-loop-trap/&quot;&gt;8 bar loop trap&lt;/a&gt;. I know how to finish songs or at least when a demo version is &amp;quot;done enough&amp;quot;.&lt;/p&gt;
&lt;p&gt;I can play a few instruments and sing well enough, I know how to use my DAW pretty well, certainly well enough that it doesn&#39;t actively impede my progress.&lt;/p&gt;
&lt;p&gt;I&#39;m not married to any specific genre, though I feel more at ease creating guitar-driven rock songs than any EDM pieces. But it&#39;s not a matter of getting sick of the genre I&#39;m writing in, or feeling like I have no new ideas in that space. The alternate is also true: I don&#39;t feel necessarily compelled to create some breakthrough new sound that no one&#39;s ever heard before.&lt;/p&gt;
&lt;p&gt;I feel like what I&#39;m lacking is focus. I don&#39;t have anything to focus my songwriting/music production ability. No prism to shine the light through. Sure, I&#39;d love to write a 10-12 track album that&#39;s coherent and well laid out. My favorite thing to listen to is &lt;a href=&quot;https://garden.travisbriggs.com/garden/best%20albums%20in%20the%20universe/&quot;&gt;albums&lt;/a&gt;. But something like that seems so distant and difficult that it&#39;s hard to motivate myself to pursue it.&lt;/p&gt;
&lt;p&gt;When I finish a song, I publish it on my &lt;a href=&quot;https://songs.travisbriggs.com/&quot;&gt;song demos website&lt;/a&gt; and toot about it on Mastodon (sometimes I also tweet it). There&#39;s no real satisfaction or gratification other than just saying &amp;quot;yes, I made a song today&amp;quot;. I know of a couple of people that sometimes listen to songs I put out there, but usually they don&#39;t give me any direct feedback or encouragement.&lt;/p&gt;
&lt;p&gt;It feels like every new song just gets thrown on the pile and forgotten as soon as it&#39;s rendered. Then maybe I decide to put out a release, like the &lt;a href=&quot;https://dangerthirdrail.com/#radio-machine&quot;&gt;Radio Machine EP&lt;/a&gt; and I go digging through this pile to try to find something salvageable.&lt;/p&gt;
&lt;p&gt;I know I can&#39;t depend on external encouragement or engagement to drive my songwriting. I understand, at least intellectually, that the drive to write songs has to come completely from me. I need to want to write these songs, and want it badly enough that I can overcome creative and technical obstacles. I need to be excited for my own reasons.&lt;/p&gt;
&lt;p&gt;And right now, frankly, I&#39;m not.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Something Terrible</title>
    <link href="https://garden.travisbriggs.com/garden/blog/something-terrible/"/>
    <updated>2020-08-06T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/blog/something-terrible/</id>
    <content xml:lang="en" type="html">&lt;p&gt;I&#39;m tutoring two separate students in Ableton Live and Digital Music Production now. It&#39;s very rewarding to talk through all the things I&#39;ve learned in my two decades (!) of making music digitally, and especially to see their eyes light up (over video chat) when something that I&#39;m explaining finally clicks.&lt;/p&gt;
&lt;p&gt;One of my students was having trouble with writer&#39;s block of sorts, so I gave him what I called the Make Something Terrible Challenge. I came up with it on the spot, so the details were scant, but it basically amounted to &amp;quot;Give yourself permission to create, and actively attempt to create, something truly terrible&amp;quot;.&lt;/p&gt;
&lt;p&gt;I think this is actually pretty common advice for people experiencing writer&#39;s block, at least the first part. Don&#39;t just &amp;quot;write anything&amp;quot;, give yourself permission to create something truly terrible. But I think I cranked up the intensity when I started talking about &lt;em&gt;actively&lt;/em&gt; creating terribleness.&lt;/p&gt;
&lt;p&gt;Now of course, I could run fingernails on a chalkboard and point a microphone at it, or mumble incoherently into a microphone for 12 minutes, or all sorts of other things that barely constitute music. But I think the spirit of the challenge is to work in the medium or genre that you&#39;re already working in.&lt;/p&gt;
&lt;p&gt;I told the student that I would try it too, to reassure him. I tried it tonight and I&#39;m here to report on the results.&lt;/p&gt;
&lt;p&gt;Firstly, I won&#39;t make you listen to what I came up with, mostly because I don&#39;t want this blog post just to be a vehicle for pushing some demo music that I spent 40 minutes on.&lt;/p&gt;
&lt;p&gt;When I started creating the electronic music track for my #MSTC I thought I was winning. &amp;quot;This is bad!&amp;quot; I thought, &amp;quot;This really sucks!&amp;quot; I was doing well, at least at first.&lt;/p&gt;
&lt;p&gt;But as I tweaked a knob here and added an effect there, purely by habit, I started to lose the thread. I realized about 30 minutes in that I had created something that sounded &lt;em&gt;shockingly similar to my non-terribly intended tracks&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;This is an existential crisis, you see. Either I&#39;m unable to give myself permission to make terrible music, or all my music is actually terrible.&lt;/p&gt;
&lt;p&gt;Of course, it worked perfectly as a way to get out of writer&#39;s block. I didn&#39;t spend any time pondering what I should make, because &amp;quot;the first thing that pops into my head&amp;quot; was bound to be Something Terrible™. I breezed right past the point where I might normally say, &amp;quot;This sucks, I&#39;m quitting-dont-save&amp;quot;, because of course, I was making Terribleness. And I wound up in an uncanny valley of not-so-terrible, purely by accident.&lt;/p&gt;
&lt;p&gt;The exercise raised two questions in me:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Could I actually make something terrible if I tried harder? (Inspiration to try again)&lt;/li&gt;
&lt;li&gt;What if all those times I had rage quit the music process, I had hung on a bit longer?&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;I&#39;ll certainly be pondering this the next time I fire up Live.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Q Poker: in progress</title>
    <link href="https://garden.travisbriggs.com/garden/blog/q-poker-in-progress/"/>
    <updated>2020-08-02T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/blog/q-poker-in-progress/</id>
    <content xml:lang="en" type="html">&lt;p&gt;When I wrote &lt;a href=&quot;https://garden.travisbriggs.com/garden/blog/making-a-computer-game/&quot;&gt;that post&lt;/a&gt; about making a computer game, I seem to have left out one of the major projects I&#39;ve been working on for the past year or so, which is Q Poker.&lt;/p&gt;
&lt;p&gt;Q Poker is envisioned as an online poker site, with play money (coins), that hosts games other than Texas Hold&#39;em. The first game I&#39;ve been implementing is &lt;a href=&quot;https://en.wikipedia.org/wiki/Razz_(poker)&quot;&gt;Razz&lt;/a&gt; (7 card stud lowball) and you can see some of the in progress results in this screenshot:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/DYO6M0ol.png&quot; alt=&quot;Screenshot of online poker game&quot; /&gt;&lt;/p&gt;
&lt;p&gt;So far, the things I&#39;ve got working are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Backend game logic, in Python, where you can start and finish Hands (of Razz).
-- Includes check/bet/raise/fold logic for all players.&lt;/li&gt;
&lt;li&gt;Logic in Python for a &amp;quot;Table&amp;quot; which is where the hands get played out.&lt;/li&gt;
&lt;li&gt;Asynchronous logic in Python for sending game updates to the client, when things of interest happen. For example, the web client doesn&#39;t have to &amp;quot;poll&amp;quot; the game state, it receives &lt;code&gt;socketio&lt;/code&gt; events when someone performs an action.&lt;/li&gt;
&lt;li&gt;ReactJS frontend app which responds to and displays the Table state changes from the backend.&lt;/li&gt;
&lt;li&gt;Frontend allows users to take actions, communicates with backend.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Things I still need to work on include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Proper registration system with emailing, password reset, etc.&lt;/li&gt;
&lt;li&gt;Proper accounting of User bankrolls, aka debits when sitting down at a table and credits when standing up. (This kind of scares the crap out of me but at least it&#39;s not real money!)&lt;/li&gt;
&lt;li&gt;Timer for player actions.&lt;/li&gt;
&lt;li&gt;Disconnect handling. User sits out N hands, then gets kicked from the table (for what value of N?)&lt;/li&gt;
&lt;li&gt;Ability to create (private?) tables and invite friends to them&lt;/li&gt;
&lt;li&gt;Landing page&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;With all that in place, I think I could actually maybe go to an open beta and see if anyone wants to play. Actually what I was really thinking was that I could program some kind of bots that players could play against. I&#39;ve got bots now, but they just make a random action out of the available options which is really frustrating and not a good experience.&lt;/p&gt;
&lt;p&gt;I&#39;ve studied some of the techniques of the &lt;a href=&quot;https://www.pokernews.com/news/2019/07/pluribus-first-ai-to-beat-humans-in-multiplayer-no-limit-34910.htm&quot;&gt;Pluribus poker bot&lt;/a&gt; that came out this time last year. I even paid for access to the paper they published. Sadly, like many results in science nowadays, it doesn&#39;t seem like the results are fully reproducible just from what&#39;s in the paper, but maybe I&#39;m just too dumb to understand it (fully possible!).&lt;/p&gt;
&lt;p&gt;I&#39;ve actually got a basic implementation of counterfactual regret minimization (CFR), the algorithm used by Pluribus, implemented for toy game theory examples like &lt;a href=&quot;https://en.wikipedia.org/wiki/Kuhn_poker&quot;&gt;Kuhn Poker&lt;/a&gt;. I&#39;m having a hard time generalizing it to Razz though.&lt;/p&gt;
&lt;p&gt;If I could get it working, I think it might be fun for players to start a table with 1 or 2 friends and 1 or 2 bots. The point is that there is literally NOWHERE to play Razz online (and in general nowhere to play it live either, even before COVID), so there must be at least some pent up demand for something like this.&lt;/p&gt;
&lt;p&gt;If things go well with Razz, I&#39;d like to implement other &amp;quot;mixed&amp;quot; games, like Omaha 8, Pineapple/Crazy Pineapple, Big O, and maybe some of the weirder games we&#39;ve played in the Reno Atlantis mixed game, like Drawmaha.&lt;/p&gt;
&lt;p&gt;This isn&#39;t something that I&#39;ve started and shelved. I&#39;m actively working on it. In fact, I just spent the past week implementing Table/Hand persistence for the backend, so that it can load a table when a user takes an action, then persist the changes to the table.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Making a computer game</title>
    <link href="https://garden.travisbriggs.com/garden/blog/making-a-computer-game/"/>
    <updated>2020-07-20T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/blog/making-a-computer-game/</id>
    <content xml:lang="en" type="html">&lt;p&gt;I&#39;ve always wanted to program a computer game. I can program pretty well, so it can&#39;t be all that hard right? I know that many people pursue gamedev the way I pursue music production: in fits and starts, as a hobby, never particularly successfully. Since I already have a pursuit like that, why would I want to add gamedev to the list? Am I a masochist?&lt;/p&gt;
&lt;p&gt;I&#39;ve actually used pygame successfully on a few occasions. One of them was just learning game dev, I made a game where you caught a dot with a paddle. I called it Butterfly Catcher and it&#39;s &lt;a href=&quot;https://github.com/audiodude/Butterfly-Catcher&quot;&gt;still available on Github&lt;/a&gt;. The other &amp;quot;game&amp;quot; I made with pygame was actually a game loop for a full sized skee-ball like drinking game called Whiskeyball.&lt;/p&gt;
&lt;p&gt;For a long time, I had the idea of an &amp;quot;API-only&amp;quot; game. I registered the domain &lt;a href=&quot;http://scriptslash.com/&quot;&gt;scriptslash.com&lt;/a&gt; and had the bare bones of registration and a bit of a tutorial up there. The idea is that the game engine is just implemented as a bunch of API endpoints, and you make HTTP requests to interact with it. So you end up having a script that does the hacking and slashing.&lt;/p&gt;
&lt;p&gt;In fact, now that I think of it, this idea is over 10 years old! The main impetus for it was the thought that if you&#39;re writing scripts that interact with REST APIs to play a game, it will look to anyone who walks behind your desk at your programming job like you are working (and not playing a game).&lt;/p&gt;
&lt;p&gt;As part of this, I actually implemented the so called &amp;quot;2 legged&amp;quot; OAuth scenario, which is not widely used, but basically lets you sign an individual API request with your API key, so that you don&#39;t have to have any login mechanism, or cookies or persistent state. I thought it was pretty clever. I even released a Ruby &amp;quot;API client&amp;quot; which just basically imported the right libraries and signed the request, so you could focus on what parameters you wanted to send.&lt;/p&gt;
&lt;p&gt;The problem with Scriptslash was that there was never really a &amp;quot;game&amp;quot; there. I had all the ideas for the technical infrastructure, but no ideas for what the gameplay would be like. I even re-wrote the engine, which was originally in Node.js, in Python Flask, porting my two-legged OAuth implementation. Does this sound familiar? How many people have you heard of that develop intricate game engines but there&#39;s never really a game there?&lt;/p&gt;
&lt;p&gt;Later, I had an idea for a multiplayer game I was calling &amp;quot;Space Base Race Game&amp;quot;. You can read &lt;a href=&quot;https://docs.google.com/document/d/1W5CmYhIo87c7GrLOa_6osw8g9Dze5ZZnvHfdCNP8kZo/edit?usp=sharing&quot;&gt;the document I wrote&lt;/a&gt; about it if you&#39;re interested. It was kind of hopelessly complex for what it was trying to do, and I never really had a firm grasp on what the &amp;quot;graphics&amp;quot; if any would look like. The basic idea behind the game is the &lt;a href=&quot;https://en.wikipedia.org/wiki/Multi-armed_bandit&quot;&gt;multi-armed bandit&lt;/a&gt;. Given a row of slot machines, do you pull the one that seems to pay a dollar 75% of the time, or do you play a new one in search of a larger reward? I think this exploration of reward spaces can lead to fun gameplay, because the user has to choose between exploiting a known resource or exploring.&lt;/p&gt;
&lt;p&gt;Of course, why not pair Space Base Race Game with Scriptslash and have it be the game for that engine?&lt;/p&gt;
&lt;p&gt;I&#39;m not sure why I never did that, to be honest. Part of me had soured on the whole Scriptslash idea. I realized that for any game, a player is going to be a real live human being somewhere, and that they&#39;re going to want to see the output of the game. Yes they might at first be satisfied to read the output in the logs of their &amp;quot;script&amp;quot;. But eventually they&#39;re going to want to see output in real time, and provide input in real time. This is starting to sound like a real Game Client that needs to be developed, possibly with graphics. And I didn&#39;t want to do that.&lt;/p&gt;
&lt;p&gt;Most recently, I had the idea for &amp;quot;&lt;a href=&quot;https://factorio.com/&quot;&gt;Factorio&lt;/a&gt; but as a &lt;a href=&quot;https://en.wikipedia.org/wiki/MUD&quot;&gt;MUD&lt;/a&gt;&amp;quot;, which sounds as brilliant as it sounds horrifying to me (and of course is in the grand tradition of &amp;quot;Twitter for dogs&amp;quot; type startup ideas). I&#39;ve got 200 hours plus played in Factorio, which is by far the most time I&#39;ve put into a game in probably the past decade.&lt;/p&gt;
&lt;p&gt;The idea hasn&#39;t really gone anywhere, though. I downloaded the &lt;a href=&quot;https://github.com/evennia/evennia&quot;&gt;Evennia MUD engine&lt;/a&gt; which is both written in Python and claims to be widely extensible. But I already sort of gave up, after getting the MUD running, because I realized how much work it would be to rip out all of the existing MUD systems (ie &amp;quot;examine cup&amp;quot;) and replace them with Factorio like things. Or maybe I just didn&#39;t have the idea fully formed in my head enough. Maybe I should write another Google doc.&lt;/p&gt;
&lt;p&gt;At some point in this journey I picked up the excellent &lt;a href=&quot;https://pragprog.com/titles/jbmaze/&quot;&gt;Mazes for Programmers&lt;/a&gt; which was a lot of fun to work through. This originally gave me ideas for Scriptslash, while that was still a thing. The examples in that book have stayed with me, and they&#39;re part of the lingering &amp;quot;background radiation&amp;quot; around actually making a video game. But the question is, will I ever do it? And if not, the larger question is, what&#39;s stopping me?&lt;/p&gt;
&lt;p&gt;I&#39;ve also played more than my fair share of &amp;quot;clicker&amp;quot; and &amp;quot;idle&amp;quot; games, more than anyone should probably ever play. So I&#39;ve got ideas down that road too. I had an idea for a game called &amp;quot;Super Progress Bar Pro&amp;quot;, which is basically exactly what it says on the tin.&lt;/p&gt;
&lt;p&gt;So my ideal game that I&#39;d like to make is Factorio, but a MUD, but a clicker, but API driven.&lt;/p&gt;
&lt;p&gt;Maybe I just need to answer some basic questions and go from there:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Single player or multiplayer?&lt;/li&gt;
&lt;li&gt;Graphics or text based?&lt;/li&gt;
&lt;li&gt;Story based or mechanics-driven?&lt;/li&gt;
&lt;li&gt;Clicker/idle mechanics or actual gameplay?&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  <entry>
    <title>Untitled 2020-06-15</title>
    <link href="https://garden.travisbriggs.com/garden/blog/untitled-2020-06-15/"/>
    <updated>2020-06-15T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/blog/untitled-2020-06-15/</id>
    <content xml:lang="en" type="html">&lt;p&gt;The following is the email I sent to &lt;a href=&quot;mailto:iwant@hey.com&quot;&gt;iwant@hey.com&lt;/a&gt; to convince them to give me an invite.&lt;/p&gt;
&lt;p&gt;===&lt;/p&gt;
&lt;p&gt;Hey,&lt;/p&gt;
&lt;p&gt;I don&#39;t go to the gym, and I don&#39;t eat healthy. I don&#39;t call my mom nearly as often as I should. But one thing I do is keep a meticulously manicured email inbox. It&#39;s inspired by, but not quite equivalent to, Inbox Zero.&lt;/p&gt;
&lt;p&gt;This system works great, but there is something of a flaw. It&#39;s not a flaw in the inbox system. Actually, it turns out 80% of the email I get is not only crap, but crap from mailing lists and such that I can easily unsubscribe from anytime. About five years ago, I realized this. I resolved that the very next email I got from some dumb email list that I don&#39;t read, like GAP or iTunes or something, I would immediately unsubscribe. I did this for a few weeks.&lt;/p&gt;
&lt;p&gt;Pretty soon, as you&#39;d expect, the garbage (not quite junk, not quite spam) emails stopped. Entirely. I stared into the gaping void of a pristine email inbox and did I feel triumph? Did I feel joy? No, I felt dread. More than anything I felt lonely. I realized that some amount of my self worth was tied to the subtle, subconscious idea that I was a real person, with feelings (and at least a credit card) who, in some capacity, was worth emailing. Even if it was an ad or some dumb newsletter I didn&#39;t really want, someone out there &lt;em&gt;cared&lt;/em&gt; enough to send it to me. In the isolated, alienated, cyberjunk dystopian present that we live in, that mattered to me.&lt;/p&gt;
&lt;p&gt;So I went back and resubscribed to the newsletters (or at least, stopped unsubscribing to new ones). And I felt better. It&#39;s kind of like those vacuum cleaners with fake noise added so that people believe they&#39;re working (look it up on YouTube).&lt;/p&gt;
&lt;p&gt;It&#39;s not a flaw in the inbox system. No, it never was. The flaw is the frailty of human emotion and the failings of constant attention seeking.&lt;/p&gt;
&lt;p&gt;I’d like to try Hey, because I’d like to maybe finally come to grips with those feelings, that flaw.&lt;/p&gt;
&lt;p&gt;Thanks,
-Travis&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Getting Nothing Done</title>
    <link href="https://garden.travisbriggs.com/garden/blog/getting-nothing-done/"/>
    <updated>2020-05-20T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/blog/getting-nothing-done/</id>
    <content xml:lang="en" type="html">&lt;p&gt;There have been some posts on &lt;a href=&quot;https://news.ycombinator.com/&quot;&gt;Hacker News&lt;/a&gt; lately about various systems for GTD (getting things done), both endorsing and adjacent to the official GTD method. There have been productivity apps, note taking and bookmarking browser extensions, and more. All of it promises a way forward for organizing all of the tasks in your life and making sure they get completed effectively and in a timely fashion.&lt;/p&gt;
&lt;p&gt;This is not necessarily a post about why I think it&#39;s all bullshit, or why I&#39;m a serial procrastinator and none of this will ever work for me, or even why I might prefer whatever ad hoc method I have for getting things done over these meticulously manicured systems. It&#39;s not any of that. The point of this post is to admit something about why these systems kind of miss the point for me completely.&lt;/p&gt;
&lt;p&gt;I don&#39;t have anything to get done.&lt;/p&gt;
&lt;p&gt;I mean, I have a full time job, and through various methods that I&#39;ve learned over the years, including keeping a tidy inbox, I manage to get most things done most of the time, for things at work.&lt;/p&gt;
&lt;p&gt;But otherwise, I can&#39;t help but wonder what everyone is filling up these todo list apps with. Because I don&#39;t have a list of tasks that demand my attention in my free time. Certainly none with any specific deadlines. Sure, I&#39;m working on an &lt;a href=&quot;https://github.com/openzim/wp1&quot;&gt;open source project for Wikipedia&lt;/a&gt;. I could always be &lt;a href=&quot;https://songs.travisbriggs.com/&quot;&gt;writing music&lt;/a&gt;. I could update my list of the &lt;a href=&quot;https://garden.travisbriggs.com/garden/best%20albums%20in%20the%20universe/&quot;&gt;best albums in the universe&lt;/a&gt; which I did recently convert to be served concurrently as a &lt;a href=&quot;https://gemini.circumlunar.space/&quot;&gt;Gemini site&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;So yeah, I have the odd side project here and there that I could be working on. But none of it has any urgency or deadlines, so why bother organizing it into GTD task boards?&lt;/p&gt;
&lt;p&gt;Thinking cynically, I can&#39;t help but imagine that all of these todo apps are filled with people&#39;s aspirational goals and dreams that quite frankly will never happen. Maybe they&#39;ve taken the first step by writing down that they want to write a short story, or start a blog, or start selling things on eBay, or whatever. But is it going to happen? All the same mechanisms are at work that keep you from doing those things whether they&#39;re written down in a trendy app or not. Lack of motivation, enthusiasm, know-how, mentorship, etc.&lt;/p&gt;
&lt;p&gt;I guess I just try not to buy into the Protestant work ethic thing, that hard work and &amp;quot;accomplishments&amp;quot; define our existence. And if my goal is to play some video games or even sit quietly on the couch and do nothing, do I really need a GTD app to write that down in?&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Giving Up On Resolutions</title>
    <link href="https://garden.travisbriggs.com/garden/blog/giving-up-on-resolutions/"/>
    <updated>2020-01-02T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/blog/giving-up-on-resolutions/</id>
    <content xml:lang="en" type="html">&lt;p&gt;As I&#39;ve &lt;a href=&quot;https://garden.travisbriggs.com/garden/blog/a-story-of-failure/&quot;&gt;written&lt;/a&gt; &lt;a href=&quot;https://blog.travisbriggs.com/writing-a-song-a-day-in-2018-d4f2be32c40f&quot;&gt;before&lt;/a&gt;, I&#39;m a sucker for New Year&#39;s Resolutions. And yet as the first link from this time last year states, I&#39;ve also kind of given up on them. They&#39;re simply ineffective at creating any kind of real or lasting change. I&#39;ve come around to the &amp;quot;today is New Year&#39;s Day, it is a Wednesday&amp;quot; kind of thinking.&lt;/p&gt;
&lt;p&gt;Is it a loss of innocence, a renunciation of magic, with which I give up New Year&#39;s Resolutions? I think a belief in the special, the magical, is very healthy and energizes me more than anything else. For me, however, at this time in my life, resolutions are just something to feel bad about in March.&lt;/p&gt;
&lt;p&gt;I&#39;m not interested in any kind of self-help, getting stuff done, motivational voodoo to replace resolutions with, either. I think I&#39;m more attracted to the mode of thinking, currently, that things are basically fine and I should just let what happens happen. Not that I&#39;m going to stop trying new things, like maybe a D&amp;amp;D group at work, or tutoring a new friend in Javascript in the new year. But those are just things I kind of want to do anyway.&lt;/p&gt;
&lt;p&gt;No, I&#39;m not a bastion of satisfaction and joy. I don&#39;t spend every minute wrapped up in feelings of usefulness and contentment. Many of my minutes are still filled with malcontent, boredom and apathy. But maybe that&#39;s okay, that&#39;s just part of living.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Halloween Sadness</title>
    <link href="https://garden.travisbriggs.com/garden/blog/halloween-sadness/"/>
    <updated>2019-10-21T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/blog/halloween-sadness/</id>
    <content xml:lang="en" type="html">&lt;p&gt;Halloween is a time for the spooky, the scary, sometimes the terrifying and maybe a bit of the downright goofy. Is there room in there for a bit of Halloween sadness?&lt;/p&gt;
&lt;p&gt;Two years ago one of my friends, Will, moved away from the Bay Area to pursue an MBA from Chicago Booth. We were all very proud of Will and wished him the best of luck. Two years later, he&#39;s graduated! But now he&#39;s moved to Berlin.&lt;/p&gt;
&lt;p&gt;Will used to throw pretty extravagant, costume-required, Halloween parties. He and his friends were very into cosplay in general and would have costume parties throughout the year, for birthdays and other occasions. But Halloween, now there was a chance to get schmucks like me and a few of his other friends to be forced to wear a costume. Legend has it that if you showed up to one of these parties without a costume, you would be assigned a &amp;quot;loaner&amp;quot; from the rejected costume pile. And no one wanted that.&lt;/p&gt;
&lt;p&gt;Is there room in Halloween for sadness? For the past two years, some of Will&#39;s friends and I haven&#39;t celebrated Halloween at all. We had no party to go to, no celebration. We had no reason to eek out the smallest semblance of a costume and hope it passed muster. Can you be nostalgic for something that happened 2 years ago?&lt;/p&gt;
&lt;p&gt;It&#39;s just one more thing that reminds me that today, right now, the time we are currently living, will one day be looked back upon as the good old days. So put on your best costume, even if it&#39;s just &amp;quot;The Color Red&amp;quot;.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>A Story Of Failure</title>
    <link href="https://garden.travisbriggs.com/garden/blog/a-story-of-failure/"/>
    <updated>2019-01-02T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/blog/a-story-of-failure/</id>
    <content xml:lang="en" type="html">&lt;p&gt;Last year I made a rather audacious New Year&#39;s Resolution: &lt;a href=&quot;https://blog.travisbriggs.com/writing-a-song-a-day-in-2018-d4f2be32c40f&quot;&gt;to write a song a day in 2018&lt;/a&gt;. I will now always remember 2018 as the year I failed to write a song a day. Or maybe I should remember it as the year that I bravely aspired to write a song a day?&lt;/p&gt;
&lt;p&gt;I haven&#39;t given any thoughts to New Year&#39;s Resolutions this year. I&#39;ve sort of come around to the existential point of view that I&#39;m really just a piece of driftwood on the ocean that is my life. I never really believed in free will. Free will just seems like the explanation we give to the thing we were going to do anyways. I don&#39;t have any agency over myself, my outcomes. So why bother?&lt;/p&gt;
&lt;p&gt;I did manage to write about 20 songs in 2018, which you can view on my &lt;a href=&quot;https://songs.travisbriggs.com/&quot;&gt;song website&lt;/a&gt;. That&#39;s about 5% of the way towards my goal.&lt;/p&gt;
&lt;p&gt;Maybe I can do something like write a song a day for the first week of every month, then take the rest of the month off. I don&#39;t know. Like I said in the other post, song a week is really &amp;quot;wait 5 days, then write a song in a day&amp;quot;.&lt;/p&gt;
&lt;p&gt;I mean, why am I so obsessed with songwriting anyways? To speak again of existentialism, maybe I see my creative output as my only futile thrusts against the all encompassing absurd. Maybe I&#39;m just a fanboy that obsesses over music and feels compelled to add to the great corpus of musical works. I am Sisyphus and music is my rock (n roll).&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Causes of Giving to Causes</title>
    <link href="https://garden.travisbriggs.com/garden/blog/causes-of-giving-to-causes/"/>
    <updated>2018-11-27T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/blog/causes-of-giving-to-causes/</id>
    <content xml:lang="en" type="html">&lt;p&gt;On the topic of philanthropy, there are a few approaches that I see taken by those around me. One is to simply give to whatever cause makes you feel good. Sometimes it&#39;s just a matter of some cause that strikes a chord, and just like that you open your wallet. Other times, people try to give to causes that benefit those in the most extreme life circumstances. They donate in order to provide clean water to people in remote villages, or to provide food and medicine to those affected by the horrors of war.&lt;/p&gt;
&lt;p&gt;Sometimes though, I find that I like to give to causes that simply provide an interesting or unique presence in the world. This is why I give to &lt;a href=&quot;https://www.wikipedia.org/&quot;&gt;Wikipedia&lt;/a&gt;, or &lt;a href=&quot;https://somafm.com/&quot;&gt;soma fm&lt;/a&gt;, or the &lt;a href=&quot;https://archive.org/&quot;&gt;Internet Archive&lt;/a&gt;, or even &lt;a href=&quot;https://www.govtrack.us/&quot;&gt;govtrack&lt;/a&gt;. I might not use these services very often (they&#39;re listed in roughly decreasing order of my activity), but I&#39;m glad they exist and I want them to be around for others in the future. I like the &lt;em&gt;idea&lt;/em&gt; of these causes, even if they&#39;re not the most &amp;quot;boots on the ground&amp;quot; organizations providing the absolute most good to the most people.&lt;/p&gt;
&lt;p&gt;I don&#39;t really have much to comment on beyond that, and providing a list of some of the causes that I find worthwhile.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>What programming language should I learn?</title>
    <link href="https://garden.travisbriggs.com/garden/blog/what-programming-language-should-i-learn/"/>
    <updated>2018-11-14T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/blog/what-programming-language-should-i-learn/</id>
    <content xml:lang="en" type="html">&lt;p&gt;A lot of people who want to get into programming ask this question, and it&#39;s not a bad one at all! In this post, I&#39;ll try to examine the question and give a thoughtful answer.&lt;/p&gt;
&lt;p&gt;I think this question is analogous to an aspiring musician asking &amp;quot;Which instrument should I learn?&amp;quot; The answer depends on your taste and interests. Generally though, I would say the answer is &lt;strong&gt;pick one that interests you and that will allow you to create the projects you want to create&lt;/strong&gt;. If you like punk rock music, you should probably pick up drums, bass or electric guitar and not oboe or harp, right? If you&#39;re into data science, think Python or R, but probably not C++ or Perl (side note: with my recent experiences with the language, I don&#39;t think I would recommend &lt;em&gt;anyone&lt;/em&gt; learn Perl).&lt;/p&gt;
&lt;p&gt;If a language, like Javascript, piques your interests then go for it! Depending on your goals for your own programming practice, it&#39;s likely you will learn a number of languages as you continue your journey. Don&#39;t feel like the first language you learn will be the only language you learn, or that it will limit your options in the future. Also, if you don&#39;t like Javascript, you probably don&#39;t have to continue learning it. You can put it down for a while and see what else is out there. In fact, I would recommend looking at lots of different languages when you&#39;re first starting out, because then you&#39;re more likely to find one that &amp;quot;clicks&amp;quot; and that lets you express the ideas you&#39;re trying to express, or accomplish your tasks better.&lt;/p&gt;
&lt;p&gt;If you&#39;re completely undecided, on the fence, or without any meaningful data points, you should think about which languages are popular. Not that this is a popularity contest, but it stands to reason that programming languages get popular for a reason. They&#39;re probably useful for one or more tasks that lots of people want to get done. Additionally, languages with more popularity are likely to have bigger communities of developers writing blog posts, tools, libraries, and &lt;a href=&quot;https://stackoverflow.com/questions/tagged/python&quot;&gt;StackOverflow answers&lt;/a&gt;. While you&#39;re learning, these can all be amazing resources.&lt;/p&gt;
&lt;p&gt;Finally, for my own recommendation, I would personally suggest Javascript or Python. Javascript is great because with a few lines of it you can bend web pages to your will. It&#39;s also available as a &amp;quot;server side&amp;quot; language thanks to &lt;a href=&quot;https://nodejs.org/&quot;&gt;NodeJS&lt;/a&gt;. Python, on the other hand, is very general purpose and can be used to write web applications
too (see my last post on &lt;a href=&quot;https://garden.travisbriggs.com/garden/blog/what-is-a-web-application/&quot;&gt;&amp;quot;What is a web application?&amp;quot;&lt;/a&gt;, process data and images, and nowadays is used for all kinds of Artificial Intelligence and especially Machine Learning projects.&lt;/p&gt;
&lt;p&gt;As I said in the beginning of this post, you should research some languages, maybe try a few out, and ultimately find one that fits your general aesthetic and most importantly that lets you build the projects you want to build. You&#39;re only going to get better at programming with practice, and you&#39;re more likely to practice if you have a significant, meaningful project to work on. If you&#39;re excited to come back to that code editor day after day, you will learn more and faster than any other factor intrinsic to the language.&lt;/p&gt;
&lt;p&gt;I hope this helps some people out there!&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>What is a web application?</title>
    <link href="https://garden.travisbriggs.com/garden/blog/what-is-a-web-application/"/>
    <updated>2018-11-13T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/blog/what-is-a-web-application/</id>
    <content xml:lang="en" type="html">&lt;p&gt;This post attempts to answer the question posed in the title. It is aimed at beginning or aspiring web developers, or even those who aren&#39;t developers but wish to gain a deeper understanding of the terminology. Web applications versus static websites versus dynamic websites will be discussed.&lt;/p&gt;
&lt;p&gt;What is a web application? Generally a web application is considered to be any website which has advanced or dynamic functionality which allows users to complete tasks or view or enter data. So for example, the websites at &lt;a href=&quot;http://www.facebook.com/&quot;&gt;www.facebook.com&lt;/a&gt; and &lt;a href=&quot;http://twitter.com/&quot;&gt;twitter.com&lt;/a&gt; are web applications. That&#39;s not to say that Facebook and Twitter themselves are simply web applications. They would in fact probably be considered social media &amp;quot;platforms&amp;quot;, since they can be accessed across multiple devices and for a myriad of purposes. Perhaps a better example is &lt;a href=&quot;https://www.fandango.com/&quot;&gt;Fandango&lt;/a&gt;, a web application which allows users to search for movies, find showtimes, and buy tickets. Google is a web application, as is Wikipedia.&lt;/p&gt;
&lt;p&gt;A web application is usually classified as such in contrast to a simple &lt;strong&gt;website&lt;/strong&gt;. A website is a collection of web pages that can be accessed using a web browser, that usually offers no or limited dynamic interactivity and functionality. A good example is the &lt;a href=&quot;http://www.hawking.org.uk/&quot;&gt;homepage of the late Stephen Hawking&lt;/a&gt;. This site provides information that is organized according to a certain method, including text and images. However, there are no tasks that a user could complete on this site. There is no way for end users to enter data.&lt;/p&gt;
&lt;p&gt;Websites can further be classified as &lt;strong&gt;static&lt;/strong&gt; or &lt;strong&gt;dynamic&lt;/strong&gt;. Put simply, a static site is one that doesn&#39;t change each time it is viewed, such as &lt;a href=&quot;http://web.mit.edu/hoffmann/www/bookmarks.html&quot;&gt;this list of bookmarks&lt;/a&gt;. It&#39;s always the same list, and almost certainly the HTML (code) for this page exists as a single file on a server somewhere. When you request the page using your web browser, the server grabs the file off disk and sends it back to your browser &amp;quot;as is&amp;quot;.&lt;/p&gt;
&lt;p&gt;A dynamic website, on the other hand, features content that potentially changes every time it is viewed. A good example is &lt;a href=&quot;https://www.cnn.com/&quot;&gt;the CNN homepage&lt;/a&gt;. It&#39;s not a web application, because there&#39;s no interactive way to enter data or complete a task. But it changes by the moment as news stories break or fall out of popularity. When your web browser requests &lt;a href=&quot;http://cnn.com/&quot;&gt;cnn.com&lt;/a&gt;, the server doesn&#39;t return a preset file containing the code. Rather, one or more programs run on the server, and the end result (output) of the process is the HTML that gets sent back to your browser.&lt;/p&gt;
&lt;p&gt;So what about that Stephen Hawking site, is it dynamic or static? Well, although the information on it doesn&#39;t change nearly as regularly as &lt;a href=&quot;http://cnn.com/&quot;&gt;cnn.com&lt;/a&gt;, it is probably a dynamic website. It is likely that the people who run the Hawking site are using a &lt;a href=&quot;https://en.wikipedia.org/wiki/Content_management_system&quot;&gt;Content Management System&lt;/a&gt; so they can more easily change and update the page. And so although the site might conceivably be implemented using static files, it is in fact a dynamic site.&lt;/p&gt;
&lt;p&gt;The fact is, almost all website are dynamic. And the most useful ones are actually web applications. Other examples of web applications are Google Calendar, Reddit, and Netflix (which doesn&#39;t allow data entry, but allows for rich searching and filtering features).&lt;/p&gt;
&lt;p&gt;Hopefully this article was useful, and feel free to send feedback to @audiodude@sfba.social on Mastodon.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Considering moving blogs</title>
    <link href="https://garden.travisbriggs.com/garden/blog/considering-moving-blogs/"/>
    <updated>2018-11-13T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/blog/considering-moving-blogs/</id>
    <content xml:lang="en" type="html">&lt;p&gt;What&#39;s the best thing to do once you&#39;ve started to blog and written a few posts? Change platforms, of course! It seems like every blogger is always looking for a new platform, with the hope that it will somehow make them a better, more prolific writer. No doubt it rarely turns out that way.&lt;/p&gt;
&lt;p&gt;But here I am, in the same boat, trying to evaluate new blogging platforms and plan a migration strategy for them.&lt;/p&gt;
&lt;p&gt;As a background, back when I was using Soundcloud extensively I &amp;quot;realized&amp;quot; that Medium does the same for blog posts that Soundcloud does for songs: it provides a centralized repository across multiple different authors. This potentially allows for &amp;quot;cross-pollination&amp;quot; as readers of a certain blogger find related articles from, gee golly, maybe me!&lt;/p&gt;
&lt;p&gt;Of course, this never happened on Soundcloud, in the 8+ years I&#39;ve been on it. And it hasn&#39;t happened on Medium either. My most popular medium post is &lt;a href=&quot;https://blog.travisbriggs.com/setting-up-your-own-mastodon-with-digital-ocean-and-docker-29e633d354f2&quot;&gt;this tutorial&lt;/a&gt; on how to set up your own &lt;a href=&quot;https://joinmastodon.org/&quot;&gt;Mastodon&lt;/a&gt; instance. It still gets 20-40 views a week, 18 months later. I&#39;m proud I produced a piece of writing that has helped many people. But honestly, the views on that article haven&#39;t even led to views on my own other articles. Never mind &amp;quot;cross-pollination&amp;quot;.&lt;/p&gt;
&lt;p&gt;That, and considering the recent article on &lt;a href=&quot;https://medium.com/@nikitonsky/medium-is-a-poor-choice-for-blogging-bb0048d19133&quot;&gt;&amp;quot;Medium is a poor choice for blogging&amp;quot;&lt;/a&gt; which was posted to &lt;a href=&quot;https://news.ycombinator.com/&quot;&gt;Hacker News&lt;/a&gt;, makes me rethink my platform of choice.&lt;/p&gt;
&lt;p&gt;Now this is a bit disingenuous, because I&#39;ve already been using &lt;a href=&quot;https://write.as/&quot;&gt;write.as&lt;/a&gt; for the last few &amp;quot;blog&amp;quot; articles I&#39;ve posted (I use that term loosely for the material I&#39;ve put on &lt;a href=&quot;http://write.as/&quot;&gt;write.as&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://write.as/&quot;&gt;Write.as&lt;/a&gt; provides a distraction free editor, markdown based formatting, a &amp;quot;blog&amp;quot; collection for my posts, individual post reading pages also without distraction, and is completely free. That&#39;s a great number of features, and they hit on several that are important to me.&lt;/p&gt;
&lt;p&gt;Another alternative would be to create a static &lt;a href=&quot;https://jekyllrb.com/&quot;&gt;Jekyll&lt;/a&gt; site. But do I really want to deal with &lt;a href=&quot;https://shopify.github.io/liquid/&quot;&gt;Liquid templates&lt;/a&gt;? I feel like I&#39;m fed up with Jekyll, even though I&#39;ve used it on many projects (&lt;a href=&quot;https://gallery.travisbriggs.com/&quot;&gt;gallery.travisbriggs.com&lt;/a&gt; comes to mind).&lt;/p&gt;
&lt;p&gt;So do I use another static site generator? Then I have to go through the trouble of figuring out how to use the generators templating engine, how to set up an index of posts, how to display individual posts, how to create snippets of posts, how to format dates on posts, etc, etc. It&#39;s a lot of stuff, and in the end, I end up with a site that is identical to if I used Jekyll.&lt;/p&gt;
&lt;p&gt;An additional issue with Jekyll or static site generators is that they generally don&#39;t come with any styling. Although I&#39;m experienced at implementing pixel perfect websites given designs and mocks, I actually don&#39;t have much experience creating such mocks to begin with. So any site I create with a static generator is likely to look awful. But then again, if you take &lt;a href=&quot;http://write.as/&quot;&gt;write.as&lt;/a&gt; as a baseline, I can&#39;t really do worse than that. Though I would want to make sure my site is responsive for mobile.&lt;/p&gt;
&lt;p&gt;This entire discussion is also predicated on the idea that I actually should continue blogging in the first place. Continue is kind of a strong word there, of course, since I&#39;ve generally been producing one article every couple of months. I wrote in September of 2017 that &lt;a href=&quot;https://blog.travisbriggs.com/my-blog-is-a-liability-de42cae3f6ce&quot;&gt;&amp;quot;My Blog is a Liability&amp;quot;&lt;/a&gt;. The TLDR of that post is that no one reads this stuff anyways, but if they wanted to find some damning piece of information about me, there would be plenty of potential things to find.&lt;/p&gt;
&lt;p&gt;So my options, as I see them are:&lt;/p&gt;
&lt;ol start=&quot;0&quot;&gt;
&lt;li&gt;Continue writing on Medium (probably not going to happen).&lt;/li&gt;
&lt;li&gt;Continue writing on &lt;a href=&quot;http://write.as/&quot;&gt;write.as&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Start a brand new blog with static site generator&lt;/li&gt;
&lt;li&gt;Quit blogging altogether&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Of these options, 2 and 4 look the best to me.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Update (2018-11-13): I stated in this post that &lt;a href=&quot;http://write.as/&quot;&gt;write.as&lt;/a&gt; is free, but apparently at some point I signed up for the $10/year plan. I can&#39;t remember why I did.&lt;/em&gt;&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Random knowledge about Javascipt and Typescript</title>
    <link href="https://garden.travisbriggs.com/garden/blog/random-knowledge-about-javascript-and-typescript/"/>
    <updated>2018-09-17T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/blog/random-knowledge-about-javascript-and-typescript/</id>
    <content xml:lang="en" type="html">&lt;p&gt;Javascript is a programming language that is used primarily on the web. It is interpreted by web browsers in order to process and display data on web pages. Javascript is also known as ECMAScript, after the standard that encompasses a formal definition of the language.&lt;/p&gt;
&lt;p&gt;In 2018, Javascript usage goes beyond the web itself and includes many so-called &amp;quot;backend&amp;quot; applications, written in frameworks such as Node.js. Many people learn Javascript as their first programming language, while working on websites and the web. Javascript is also known to be a somewhat frustrating language to work with, because it lacks certain features such as &amp;quot;static typing&amp;quot;. One variation of Javascript that includes type information is called, appropriately, Typescript. Typescript was developed by engineers at Microsoft in order to create a version of Javascript that includes type information.&lt;/p&gt;
&lt;p&gt;The &amp;quot;type&amp;quot; of a variable or function is basically the format of the information that it contains or returns. The number 123 is a &amp;quot;number&amp;quot; in this sense, whereas the letters &amp;quot;abc&amp;quot; are considered a &amp;quot;string&amp;quot;. By assigning data types to your variables, you can automatically check whether or not you are passing the right &amp;quot;type&amp;quot; of thing into a function or method. So for example, what if you had a Person object that had a setName method? You wouldn&#39;t want to set the person&#39;s name to a number, or to an Array. You&#39;d want to set it to a string. The Typescript compiler can let you know when you&#39;ve accidentally tried to pass such nonsense to a function that doesn&#39;t accept it.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Songwriting Reflections</title>
    <link href="https://garden.travisbriggs.com/garden/blog/songwriting-reflections/"/>
    <updated>2018-08-20T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/blog/songwriting-reflections/</id>
    <content xml:lang="en" type="html">&lt;p&gt;Melancholy feelings and minor keys are both more appealing to me than their respective alternatives, at least when put into the employ of art and music. For some reason, a &amp;quot;happy&amp;quot; song with &amp;quot;happy&amp;quot; lyrics seems vapid and dull to me. I want to get at the deep stuff underneath. Major keys seems to scream of a kind of &lt;a href=&quot;https://en.wikipedia.org/wiki/Phatic_expression&quot;&gt;phatic expression&lt;/a&gt;, a platitude of nothingness. &amp;quot;Fine, thank you&amp;quot;. &amp;quot;Good afternoon, sir&amp;quot; they exclaim.&lt;/p&gt;
&lt;p&gt;Maybe that&#39;s why I like power chords so much in &lt;a href=&quot;https://garden.travisbriggs.com/garden/danger-third-rail/&quot;&gt;my music&lt;/a&gt;, because they&#39;re ambiguous as to their tonality. Are they major chords? Minor chords? Without a third, they are neither. They&#39;re open to interpretation. Now I&#39;ll admit, some songs by say &lt;a href=&quot;https://en.wikipedia.org/wiki/Descendents&quot;&gt;The Descendents&lt;/a&gt; are a bit too fast and loose with their tonality (they&#39;re certainly fast!). Descendents songs seem to give me a kind of whiplash with all the modulation and lack of a tonal center.&lt;/p&gt;
&lt;p&gt;I&#39;ve heard tonality in Western music described as a journey. You start at the tonic, you go on a journey to the four chord, reach a bit further to the fifth, and then, when you can&#39;t stand it anymore, you gratefully return back to the tonic. Even chords like the minor two or the minor six share the tonality of the tonic, the one chord, so that going I - VI isn&#39;t so much a journey as a re-imagining of what&#39;s already there. &amp;quot;Here I am&amp;quot; says the one chord, &amp;quot;But it&#39;s a bit different now,&amp;quot; finishes the six chord.&lt;/p&gt;
&lt;p&gt;When I was first learning to play guitar, I was a big fan of Dave Matthews Band. I tried to learn as many of their songs as a could, and of course I was often frustrated by the quick and intricate guitar melodies and unique chord shapes. I simply wasn&#39;t good enough to play that music. Then I took a hard left the other way, and found the basic harmonic chords that made up songs and would just strum the chords while I sang the songs. But this kind of acoustic guitar treatment often robs songs of the rhythmic and melodic textures that make them so interesting, not to mention the complexities of the arrangements themselves.&lt;/p&gt;
&lt;p&gt;Nonetheless, I still hold on to this picture of songs as a lead sheet, as a series of chords on a page with some lyrics scribbled underneath. And I&#39;ve never been a believer of the importance of lyrics in songs. It&#39;s just not me. Most people will tell you that the lyrics are the single most important thing, they&#39;re what people hear and process and remember. But for me, I always though the &amp;quot;music&amp;quot; was more important. Unfortunately, the music for me has always just meant the basic acoustic guitar chords, where clearly that&#39;s not how most &lt;a href=&quot;https://garden.travisbriggs.com/garden/genre-thoughts/&quot;&gt;rock, pop and especially not EDM music&lt;/a&gt; works.&lt;/p&gt;
&lt;p&gt;If you listen to many pop songs on the radio today, they are quite minimalist. Often the vocalist is singing over a simple drum loop or bass line or both and that&#39;s it. Yet these songs work.&lt;/p&gt;
&lt;p&gt;I guess I&#39;m just reflecting on some aspects of my own song writing here, but maybe someone else will find it enjoyable to read or informative in some way. Cheers!&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Another Week</title>
    <link href="https://garden.travisbriggs.com/garden/blog/another-week/"/>
    <updated>2018-07-30T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/blog/another-week/</id>
    <content xml:lang="en" type="html">&lt;p&gt;Here starts another week, and it&#39;s going pretty well. I&#39;m awake, I&#39;m at work, I&#39;m caffeinated. Listening to some &lt;a href=&quot;https://weezer.com/&quot;&gt;Weezer&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Of course, in the back of my mind, I&#39;m thinking: this week will be just like any other week, nothing special, 7 days closer to the grave. Pretty morbid, but that&#39;s kind of the feeling I get.&lt;/p&gt;
&lt;p&gt;My wife thinks I need to practice more gratitude for what I have. I&#39;m definitely aware of all the research out there that states that gratitude is a major component of happiness. Not that I&#39;m really that unhappy, but still.&lt;/p&gt;
&lt;p&gt;I offered to work more on the &lt;a href=&quot;https://www.blackfem.org/&quot;&gt;volunteer project&lt;/a&gt; that I spent six months on last year. Mostly just because it was between that and finding another volunteer project. I had actually planned to find some open source project that I could contribute significantly to, but that&#39;s always a problem. It&#39;s very hard to find a project that: a) I use, b) needs help in the skillsets I can provide, and c) is actively looking for contributors. I think that first one is something that many people who want to contribute to open source overlook. Is there really a point in contributing to a project that you yourself don&#39;t even use? How will you even value your own contributions?&lt;/p&gt;
&lt;p&gt;I&#39;m actually thinking of creating some kind of blogging software that allows users to keep a local blog, then one-click publish it to &lt;a href=&quot;https://www.netlify.com/&quot;&gt;Netlify&lt;/a&gt; or some other platform (&lt;a href=&quot;https://neocities.org/&quot;&gt;Neocities&lt;/a&gt;?). Preferably with &lt;a href=&quot;https://electronjs.org/&quot;&gt;Electron&lt;/a&gt;, so that it wouldn&#39;t require any command line knowledge. I don&#39;t know, I think I need to explore the problem space more. If you want to edit your blog from any computer, isn&#39;t that just a web app that handles the blog? Wouldn&#39;t having a local version as the master copy be more limiting? I feel like a major part of this use case is that someone wants to keep control over their blog, over their information and data, for one reason or another.&lt;/p&gt;
&lt;p&gt;The real question is, is it possible to build a web app in &lt;a href=&quot;https://nodejs.org/en/&quot;&gt;Node.js&lt;/a&gt; and then deploy it as an Electron app? So you could have a (self?) hosted version of the blogging software as well as a local version, or one, or the other.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Side quests of life</title>
    <link href="https://garden.travisbriggs.com/garden/blog/side-quests-of-life/"/>
    <updated>2018-07-20T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/blog/side-quests-of-life/</id>
    <content xml:lang="en" type="html">&lt;p&gt;I feel like I could get addicted to writing the way that some people get addicted to video games. Like, &amp;quot;You just wrote for over an hour, why do you still feel the desire to keep writing?&amp;quot;. Of course at this point I&#39;m kind of like a character in an RPG who is max level and doesn&#39;t feel like doing the &lt;a href=&quot;https://tvtropes.org/pmwiki/pmwiki.php/Main/Sidequest&quot;&gt;side quests&lt;/a&gt;. Not that I&#39;ve really earned anything close to max level in writing/blogging, besides having done it especially sporadically since 2003. Maybe it&#39;s like &lt;a href=&quot;https://www.eveonline.com/&quot;&gt;EVE Online&lt;/a&gt; where you earn experience constantly, even when offline, just by checking in on it every once in a while.&lt;/p&gt;
&lt;p&gt;Is there a word for that in video games, the side quest thing, when you really want to play a game but can&#39;t think of anything fun to do in it? I think that&#39;s the essential reason why a game like &lt;a href=&quot;https://www.rocketleague.com/&quot;&gt;Rocket League&lt;/a&gt; doesn&#39;t get stale. Because it&#39;s always the same thing, so you don&#39;t really expect anything more from it. Whereas, a game like Grand Theft Auto, you get various interesting missions throughout the course of the game, but in the endgame its kind of just the sandbox that it was the whole time.&lt;/p&gt;
&lt;p&gt;You know, I tried my hand at professional scissors, but I just couldn&#39;t make the cut. (Sorry, it popped into my head and I couldn&#39;t help myself.) I actually saw a Karate Studio and was trying to think of a karate pun. I&#39;m sure you would have gotten a kick out of that! (sorry)&lt;/p&gt;
&lt;p&gt;I just had an Elon Musk level idea, as I saw a man with a &amp;quot;please help&amp;quot; sign. Like, could you find a way to A/B test signs so that you can find the text with the most earning potential? Oh god, what is wrong with me. I am truly the tech bro elite, paving the forests of our imaginations with Machine Learning and Big Data.&lt;/p&gt;
&lt;p&gt;I like this anecdote I heard about Paul McCartney and the song &amp;quot;Hello, Goodbye&amp;quot;. I read it on Quora, but I&#39;ll just recall it from memory rather than dig up the link. Someone asked Sir Paul how he writes so many songs, and McCartney answered that anyone could write a song about anything. He then asked if the person who inquired would like to try it with him right now. That person answered that he or she had to go, so didn&#39;t have the time at the moment. &amp;quot;You say goodbye, and I say hello!&amp;quot; was McCartney&#39;s reply.&lt;/p&gt;
&lt;p&gt;Really inspiring stuff. Paul McCartney, there&#39;s someone who&#39;s at max level.&lt;/p&gt;
&lt;p&gt;I generally don&#39;t give too much credence to song lyrics. Sometimes they can be spot on, sometimes they are inspiring, sometimes they are evocative and very creative. But I don&#39;t think you have to be Dylan to make music with lyrics. Generally any sufficiently interesting phrase can be coerced into a lyric. I saw a YouTube video that talked about this and used the JFK &amp;quot;Ask not what your country can do for you, ask what you can do for your country&amp;quot; as an example. Like, think about the relative cadence and pacing of that phrase. It has a musicality all of its own, does it not? I agree with Paul McCartney: any phrase can be similarly massaged into musicality.&lt;/p&gt;
&lt;p&gt;One question that always bothered me though is like, Paul McCartney is still here right? So why hasn&#39;t he had a hit song in 35 years?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Say Say Say
Paul McCartney And Michael Jackson
Peaked at #1 on 12.10.1983&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Have his song writing skills atrophied? He doesn&#39;t have the right people around him? The world of musical fashion/style has passed him by? He can&#39;t sing anymore?&lt;/p&gt;
&lt;p&gt;There are myriad possible answers, and it&#39;s something I wonder about all the time.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Font of creativity</title>
    <link href="https://garden.travisbriggs.com/garden/blog/font-of-creativity/"/>
    <updated>2018-07-20T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/blog/font-of-creativity/</id>
    <content xml:lang="en" type="html">&lt;p&gt;I once read that creative people don&#39;t create for any other purpose than the fact that there are ideas bursting out of them, viciously, and if they don&#39;t put pen to paper or hand to instrument the ideas will cause them to explode.&lt;/p&gt;
&lt;p&gt;Another variation of this is that this is what &amp;quot;truly&amp;quot; or &amp;quot;really&amp;quot; creative people do. Which makes it even more insulting if that&#39;s not the way this particular amateur feels about his creative pursuits.&lt;/p&gt;
&lt;p&gt;But actually, I kind of feel that way about writing. I don&#39;t have anything in particular to write about (wait, wait don&#39;t go....) but I feel like I need to be smacking those keyboard keys and giving it a go anyways. I actually remember being in a bunch of online &lt;a href=&quot;https://en.wikipedia.org/wiki/MUD&quot;&gt;MUDs&lt;/a&gt; when I was a preteen and teen, and writing elaborate descriptions of my character and the world around him, just because I could. Those descriptions were most likely excessively filled with the most absurdly gratuitous adjectives and adverbs. I recall that as well. Still, it was a magical world that I could enter into and explore and create.&lt;/p&gt;
&lt;p&gt;Currently, I&#39;m the &lt;a href=&quot;https://en.wikipedia.org/wiki/Dungeon_Master&quot;&gt;DM&lt;/a&gt; of a &lt;a href=&quot;https://en.wikipedia.org/wiki/Editions_of_Dungeons_%26_Dragons#Dungeons_&amp;amp;_Dragons_5th_edition&quot;&gt;D&amp;amp;D 5th ed&lt;/a&gt; campaign with players I&#39;ve been playing with for almost three years now. It&#39;s fun, and I do have to stay on my toes and think up all kinds of essential details for every situation. I have to not only create the entire world, nay universe, that the characters inhabit, but the exquisite details of every room they enter and creature or person they encounter. I&#39;d love to do something similar online, with some kind of collaborative fiction framework or something. If anyone knows of such a thing, please contact me at &lt;a href=&quot;mailto:travis@travisbriggs.com&quot;&gt;travis@travisbriggs.com&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;For a while, I was the instigator of an online game of &lt;a href=&quot;https://en.wikipedia.org/wiki/Nomic&quot;&gt;Nomic&lt;/a&gt; that was going pretty well. You can find the &lt;a href=&quot;https://github.com/audiodude/tiny-nomic&quot;&gt;archives here on Github&lt;/a&gt;. It kind of fell apart as players lost interest and had other commitments. Which makes me even more in awe of &lt;a href=&quot;http://agoranomic.org/&quot;&gt;Agora&lt;/a&gt;, a nomic which has been in continual operation via mailing lists since 1993.&lt;/p&gt;
&lt;p&gt;Maybe I do have an unbounded font of creativity inside me. Maybe it&#39;s just a matter of opening the tap.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Listening to music while doing things</title>
    <link href="https://garden.travisbriggs.com/garden/blog/listening-to-music-while-doing-things/"/>
    <updated>2018-07-17T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/blog/listening-to-music-while-doing-things/</id>
    <content xml:lang="en" type="html">&lt;p&gt;How about this for an app idea: you listen to music and just type the lyrics into a chat room in real time. Or maybe you type the lyrics to the song and it stops when it gets to the words you haven&#39;t typed yet. Like some kind of inverted karaoke.&lt;/p&gt;
&lt;p&gt;I love listening to music but always feel compelled to be doing something while I do it, like playing a game or especially coding. I listen to music all day long while coding at my job. It&#39;s extremely satisfying, especially when you get into those zone/flow moments.&lt;/p&gt;
&lt;p&gt;I am thinking it&#39;s a sign that the freckles in our eyes are mirror images and when we kiss they&#39;re perfectly aligned.&lt;/p&gt;
&lt;p&gt;Wow I don&#39;t think I can even keep up with the lyrics on songs that are pretty fast like this one. It&#39;s fun to just type words though while music I like is playing. It&#39;s kind of evocative of the whole coding-in-the-zone experience and probably releases some of the same endorphins.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Suffer</title>
    <link href="https://garden.travisbriggs.com/garden/writings/suffer/"/>
    <updated>2017-06-11T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/writings/suffer/</id>
    <content xml:lang="en" type="html">&lt;p&gt;Why do I suffer the days&lt;br /&gt;
To cause me such anguish?&lt;br /&gt;
Press the hot iron of torture, they do,&lt;br /&gt;
As the spectre of the day&#39;s tasks,&lt;br /&gt;
Unfinished,&lt;br /&gt;
Flit into the orange flames of another dusk.&lt;br /&gt;
Her features refuse to soften&lt;br /&gt;
As she scolds,&lt;br /&gt;
&amp;quot;Why don&#39;t you read a book?&lt;br /&gt;
Why don&#39;t you play a game?&lt;br /&gt;
Why don&#39;t you watch television with me?&lt;br /&gt;
Why don&#39;t you do any number of things&lt;br /&gt;
That would distract you from the&lt;br /&gt;
Gnawing tug of disappointment you always feel&lt;br /&gt;
Around this time of evening?&amp;quot;&lt;br /&gt;
But how can I be bothered&lt;br /&gt;
To ease the burden brought only on myself&lt;br /&gt;
By myself?&lt;br /&gt;
Why would I shrink back&lt;br /&gt;
From the agony of songs unwritten&lt;br /&gt;
And poems unsung which&lt;br /&gt;
Cleave their hooks into my brain&lt;br /&gt;
And drag me, reluctantly, but with&lt;br /&gt;
Clandestine pleasure&lt;br /&gt;
Towards the realized, paltry, but&lt;br /&gt;
Very extant ouput that I here produced&lt;br /&gt;
By the end of the day?&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Empty Mind</title>
    <link href="https://garden.travisbriggs.com/garden/writings/empty-mind/"/>
    <updated>2017-05-11T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/writings/empty-mind/</id>
    <content xml:lang="en" type="html">&lt;p&gt;I look into my mind, and my mind is empty. In fact, it&#39;s full of all kinds of useless crap and clutter. It&#39;s full of anxiety about things done and left undone. There&#39;s pretty much a cacophony of garbage filling in every nook and cranny. But for the purposes of creative output, my mind is empty. I cannot lift a guitar, no less a pen, to write a song. I cannot type out the simplest of poems. I cannot devise a creative computer programming project that would hold my interest or serve to bring something useful into this world. No it is empty.&lt;/p&gt;
&lt;p&gt;Where are all the little colorful lego bricks that I should be picking up and snapping together to create something beautiful? Where are the sheets of empty paper and nice, fine tipped pen? Who took away the heavy construction paper, glitter and glue? Did it all get thrown away by accident, or worse, on purpose?&lt;/p&gt;
&lt;p&gt;I look into my mind, and my mind is empty. And it&#39;s not a good, mindful, zen emptiness. It&#39;s a clunky, stuttering, worthless emptiness. It&#39;s a full lack of anything to say, or anything to say anything about. My mind is an endlessly blinking cursor, with no characters trailing behind it. Just stuck, at the top left of an ephemeral empty page. But the emptiness of mind is not ephemeral. No, it persists from day to day.&lt;/p&gt;
&lt;p&gt;There is a cognitive theory that every thought is tied, in some way, to an emotion. Memories especially are recalled precisely because they have some emotional significance attached to them. What is my emotion when I reveal my empty mind? It&#39;s one of a resigned sadness, a feeling that this must be the way it has to be and there&#39;s nothing I can do about it.&lt;/p&gt;
&lt;p&gt;I look into my mind, and my mind is empty. There is no salvation from this null state. There is no way to bootstrap a creative emotion or thought from the broad nothingness that exists in my mind. I cannot write my way into, or out of, any corners. I cannot sing my way into a musical revelation. I cannot paint the double line on the highway to a fully working, healthy mind.&lt;/p&gt;
&lt;p&gt;But this is not depression. It&#39;s anxiety somewhat. But it&#39;s not a desperation or loneliness or sadness or something of that variety. These feelings are certainly present to one degree or another upon reflection on my empty mind. They are not it&#39;s cause.&lt;/p&gt;
&lt;p&gt;I look into my mind, and my mind is empty. Except for when it&#39;s not.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Pep talk</title>
    <link href="https://garden.travisbriggs.com/garden/writings/these-are-the-days/"/>
    <updated>2016-03-21T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/writings/these-are-the-days/</id>
    <content xml:lang="en" type="html">&lt;p&gt;These are the days.&lt;br /&gt;
The days when you have to show up,&lt;br /&gt;
Abandon the sad little pout on your face,&lt;br /&gt;
Take a deep breath,&lt;br /&gt;
Give yourself a quick pep talk,&lt;br /&gt;
And get that shit done.&lt;/p&gt;
&lt;p&gt;These are the days.&lt;br /&gt;
The days when people don&#39;t care about your excuses,&lt;br /&gt;
Or your past successes.&lt;br /&gt;
When all that matters is today, the now,&lt;br /&gt;
When you have one job, just one,&lt;br /&gt;
And you better get it done.&lt;/p&gt;
&lt;p&gt;These are the days.&lt;br /&gt;
The cloudy, damp, overcast grays,&lt;br /&gt;
The nine to five that&#39;s put you in a haze,&lt;br /&gt;
You need a deep breath to figure out the ways,&lt;br /&gt;
To kick doubt to the curb while confidence stays.&lt;br /&gt;
A little pep talk to help you&lt;br /&gt;
Get it done.&lt;/p&gt;
&lt;p&gt;These are the days that make up our lives. And if we don&#39;t do the things we want to do, make the things we want to make, and love the people we want to love on these days, there will be no other time for any of it.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>(Untitled)</title>
    <link href="https://garden.travisbriggs.com/garden/writings/untitled-2/"/>
    <updated>2016-01-11T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/writings/untitled-2/</id>
    <content xml:lang="en" type="html">&lt;p&gt;They said you can&#39;t write poetry while&lt;br /&gt;
listening to music.&lt;br /&gt;
Well no one said&lt;br /&gt;
that -- Okay, I said that, actually.&lt;br /&gt;
But maybe I was writing a poem&lt;br /&gt;
that needed some inspiration.&lt;br /&gt;
A bit of zest from someone else&#39;s&lt;br /&gt;
poetry and music, illuminating sound.&lt;br /&gt;
Words walk across my brain and&lt;br /&gt;
clash&lt;br /&gt;
with the words that walk down the song.&lt;br /&gt;
I really have to write poetry, write now&lt;br /&gt;
edit later,&lt;br /&gt;
and feel ambivalent about&lt;br /&gt;
entering the entire enterprise.&lt;/p&gt;
&lt;p&gt;Maybe I&#39;ll pluck words directly from this&lt;br /&gt;
The Promise Ring song that I&#39;m listening to&lt;br /&gt;
at the moment.&lt;br /&gt;
The prominent, superstar line of this song is&lt;br /&gt;
&#39;Happiness is all the rage&#39;. So if you&#39;ve&lt;br /&gt;
ever heard of it,&lt;br /&gt;
you now know the song I&#39;m talking about.&lt;br /&gt;
Except that my body and my mind are&lt;br /&gt;
distinctly not&lt;br /&gt;
on the so-called &amp;quot;same page&amp;quot;. And in fact&lt;br /&gt;
this might be the first time I&#39;ve listened to&lt;br /&gt;
any&lt;br /&gt;
The Promise Ring song.&lt;/p&gt;
&lt;p&gt;I don&#39;t know if you can hide easter eggs in poems,&lt;br /&gt;
I&#39;m sure you can.&lt;br /&gt;
If I was more deft at the art, I would hide a&lt;br /&gt;
hyperlink in this poem. And it would&lt;br /&gt;
link&lt;br /&gt;
you to the songs I was listening to when I wrote it.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Best Wrecks</title>
    <link href="https://garden.travisbriggs.com/garden/writings/best-wrecks/"/>
    <updated>2015-12-06T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/writings/best-wrecks/</id>
    <content xml:lang="en" type="html">&lt;p&gt;Throw everything away.&lt;br /&gt;
Puke more every day.&lt;br /&gt;
Fetch a wretch&#39;s retch and&lt;br /&gt;
Toss it sloppily abroad.&lt;br /&gt;
Hide all small, small tiny&lt;br /&gt;
From everything, and also mostly&lt;br /&gt;
The wretched mess of best wrecks that is your life.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Hurricane</title>
    <link href="https://garden.travisbriggs.com/garden/writings/hurricane/"/>
    <updated>2015-11-23T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/writings/hurricane/</id>
    <content xml:lang="en" type="html">&lt;p&gt;What I really need is a pretty place to write poetry.&lt;br /&gt;
A pretty place to place pretty poetry.&lt;br /&gt;
A place that is full of empty space that&lt;br /&gt;
longs to be filled with my words and&lt;br /&gt;
especially the metaphors that are so elegantly&lt;br /&gt;
constructed. Even if the line endings are somewhat&lt;br /&gt;
haphazard and none of the lot rhymes in any&lt;br /&gt;
considerable way, the point of the endeavor and&lt;br /&gt;
its ultimate raisin de etre or whatever is that&lt;br /&gt;
it brings my ideas and feelings into the world.&lt;br /&gt;
My naked fleshy wet body of poetry bursts&lt;br /&gt;
screaming into the world and now it&#39;s a tornado or&lt;br /&gt;
really a combination tornado-hurricane like device that&lt;br /&gt;
turns with glory and rips the tattered rooftop&lt;br /&gt;
off my own inequities. There is nothing left of me&lt;br /&gt;
in the wake of its great destruction, there are only&lt;br /&gt;
the words.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Gearing up</title>
    <link href="https://garden.travisbriggs.com/garden/writings/gearing-up/"/>
    <updated>2015-11-23T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/writings/gearing-up/</id>
    <content xml:lang="en" type="html">&lt;p&gt;What is the fastest,&lt;br /&gt;
the fastest humanly possible way&lt;br /&gt;
that poetry could be written?&lt;br /&gt;
It would probably be the job of a machine, really.&lt;br /&gt;
To excel in the speed poetry department, you would&lt;br /&gt;
probably want to enlist the help of a friendly robot&lt;br /&gt;
or at least a properly configured handy computing device.&lt;br /&gt;
But then could you say that the poetry was humanly written,&lt;br /&gt;
humanly formed? Would it still express humanity?&lt;br /&gt;
Some would say that the ultimate meaning of a poem is&lt;br /&gt;
in the head of the person reading it, it is there that it&lt;br /&gt;
encompasses whatever humanity it is to have. So in that sense,&lt;br /&gt;
Mr Robo-Poet would be a handy invention indeed.&lt;br /&gt;
He would smile at you from beyond his computer-y face and&lt;br /&gt;
robotic and metallic inside parts. Well, you couldn&#39;t tell&lt;br /&gt;
that he was smiling but you know he would be.&lt;br /&gt;
How could he not?&lt;br /&gt;
He&#39;s brought you ream after ream of&lt;br /&gt;
fresh hot poetry,&lt;br /&gt;
ready for consumption and contemplation and&lt;br /&gt;
deconstruction and criticism.&lt;br /&gt;
And copy and paste.&lt;br /&gt;
And copy and paste.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Blackness</title>
    <link href="https://garden.travisbriggs.com/garden/writings/blackness/"/>
    <updated>2015-11-23T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/writings/blackness/</id>
    <content xml:lang="en" type="html">&lt;p&gt;My brain is the only thing left to die.&lt;br /&gt;
It must yield to the black emptiness.&lt;br /&gt;
It must be absorbed, sponge-like, into the&lt;br /&gt;
decaying stew of the rest of my life.&lt;br /&gt;
The tiniest spark of electricity might keep me&lt;br /&gt;
vivid for a moment more.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Pavement Windshield Pop</title>
    <link href="https://garden.travisbriggs.com/garden/writings/pavement-windshield-pop/"/>
    <updated>2015-09-24T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/writings/pavement-windshield-pop/</id>
    <content xml:lang="en" type="html">&lt;p&gt;There&#39;s a vibrant undercurrent&lt;br /&gt;
to our daily existence.&lt;br /&gt;
It&#39;s an unspoken thing, a kind of&lt;br /&gt;
flowing zeitgeist made up of all the&lt;br /&gt;
outlines of objects that break up the&lt;br /&gt;
bare blue bellows of the sky.&lt;br /&gt;
The treeline flows up from the ground,&lt;br /&gt;
the cars zip across the cold uncaring pavement,&lt;br /&gt;
and your eyes and my eyes buzz past it all,&lt;br /&gt;
taking in what we will and calling it life.&lt;br /&gt;
That&#39;s all life is, which -pow- arrives like&lt;br /&gt;
a car crash, no one ever sees it coming, or sees it&lt;br /&gt;
coming to this,&lt;br /&gt;
but at that instant the perfect crystal structure of the story that you told,&lt;br /&gt;
the good one, the one that might as well be your life itself,&lt;br /&gt;
makes a crunching sound of crumpled bumper.&lt;br /&gt;
It makes a crashing, creaking cry of defeat against&lt;br /&gt;
the sad indifferent sky of replete confusion,&lt;br /&gt;
and is forever extinguished.&lt;br /&gt;
What will you make of yourself now?&lt;br /&gt;
You&#39;ll craft a new artifice from the throbbing subtext&lt;br /&gt;
of the beauty and tragedy around you.&lt;br /&gt;
I&#39;ll do it too.&lt;br /&gt;
But will we be any better off, rinse and repeat?&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Just Rain</title>
    <link href="https://garden.travisbriggs.com/garden/writings/just-rain/"/>
    <updated>2015-09-22T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/writings/just-rain/</id>
    <content xml:lang="en" type="html">&lt;p&gt;Sometimes things are easy&lt;br /&gt;
Sometimes things are hard&lt;br /&gt;
Some things we keep close to us&lt;br /&gt;
Others we discard&lt;br /&gt;
Sometimes rain smells yummy&lt;br /&gt;
Sometimes it smells gross&lt;br /&gt;
Often we&#39;re reminded of&lt;br /&gt;
The things that we kept close&lt;br /&gt;
Some things can&#39;t be spoken&lt;br /&gt;
Some things can&#39;t explain&lt;br /&gt;
Sometimes we are crying tears&lt;br /&gt;
Other times it&#39;s rain&lt;br /&gt;
Sometimes we remember&lt;br /&gt;
Sometimes we forget&lt;br /&gt;
Often times the memories&lt;br /&gt;
Don&#39;t make sense quite yet&lt;br /&gt;
Some things blend together&lt;br /&gt;
Some things stand apart&lt;br /&gt;
Why oh why oh why must I&lt;br /&gt;
Attend this broken heart&lt;br /&gt;
Sometimes things are clever&lt;br /&gt;
Sometimes things are trite&lt;br /&gt;
Sometimes you are by yourself&lt;br /&gt;
In deepest darkest night&lt;br /&gt;
Sometimes it&#39;s a horror&lt;br /&gt;
Sometimes it&#39;s a shame&lt;br /&gt;
Sometimes you might ask yourself&lt;br /&gt;
The reason for this pain&lt;br /&gt;
Sometimes things are easy&lt;br /&gt;
Sometimes things are hard&lt;br /&gt;
Some things we hold up in scorn&lt;br /&gt;
Some in high regard&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Rainbow Static</title>
    <link href="https://garden.travisbriggs.com/garden/writings/rainbow-static/"/>
    <updated>2015-09-14T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/writings/rainbow-static/</id>
    <content xml:lang="en" type="html">&lt;p&gt;I&#39;m too old to smile. The rainbow static&lt;br /&gt;
of a million stations presses down on my body&lt;br /&gt;
with the weight of an entire civilization.&lt;br /&gt;
It crushes me. It&#39;s all nonsense. Even the&lt;br /&gt;
parts that are meant to sound like the&lt;br /&gt;
latest, newest, hottest, hippest, coolest, trendiest&lt;br /&gt;
songs that you just can&#39;t wait to hear --&lt;br /&gt;
even those parts are just more entitled white noise.&lt;br /&gt;
So much useless noise, but here we are,&lt;br /&gt;
slaves to its production. It would be cliche to say&lt;br /&gt;
that we&#39;re cogs in some unfeeling machine, but it would&lt;br /&gt;
also be glorifying our position. We are not cogs.&lt;br /&gt;
We are less than cogs. We are the ineffectual specks&lt;br /&gt;
of garbage in the trash heap of popular culture.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Gray</title>
    <link href="https://garden.travisbriggs.com/garden/writings/gray/"/>
    <updated>2015-09-14T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/writings/gray/</id>
    <content xml:lang="en" type="html">&lt;p&gt;The rainy and gray&lt;br /&gt;
Of this late summer day&lt;br /&gt;
Fits my mood&lt;br /&gt;
Quite well, actually, and it makes me&lt;br /&gt;
Smile in the fullness of its melancholy.&lt;br /&gt;
Delicious melancholy that you can bite right&lt;br /&gt;
Into, and get a juicy mouthful. The un-joy&lt;br /&gt;
Drips off your chin. It&#39;s satisfying to know&lt;br /&gt;
That the world, the weather, the movement of&lt;br /&gt;
The goddamn oceans are all in agreement that&lt;br /&gt;
Today is not an exuberant day. Today is a day&lt;br /&gt;
For some healthy, hearty wallowing and maybe&lt;br /&gt;
A smidge of reflection on what it&#39;s like to&lt;br /&gt;
Be me.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Toil</title>
    <link href="https://garden.travisbriggs.com/garden/writings/toil/"/>
    <updated>2015-08-07T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/writings/toil/</id>
    <content xml:lang="en" type="html">&lt;p&gt;Without a struggle, life is poorly spent&lt;br /&gt;
On follies, fancies, fliting past your eyes.&lt;br /&gt;
Another day of work to pay the rent.&lt;br /&gt;
Your grim dissatisfaction&#39;s no surprise.&lt;br /&gt;
The work, it seems, has found a fallow field.&lt;br /&gt;
A place where nothing bountiful may grow.&lt;br /&gt;
While pressing on the blister makes it yield,&lt;br /&gt;
The point of senseless work, you&#39;ll never know.&lt;br /&gt;
And even if a fair deposit makes&lt;br /&gt;
The bossman at conclusion of the day,&lt;br /&gt;
Yet never rests your conscious as it shakes&lt;br /&gt;
Your head to make some sense of the foray.&lt;br /&gt;
For while the wasted hours pile on&lt;br /&gt;
And fonts of inspiration be they dried,&lt;br /&gt;
Take heart that in a moment you&#39;ll be gone&lt;br /&gt;
And none will ever care you ever tried.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Preoccupied</title>
    <link href="https://garden.travisbriggs.com/garden/writings/preoccupied/"/>
    <updated>2015-08-07T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/writings/preoccupied/</id>
    <content xml:lang="en" type="html">&lt;p&gt;The poet, it seemed,&lt;br /&gt;
was preoccupied with death and&lt;br /&gt;
wrote poems, fiercely stripped&lt;br /&gt;
of other intentions and inquiries,&lt;br /&gt;
which invited those readers who,&lt;br /&gt;
with naive aims and scarcely guarded dispositions,&lt;br /&gt;
were invited into the harsh yet peaceful&lt;br /&gt;
embrace of the same.&lt;br /&gt;
He (the poet) related dearly&lt;br /&gt;
to these grim works,&lt;br /&gt;
flowing furiously and free from&lt;br /&gt;
the heart of his past disappointments and&lt;br /&gt;
future anxieties.&lt;br /&gt;
Why, the pale beast such a&lt;br /&gt;
sweet seductress surface?&lt;br /&gt;
Why dwell on ultimate demise?&lt;br /&gt;
Why let the fragrant afternoon&lt;br /&gt;
pass, unexamined, into the abyss&lt;br /&gt;
of lost Saturdays and holidays&lt;br /&gt;
which served only to taunt the&lt;br /&gt;
faculties of his reason and&lt;br /&gt;
twist the object of his imagination&lt;br /&gt;
towards the bitter machinations of&lt;br /&gt;
Death itself?&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Pillows and Sheets</title>
    <link href="https://garden.travisbriggs.com/garden/writings/pillows-and-sheets/"/>
    <updated>2015-08-07T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/writings/pillows-and-sheets/</id>
    <content xml:lang="en" type="html">&lt;p&gt;I&#39;m feeling sour&lt;br /&gt;
I haven&#39;t got the power&lt;br /&gt;
To get out of my bed today&lt;br /&gt;
Alone and anxious&lt;br /&gt;
I haven&#39;t got the patience&lt;br /&gt;
To go and face that dread today&lt;br /&gt;
Close my eyes&lt;br /&gt;
Cannot rest&lt;br /&gt;
Feel the pain&lt;br /&gt;
In my chest&lt;br /&gt;
I&#39;m feeling lonely&lt;br /&gt;
Anxiety&#39;s the only&lt;br /&gt;
Friend that I will greet today&lt;br /&gt;
With thoughts unruly&lt;br /&gt;
Anxiety is truly&lt;br /&gt;
Not one to be beat today&lt;br /&gt;
Take a breath&lt;br /&gt;
Can&#39;t relax&lt;br /&gt;
Tons of fear&lt;br /&gt;
Coming back&lt;br /&gt;
I feel defeated&lt;br /&gt;
Discouraged and retreated&lt;br /&gt;
With thoughts heavily pounding&lt;br /&gt;
The plan, it is resounding:&lt;br /&gt;
I won&#39;t get out of bed today.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Concession</title>
    <link href="https://garden.travisbriggs.com/garden/writings/concession/"/>
    <updated>2015-08-07T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/writings/concession/</id>
    <content xml:lang="en" type="html">&lt;p&gt;Happy poem, happy sound&lt;br /&gt;
Happy words fly round and round&lt;br /&gt;
Happy metre, happy rhyme&lt;br /&gt;
Happy feelings all the time&lt;br /&gt;
Happy happy happiness&lt;br /&gt;
Happy thoughts for to confess&lt;br /&gt;
Happy moment, happy life&lt;br /&gt;
Happy as I grip the knife&lt;br /&gt;
Happy as I start to bleed&lt;br /&gt;
Happy world, I must concede&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Thoughts of Home</title>
    <link href="https://garden.travisbriggs.com/garden/writings/thoughts-of-home/"/>
    <updated>2014-12-02T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/writings/thoughts-of-home/</id>
    <content xml:lang="en" type="html">&lt;p&gt;The generally accepted wisdom is that you can never go home again. There is a very famous novel with this title, or with this as the first line or something. Something very famous. And it&#39;s kind of entered the collective unconscious, or maybe even as far forward as the collective conscious itself. We all have this feeling like, yes, that&#39;s true. You can never go home again.&lt;/p&gt;
&lt;p&gt;As an aside, you have to wonder if the name &amp;quot;post-post-modernism&amp;quot; is itself &amp;quot;post-post-modern&amp;quot; or if describing it as such is only one-post-modern. Maybe post-post-modernism is like the fourth dimension. Mathematically we know that it must exist somewhere, but we&#39;re not sure exactly what it looks like, what it tastes and feels like. It doesn&#39;t quite fit in our brains.&lt;/p&gt;
&lt;p&gt;So the post-post-modern -- or maybe just one-post-modern -- notion is this: No, it&#39;s not really that you can never go home again, it&#39;s that home never existed in the first place. It&#39;s just this mish-mash of ideas and feelings that you have in your mind but it was never a real place to begin with. Maybe that&#39;s not even a post-modern thought as much as its a theme slash line-of-dialogue from a Zack Braff movie (the movie is Garden State).&lt;/p&gt;
&lt;p&gt;Home is where the heart is, you know. So if you can&#39;t go there, or it doesn&#39;t exist, what does that say about the prospects of extant love and friendship in our seemingly cold, cruel world? Maybe the reason there&#39;s no place like home is that home is no place. Your heart is there, in this no-person&#39;s-land, and that is why it is always longing. Always yearning for some love or some more love or some kindness or some comradere or some more comradere or some music. Your heart always wants these things because it is trying to go home and there&#39;s no place that home is.&lt;/p&gt;
&lt;p&gt;Maybe it&#39;s like that thing about the river that you can never step into twice. When you say it like &amp;quot;You never step into the same river twice,&amp;quot; it sounds like it&#39;s some fault of yours. Like if you tried harder you could somehow do it. &lt;em&gt;You&lt;/em&gt; never step into the same river twice. But of course all of the blame is on the river. If I were to write that platitude today, I would write it as &amp;quot;When you step into a river, that river ceases to exist before you even step out of it&amp;quot;. And home is like that. Think about the things that define your home, even for a basic definition of home as being say, a building where you grew up. Not that this is a stable definition to begin with. Even if you simplify it to a room where you slept as a child, or the majority of your childhood, was that room ever the same? Some days the bed would be made, some it would be unmade. Sometimes the TV would be on, other times were those before you were allowed to have a TV. Dressers came and went, maybe a desk was added or removed. But even just the basic accoutrements of adolesence: one day your pokemon cards are here, the next a pile of hair elastics is there, the day after you have a homework assignment on the floor.&lt;/p&gt;
&lt;p&gt;Home doesn&#39;t exist in a very zen sense, the way that none of us exist. It&#39;s like the Heisenberg uncertaintiy principle, which states something like the better you know a particle&#39;s position the worse you know it&#39;s acceleration and vice-versa. If you can put your finger on a specific place or person or feeling that means home to you, very specifically, then what you&#39;ve got is only a single aspect of it, and that specific feature probably doesn&#39;t feel very homey. On the other hand, if you gather up a hodge-podge of different ideas and places and feelings and holidays and accidents that represent home -- then what do you have? It&#39;s just a jumble, nothing that you could accurately &amp;quot;put your finger on&amp;quot; so to speak.&lt;/p&gt;
&lt;p&gt;Yeah, home is kind of like that.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>The Building Building</title>
    <link href="https://garden.travisbriggs.com/garden/writings/the-building-building/"/>
    <updated>2014-09-08T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/writings/the-building-building/</id>
    <content xml:lang="en" type="html">&lt;p&gt;I passed the Building Building every day, but it wasn&#39;t until the Fall that I really understood what they did there. It seems extraordinary at first. Your brain doesn&#39;t really want to accept it. A building building building. That is, a building that builds other buildings. It reminded me of that sentence with the buffalo (look it up).&lt;/p&gt;
&lt;p&gt;Actually, I couldn&#39;t have been expected to understand what was going on in the Building Building because I never took the time to investigate it. Sure, I had heard the loud grinding sounds during the day. Seen the plumes of smoke and steam rising from the roof. I&#39;d even seen people milling in and out, the workers who facilitated the buildings of the Building Building. But I had never really noticed any of it. It had all passed by my vacant mind, leaving no trace at all.&lt;/p&gt;
&lt;p&gt;But now that I know what goes on there, now it makes sense. You need to build a building. Are you going to do it out in the open? Are you just going to lackadaisically start building things in the middle of nowhere? No, certainly not. The process of building requires a building itself.&lt;/p&gt;
&lt;p&gt;Of course, all of this makes you wonder: If the Building Building builds buildings, are they building a building to build Building Buildings?&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Lazily slapping the snare drum</title>
    <link href="https://garden.travisbriggs.com/garden/writings/lazily-slapping-the-snare-drum/"/>
    <updated>2014-09-08T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/writings/lazily-slapping-the-snare-drum/</id>
    <content xml:lang="en" type="html">&lt;p&gt;If I never knew her, it would be too soon. Wait. Scratch that. If I only met her once, it would be more than a lifetime. No no, that’s not right. Let me start again.&lt;/p&gt;
&lt;p&gt;She called herself Jilly, which I thought was a peculiar name to begin with, and certainly something strange to be so proud of. It sounds like a 6 year old’s name for a doll or something. Or some kind of sea creature. Jilly would kill me if she read this, actually. She wasn’t particularly introspective. Retrospective? Introspective. What I’m trying to say is, Jilly didn’t spend too much time reflecting on the world around her. Full pedal to the floor, gas your ass straight ahead cowboy style was the way Jilly liked things. She threw an ashtray at me the first time I met her.&lt;/p&gt;
&lt;p&gt;But things calmed down after that, as much as anything with Jilly could be considered calm. She was like a drummer lazily slapping a snare drum 15 seconds after a song had ended. Like in rehearsal. Sorry, “practice” — my bandmates always hated when I called it rehearsal. But you know what I’m talking about, right? The whole band has stopped the song, it’s over, but the drummer is just slapping that snare still. Pounding in your ear, but you barely hear it because it’s quiet compared to the cacophony that preceded it. Jilly is like that. Like you look around 3 weeks later, and why is she still spending nights on your couch. Weirdo. We would hook up and then she would go sleep on the couch, as if that was a very Christian thing to do. Like we weren’t really sleeping together, ha ha, nudge wink as she lit up another cigarette.&lt;/p&gt;
&lt;p&gt;I only started smoking because Jilly liked to do it and I figured I might not mind smelling it all over her if I was doing it myself.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Introduction</title>
    <link href="https://garden.travisbriggs.com/garden/writings/introduction/"/>
    <updated>2014-09-08T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/writings/introduction/</id>
    <content xml:lang="en" type="html">&lt;p&gt;I thought about just jumping in and adding fiction to this new blog. After all, the URL is &lt;a href=&quot;http://writings.travisbriggs.com/&quot;&gt;http://writings.travisbriggs.com&lt;/a&gt;. Surely people would understand what it is about just from that, right? But then I thought that for the inaugural post I should put something down about my goals for this blog and what you can expect to find here. Mostly because I don&#39;t have any fresh fiction to add at the moment.&lt;/p&gt;
&lt;p&gt;First off, this blog is written using the Ghost blogging platform. Ghost gives me something extremely simple and lightweight, that doesn&#39;t use PHP (it uses Node.js instead). Since Ghost is also extremely new and shiny, it has some appeal as a new toy, but also I feel like I can grow with the platform. Perhaps I can design a theme that&#39;s appropriate for short fiction pieces (unlikely) or contribute some code to the server or admin (slightly more likely).&lt;/p&gt;
&lt;p&gt;When I first wanted to start boldly writing a &amp;quot;micro story&amp;quot; (I&#39;m not sure if anyone uses that term), I thought about launching a new blog for it. But then I realized that no one reads the blog I already have, and the effort of setting up a new one would get in the way of my immediate creative impulse. So, I just posted the story to my current blog with no expectation. Since I have no readers, this didn&#39;t really bother anyone. But I dreamed of a better way.&lt;/p&gt;
&lt;p&gt;Well there is a confluence of tools (Ghost) and inspiration now. This is happening. Prepare thee the world for my creation!&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Barney</title>
    <link href="https://garden.travisbriggs.com/garden/writings/barney/"/>
    <updated>2014-09-08T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/writings/barney/</id>
    <content xml:lang="en" type="html">&lt;p&gt;The red light was on when Barney woke up. Shit! It had to be a drill or a malfunction of the measuring equipment or something. According to his panel, according to the big red light in the middle of it that was shining brightly, there had been a major event in the past however long Barney was out for. The PCU, or Primary Containment Unit, had been breached. This meant one of two things: either toxic doses of radiation were leaking out , or — Barney&#39;s mind made the leap — something was inside the time core.&lt;/p&gt;
&lt;p&gt;As long as there was someone in there — something in there, Barney corrected himself, the facility was still years away from tests with organic material, let alone living organisms — but as long as it was occupied, the time core would operate on the Princeton Principle. The matter would be sent backwards and forwards in time simultaneously, creating an ever larger causal loop. Assuming that the material was stable, and there was enough energy supplying the core, contact with the Past and the Future should occur with a wide enough gap to avoid inconsistencies in the time line.&lt;/p&gt;
&lt;p&gt;That&#39;s how it worked in the experiments they had been conducting. But this was no experiment, Barney thought as he scanned through the output of the sensor array and pulled up the access logs through the beginning of his shift. It&#39;s 2:17 AM, this is a security breach!&lt;/p&gt;
&lt;p&gt;Or a false alarm. All the scientists working on the project, even the low level staff and security like Barney, knew that the facility was built with a mishmash of state of the art cutting edge materials (eg the time core itself and it&#39;s component elements), aging old Soviet castoffs from the cold war (much of the infrastructure), and whatever the Secondary Team could get their hands on from the junkyards and trade shows. At least one or two experiments a week were called off when a truss rod got stuck, or the lab floor became flooded, or any of a number of insulting inconveniences struck.&lt;/p&gt;
&lt;p&gt;Barney flipped on the visuals. The cameras trained on the platform, where the time core rested, showed nothing out of the ordinary. Obviously the core had been activated, but according to Barney&#39;s readouts, it was operating at a normal capacity, with no dangerous fluctuations in energy or radiation level. Perhaps there was a bug in a scheduler somewhere that had caused the activation.&lt;/p&gt;
&lt;p&gt;The Primary Team was aware of the bugs that were still crawling around in the facility&#39;s systems, which was the precise reason Barney&#39;s shift existed. But he was the only one there at this hour. And there certainly weren&#39;t any protocols to be followed.&lt;/p&gt;
&lt;p&gt;The phone rang and Barney jumped six inches. He reached for it, a modest sweat dripping down his face.&lt;/p&gt;
&lt;p&gt;&amp;quot;Alpha Station, Carlson reporting,&amp;quot; he barked into the phone like so many times before.&lt;/p&gt;
&lt;p&gt;&amp;quot;Barney, what.....what in the hell is going on down there?&amp;quot; shouted a voice from the phone.&lt;/p&gt;
&lt;p&gt;&amp;quot;D-Down here?&amp;quot; Barney stuttered back. &amp;quot;Well, I just opened visuals on the-&amp;quot;&lt;/p&gt;
&lt;p&gt;&amp;quot;The goddamn time core is active! Tell me you weren&#39;t sleeping,&amp;quot; the voice admonished, &amp;quot;What started it up? There&#39;s no experiment scheduled until oh nine hundred&amp;quot;&lt;/p&gt;
&lt;p&gt;&amp;quot;Oh yes.....well....&amp;quot; Barney continued to stammer, trying to buy himself some time. The other voice on the line was Hal Ryder, Senior Operations Director for the Primary Team. He sounded pissed. He also sounded confused and concerned.&lt;/p&gt;
&lt;p&gt;&amp;quot;Don&#39;t bullshit me, Barney!&amp;quot; shouted Hal. &amp;quot;I don&#39;t care what you were doing, we need to asses the situation with the core immediately.&amp;quot; Hal was practical and generally kept a cool head, traits which certainly helped him in his position on Primary Team. &amp;quot;Listen, I&#39;ll be down there in 20 minutes. Keep visual contact with the core and don&#39;t attempt any intervening measures until I get there.&amp;quot;&lt;/p&gt;
&lt;p&gt;&amp;quot;Yes, sir&amp;quot; Barney answered flatly.&lt;/p&gt;
&lt;p&gt;&amp;quot;Just make sure the—&amp;quot; Hal started, but he was cut off by the shriek of an alarm. It sounded like a cliched mix of every red alert, high emergency, system critical siren he had ever heard. But Hal had never heard it coming from their alpha monitoring station.&lt;/p&gt;
&lt;p&gt;&amp;quot;Make that 10 minutes!&amp;quot; Hal shouted into the phone, but he wasn&#39;t sure Barney heard him.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Absolute Power</title>
    <link href="https://garden.travisbriggs.com/garden/writings/absolute-power/"/>
    <updated>2014-09-08T00:00:00Z</updated>
    <id>https://garden.travisbriggs.com/garden/writings/absolute-power/</id>
    <content xml:lang="en" type="html">&lt;p&gt;I have absolute power over the guy sitting next to me on this bus. I can write anything I want about him, and the norms of politeness indicate that he can&#39;t say or do anything about it. He can never acknowledge that he was reading my words over my shoulder, because that would be a heinous breach of etiquette. Not that what I have to say about him is any less heineous.&lt;/p&gt;
&lt;p&gt;I bet you expect a long string of insulting words and comments now. Maybe a shot at his family or something about his physical appearance. Actually, this is one of those times, dear reader, where the fact that this blog is fiction comes necessarily into question. Everything I&#39;ve written here could have been written about a real person. The narrator could very well be the real life me.&lt;/p&gt;
&lt;p&gt;But no, it&#39;s all a fiction. These words pepper the imagination and that&#39;s where they came from.&lt;/p&gt;
&lt;p&gt;Which is precisely what we want the idiot next to me to believe...&lt;/p&gt;
</content>
  </entry>
</feed>