<?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-06-25T00:00:00Z</updated>
  <id>https://garden.travisbriggs.com/</id>
  <author>
    <name>Travis Briggs</name>
    <email>audiodude@gmail.com</email>
  </author>
  <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 AI bubble?&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></title>
    <link href="https://garden.travisbriggs.com/_gemini/link-suggestions/"/>
    <updated>2026-06-09T13:34:03Z</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;halloween-sadness&quot;,&quot;rationale&quot;:&quot;The halloween-sadness node discusses costume parties and cosplay, which connects thematically to Abby being a costume designer.&quot;},{&quot;slug&quot;:&quot;new-year-2025&quot;,&quot;rationale&quot;:&quot;The new-year-2025 node mentions Abby by name and describes shared experiences with her, elaborating on their relationship.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:259,&quot;cache_creation_input_tokens&quot;:25023,&quot;cache_read_input_tokens&quot;:0,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:25023,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:97,&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 with 10 views on Bandcamp&quot;,&quot;rationale&quot;:&quot;The Spotify node directly discusses royalty structures and the demonetization of small artists, which is closely related to the long-tail stratification argument made here.&quot;},{&quot;slug&quot;:&quot;YouTube&quot;,&quot;anchor_text&quot;:&quot;YouTube&quot;,&quot;context&quot;:&quot;10 artists with a billion views on Spotify/YouTube and a billion artists with 10 views on Bandcamp&quot;,&quot;rationale&quot;:&quot;YouTube is explicitly named as part of the platform duopoly being contrasted with Bandcamp&#39;s long-tail model.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;ai-music-trends&quot;,&quot;rationale&quot;:&quot;That node discusses the stratification of the music industry and the devaluation of music, directly paralleling the Bandcamp node&#39;s concern about the Music Industry splitting into mega-artists and invisible long-tail artists.&quot;},{&quot;slug&quot;:&quot;DistroKid&quot;,&quot;rationale&quot;:&quot;DistroKid is used by the author to distribute Danger Third Rail music, making it a relevant alternative/complement to Bandcamp as a musician&#39;s distribution tool discussed in the broader context of this node.&quot;},{&quot;slug&quot;:&quot;motivation-music&quot;,&quot;rationale&quot;:&quot;That node discusses the author&#39;s motivation for making music as an independent artist under Danger Third Rail, which is the same context in which Bandcamp&#39;s value to small artists is being evaluated here.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1105,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:577,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:246},&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;slug&quot;:&quot;Abby&quot;,&quot;anchor_text&quot;:&quot;my wedding party&quot;,&quot;context&quot;:&quot;I have a friend named Christian, who was in my wedding party, and who I worked&quot;,&quot;rationale&quot;:&quot;The wedding party reference connects directly to the Abby node, which describes Travis&#39;s marriage and wedding.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;Python&quot;,&quot;rationale&quot;:&quot;The Python node mentions Christian by name as a colleague at Qwobl, providing more context about their working relationship.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:73,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:111,&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;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;intrisic motivation&quot;,&quot;rationale&quot;:&quot;DBT often addresses motivation and behavioral patterns, and this node discusses intrinsic vs extrinsic motivation in a therapeutic context.&quot;},{&quot;slug&quot;:&quot;now&quot;,&quot;rationale&quot;:&quot;The &#39;Now&#39; node mentions mental health improvements and working on intrinsic motivation, which connects to DBT as a therapeutic practice.&quot;},{&quot;slug&quot;:&quot;philosophy&quot;,&quot;rationale&quot;:&quot;The philosophy node touches on existentialism and determinism, themes that intersect with DBT&#39;s dialectical approach to acceptance and change.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:107,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:129,&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;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 is Travis&#39;s band/recording project that uses DistroKid to distribute music to Spotify.&quot;},{&quot;slug&quot;:&quot;Bandcamp&quot;,&quot;rationale&quot;:&quot;Bandcamp is discussed as an alternative music distribution model, relevant to DistroKid&#39;s role in music distribution.&quot;},{&quot;slug&quot;:&quot;Spotify&quot;,&quot;rationale&quot;:&quot;Spotify is the platform where DistroKid-distributed tracks from Danger Third Rail appear.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:55,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&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;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;The danger-third-rail node mentions using Fiverr for professional mixing and mastering services, directly connecting Fiverr to the author&#39;s music project.&quot;},{&quot;slug&quot;:&quot;new-danger-third-rail-ep&quot;,&quot;rationale&quot;:&quot;This node discusses sending tracks to a session drummer and getting professional work done, which contextually relates to using freelance platforms like Fiverr.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:53,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:110,&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;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;slug&quot;:&quot;programming languages&quot;,&quot;anchor_text&quot;:&quot;Java&quot;,&quot;context&quot;:&quot;Here is a list: * Python * javascript-typescript * Ruby on Rails * Perl * Java&quot;,&quot;rationale&quot;:&quot;The programming languages meta node explicitly lists Java as one of the languages covered in this garden.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;Python&quot;,&quot;rationale&quot;:&quot;Python is frequently contrasted with Java as a language that allows functions outside of classes, making it a natural counterpoint to the design complaints raised in this node.&quot;},{&quot;slug&quot;:&quot;javascript-typescript&quot;,&quot;rationale&quot;:&quot;Javascript/Typescript also contrasts with Java&#39;s class-centric design, allowing functions and objects without mandatory class wrappers.&quot;},{&quot;slug&quot;:&quot;Ruby on Rails&quot;,&quot;rationale&quot;:&quot;Ruby on Rails is another language the author uses that contrasts with Java&#39;s rigid OOP requirements.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:212,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:184,&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;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;slug&quot;:&quot;what-programming-language-should-i-learn&quot;,&quot;anchor_text&quot;:&quot;I don&#39;t think I would recommend _anyone_ learn Perl&quot;,&quot;context&quot;:&quot;with my recent experiences with the language, I don&#39;t think I would recommend anyone learn Perl&quot;,&quot;rationale&quot;:&quot;The &#39;what programming language should I learn&#39; node explicitly mentions not recommending Perl, making it a direct cross-reference for this node&#39;s critique of the language.&quot;},{&quot;slug&quot;:&quot;programming languages&quot;,&quot;anchor_text&quot;:&quot;Perl&quot;,&quot;context&quot;:&quot;My understanding has always been that Python was a direct reaction/answer to Perl&quot;,&quot;rationale&quot;:&quot;The programming languages meta node ties together all the language nodes in the garden, including Perl, making it a natural link.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;programming languages&quot;,&quot;rationale&quot;:&quot;This meta node explicitly lists Perl as one of the languages covered in the garden and ties it to other language nodes.&quot;},{&quot;slug&quot;:&quot;what-programming-language-should-i-learn&quot;,&quot;rationale&quot;:&quot;That node explicitly advises against learning Perl based on the author&#39;s experiences, directly echoing the frustrations described in this node.&quot;},{&quot;slug&quot;:&quot;Ruby on Rails&quot;,&quot;rationale&quot;:&quot;Ruby on Rails was mentioned as an early language experience alongside Perl in college contexts, and both share the web app scripting era background.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:472,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:291,&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;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;github&quot;,&quot;anchor_text&quot;:&quot;Github repo&quot;,&quot;context&quot;:&quot;I first started writing Python in 2009, in my first Github repo: sudoku-solver&quot;,&quot;rationale&quot;:&quot;The node mentions GitHub as the platform for the sudoku-solver repo, and there is a dedicated node about GitHub in the garden.&quot;},{&quot;slug&quot;:&quot;wp-1.0&quot;,&quot;anchor_text&quot;:&quot;wp-1.0&quot;,&quot;context&quot;:&quot;Python has remained one of my favorite programming languages, used for wp-1.0&quot;,&quot;rationale&quot;:&quot;The programming languages meta node mentions wp-1.0 as a major Python project, and linking it here connects Python to its most prominent use case in the garden.&quot;},{&quot;slug&quot;:&quot;Rainfall&quot;,&quot;anchor_text&quot;:&quot;Rainfall&quot;,&quot;context&quot;:&quot;Python is used for Rainfall, a website generator for musicians&quot;,&quot;rationale&quot;:&quot;Rainfall is explicitly mentioned as a Python project elsewhere in the garden, making it a natural link to add here as a notable Python use case.&quot;},{&quot;slug&quot;:&quot;programming languages&quot;,&quot;anchor_text&quot;:&quot;favorite programming languages&quot;,&quot;context&quot;:&quot;Python has remained one of my favorite programming languages&quot;,&quot;rationale&quot;:&quot;There is a meta node on programming languages that ties together all language nodes including Python, and linking to it here creates a useful bidirectional connection.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;what-programming-language-should-i-learn&quot;,&quot;rationale&quot;:&quot;This node gives advice on choosing a programming language and recommends Python for data science, directly extending the discussion of Python&#39;s strengths touched on in this node.&quot;},{&quot;slug&quot;:&quot;Rainfall&quot;,&quot;rationale&quot;:&quot;Rainfall is a Python-based static site generator project described in detail in its own node, making it a meaningful elaboration on Python&#39;s real-world use by the author.&quot;},{&quot;slug&quot;:&quot;wp-1.0&quot;,&quot;rationale&quot;:&quot;WP 1.0 is described as being written in Python, so its node elaborates on a major Python project mentioned in the programming languages meta context.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1834,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:424,&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;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;slug&quot;:&quot;Python&quot;,&quot;anchor_text&quot;:&quot;Python&quot;,&quot;context&quot;:&quot;where I wrote a lot more Python code at Qwobl with Jawad and Christian&quot;,&quot;rationale&quot;:&quot;The Python node mentions Qwobl explicitly as where Travis wrote a lot of Python code, making this a direct topical connection.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;Python&quot;,&quot;rationale&quot;:&quot;The Python node directly references Qwobl as a formative workplace where Travis wrote significant Python code, providing elaborating context for this node.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:185,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:119,&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;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;That site is basically a custom static site generator, written in Python and Flask.&quot;,&quot;rationale&quot;:&quot;The node directly uses Python as the implementation language for Rainfall, and there is a dedicated Python node in the garden.&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, and Andrew&#39;s article and impetus&quot;,&quot;rationale&quot;:&quot;Bandcamp is explicitly named as the motivating context for the &#39;Moving Forward&#39; section, and there is a dedicated Bandcamp node discussing the platform&#39;s role in music distribution.&quot;},{&quot;slug&quot;:&quot;Vue.js&quot;,&quot;anchor_text&quot;:&quot;Vue 3&quot;,&quot;context&quot;:&quot;The tech stack is Python/Flask, SQLAlchemy and Vue 3 for the frontend.&quot;,&quot;rationale&quot;:&quot;Vue 3 is the specific frontend framework used in Rainfall, and there is a dedicated Vue.js node in the garden.&quot;},{&quot;slug&quot;:&quot;github&quot;,&quot;anchor_text&quot;:&quot;Github&quot;,&quot;context&quot;:&quot;The Github repo is here, and you can see the issues I&#39;m tracking for future releases.&quot;,&quot;rationale&quot;:&quot;Github is directly referenced as where the Rainfall source code lives, and there is a dedicated Github node in the garden.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;danger-third-rail&quot;,&quot;rationale&quot;:&quot;songs.travisbriggs.com, the personal music site that Rainfall was built from, is the demo/hosting site for Danger Third Rail, making this node the technical backstory to that project.&quot;},{&quot;slug&quot;:&quot;highs-and-lows-musician&quot;,&quot;rationale&quot;:&quot;That node covers the broader personal history of music production and recording, providing the biographical context for why a personal song-hosting platform like Rainfall was needed.&quot;},{&quot;slug&quot;:&quot;activity-pub&quot;,&quot;rationale&quot;:&quot;The Rainfall node mentions Mastodon OAuth login as a key feature; the ActivityPub node elaborates on how Mastodon and its underlying protocol work, which is directly relevant to that integration.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1263,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:1632,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:1184},&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;best integrate Javascript/Typescript and Single Page Applications&quot;,&quot;rationale&quot;:&quot;The node explicitly mentions Javascript/Typescript as a technology integrated with Rails, and there is a dedicated node on that topic.&quot;},{&quot;slug&quot;:&quot;programming languages&quot;,&quot;anchor_text&quot;:&quot;Ruby on Rails&quot;,&quot;context&quot;:&quot;The most recent Ruby on Rails coding I&#39;ve done is for the headless CMS&quot;,&quot;rationale&quot;:&quot;The programming languages meta node lists Ruby on Rails as one of the languages covered in the garden, making it a natural cross-link.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;what-programming-language-should-i-learn&quot;,&quot;rationale&quot;:&quot;That node discusses how to choose a programming language and mentions Ruby on Rails by implication, and this node&#39;s reflections on Ruby&#39;s strengths and weaknesses would complement that advice.&quot;},{&quot;slug&quot;:&quot;Qwobl&quot;,&quot;rationale&quot;:&quot;The Qwobl node mentions Christian and the early job experience, which contextually overlaps with the author&#39;s early career programming background described here.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:569,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:238,&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;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;slug&quot;:&quot;ai-music-trends&quot;,&quot;anchor_text&quot;:&quot;destroying the music industry&quot;,&quot;context&quot;:&quot;I worry about it destroying the music industry/artist&#39;s livelihoods. But there have been&quot;,&quot;rationale&quot;:&quot;The ai-music-trends node directly addresses the economic pressures on musicians and the music industry, which connects to concerns about Spotify&#39;s royalty structure.&quot;},{&quot;slug&quot;:&quot;genre-thoughts&quot;,&quot;anchor_text&quot;:&quot;full albums&quot;,&quot;context&quot;:&quot;Something like 80% of my music listening is full albums. And I&#39;m not even that worried&quot;,&quot;rationale&quot;:&quot;The genre-thoughts node discusses listening habits and music consumption patterns that relate to the preference for full album listening.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;Bandcamp&quot;,&quot;rationale&quot;:&quot;The Bandcamp node explicitly discusses the long-tail model of music distribution and artist royalties, directly complementing the concerns raised here about Spotify&#39;s royalty structure.&quot;},{&quot;slug&quot;:&quot;ai-music-trends&quot;,&quot;rationale&quot;:&quot;Discusses the economic future of music streaming and artist compensation, elaborating on the concerns about Spotify&#39;s impact on the music industry.&quot;},{&quot;slug&quot;:&quot;motivation-music&quot;,&quot;rationale&quot;:&quot;Discusses the broader motivations behind making and releasing music, which contextualizes the frustration with Spotify&#39;s pay-to-play and royalty structure.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1200,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:287,&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;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;slug&quot;:&quot;ai-music-trends&quot;,&quot;anchor_text&quot;:&quot;songs/music/songwriting&quot;,&quot;context&quot;:&quot;is vibe coding for my songs/music/songwriting. That&#39;s probably not a good thing.&quot;,&quot;rationale&quot;:&quot;The AI Music Trends node directly discusses AI-generated music and its implications for songwriting, making it highly relevant to Suno&#39;s use case.&quot;},{&quot;slug&quot;:&quot;danger-third-rail&quot;,&quot;anchor_text&quot;:&quot;songs&quot;,&quot;context&quot;:&quot;vibe coding for my songs/music/songwriting. That&#39;s probably not a good thing.&quot;,&quot;rationale&quot;:&quot;Suno is being used for the author&#39;s music project Danger Third Rail, so linking to that node adds context about whose songs are being referenced.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;ai&quot;,&quot;rationale&quot;:&quot;The AI node covers the author&#39;s broader thoughts on the AI era and its implications, which directly contextualizes why using Suno for songwriting might feel problematic.&quot;},{&quot;slug&quot;:&quot;null-rail&quot;,&quot;rationale&quot;:&quot;Null Rail is explicitly the place where the author shares AI-assisted music tracks, making it a natural companion to this Suno node.&quot;},{&quot;slug&quot;:&quot;ai-music-trends&quot;,&quot;rationale&quot;:&quot;This node discusses the philosophical and industry implications of AI-generated music, elaborating on why Suno might be &#39;not a good thing&#39; for authentic songwriting.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:80,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:301,&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;cross_references&quot;:[{&quot;slug&quot;:&quot;what-is-a-web-application&quot;,&quot;rationale&quot;:&quot;That node discusses web applications and dynamic websites in depth, which directly relates to Vue.js&#39;s use case as a frontend framework for building web applications.&quot;},{&quot;slug&quot;:&quot;q-poker-in-progress&quot;,&quot;rationale&quot;:&quot;Q Poker is a web application project that likely uses frontend technologies, making it a relevant cross-reference for Vue.js usage in practice.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:170,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:107,&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;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;ai&quot;,&quot;rationale&quot;:&quot;The AI node discusses the current tech landscape and AI era, which intersects with YouTube&#39;s role as a major platform affected by AI content generation and policy.&quot;},{&quot;slug&quot;:&quot;ai-music-trends&quot;,&quot;rationale&quot;:&quot;Discusses how platforms like YouTube/Spotify affect music economics and artist visibility, directly relevant to YouTube as a platform.&quot;},{&quot;slug&quot;:&quot;Bandcamp&quot;,&quot;rationale&quot;:&quot;Bandcamp node discusses the stratification of music platforms and contrasts with YouTube/Spotify as dominant platforms.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:88,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:127,&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;&#92;nAlmost everything I&#39;ve heard about Zen in my life has interested me. The idea of non-duality just puzzles and fascinates me. I&#39;ve been reading a lot about it lately, including classics like Shunryu Suzuki&#39;s _Zen Mind, Beginner&#39;s Mind_ ([Wikipedia link](https://en.wikipedia.org/wiki/Zen_Mind,_Beginner%27s_Mind)) and Alan Watts&#39;s _The Way of Zen_ ([Wikipedia link](https://en.wikipedia.org/wiki/The_Way_of_Zen)). And I know, I know, you shouldn&#39;t bother reading about Zen. Suzuki outright says as much. At least the latter is somethiing of a history/religion book as it is a &#92;&quot;spiritual guide&#92;&quot;. I&#39;m not even interested in practicing Zen as a religion as much as just seeing the true nature of myself and reality already! This of course presupposes that there is some &#92;&quot;true&#92;&quot; nature that exists apart from the &#92;&quot;everyday&#92;&quot; nature. Non-duality.&#92;n&#92;nIn the first couple of chapters of his book, Watts lays out a history and explanation of Indian religion/spirtual practice (he does note that it wouldn&#39;t have been called &#92;&quot;religion&#92;&quot; in these ancient times, separate from &#92;&quot;secularism&#92;&quot;) and some necessary background on Chinese as well (since Zen started in China as _Chan_). He relates that in the Indian spiritual tradtion, not much is written about &#92;&quot;ultimate reality&#92;&quot;, and what is said is related as poetry, with some understanding that the truly real and ultimate and continuous can&#39;t be expressed with our fabricated and abstract and discrete words. He then points out that Christianity attempts to do just that. Maybe this is why I&#39;ve always taken issues with Christianity, with both the &#92;&quot;old guy on a cloud zapping heathens with lightning bolts&#92;&quot; God and the &#92;&quot;just all around us and in everything, you know man?&#92;&quot; God. I&#39;ve never found either particularly satisfying, and what I remember from what little catechism I received is that the whole point of Christianity is something along the lines of: No, God became Man, the Word became Flesh, it was a Real Thing that Really Happened.&#92;n&#92;nOn April 6 2025 I checked out the [San Francisco Zen Center](https://sfzc.org), which was founded by Suzuki. It is, in fact, walking distance from my apartment! Most of the time was spent doing [zazen meditation](https://en.wikipedia.org/wiki/Zazen). Honestly, I really wasn&#39;t trying to grasp at Zen I promise! It just wanted to try zazen, because Suzuki literally can&#39;t shut up about it in his book. And the Zen Center is so close and has such a great history. I really enjoyed my time there that morning, and I found the zazen meditation to be extremely challenging. I experienced it as &#92;&quot;Try to not think, without trying too hard. Try to keep your posture good without paying attention to it&#92;&quot; etc. Suzuki offers that when we have the right posture and mindset, we don&#39;t &#92;&quot;not think&#92;&quot; as much as our &#92;&quot;mind flows through our body&#92;&quot;.&#92;n&#92;nSo far, the most challenging &#92;&quot;koan&#92;&quot; that I&#39;ve set for myself is this. Which is more true, &#92;&quot;I have a mind&#92;&quot; or &#92;&quot;I am a mind&#92;&quot;?&#92;n&#92;nAnother reflection that I had, which I posted to Mastodon was:&#92;n&#92;n&gt; I&#39;m reading Alan Watts, _The Way of Zen_, and he&#39;s talking about how the words, ideas etc of conventional discourse are anthetical to understanding ultimate reality. I don&#39;t have an exact quote, but he mentions many times that we &#92;&quot;fall in love&#92;&quot; with our ideas and conceptions and measurements, that they&#39;re &#92;&quot;hypnotizing&#92;&quot;.&#92;n&gt;&#92;n&gt; Thinking of two things:&#92;n&gt;&#92;n&gt; How people love to scroll social media, especially in the case of sites like Reddit, for the well-documented dopamine hit of new information.&#92;n&gt;&#92;n&gt; How things like TED talks further idolize &#92;&quot;ideas&#92;&quot; themselves, even when they are devoid of utility.&#92;n&#92;nAnother:&#92;n&#92;n&gt; I told my wife that my understanding of Zen is that it&#39;s basically just realizing you&#39;re one with the universe. She suggested that it&#39;s like _The Secret_, that when you&#39;re enlightened you can manifest things with your mind. &#92;n&gt;&#92;n&gt; I replied that it&#39;s actually the opposite. The secret is an extreme form of &#92;&quot;grasping&#92;&quot;. That if you try and try and believe hard enough, you can make something happen. Zen is like, everything is going to happen or not happen, that&#39;s it. &#92;n&#92;nAnd finally a poem I wrote which I think is a Zen poem (every poem is a Zen poem; no poem is a Zen poem):&#92;n&#92;n&gt; It is what it is&#92;n&gt;&#92;n&gt; Such is life&#92;n&gt;&#92;n&gt; I don&#39;t mind&#92;n&gt;&#92;n&#92;n---&#92;n&#92;nAnyways I&#39;m not sure if this page should be completely empty, completely full, or if it already is both.&#92;n&#92;nWry observations like the above make me feel clever, but I realize that the cleveriness isn&#39;t the point. Hopefully they can just help me have some pure experience.&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;philosophy&quot;,&quot;anchor_text&quot;:&quot;I&#39;ve always taken issues with Christianity&quot;,&quot;context&quot;:&quot;Maybe this is why I&#39;ve always taken issues with Christianity, with both the &#39;old guy on a cloud&#39;&quot;,&quot;rationale&quot;:&quot;The philosophy node directly covers the author&#39;s atheism, determinism, and interest in Zen, making it a natural cross-link for this spiritual skepticism.&quot;},{&quot;slug&quot;:&quot;free will&quot;,&quot;anchor_text&quot;:&quot;everything is going to happen or not happen&quot;,&quot;context&quot;:&quot;Zen is like, everything is going to happen or not happen, that&#39;s it.&quot;,&quot;rationale&quot;:&quot;The Zen view of non-grasping and acceptance maps directly onto the author&#39;s determinism/free will beliefs discussed in the free will node.&quot;},{&quot;slug&quot;:&quot;atheism&quot;,&quot;anchor_text&quot;:&quot;practicing Zen as a religion&quot;,&quot;context&quot;:&quot;I&#39;m not even interested in practicing Zen as a religion as much as just seeing the true nature&quot;,&quot;rationale&quot;:&quot;The author&#39;s skepticism of religion connects to their atheism node, which states they firmly believe no gods exist.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;philosophy&quot;,&quot;rationale&quot;:&quot;The philosophy node explicitly mentions the author&#39;s growing interest in Zen and their determinism, making it a natural companion piece to this node.&quot;},{&quot;slug&quot;:&quot;not the circumstances&quot;,&quot;rationale&quot;:&quot;That node&#39;s theme of accepting what happens rather than controlling outcomes echoes the Zen acceptance described here, especially the contrast with &#39;The Secret&#39;.&quot;},{&quot;slug&quot;:&quot;Abby&quot;,&quot;rationale&quot;:&quot;The author&#39;s wife appears in this node offering a witty take on Zen enlightenment, and Abby&#39;s node provides fuller context for who she is.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1174,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:830,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:466},&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;recording-setup&quot;,&quot;anchor_text&quot;:&quot;all the tools I need to make music&quot;,&quot;context&quot;:&quot;I have all the tools I need to make music. Everything is there, completely capable, ready for me to take the reigns&quot;,&quot;rationale&quot;:&quot;The recording setup node directly describes the exact tools and environment the author is referring to when lamenting their availability.&quot;},{&quot;slug&quot;:&quot;danger-third-rail&quot;,&quot;anchor_text&quot;:&quot;start making music again&quot;,&quot;context&quot;:&quot;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.&quot;,&quot;rationale&quot;:&quot;Danger Third Rail is the author&#39;s music recording project, which is the implicit subject of the music-making they want to restart.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;motivation-music&quot;,&quot;rationale&quot;:&quot;This node is specifically about motivation for writing and producing music for Danger Third Rail, directly paralleling the existential dread and procrastination described in this node.&quot;},{&quot;slug&quot;:&quot;not-quite-writers-block&quot;,&quot;rationale&quot;:&quot;That node explores the same anxiety around music creation and the paralysis of possibility, making it a strong conceptual companion to this node.&quot;},{&quot;slug&quot;:&quot;intrisic motivation&quot;,&quot;rationale&quot;:&quot;The author&#39;s dread and inability to act despite having all the tools is framed here as a motivation problem, which the intrinsic motivation node explores in depth.&quot;},{&quot;slug&quot;:&quot;something-terrible&quot;,&quot;rationale&quot;:&quot;That node discusses a method for overcoming exactly the kind of creative block and anxiety described here, offering a practical counterpoint.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:504,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:1309,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:969},&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;slug&quot;:&quot;recording-setup&quot;,&quot;anchor_text&quot;:&quot;record and edit digital audio tracks&quot;,&quot;context&quot;:&quot;It allows musicians and producers to record and edit digital audio tracks, compose arrangements&quot;,&quot;rationale&quot;:&quot;The recording-setup node describes Travis&#39;s actual DAW-based recording workflow built around Ableton Live.&quot;},{&quot;slug&quot;:&quot;ableton-12&quot;,&quot;anchor_text&quot;:&quot;Ableton Live&quot;,&quot;context&quot;:&quot;Ableton Live is music production software that serves as a Digital Audio Workstation (DAW).&quot;,&quot;rationale&quot;:&quot;The ableton-12 node is a dedicated follow-up about the latest version of this exact software.&quot;},{&quot;slug&quot;:&quot;danger-third-rail&quot;,&quot;anchor_text&quot;:&quot;musicians and producers&quot;,&quot;context&quot;:&quot;It allows musicians and producers to record and edit digital audio tracks&quot;,&quot;rationale&quot;:&quot;Danger Third Rail is Travis&#39;s recording project where he uses Ableton Live as his primary production tool.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;highs-and-lows-musician&quot;,&quot;rationale&quot;:&quot;This node details Travis&#39;s long experience using Ableton Live in his home studio, directly elaborating on the DAW&#39;s role in music production.&quot;},{&quot;slug&quot;:&quot;music-projects-as-ephemera&quot;,&quot;rationale&quot;:&quot;This node discusses issues with Ableton Live project files and compatibility, providing concrete real-world context for using the DAW.&quot;},{&quot;slug&quot;:&quot;something-terrible&quot;,&quot;rationale&quot;:&quot;This node describes Travis tutoring students in Ableton Live and digital music production, expanding on the software&#39;s educational use.&quot;},{&quot;slug&quot;:&quot;another-year-without-resolutions&quot;,&quot;rationale&quot;:&quot;This node mentions Travis taking music lessons specifically for Ableton Live production, connecting to the DAW&#39;s learning curve.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:136,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:370,&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;developing software using frontend technologies such as HTML/CSS and Javascript/Typescript&quot;,&quot;rationale&quot;:&quot;The node explicitly mentions Javascript/Typescript as a specialization, and there is a dedicated node covering this topic.&quot;},{&quot;slug&quot;:&quot;wp-1.0&quot;,&quot;anchor_text&quot;:&quot;WP 1.0 Bot&quot;,&quot;context&quot;:&quot;primary maintainer of the Wikipedia WP 1.0 Bot, which has the most all time edits&quot;,&quot;rationale&quot;:&quot;The WP 1.0 Bot has its own dedicated node with extensive detail about the project.&quot;},{&quot;slug&quot;:&quot;Python&quot;,&quot;anchor_text&quot;:&quot;Python class&quot;,&quot;context&quot;:&quot;teaches a free Python class at the Noisebridge hackerspace in San Francisco&quot;,&quot;rationale&quot;:&quot;Python has its own node in the garden and is a core part of Travis&#39;s technical identity.&quot;},{&quot;slug&quot;:&quot;danger-third-rail&quot;,&quot;anchor_text&quot;:&quot;Danger Third Rail&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;Danger Third Rail is Travis&#39;s music project with its own dedicated node covering details about it.&quot;},{&quot;slug&quot;:&quot;Abby&quot;,&quot;anchor_text&quot;:&quot;Abby&quot;,&quot;context&quot;:&quot;currently lives with his amazing wife Abby and cuddly cat Shekel&quot;,&quot;rationale&quot;:&quot;Abby has her own dedicated node in the garden describing Travis&#39;s wife.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;digital-garden-itself&quot;,&quot;rationale&quot;:&quot;This node describes the garden itself, complementing the About Me node as an introduction to Travis and his work.&quot;},{&quot;slug&quot;:&quot;recording-setup&quot;,&quot;rationale&quot;:&quot;Elaborates on Travis&#39;s music production setup, extending the mention of his musician identity in the About Me node.&quot;},{&quot;slug&quot;:&quot;digital-gardening-principles&quot;,&quot;rationale&quot;:&quot;Provides context for Travis&#39;s identity as a &#39;digital gardener&#39; mentioned in the About Me node.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:451,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&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;:0},&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](https://www.w3.org/TR/activitypub/)) that powers Mastodon&quot;,&quot;rationale&quot;:&quot;The node deeply discusses Mastodon&#39;s federation mechanics, and the mastodon-is-not-twitter node covers Mastodon as a platform in detail.&quot;},{&quot;slug&quot;:&quot;digital-garden-itself&quot;,&quot;anchor_text&quot;:&quot;Digital Garden&quot;,&quot;context&quot;:&quot;I was creating a new account for the Digital Garden itself, and automatically posting there&quot;,&quot;rationale&quot;:&quot;The node references the digital garden as an ActivityPub actor, and digital-garden-itself describes this garden&#39;s structure and identity.&quot;},{&quot;slug&quot;:&quot;comments&quot;,&quot;anchor_text&quot;:&quot;comments system&quot;,&quot;context&quot;:&quot;they wouldn&#39;t show up anywhere to serve as the basis for my comments system&quot;,&quot;rationale&quot;:&quot;The comments node describes the final comments implementation that this ActivityPub exploration was ultimately trying to enable.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;dg-feedback&quot;,&quot;rationale&quot;:&quot;That node explains why comments and feedback are important to a digital garden, providing motivation context for the ActivityPub experimentation described here.&quot;},{&quot;slug&quot;:&quot;gemini&quot;,&quot;rationale&quot;:&quot;Gemini is another alternative internet protocol the author has explored; cross-referencing it highlights a pattern of interest in non-standard web protocols.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1969,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:1101,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:787},&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;Bandcamp&quot;,&quot;anchor_text&quot;:&quot;niche, &#92;&quot;artisinal&#92;&quot;, human made music&quot;,&quot;context&quot;:&quot;there will be a place for niche, &#92;&quot;artisinal&#92;&quot;, human made music, sure, the same way&quot;,&quot;rationale&quot;:&quot;Bandcamp is discussed in the garden as the platform for long-tail, artisanal human-made music, which directly parallels this argument about niche human music surviving.&quot;},{&quot;slug&quot;:&quot;ai&quot;,&quot;anchor_text&quot;:&quot;AI&quot;,&quot;context&quot;:&quot;you can&#39;t tell if a track was made by a &#92;&quot;human musician&#92;&quot; or an AI, then who cares&quot;,&quot;rationale&quot;:&quot;The garden has a dedicated AI node that elaborates on the broader AI era this node is commenting on.&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 or has the biggest following&quot;,&quot;rationale&quot;:&quot;Suno is the specific AI music platform discussed elsewhere in this garden, making it a direct referent for this mention.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;Bandcamp&quot;,&quot;rationale&quot;:&quot;Bandcamp&#39;s node explicitly discusses the long-tail model for artists and how streaming economics disadvantage small artists, directly elaborating the royalty and economics arguments made here.&quot;},{&quot;slug&quot;:&quot;fake-it-music&quot;,&quot;rationale&quot;:&quot;This node discusses the challenges of a solo musician producing music, which contextualizes why AI tools might be appealing or threatening to independent artists like the author.&quot;},{&quot;slug&quot;:&quot;genre-thoughts&quot;,&quot;rationale&quot;:&quot;Discusses the author&#39;s perspective as a musician navigating music production, providing personal context for the broader industry observations made in this node.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:534,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:368,&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;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;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?&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;discussed it at work, fretted about it with my wife, but nothing here&quot;,&quot;rationale&quot;:&quot;The node references his wife by relationship; linking to Abby connects the personal context to her dedicated node.&quot;},{&quot;slug&quot;:&quot;digital-gardening-principles&quot;,&quot;anchor_text&quot;:&quot;Digital Garden&quot;,&quot;context&quot;:&quot;If a Digital Garden is about learning in public, the meta lesson&quot;,&quot;rationale&quot;:&quot;The node reflects on digital gardening philosophy, and digital-gardening-principles is the foundational node for that concept in this garden.&quot;},{&quot;slug&quot;:&quot;philosophy&quot;,&quot;anchor_text&quot;:&quot;philosophical problems around songs&quot;,&quot;context&quot;:&quot;What are the philosophical problems around songs you like, but you find out they were made by AI?&quot;,&quot;rationale&quot;:&quot;The node explicitly raises philosophical questions about AI art, and the philosophy node discusses related ideas about meaning and aesthetics.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;vibe coding&quot;,&quot;rationale&quot;:&quot;Vibe coding is a direct outgrowth of the AI era this node introduces, and the vibe-coding node elaborates extensively on how the author has embraced AI-assisted programming.&quot;},{&quot;slug&quot;:&quot;Suno&quot;,&quot;rationale&quot;:&quot;Suno is the author&#39;s experience with AI music generation, directly relevant to the bullet points about AI art and AI music trends raised in this node.&quot;},{&quot;slug&quot;:&quot;null-rail&quot;,&quot;rationale&quot;:&quot;Null Rail documents the author&#39;s AI-assisted music project, making it a concrete case study for the abstract AI-music questions posed in this node.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:700,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:730,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:386},&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;slug&quot;:&quot;getting-nothing-done&quot;,&quot;rationale&quot;:&quot;The Anki node discusses difficulty sticking with flashcard habits, which relates to the productivity and habit-formation themes explored in Getting Nothing Done.&quot;},{&quot;slug&quot;:&quot;the-chain&quot;,&quot;rationale&quot;:&quot;Anki&#39;s spaced repetition requires consistent daily practice, which connects directly to the Seinfeld Strategy chain-building habit discussed in this node.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:336,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:102,&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;slug&quot;:&quot;github&quot;,&quot;anchor_text&quot;:&quot;added my name to the list of signatories&quot;,&quot;context&quot;:&quot;I added my name to the list of signatories on endasfmascotry.com and wrote the following email&quot;,&quot;rationale&quot;:&quot;The link to add signatories is a GitHub pull request, and the node about GitHub is directly relevant to this action.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;about&quot;,&quot;rationale&quot;:&quot;The &#39;about&#39; node establishes Travis as a software developer and open source contributor, providing context for why he would engage with Apache Software Foundation naming issues.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:680,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:136,&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;slug&quot;:&quot;philosophy&quot;,&quot;anchor_text&quot;:&quot;atheist&quot;,&quot;context&quot;:&quot;I am an atheist. I firmly believe that no gods exist.&quot;,&quot;rationale&quot;:&quot;The philosophy node explicitly mentions atheism as one of the author&#39;s beliefs, making it a direct topical connection.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;philosophy&quot;,&quot;rationale&quot;:&quot;The philosophy node discusses atheism, determinism, and free will as part of the author&#39;s worldview, providing substantial elaboration on the beliefs briefly stated here.&quot;},{&quot;slug&quot;:&quot;free will&quot;,&quot;rationale&quot;:&quot;The free will node is closely related to the author&#39;s broader materialist/atheist worldview mentioned in the philosophy node alongside atheism.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:56,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:153,&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;danger-third-rail&quot;,&quot;anchor_text&quot;:&quot;recording my own tracks&quot;,&quot;context&quot;:&quot;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.&quot;,&quot;rationale&quot;:&quot;The author is referring to their own music recording project, Danger Third Rail, which is the concrete context for this reflection.&quot;},{&quot;slug&quot;:&quot;recording-setup&quot;,&quot;anchor_text&quot;:&quot;recording&quot;,&quot;context&quot;:&quot;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.&quot;,&quot;rationale&quot;:&quot;The node&#39;s concluding takeaway is directly about the author&#39;s own recording practice, which is documented in the recording-setup node.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;fake-it-music&quot;,&quot;rationale&quot;:&quot;That node opens by explicitly referencing bands-as-sports-teams and extends its argument — that not every part of a song has to be perfect — into practical advice for solo home recording.&quot;},{&quot;slug&quot;:&quot;motivation-music&quot;,&quot;rationale&quot;:&quot;Discusses what makes songs inspiring and worth pursuing as a solo musician, directly complementing the analysis here of what elements make a song &#39;work&#39;.&quot;},{&quot;slug&quot;:&quot;highs-and-lows-musician&quot;,&quot;rationale&quot;:&quot;Covers the real-world experience of producing music alone at home, giving concrete context to the abstract framework about carrying a song with just a few strong elements.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:576,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:887,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:575},&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;github&quot;,&quot;anchor_text&quot;:&quot;Github&quot;,&quot;context&quot;:&quot;a Github repository, and if you look in the history of this repo you can see that it was used there&quot;,&quot;rationale&quot;:&quot;The node discusses using Github for hosting the static site, and there is a dedicated node about Github in the garden.&quot;},{&quot;slug&quot;:&quot;Spotify&quot;,&quot;anchor_text&quot;:&quot;Spotify&quot;,&quot;context&quot;:&quot;it does an API lookup on Wikidata and grabs the Artist, Title, Release Year, Spotify ID (the best albums page includes Spotify embeds)&quot;,&quot;rationale&quot;:&quot;The node specifically mentions Spotify embeds as a feature of the site, and there is a dedicated node about Spotify.&quot;},{&quot;slug&quot;:&quot;javascript-typescript&quot;,&quot;anchor_text&quot;:&quot;Javascript&quot;,&quot;context&quot;:&quot;when the site loaded, the Javascript on the page would request the albums.json file, parse it&quot;,&quot;rationale&quot;:&quot;The node describes custom Javascript used to power the page&#39;s interactivity, and there is a dedicated node about Javascript/Typescript.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;Rainfall&quot;,&quot;rationale&quot;:&quot;Rainfall is also a custom website generator for hosting music/albums, making it a closely related project to Best Albums in the Universe in terms of purpose and technical approach.&quot;},{&quot;slug&quot;:&quot;more-about-blogging&quot;,&quot;rationale&quot;:&quot;That node mentions the Gemini version of Best Albums in the Universe as one of the first 50 Gemini sites, directly elaborating on something this node touches on.&quot;},{&quot;slug&quot;:&quot;dg-evergreen&quot;,&quot;rationale&quot;:&quot;This node describes the best albums list as &#39;a living document, just like this garden&#39;, which is exactly the evergreen principle discussed in that node.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1310,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:697,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:329},&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 we give&quot;,&quot;rationale&quot;:&quot;The node directly discusses free will as a concept, and there is a dedicated node for it in the garden.&quot;},{&quot;slug&quot;:&quot;philosophy&quot;,&quot;anchor_text&quot;:&quot;existentialism&quot;,&quot;context&quot;:&quot;I mean, why am I so obsessed with songwriting anyways? To speak again of existentialism, maybe I see my creative output&quot;,&quot;rationale&quot;:&quot;The philosophy node explicitly covers existentialism and the absurd, including a reference to Sisyphus which also appears in this node.&quot;},{&quot;slug&quot;:&quot;danger-third-rail&quot;,&quot;anchor_text&quot;:&quot;write a song&quot;,&quot;context&quot;:&quot;I never really believed in free will. I did manage to write about 20 songs in 2018&quot;,&quot;rationale&quot;:&quot;The songwriting project discussed here is the same Danger Third Rail recording project documented in the garden.&quot;},{&quot;slug&quot;:&quot;giving-up-on-resolutions&quot;,&quot;anchor_text&quot;:&quot;New Year&#39;s Resolution&quot;,&quot;context&quot;:&quot;I made a rather audacious New Year&#39;s Resolution: to write a song a day in 2018&quot;,&quot;rationale&quot;:&quot;The giving-up-on-resolutions node is a direct follow-up on the same theme of New Year&#39;s resolutions that this node opens with.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;another-year-without-resolutions&quot;,&quot;rationale&quot;:&quot;That node continues the same arc of reflecting on New Year&#39;s resolutions and the difficulty of sustaining creative goals over time.&quot;},{&quot;slug&quot;:&quot;new-year&quot;,&quot;rationale&quot;:&quot;The &#39;every day is New Year&#39;s Day&#39; perspective directly addresses the same existential framing around resolutions that this node wrestles with.&quot;},{&quot;slug&quot;:&quot;intrisic motivation&quot;,&quot;rationale&quot;:&quot;This node questions why the author is obsessed with songwriting at all, which connects directly to the garden&#39;s exploration of intrinsic vs extrinsic motivation for creative work.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:449,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:728,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:294},&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;His wife is named Abby and has her own node in the garden.&quot;},{&quot;slug&quot;:&quot;what-is-a-web-application&quot;,&quot;anchor_text&quot;:&quot;web app&quot;,&quot;context&quot;:&quot;If you want to edit your blog from any computer, isn&#39;t that just a web app that handles the blog?&quot;,&quot;rationale&quot;:&quot;There is a dedicated node explaining what a web application is, directly relevant to the concept being discussed here.&quot;},{&quot;slug&quot;:&quot;github&quot;,&quot;anchor_text&quot;:&quot;open source project&quot;,&quot;context&quot;:&quot;I had actually planned to find some open source project that I could contribute significantly to&quot;,&quot;rationale&quot;:&quot;The github node specifically discusses open source projects and contributing to them.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;blog&quot;,&quot;rationale&quot;:&quot;The node discusses an idea for building blogging software, which connects to the broader reflections on blogging in the blog node.&quot;},{&quot;slug&quot;:&quot;javascript-typescript&quot;,&quot;rationale&quot;:&quot;The node mentions Node.js as a potential technology for the blogging software idea, and the javascript-typescript node covers Node.js and related backend JavaScript technologies.&quot;},{&quot;slug&quot;:&quot;the-unattainable-and-the-attainable&quot;,&quot;rationale&quot;:&quot;This node opens with listening to Weezer, and the-unattainable-and-the-attainable specifically discusses Weezer&#39;s Blue Album in the context of music aspiration.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:587,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:864,&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/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 production&quot;,&quot;context&quot;:&quot;start taking music lessons, for mixing and mastering and Ableton Live production&quot;,&quot;rationale&quot;:&quot;The node mentions Ableton Live production directly, and there is a dedicated node for Ableton Live in the garden.&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, generally get things done at work&quot;,&quot;rationale&quot;:&quot;Abby is a named person with her own node in the garden, and she is mentioned directly here.&quot;},{&quot;slug&quot;:&quot;new-year&quot;,&quot;anchor_text&quot;:&quot;New Year&#39;s Day doesn&#39;t exist&quot;,&quot;context&quot;:&quot;The apparent corollary of that is that &#39;New Year&#39;s Day doesn&#39;t exist&#39;, which is the essential position&quot;,&quot;rationale&quot;:&quot;The &#39;Every day is New Year&#39;s Day&#39; node directly addresses this same philosophical position about New Year&#39;s Day.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;a-story-of-failure&quot;,&quot;rationale&quot;:&quot;This node discusses a past New Year&#39;s resolution (song a day in 2018) and the feelings around failing at it, which is directly relevant to the theme of resolutions here.&quot;},{&quot;slug&quot;:&quot;new-year-2025&quot;,&quot;rationale&quot;:&quot;This node also reflects on New Year&#39;s and continuous goals versus resolutions, extending the same themes discussed here.&quot;},{&quot;slug&quot;:&quot;danger-third-rail&quot;,&quot;rationale&quot;:&quot;The node mentions wanting to finish an album, and danger-third-rail is the music project that contextualizes that aspiration.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:480,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:344,&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;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;shout into [Mastodon](https://joinmastodon.org/)&quot;,&quot;context&quot;:&quot;I should blog something, I usually realize that it would do just as well to shout into Mastodon&quot;,&quot;rationale&quot;:&quot;The node discusses using Mastodon as an alternative to blogging, which directly connects to the node about Mastodon&#39;s nature and differences from Twitter.&quot;},{&quot;slug&quot;:&quot;dg-reverse&quot;,&quot;anchor_text&quot;:&quot;about blogging&quot;,&quot;context&quot;:&quot;All of my blog posts seem to have this morbid kind of self-deprecation to them. And they&#39;re all. about. blogging.&quot;,&quot;rationale&quot;:&quot;The reflexive observation about blog posts being about blogging connects to the node about reverse chronological sorting and blog post structure.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;more-about-blogging&quot;,&quot;rationale&quot;:&quot;That node also reflects on the nature and habits of blogging, making it a natural companion piece to this self-referential post about blogging.&quot;},{&quot;slug&quot;:&quot;blog-cycle&quot;,&quot;rationale&quot;:&quot;The blog cycle node discusses the tendency to endlessly write about blogging itself, directly paralleling this post&#39;s observation that all blog posts end up being about blogging.&quot;},{&quot;slug&quot;:&quot;font-of-creativity&quot;,&quot;rationale&quot;:&quot;That node explores the experience of needing to write without specific inspiration, mirroring this post&#39;s stream-of-consciousness writing exercise using song lyrics as prompts.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:722,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:331,&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;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;slug&quot;:&quot;wp-1.0&quot;,&quot;anchor_text&quot;:&quot;Wikipedia&quot;,&quot;context&quot;:&quot;This is why I give to Wikipedia, or soma fm, or the Internet Archive&quot;,&quot;rationale&quot;:&quot;The author is a major contributor to Wikipedia through the WP 1.0 project, making this a meaningful personal connection worth linking.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;about&quot;,&quot;rationale&quot;:&quot;The about page mentions the author&#39;s work on the Wikipedia WP 1.0 Bot and free tutoring, which connects to the philanthropy and giving-back themes in this node.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:349,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&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;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;slug&quot;:&quot;mastodon-is-not-twitter&quot;,&quot;anchor_text&quot;:&quot;Mastodon&quot;,&quot;context&quot;:&quot;my most popular medium post is this tutorial on how to set up your own Mastodon instance&quot;,&quot;rationale&quot;:&quot;The node on Mastodon elaborates on the platform mentioned in the context of the tutorial that got the most views.&quot;},{&quot;slug&quot;:&quot;blog&quot;,&quot;anchor_text&quot;:&quot;continue blogging&quot;,&quot;context&quot;:&quot;predicated on the idea that I actually should continue blogging in the first place&quot;,&quot;rationale&quot;:&quot;The blog node directly discusses the author&#39;s ambivalence about blogging and its value, which is the exact tension raised here.&quot;},{&quot;slug&quot;:&quot;dg-reverse&quot;,&quot;anchor_text&quot;:&quot;static site generator&quot;,&quot;context&quot;:&quot;Start a brand new blog with static site generator&quot;,&quot;rationale&quot;:&quot;The digital garden node on reverse chronological sorting discusses the pitfalls of blog/static site structures that this node is wrestling with.&quot;},{&quot;slug&quot;:&quot;digital-garden-itself&quot;,&quot;anchor_text&quot;:&quot;static site generators&quot;,&quot;context&quot;:&quot;do I use another static site generator? Then I have to go through the trouble&quot;,&quot;rationale&quot;:&quot;This garden itself is built with a static site generator, making the connection to that node directly relevant to the platform decision discussed here.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;blog-cycle&quot;,&quot;rationale&quot;:&quot;That node directly discusses the cycle of rebuilding or reconsidering blog platforms, which is the central topic of this node.&quot;},{&quot;slug&quot;:&quot;dg-evergreen&quot;,&quot;rationale&quot;:&quot;The concept of evergreen content versus blog posts is directly relevant to the author&#39;s question of whether to keep blogging at all.&quot;},{&quot;slug&quot;:&quot;draft&quot;,&quot;rationale&quot;:&quot;Draft was an online writing tool the author used extensively, providing another angle on the blogging platform evaluation discussed here.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1124,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:385,&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;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;slug&quot;:&quot;intrisic motivation&quot;,&quot;anchor_text&quot;:&quot;creative pursuits&quot;,&quot;context&quot;:&quot;makes it even more insulting if that&#39;s not the way this particular amateur feels about his creative pursuits&quot;,&quot;rationale&quot;:&quot;The intrinsic motivation node directly addresses what drives (or fails to drive) the author&#39;s creative work, making it a natural elaboration of the self-doubt expressed here.&quot;},{&quot;slug&quot;:&quot;danger-third-rail&quot;,&quot;anchor_text&quot;:&quot;hand to instrument&quot;,&quot;context&quot;:&quot;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&quot;,&quot;rationale&quot;:&quot;The author&#39;s music project is the primary &#39;instrument&#39; context for his creative output and directly illustrates the creative tension described.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;empty-mind&quot;,&quot;rationale&quot;:&quot;That node describes the exact opposite experience — a complete lack of creative output — making it a strong thematic counterpoint to this node&#39;s exploration of a potential &#39;font of creativity&#39;.&quot;},{&quot;slug&quot;:&quot;something-terrible&quot;,&quot;rationale&quot;:&quot;That node introduces the &#39;Make Something Terrible Challenge&#39; as a way to unlock creative flow, directly relevant to the question of how to &#39;open the tap&#39; of creativity.&quot;},{&quot;slug&quot;:&quot;not-quite-writers-block&quot;,&quot;rationale&quot;:&quot;That node explores similar creative struggles around writing and producing songs, overlapping closely with this node&#39;s meditation on creative drive.&quot;},{&quot;slug&quot;:&quot;nike-the-shit-out-of-it&quot;,&quot;rationale&quot;:&quot;That node is about the tension between wanting to create and not actually doing it, which is the central anxiety of this node&#39;s closing lines.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:647,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:1181,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:819},&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. I could always be writing music&quot;,&quot;rationale&quot;:&quot;The node directly references the WP 1.0 Wikipedia project, which has its own dedicated garden node.&quot;},{&quot;slug&quot;:&quot;gemini&quot;,&quot;anchor_text&quot;:&quot;Gemini site&quot;,&quot;context&quot;:&quot;my list of the best albums in the universe which I did recently convert to be served concurrently as a Gemini site&quot;,&quot;rationale&quot;:&quot;The body explicitly references the Gemini protocol/site, which has a dedicated garden node explaining what Gemini is.&quot;},{&quot;slug&quot;:&quot;intrisic motivation&quot;,&quot;anchor_text&quot;:&quot;Lack of motivation&quot;,&quot;context&quot;:&quot;All the same mechanisms are at work that keep you from doing those things. Lack of motivation, enthusiasm, know-how, mentorship, etc.&quot;,&quot;rationale&quot;:&quot;The node touches on motivation as a key barrier to productivity, and the Intrinsic Motivation node directly explores this theme in depth.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;the-chain&quot;,&quot;rationale&quot;:&quot;The Chain node discusses the Seinfeld productivity strategy for habit-building, which is directly adjacent to the GTD systems and todo apps critiqued in this node.&quot;},{&quot;slug&quot;:&quot;giving-up-on-resolutions&quot;,&quot;rationale&quot;:&quot;That node explores the same skepticism about aspirational goal-setting systems, closely mirroring this node&#39;s point about todo apps filled with dreams that will never happen.&quot;},{&quot;slug&quot;:&quot;new-year&quot;,&quot;rationale&quot;:&quot;The New Year node reflects on real change being sporadic rather than system-driven, which elaborates on this node&#39;s skepticism of GTD and organized productivity.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:662,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:933,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:552},&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, it is a Wednesday&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;The node &#39;Every day is New Year&#39;s Day&#39; directly elaborates on this exact philosophy about treating every day as New Year&#39;s Day.&quot;},{&quot;slug&quot;:&quot;free will&quot;,&quot;anchor_text&quot;:&quot;things are basically fine and I should just let what happens happen&quot;,&quot;context&quot;:&quot;I think I&#39;m more attracted to the mode of thinking that things are basically fine and I should just let what happens happen.&quot;,&quot;rationale&quot;:&quot;This fatalistic outlook connects to the free will node, which explores similar ideas about determinism and agency.&quot;},{&quot;slug&quot;:&quot;javascript-typescript&quot;,&quot;anchor_text&quot;:&quot;tutoring a new friend in Javascript&quot;,&quot;context&quot;:&quot;or tutoring a new friend in Javascript in the new year. But those are just things I kind of want to do anyway.&quot;,&quot;rationale&quot;:&quot;The mention of tutoring in Javascript links naturally to the Javascript/Typescript node in the garden.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;another-year-without-resolutions&quot;,&quot;rationale&quot;:&quot;This node is a direct follow-up to the same theme of giving up on New Year&#39;s resolutions and would provide meaningful continuity.&quot;},{&quot;slug&quot;:&quot;new-year&quot;,&quot;rationale&quot;:&quot;&#39;Every day is New Year&#39;s Day&#39; expands on the exact philosophy referenced in this node about treating every day as a fresh start.&quot;},{&quot;slug&quot;:&quot;philosophy&quot;,&quot;rationale&quot;:&quot;The fatalistic, quasi-existentialist outlook expressed here overlaps with the philosophy node&#39;s discussion of determinism and free will.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:431,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:366,&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;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;Both nodes explore the theme of nostalgia and the impossibility of recapturing past experiences and social connections.&quot;},{&quot;slug&quot;:&quot;pandemic-weary&quot;,&quot;rationale&quot;:&quot;Both nodes touch on loss of social activities and the melancholy of missing gatherings and community that once existed.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:391,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:87,&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;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;YouTube&quot;,&quot;anchor_text&quot;:&quot;YouTube&quot;,&quot;context&quot;:&quot;I sent a cold email to someone who has 90k subscribers on YouTube, asking if they could maybe give me music production lessons&quot;,&quot;rationale&quot;:&quot;The node directly references YouTube as the platform where the person the author emailed has their following.&quot;},{&quot;slug&quot;:&quot;danger-third-rail&quot;,&quot;anchor_text&quot;:&quot;Danger Third Rail EP&quot;,&quot;context&quot;:&quot;the difference between the demos on this site and the songs which I had made into my Danger Third Rail EP&quot;,&quot;rationale&quot;:&quot;The node explicitly discusses the Danger Third Rail EP as a distinct, professionally produced body of work, which is the subject of the danger-third-rail node.&quot;},{&quot;slug&quot;:&quot;Fiverr&quot;,&quot;anchor_text&quot;:&quot;professionally mixed and mastered&quot;,&quot;context&quot;:&quot;They also got professionally mixed and mastered. So I think those tracks in particular are going to sound the best&quot;,&quot;rationale&quot;:&quot;The danger-third-rail node explains that professional mixing and mastering was done via Fiverr, making this a relevant elaboration point.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;not-quite-writers-block&quot;,&quot;rationale&quot;:&quot;That node explicitly references this node at its opening, discussing the same belief about needing to write hundreds of songs before producing great material.&quot;},{&quot;slug&quot;:&quot;a-story-of-failure&quot;,&quot;rationale&quot;:&quot;Discusses the author&#39;s experience frantically releasing songs (a song a day in 2018), directly paralleling the methodology shifts described here.&quot;},{&quot;slug&quot;:&quot;motivation-music&quot;,&quot;rationale&quot;:&quot;Explores the motivation behind making music as the sole member of Danger Third Rail, which connects to the self-assessment of quality and quantity discussed here.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:937,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:937,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:569},&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;slug&quot;:&quot;YouTube&quot;,&quot;anchor_text&quot;:&quot;coding at my job&quot;,&quot;context&quot;:&quot;I listen to music all day long while coding at my job. It&#39;s extremely satisfying&quot;,&quot;rationale&quot;:&quot;The author works at YouTube, so linking &#39;coding at my job&#39; to the YouTube node adds personal context.&quot;},{&quot;slug&quot;:&quot;intrisic motivation&quot;,&quot;anchor_text&quot;:&quot;zone/flow moments&quot;,&quot;context&quot;:&quot;especially when you get into those zone/flow moments&quot;,&quot;rationale&quot;:&quot;The &#39;flow&#39; state during coding relates directly to intrinsic motivation, which the author explores in that node.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;songwriting-reflections&quot;,&quot;rationale&quot;:&quot;Discusses the author&#39;s deep relationship with music and what makes songs emotionally resonant, complementing the idea of being moved by music while doing other things.&quot;},{&quot;slug&quot;:&quot;genre-thoughts&quot;,&quot;rationale&quot;:&quot;Explores what kinds of music the author listens to, providing context for the music being listened to in this node.&quot;},{&quot;slug&quot;:&quot;blogging-but-this-time-with-blogging&quot;,&quot;rationale&quot;:&quot;That node also experiments with writing while listening to music, using song lyrics as creative prompts, directly echoing the app idea described here.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:270,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:266,&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;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;github&quot;,&quot;anchor_text&quot;:&quot;Github&quot;,&quot;context&quot;:&quot;I called it Butterfly Catcher and it&#39;s still available on Github.&quot;,&quot;rationale&quot;:&quot;The node explicitly references GitHub as a hosting platform for the Butterfly Catcher project, and there is a dedicated node about GitHub in the garden.&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 implementation&quot;,&quot;rationale&quot;:&quot;Python Flask is a direct mention of the Python programming language ecosystem, which has its own dedicated garden node.&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 &#39;API client&#39; which just basically imported the right libraries&quot;,&quot;rationale&quot;:&quot;The node mentions releasing a Ruby API client, and there is a dedicated Ruby on Rails node in the garden covering the author&#39;s Ruby experience.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;q-poker-in-progress&quot;,&quot;rationale&quot;:&quot;Q Poker is another unfinished game/programming project by the same author, and that node explicitly references making-a-computer-game, making the two nodes natural companions.&quot;},{&quot;slug&quot;:&quot;intrisic motivation&quot;,&quot;rationale&quot;:&quot;The node&#39;s closing question &#39;what&#39;s stopping me?&#39; and the pattern of pursuing gamedev &#39;in fits and starts, as a hobby, never particularly successfully&#39; directly echoes the intrinsic motivation struggles described in that node.&quot;},{&quot;slug&quot;:&quot;vibe coding&quot;,&quot;rationale&quot;:&quot;The author has since embraced vibe coding extensively, which could be a potential new avenue for finally building one of these long-gestating game ideas.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1470,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:1002,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:633},&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;Mastodon instances&quot;,&quot;context&quot;:&quot;the size of the user base of Mastodon instances has grown 3x as part of the greatest Twitter exodus&quot;,&quot;rationale&quot;:&quot;ActivityPub is the underlying protocol that powers Mastodon, and that node explains the technical infrastructure behind Mastodon instances.&quot;},{&quot;slug&quot;:&quot;dg-solo&quot;,&quot;anchor_text&quot;:&quot;going viral&quot;,&quot;context&quot;:&quot;You will never go viral on Mastodon. But the truth of it is, you were never going to go viral on Twitter either.&quot;,&quot;rationale&quot;:&quot;The dg-solo node discusses the tension between wanting attention on the internet and being okay without it, which directly relates to the appeal of going viral.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;activity-pub&quot;,&quot;rationale&quot;:&quot;The ActivityPub node explains the technical protocol underpinning Mastodon and the fediverse, providing deeper context for how Mastodon&#39;s decentralized architecture makes it structurally different from Twitter.&quot;},{&quot;slug&quot;:&quot;dg-solo&quot;,&quot;rationale&quot;:&quot;This node discusses not needing attention or virality to thrive, which is thematically aligned with the argument that Mastodon&#39;s non-viral nature is actually a feature.&quot;},{&quot;slug&quot;:&quot;blogging-but-this-time-with-blogging&quot;,&quot;rationale&quot;:&quot;That node discusses Mastodon as an alternative outlet to blogging, extending the conversation about where and how one shares content online.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:814,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:330,&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;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;dg-reverse&quot;,&quot;anchor_text&quot;:&quot;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;The node on reverse chronological sorting is directly relevant to the author&#39;s repeated reflections on blogging habits and dissatisfaction with the blog format.&quot;},{&quot;slug&quot;:&quot;digital-gardening-principles&quot;,&quot;anchor_text&quot;:&quot;desire to blog&quot;,&quot;context&quot;:&quot;But I&#39;ve always had this desire to blog. It&#39;s like my vague desire to use a Zettelkasten&quot;,&quot;rationale&quot;:&quot;The digital gardening principles node explains why the author eventually moved from blogging to a digital garden, directly contextualizing this desire.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;dg-evergreen&quot;,&quot;rationale&quot;:&quot;This node discusses why digital gardens differ from blogs, elaborating on the tension between blogging and more persistent writing that this node touches on.&quot;},{&quot;slug&quot;:&quot;blog-cycle&quot;,&quot;rationale&quot;:&quot;That node reflects on the nature of blogging platforms and authoring, directly extending the themes of this node about the desire to blog but struggling with content.&quot;},{&quot;slug&quot;:&quot;blogging-but-this-time-with-blogging&quot;,&quot;rationale&quot;:&quot;That node also laments the difficulty of finding content to blog about and the relationship between blogging and other platforms, closely mirroring this node&#39;s themes.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:515,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:308,&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;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;had structured all of my projects as an Ableton Live main project for recording audio and using audio plugins&quot;,&quot;rationale&quot;:&quot;The node discusses Ableton Live extensively as the central DAW in the affected workflow, and a garden node exists specifically about Ableton Live.&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 I could automate a solution&quot;,&quot;rationale&quot;:&quot;The node references vibe coding as a potential solution to the file recovery problem, and a dedicated garden node on vibe coding exists.&quot;},{&quot;slug&quot;:&quot;recording-setup&quot;,&quot;anchor_text&quot;:&quot;a dedicated music making computer&quot;,&quot;context&quot;:&quot;I should just have a dedicated music making computer that&#39;s not even connected to the internet&quot;,&quot;rationale&quot;:&quot;The idea of a dedicated music computer directly relates to the recording-setup node which describes the author&#39;s actual current studio configuration.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;ableton-12&quot;,&quot;rationale&quot;:&quot;Directly about upgrading Ableton Live and the anxiety/procrastination around doing so, forming a natural companion piece to this node&#39;s discussion of upgrade-related project loss.&quot;},{&quot;slug&quot;:&quot;highs-and-lows-musician&quot;,&quot;rationale&quot;:&quot;Covers the broader history of the author&#39;s digital music production journey, providing context for the decade of projects described as lost ephemera here.&quot;},{&quot;slug&quot;:&quot;danger-third-rail&quot;,&quot;rationale&quot;:&quot;The music projects discussed as ephemera are the source material for Danger Third Rail, making this node a direct backstory for that one.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1557,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:1210,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:840},&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;have it done on Fiverr like I did last time (or some combination of the two)&quot;,&quot;rationale&quot;:&quot;Fiverr is a node in the garden and is directly referenced as a service used for album artwork.&quot;},{&quot;slug&quot;:&quot;Bandcamp&quot;,&quot;anchor_text&quot;:&quot;Bandcamp&quot;,&quot;context&quot;:&quot;Follow Danger Third Rail on Bandcamp to get the official word when the new EP is available&quot;,&quot;rationale&quot;:&quot;Bandcamp is a node in the garden and is directly linked to the artist&#39;s music distribution.&quot;},{&quot;slug&quot;:&quot;recording-setup&quot;,&quot;anchor_text&quot;:&quot;new setup that I&#39;ve recently learned works better&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 recording-setup node covers the author&#39;s studio configuration, which is directly relevant to the vocal re-recording mentioned here.&quot;},{&quot;slug&quot;:&quot;YouTube&quot;,&quot;anchor_text&quot;:&quot;YouTube&quot;,&quot;context&quot;:&quot;make YouTube lyric (or otherwise) videos for each one of the songs&quot;,&quot;rationale&quot;:&quot;YouTube is a node in the garden and is explicitly mentioned as a planned promotional platform.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;intrisic motivation&quot;,&quot;rationale&quot;:&quot;The node discusses fear and commitment around promoting music, which connects to the garden&#39;s exploration of intrinsic vs extrinsic motivation in creative work.&quot;},{&quot;slug&quot;:&quot;motivation-music&quot;,&quot;rationale&quot;:&quot;This node directly addresses motivation for writing and producing music as a solo artist under the Danger Third Rail project.&quot;},{&quot;slug&quot;:&quot;highs-and-lows-musician&quot;,&quot;rationale&quot;:&quot;This node covers the author&#39;s history of recording music and the formation of Danger Third Rail, providing deeper context for the EP announcement.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:614,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:387,&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;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;dg-evergreen&quot;,&quot;anchor_text&quot;:&quot;digital garden&quot;,&quot;context&quot;:&quot;Part of the goal of starting a digital garden was to recognize that things like my writing&quot;,&quot;rationale&quot;:&quot;The node references the core concept of digital gardens being evergreen and unfinished, which is directly covered in the dg-evergreen node.&quot;},{&quot;slug&quot;:&quot;intrisic motivation&quot;,&quot;anchor_text&quot;:&quot;do I really want to do those things&quot;,&quot;context&quot;:&quot;do I really want to do those things, or is it enough for me to talk about doing them&quot;,&quot;rationale&quot;:&quot;The node&#39;s question about whether the author truly wants to accomplish goals directly relates to the intrinsic vs extrinsic motivation node.&quot;},{&quot;slug&quot;:&quot;free will&quot;,&quot;anchor_text&quot;:&quot;free will&quot;,&quot;context&quot;:&quot;I honestly don&#39;t believe in [[philosophy|free will]] or any purpose to life&quot;,&quot;rationale&quot;:&quot;The node already links philosophy but &#39;free will&#39; is its own dedicated node in the garden that should be directly linked here.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;the-chain&quot;,&quot;rationale&quot;:&quot;This node discusses the difficulty of following through on intentions and procrastination, which directly parallels the Seinfeld Strategy for habit-building discussed in the-chain node.&quot;},{&quot;slug&quot;:&quot;new-year-2025&quot;,&quot;rationale&quot;:&quot;The new-year-2025 node is a direct companion piece reflecting on the same themes of New Year&#39;s Day and resolutions discussed here.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1004,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&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;:0},&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;guitar-driven rock songs&quot;,&quot;context&quot;:&quot;I feel more at ease creating guitar-driven rock songs than any EDM pieces&quot;,&quot;rationale&quot;:&quot;The genre-thoughts node is directly about the tension between the genres one listens to and the music one produces, exactly the topic being discussed here.&quot;},{&quot;slug&quot;:&quot;mastodon-is-not-twitter&quot;,&quot;anchor_text&quot;:&quot;Mastodon&quot;,&quot;context&quot;:&quot;I publish it on my song demos website and toot about it on Mastodon (sometimes I also tweet it)&quot;,&quot;rationale&quot;:&quot;The mastodon-is-not-twitter node discusses using Mastodon as a platform for sharing creative work, which is directly what this node references.&quot;},{&quot;slug&quot;:&quot;intrisic motivation&quot;,&quot;anchor_text&quot;:&quot;external encouragement or engagement&quot;,&quot;context&quot;:&quot;I know I can&#39;t depend on external encouragement or engagement to drive my songwriting&quot;,&quot;rationale&quot;:&quot;The intrinsic motivation node is specifically about the author&#39;s realization that he is driven by extrinsic rather than intrinsic motivation, which is the exact problem described in this passage.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;motivation-music&quot;,&quot;rationale&quot;:&quot;That node is explicitly about motivation for writing and producing music as the sole member of Danger Third Rail, directly elaborating on the lack of focus and drive described here.&quot;},{&quot;slug&quot;:&quot;nike-the-shit-out-of-it&quot;,&quot;rationale&quot;:&quot;This node is about the same struggle of not finishing or publishing songs and needing to just push through, making it a natural companion piece.&quot;},{&quot;slug&quot;:&quot;fake-it-music&quot;,&quot;rationale&quot;:&quot;Discusses the unique challenges of being a solo music producer without a full band, which contextualizes the difficulty of staying motivated described here.&quot;},{&quot;slug&quot;:&quot;the-chain&quot;,&quot;rationale&quot;:&quot;The Seinfeld strategy for building creative habits addresses the exact problem of maintaining consistent songwriting motivation discussed in this node.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:775,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:1485,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:1057},&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;DBT&quot;,&quot;anchor_text&quot;:&quot;clinically depressed&quot;,&quot;context&quot;:&quot;I&#39;m not sure if I&#39;m actually depressed. I&#39;ve been clinically depressed in the past&quot;,&quot;rationale&quot;:&quot;DBT is a therapy directly relevant to clinical depression and the emotional regulation struggles described in this node.&quot;},{&quot;slug&quot;:&quot;intrisic motivation&quot;,&quot;anchor_text&quot;:&quot;interests and activities to look forward to pursuing&quot;,&quot;context&quot;:&quot;I recall a time, once, when maybe I had interests and activities to look forward to pursuing&quot;,&quot;rationale&quot;:&quot;The node on intrinsic motivation directly addresses the loss of drive and internal motivation that the author is describing here.&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;YouTube is a named node in the garden and is directly referenced in this passage.&quot;},{&quot;slug&quot;:&quot;Abby&quot;,&quot;anchor_text&quot;:&quot;my wife&quot;,&quot;context&quot;:&quot;I marvel at my wife&#39;s ability to click another YouTube video&quot;,&quot;rationale&quot;:&quot;The author&#39;s wife Abby is a named node in the garden and is being directly referenced here.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;empty-mind&quot;,&quot;rationale&quot;:&quot;Empty Mind describes a very similar state of creative paralysis and inability to engage with hobbies or projects, closely mirroring the pandemic-weary feelings described here.&quot;},{&quot;slug&quot;:&quot;coping-skills&quot;,&quot;rationale&quot;:&quot;Coping Skills directly addresses the question this node ends on — what is to be done with difficult feelings — making it a natural elaboration.&quot;},{&quot;slug&quot;:&quot;intrisic motivation&quot;,&quot;rationale&quot;:&quot;The intrinsic motivation node explores why the author struggles to engage with activities, which elaborates on the loss of interest described in this node.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:418,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:379,&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;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;in Python&quot;,&quot;context&quot;:&quot;Backend game logic, in Python, where you can start and finish Hands (of Razz)&quot;,&quot;rationale&quot;:&quot;The node repeatedly references Python as the backend language, and there is a dedicated Python node in the garden.&quot;},{&quot;slug&quot;:&quot;javascript-typescript&quot;,&quot;anchor_text&quot;:&quot;ReactJS frontend app&quot;,&quot;context&quot;:&quot;ReactJS frontend app which responds to and displays the Table state changes from the backend&quot;,&quot;rationale&quot;:&quot;The ReactJS frontend is a JavaScript application, and the javascript-typescript node covers JS/TS development in the garden.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;vibe coding&quot;,&quot;rationale&quot;:&quot;The bot implementation challenge (CFR, AI poker bots) and the complexity of generalizing algorithms could relate to vibe coding as a potential approach to rapidly prototyping game logic.&quot;},{&quot;slug&quot;:&quot;making-a-computer-game&quot;,&quot;rationale&quot;:&quot;This node is a direct continuation of the making-a-computer-game post and shares substantial thematic overlap around game development challenges and approaches.&quot;},{&quot;slug&quot;:&quot;wp-1.0&quot;,&quot;rationale&quot;:&quot;WP 1.0 is another substantial Python project by the same author, and its development experiences (async logic, persistence) may offer useful parallels to Q Poker&#39;s backend work.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:996,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:681,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:391},&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;The javascript-typescript node is the main dedicated node for this topic and directly elaborates on Typescript as covered here.&quot;},{&quot;slug&quot;:&quot;what-is-a-web-application&quot;,&quot;anchor_text&quot;:&quot;web browsers&quot;,&quot;context&quot;:&quot;It is interpreted by web browsers in order to process and display data on web pages.&quot;,&quot;rationale&quot;:&quot;The what-is-a-web-application node explains web applications and browsers in depth, directly relevant to how Javascript is used.&quot;},{&quot;slug&quot;:&quot;programming languages&quot;,&quot;anchor_text&quot;:&quot;programming language&quot;,&quot;context&quot;:&quot;Javascript is a programming language that is used primarily on the web.&quot;,&quot;rationale&quot;:&quot;The programming languages meta node ties together all the language nodes in the garden, including Javascript/Typescript.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;javascript-typescript&quot;,&quot;rationale&quot;:&quot;The javascript-typescript node is the primary dedicated treatment of Javascript and Typescript in this garden and covers much of the same ground in greater depth.&quot;},{&quot;slug&quot;:&quot;what-programming-language-should-i-learn&quot;,&quot;rationale&quot;:&quot;That node discusses which programming language to learn first and specifically mentions Javascript, directly complementing this introductory overview.&quot;},{&quot;slug&quot;:&quot;Vue.js&quot;,&quot;rationale&quot;:&quot;Vue.js is a Javascript/Typescript framework discussed in its own node, providing a concrete example of Javascript usage on the frontend mentioned here.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:380,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:326,&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;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;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&quot;,&quot;rationale&quot;:&quot;This node directly expands on the &#39;just do it&#39; philosophy applied to songwriting, making it a natural extension of the point being made here.&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 specifically about listening to music while coding, directly mirroring the habit described here.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;genre-thoughts&quot;,&quot;rationale&quot;:&quot;That node explicitly explores the relationship between the music one listens to and one&#39;s ability to write in that genre, a direct elaboration of this node&#39;s point about being &#39;steeped heavily in the music of their times&#39;.&quot;},{&quot;slug&quot;:&quot;motivation-music&quot;,&quot;rationale&quot;:&quot;That node digs into the motivational dynamics of listening to music as a music producer, complementing this node&#39;s question about whether critical listening can be forced.&quot;},{&quot;slug&quot;:&quot;not-quite-writers-block&quot;,&quot;rationale&quot;:&quot;That node explores the same tension between creative aspiration and output, including the idea that the problem may be an excuse rather than a true block.&quot;},{&quot;slug&quot;:&quot;intrisic motivation&quot;,&quot;rationale&quot;:&quot;This node ends by wondering if the &#39;out&#39; it describes is really just avoidance; the intrinsic motivation node directly addresses why extrinsic-driven creatives struggle to self-start.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:505,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:837,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:438},&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;slug&quot;:&quot;YouTube&quot;,&quot;anchor_text&quot;:&quot;YouTube video&quot;,&quot;context&quot;:&quot;I saw a YouTube video that talked about this and used the JFK&quot;,&quot;rationale&quot;:&quot;The node references a YouTube video as a source of inspiration, and the YouTube slug is a node about YouTube itself where the author works.&quot;},{&quot;slug&quot;:&quot;blog&quot;,&quot;anchor_text&quot;:&quot;writing/blogging&quot;,&quot;context&quot;:&quot;anything close to max level in writing/blogging, besides having done it especially sporadically since 2003&quot;,&quot;rationale&quot;:&quot;The node explicitly references the author&#39;s blogging history, and the blog node covers that topic directly.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;songwriting-reflections&quot;,&quot;rationale&quot;:&quot;This node muses on song lyrics and Paul McCartney&#39;s songwriting, and songwriting-reflections dives deeply into the author&#39;s own philosophy on lyrics, melody, and musical craft.&quot;},{&quot;slug&quot;:&quot;motivation-music&quot;,&quot;rationale&quot;:&quot;The node wonders why Paul McCartney stopped having hits and whether skills atrophy, which directly parallels the motivation-music node&#39;s analysis of what drives (or blocks) music creation.&quot;},{&quot;slug&quot;:&quot;font-of-creativity&quot;,&quot;rationale&quot;:&quot;Both nodes explore the compulsion to create and the relationship between creative desire and output, making them natural companions.&quot;},{&quot;slug&quot;:&quot;intrisic motivation&quot;,&quot;rationale&quot;:&quot;The node&#39;s central metaphor of being &#39;max level&#39; with no desire to do side quests maps closely onto the intrinsic vs extrinsic motivation discussion in that node.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:938,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:1068,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:735},&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;The node directly names Ableton Live, which has its own dedicated node in the garden.&quot;},{&quot;slug&quot;:&quot;not-quite-writers-block&quot;,&quot;anchor_text&quot;:&quot;writer&#39;s block&quot;,&quot;context&quot;:&quot;One of my students was having trouble with writer&#39;s block of sorts&quot;,&quot;rationale&quot;:&quot;There is a dedicated node about writer&#39;s block in music production that directly relates to this node&#39;s central topic.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;fake-it-music&quot;,&quot;rationale&quot;:&quot;That node explores the idea that not every part of a song has to be perfect, which closely parallels the &#39;Make Something Terrible&#39; philosophy discussed here.&quot;},{&quot;slug&quot;:&quot;font-of-creativity&quot;,&quot;rationale&quot;:&quot;That node reflects on creative blocks and the struggle to produce output, directly relating to the writer&#39;s block and permission-to-create themes here.&quot;},{&quot;slug&quot;:&quot;intrisic motivation&quot;,&quot;rationale&quot;:&quot;The existential crisis at the end of this node—questioning whether making terrible music is even possible—connects to the intrinsic motivation themes explored in that node.&quot;},{&quot;slug&quot;:&quot;highs-and-lows-musician&quot;,&quot;rationale&quot;:&quot;That node chronicles the author&#39;s long experience with home music production, providing broader context for the tutoring and production habits described here.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:707,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:742,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:427},&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;slug&quot;:&quot;danger-third-rail&quot;,&quot;anchor_text&quot;:&quot;my music&quot;,&quot;context&quot;:&quot;Maybe that&#39;s why I like power chords so much in my music, because they&#39;re ambiguous&quot;,&quot;rationale&quot;:&quot;The node refers to the author&#39;s personal music, which is produced under the Danger Third Rail project.&quot;},{&quot;slug&quot;:&quot;genre-thoughts&quot;,&quot;anchor_text&quot;:&quot;rock, pop and especially not EDM music&quot;,&quot;context&quot;:&quot;that&#39;s not how most rock, pop and especially not EDM music works&quot;,&quot;rationale&quot;:&quot;The genre-thoughts node directly addresses the author&#39;s reflections on the types of music they listen to versus produce, closely paralleling this discussion.&quot;},{&quot;slug&quot;:&quot;fake-it-music&quot;,&quot;anchor_text&quot;:&quot;basic harmonic chords&quot;,&quot;context&quot;:&quot;found the basic harmonic chords that made up songs and would just strum the chords&quot;,&quot;rationale&quot;:&quot;The fake-it-music node discusses the challenges of arranging and recording as a solo musician, which connects to the reflection on simplified acoustic guitar treatment of songs.&quot;},{&quot;slug&quot;:&quot;ableton&quot;,&quot;anchor_text&quot;:&quot;song writing&quot;,&quot;context&quot;:&quot;reflecting on some aspects of my own song writing here&quot;,&quot;rationale&quot;:&quot;Ableton Live is the DAW the author uses for songwriting and music production, directly relevant to their music-making process.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;genre-thoughts&quot;,&quot;rationale&quot;:&quot;That node elaborates on the disconnect between the music the author listens to and what they find easy to produce, directly extending the themes of songwriting identity discussed here.&quot;},{&quot;slug&quot;:&quot;the-unattainable-and-the-attainable&quot;,&quot;rationale&quot;:&quot;It discusses specific albums and harmonic qualities that inspire or intimidate the author, complementing the reflections on tonality and musical influence in this node.&quot;},{&quot;slug&quot;:&quot;motivation-music&quot;,&quot;rationale&quot;:&quot;That node explores what motivates the author to write and produce music, which is a natural extension of the songwriting self-reflection here.&quot;},{&quot;slug&quot;:&quot;highs-and-lows-musician&quot;,&quot;rationale&quot;:&quot;It chronicles the author&#39;s history of writing and recording music, providing biographical context that enriches the personal reflections in this node.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:780,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:468,&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;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;intrisic motivation&quot;,&quot;anchor_text&quot;:&quot;desire to procrastinate&quot;,&quot;context&quot;:&quot;the desire to procrastinate, the perceived pain of working on your project, is overcome simply&quot;,&quot;rationale&quot;:&quot;The Chain strategy directly relates to overcoming procrastination through motivation, which is the core topic of the Intrinsic Motivation node.&quot;},{&quot;slug&quot;:&quot;getting-nothing-done&quot;,&quot;anchor_text&quot;:&quot;commit to consistently blog&quot;,&quot;context&quot;:&quot;I think it&#39;s the fact that I&#39;ve tried to consistently blog before, and it always ends in so many tears&quot;,&quot;rationale&quot;:&quot;The Getting Nothing Done node discusses productivity systems and why they often fail, directly relevant to the author&#39;s reflection on their inability to maintain The Chain.&quot;},{&quot;slug&quot;:&quot;new-year&quot;,&quot;anchor_text&quot;:&quot;building a habit&quot;,&quot;context&quot;:&quot;You might have heard of the so-called Seinfeld Strategy for sticking to something and building a habit&quot;,&quot;rationale&quot;:&quot;The Every Day is New Year&#39;s Day node discusses real change being gradual and sporadic rather than tied to commitments, which connects thematically to habit-building strategies like The Chain.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;a-story-of-failure&quot;,&quot;rationale&quot;:&quot;Describes a failed attempt at a daily creative commitment (song a day), which is thematically identical to the author&#39;s fears about breaking The Chain.&quot;},{&quot;slug&quot;:&quot;giving-up-on-resolutions&quot;,&quot;rationale&quot;:&quot;Discusses the ineffectiveness of committing to consistent habits/resolutions, directly relevant to the author&#39;s ambivalence about committing to The Chain.&quot;},{&quot;slug&quot;:&quot;nike-the-shit-out-of-it&quot;,&quot;rationale&quot;:&quot;Also deals with the struggle to maintain consistent creative output and the difficulty of just doing the work regularly.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:709,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:384,&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;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;fake-it-music&quot;,&quot;anchor_text&quot;:&quot;fake it &#39;till I make it&quot;,&quot;context&quot;:&quot;could I **write** this record in my recording studio/kitchen today?&#92;&quot; ...could I &#92;&quot;fake it &#39;till I make it&#92;&quot; with what I have&quot;,&quot;rationale&quot;:&quot;The node &#39;fake-it-music&#39; directly addresses the concept of faking instrument parts as a solo musician, which is exactly what this passage is about.&quot;},{&quot;slug&quot;:&quot;recording-setup&quot;,&quot;anchor_text&quot;:&quot;recording studio/kitchen&quot;,&quot;context&quot;:&quot;could I **write** this record in my recording studio/kitchen today?&#92;&quot; I think that&#39;s a more salient question&quot;,&quot;rationale&quot;:&quot;The &#39;recording-setup&#39; node describes the author&#39;s actual kitchen-based recording studio, directly matching the phrase used here.&quot;},{&quot;slug&quot;:&quot;songwriting-reflections&quot;,&quot;anchor_text&quot;:&quot;lyricism in music&quot;,&quot;context&quot;:&quot;I haven&#39;t always given much credit to lyricism in music. I know, intellectually, that most people&quot;,&quot;rationale&quot;:&quot;The &#39;songwriting-reflections&#39; node discusses the author&#39;s thoughts on lyrics, melody, and hooks in songwriting, closely matching this passage&#39;s reflection on lyrics.&quot;},{&quot;slug&quot;:&quot;danger-third-rail&quot;,&quot;anchor_text&quot;:&quot;my &#92;&quot;signature sound&#92;&quot;&quot;,&quot;context&quot;:&quot;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.&quot;,&quot;rationale&quot;:&quot;This is a direct reference to the author&#39;s recording project Danger Third Rail, which has its own node.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;genre-thoughts&quot;,&quot;rationale&quot;:&quot;That node discusses the tension between the rock music the author listens to and the music production environment available, directly paralleling this node&#39;s exploration of making punk records at home.&quot;},{&quot;slug&quot;:&quot;highs-and-lows-musician&quot;,&quot;rationale&quot;:&quot;That node covers the author&#39;s history of home studio music production and band formation challenges, elaborating on the constraints discussed here.&quot;},{&quot;slug&quot;:&quot;motivation-music&quot;,&quot;rationale&quot;:&quot;That node discusses what makes the author want to create music and the relationship between inspiring records and personal output, extending the theme of aspiring to make records like Insomniac or Blurryface.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:914,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:807,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:314},&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;like those vacuum cleaners with fake noise added so that people believe they&#39;re working (look it up on YouTube)&quot;,&quot;rationale&quot;:&quot;The node references YouTube directly by name, and a node for YouTube exists in the garden.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;intrisic motivation&quot;,&quot;rationale&quot;:&quot;The email reflects on attention-seeking and external validation as drivers of behavior, which directly relates to the node&#39;s discussion of extrinsic vs. intrinsic motivation.&quot;},{&quot;slug&quot;:&quot;dg-solo&quot;,&quot;rationale&quot;:&quot;This node&#39;s theme of craving contact and validation from others echoes the garden principle about not needing external attention to thrive, making it a meaningful conceptual counterpoint.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:567,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:171,&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;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;slug&quot;:&quot;javascript-typescript&quot;,&quot;anchor_text&quot;:&quot;programs run on the server&quot;,&quot;context&quot;:&quot;one or more programs run on the server, and the end result (output) of the process is the HTML&quot;,&quot;rationale&quot;:&quot;Server-side programming is closely related to Javascript/Typescript (Node.js), which the garden covers in depth.&quot;},{&quot;slug&quot;:&quot;Vue.js&quot;,&quot;anchor_text&quot;:&quot;web applications&quot;,&quot;context&quot;:&quot;the most useful ones are actually web applications. Other examples of web applications are Google Calendar&quot;,&quot;rationale&quot;:&quot;Vue.js is specifically described in the garden as a framework for building interactive web applications, making it a highly relevant link here.&quot;},{&quot;slug&quot;:&quot;what-programming-language-should-i-learn&quot;,&quot;anchor_text&quot;:&quot;beginning or aspiring web developers&quot;,&quot;context&quot;:&quot;It is aimed at beginning or aspiring web developers, or even those who aren&#39;t developers&quot;,&quot;rationale&quot;:&quot;Aspiring web developers reading this intro article would naturally want to know what programming language to learn next.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;Vue.js&quot;,&quot;rationale&quot;:&quot;Vue.js elaborates on how modern web applications are built with frontend frameworks, extending the discussion of dynamic web apps.&quot;},{&quot;slug&quot;:&quot;Rainfall&quot;,&quot;rationale&quot;:&quot;Rainfall is described as a static site generator and Flask web application, providing a concrete real-world example of the static vs dynamic website concepts discussed here.&quot;},{&quot;slug&quot;:&quot;what-programming-language-should-i-learn&quot;,&quot;rationale&quot;:&quot;That node directly addresses the next question a beginner reading this article would ask, making it a natural &#39;see also&#39; extension.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:819,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&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;:0},&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;Python&quot;,&quot;anchor_text&quot;:&quot;Python&quot;,&quot;context&quot;:&quot;I would personally suggest Javascript or Python. Javascript is great because&quot;,&quot;rationale&quot;:&quot;The garden has a dedicated node on Python that elaborates on the author&#39;s experience with the language.&quot;},{&quot;slug&quot;:&quot;javascript-typescript&quot;,&quot;anchor_text&quot;:&quot;Javascript&quot;,&quot;context&quot;:&quot;I would personally suggest Javascript or Python. Javascript is great because with a few lines&quot;,&quot;rationale&quot;:&quot;The garden has a dedicated node on Javascript/Typescript that expands on the language in depth.&quot;},{&quot;slug&quot;:&quot;Perl&quot;,&quot;anchor_text&quot;:&quot;Perl&quot;,&quot;context&quot;:&quot;think Python or R, but probably not C++ or Perl (side note: with my recent experiences&quot;,&quot;rationale&quot;:&quot;The garden has a dedicated node on Perl describing the author&#39;s experiences with the language.&quot;},{&quot;slug&quot;:&quot;programming languages&quot;,&quot;anchor_text&quot;:&quot;programming languages&quot;,&quot;context&quot;:&quot;I would recommend looking at lots of different languages when you&#39;re first starting out&quot;,&quot;rationale&quot;:&quot;The garden has a meta node tying together the author&#39;s notes on various programming languages.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;about&quot;,&quot;rationale&quot;:&quot;The About Me node mentions the author tutors students in Computer Science and teaches a free Python class, directly relevant to the audience of this post.&quot;},{&quot;slug&quot;:&quot;random-knowledge-about-javascript-and-typescript&quot;,&quot;rationale&quot;:&quot;This node provides additional technical detail about Javascript and Typescript that complements the beginner-oriented recommendation in this post.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:769,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:316,&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;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;And no, I&#39;m not particularly itching to do that with this digital garden.&quot;,&quot;rationale&quot;:&quot;The node directly refers to this digital garden as a project, and the digital-garden-itself node covers its structure and technology.&quot;},{&quot;slug&quot;:&quot;dg-evergreen&quot;,&quot;anchor_text&quot;:&quot;garden nodes&quot;,&quot;context&quot;:&quot;I have a vague feeling that I want to include more images in my garden nodes&quot;,&quot;rationale&quot;:&quot;The concept of garden nodes as evergreen, updateable content is central to this garden&#39;s philosophy and directly relevant here.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;plans&quot;,&quot;rationale&quot;:&quot;The plans node discusses aspirations for improving the digital garden&#39;s structure and content, which overlaps with the multimedia and build system limitations discussed here.&quot;},{&quot;slug&quot;:&quot;dg-new&quot;,&quot;rationale&quot;:&quot;The dg-new node discusses embracing new technologies and approaches for digital gardens, which relates to the author&#39;s reflections on whether their current setup is limiting them.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:426,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:231,&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;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;mastodon-is-not-twitter&quot;,&quot;anchor_text&quot;:&quot;Mastodon&quot;,&quot;context&quot;:&quot;upon returning to Mastodon, that it had that feature built into new versions&quot;,&quot;rationale&quot;:&quot;The node mentions Mastodon specifically in the context of post deletion features, and there is a dedicated node about Mastodon that would provide relevant context.&quot;},{&quot;slug&quot;:&quot;digital-garden-itself&quot;,&quot;anchor_text&quot;:&quot;digital garden&quot;,&quot;context&quot;:&quot;I hope that a digital garden will provide a more well-rounded view of my digital self&quot;,&quot;rationale&quot;:&quot;This node references the digital garden concept as a better alternative to blogging, and the dedicated node elaborates on this garden specifically.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;dg-public&quot;,&quot;rationale&quot;:&quot;The blog node discusses the tension between public visibility and personal liability of writing online, which is directly addressed in the dg-public node about learning in public.&quot;},{&quot;slug&quot;:&quot;dg-solo&quot;,&quot;rationale&quot;:&quot;The node reflects on writing without an audience and not needing attention, a theme directly explored in the dg-solo node.&quot;},{&quot;slug&quot;:&quot;more-about-blogging&quot;,&quot;rationale&quot;:&quot;That node elaborates on the author&#39;s history with blogging and desire to blog, directly extending the themes in this node.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:517,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:284,&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;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;completely automated using GitHub Actions. What this means is that before you merge a PR&quot;,&quot;rationale&quot;:&quot;The node discusses GitHub Actions as a core part of the Codecov integration workflow, and the github node covers Travis&#39;s thoughts and experiences with GitHub directly.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;warnings-python&quot;,&quot;rationale&quot;:&quot;That node covers elevating Python test warnings to errors in an automated test suite, which is directly complementary to the code coverage and CI pipeline topics discussed here.&quot;},{&quot;slug&quot;:&quot;Python&quot;,&quot;rationale&quot;:&quot;The wp-1.0 repo mentioned in this node is a Python project, and the Python node covers Travis&#39;s use of Python for that same project, providing context for why Codecov matters to him.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1254,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:504,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:324},&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;slug&quot;:&quot;mastodon-is-not-twitter&quot;,&quot;anchor_text&quot;:&quot;Mastodon&quot;,&quot;context&quot;:&quot;Then I saw someone&#39;s blog post that had a &quot;,&quot;rationale&quot;:&quot;Comments from Mastodon&#92;&quot; section&quot;},{&quot;slug&quot;:&quot;mastodon-is-not-twitter&quot;,&quot;anchor_text&quot;:&quot;Mastodon post&quot;,&quot;context&quot;:&quot;create a post on Mastodon that represents your blog post/garden node&quot;,&quot;rationale&quot;:&quot;The node relies heavily on Mastodon as the comment infrastructure, and there is a dedicated node about Mastodon in the garden.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;dg-feedback&quot;,&quot;rationale&quot;:&quot;This node is the technical implementation behind the principle described in dg-feedback, which states that digital gardens should allow and respond to feedback via comments.&quot;},{&quot;slug&quot;:&quot;comments&quot;,&quot;rationale&quot;:&quot;The comments node is a short summary of the outcome of this research and directly references this node, making it a natural bidirectional cross-reference.&quot;},{&quot;slug&quot;:&quot;digital-garden-itself&quot;,&quot;rationale&quot;:&quot;The digital-garden-itself node mentions that comments are enabled via Mastodon, which is exactly the system described in detail here.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1713,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:734,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:467},&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;slug&quot;:&quot;digital-garden-itself&quot;,&quot;anchor_text&quot;:&quot;digital garden&quot;,&quot;context&quot;:&quot;I didn&#39;t have any comments on my digital garden, which is of course counter&quot;,&quot;rationale&quot;:&quot;The node &#39;digital-garden-itself&#39; directly covers the garden this node is talking about, making it a natural link target.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;dg-public&quot;,&quot;rationale&quot;:&quot;The principle of learning/publishing in public is directly relevant to why comments matter on a digital garden.&quot;},{&quot;slug&quot;:&quot;dg-solo&quot;,&quot;rationale&quot;:&quot;This node discusses whether a digital garden needs attention or feedback, which contextualizes the importance (or unimportance) of comments.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:112,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:155,&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;slug&quot;:&quot;digital-garden-itself&quot;,&quot;anchor_text&quot;:&quot;this Garden&quot;,&quot;context&quot;:&quot;I&#39;ve felt handcuffed from adding new content to this Garden. While I thought I would be writing&quot;,&quot;rationale&quot;:&quot;The node repeatedly references &#39;this Garden&#39; as an entity, and digital-garden-itself is the node that describes the garden as a whole.&quot;},{&quot;slug&quot;:&quot;digital-gardening-principles&quot;,&quot;anchor_text&quot;:&quot;garden &#92;&quot;nodes&#92;&quot;&quot;,&quot;context&quot;:&quot;I had all these ideas for garden &#92;&quot;nodes&#92;&quot;, but no &#92;&quot;place in the garden&#92;&quot; for them&quot;,&quot;rationale&quot;:&quot;The concept of garden nodes and how they interlink is directly described in digital-gardening-principles, making it a natural link target here.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;plans&quot;,&quot;rationale&quot;:&quot;Plans for the digital garden discusses the same meta-concern of how to organize and grow the garden&#39;s content, directly complementing the compost pile&#39;s purpose as a staging area for new nodes.&quot;},{&quot;slug&quot;:&quot;dg-status&quot;,&quot;rationale&quot;:&quot;The compost pile is partly about nodes that haven&#39;t yet found their place; dg-status discusses how gardeners disclose the maturity/status of posts, which is closely related to the idea of nodes growing from rough ideas into finished content.&quot;},{&quot;slug&quot;:&quot;dg-public&quot;,&quot;rationale&quot;:&quot;The compost pile is about making rough thoughts public as a place to link from, which connects to dg-public&#39;s theme of learning and publishing in public even when content is incomplete.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:554,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:1306,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:975},&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;slug&quot;:&quot;new-danger-third-rail-ep&quot;,&quot;anchor_text&quot;:&quot;first full length album&quot;,&quot;context&quot;:&quot;songs for my first full length album, and I&#39;ve recorded demos of all the songs&quot;,&quot;rationale&quot;:&quot;The new-danger-third-rail-ep node directly discusses plans for a new Danger Third Rail release, making it a natural link here.&quot;},{&quot;slug&quot;:&quot;songwriting-reflections&quot;,&quot;anchor_text&quot;:&quot;written all the songs 100% myself&quot;,&quot;context&quot;:&quot;I&#39;ve written all the songs 100% myself, sang them all, played guitar and keyboards&quot;,&quot;rationale&quot;:&quot;The songwriting-reflections node covers the author&#39;s personal approach to writing songs, which is directly relevant to this creative process.&quot;},{&quot;slug&quot;:&quot;genre-thoughts&quot;,&quot;anchor_text&quot;:&quot;recording music in my&quot;,&quot;context&quot;:&quot;it&#39;s mostly just a recording project of myself, recording music in my home recording studio&quot;,&quot;rationale&quot;:&quot;The genre-thoughts node discusses the author&#39;s music writing and production process as a solo musician, closely related to this project.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;new-danger-third-rail-ep&quot;,&quot;rationale&quot;:&quot;This node announces a specific upcoming Danger Third Rail release and elaborates on the production plans and timeline mentioned in the danger-third-rail node.&quot;},{&quot;slug&quot;:&quot;intrisic motivation&quot;,&quot;rationale&quot;:&quot;The danger-third-rail node mentions struggling to motivate a DIY full album production, and the intrisic motivation node explores the author&#39;s motivational challenges in depth.&quot;},{&quot;slug&quot;:&quot;nike-the-shit-out-of-it&quot;,&quot;rationale&quot;:&quot;This node directly discusses the difficulty of finishing and publishing songs, which mirrors the hiatus and demo situation described in the danger-third-rail node.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:925,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:376,&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-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;reverse chronological posting&quot;,&quot;context&quot;:&quot;breaking free of reverse chronological posting. Digital Gardens allow notes on any topic&quot;,&quot;rationale&quot;:&quot;The dg-reverse node directly elaborates on the concept of reverse chronological sorting that this node references as something digital gardens react against.&quot;},{&quot;slug&quot;:&quot;digital-gardening-principles&quot;,&quot;anchor_text&quot;:&quot;digital gardens&quot;,&quot;context&quot;:&quot;there&#39;s something at the heart of digital gardens that is more than just a reaction&quot;,&quot;rationale&quot;:&quot;The digital-gardening-principles node is the foundational overview that this node is one part of, making it a natural link for context.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;dg-public&quot;,&quot;rationale&quot;:&quot;The dg-public node discusses learning in public and keeping notes updated, which directly complements the evergreen/perennial updating concept described here.&quot;},{&quot;slug&quot;:&quot;dg-status&quot;,&quot;rationale&quot;:&quot;The dg-status node discusses epistemic disclosure and post quality/importance metadata, which is closely related to the idea of nodes being unfinished and gradually developed over time.&quot;},{&quot;slug&quot;:&quot;compost&quot;,&quot;rationale&quot;:&quot;The compost node discusses the challenge of finding places to link new nodes and the idea of gradual growth, which directly relates to the evergreen nature of garden nodes described here.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:303,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:289,&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-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;slug&quot;:&quot;comments-research&quot;,&quot;anchor_text&quot;:&quot;my [[comments|comments system]]&quot;,&quot;context&quot;:&quot;You can read more about my comments system.&quot;,&quot;rationale&quot;:&quot;The comments-research node documents the full research and journey to enabling comments, which is exactly what &#39;read more about my comments system&#39; points to.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;digital-gardening-principles&quot;,&quot;rationale&quot;:&quot;This node elaborates on the broader principles underlying digital gardens, including feedback and evergreen content, providing important context for why feedback matters in this garden.&quot;},{&quot;slug&quot;:&quot;dg-status&quot;,&quot;rationale&quot;:&quot;Epistemic disclosure and status transparency are closely related to responding to feedback — readers who flag outdated content connect directly to the idea of being upfront about a post&#39;s status.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:243,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:175,&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;digital-gardening-principles&quot;,&quot;anchor_text&quot;:&quot;Digital Garden&quot;,&quot;context&quot;:&quot;it could be that a &#92;&quot;Digital Garden&#92;&quot; is just a reaction to the concept of &#92;&quot;Blogging&#92;&quot;&quot;,&quot;rationale&quot;:&quot;The digital-gardening-principles node directly elaborates on what defines a digital garden, making it a natural link for this mention.&quot;},{&quot;slug&quot;:&quot;dg-reverse&quot;,&quot;anchor_text&quot;:&quot;Blogging&quot;,&quot;context&quot;:&quot;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&quot;,&quot;rationale&quot;:&quot;The dg-reverse node explains how digital gardens react against reverse-chronological blogging, directly relevant to this claim.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;dg-evergreen&quot;,&quot;rationale&quot;:&quot;Discusses how digital gardens embrace evergreen, continuously updated content as a key &#39;new&#39; way of thinking compared to traditional blogs.&quot;},{&quot;slug&quot;:&quot;digital-garden-itself&quot;,&quot;rationale&quot;:&quot;Describes the author&#39;s own digital garden implementation, including use of new technologies like Gemini, directly illustrating this node&#39;s theme of embracing the new.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:220,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:249,&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-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-evergreen&quot;,&quot;anchor_text&quot;:&quot;What if I change my mind?&quot;,&quot;context&quot;:&quot;knowing for certain that it&#39;s completely &#92;&quot;settled&#92;&quot;. What if I change my mind? What if I realize&quot;,&quot;rationale&quot;:&quot;The dg-evergreen node directly addresses how garden posts are updated over time as views change, making it a natural link for this concern.&quot;},{&quot;slug&quot;:&quot;dg-status&quot;,&quot;anchor_text&quot;:&quot;completely &#92;&quot;settled&#92;&quot;&quot;,&quot;context&quot;:&quot;put out your own personal opinions without knowing for certain that it&#39;s completely &#92;&quot;settled&#92;&quot;&quot;,&quot;rationale&quot;:&quot;The dg-status node covers epistemic disclosure, which is precisely the mechanism for signaling how settled or uncertain a garden node&#39;s content is.&quot;},{&quot;slug&quot;:&quot;digital-gardening-principles&quot;,&quot;anchor_text&quot;:&quot;digital garden&quot;,&quot;context&quot;:&quot;The main reference article I&#39;ve been linking to is Shawn Wang&#39;s &#92;&quot;Learn In Public&#92;&quot;. I&#39;m hoping to be explosively productive&quot;,&quot;rationale&quot;:&quot;The digital-gardening-principles node is the foundational document for the practices described in this node.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;dg-solo&quot;,&quot;rationale&quot;:&quot;dg-solo discusses the tension between writing for oneself versus seeking external validation, which elaborates on the &#39;fearlessness&#39; required to publish personal opinions publicly.&quot;},{&quot;slug&quot;:&quot;dg-feedback&quot;,&quot;rationale&quot;:&quot;dg-feedback directly extends the idea of learning in public by discussing how comments and feedback enable the garden to stay accurate and evergreen.&quot;},{&quot;slug&quot;:&quot;dg-status&quot;,&quot;rationale&quot;:&quot;dg-status covers epistemic disclosure as a way to manage the vulnerability of publishing unsettled or naive thoughts publicly.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:234,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:365,&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 &#39;blog&#39; node directly covers the topic of blog posts and their relationship to this digital garden.&quot;},{&quot;slug&quot;:&quot;dg-public&quot;,&quot;anchor_text&quot;:&quot;author to put his or her best foot forward&quot;,&quot;context&quot;:&quot;RCS doesn&#39;t allow an author to put his or her best foot forward, because instead of presenting the most comprehensive&quot;,&quot;rationale&quot;:&quot;The dg-public node discusses how digital gardens allow learning and presenting work in public, which is closely related to the idea of putting your best foot forward for readers.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;blog-cycle&quot;,&quot;rationale&quot;:&quot;This node discusses the cycle of rebuilding blogs and authoring content, which directly elaborates on the frustrations with traditional blog structures that dg-reverse critiques.&quot;},{&quot;slug&quot;:&quot;dg-status&quot;,&quot;rationale&quot;:&quot;The dg-status node discusses how digital gardeners disclose the status/quality of posts, which is a key alternative to using chronological ordering to signal post relevance.&quot;},{&quot;slug&quot;:&quot;writings&quot;,&quot;rationale&quot;:&quot;This node describes the challenge of integrating old writings into the garden without reverse-chronological ordering, directly illustrating the problem dg-reverse addresses.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:428,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:291,&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-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;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 concept of acting without needing external approval is directly related to intrinsic vs extrinsic motivation, which that node explicitly explores.&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;dg-public covers the principle of learning and sharing in public, which is the counterpoint to the solo/self-directed ethos discussed here.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;intrisic motivation&quot;,&quot;rationale&quot;:&quot;That node dives deeply into the distinction between intrinsic and extrinsic motivation, directly elaborating on the psychological underpinning of wanting to create without needing external attention or approval.&quot;},{&quot;slug&quot;:&quot;dg-public&quot;,&quot;rationale&quot;:&quot;dg-public discusses the tension between publishing for oneself versus engaging with an audience, which is the central theme of this node.&quot;},{&quot;slug&quot;:&quot;blog&quot;,&quot;rationale&quot;:&quot;The blog node reflects on publishing to an audience that rarely responds, which parallels this node&#39;s exploration of creating without needing attention.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:294,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:295,&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-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;Shawn Wang lists Epistemic Disclosure as one of the foundation principles of a digital garden&quot;,&quot;rationale&quot;:&quot;This node describes implementing a principle from the broader digital gardening principles framework, which is documented in its own node.&quot;},{&quot;slug&quot;:&quot;dg-public&quot;,&quot;anchor_text&quot;:&quot;responsibly disclose metadata about posts or nodes to readers&quot;,&quot;context&quot;:&quot;leads us to understand how digital gardeners should responsibly disclose metadata about posts or nodes to readers&quot;,&quot;rationale&quot;:&quot;Disclosing status metadata to readers connects directly to the principle of learning and sharing in public.&quot;},{&quot;slug&quot;:&quot;digital-garden-itself&quot;,&quot;anchor_text&quot;:&quot;this garden&quot;,&quot;context&quot;:&quot;In this garden, I&#39;ve listed the &#39;quality&#39; and &#39;importance&#39; status of each node right on the node&#39;s page&quot;,&quot;rationale&quot;:&quot;The node references the garden itself as the implementation site of these status principles, which has its own dedicated node.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;dg-evergreen&quot;,&quot;rationale&quot;:&quot;The concept of evergreen notes is closely related to why status disclosures matter — nodes change over time and readers need to know how developed an idea is.&quot;},{&quot;slug&quot;:&quot;digital-gardening-principles&quot;,&quot;rationale&quot;:&quot;This node implements one of the core digital gardening principles (Epistemic Disclosure), making the principles node a natural elaboration point.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:505,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:318,&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;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;plans&quot;,&quot;anchor_text&quot;:&quot;plans for the digital garden&quot;,&quot;context&quot;:&quot;tracking issues to improve it. It is based on Eleventy Garden&quot;,&quot;rationale&quot;:&quot;The &#39;plans&#39; node directly covers plans and aspirations for this garden, making it a natural link from the garden&#39;s own description page.&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 garden references GitHub as where its source code lives, and there is a node specifically about GitHub.&quot;},{&quot;slug&quot;:&quot;dg-evergreen&quot;,&quot;anchor_text&quot;:&quot;Digital Gardens&quot;,&quot;context&quot;:&quot;When I first started reading about Digital Gardens, I quickly came to the conclusion&quot;,&quot;rationale&quot;:&quot;The dg-evergreen node covers a core principle of digital gardens (evergreen posts) that is directly relevant to what digital gardens are.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;dg-public&quot;,&quot;rationale&quot;:&quot;Elaborates on the principle of learning in public which is a core motivation for this digital garden&#39;s existence.&quot;},{&quot;slug&quot;:&quot;dg-solo&quot;,&quot;rationale&quot;:&quot;Discusses whether digital gardens need an audience, directly relevant to the purpose and philosophy of this garden.&quot;},{&quot;slug&quot;:&quot;plans&quot;,&quot;rationale&quot;:&quot;Contains specific plans and aspirations for improving this very digital garden.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:365,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:285,&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;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;slug&quot;:&quot;digital-garden-itself&quot;,&quot;anchor_text&quot;:&quot;digital garden&quot;,&quot;context&quot;:&quot;This is my attempt to distill and repeat what I consider to be the most important principles of digital gardening.&quot;,&quot;rationale&quot;:&quot;The digital-garden-itself node describes this specific garden&#39;s implementation of these principles, making it a direct and meaningful companion link.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;dg-evergreen&quot;,&quot;rationale&quot;:&quot;Directly elaborates on the evergreen notes principle referenced in this node, including the concept-oriented framing from Andy Matuschak.&quot;},{&quot;slug&quot;:&quot;plans&quot;,&quot;rationale&quot;:&quot;Discusses how the author plans to implement and live up to these digital gardening principles in practice.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:569,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&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;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;slug&quot;:&quot;blog&quot;,&quot;anchor_text&quot;:&quot;blog posts&quot;,&quot;context&quot;:&quot;rejected blog posts that I don&#39;t want to make public, song lyrics I&#39;ve written&quot;,&quot;rationale&quot;:&quot;The node mentions blog posts in the context of Draft usage, and there is a dedicated node about blog posts in the garden.&quot;},{&quot;slug&quot;:&quot;the-chain&quot;,&quot;anchor_text&quot;:&quot;Morning Pages&quot;,&quot;context&quot;:&quot;I&#39;ve done NaNoWriMo in Draft, and Morning Pages, rejected blog posts&quot;,&quot;rationale&quot;:&quot;Morning Pages is a daily writing habit practice closely related to the habit-building themes explored in the-chain node.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;font-of-creativity&quot;,&quot;rationale&quot;:&quot;That node discusses the author&#39;s feelings about creative output and the drive to write, which parallels the nostalgic reflection on Draft as a writing companion.&quot;},{&quot;slug&quot;:&quot;blog-cycle&quot;,&quot;rationale&quot;:&quot;The blog-cycle node discusses the impulse to switch writing platforms, directly relevant to the author&#39;s consideration of seeking a Draft alternative.&quot;},{&quot;slug&quot;:&quot;getting-nothing-done&quot;,&quot;rationale&quot;:&quot;The node touches on tools and systems people use to organize their creative and productive work, relevant to the discussion of Draft as a productivity/writing tool.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1028,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:267,&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;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 is not it&quot;,&quot;context&quot;:&quot;prompting for &#39;new avenues&#39; for 2023 but at the same time gently chastising that &#39;Mastodon is not it&#39;&quot;,&quot;rationale&quot;:&quot;The node directly quotes a critique of Mastodon, and the linked node elaborates extensively on why Mastodon differs from Twitter and won&#39;t replace it.&quot;},{&quot;slug&quot;:&quot;intrisic motivation&quot;,&quot;anchor_text&quot;:&quot;real motivation and action&quot;,&quot;context&quot;:&quot;I&#39;m not sure it will ever translate into real motivation and action.&quot;,&quot;rationale&quot;:&quot;The node&#39;s closing sentiment about lacking motivation to follow through on learning Spanish connects directly to the node on intrinsic vs extrinsic motivation.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;activity-pub&quot;,&quot;rationale&quot;:&quot;This node&#39;s excitement about Gemini and federated/alternative social protocols like Secure Scuttlebutt is closely related to the ActivityPub node&#39;s discussion of open protocols powering decentralized social networks.&quot;},{&quot;slug&quot;:&quot;dg-new&quot;,&quot;rationale&quot;:&quot;The excitement about new protocols and experimental technologies like Secure Scuttlebutt and Gemini aligns with the digital garden principle of embracing new ideas and technologies.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:364,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:558,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:265},&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;recording-setup&quot;,&quot;anchor_text&quot;:&quot;record them one by one&quot;,&quot;context&quot;:&quot;practice and perform them, and finally record them one by one. I have to program in the drums&quot;,&quot;rationale&quot;:&quot;The recording setup node directly describes the equipment and process Travis uses to record instruments one by one in his home studio.&quot;},{&quot;slug&quot;:&quot;danger-third-rail&quot;,&quot;anchor_text&quot;:&quot;my favorite bands&quot;,&quot;context&quot;:&quot;I&#39;m never going to have the raw power and coherence of some of my favorite bands&quot;,&quot;rationale&quot;:&quot;The danger-third-rail node is Travis&#39;s own band/recording project, which is the direct context for this reflection on solo music production.&quot;},{&quot;slug&quot;:&quot;ableton&quot;,&quot;anchor_text&quot;:&quot;MIDI&quot;,&quot;context&quot;:&quot;I have to program in the drums using MIDI (no drummer)&quot;,&quot;rationale&quot;:&quot;The Ableton node covers the DAW Travis uses for MIDI drum programming and music production.&quot;},{&quot;slug&quot;:&quot;songwriting-reflections&quot;,&quot;anchor_text&quot;:&quot;writing the lyrics and writing and singing the melody&quot;,&quot;context&quot;:&quot;I&#39;m the one writing the lyrics and writing and singing the melody&quot;,&quot;rationale&quot;:&quot;The songwriting-reflections node elaborates on Travis&#39;s thoughts about his approach to writing songs and melody.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;highs-and-lows-musician&quot;,&quot;rationale&quot;:&quot;That node covers Travis&#39;s broader history of writing and recording music solo in a home studio, directly extending the themes of this node.&quot;},{&quot;slug&quot;:&quot;something-terrible&quot;,&quot;rationale&quot;:&quot;That node discusses giving oneself permission to create imperfect music, which complements the &#39;fake it&#39; philosophy described here.&quot;},{&quot;slug&quot;:&quot;genre-thoughts&quot;,&quot;rationale&quot;:&quot;That node discusses the tension between the music Travis listens to and what he can produce solo, directly relevant to his reflections here on not matching his favorite bands.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:751,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:399,&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;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 directly discusses free will and determinism, expanding on the concept this node is titled after.&quot;},{&quot;slug&quot;:&quot;a-story-of-failure&quot;,&quot;rationale&quot;:&quot;The author explicitly reflects on free will and agency in the context of New Year&#39;s resolutions and personal outcomes.&quot;},{&quot;slug&quot;:&quot;not the circumstances&quot;,&quot;rationale&quot;:&quot;This node references free will directly and explores the related idea that outcomes are beyond our control.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:41,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:112,&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;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;github&quot;,&quot;anchor_text&quot;:&quot;Github&quot;,&quot;context&quot;:&quot;See it on Github or NPM&quot;,&quot;rationale&quot;:&quot;The node references GitHub as the hosting platform for the gemdown library, and there is a dedicated node about GitHub in the garden.&quot;},{&quot;slug&quot;:&quot;digital-garden-itself&quot;,&quot;anchor_text&quot;:&quot;Gemini version of 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 node explicitly references the digital garden&#39;s Gemini mirror, which is described in the digital-garden-itself node.&quot;},{&quot;slug&quot;:&quot;Rainfall&quot;,&quot;anchor_text&quot;:&quot;static site generator&quot;,&quot;context&quot;:&quot;designed to be used in conjunction with a static site generator in order to create a Gemini mirror&quot;,&quot;rationale&quot;:&quot;Rainfall is the author&#39;s own static site generator project, making it a highly relevant concrete example of the static site generator use case described here.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;more-about-blogging&quot;,&quot;rationale&quot;:&quot;That node discusses Gemini and the author&#39;s early Gemini capsule, providing useful context for why gemdown was created.&quot;},{&quot;slug&quot;:&quot;digital-garden-itself&quot;,&quot;rationale&quot;:&quot;The digital garden itself uses gemdown to generate its Gemini capsule, making this a direct real-world application of the library.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:807,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:295,&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;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;digital-garden-itself&quot;,&quot;anchor_text&quot;:&quot;Digital Garden&quot;,&quot;context&quot;:&quot;I originally considered making this garden a gemini-only publication&quot;,&quot;rationale&quot;:&quot;The node discusses converting this specific digital garden to Gemini, and the digital-garden-itself node covers the garden&#39;s technical setup and hosting directly.&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 references Mastodon&#39;s self-referential nature in comparison to Gemini, and mastodon-is-not-twitter directly covers Mastodon as a platform.&quot;},{&quot;slug&quot;:&quot;recording-setup&quot;,&quot;anchor_text&quot;:&quot;audio interface&quot;,&quot;context&quot;:&quot;I stopped unplugging my mic and guitar cables from my audio interface when I&#39;m done&quot;,&quot;rationale&quot;:&quot;The node uses the audio interface as an analogy for low-friction creative workflows, and recording-setup covers the actual setup being described.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;more-about-blogging&quot;,&quot;rationale&quot;:&quot;This node also discusses Gemini as a protocol and mentions creating one of the first 50 Gemini sites, directly elaborating on topics in the gemini node.&quot;},{&quot;slug&quot;:&quot;excited&quot;,&quot;rationale&quot;:&quot;This node discusses Gemini as a potential &#39;new avenue&#39; and references Robin Sloan&#39;s newsletter, the same source cited in the gemini node.&quot;},{&quot;slug&quot;:&quot;dg-evergreen&quot;,&quot;rationale&quot;:&quot;The gemini node discusses keeping the garden evergreen and low-friction workflows, which dg-evergreen elaborates on as a core digital gardening principle.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1136,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:376,&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;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;slug&quot;:&quot;fake-it-music&quot;,&quot;anchor_text&quot;:&quot;recording rock music without a band&quot;,&quot;context&quot;:&quot;recording rock music without a band, in your recording-setup home recording studio slash kitchen, is hard y&#39;all!&quot;,&quot;rationale&quot;:&quot;That node is entirely about the challenge of being a solo musician trying to produce rock music, directly addressing the same problem described here.&quot;},{&quot;slug&quot;:&quot;not-quite-writers-block&quot;,&quot;anchor_text&quot;:&quot;stare at it, mouth agape&quot;,&quot;context&quot;:&quot;my first step is to open 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&quot;,&quot;rationale&quot;:&quot;That node discusses the same creative block experience when opening the DAW and not knowing how to proceed.&quot;},{&quot;slug&quot;:&quot;songwriting-reflections&quot;,&quot;anchor_text&quot;:&quot;upbeat, melodic rock music&quot;,&quot;context&quot;:&quot;But my music tastes are squarely grounded in upbeat, melodic rock music.&quot;,&quot;rationale&quot;:&quot;That node specifically explores genre preferences and why melodic, harmonically rich rock appeals more than other styles.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;highs-and-lows-musician&quot;,&quot;rationale&quot;:&quot;Covers the same arc of home studio music production challenges, including the evolution of a solo recording setup and the difficulties of being a one-person band.&quot;},{&quot;slug&quot;:&quot;bands-as-sports-teams&quot;,&quot;rationale&quot;:&quot;Elaborates on why full bands have structural advantages over solo producers, directly relevant to the workflow difficulty described in this node.&quot;},{&quot;slug&quot;:&quot;motivation-music&quot;,&quot;rationale&quot;:&quot;Directly addresses motivation for writing and producing music as the sole member of Danger Third Rail, complementing the workflow frustrations explored here.&quot;},{&quot;slug&quot;:&quot;music-projects-as-ephemera&quot;,&quot;rationale&quot;:&quot;Discusses specific technical challenges with Ableton and Reason projects, overlapping with the DAW-centric workflow problems described in this node.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1299,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:2363,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:1931},&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;slug&quot;:&quot;wp-1.0&quot;,&quot;anchor_text&quot;:&quot;contribute to code&quot;,&quot;context&quot;:&quot;as I find and read about and contribute to code, that code is on Github&quot;,&quot;rationale&quot;:&quot;The wp-1.0 bot is a major open source project the author maintains on GitHub, making it a concrete example of the code they contribute to.&quot;},{&quot;slug&quot;:&quot;about&quot;,&quot;anchor_text&quot;:&quot;WP 1.0 Bot&quot;,&quot;context&quot;:&quot;the primary maintainer of the Wikipedia WP 1.0 Bot, which has the most all time edits&quot;,&quot;rationale&quot;:&quot;The about page describes the author&#39;s WP 1.0 Bot on GitHub, directly relevant to the discussion of GitHub usage.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;Python&quot;,&quot;rationale&quot;:&quot;Python is used in the author&#39;s major GitHub projects like wp-1.0, and the github node discusses contributing to open source code.&quot;},{&quot;slug&quot;:&quot;digital-garden-itself&quot;,&quot;rationale&quot;:&quot;The digital garden&#39;s source code is hosted on GitHub, making it a direct cross-reference for the github node&#39;s discussion of personal projects on the platform.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:559,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:246,&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;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;slug&quot;:&quot;songwriting-reflections&quot;,&quot;anchor_text&quot;:&quot;writing the songs I write, in the way I write them&quot;,&quot;context&quot;:&quot;if I really have to worry about faking it, or if writing the songs I write, in the way I write them, is enough&quot;,&quot;rationale&quot;:&quot;Songwriting Reflections directly explores the author&#39;s personal approach to songwriting and what makes a good song, making it a natural elaboration on this node&#39;s theme.&quot;},{&quot;slug&quot;:&quot;recording-setup&quot;,&quot;anchor_text&quot;:&quot;record it properly or create an arrangement&quot;,&quot;context&quot;:&quot;go back and write new verses or record it properly or create an arrangement with strings and drums&quot;,&quot;rationale&quot;:&quot;The recording setup node describes the author&#39;s home studio where songs get recorded and arranged, directly relevant to this mention of properly recording songs.&quot;},{&quot;slug&quot;:&quot;genre-thoughts&quot;,&quot;anchor_text&quot;:&quot;the music that I want to make&quot;,&quot;context&quot;:&quot;they&#39;re not songs. They&#39;re not the music that I want to make.&quot;,&quot;rationale&quot;:&quot;Genre Thoughts explores the author&#39;s relationship between the music they listen to and the music they want to produce, directly connecting to this reflection on what kind of music they want to make.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;nike-the-shit-out-of-it&quot;,&quot;rationale&quot;:&quot;That node reflects on the difficulty of finishing and publishing songs, which connects to this node&#39;s theme of focusing on writing good songs rather than over-producing them.&quot;},{&quot;slug&quot;:&quot;not-quite-writers-block&quot;,&quot;rationale&quot;:&quot;Discusses the author&#39;s songwriting process and the tension between perfectionism and productivity, which elaborates on the question of whether the songs one writes &#39;in the way I write them&#39; is enough.&quot;},{&quot;slug&quot;:&quot;best albums in the universe&quot;,&quot;rationale&quot;:&quot;The node about songs being covered and the timeless quality of great compositions connects naturally to the author&#39;s curated list of albums that have stood the test of time.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:742,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:416,&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 &#92;&quot;making it&#92;&quot;)&quot;,&quot;rationale&quot;:&quot;Spotify is explicitly named as the release target and the node about Spotify covers the platform&#39;s royalty structure and artist experience directly.&quot;},{&quot;slug&quot;:&quot;Bandcamp&quot;,&quot;anchor_text&quot;:&quot;Bandcamp donations&quot;,&quot;context&quot;:&quot;I&#39;ve made a grand total of about 50 bucks ever selling music (from Spotify/iTunes/Amazon/YouTube payments and Bandcamp donations).&quot;,&quot;rationale&quot;:&quot;Bandcamp is explicitly mentioned as a revenue source, and the Bandcamp node discusses the economics of music distribution for independent artists.&quot;},{&quot;slug&quot;:&quot;ableton&quot;,&quot;anchor_text&quot;:&quot;mixing lessons&quot;,&quot;context&quot;:&quot;I started taking mixing lessons so I could mix and master the songs myself, to make the album 100% DIY.&quot;,&quot;rationale&quot;:&quot;The mixing lessons were for Ableton Live production (as noted elsewhere in the garden), and the ableton node covers the DAW central to this workflow.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;another-year-without-resolutions&quot;,&quot;rationale&quot;:&quot;That node explicitly describes the decision to start music lessons for mixing, mastering, and Ableton Live production — directly elaborating on the mixing lessons backstory mentioned here.&quot;},{&quot;slug&quot;:&quot;music-projects-as-ephemera&quot;,&quot;rationale&quot;:&quot;That node discusses the challenges of maintaining old music projects across software versions, complementing the themes of stalled progress and DIY production discussed here.&quot;},{&quot;slug&quot;:&quot;something-terrible&quot;,&quot;rationale&quot;:&quot;That node covers the Make Something Terrible Challenge given to music production students, which directly relates to overcoming creative blocks in songwriting and recording discussed here.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:978,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:857,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:470},&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;slug&quot;:&quot;digital-gardening-principles&quot;,&quot;anchor_text&quot;:&quot;choose-your-own adventure game&quot;,&quot;context&quot;:&quot;resist the urge to write this entire website as a choose-your-own adventure game&quot;,&quot;rationale&quot;:&quot;The digital gardening principles node defines the philosophy behind this garden, making it a natural easter egg link for readers curious about the garden&#39;s structure.&quot;},{&quot;slug&quot;:&quot;recording-setup&quot;,&quot;anchor_text&quot;:&quot;power extension cords and other wires&quot;,&quot;context&quot;:&quot;huge amount of power extension cords and other wires darting through the gate&quot;,&quot;rationale&quot;:&quot;The recording setup node describes the actual studio equipment and wiring that likely inspired this metaphor in the garden&#39;s introduction.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;dg-evergreen&quot;,&quot;rationale&quot;:&quot;This node serves as the entry point to the garden and could benefit from a &#39;see also&#39; pointing to the evergreen philosophy that underpins how all garden nodes are maintained.&quot;},{&quot;slug&quot;:&quot;plans&quot;,&quot;rationale&quot;:&quot;The plans node discusses the author&#39;s intentions for the garden&#39;s content and organization, which directly elaborates on what visitors entering this garden can expect to find.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:311,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:250,&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;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;slug&quot;:&quot;motivation-music&quot;,&quot;anchor_text&quot;:&quot;writing songs again and I really want to keep doing it&quot;,&quot;context&quot;:&quot;&#39;I want to do the dishes tonight&#39; or &#39;I&#39;ve been writing songs again and I really want to keep doing it&#39;&quot;,&quot;rationale&quot;:&quot;The motivation-music node is specifically about motivation for writing and producing music, directly paralleling the example used here to illustrate intrinsic motivation.&quot;},{&quot;slug&quot;:&quot;dg-solo&quot;,&quot;anchor_text&quot;:&quot;doing it just for myself&quot;,&quot;context&quot;:&quot;I will resolve to never show it to anyone no matter what. I&#39;m doing it just for myself.&quot;,&quot;rationale&quot;:&quot;The dg-solo principle — that digital gardens don&#39;t need attention to thrive — is the exact same idea being described here about doing creative work without needing external validation.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;now&quot;,&quot;rationale&quot;:&quot;The now node explicitly mentions building intrinsic motivation as a current practice, making it a direct real-world update to the ideas described here.&quot;},{&quot;slug&quot;:&quot;the-chain&quot;,&quot;rationale&quot;:&quot;The chain/Seinfeld Strategy node deals with habit formation and self-directed practice, which overlaps with the intrinsic motivation practice of doing things consistently for oneself.&quot;},{&quot;slug&quot;:&quot;font-of-creativity&quot;,&quot;rationale&quot;:&quot;The font-of-creativity node explores the internal drive to create and whether creative people must create out of internal necessity, directly relating to the intrinsic vs extrinsic motivation distinction.&quot;},{&quot;slug&quot;:&quot;vibe coding&quot;,&quot;rationale&quot;:&quot;The vibe coding node explicitly references intrinsic motivation as a factor in how the author approaches personal projects, tying the two concepts together.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:882,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:1909,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:1543},&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;slug&quot;:&quot;Vue.js&quot;,&quot;anchor_text&quot;:&quot;web pages&quot;,&quot;context&quot;:&quot;It is the language used to write logic for web pages. Also, due to the V8 engine&quot;,&quot;rationale&quot;:&quot;Vue.js is a frontend Javascript framework directly relevant to writing logic for web pages, and is covered in its own node.&quot;},{&quot;slug&quot;:&quot;programming languages&quot;,&quot;anchor_text&quot;:&quot;most popular programming language in the world&quot;,&quot;context&quot;:&quot;Javascript is the most popular programming language in the world. It is the language&quot;,&quot;rationale&quot;:&quot;The programming languages meta node ties together all the language nodes in the garden, including Javascript/Typescript.&quot;},{&quot;slug&quot;:&quot;random-knowledge-about-javascript-and-typescript&quot;,&quot;anchor_text&quot;:&quot;Typescript compiler&quot;,&quot;context&quot;:&quot;you have to use a _Typescript compiler_ to turn your code back into Javascript&quot;,&quot;rationale&quot;:&quot;The random-knowledge node specifically covers Javascript and Typescript topics and elaborates on the compiler and typing concepts mentioned here.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;Vue.js&quot;,&quot;rationale&quot;:&quot;Vue.js is a Javascript/Typescript framework the author uses extensively, directly extending the practical application of this node&#39;s content.&quot;},{&quot;slug&quot;:&quot;programming languages&quot;,&quot;rationale&quot;:&quot;This meta node explicitly lists javascript-typescript as one of the garden&#39;s covered languages and connects it to the broader programming language landscape.&quot;},{&quot;slug&quot;:&quot;random-knowledge-about-javascript-and-typescript&quot;,&quot;rationale&quot;:&quot;This node covers overlapping Javascript and Typescript knowledge including backend usage and typing concepts discussed in this node.&quot;},{&quot;slug&quot;:&quot;what-programming-language-should-i-learn&quot;,&quot;rationale&quot;:&quot;That node discusses Javascript/Typescript as a recommended language choice, elaborating on the practical value described here.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:383,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:370,&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;slug&quot;:&quot;intrisic motivation&quot;,&quot;anchor_text&quot;:&quot;This is inspiration. This is what motivates a lot of music out there&quot;,&quot;context&quot;:&quot;You hear these songs, they&#39;re great, and suddenly you go out and buy a guitar... This is inspiration. This is what motivates a lot of music out there&quot;,&quot;rationale&quot;:&quot;The node on intrinsic motivation directly addresses the internal vs external drivers of creative work, which is the core theme of this entire graph/framework.&quot;},{&quot;slug&quot;:&quot;the-unattainable-and-the-attainable&quot;,&quot;anchor_text&quot;:&quot;terrifyingly good&quot;,&quot;context&quot;:&quot;this category is composed more of the music that is terrifyingly good. It&#39;s intimidating. These songs and albums are so amazing&quot;,&quot;rationale&quot;:&quot;The &#39;Great and makes me not want to make music&#39; category is essentially the same concept explored in the Unattainable and the Attainable node, making a direct link highly meaningful.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;genre-thoughts&quot;,&quot;rationale&quot;:&quot;That node discusses the specific roadblocks encountered in a music career and the gap between what one listens to and what one produces, which directly elaborates on why certain music can be demotivating.&quot;},{&quot;slug&quot;:&quot;fake-it-music&quot;,&quot;rationale&quot;:&quot;Explores the challenge of producing music solo and how not every part needs to be perfect, which speaks directly to overcoming the &#39;terrifyingly good&#39; demotivation category described here.&quot;},{&quot;slug&quot;:&quot;songwriting-reflections&quot;,&quot;rationale&quot;:&quot;Reflects on the emotional and aesthetic dimensions of songwriting, providing deeper context for why certain music inspires or deflates the desire to create.&quot;},{&quot;slug&quot;:&quot;highs-and-lows-musician&quot;,&quot;rationale&quot;:&quot;Chronicles the personal highs and lows of home music production, giving real-world grounding to the motivational framework described in this node.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:657,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:1215,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:800},&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;slug&quot;:&quot;giving-up-on-resolutions&quot;,&quot;anchor_text&quot;:&quot;resolutions&quot;,&quot;context&quot;:&quot;I&#39;m not making any hard and fast resolutions, though we have a goal to finally get our apartment&quot;,&quot;rationale&quot;:&quot;The node on giving up on resolutions directly addresses the recurring theme of New Year&#39;s resolutions that this post touches on.&quot;},{&quot;slug&quot;:&quot;philosophy&quot;,&quot;anchor_text&quot;:&quot;it is what it is&quot;,&quot;context&quot;:&quot;not-so-great news about her health. I&#39;m worried, I&#39;m anxious, but it is what it is.&quot;,&quot;rationale&quot;:&quot;The philosophy node discusses existentialism and accepting circumstances, which aligns with the resigned acceptance expressed in this phrase.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;another-year-without-resolutions&quot;,&quot;rationale&quot;:&quot;This node also reflects on New Year&#39;s without making resolutions and mentions the difficulty of 2020, making it a natural companion piece to this 2025 New Year&#39;s reflection.&quot;},{&quot;slug&quot;:&quot;now&quot;,&quot;rationale&quot;:&quot;The &#39;Now&#39; node mentions improved mental health in 2026 and embracing intrinsic motivation, directly extending the theme of being &#39;in a better place mentally&#39; raised in this node.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:572,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:265,&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;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;intrisic motivation&quot;,&quot;anchor_text&quot;:&quot;a lot of work without a lot of payoff&quot;,&quot;context&quot;:&quot;I haven&#39;t gone through the process to actually clean them all up... it just seems like a lot of work without a lot of payoff&quot;,&quot;rationale&quot;:&quot;The node on intrinsic motivation directly addresses this tension between effort and perceived reward, exploring why extrinsic payoff drives (or fails to drive) creative work.&quot;},{&quot;slug&quot;:&quot;fake-it-music&quot;,&quot;anchor_text&quot;:&quot;write all of the instrumental parts, the arrangement, the mix&quot;,&quot;context&quot;:&quot;I can write songs where I write all of the instrumental parts, the arrangement, the mix, etc. But it&#39;s exhausting&quot;,&quot;rationale&quot;:&quot;The fake-it-music node is specifically about the exhaustion of being a solo musician who must write and record every part, which is precisely the frustration described here.&quot;},{&quot;slug&quot;:&quot;bands-as-sports-teams&quot;,&quot;anchor_text&quot;:&quot;play with a band&quot;,&quot;context&quot;:&quot;I want to play with a band, where the drum feel and groove drive the composition of the guitar and bass parts&quot;,&quot;rationale&quot;:&quot;The bands-as-sports-teams node explores the dynamics of how different band members contribute to a song, directly relevant to the collaboration the author is craving here.&quot;},{&quot;slug&quot;:&quot;not-quite-writers-block&quot;,&quot;anchor_text&quot;:&quot;I think I&#39;m stagnating for another reason&quot;,&quot;context&quot;:&quot;The real reluctance comes from the fact that I think I&#39;m stagnating for another reason&quot;,&quot;rationale&quot;:&quot;The not-quite-writers-block node addresses the specific phenomenon of being able to generate sounds but not finishing or pushing music forward, matching this exact creative frustration.&quot;},{&quot;slug&quot;:&quot;motivation-music&quot;,&quot;anchor_text&quot;:&quot;sense of wonder in my songwriting process&quot;,&quot;context&quot;:&quot;I feel like I&#39;ve lost a sense of wonder in my songwriting process. Sometimes, I&#39;m going at it with feverish diligence&quot;,&quot;rationale&quot;:&quot;The motivation-music node is specifically about what drives (or kills) the desire to make music as the sole member of Danger Third Rail.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;a-story-of-failure&quot;,&quot;rationale&quot;:&quot;Directly chronicles a similar experience of failing to maintain consistent music output (the song-a-day resolution), providing a companion narrative to this node&#39;s themes of musical stagnation.&quot;},{&quot;slug&quot;:&quot;something-terrible&quot;,&quot;rationale&quot;:&quot;Offers a concrete creative exercise (the Make Something Terrible Challenge) as a direct response to the type of creative paralysis described in this node.&quot;},{&quot;slug&quot;:&quot;highs-and-lows-musician&quot;,&quot;rationale&quot;:&quot;Elaborates on the full history of home recording struggles and the formation of Danger Third Rail, giving deeper context to the exhaustion of solo music production mentioned here.&quot;},{&quot;slug&quot;:&quot;songwriting-reflections&quot;,&quot;rationale&quot;:&quot;Explores the author&#39;s deeper aesthetic preferences in songwriting (minor keys, ambiguous chords), which relates to the creative identity at stake when stagnation sets in.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:861,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:1904,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:1250},&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;slug&quot;:&quot;philosophy&quot;,&quot;anchor_text&quot;:&quot;the way you respond to it&quot;,&quot;context&quot;:&quot;You can&#39;t control what happens, only the way you respond to it. See also free will.&quot;,&quot;rationale&quot;:&quot;The node&#39;s core idea about responding to circumstances rather than controlling them connects directly to the philosophy node&#39;s discussion of existentialism, determinism, and free will.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;now&quot;,&quot;rationale&quot;:&quot;The &#39;now&#39; node explicitly states &#39;I&#39;ve come to truly believe that 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;Zen&quot;,&quot;rationale&quot;:&quot;Zen philosophy as discussed in that node deals with acceptance and non-attachment to circumstances, deeply complementing this node&#39;s message.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:110,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:177,&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;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 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;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;The node mentions YouTube as the author&#39;s employer, and there is a dedicated node about YouTube in the garden.&quot;},{&quot;slug&quot;:&quot;Zen&quot;,&quot;anchor_text&quot;:&quot;mental health perspective&quot;,&quot;context&quot;:&quot;2026 has been getting much better! Mostly from a mental health perspective.&quot;,&quot;rationale&quot;:&quot;The Zen node discusses the author&#39;s interest in Zen and non-duality as a path to self-understanding, which connects to the mental health theme mentioned here.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;null-rail&quot;,&quot;rationale&quot;:&quot;The null-rail node describes the author&#39;s 2026 embrace of vibe coding and AI music projects, directly paralleling the &#39;now&#39; node&#39;s mention of embracing vibe coding.&quot;},{&quot;slug&quot;:&quot;when to vibe code&quot;,&quot;rationale&quot;:&quot;This node elaborates on the author&#39;s philosophy and practical advice around vibe coding, which is a key topic mentioned in the &#39;now&#39; node.&quot;},{&quot;slug&quot;:&quot;philosophy&quot;,&quot;rationale&quot;:&quot;The philosophy node discusses determinism and the author&#39;s views on reacting to circumstances, which connects to the &#39;not the circumstances&#39; theme in this node.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:426,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&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;:0},&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 in public&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 node explicitly invokes the &#39;learning in public&#39; concept, which is the subject of the dg-public node.&quot;},{&quot;slug&quot;:&quot;ai-music-trends&quot;,&quot;anchor_text&quot;:&quot;The Suno tracks sound good, they&#39;re beyond an uncanny valley&quot;,&quot;context&quot;:&quot;The Suno tracks sound good, they&#39;re beyond an uncanny valley. But they have significant flaws and AI &#92;&quot;tells&#92;&quot;.&quot;,&quot;rationale&quot;:&quot;The ai-music-trends node directly addresses the quality, perception, and future of AI-generated music, elaborating on the exact concerns raised here about synthetic vocals and mix quality.&quot;},{&quot;slug&quot;:&quot;fake-it-music&quot;,&quot;anchor_text&quot;:&quot;full on DIY indie musician&quot;,&quot;context&quot;:&quot;I&#39;ve always prefered the view of myself as a full on DIY indie musician, in some sense an act or artist that happens to be mostly one person&quot;,&quot;rationale&quot;:&quot;The fake-it-music node is specifically about the challenges of being a single person writing, arranging, and recording music versus a full band, which is exactly the tension being described here.&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;The genre-thoughts node directly explores the author&#39;s relationship to writing rock/punk music and the mismatch between the music they listen to and what is commercially viable.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;bands-as-sports-teams&quot;,&quot;rationale&quot;:&quot;The node raises the question of being a &#39;pure songwriter&#39; pitching to bands, which directly relates to bands-as-sports-teams&#39;s discussion of roles within a band and whether star players/songwriters drive success.&quot;},{&quot;slug&quot;:&quot;songwriting-reflections&quot;,&quot;rationale&quot;:&quot;The node grapples with identity as a songwriter and the nature of the songs being produced, which songwriting-reflections elaborates on in terms of the author&#39;s aesthetic preferences and approach.&quot;},{&quot;slug&quot;:&quot;motivation-music&quot;,&quot;rationale&quot;:&quot;The existential question about whether to convert demos into polished recordings maps onto motivation-music&#39;s framework of what inspires or discourages music-making.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:998,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:1262,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:732},&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;The node directly mentions &#39;free will&#39; as a topic and there is a dedicated node for it in the garden.&quot;},{&quot;slug&quot;:&quot;not the circumstances&quot;,&quot;anchor_text&quot;:&quot;the process by which our conscious mind explains to itself why it did something&quot;,&quot;context&quot;:&quot;&#39;free will&#39; is the name we give to the process by which our conscious mind explains to itself why it did something&quot;,&quot;rationale&quot;:&quot;The &#39;Not The Circumstances&#39; node explicitly references free will and determinism as related topics.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;a-story-of-failure&quot;,&quot;rationale&quot;:&quot;That node touches on free will and the narrator&#39;s existentialist view of being &#39;driftwood on the ocean&#39;, directly echoing this philosophy node&#39;s themes.&quot;},{&quot;slug&quot;:&quot;not the circumstances&quot;,&quot;rationale&quot;:&quot;This node explicitly invokes free will and a deterministic outlook (&#39;You can&#39;t control what happens, only the way you respond to it&#39;), making it a strong cross-reference for the philosophy node.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:414,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:252,&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;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;github&quot;,&quot;anchor_text&quot;:&quot;Github repo&quot;,&quot;context&quot;:&quot;I&#39;ve documented some of the more technical issues on the garden&#39;s Github repo&quot;,&quot;rationale&quot;:&quot;The node references the garden&#39;s GitHub repository and there is a dedicated node about GitHub in the garden.&quot;},{&quot;slug&quot;:&quot;dg-evergreen&quot;,&quot;anchor_text&quot;:&quot;Evergreen Notes&quot;,&quot;context&quot;:&quot;I read in Andy Matuschak&#39;s &#92;&quot;Evergreen Notes&#92;&quot; that Evergreen notes should be concept-oriented&quot;,&quot;rationale&quot;:&quot;The node directly discusses Andy Matuschak&#39;s Evergreen Notes concept, which is the subject of the dg-evergreen 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 and do this.&quot;,&quot;rationale&quot;:&quot;The node mentions vibe coding as a technique being considered for garden maintenance, and there is a dedicated node on vibe coding.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;dg-evergreen&quot;,&quot;rationale&quot;:&quot;This node discusses Andy Matuschak&#39;s Evergreen Notes principles around concept-oriented and densely linked notes, which dg-evergreen elaborates on in detail.&quot;},{&quot;slug&quot;:&quot;dg-public&quot;,&quot;rationale&quot;:&quot;The plans described here for growing the garden organically and linking nodes connect directly to the principle of learning and building in public covered in dg-public.&quot;},{&quot;slug&quot;:&quot;digital-garden-itself&quot;,&quot;rationale&quot;:&quot;This node about plans for the garden pairs naturally with the node describing what the digital garden actually is and how it is structured.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1009,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:664,&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;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 node directly elaborates on which programming languages to choose and why, serving as a natural companion piece to the meta language overview.&quot;},{&quot;slug&quot;:&quot;random-knowledge-about-javascript-and-typescript&quot;,&quot;rationale&quot;:&quot;Contains additional technical detail about JavaScript/TypeScript that extends what this meta node briefly mentions about that language.&quot;},{&quot;slug&quot;:&quot;Qwobl&quot;,&quot;rationale&quot;:&quot;Mentions working with Python and Christian at Qwobl, providing context for how the author came to use these languages professionally.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:221,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:139,&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;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;slug&quot;:&quot;danger-third-rail&quot;,&quot;anchor_text&quot;:&quot;recording instruments into a&quot;,&quot;context&quot;:&quot;all of them were based around recording instruments into a DAW&quot;,&quot;rationale&quot;:&quot;The recording setup described is directly used for the Danger Third Rail project, making this a meaningful connection.&quot;},{&quot;slug&quot;:&quot;ableton&quot;,&quot;anchor_text&quot;:&quot;DAW&quot;,&quot;context&quot;:&quot;based around recording instruments into a [DAW]&quot;,&quot;rationale&quot;:&quot;The DAW concept is the subject of the Ableton Live node which explains what a DAW is in the context of music production.&quot;},{&quot;slug&quot;:&quot;highs-and-lows-musician&quot;,&quot;anchor_text&quot;:&quot;20+ years I&#39;ve been making digital music&quot;,&quot;context&quot;:&quot;over the past 20+ years I&#39;ve been making digital music&quot;,&quot;rationale&quot;:&quot;That node discusses the history of the author&#39;s home recording experiences, directly complementing this setup description.&quot;},{&quot;slug&quot;:&quot;music-projects-as-ephemera&quot;,&quot;anchor_text&quot;:&quot;MIDI keyboards&quot;,&quot;context&quot;:&quot;And I have a couple of MIDI keyboards, including an Akai MPK Mini&quot;,&quot;rationale&quot;:&quot;That node discusses MIDI and the author&#39;s history with music production tools including Ableton and Reason.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;highs-and-lows-musician&quot;,&quot;rationale&quot;:&quot;Provides a detailed history of the author&#39;s evolving recording setups and music production journey that directly elaborates on this node.&quot;},{&quot;slug&quot;:&quot;music-projects-as-ephemera&quot;,&quot;rationale&quot;:&quot;Discusses the technical aspects of the author&#39;s DAW setup including Ableton Live and MIDI, complementing the recording setup description.&quot;},{&quot;slug&quot;:&quot;fake-it-music&quot;,&quot;rationale&quot;:&quot;Discusses the challenges of being a solo musician recording all instruments, which is exactly the setup described here.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:460,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:390,&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;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;slug&quot;:&quot;getting-nothing-done&quot;,&quot;rationale&quot;:&quot;The node discusses difficulty sticking with Pimsleur for more than a week, which relates to the procrastination and habit-formation struggles described in Getting Nothing Done.&quot;},{&quot;slug&quot;:&quot;the-chain&quot;,&quot;rationale&quot;:&quot;The struggle to stick with Pimsleur and Anki long-term connects directly to the Seinfeld Strategy for building consistent habits discussed in The Chain.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:414,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:111,&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;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;JavaScript&quot;,&quot;context&quot;:&quot;laying out a webpage and writing some JavaScript for the project, but when I went&quot;,&quot;rationale&quot;:&quot;The node discusses writing JavaScript for the Taper submission, and there is a dedicated node on Javascript/Typescript in the garden.&quot;},{&quot;slug&quot;:&quot;Zen&quot;,&quot;anchor_text&quot;:&quot;duality&quot;,&quot;context&quot;:&quot;I actually submitted this piece for Taper #2, which was about duality, and it got rejected&quot;,&quot;rationale&quot;:&quot;The Zen node discusses non-duality as a central concept, directly connecting to the duality theme of the submitted piece.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;font-of-creativity&quot;,&quot;rationale&quot;:&quot;That node explores the experience of creative output and the desire to make things, which resonates with the frustrated creative energy described in trying to make a Taper submission.&quot;},{&quot;slug&quot;:&quot;blog-cycle&quot;,&quot;rationale&quot;:&quot;The blog-cycle node discusses authoring in HTML and the constraints of web-based mediums, which connects to Taper&#39;s HTML art/poetry format and the technical constraints discussed here.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:637,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:245,&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;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;:63,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:16,&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 covers the ChatGPT era and AI broadly, which is directly relevant to the cultural moment being referenced here.&quot;},{&quot;slug&quot;:&quot;null-rail&quot;,&quot;anchor_text&quot;:&quot;vibe coded fucking everything&quot;,&quot;context&quot;:&quot;I have been a vibe coding fiend. I have vibe coded fucking everything.&quot;,&quot;rationale&quot;:&quot;null-rail is a concrete example of a project the author built through vibe coding, making it a natural illustration of this claim.&quot;},{&quot;slug&quot;:&quot;q-poker-in-progress&quot;,&quot;anchor_text&quot;:&quot;explore lots of ideas quickly&quot;,&quot;context&quot;:&quot;come to see it as a way to truly explore lots of ideas quickly that would be too expensive&quot;,&quot;rationale&quot;:&quot;Q Poker is a personal project that exemplifies the kind of exploratory project vibe coding enables.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;ai&quot;,&quot;rationale&quot;:&quot;The ai node provides broader context on the AI era that enabled vibe coding, including the author&#39;s reflections on ChatGPT and its impact.&quot;},{&quot;slug&quot;:&quot;null-rail&quot;,&quot;rationale&quot;:&quot;Null Rail is explicitly described as a vibe-coded project, making it a direct real-world example of the vibe coding practice described here.&quot;},{&quot;slug&quot;:&quot;getting-nothing-done&quot;,&quot;rationale&quot;:&quot;This node discusses motivation and productivity systems, which connects to the author&#39;s reflections on losing motivation for &#39;regular&#39; coding in favor of vibe coding.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:325,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:355,&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;slug&quot;:&quot;javascript-typescript&quot;,&quot;anchor_text&quot;:&quot;test suite&quot;,&quot;context&quot;:&quot;one or more of my tests in my test suite are emitting warnings from pymysql&quot;,&quot;rationale&quot;:&quot;Tangential but weak — skipping this one.&quot;},{&quot;slug&quot;:&quot;vibe coding&quot;,&quot;anchor_text&quot;:&quot;trial and error&quot;,&quot;context&quot;:&quot;Eventually, with some trial and error, I landed on the following filter&quot;,&quot;rationale&quot;:&quot;No strong match here either.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;programming languages&quot;,&quot;rationale&quot;:&quot;This node is about Python specifically, and the programming languages meta-node ties together all language-specific nodes including Python.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1124,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:143,&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;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! But it usually works best&quot;,&quot;rationale&quot;:&quot;This node is directly about vibe coding and the main node on the topic provides context and definition.&quot;},{&quot;slug&quot;:&quot;intrisic motivation&quot;,&quot;anchor_text&quot;:&quot;personal projects&quot;,&quot;context&quot;:&quot;works best when the stakes are low, for personal projects honestly in my experience&quot;,&quot;rationale&quot;:&quot;The vibe coding node explicitly connects personal projects to intrinsic motivation, making this a meaningful thematic link.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;null-rail&quot;,&quot;rationale&quot;:&quot;Null Rail is a concrete example of a low-stakes personal project where vibe coding was applied, directly illustrating the advice in this node.&quot;},{&quot;slug&quot;:&quot;ai&quot;,&quot;rationale&quot;:&quot;The AI node covers the broader context of the AI era that makes vibe coding possible and relevant.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:81,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&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;: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;slug&quot;:&quot;about&quot;,&quot;anchor_text&quot;:&quot;Wikipedia&quot;,&quot;context&quot;:&quot;WP 1.0 is a project on Wikipedia that I have spent the last 5 years&quot;,&quot;rationale&quot;:&quot;The about node mentions the WP 1.0 Bot as one of Travis&#39;s key projects on Wikipedia, providing direct context for this node.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;Perl&quot;,&quot;rationale&quot;:&quot;The Perl node describes Travis&#39;s experience translating hundreds of lines of Perl into Python specifically for the wp-1.0 bot/web server, directly elaborating on the WP 1.0 project&#39;s history.&quot;},{&quot;slug&quot;:&quot;warnings-python&quot;,&quot;rationale&quot;:&quot;This node is explicitly about squashing Python warnings in the wp-1.0 test suite, making it a direct technical elaboration of the WP 1.0 project.&quot;},{&quot;slug&quot;:&quot;Vue.js&quot;,&quot;rationale&quot;:&quot;The Vue.js node mentions using it for wp-1.0 as a full fledged SPA, elaborating on the frontend stack of the project.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:91,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:239,&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/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;slug&quot;:&quot;writings&quot;,&quot;anchor_text&quot;:&quot;this blog is fiction&quot;,&quot;context&quot;:&quot;the fact that this blog is fiction comes necessarily into question&quot;,&quot;rationale&quot;:&quot;The writings node collects Travis&#39;s fictional and creative writing pieces, making it directly relevant to this node&#39;s meditation on the line between fiction and reality in personal writing.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;blog&quot;,&quot;rationale&quot;:&quot;The blog node discusses the tension between public writing and personal liability, which echoes this piece&#39;s exploration of what can and can&#39;t be said about real people in writing.&quot;},{&quot;slug&quot;:&quot;dg-public&quot;,&quot;rationale&quot;:&quot;This piece grapples with the ethics of writing about real people in a public medium, which connects directly to the principle of learning and writing in public.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:247,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:168,&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 story is part of the writings collection and the writings node explicitly references barney as one of its pieces, making it a natural bidirectional connection.&quot;},{&quot;slug&quot;:&quot;philosophy&quot;,&quot;rationale&quot;:&quot;The story&#39;s central conceit of causal loops and time travel causality (the Princeton Principle) connects thematically to the philosophy node&#39;s discussion of determinism and the nature of free will.&quot;},{&quot;slug&quot;:&quot;free will&quot;,&quot;rationale&quot;:&quot;The Princeton Principle described in the story — matter sent backwards and forwards in time creating causal loops — directly engages with determinism and free will themes that the free will node addresses.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1024,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:802,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:645},&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;slug&quot;:&quot;writings&quot;,&quot;rationale&quot;:&quot;Best Wrecks is part of the same collection of writings/poems from 2014-2017 that the writings node catalogs and organizes.&quot;},{&quot;slug&quot;:&quot;coping-skills&quot;,&quot;rationale&quot;:&quot;The poem&#39;s themes of discarding and confronting &#39;the wretched mess&#39; of life thematically echo the coping skills node&#39;s exploration of acknowledging pain.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:117,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:106,&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;slug&quot;:&quot;writings&quot;,&quot;rationale&quot;:&quot;This poem is part of the same collection of writings from 2014-2017, and the writings node provides context for understanding this piece as part of a broader creative output.&quot;},{&quot;slug&quot;:&quot;pandemic-weary&quot;,&quot;rationale&quot;:&quot;Both nodes touch on themes of mental exhaustion and the feeling of fading vitality, offering thematic elaboration on the emotional states expressed in this poem.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:112,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:105,&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;slug&quot;:&quot;writings&quot;,&quot;rationale&quot;:&quot;This poem is part of the writings collection and contextualizing it there helps readers understand its origins among Travis&#39;s 2014-2017 creative output.&quot;},{&quot;slug&quot;:&quot;coping-skills&quot;,&quot;rationale&quot;:&quot;The poem&#39;s dark turn beneath a surface of cheerfulness thematically mirrors the node on coping skills and acknowledging that not everything is okay.&quot;},{&quot;slug&quot;:&quot;songwriting-reflections&quot;,&quot;rationale&quot;:&quot;The node on songwriting reflections discusses a preference for melancholy and minor keys in art, which resonates with this poem&#39;s subversion of forced happiness.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:117,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:145,&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 a therapeutic framework specifically focused on coping skills, making it directly relevant to the themes in this node.&quot;},{&quot;slug&quot;:&quot;philosophy&quot;,&quot;rationale&quot;:&quot;The node&#39;s themes of acceptance, resilience, and acknowledging pain without being defeated relate to the existentialist and Zen ideas discussed in the philosophy node.&quot;},{&quot;slug&quot;:&quot;Zen&quot;,&quot;rationale&quot;:&quot;The practice of seeing, knowing, and feeling pain as a path to resilience parallels Zen mindfulness concepts discussed in that node.&quot;},{&quot;slug&quot;:&quot;pandemic-weary&quot;,&quot;rationale&quot;:&quot;The pandemic-weary node discusses similar themes of mental struggle and emotional difficulty, providing context for the coping skills node.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:141,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:176,&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/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 the desired meditative Zen emptiness with its own hollow creative void, making a direct conceptual link to the Zen node meaningful.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;not-quite-writers-block&quot;,&quot;rationale&quot;:&quot;That node directly addresses creative block in music and songwriting, the same core struggle described here — being unable to produce despite wanting to.&quot;},{&quot;slug&quot;:&quot;something-terrible&quot;,&quot;rationale&quot;:&quot;Offers a practical antidote to the exact creative emptiness described here, exploring how giving oneself permission to create badly can break the stasis.&quot;},{&quot;slug&quot;:&quot;font-of-creativity&quot;,&quot;rationale&quot;:&quot;Explores the nature of the creative impulse — what it feels like when ideas burst out and what it means when they don&#39;t — directly complementing this node&#39;s lament.&quot;},{&quot;slug&quot;:&quot;intrisic motivation&quot;,&quot;rationale&quot;:&quot;Discusses the internal (or absent) drive to create, which maps closely to the resigned, motivationally drained state described in this node.&quot;},{&quot;slug&quot;:&quot;pandemic-weary&quot;,&quot;rationale&quot;:&quot;Describes a nearly identical mental state of listlessness, anxiety, and inability to engage with creative hobbies, offering a companion piece to this node.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:597,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:1263,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:942},&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;slug&quot;:&quot;ai&quot;,&quot;anchor_text&quot;:&quot;friendly robot&quot;,&quot;context&quot;:&quot;enlist the help of a friendly robot or at least a properly configured handy computing device&quot;,&quot;rationale&quot;:&quot;The node&#39;s central question about machine-generated poetry directly connects to the AI node&#39;s discussion of AI-generated content and creativity.&quot;},{&quot;slug&quot;:&quot;ai-music-trends&quot;,&quot;anchor_text&quot;:&quot;humanly written, humanly formed&quot;,&quot;context&quot;:&quot;could you say that the poetry was humanly written, humanly formed? Would it still express humanity?&quot;,&quot;rationale&quot;:&quot;The AI Music Trends node explores the same philosophical question of whether AI-generated creative work can be distinguished from human-made art.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;Suno&quot;,&quot;rationale&quot;:&quot;Suno explores AI-generated music/creativity in a way that parallels this poem&#39;s question about whether machine-produced creative work retains human meaning.&quot;},{&quot;slug&quot;:&quot;font-of-creativity&quot;,&quot;rationale&quot;:&quot;That node explores what drives creative output and whether inspiration is intrinsic, which complements this poem&#39;s meditation on machine-generated versus human poetry.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:308,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&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;:0},&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;slug&quot;:&quot;songwriting-reflections&quot;,&quot;rationale&quot;:&quot;The node on songwriting reflections discusses the appeal of melancholy and minor keys in music, directly echoing the poem&#39;s embrace of melancholy and &#39;un-joy&#39;.&quot;},{&quot;slug&quot;:&quot;philosophy&quot;,&quot;rationale&quot;:&quot;The poem&#39;s acceptance of melancholy and existential reflection on &#39;what it&#39;s like to be me&#39; connects to the philosophy node&#39;s themes of existentialism and finding meaning in life&#39;s absurdity.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:200,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:120,&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;writings&quot;,&quot;rationale&quot;:&quot;The &#39;writings&#39; node is the broader collection of poetry and creative writing that this node belongs to, making it a natural cross-reference for context.&quot;},{&quot;slug&quot;:&quot;empty-mind&quot;,&quot;rationale&quot;:&quot;Both nodes grapple with the challenge of creative output and the desire to write, making them thematically complementary.&quot;},{&quot;slug&quot;:&quot;font-of-creativity&quot;,&quot;rationale&quot;:&quot;The &#39;font of creativity&#39; node explores the same compulsion to write and create that this poem expresses, providing meaningful elaboration on its themes.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:243,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:136,&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;dg-new&quot;,&quot;anchor_text&quot;:&quot;extremely new and shiny&quot;,&quot;context&quot;:&quot;Since Ghost is also extremely new and shiny, it has some appeal as a new toy&quot;,&quot;rationale&quot;:&quot;The node about embracing new things in digital gardening directly relates to the author&#39;s attraction to new tools like Ghost.&quot;},{&quot;slug&quot;:&quot;blog&quot;,&quot;anchor_text&quot;:&quot;blog I already have&quot;,&quot;context&quot;:&quot;no one reads the blog I already have, and the effort of setting up a new one&quot;,&quot;rationale&quot;:&quot;The author references their existing blog, which is a distinct node in the garden covering their blogging history and philosophy.&quot;},{&quot;slug&quot;:&quot;writings&quot;,&quot;anchor_text&quot;:&quot;writings.travisbriggs.com&quot;,&quot;context&quot;:&quot;After all, the URL is http://writings.travisbriggs.com. Surely people would understand&quot;,&quot;rationale&quot;:&quot;The writings node is the direct home of the content described in this introduction post.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;blog-cycle&quot;,&quot;rationale&quot;:&quot;That node discusses the tendency to rebuild or restart blogs from scratch, which directly echoes the impulse described here to launch a new blog platform for creative writing.&quot;},{&quot;slug&quot;:&quot;considering-moving-blogs&quot;,&quot;rationale&quot;:&quot;This node covers the author&#39;s recurring pattern of evaluating new blogging platforms, which mirrors the decision described here to move to Ghost for fiction writing.&quot;},{&quot;slug&quot;:&quot;dg-reverse&quot;,&quot;rationale&quot;:&quot;The introduction mentions wanting a &#39;better way&#39; beyond just posting to an existing blog, which connects to the garden&#39;s philosophy of rejecting reverse-chronological blogging norms.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:367,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:344,&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/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;slug&quot;:&quot;writings&quot;,&quot;rationale&quot;:&quot;This poem is part of the same collection of writings from 2014-2017 and fits the emotional tone described there.&quot;},{&quot;slug&quot;:&quot;coping-skills&quot;,&quot;rationale&quot;:&quot;The poem&#39;s themes of pain, broken heart, and finding meaning in suffering resonate with the coping skills node&#39;s subject matter.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:263,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:90,&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;slug&quot;:&quot;writings&quot;,&quot;anchor_text&quot;:&quot;my bandmates always hated when I called it rehearsal&quot;,&quot;context&quot;:&quot;Sorry, &#39;practice&#39; — my bandmates always hated when I called it rehearsal. But you know&quot;,&quot;rationale&quot;:&quot;This piece is part of the writings collection and linking to that node contextualizes it within the broader set of creative writing pieces.&quot;},{&quot;slug&quot;:&quot;Christian&quot;,&quot;anchor_text&quot;:&quot;Christian thing to do&quot;,&quot;context&quot;:&quot;as if that was a very Christian thing to do. Like we weren&#39;t really sleeping together&quot;,&quot;rationale&quot;:&quot;The word &#39;Christian&#39; appears in the text and there is a node about a person named Christian, creating an amusing potential connection, though it&#39;s a pun/coincidence rather than a direct reference.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;writings&quot;,&quot;rationale&quot;:&quot;This node is explicitly part of the writings collection of short fiction and poetry pieces from 2014-2017.&quot;},{&quot;slug&quot;:&quot;font-of-creativity&quot;,&quot;rationale&quot;:&quot;The narrator&#39;s voice and the act of starting and restarting the story reflects themes of creative output and the struggle to express ideas that are discussed in that node.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:499,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&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;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;slug&quot;:&quot;writings&quot;,&quot;anchor_text&quot;:&quot;Pavement Windshield Pop&quot;,&quot;context&quot;:&quot;snippets of writing that I created between 2014 and 2017&quot;,&quot;rationale&quot;:&quot;This poem is part of the writings collection and should link back to its parent collection node.&quot;},{&quot;slug&quot;:&quot;philosophy&quot;,&quot;anchor_text&quot;:&quot;That&#39;s all life is&quot;,&quot;context&quot;:&quot;That&#39;s all life is, which -pow- arrives like a car crash&quot;,&quot;rationale&quot;:&quot;The poem touches on existential themes about life&#39;s meaning that connect directly to the philosophy node.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;writings&quot;,&quot;rationale&quot;:&quot;This poem is part of the broader writings collection migrated from writings.travisbriggs.com.&quot;},{&quot;slug&quot;:&quot;preoccupied&quot;,&quot;rationale&quot;:&quot;Both are poems from the same era dealing with existential themes of life, death, and the passage of time.&quot;},{&quot;slug&quot;:&quot;hurricane&quot;,&quot;rationale&quot;:&quot;Both poems use visceral, kinetic imagery to explore themes of destruction and creative renewal.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:342,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:224,&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 nodes deal with anxiety, emotional pain, and mental health struggles — coping-skills directly addresses strategies for managing these feelings.&quot;},{&quot;slug&quot;:&quot;pandemic-weary&quot;,&quot;rationale&quot;:&quot;Pandemic Weary describes similar feelings of dread, exhaustion, and inability to engage with daily life that this poem expresses.&quot;},{&quot;slug&quot;:&quot;DBT&quot;,&quot;rationale&quot;:&quot;DBT (Dialectical Behavior Therapy) is directly relevant to the anxiety and emotional regulation themes in this poem.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:221,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:129,&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;slug&quot;:&quot;writings&quot;,&quot;anchor_text&quot;:&quot;wrote poems&quot;,&quot;context&quot;:&quot;was preoccupied with death and wrote poems, fiercely stripped of other intentions&quot;,&quot;rationale&quot;:&quot;This poem is part of the broader writings collection, and linking &#39;wrote poems&#39; to that node contextualizes it within the author&#39;s creative writing output.&quot;},{&quot;slug&quot;:&quot;philosophy&quot;,&quot;anchor_text&quot;:&quot;ultimate demise&quot;,&quot;context&quot;:&quot;Why dwell on ultimate demise? Why let the fragrant afternoon pass, unexamined&quot;,&quot;rationale&quot;:&quot;The poem&#39;s meditation on death and existential questioning connects directly to the philosophy node&#39;s discussion of existentialism and finding meaning.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;empty-mind&quot;,&quot;rationale&quot;:&quot;Both nodes explore a poet&#39;s relationship with creative output and the inner emotional landscape, including anxiety and the struggle to create.&quot;},{&quot;slug&quot;:&quot;suffer&quot;,&quot;rationale&quot;:&quot;&#39;Suffer&#39; is a poem similarly preoccupied with unfinished creative work and existential anguish, making it a natural thematic companion to this node.&quot;},{&quot;slug&quot;:&quot;blackness&quot;,&quot;rationale&quot;:&quot;&#39;Blackness&#39; shares the same dark, death-adjacent meditative tone and poetic form as &#39;Preoccupied&#39;, making them closely related pieces in the writings collection.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:258,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:281,&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;slug&quot;:&quot;writings&quot;,&quot;rationale&quot;:&quot;This poem is part of the same collection of writings from 2014-2017 that were migrated into the garden, making it a natural cross-reference.&quot;},{&quot;slug&quot;:&quot;ai-music-trends&quot;,&quot;rationale&quot;:&quot;Both nodes touch on the devaluation of music and the sense of being crushed by mass-produced, lowest-common-denominator popular culture.&quot;},{&quot;slug&quot;:&quot;Bandcamp&quot;,&quot;rationale&quot;:&quot;The node&#39;s critique of the &#39;trash heap of popular culture&#39; and mass-produced music connects to Bandcamp&#39;s discussion of the stratification of the music industry and the long tail of artists.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:230,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:155,&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;slug&quot;:&quot;empty-mind&quot;,&quot;anchor_text&quot;:&quot;songs unwritten&quot;,&quot;context&quot;:&quot;From the agony of songs unwritten And poems unsung which Cleave their hooks&quot;,&quot;rationale&quot;:&quot;The Empty Mind node directly addresses the inability to create music and write songs, mirroring the poem&#39;s theme of creative frustration.&quot;},{&quot;slug&quot;:&quot;writings&quot;,&quot;anchor_text&quot;:&quot;poems unsung&quot;,&quot;context&quot;:&quot;From the agony of songs unwritten And poems unsung which Cleave their hooks into my brain&quot;,&quot;rationale&quot;:&quot;This poem is part of the writings collection, and linking &#39;poems unsung&#39; to that node connects the creative output theme directly.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;empty-mind&quot;,&quot;rationale&quot;:&quot;Empty Mind explores the same creative paralysis and inability to produce music or poetry that this poem expresses through its imagery of &#39;songs unwritten and poems unsung&#39;.&quot;},{&quot;slug&quot;:&quot;pandemic-weary&quot;,&quot;rationale&quot;:&quot;Pandemic Weary describes the same evening dread and inability to engage with activities, closely mirroring the emotional state depicted in this poem.&quot;},{&quot;slug&quot;:&quot;pillows-and-sheets&quot;,&quot;rationale&quot;:&quot;Pillows and Sheets shares the same tone of dejection and inability to engage with daily life, making it a strong companion poem.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:301,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:281,&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 node is part of the same collection of creative writing pieces that were migrated from writings.travisbriggs.com, and the writings node serves as the index for these pieces.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:313,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:63,&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;intrisic motivation&quot;,&quot;rationale&quot;:&quot;The poem&#39;s theme of self-motivation and getting things done connects directly to the node on intrinsic vs extrinsic motivation.&quot;},{&quot;slug&quot;:&quot;the-chain&quot;,&quot;rationale&quot;:&quot;The Seinfeld Strategy node discusses building habits and showing up daily, which aligns closely with the poem&#39;s message about doing the work each day.&quot;},{&quot;slug&quot;:&quot;coping-skills&quot;,&quot;rationale&quot;:&quot;Both nodes deal with finding the inner resolve to push through difficult feelings and keep going.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:295,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:127,&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;in a very zen sense&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 Zen philosophy to describe the non-existence of home, and the garden has a dedicated Zen node covering exactly these ideas of non-duality and the nature of existence.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;philosophy&quot;,&quot;rationale&quot;:&quot;The philosophy node discusses existentialism, the absurdity of existence, and Zen, all of which deeply parallel this node&#39;s meditation on home as a construct that doesn&#39;t truly exist.&quot;},{&quot;slug&quot;:&quot;free will&quot;,&quot;rationale&quot;:&quot;This node&#39;s river metaphor and deterministic framing (&#39;the river ceases to exist before you even step out of it&#39;) resonates thematically with the garden&#39;s exploration of free will and whether we have agency over our circumstances.&quot;},{&quot;slug&quot;:&quot;not the circumstances&quot;,&quot;rationale&quot;:&quot;That node&#39;s focus on accepting reality as it is rather than longing for something else complements this node&#39;s conclusion that home is an unattainable ideal the heart always yearns for.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:933,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:750,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:492},&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;slug&quot;:&quot;suffer&quot;,&quot;rationale&quot;:&quot;Both poems explore themes of futile work, wasted effort, and the agony of creative output left unrealized.&quot;},{&quot;slug&quot;:&quot;empty-mind&quot;,&quot;rationale&quot;:&quot;The dried &#39;fonts of inspiration&#39; in Toil echoes the creative emptiness described in Empty Mind.&quot;},{&quot;slug&quot;:&quot;philosophy&quot;,&quot;rationale&quot;:&quot;The poem&#39;s nihilistic conclusion about futility and indifference connects to the existentialist and determinist themes explored in the philosophy node.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:230,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:122,&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;slug&quot;:&quot;listening-to-music-while-doing-things&quot;,&quot;anchor_text&quot;:&quot;listening to music&quot;,&quot;context&quot;:&quot;can&#39;t write poetry while listening to music. Well no one said that&quot;,&quot;rationale&quot;:&quot;This node directly explores the theme of doing creative work while listening to music, which is the central premise of this poem.&quot;},{&quot;slug&quot;:&quot;songwriting-reflections&quot;,&quot;anchor_text&quot;:&quot;poetry and music&quot;,&quot;context&quot;:&quot;A bit of zest from someone else&#39;s poetry and music, illuminating sound&quot;,&quot;rationale&quot;:&quot;That node reflects on music and creative expression, closely related to the interplay between poetry and music explored here.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;font-of-creativity&quot;,&quot;rationale&quot;:&quot;That node explores the compulsive need to create and the struggle with creative output, themes that resonate with this poem&#39;s ambivalence about the creative writing process.&quot;},{&quot;slug&quot;:&quot;blogging-but-this-time-with-blogging&quot;,&quot;rationale&quot;:&quot;That node discusses a similar free-writing exercise where song lyrics inspire the next line of writing, directly parallel to the approach described in this poem.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:361,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:244,&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&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;slug&quot;:&quot;digital-garden-itself&quot;,&quot;anchor_text&quot;:&quot;integrate them into the Garden&quot;,&quot;context&quot;:&quot;I thought it would be nice to integrate them into the Garden. Just need to make sure&quot;,&quot;rationale&quot;:&quot;The node references the Garden itself, which has its own dedicated node explaining the digital garden project.&quot;},{&quot;slug&quot;:&quot;blog&quot;,&quot;anchor_text&quot;:&quot;idle time-wasting&quot;,&quot;context&quot;:&quot;Most of these were just idle time-wasting while sitting on the Google bus.&quot;,&quot;rationale&quot;:&quot;The writing collection relates to the broader blog/writing output the author discusses in the blog node.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;dg-evergreen&quot;,&quot;rationale&quot;:&quot;The act of migrating old writings into the garden and keeping them as living nodes is a good example of the evergreen principle discussed in this node.&quot;},{&quot;slug&quot;:&quot;font-of-creativity&quot;,&quot;rationale&quot;:&quot;The font-of-creativity node reflects on the author&#39;s creative writing impulses, directly relevant to this collection of writings from the same period.&quot;},{&quot;slug&quot;:&quot;empty-mind&quot;,&quot;rationale&quot;:&quot;The empty-mind node discusses the author&#39;s struggles with creative output and depression, thematically consistent with the &#39;very depressed&#39; writings described here.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:358,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:266,&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;totals&quot;:{&quot;input&quot;:72934,&quot;output&quot;:58976,&quot;cacheRead&quot;:3202944,&quot;cacheWrite&quot;:25023},&quot;generatedAt&quot;:&quot;2026-05-29T13:07:40.467Z&quot;,&quot;nodeCount&quot;:129,&quot;totalLinks&quot;:253,&quot;totalRefs&quot;:352,&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;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-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;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;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;:0}&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>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;halloween-sadness&quot;,&quot;rationale&quot;:&quot;The halloween-sadness node discusses costume parties and cosplay, which connects thematically to Abby being a costume designer.&quot;},{&quot;slug&quot;:&quot;new-year-2025&quot;,&quot;rationale&quot;:&quot;The new-year-2025 node mentions Abby by name and describes shared experiences with her, elaborating on their relationship.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:259,&quot;cache_creation_input_tokens&quot;:25023,&quot;cache_read_input_tokens&quot;:0,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:25023,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:97,&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 with 10 views on Bandcamp&quot;,&quot;rationale&quot;:&quot;The Spotify node directly discusses royalty structures and the demonetization of small artists, which is closely related to the long-tail stratification argument made here.&quot;},{&quot;slug&quot;:&quot;YouTube&quot;,&quot;anchor_text&quot;:&quot;YouTube&quot;,&quot;context&quot;:&quot;10 artists with a billion views on Spotify/YouTube and a billion artists with 10 views on Bandcamp&quot;,&quot;rationale&quot;:&quot;YouTube is explicitly named as part of the platform duopoly being contrasted with Bandcamp&#39;s long-tail model.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;ai-music-trends&quot;,&quot;rationale&quot;:&quot;That node discusses the stratification of the music industry and the devaluation of music, directly paralleling the Bandcamp node&#39;s concern about the Music Industry splitting into mega-artists and invisible long-tail artists.&quot;},{&quot;slug&quot;:&quot;DistroKid&quot;,&quot;rationale&quot;:&quot;DistroKid is used by the author to distribute Danger Third Rail music, making it a relevant alternative/complement to Bandcamp as a musician&#39;s distribution tool discussed in the broader context of this node.&quot;},{&quot;slug&quot;:&quot;motivation-music&quot;,&quot;rationale&quot;:&quot;That node discusses the author&#39;s motivation for making music as an independent artist under Danger Third Rail, which is the same context in which Bandcamp&#39;s value to small artists is being evaluated here.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1105,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:577,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:246},&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;slug&quot;:&quot;Abby&quot;,&quot;anchor_text&quot;:&quot;my wedding party&quot;,&quot;context&quot;:&quot;I have a friend named Christian, who was in my wedding party, and who I worked&quot;,&quot;rationale&quot;:&quot;The wedding party reference connects directly to the Abby node, which describes Travis&#39;s marriage and wedding.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;Python&quot;,&quot;rationale&quot;:&quot;The Python node mentions Christian by name as a colleague at Qwobl, providing more context about their working relationship.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:73,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:111,&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;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;intrisic motivation&quot;,&quot;rationale&quot;:&quot;DBT often addresses motivation and behavioral patterns, and this node discusses intrinsic vs extrinsic motivation in a therapeutic context.&quot;},{&quot;slug&quot;:&quot;now&quot;,&quot;rationale&quot;:&quot;The &#39;Now&#39; node mentions mental health improvements and working on intrinsic motivation, which connects to DBT as a therapeutic practice.&quot;},{&quot;slug&quot;:&quot;philosophy&quot;,&quot;rationale&quot;:&quot;The philosophy node touches on existentialism and determinism, themes that intersect with DBT&#39;s dialectical approach to acceptance and change.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:107,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:129,&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;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 is Travis&#39;s band/recording project that uses DistroKid to distribute music to Spotify.&quot;},{&quot;slug&quot;:&quot;Bandcamp&quot;,&quot;rationale&quot;:&quot;Bandcamp is discussed as an alternative music distribution model, relevant to DistroKid&#39;s role in music distribution.&quot;},{&quot;slug&quot;:&quot;Spotify&quot;,&quot;rationale&quot;:&quot;Spotify is the platform where DistroKid-distributed tracks from Danger Third Rail appear.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:55,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&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;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;The danger-third-rail node mentions using Fiverr for professional mixing and mastering services, directly connecting Fiverr to the author&#39;s music project.&quot;},{&quot;slug&quot;:&quot;new-danger-third-rail-ep&quot;,&quot;rationale&quot;:&quot;This node discusses sending tracks to a session drummer and getting professional work done, which contextually relates to using freelance platforms like Fiverr.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:53,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:110,&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;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;slug&quot;:&quot;programming languages&quot;,&quot;anchor_text&quot;:&quot;Java&quot;,&quot;context&quot;:&quot;Here is a list: * Python * javascript-typescript * Ruby on Rails * Perl * Java&quot;,&quot;rationale&quot;:&quot;The programming languages meta node explicitly lists Java as one of the languages covered in this garden.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;Python&quot;,&quot;rationale&quot;:&quot;Python is frequently contrasted with Java as a language that allows functions outside of classes, making it a natural counterpoint to the design complaints raised in this node.&quot;},{&quot;slug&quot;:&quot;javascript-typescript&quot;,&quot;rationale&quot;:&quot;Javascript/Typescript also contrasts with Java&#39;s class-centric design, allowing functions and objects without mandatory class wrappers.&quot;},{&quot;slug&quot;:&quot;Ruby on Rails&quot;,&quot;rationale&quot;:&quot;Ruby on Rails is another language the author uses that contrasts with Java&#39;s rigid OOP requirements.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:212,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:184,&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;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;slug&quot;:&quot;what-programming-language-should-i-learn&quot;,&quot;anchor_text&quot;:&quot;I don&#39;t think I would recommend _anyone_ learn Perl&quot;,&quot;context&quot;:&quot;with my recent experiences with the language, I don&#39;t think I would recommend anyone learn Perl&quot;,&quot;rationale&quot;:&quot;The &#39;what programming language should I learn&#39; node explicitly mentions not recommending Perl, making it a direct cross-reference for this node&#39;s critique of the language.&quot;},{&quot;slug&quot;:&quot;programming languages&quot;,&quot;anchor_text&quot;:&quot;Perl&quot;,&quot;context&quot;:&quot;My understanding has always been that Python was a direct reaction/answer to Perl&quot;,&quot;rationale&quot;:&quot;The programming languages meta node ties together all the language nodes in the garden, including Perl, making it a natural link.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;programming languages&quot;,&quot;rationale&quot;:&quot;This meta node explicitly lists Perl as one of the languages covered in the garden and ties it to other language nodes.&quot;},{&quot;slug&quot;:&quot;what-programming-language-should-i-learn&quot;,&quot;rationale&quot;:&quot;That node explicitly advises against learning Perl based on the author&#39;s experiences, directly echoing the frustrations described in this node.&quot;},{&quot;slug&quot;:&quot;Ruby on Rails&quot;,&quot;rationale&quot;:&quot;Ruby on Rails was mentioned as an early language experience alongside Perl in college contexts, and both share the web app scripting era background.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:472,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:291,&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;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;github&quot;,&quot;anchor_text&quot;:&quot;Github repo&quot;,&quot;context&quot;:&quot;I first started writing Python in 2009, in my first Github repo: sudoku-solver&quot;,&quot;rationale&quot;:&quot;The node mentions GitHub as the platform for the sudoku-solver repo, and there is a dedicated node about GitHub in the garden.&quot;},{&quot;slug&quot;:&quot;wp-1.0&quot;,&quot;anchor_text&quot;:&quot;wp-1.0&quot;,&quot;context&quot;:&quot;Python has remained one of my favorite programming languages, used for wp-1.0&quot;,&quot;rationale&quot;:&quot;The programming languages meta node mentions wp-1.0 as a major Python project, and linking it here connects Python to its most prominent use case in the garden.&quot;},{&quot;slug&quot;:&quot;Rainfall&quot;,&quot;anchor_text&quot;:&quot;Rainfall&quot;,&quot;context&quot;:&quot;Python is used for Rainfall, a website generator for musicians&quot;,&quot;rationale&quot;:&quot;Rainfall is explicitly mentioned as a Python project elsewhere in the garden, making it a natural link to add here as a notable Python use case.&quot;},{&quot;slug&quot;:&quot;programming languages&quot;,&quot;anchor_text&quot;:&quot;favorite programming languages&quot;,&quot;context&quot;:&quot;Python has remained one of my favorite programming languages&quot;,&quot;rationale&quot;:&quot;There is a meta node on programming languages that ties together all language nodes including Python, and linking to it here creates a useful bidirectional connection.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;what-programming-language-should-i-learn&quot;,&quot;rationale&quot;:&quot;This node gives advice on choosing a programming language and recommends Python for data science, directly extending the discussion of Python&#39;s strengths touched on in this node.&quot;},{&quot;slug&quot;:&quot;Rainfall&quot;,&quot;rationale&quot;:&quot;Rainfall is a Python-based static site generator project described in detail in its own node, making it a meaningful elaboration on Python&#39;s real-world use by the author.&quot;},{&quot;slug&quot;:&quot;wp-1.0&quot;,&quot;rationale&quot;:&quot;WP 1.0 is described as being written in Python, so its node elaborates on a major Python project mentioned in the programming languages meta context.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1834,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:424,&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;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;slug&quot;:&quot;Python&quot;,&quot;anchor_text&quot;:&quot;Python&quot;,&quot;context&quot;:&quot;where I wrote a lot more Python code at Qwobl with Jawad and Christian&quot;,&quot;rationale&quot;:&quot;The Python node mentions Qwobl explicitly as where Travis wrote a lot of Python code, making this a direct topical connection.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;Python&quot;,&quot;rationale&quot;:&quot;The Python node directly references Qwobl as a formative workplace where Travis wrote significant Python code, providing elaborating context for this node.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:185,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:119,&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;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;That site is basically a custom static site generator, written in Python and Flask.&quot;,&quot;rationale&quot;:&quot;The node directly uses Python as the implementation language for Rainfall, and there is a dedicated Python node in the garden.&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, and Andrew&#39;s article and impetus&quot;,&quot;rationale&quot;:&quot;Bandcamp is explicitly named as the motivating context for the &#39;Moving Forward&#39; section, and there is a dedicated Bandcamp node discussing the platform&#39;s role in music distribution.&quot;},{&quot;slug&quot;:&quot;Vue.js&quot;,&quot;anchor_text&quot;:&quot;Vue 3&quot;,&quot;context&quot;:&quot;The tech stack is Python/Flask, SQLAlchemy and Vue 3 for the frontend.&quot;,&quot;rationale&quot;:&quot;Vue 3 is the specific frontend framework used in Rainfall, and there is a dedicated Vue.js node in the garden.&quot;},{&quot;slug&quot;:&quot;github&quot;,&quot;anchor_text&quot;:&quot;Github&quot;,&quot;context&quot;:&quot;The Github repo is here, and you can see the issues I&#39;m tracking for future releases.&quot;,&quot;rationale&quot;:&quot;Github is directly referenced as where the Rainfall source code lives, and there is a dedicated Github node in the garden.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;danger-third-rail&quot;,&quot;rationale&quot;:&quot;songs.travisbriggs.com, the personal music site that Rainfall was built from, is the demo/hosting site for Danger Third Rail, making this node the technical backstory to that project.&quot;},{&quot;slug&quot;:&quot;highs-and-lows-musician&quot;,&quot;rationale&quot;:&quot;That node covers the broader personal history of music production and recording, providing the biographical context for why a personal song-hosting platform like Rainfall was needed.&quot;},{&quot;slug&quot;:&quot;activity-pub&quot;,&quot;rationale&quot;:&quot;The Rainfall node mentions Mastodon OAuth login as a key feature; the ActivityPub node elaborates on how Mastodon and its underlying protocol work, which is directly relevant to that integration.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1263,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:1632,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:1184},&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;best integrate Javascript/Typescript and Single Page Applications&quot;,&quot;rationale&quot;:&quot;The node explicitly mentions Javascript/Typescript as a technology integrated with Rails, and there is a dedicated node on that topic.&quot;},{&quot;slug&quot;:&quot;programming languages&quot;,&quot;anchor_text&quot;:&quot;Ruby on Rails&quot;,&quot;context&quot;:&quot;The most recent Ruby on Rails coding I&#39;ve done is for the headless CMS&quot;,&quot;rationale&quot;:&quot;The programming languages meta node lists Ruby on Rails as one of the languages covered in the garden, making it a natural cross-link.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;what-programming-language-should-i-learn&quot;,&quot;rationale&quot;:&quot;That node discusses how to choose a programming language and mentions Ruby on Rails by implication, and this node&#39;s reflections on Ruby&#39;s strengths and weaknesses would complement that advice.&quot;},{&quot;slug&quot;:&quot;Qwobl&quot;,&quot;rationale&quot;:&quot;The Qwobl node mentions Christian and the early job experience, which contextually overlaps with the author&#39;s early career programming background described here.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:569,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:238,&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;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;slug&quot;:&quot;ai-music-trends&quot;,&quot;anchor_text&quot;:&quot;destroying the music industry&quot;,&quot;context&quot;:&quot;I worry about it destroying the music industry/artist&#39;s livelihoods. But there have been&quot;,&quot;rationale&quot;:&quot;The ai-music-trends node directly addresses the economic pressures on musicians and the music industry, which connects to concerns about Spotify&#39;s royalty structure.&quot;},{&quot;slug&quot;:&quot;genre-thoughts&quot;,&quot;anchor_text&quot;:&quot;full albums&quot;,&quot;context&quot;:&quot;Something like 80% of my music listening is full albums. And I&#39;m not even that worried&quot;,&quot;rationale&quot;:&quot;The genre-thoughts node discusses listening habits and music consumption patterns that relate to the preference for full album listening.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;Bandcamp&quot;,&quot;rationale&quot;:&quot;The Bandcamp node explicitly discusses the long-tail model of music distribution and artist royalties, directly complementing the concerns raised here about Spotify&#39;s royalty structure.&quot;},{&quot;slug&quot;:&quot;ai-music-trends&quot;,&quot;rationale&quot;:&quot;Discusses the economic future of music streaming and artist compensation, elaborating on the concerns about Spotify&#39;s impact on the music industry.&quot;},{&quot;slug&quot;:&quot;motivation-music&quot;,&quot;rationale&quot;:&quot;Discusses the broader motivations behind making and releasing music, which contextualizes the frustration with Spotify&#39;s pay-to-play and royalty structure.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1200,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:287,&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;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;slug&quot;:&quot;ai-music-trends&quot;,&quot;anchor_text&quot;:&quot;songs/music/songwriting&quot;,&quot;context&quot;:&quot;is vibe coding for my songs/music/songwriting. That&#39;s probably not a good thing.&quot;,&quot;rationale&quot;:&quot;The AI Music Trends node directly discusses AI-generated music and its implications for songwriting, making it highly relevant to Suno&#39;s use case.&quot;},{&quot;slug&quot;:&quot;danger-third-rail&quot;,&quot;anchor_text&quot;:&quot;songs&quot;,&quot;context&quot;:&quot;vibe coding for my songs/music/songwriting. That&#39;s probably not a good thing.&quot;,&quot;rationale&quot;:&quot;Suno is being used for the author&#39;s music project Danger Third Rail, so linking to that node adds context about whose songs are being referenced.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;ai&quot;,&quot;rationale&quot;:&quot;The AI node covers the author&#39;s broader thoughts on the AI era and its implications, which directly contextualizes why using Suno for songwriting might feel problematic.&quot;},{&quot;slug&quot;:&quot;null-rail&quot;,&quot;rationale&quot;:&quot;Null Rail is explicitly the place where the author shares AI-assisted music tracks, making it a natural companion to this Suno node.&quot;},{&quot;slug&quot;:&quot;ai-music-trends&quot;,&quot;rationale&quot;:&quot;This node discusses the philosophical and industry implications of AI-generated music, elaborating on why Suno might be &#39;not a good thing&#39; for authentic songwriting.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:80,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:301,&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;cross_references&quot;:[{&quot;slug&quot;:&quot;what-is-a-web-application&quot;,&quot;rationale&quot;:&quot;That node discusses web applications and dynamic websites in depth, which directly relates to Vue.js&#39;s use case as a frontend framework for building web applications.&quot;},{&quot;slug&quot;:&quot;q-poker-in-progress&quot;,&quot;rationale&quot;:&quot;Q Poker is a web application project that likely uses frontend technologies, making it a relevant cross-reference for Vue.js usage in practice.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:170,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:107,&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;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;ai&quot;,&quot;rationale&quot;:&quot;The AI node discusses the current tech landscape and AI era, which intersects with YouTube&#39;s role as a major platform affected by AI content generation and policy.&quot;},{&quot;slug&quot;:&quot;ai-music-trends&quot;,&quot;rationale&quot;:&quot;Discusses how platforms like YouTube/Spotify affect music economics and artist visibility, directly relevant to YouTube as a platform.&quot;},{&quot;slug&quot;:&quot;Bandcamp&quot;,&quot;rationale&quot;:&quot;Bandcamp node discusses the stratification of music platforms and contrasts with YouTube/Spotify as dominant platforms.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:88,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:127,&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;&#92;nAlmost everything I&#39;ve heard about Zen in my life has interested me. The idea of non-duality just puzzles and fascinates me. I&#39;ve been reading a lot about it lately, including classics like Shunryu Suzuki&#39;s _Zen Mind, Beginner&#39;s Mind_ ([Wikipedia link](https://en.wikipedia.org/wiki/Zen_Mind,_Beginner%27s_Mind)) and Alan Watts&#39;s _The Way of Zen_ ([Wikipedia link](https://en.wikipedia.org/wiki/The_Way_of_Zen)). And I know, I know, you shouldn&#39;t bother reading about Zen. Suzuki outright says as much. At least the latter is somethiing of a history/religion book as it is a &#92;&quot;spiritual guide&#92;&quot;. I&#39;m not even interested in practicing Zen as a religion as much as just seeing the true nature of myself and reality already! This of course presupposes that there is some &#92;&quot;true&#92;&quot; nature that exists apart from the &#92;&quot;everyday&#92;&quot; nature. Non-duality.&#92;n&#92;nIn the first couple of chapters of his book, Watts lays out a history and explanation of Indian religion/spirtual practice (he does note that it wouldn&#39;t have been called &#92;&quot;religion&#92;&quot; in these ancient times, separate from &#92;&quot;secularism&#92;&quot;) and some necessary background on Chinese as well (since Zen started in China as _Chan_). He relates that in the Indian spiritual tradtion, not much is written about &#92;&quot;ultimate reality&#92;&quot;, and what is said is related as poetry, with some understanding that the truly real and ultimate and continuous can&#39;t be expressed with our fabricated and abstract and discrete words. He then points out that Christianity attempts to do just that. Maybe this is why I&#39;ve always taken issues with Christianity, with both the &#92;&quot;old guy on a cloud zapping heathens with lightning bolts&#92;&quot; God and the &#92;&quot;just all around us and in everything, you know man?&#92;&quot; God. I&#39;ve never found either particularly satisfying, and what I remember from what little catechism I received is that the whole point of Christianity is something along the lines of: No, God became Man, the Word became Flesh, it was a Real Thing that Really Happened.&#92;n&#92;nOn April 6 2025 I checked out the [San Francisco Zen Center](https://sfzc.org), which was founded by Suzuki. It is, in fact, walking distance from my apartment! Most of the time was spent doing [zazen meditation](https://en.wikipedia.org/wiki/Zazen). Honestly, I really wasn&#39;t trying to grasp at Zen I promise! It just wanted to try zazen, because Suzuki literally can&#39;t shut up about it in his book. And the Zen Center is so close and has such a great history. I really enjoyed my time there that morning, and I found the zazen meditation to be extremely challenging. I experienced it as &#92;&quot;Try to not think, without trying too hard. Try to keep your posture good without paying attention to it&#92;&quot; etc. Suzuki offers that when we have the right posture and mindset, we don&#39;t &#92;&quot;not think&#92;&quot; as much as our &#92;&quot;mind flows through our body&#92;&quot;.&#92;n&#92;nSo far, the most challenging &#92;&quot;koan&#92;&quot; that I&#39;ve set for myself is this. Which is more true, &#92;&quot;I have a mind&#92;&quot; or &#92;&quot;I am a mind&#92;&quot;?&#92;n&#92;nAnother reflection that I had, which I posted to Mastodon was:&#92;n&#92;n&gt; I&#39;m reading Alan Watts, _The Way of Zen_, and he&#39;s talking about how the words, ideas etc of conventional discourse are anthetical to understanding ultimate reality. I don&#39;t have an exact quote, but he mentions many times that we &#92;&quot;fall in love&#92;&quot; with our ideas and conceptions and measurements, that they&#39;re &#92;&quot;hypnotizing&#92;&quot;.&#92;n&gt;&#92;n&gt; Thinking of two things:&#92;n&gt;&#92;n&gt; How people love to scroll social media, especially in the case of sites like Reddit, for the well-documented dopamine hit of new information.&#92;n&gt;&#92;n&gt; How things like TED talks further idolize &#92;&quot;ideas&#92;&quot; themselves, even when they are devoid of utility.&#92;n&#92;nAnother:&#92;n&#92;n&gt; I told my wife that my understanding of Zen is that it&#39;s basically just realizing you&#39;re one with the universe. She suggested that it&#39;s like _The Secret_, that when you&#39;re enlightened you can manifest things with your mind. &#92;n&gt;&#92;n&gt; I replied that it&#39;s actually the opposite. The secret is an extreme form of &#92;&quot;grasping&#92;&quot;. That if you try and try and believe hard enough, you can make something happen. Zen is like, everything is going to happen or not happen, that&#39;s it. &#92;n&#92;nAnd finally a poem I wrote which I think is a Zen poem (every poem is a Zen poem; no poem is a Zen poem):&#92;n&#92;n&gt; It is what it is&#92;n&gt;&#92;n&gt; Such is life&#92;n&gt;&#92;n&gt; I don&#39;t mind&#92;n&gt;&#92;n&#92;n---&#92;n&#92;nAnyways I&#39;m not sure if this page should be completely empty, completely full, or if it already is both.&#92;n&#92;nWry observations like the above make me feel clever, but I realize that the cleveriness isn&#39;t the point. Hopefully they can just help me have some pure experience.&#92;n&quot;},&quot;parsed&quot;:{&quot;suggested_links&quot;:[{&quot;slug&quot;:&quot;philosophy&quot;,&quot;anchor_text&quot;:&quot;I&#39;ve always taken issues with Christianity&quot;,&quot;context&quot;:&quot;Maybe this is why I&#39;ve always taken issues with Christianity, with both the &#39;old guy on a cloud&#39;&quot;,&quot;rationale&quot;:&quot;The philosophy node directly covers the author&#39;s atheism, determinism, and interest in Zen, making it a natural cross-link for this spiritual skepticism.&quot;},{&quot;slug&quot;:&quot;free will&quot;,&quot;anchor_text&quot;:&quot;everything is going to happen or not happen&quot;,&quot;context&quot;:&quot;Zen is like, everything is going to happen or not happen, that&#39;s it.&quot;,&quot;rationale&quot;:&quot;The Zen view of non-grasping and acceptance maps directly onto the author&#39;s determinism/free will beliefs discussed in the free will node.&quot;},{&quot;slug&quot;:&quot;atheism&quot;,&quot;anchor_text&quot;:&quot;practicing Zen as a religion&quot;,&quot;context&quot;:&quot;I&#39;m not even interested in practicing Zen as a religion as much as just seeing the true nature&quot;,&quot;rationale&quot;:&quot;The author&#39;s skepticism of religion connects to their atheism node, which states they firmly believe no gods exist.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;philosophy&quot;,&quot;rationale&quot;:&quot;The philosophy node explicitly mentions the author&#39;s growing interest in Zen and their determinism, making it a natural companion piece to this node.&quot;},{&quot;slug&quot;:&quot;not the circumstances&quot;,&quot;rationale&quot;:&quot;That node&#39;s theme of accepting what happens rather than controlling outcomes echoes the Zen acceptance described here, especially the contrast with &#39;The Secret&#39;.&quot;},{&quot;slug&quot;:&quot;Abby&quot;,&quot;rationale&quot;:&quot;The author&#39;s wife appears in this node offering a witty take on Zen enlightenment, and Abby&#39;s node provides fuller context for who she is.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1174,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:830,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:466},&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;recording-setup&quot;,&quot;anchor_text&quot;:&quot;all the tools I need to make music&quot;,&quot;context&quot;:&quot;I have all the tools I need to make music. Everything is there, completely capable, ready for me to take the reigns&quot;,&quot;rationale&quot;:&quot;The recording setup node directly describes the exact tools and environment the author is referring to when lamenting their availability.&quot;},{&quot;slug&quot;:&quot;danger-third-rail&quot;,&quot;anchor_text&quot;:&quot;start making music again&quot;,&quot;context&quot;:&quot;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.&quot;,&quot;rationale&quot;:&quot;Danger Third Rail is the author&#39;s music recording project, which is the implicit subject of the music-making they want to restart.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;motivation-music&quot;,&quot;rationale&quot;:&quot;This node is specifically about motivation for writing and producing music for Danger Third Rail, directly paralleling the existential dread and procrastination described in this node.&quot;},{&quot;slug&quot;:&quot;not-quite-writers-block&quot;,&quot;rationale&quot;:&quot;That node explores the same anxiety around music creation and the paralysis of possibility, making it a strong conceptual companion to this node.&quot;},{&quot;slug&quot;:&quot;intrisic motivation&quot;,&quot;rationale&quot;:&quot;The author&#39;s dread and inability to act despite having all the tools is framed here as a motivation problem, which the intrinsic motivation node explores in depth.&quot;},{&quot;slug&quot;:&quot;something-terrible&quot;,&quot;rationale&quot;:&quot;That node discusses a method for overcoming exactly the kind of creative block and anxiety described here, offering a practical counterpoint.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:504,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:1309,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:969},&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;slug&quot;:&quot;recording-setup&quot;,&quot;anchor_text&quot;:&quot;record and edit digital audio tracks&quot;,&quot;context&quot;:&quot;It allows musicians and producers to record and edit digital audio tracks, compose arrangements&quot;,&quot;rationale&quot;:&quot;The recording-setup node describes Travis&#39;s actual DAW-based recording workflow built around Ableton Live.&quot;},{&quot;slug&quot;:&quot;ableton-12&quot;,&quot;anchor_text&quot;:&quot;Ableton Live&quot;,&quot;context&quot;:&quot;Ableton Live is music production software that serves as a Digital Audio Workstation (DAW).&quot;,&quot;rationale&quot;:&quot;The ableton-12 node is a dedicated follow-up about the latest version of this exact software.&quot;},{&quot;slug&quot;:&quot;danger-third-rail&quot;,&quot;anchor_text&quot;:&quot;musicians and producers&quot;,&quot;context&quot;:&quot;It allows musicians and producers to record and edit digital audio tracks&quot;,&quot;rationale&quot;:&quot;Danger Third Rail is Travis&#39;s recording project where he uses Ableton Live as his primary production tool.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;highs-and-lows-musician&quot;,&quot;rationale&quot;:&quot;This node details Travis&#39;s long experience using Ableton Live in his home studio, directly elaborating on the DAW&#39;s role in music production.&quot;},{&quot;slug&quot;:&quot;music-projects-as-ephemera&quot;,&quot;rationale&quot;:&quot;This node discusses issues with Ableton Live project files and compatibility, providing concrete real-world context for using the DAW.&quot;},{&quot;slug&quot;:&quot;something-terrible&quot;,&quot;rationale&quot;:&quot;This node describes Travis tutoring students in Ableton Live and digital music production, expanding on the software&#39;s educational use.&quot;},{&quot;slug&quot;:&quot;another-year-without-resolutions&quot;,&quot;rationale&quot;:&quot;This node mentions Travis taking music lessons specifically for Ableton Live production, connecting to the DAW&#39;s learning curve.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:136,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:370,&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;developing software using frontend technologies such as HTML/CSS and Javascript/Typescript&quot;,&quot;rationale&quot;:&quot;The node explicitly mentions Javascript/Typescript as a specialization, and there is a dedicated node covering this topic.&quot;},{&quot;slug&quot;:&quot;wp-1.0&quot;,&quot;anchor_text&quot;:&quot;WP 1.0 Bot&quot;,&quot;context&quot;:&quot;primary maintainer of the Wikipedia WP 1.0 Bot, which has the most all time edits&quot;,&quot;rationale&quot;:&quot;The WP 1.0 Bot has its own dedicated node with extensive detail about the project.&quot;},{&quot;slug&quot;:&quot;Python&quot;,&quot;anchor_text&quot;:&quot;Python class&quot;,&quot;context&quot;:&quot;teaches a free Python class at the Noisebridge hackerspace in San Francisco&quot;,&quot;rationale&quot;:&quot;Python has its own node in the garden and is a core part of Travis&#39;s technical identity.&quot;},{&quot;slug&quot;:&quot;danger-third-rail&quot;,&quot;anchor_text&quot;:&quot;Danger Third Rail&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;Danger Third Rail is Travis&#39;s music project with its own dedicated node covering details about it.&quot;},{&quot;slug&quot;:&quot;Abby&quot;,&quot;anchor_text&quot;:&quot;Abby&quot;,&quot;context&quot;:&quot;currently lives with his amazing wife Abby and cuddly cat Shekel&quot;,&quot;rationale&quot;:&quot;Abby has her own dedicated node in the garden describing Travis&#39;s wife.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;digital-garden-itself&quot;,&quot;rationale&quot;:&quot;This node describes the garden itself, complementing the About Me node as an introduction to Travis and his work.&quot;},{&quot;slug&quot;:&quot;recording-setup&quot;,&quot;rationale&quot;:&quot;Elaborates on Travis&#39;s music production setup, extending the mention of his musician identity in the About Me node.&quot;},{&quot;slug&quot;:&quot;digital-gardening-principles&quot;,&quot;rationale&quot;:&quot;Provides context for Travis&#39;s identity as a &#39;digital gardener&#39; mentioned in the About Me node.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:451,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&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;:0},&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](https://www.w3.org/TR/activitypub/)) that powers Mastodon&quot;,&quot;rationale&quot;:&quot;The node deeply discusses Mastodon&#39;s federation mechanics, and the mastodon-is-not-twitter node covers Mastodon as a platform in detail.&quot;},{&quot;slug&quot;:&quot;digital-garden-itself&quot;,&quot;anchor_text&quot;:&quot;Digital Garden&quot;,&quot;context&quot;:&quot;I was creating a new account for the Digital Garden itself, and automatically posting there&quot;,&quot;rationale&quot;:&quot;The node references the digital garden as an ActivityPub actor, and digital-garden-itself describes this garden&#39;s structure and identity.&quot;},{&quot;slug&quot;:&quot;comments&quot;,&quot;anchor_text&quot;:&quot;comments system&quot;,&quot;context&quot;:&quot;they wouldn&#39;t show up anywhere to serve as the basis for my comments system&quot;,&quot;rationale&quot;:&quot;The comments node describes the final comments implementation that this ActivityPub exploration was ultimately trying to enable.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;dg-feedback&quot;,&quot;rationale&quot;:&quot;That node explains why comments and feedback are important to a digital garden, providing motivation context for the ActivityPub experimentation described here.&quot;},{&quot;slug&quot;:&quot;gemini&quot;,&quot;rationale&quot;:&quot;Gemini is another alternative internet protocol the author has explored; cross-referencing it highlights a pattern of interest in non-standard web protocols.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1969,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:1101,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:787},&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;Bandcamp&quot;,&quot;anchor_text&quot;:&quot;niche, &#92;&quot;artisinal&#92;&quot;, human made music&quot;,&quot;context&quot;:&quot;there will be a place for niche, &#92;&quot;artisinal&#92;&quot;, human made music, sure, the same way&quot;,&quot;rationale&quot;:&quot;Bandcamp is discussed in the garden as the platform for long-tail, artisanal human-made music, which directly parallels this argument about niche human music surviving.&quot;},{&quot;slug&quot;:&quot;ai&quot;,&quot;anchor_text&quot;:&quot;AI&quot;,&quot;context&quot;:&quot;you can&#39;t tell if a track was made by a &#92;&quot;human musician&#92;&quot; or an AI, then who cares&quot;,&quot;rationale&quot;:&quot;The garden has a dedicated AI node that elaborates on the broader AI era this node is commenting on.&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 or has the biggest following&quot;,&quot;rationale&quot;:&quot;Suno is the specific AI music platform discussed elsewhere in this garden, making it a direct referent for this mention.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;Bandcamp&quot;,&quot;rationale&quot;:&quot;Bandcamp&#39;s node explicitly discusses the long-tail model for artists and how streaming economics disadvantage small artists, directly elaborating the royalty and economics arguments made here.&quot;},{&quot;slug&quot;:&quot;fake-it-music&quot;,&quot;rationale&quot;:&quot;This node discusses the challenges of a solo musician producing music, which contextualizes why AI tools might be appealing or threatening to independent artists like the author.&quot;},{&quot;slug&quot;:&quot;genre-thoughts&quot;,&quot;rationale&quot;:&quot;Discusses the author&#39;s perspective as a musician navigating music production, providing personal context for the broader industry observations made in this node.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:534,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:368,&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;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;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?&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;discussed it at work, fretted about it with my wife, but nothing here&quot;,&quot;rationale&quot;:&quot;The node references his wife by relationship; linking to Abby connects the personal context to her dedicated node.&quot;},{&quot;slug&quot;:&quot;digital-gardening-principles&quot;,&quot;anchor_text&quot;:&quot;Digital Garden&quot;,&quot;context&quot;:&quot;If a Digital Garden is about learning in public, the meta lesson&quot;,&quot;rationale&quot;:&quot;The node reflects on digital gardening philosophy, and digital-gardening-principles is the foundational node for that concept in this garden.&quot;},{&quot;slug&quot;:&quot;philosophy&quot;,&quot;anchor_text&quot;:&quot;philosophical problems around songs&quot;,&quot;context&quot;:&quot;What are the philosophical problems around songs you like, but you find out they were made by AI?&quot;,&quot;rationale&quot;:&quot;The node explicitly raises philosophical questions about AI art, and the philosophy node discusses related ideas about meaning and aesthetics.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;vibe coding&quot;,&quot;rationale&quot;:&quot;Vibe coding is a direct outgrowth of the AI era this node introduces, and the vibe-coding node elaborates extensively on how the author has embraced AI-assisted programming.&quot;},{&quot;slug&quot;:&quot;Suno&quot;,&quot;rationale&quot;:&quot;Suno is the author&#39;s experience with AI music generation, directly relevant to the bullet points about AI art and AI music trends raised in this node.&quot;},{&quot;slug&quot;:&quot;null-rail&quot;,&quot;rationale&quot;:&quot;Null Rail documents the author&#39;s AI-assisted music project, making it a concrete case study for the abstract AI-music questions posed in this node.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:700,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:730,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:386},&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;slug&quot;:&quot;getting-nothing-done&quot;,&quot;rationale&quot;:&quot;The Anki node discusses difficulty sticking with flashcard habits, which relates to the productivity and habit-formation themes explored in Getting Nothing Done.&quot;},{&quot;slug&quot;:&quot;the-chain&quot;,&quot;rationale&quot;:&quot;Anki&#39;s spaced repetition requires consistent daily practice, which connects directly to the Seinfeld Strategy chain-building habit discussed in this node.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:336,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:102,&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;slug&quot;:&quot;github&quot;,&quot;anchor_text&quot;:&quot;added my name to the list of signatories&quot;,&quot;context&quot;:&quot;I added my name to the list of signatories on endasfmascotry.com and wrote the following email&quot;,&quot;rationale&quot;:&quot;The link to add signatories is a GitHub pull request, and the node about GitHub is directly relevant to this action.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;about&quot;,&quot;rationale&quot;:&quot;The &#39;about&#39; node establishes Travis as a software developer and open source contributor, providing context for why he would engage with Apache Software Foundation naming issues.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:680,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:136,&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;slug&quot;:&quot;philosophy&quot;,&quot;anchor_text&quot;:&quot;atheist&quot;,&quot;context&quot;:&quot;I am an atheist. I firmly believe that no gods exist.&quot;,&quot;rationale&quot;:&quot;The philosophy node explicitly mentions atheism as one of the author&#39;s beliefs, making it a direct topical connection.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;philosophy&quot;,&quot;rationale&quot;:&quot;The philosophy node discusses atheism, determinism, and free will as part of the author&#39;s worldview, providing substantial elaboration on the beliefs briefly stated here.&quot;},{&quot;slug&quot;:&quot;free will&quot;,&quot;rationale&quot;:&quot;The free will node is closely related to the author&#39;s broader materialist/atheist worldview mentioned in the philosophy node alongside atheism.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:56,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:153,&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;danger-third-rail&quot;,&quot;anchor_text&quot;:&quot;recording my own tracks&quot;,&quot;context&quot;:&quot;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.&quot;,&quot;rationale&quot;:&quot;The author is referring to their own music recording project, Danger Third Rail, which is the concrete context for this reflection.&quot;},{&quot;slug&quot;:&quot;recording-setup&quot;,&quot;anchor_text&quot;:&quot;recording&quot;,&quot;context&quot;:&quot;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.&quot;,&quot;rationale&quot;:&quot;The node&#39;s concluding takeaway is directly about the author&#39;s own recording practice, which is documented in the recording-setup node.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;fake-it-music&quot;,&quot;rationale&quot;:&quot;That node opens by explicitly referencing bands-as-sports-teams and extends its argument — that not every part of a song has to be perfect — into practical advice for solo home recording.&quot;},{&quot;slug&quot;:&quot;motivation-music&quot;,&quot;rationale&quot;:&quot;Discusses what makes songs inspiring and worth pursuing as a solo musician, directly complementing the analysis here of what elements make a song &#39;work&#39;.&quot;},{&quot;slug&quot;:&quot;highs-and-lows-musician&quot;,&quot;rationale&quot;:&quot;Covers the real-world experience of producing music alone at home, giving concrete context to the abstract framework about carrying a song with just a few strong elements.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:576,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:887,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:575},&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;github&quot;,&quot;anchor_text&quot;:&quot;Github&quot;,&quot;context&quot;:&quot;a Github repository, and if you look in the history of this repo you can see that it was used there&quot;,&quot;rationale&quot;:&quot;The node discusses using Github for hosting the static site, and there is a dedicated node about Github in the garden.&quot;},{&quot;slug&quot;:&quot;Spotify&quot;,&quot;anchor_text&quot;:&quot;Spotify&quot;,&quot;context&quot;:&quot;it does an API lookup on Wikidata and grabs the Artist, Title, Release Year, Spotify ID (the best albums page includes Spotify embeds)&quot;,&quot;rationale&quot;:&quot;The node specifically mentions Spotify embeds as a feature of the site, and there is a dedicated node about Spotify.&quot;},{&quot;slug&quot;:&quot;javascript-typescript&quot;,&quot;anchor_text&quot;:&quot;Javascript&quot;,&quot;context&quot;:&quot;when the site loaded, the Javascript on the page would request the albums.json file, parse it&quot;,&quot;rationale&quot;:&quot;The node describes custom Javascript used to power the page&#39;s interactivity, and there is a dedicated node about Javascript/Typescript.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;Rainfall&quot;,&quot;rationale&quot;:&quot;Rainfall is also a custom website generator for hosting music/albums, making it a closely related project to Best Albums in the Universe in terms of purpose and technical approach.&quot;},{&quot;slug&quot;:&quot;more-about-blogging&quot;,&quot;rationale&quot;:&quot;That node mentions the Gemini version of Best Albums in the Universe as one of the first 50 Gemini sites, directly elaborating on something this node touches on.&quot;},{&quot;slug&quot;:&quot;dg-evergreen&quot;,&quot;rationale&quot;:&quot;This node describes the best albums list as &#39;a living document, just like this garden&#39;, which is exactly the evergreen principle discussed in that node.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1310,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:697,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:329},&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 we give&quot;,&quot;rationale&quot;:&quot;The node directly discusses free will as a concept, and there is a dedicated node for it in the garden.&quot;},{&quot;slug&quot;:&quot;philosophy&quot;,&quot;anchor_text&quot;:&quot;existentialism&quot;,&quot;context&quot;:&quot;I mean, why am I so obsessed with songwriting anyways? To speak again of existentialism, maybe I see my creative output&quot;,&quot;rationale&quot;:&quot;The philosophy node explicitly covers existentialism and the absurd, including a reference to Sisyphus which also appears in this node.&quot;},{&quot;slug&quot;:&quot;danger-third-rail&quot;,&quot;anchor_text&quot;:&quot;write a song&quot;,&quot;context&quot;:&quot;I never really believed in free will. I did manage to write about 20 songs in 2018&quot;,&quot;rationale&quot;:&quot;The songwriting project discussed here is the same Danger Third Rail recording project documented in the garden.&quot;},{&quot;slug&quot;:&quot;giving-up-on-resolutions&quot;,&quot;anchor_text&quot;:&quot;New Year&#39;s Resolution&quot;,&quot;context&quot;:&quot;I made a rather audacious New Year&#39;s Resolution: to write a song a day in 2018&quot;,&quot;rationale&quot;:&quot;The giving-up-on-resolutions node is a direct follow-up on the same theme of New Year&#39;s resolutions that this node opens with.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;another-year-without-resolutions&quot;,&quot;rationale&quot;:&quot;That node continues the same arc of reflecting on New Year&#39;s resolutions and the difficulty of sustaining creative goals over time.&quot;},{&quot;slug&quot;:&quot;new-year&quot;,&quot;rationale&quot;:&quot;The &#39;every day is New Year&#39;s Day&#39; perspective directly addresses the same existential framing around resolutions that this node wrestles with.&quot;},{&quot;slug&quot;:&quot;intrisic motivation&quot;,&quot;rationale&quot;:&quot;This node questions why the author is obsessed with songwriting at all, which connects directly to the garden&#39;s exploration of intrinsic vs extrinsic motivation for creative work.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:449,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:728,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:294},&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;His wife is named Abby and has her own node in the garden.&quot;},{&quot;slug&quot;:&quot;what-is-a-web-application&quot;,&quot;anchor_text&quot;:&quot;web app&quot;,&quot;context&quot;:&quot;If you want to edit your blog from any computer, isn&#39;t that just a web app that handles the blog?&quot;,&quot;rationale&quot;:&quot;There is a dedicated node explaining what a web application is, directly relevant to the concept being discussed here.&quot;},{&quot;slug&quot;:&quot;github&quot;,&quot;anchor_text&quot;:&quot;open source project&quot;,&quot;context&quot;:&quot;I had actually planned to find some open source project that I could contribute significantly to&quot;,&quot;rationale&quot;:&quot;The github node specifically discusses open source projects and contributing to them.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;blog&quot;,&quot;rationale&quot;:&quot;The node discusses an idea for building blogging software, which connects to the broader reflections on blogging in the blog node.&quot;},{&quot;slug&quot;:&quot;javascript-typescript&quot;,&quot;rationale&quot;:&quot;The node mentions Node.js as a potential technology for the blogging software idea, and the javascript-typescript node covers Node.js and related backend JavaScript technologies.&quot;},{&quot;slug&quot;:&quot;the-unattainable-and-the-attainable&quot;,&quot;rationale&quot;:&quot;This node opens with listening to Weezer, and the-unattainable-and-the-attainable specifically discusses Weezer&#39;s Blue Album in the context of music aspiration.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:587,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:864,&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/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 production&quot;,&quot;context&quot;:&quot;start taking music lessons, for mixing and mastering and Ableton Live production&quot;,&quot;rationale&quot;:&quot;The node mentions Ableton Live production directly, and there is a dedicated node for Ableton Live in the garden.&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, generally get things done at work&quot;,&quot;rationale&quot;:&quot;Abby is a named person with her own node in the garden, and she is mentioned directly here.&quot;},{&quot;slug&quot;:&quot;new-year&quot;,&quot;anchor_text&quot;:&quot;New Year&#39;s Day doesn&#39;t exist&quot;,&quot;context&quot;:&quot;The apparent corollary of that is that &#39;New Year&#39;s Day doesn&#39;t exist&#39;, which is the essential position&quot;,&quot;rationale&quot;:&quot;The &#39;Every day is New Year&#39;s Day&#39; node directly addresses this same philosophical position about New Year&#39;s Day.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;a-story-of-failure&quot;,&quot;rationale&quot;:&quot;This node discusses a past New Year&#39;s resolution (song a day in 2018) and the feelings around failing at it, which is directly relevant to the theme of resolutions here.&quot;},{&quot;slug&quot;:&quot;new-year-2025&quot;,&quot;rationale&quot;:&quot;This node also reflects on New Year&#39;s and continuous goals versus resolutions, extending the same themes discussed here.&quot;},{&quot;slug&quot;:&quot;danger-third-rail&quot;,&quot;rationale&quot;:&quot;The node mentions wanting to finish an album, and danger-third-rail is the music project that contextualizes that aspiration.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:480,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:344,&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;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;shout into [Mastodon](https://joinmastodon.org/)&quot;,&quot;context&quot;:&quot;I should blog something, I usually realize that it would do just as well to shout into Mastodon&quot;,&quot;rationale&quot;:&quot;The node discusses using Mastodon as an alternative to blogging, which directly connects to the node about Mastodon&#39;s nature and differences from Twitter.&quot;},{&quot;slug&quot;:&quot;dg-reverse&quot;,&quot;anchor_text&quot;:&quot;about blogging&quot;,&quot;context&quot;:&quot;All of my blog posts seem to have this morbid kind of self-deprecation to them. And they&#39;re all. about. blogging.&quot;,&quot;rationale&quot;:&quot;The reflexive observation about blog posts being about blogging connects to the node about reverse chronological sorting and blog post structure.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;more-about-blogging&quot;,&quot;rationale&quot;:&quot;That node also reflects on the nature and habits of blogging, making it a natural companion piece to this self-referential post about blogging.&quot;},{&quot;slug&quot;:&quot;blog-cycle&quot;,&quot;rationale&quot;:&quot;The blog cycle node discusses the tendency to endlessly write about blogging itself, directly paralleling this post&#39;s observation that all blog posts end up being about blogging.&quot;},{&quot;slug&quot;:&quot;font-of-creativity&quot;,&quot;rationale&quot;:&quot;That node explores the experience of needing to write without specific inspiration, mirroring this post&#39;s stream-of-consciousness writing exercise using song lyrics as prompts.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:722,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:331,&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;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;slug&quot;:&quot;wp-1.0&quot;,&quot;anchor_text&quot;:&quot;Wikipedia&quot;,&quot;context&quot;:&quot;This is why I give to Wikipedia, or soma fm, or the Internet Archive&quot;,&quot;rationale&quot;:&quot;The author is a major contributor to Wikipedia through the WP 1.0 project, making this a meaningful personal connection worth linking.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;about&quot;,&quot;rationale&quot;:&quot;The about page mentions the author&#39;s work on the Wikipedia WP 1.0 Bot and free tutoring, which connects to the philanthropy and giving-back themes in this node.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:349,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&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;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;slug&quot;:&quot;mastodon-is-not-twitter&quot;,&quot;anchor_text&quot;:&quot;Mastodon&quot;,&quot;context&quot;:&quot;my most popular medium post is this tutorial on how to set up your own Mastodon instance&quot;,&quot;rationale&quot;:&quot;The node on Mastodon elaborates on the platform mentioned in the context of the tutorial that got the most views.&quot;},{&quot;slug&quot;:&quot;blog&quot;,&quot;anchor_text&quot;:&quot;continue blogging&quot;,&quot;context&quot;:&quot;predicated on the idea that I actually should continue blogging in the first place&quot;,&quot;rationale&quot;:&quot;The blog node directly discusses the author&#39;s ambivalence about blogging and its value, which is the exact tension raised here.&quot;},{&quot;slug&quot;:&quot;dg-reverse&quot;,&quot;anchor_text&quot;:&quot;static site generator&quot;,&quot;context&quot;:&quot;Start a brand new blog with static site generator&quot;,&quot;rationale&quot;:&quot;The digital garden node on reverse chronological sorting discusses the pitfalls of blog/static site structures that this node is wrestling with.&quot;},{&quot;slug&quot;:&quot;digital-garden-itself&quot;,&quot;anchor_text&quot;:&quot;static site generators&quot;,&quot;context&quot;:&quot;do I use another static site generator? Then I have to go through the trouble&quot;,&quot;rationale&quot;:&quot;This garden itself is built with a static site generator, making the connection to that node directly relevant to the platform decision discussed here.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;blog-cycle&quot;,&quot;rationale&quot;:&quot;That node directly discusses the cycle of rebuilding or reconsidering blog platforms, which is the central topic of this node.&quot;},{&quot;slug&quot;:&quot;dg-evergreen&quot;,&quot;rationale&quot;:&quot;The concept of evergreen content versus blog posts is directly relevant to the author&#39;s question of whether to keep blogging at all.&quot;},{&quot;slug&quot;:&quot;draft&quot;,&quot;rationale&quot;:&quot;Draft was an online writing tool the author used extensively, providing another angle on the blogging platform evaluation discussed here.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1124,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:385,&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;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;slug&quot;:&quot;intrisic motivation&quot;,&quot;anchor_text&quot;:&quot;creative pursuits&quot;,&quot;context&quot;:&quot;makes it even more insulting if that&#39;s not the way this particular amateur feels about his creative pursuits&quot;,&quot;rationale&quot;:&quot;The intrinsic motivation node directly addresses what drives (or fails to drive) the author&#39;s creative work, making it a natural elaboration of the self-doubt expressed here.&quot;},{&quot;slug&quot;:&quot;danger-third-rail&quot;,&quot;anchor_text&quot;:&quot;hand to instrument&quot;,&quot;context&quot;:&quot;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&quot;,&quot;rationale&quot;:&quot;The author&#39;s music project is the primary &#39;instrument&#39; context for his creative output and directly illustrates the creative tension described.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;empty-mind&quot;,&quot;rationale&quot;:&quot;That node describes the exact opposite experience — a complete lack of creative output — making it a strong thematic counterpoint to this node&#39;s exploration of a potential &#39;font of creativity&#39;.&quot;},{&quot;slug&quot;:&quot;something-terrible&quot;,&quot;rationale&quot;:&quot;That node introduces the &#39;Make Something Terrible Challenge&#39; as a way to unlock creative flow, directly relevant to the question of how to &#39;open the tap&#39; of creativity.&quot;},{&quot;slug&quot;:&quot;not-quite-writers-block&quot;,&quot;rationale&quot;:&quot;That node explores similar creative struggles around writing and producing songs, overlapping closely with this node&#39;s meditation on creative drive.&quot;},{&quot;slug&quot;:&quot;nike-the-shit-out-of-it&quot;,&quot;rationale&quot;:&quot;That node is about the tension between wanting to create and not actually doing it, which is the central anxiety of this node&#39;s closing lines.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:647,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:1181,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:819},&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. I could always be writing music&quot;,&quot;rationale&quot;:&quot;The node directly references the WP 1.0 Wikipedia project, which has its own dedicated garden node.&quot;},{&quot;slug&quot;:&quot;gemini&quot;,&quot;anchor_text&quot;:&quot;Gemini site&quot;,&quot;context&quot;:&quot;my list of the best albums in the universe which I did recently convert to be served concurrently as a Gemini site&quot;,&quot;rationale&quot;:&quot;The body explicitly references the Gemini protocol/site, which has a dedicated garden node explaining what Gemini is.&quot;},{&quot;slug&quot;:&quot;intrisic motivation&quot;,&quot;anchor_text&quot;:&quot;Lack of motivation&quot;,&quot;context&quot;:&quot;All the same mechanisms are at work that keep you from doing those things. Lack of motivation, enthusiasm, know-how, mentorship, etc.&quot;,&quot;rationale&quot;:&quot;The node touches on motivation as a key barrier to productivity, and the Intrinsic Motivation node directly explores this theme in depth.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;the-chain&quot;,&quot;rationale&quot;:&quot;The Chain node discusses the Seinfeld productivity strategy for habit-building, which is directly adjacent to the GTD systems and todo apps critiqued in this node.&quot;},{&quot;slug&quot;:&quot;giving-up-on-resolutions&quot;,&quot;rationale&quot;:&quot;That node explores the same skepticism about aspirational goal-setting systems, closely mirroring this node&#39;s point about todo apps filled with dreams that will never happen.&quot;},{&quot;slug&quot;:&quot;new-year&quot;,&quot;rationale&quot;:&quot;The New Year node reflects on real change being sporadic rather than system-driven, which elaborates on this node&#39;s skepticism of GTD and organized productivity.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:662,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:933,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:552},&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, it is a Wednesday&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;The node &#39;Every day is New Year&#39;s Day&#39; directly elaborates on this exact philosophy about treating every day as New Year&#39;s Day.&quot;},{&quot;slug&quot;:&quot;free will&quot;,&quot;anchor_text&quot;:&quot;things are basically fine and I should just let what happens happen&quot;,&quot;context&quot;:&quot;I think I&#39;m more attracted to the mode of thinking that things are basically fine and I should just let what happens happen.&quot;,&quot;rationale&quot;:&quot;This fatalistic outlook connects to the free will node, which explores similar ideas about determinism and agency.&quot;},{&quot;slug&quot;:&quot;javascript-typescript&quot;,&quot;anchor_text&quot;:&quot;tutoring a new friend in Javascript&quot;,&quot;context&quot;:&quot;or tutoring a new friend in Javascript in the new year. But those are just things I kind of want to do anyway.&quot;,&quot;rationale&quot;:&quot;The mention of tutoring in Javascript links naturally to the Javascript/Typescript node in the garden.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;another-year-without-resolutions&quot;,&quot;rationale&quot;:&quot;This node is a direct follow-up to the same theme of giving up on New Year&#39;s resolutions and would provide meaningful continuity.&quot;},{&quot;slug&quot;:&quot;new-year&quot;,&quot;rationale&quot;:&quot;&#39;Every day is New Year&#39;s Day&#39; expands on the exact philosophy referenced in this node about treating every day as a fresh start.&quot;},{&quot;slug&quot;:&quot;philosophy&quot;,&quot;rationale&quot;:&quot;The fatalistic, quasi-existentialist outlook expressed here overlaps with the philosophy node&#39;s discussion of determinism and free will.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:431,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:366,&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;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;Both nodes explore the theme of nostalgia and the impossibility of recapturing past experiences and social connections.&quot;},{&quot;slug&quot;:&quot;pandemic-weary&quot;,&quot;rationale&quot;:&quot;Both nodes touch on loss of social activities and the melancholy of missing gatherings and community that once existed.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:391,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:87,&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;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;YouTube&quot;,&quot;anchor_text&quot;:&quot;YouTube&quot;,&quot;context&quot;:&quot;I sent a cold email to someone who has 90k subscribers on YouTube, asking if they could maybe give me music production lessons&quot;,&quot;rationale&quot;:&quot;The node directly references YouTube as the platform where the person the author emailed has their following.&quot;},{&quot;slug&quot;:&quot;danger-third-rail&quot;,&quot;anchor_text&quot;:&quot;Danger Third Rail EP&quot;,&quot;context&quot;:&quot;the difference between the demos on this site and the songs which I had made into my Danger Third Rail EP&quot;,&quot;rationale&quot;:&quot;The node explicitly discusses the Danger Third Rail EP as a distinct, professionally produced body of work, which is the subject of the danger-third-rail node.&quot;},{&quot;slug&quot;:&quot;Fiverr&quot;,&quot;anchor_text&quot;:&quot;professionally mixed and mastered&quot;,&quot;context&quot;:&quot;They also got professionally mixed and mastered. So I think those tracks in particular are going to sound the best&quot;,&quot;rationale&quot;:&quot;The danger-third-rail node explains that professional mixing and mastering was done via Fiverr, making this a relevant elaboration point.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;not-quite-writers-block&quot;,&quot;rationale&quot;:&quot;That node explicitly references this node at its opening, discussing the same belief about needing to write hundreds of songs before producing great material.&quot;},{&quot;slug&quot;:&quot;a-story-of-failure&quot;,&quot;rationale&quot;:&quot;Discusses the author&#39;s experience frantically releasing songs (a song a day in 2018), directly paralleling the methodology shifts described here.&quot;},{&quot;slug&quot;:&quot;motivation-music&quot;,&quot;rationale&quot;:&quot;Explores the motivation behind making music as the sole member of Danger Third Rail, which connects to the self-assessment of quality and quantity discussed here.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:937,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:937,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:569},&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;slug&quot;:&quot;YouTube&quot;,&quot;anchor_text&quot;:&quot;coding at my job&quot;,&quot;context&quot;:&quot;I listen to music all day long while coding at my job. It&#39;s extremely satisfying&quot;,&quot;rationale&quot;:&quot;The author works at YouTube, so linking &#39;coding at my job&#39; to the YouTube node adds personal context.&quot;},{&quot;slug&quot;:&quot;intrisic motivation&quot;,&quot;anchor_text&quot;:&quot;zone/flow moments&quot;,&quot;context&quot;:&quot;especially when you get into those zone/flow moments&quot;,&quot;rationale&quot;:&quot;The &#39;flow&#39; state during coding relates directly to intrinsic motivation, which the author explores in that node.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;songwriting-reflections&quot;,&quot;rationale&quot;:&quot;Discusses the author&#39;s deep relationship with music and what makes songs emotionally resonant, complementing the idea of being moved by music while doing other things.&quot;},{&quot;slug&quot;:&quot;genre-thoughts&quot;,&quot;rationale&quot;:&quot;Explores what kinds of music the author listens to, providing context for the music being listened to in this node.&quot;},{&quot;slug&quot;:&quot;blogging-but-this-time-with-blogging&quot;,&quot;rationale&quot;:&quot;That node also experiments with writing while listening to music, using song lyrics as creative prompts, directly echoing the app idea described here.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:270,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:266,&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;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;github&quot;,&quot;anchor_text&quot;:&quot;Github&quot;,&quot;context&quot;:&quot;I called it Butterfly Catcher and it&#39;s still available on Github.&quot;,&quot;rationale&quot;:&quot;The node explicitly references GitHub as a hosting platform for the Butterfly Catcher project, and there is a dedicated node about GitHub in the garden.&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 implementation&quot;,&quot;rationale&quot;:&quot;Python Flask is a direct mention of the Python programming language ecosystem, which has its own dedicated garden node.&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 &#39;API client&#39; which just basically imported the right libraries&quot;,&quot;rationale&quot;:&quot;The node mentions releasing a Ruby API client, and there is a dedicated Ruby on Rails node in the garden covering the author&#39;s Ruby experience.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;q-poker-in-progress&quot;,&quot;rationale&quot;:&quot;Q Poker is another unfinished game/programming project by the same author, and that node explicitly references making-a-computer-game, making the two nodes natural companions.&quot;},{&quot;slug&quot;:&quot;intrisic motivation&quot;,&quot;rationale&quot;:&quot;The node&#39;s closing question &#39;what&#39;s stopping me?&#39; and the pattern of pursuing gamedev &#39;in fits and starts, as a hobby, never particularly successfully&#39; directly echoes the intrinsic motivation struggles described in that node.&quot;},{&quot;slug&quot;:&quot;vibe coding&quot;,&quot;rationale&quot;:&quot;The author has since embraced vibe coding extensively, which could be a potential new avenue for finally building one of these long-gestating game ideas.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1470,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:1002,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:633},&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;Mastodon instances&quot;,&quot;context&quot;:&quot;the size of the user base of Mastodon instances has grown 3x as part of the greatest Twitter exodus&quot;,&quot;rationale&quot;:&quot;ActivityPub is the underlying protocol that powers Mastodon, and that node explains the technical infrastructure behind Mastodon instances.&quot;},{&quot;slug&quot;:&quot;dg-solo&quot;,&quot;anchor_text&quot;:&quot;going viral&quot;,&quot;context&quot;:&quot;You will never go viral on Mastodon. But the truth of it is, you were never going to go viral on Twitter either.&quot;,&quot;rationale&quot;:&quot;The dg-solo node discusses the tension between wanting attention on the internet and being okay without it, which directly relates to the appeal of going viral.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;activity-pub&quot;,&quot;rationale&quot;:&quot;The ActivityPub node explains the technical protocol underpinning Mastodon and the fediverse, providing deeper context for how Mastodon&#39;s decentralized architecture makes it structurally different from Twitter.&quot;},{&quot;slug&quot;:&quot;dg-solo&quot;,&quot;rationale&quot;:&quot;This node discusses not needing attention or virality to thrive, which is thematically aligned with the argument that Mastodon&#39;s non-viral nature is actually a feature.&quot;},{&quot;slug&quot;:&quot;blogging-but-this-time-with-blogging&quot;,&quot;rationale&quot;:&quot;That node discusses Mastodon as an alternative outlet to blogging, extending the conversation about where and how one shares content online.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:814,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:330,&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;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;dg-reverse&quot;,&quot;anchor_text&quot;:&quot;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;The node on reverse chronological sorting is directly relevant to the author&#39;s repeated reflections on blogging habits and dissatisfaction with the blog format.&quot;},{&quot;slug&quot;:&quot;digital-gardening-principles&quot;,&quot;anchor_text&quot;:&quot;desire to blog&quot;,&quot;context&quot;:&quot;But I&#39;ve always had this desire to blog. It&#39;s like my vague desire to use a Zettelkasten&quot;,&quot;rationale&quot;:&quot;The digital gardening principles node explains why the author eventually moved from blogging to a digital garden, directly contextualizing this desire.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;dg-evergreen&quot;,&quot;rationale&quot;:&quot;This node discusses why digital gardens differ from blogs, elaborating on the tension between blogging and more persistent writing that this node touches on.&quot;},{&quot;slug&quot;:&quot;blog-cycle&quot;,&quot;rationale&quot;:&quot;That node reflects on the nature of blogging platforms and authoring, directly extending the themes of this node about the desire to blog but struggling with content.&quot;},{&quot;slug&quot;:&quot;blogging-but-this-time-with-blogging&quot;,&quot;rationale&quot;:&quot;That node also laments the difficulty of finding content to blog about and the relationship between blogging and other platforms, closely mirroring this node&#39;s themes.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:515,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:308,&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;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;had structured all of my projects as an Ableton Live main project for recording audio and using audio plugins&quot;,&quot;rationale&quot;:&quot;The node discusses Ableton Live extensively as the central DAW in the affected workflow, and a garden node exists specifically about Ableton Live.&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 I could automate a solution&quot;,&quot;rationale&quot;:&quot;The node references vibe coding as a potential solution to the file recovery problem, and a dedicated garden node on vibe coding exists.&quot;},{&quot;slug&quot;:&quot;recording-setup&quot;,&quot;anchor_text&quot;:&quot;a dedicated music making computer&quot;,&quot;context&quot;:&quot;I should just have a dedicated music making computer that&#39;s not even connected to the internet&quot;,&quot;rationale&quot;:&quot;The idea of a dedicated music computer directly relates to the recording-setup node which describes the author&#39;s actual current studio configuration.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;ableton-12&quot;,&quot;rationale&quot;:&quot;Directly about upgrading Ableton Live and the anxiety/procrastination around doing so, forming a natural companion piece to this node&#39;s discussion of upgrade-related project loss.&quot;},{&quot;slug&quot;:&quot;highs-and-lows-musician&quot;,&quot;rationale&quot;:&quot;Covers the broader history of the author&#39;s digital music production journey, providing context for the decade of projects described as lost ephemera here.&quot;},{&quot;slug&quot;:&quot;danger-third-rail&quot;,&quot;rationale&quot;:&quot;The music projects discussed as ephemera are the source material for Danger Third Rail, making this node a direct backstory for that one.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1557,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:1210,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:840},&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;have it done on Fiverr like I did last time (or some combination of the two)&quot;,&quot;rationale&quot;:&quot;Fiverr is a node in the garden and is directly referenced as a service used for album artwork.&quot;},{&quot;slug&quot;:&quot;Bandcamp&quot;,&quot;anchor_text&quot;:&quot;Bandcamp&quot;,&quot;context&quot;:&quot;Follow Danger Third Rail on Bandcamp to get the official word when the new EP is available&quot;,&quot;rationale&quot;:&quot;Bandcamp is a node in the garden and is directly linked to the artist&#39;s music distribution.&quot;},{&quot;slug&quot;:&quot;recording-setup&quot;,&quot;anchor_text&quot;:&quot;new setup that I&#39;ve recently learned works better&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 recording-setup node covers the author&#39;s studio configuration, which is directly relevant to the vocal re-recording mentioned here.&quot;},{&quot;slug&quot;:&quot;YouTube&quot;,&quot;anchor_text&quot;:&quot;YouTube&quot;,&quot;context&quot;:&quot;make YouTube lyric (or otherwise) videos for each one of the songs&quot;,&quot;rationale&quot;:&quot;YouTube is a node in the garden and is explicitly mentioned as a planned promotional platform.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;intrisic motivation&quot;,&quot;rationale&quot;:&quot;The node discusses fear and commitment around promoting music, which connects to the garden&#39;s exploration of intrinsic vs extrinsic motivation in creative work.&quot;},{&quot;slug&quot;:&quot;motivation-music&quot;,&quot;rationale&quot;:&quot;This node directly addresses motivation for writing and producing music as a solo artist under the Danger Third Rail project.&quot;},{&quot;slug&quot;:&quot;highs-and-lows-musician&quot;,&quot;rationale&quot;:&quot;This node covers the author&#39;s history of recording music and the formation of Danger Third Rail, providing deeper context for the EP announcement.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:614,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:387,&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;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;dg-evergreen&quot;,&quot;anchor_text&quot;:&quot;digital garden&quot;,&quot;context&quot;:&quot;Part of the goal of starting a digital garden was to recognize that things like my writing&quot;,&quot;rationale&quot;:&quot;The node references the core concept of digital gardens being evergreen and unfinished, which is directly covered in the dg-evergreen node.&quot;},{&quot;slug&quot;:&quot;intrisic motivation&quot;,&quot;anchor_text&quot;:&quot;do I really want to do those things&quot;,&quot;context&quot;:&quot;do I really want to do those things, or is it enough for me to talk about doing them&quot;,&quot;rationale&quot;:&quot;The node&#39;s question about whether the author truly wants to accomplish goals directly relates to the intrinsic vs extrinsic motivation node.&quot;},{&quot;slug&quot;:&quot;free will&quot;,&quot;anchor_text&quot;:&quot;free will&quot;,&quot;context&quot;:&quot;I honestly don&#39;t believe in [[philosophy|free will]] or any purpose to life&quot;,&quot;rationale&quot;:&quot;The node already links philosophy but &#39;free will&#39; is its own dedicated node in the garden that should be directly linked here.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;the-chain&quot;,&quot;rationale&quot;:&quot;This node discusses the difficulty of following through on intentions and procrastination, which directly parallels the Seinfeld Strategy for habit-building discussed in the-chain node.&quot;},{&quot;slug&quot;:&quot;new-year-2025&quot;,&quot;rationale&quot;:&quot;The new-year-2025 node is a direct companion piece reflecting on the same themes of New Year&#39;s Day and resolutions discussed here.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1004,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&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;:0},&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;guitar-driven rock songs&quot;,&quot;context&quot;:&quot;I feel more at ease creating guitar-driven rock songs than any EDM pieces&quot;,&quot;rationale&quot;:&quot;The genre-thoughts node is directly about the tension between the genres one listens to and the music one produces, exactly the topic being discussed here.&quot;},{&quot;slug&quot;:&quot;mastodon-is-not-twitter&quot;,&quot;anchor_text&quot;:&quot;Mastodon&quot;,&quot;context&quot;:&quot;I publish it on my song demos website and toot about it on Mastodon (sometimes I also tweet it)&quot;,&quot;rationale&quot;:&quot;The mastodon-is-not-twitter node discusses using Mastodon as a platform for sharing creative work, which is directly what this node references.&quot;},{&quot;slug&quot;:&quot;intrisic motivation&quot;,&quot;anchor_text&quot;:&quot;external encouragement or engagement&quot;,&quot;context&quot;:&quot;I know I can&#39;t depend on external encouragement or engagement to drive my songwriting&quot;,&quot;rationale&quot;:&quot;The intrinsic motivation node is specifically about the author&#39;s realization that he is driven by extrinsic rather than intrinsic motivation, which is the exact problem described in this passage.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;motivation-music&quot;,&quot;rationale&quot;:&quot;That node is explicitly about motivation for writing and producing music as the sole member of Danger Third Rail, directly elaborating on the lack of focus and drive described here.&quot;},{&quot;slug&quot;:&quot;nike-the-shit-out-of-it&quot;,&quot;rationale&quot;:&quot;This node is about the same struggle of not finishing or publishing songs and needing to just push through, making it a natural companion piece.&quot;},{&quot;slug&quot;:&quot;fake-it-music&quot;,&quot;rationale&quot;:&quot;Discusses the unique challenges of being a solo music producer without a full band, which contextualizes the difficulty of staying motivated described here.&quot;},{&quot;slug&quot;:&quot;the-chain&quot;,&quot;rationale&quot;:&quot;The Seinfeld strategy for building creative habits addresses the exact problem of maintaining consistent songwriting motivation discussed in this node.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:775,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:1485,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:1057},&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;DBT&quot;,&quot;anchor_text&quot;:&quot;clinically depressed&quot;,&quot;context&quot;:&quot;I&#39;m not sure if I&#39;m actually depressed. I&#39;ve been clinically depressed in the past&quot;,&quot;rationale&quot;:&quot;DBT is a therapy directly relevant to clinical depression and the emotional regulation struggles described in this node.&quot;},{&quot;slug&quot;:&quot;intrisic motivation&quot;,&quot;anchor_text&quot;:&quot;interests and activities to look forward to pursuing&quot;,&quot;context&quot;:&quot;I recall a time, once, when maybe I had interests and activities to look forward to pursuing&quot;,&quot;rationale&quot;:&quot;The node on intrinsic motivation directly addresses the loss of drive and internal motivation that the author is describing here.&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;YouTube is a named node in the garden and is directly referenced in this passage.&quot;},{&quot;slug&quot;:&quot;Abby&quot;,&quot;anchor_text&quot;:&quot;my wife&quot;,&quot;context&quot;:&quot;I marvel at my wife&#39;s ability to click another YouTube video&quot;,&quot;rationale&quot;:&quot;The author&#39;s wife Abby is a named node in the garden and is being directly referenced here.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;empty-mind&quot;,&quot;rationale&quot;:&quot;Empty Mind describes a very similar state of creative paralysis and inability to engage with hobbies or projects, closely mirroring the pandemic-weary feelings described here.&quot;},{&quot;slug&quot;:&quot;coping-skills&quot;,&quot;rationale&quot;:&quot;Coping Skills directly addresses the question this node ends on — what is to be done with difficult feelings — making it a natural elaboration.&quot;},{&quot;slug&quot;:&quot;intrisic motivation&quot;,&quot;rationale&quot;:&quot;The intrinsic motivation node explores why the author struggles to engage with activities, which elaborates on the loss of interest described in this node.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:418,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:379,&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;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;in Python&quot;,&quot;context&quot;:&quot;Backend game logic, in Python, where you can start and finish Hands (of Razz)&quot;,&quot;rationale&quot;:&quot;The node repeatedly references Python as the backend language, and there is a dedicated Python node in the garden.&quot;},{&quot;slug&quot;:&quot;javascript-typescript&quot;,&quot;anchor_text&quot;:&quot;ReactJS frontend app&quot;,&quot;context&quot;:&quot;ReactJS frontend app which responds to and displays the Table state changes from the backend&quot;,&quot;rationale&quot;:&quot;The ReactJS frontend is a JavaScript application, and the javascript-typescript node covers JS/TS development in the garden.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;vibe coding&quot;,&quot;rationale&quot;:&quot;The bot implementation challenge (CFR, AI poker bots) and the complexity of generalizing algorithms could relate to vibe coding as a potential approach to rapidly prototyping game logic.&quot;},{&quot;slug&quot;:&quot;making-a-computer-game&quot;,&quot;rationale&quot;:&quot;This node is a direct continuation of the making-a-computer-game post and shares substantial thematic overlap around game development challenges and approaches.&quot;},{&quot;slug&quot;:&quot;wp-1.0&quot;,&quot;rationale&quot;:&quot;WP 1.0 is another substantial Python project by the same author, and its development experiences (async logic, persistence) may offer useful parallels to Q Poker&#39;s backend work.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:996,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:681,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:391},&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;The javascript-typescript node is the main dedicated node for this topic and directly elaborates on Typescript as covered here.&quot;},{&quot;slug&quot;:&quot;what-is-a-web-application&quot;,&quot;anchor_text&quot;:&quot;web browsers&quot;,&quot;context&quot;:&quot;It is interpreted by web browsers in order to process and display data on web pages.&quot;,&quot;rationale&quot;:&quot;The what-is-a-web-application node explains web applications and browsers in depth, directly relevant to how Javascript is used.&quot;},{&quot;slug&quot;:&quot;programming languages&quot;,&quot;anchor_text&quot;:&quot;programming language&quot;,&quot;context&quot;:&quot;Javascript is a programming language that is used primarily on the web.&quot;,&quot;rationale&quot;:&quot;The programming languages meta node ties together all the language nodes in the garden, including Javascript/Typescript.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;javascript-typescript&quot;,&quot;rationale&quot;:&quot;The javascript-typescript node is the primary dedicated treatment of Javascript and Typescript in this garden and covers much of the same ground in greater depth.&quot;},{&quot;slug&quot;:&quot;what-programming-language-should-i-learn&quot;,&quot;rationale&quot;:&quot;That node discusses which programming language to learn first and specifically mentions Javascript, directly complementing this introductory overview.&quot;},{&quot;slug&quot;:&quot;Vue.js&quot;,&quot;rationale&quot;:&quot;Vue.js is a Javascript/Typescript framework discussed in its own node, providing a concrete example of Javascript usage on the frontend mentioned here.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:380,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:326,&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;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;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&quot;,&quot;rationale&quot;:&quot;This node directly expands on the &#39;just do it&#39; philosophy applied to songwriting, making it a natural extension of the point being made here.&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 specifically about listening to music while coding, directly mirroring the habit described here.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;genre-thoughts&quot;,&quot;rationale&quot;:&quot;That node explicitly explores the relationship between the music one listens to and one&#39;s ability to write in that genre, a direct elaboration of this node&#39;s point about being &#39;steeped heavily in the music of their times&#39;.&quot;},{&quot;slug&quot;:&quot;motivation-music&quot;,&quot;rationale&quot;:&quot;That node digs into the motivational dynamics of listening to music as a music producer, complementing this node&#39;s question about whether critical listening can be forced.&quot;},{&quot;slug&quot;:&quot;not-quite-writers-block&quot;,&quot;rationale&quot;:&quot;That node explores the same tension between creative aspiration and output, including the idea that the problem may be an excuse rather than a true block.&quot;},{&quot;slug&quot;:&quot;intrisic motivation&quot;,&quot;rationale&quot;:&quot;This node ends by wondering if the &#39;out&#39; it describes is really just avoidance; the intrinsic motivation node directly addresses why extrinsic-driven creatives struggle to self-start.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:505,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:837,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:438},&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;slug&quot;:&quot;YouTube&quot;,&quot;anchor_text&quot;:&quot;YouTube video&quot;,&quot;context&quot;:&quot;I saw a YouTube video that talked about this and used the JFK&quot;,&quot;rationale&quot;:&quot;The node references a YouTube video as a source of inspiration, and the YouTube slug is a node about YouTube itself where the author works.&quot;},{&quot;slug&quot;:&quot;blog&quot;,&quot;anchor_text&quot;:&quot;writing/blogging&quot;,&quot;context&quot;:&quot;anything close to max level in writing/blogging, besides having done it especially sporadically since 2003&quot;,&quot;rationale&quot;:&quot;The node explicitly references the author&#39;s blogging history, and the blog node covers that topic directly.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;songwriting-reflections&quot;,&quot;rationale&quot;:&quot;This node muses on song lyrics and Paul McCartney&#39;s songwriting, and songwriting-reflections dives deeply into the author&#39;s own philosophy on lyrics, melody, and musical craft.&quot;},{&quot;slug&quot;:&quot;motivation-music&quot;,&quot;rationale&quot;:&quot;The node wonders why Paul McCartney stopped having hits and whether skills atrophy, which directly parallels the motivation-music node&#39;s analysis of what drives (or blocks) music creation.&quot;},{&quot;slug&quot;:&quot;font-of-creativity&quot;,&quot;rationale&quot;:&quot;Both nodes explore the compulsion to create and the relationship between creative desire and output, making them natural companions.&quot;},{&quot;slug&quot;:&quot;intrisic motivation&quot;,&quot;rationale&quot;:&quot;The node&#39;s central metaphor of being &#39;max level&#39; with no desire to do side quests maps closely onto the intrinsic vs extrinsic motivation discussion in that node.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:938,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:1068,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:735},&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;The node directly names Ableton Live, which has its own dedicated node in the garden.&quot;},{&quot;slug&quot;:&quot;not-quite-writers-block&quot;,&quot;anchor_text&quot;:&quot;writer&#39;s block&quot;,&quot;context&quot;:&quot;One of my students was having trouble with writer&#39;s block of sorts&quot;,&quot;rationale&quot;:&quot;There is a dedicated node about writer&#39;s block in music production that directly relates to this node&#39;s central topic.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;fake-it-music&quot;,&quot;rationale&quot;:&quot;That node explores the idea that not every part of a song has to be perfect, which closely parallels the &#39;Make Something Terrible&#39; philosophy discussed here.&quot;},{&quot;slug&quot;:&quot;font-of-creativity&quot;,&quot;rationale&quot;:&quot;That node reflects on creative blocks and the struggle to produce output, directly relating to the writer&#39;s block and permission-to-create themes here.&quot;},{&quot;slug&quot;:&quot;intrisic motivation&quot;,&quot;rationale&quot;:&quot;The existential crisis at the end of this node—questioning whether making terrible music is even possible—connects to the intrinsic motivation themes explored in that node.&quot;},{&quot;slug&quot;:&quot;highs-and-lows-musician&quot;,&quot;rationale&quot;:&quot;That node chronicles the author&#39;s long experience with home music production, providing broader context for the tutoring and production habits described here.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:707,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:742,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:427},&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;slug&quot;:&quot;danger-third-rail&quot;,&quot;anchor_text&quot;:&quot;my music&quot;,&quot;context&quot;:&quot;Maybe that&#39;s why I like power chords so much in my music, because they&#39;re ambiguous&quot;,&quot;rationale&quot;:&quot;The node refers to the author&#39;s personal music, which is produced under the Danger Third Rail project.&quot;},{&quot;slug&quot;:&quot;genre-thoughts&quot;,&quot;anchor_text&quot;:&quot;rock, pop and especially not EDM music&quot;,&quot;context&quot;:&quot;that&#39;s not how most rock, pop and especially not EDM music works&quot;,&quot;rationale&quot;:&quot;The genre-thoughts node directly addresses the author&#39;s reflections on the types of music they listen to versus produce, closely paralleling this discussion.&quot;},{&quot;slug&quot;:&quot;fake-it-music&quot;,&quot;anchor_text&quot;:&quot;basic harmonic chords&quot;,&quot;context&quot;:&quot;found the basic harmonic chords that made up songs and would just strum the chords&quot;,&quot;rationale&quot;:&quot;The fake-it-music node discusses the challenges of arranging and recording as a solo musician, which connects to the reflection on simplified acoustic guitar treatment of songs.&quot;},{&quot;slug&quot;:&quot;ableton&quot;,&quot;anchor_text&quot;:&quot;song writing&quot;,&quot;context&quot;:&quot;reflecting on some aspects of my own song writing here&quot;,&quot;rationale&quot;:&quot;Ableton Live is the DAW the author uses for songwriting and music production, directly relevant to their music-making process.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;genre-thoughts&quot;,&quot;rationale&quot;:&quot;That node elaborates on the disconnect between the music the author listens to and what they find easy to produce, directly extending the themes of songwriting identity discussed here.&quot;},{&quot;slug&quot;:&quot;the-unattainable-and-the-attainable&quot;,&quot;rationale&quot;:&quot;It discusses specific albums and harmonic qualities that inspire or intimidate the author, complementing the reflections on tonality and musical influence in this node.&quot;},{&quot;slug&quot;:&quot;motivation-music&quot;,&quot;rationale&quot;:&quot;That node explores what motivates the author to write and produce music, which is a natural extension of the songwriting self-reflection here.&quot;},{&quot;slug&quot;:&quot;highs-and-lows-musician&quot;,&quot;rationale&quot;:&quot;It chronicles the author&#39;s history of writing and recording music, providing biographical context that enriches the personal reflections in this node.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:780,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:468,&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;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;intrisic motivation&quot;,&quot;anchor_text&quot;:&quot;desire to procrastinate&quot;,&quot;context&quot;:&quot;the desire to procrastinate, the perceived pain of working on your project, is overcome simply&quot;,&quot;rationale&quot;:&quot;The Chain strategy directly relates to overcoming procrastination through motivation, which is the core topic of the Intrinsic Motivation node.&quot;},{&quot;slug&quot;:&quot;getting-nothing-done&quot;,&quot;anchor_text&quot;:&quot;commit to consistently blog&quot;,&quot;context&quot;:&quot;I think it&#39;s the fact that I&#39;ve tried to consistently blog before, and it always ends in so many tears&quot;,&quot;rationale&quot;:&quot;The Getting Nothing Done node discusses productivity systems and why they often fail, directly relevant to the author&#39;s reflection on their inability to maintain The Chain.&quot;},{&quot;slug&quot;:&quot;new-year&quot;,&quot;anchor_text&quot;:&quot;building a habit&quot;,&quot;context&quot;:&quot;You might have heard of the so-called Seinfeld Strategy for sticking to something and building a habit&quot;,&quot;rationale&quot;:&quot;The Every Day is New Year&#39;s Day node discusses real change being gradual and sporadic rather than tied to commitments, which connects thematically to habit-building strategies like The Chain.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;a-story-of-failure&quot;,&quot;rationale&quot;:&quot;Describes a failed attempt at a daily creative commitment (song a day), which is thematically identical to the author&#39;s fears about breaking The Chain.&quot;},{&quot;slug&quot;:&quot;giving-up-on-resolutions&quot;,&quot;rationale&quot;:&quot;Discusses the ineffectiveness of committing to consistent habits/resolutions, directly relevant to the author&#39;s ambivalence about committing to The Chain.&quot;},{&quot;slug&quot;:&quot;nike-the-shit-out-of-it&quot;,&quot;rationale&quot;:&quot;Also deals with the struggle to maintain consistent creative output and the difficulty of just doing the work regularly.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:709,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:384,&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;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;fake-it-music&quot;,&quot;anchor_text&quot;:&quot;fake it &#39;till I make it&quot;,&quot;context&quot;:&quot;could I **write** this record in my recording studio/kitchen today?&#92;&quot; ...could I &#92;&quot;fake it &#39;till I make it&#92;&quot; with what I have&quot;,&quot;rationale&quot;:&quot;The node &#39;fake-it-music&#39; directly addresses the concept of faking instrument parts as a solo musician, which is exactly what this passage is about.&quot;},{&quot;slug&quot;:&quot;recording-setup&quot;,&quot;anchor_text&quot;:&quot;recording studio/kitchen&quot;,&quot;context&quot;:&quot;could I **write** this record in my recording studio/kitchen today?&#92;&quot; I think that&#39;s a more salient question&quot;,&quot;rationale&quot;:&quot;The &#39;recording-setup&#39; node describes the author&#39;s actual kitchen-based recording studio, directly matching the phrase used here.&quot;},{&quot;slug&quot;:&quot;songwriting-reflections&quot;,&quot;anchor_text&quot;:&quot;lyricism in music&quot;,&quot;context&quot;:&quot;I haven&#39;t always given much credit to lyricism in music. I know, intellectually, that most people&quot;,&quot;rationale&quot;:&quot;The &#39;songwriting-reflections&#39; node discusses the author&#39;s thoughts on lyrics, melody, and hooks in songwriting, closely matching this passage&#39;s reflection on lyrics.&quot;},{&quot;slug&quot;:&quot;danger-third-rail&quot;,&quot;anchor_text&quot;:&quot;my &#92;&quot;signature sound&#92;&quot;&quot;,&quot;context&quot;:&quot;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.&quot;,&quot;rationale&quot;:&quot;This is a direct reference to the author&#39;s recording project Danger Third Rail, which has its own node.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;genre-thoughts&quot;,&quot;rationale&quot;:&quot;That node discusses the tension between the rock music the author listens to and the music production environment available, directly paralleling this node&#39;s exploration of making punk records at home.&quot;},{&quot;slug&quot;:&quot;highs-and-lows-musician&quot;,&quot;rationale&quot;:&quot;That node covers the author&#39;s history of home studio music production and band formation challenges, elaborating on the constraints discussed here.&quot;},{&quot;slug&quot;:&quot;motivation-music&quot;,&quot;rationale&quot;:&quot;That node discusses what makes the author want to create music and the relationship between inspiring records and personal output, extending the theme of aspiring to make records like Insomniac or Blurryface.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:914,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:807,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:314},&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;like those vacuum cleaners with fake noise added so that people believe they&#39;re working (look it up on YouTube)&quot;,&quot;rationale&quot;:&quot;The node references YouTube directly by name, and a node for YouTube exists in the garden.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;intrisic motivation&quot;,&quot;rationale&quot;:&quot;The email reflects on attention-seeking and external validation as drivers of behavior, which directly relates to the node&#39;s discussion of extrinsic vs. intrinsic motivation.&quot;},{&quot;slug&quot;:&quot;dg-solo&quot;,&quot;rationale&quot;:&quot;This node&#39;s theme of craving contact and validation from others echoes the garden principle about not needing external attention to thrive, making it a meaningful conceptual counterpoint.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:567,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:171,&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;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;slug&quot;:&quot;javascript-typescript&quot;,&quot;anchor_text&quot;:&quot;programs run on the server&quot;,&quot;context&quot;:&quot;one or more programs run on the server, and the end result (output) of the process is the HTML&quot;,&quot;rationale&quot;:&quot;Server-side programming is closely related to Javascript/Typescript (Node.js), which the garden covers in depth.&quot;},{&quot;slug&quot;:&quot;Vue.js&quot;,&quot;anchor_text&quot;:&quot;web applications&quot;,&quot;context&quot;:&quot;the most useful ones are actually web applications. Other examples of web applications are Google Calendar&quot;,&quot;rationale&quot;:&quot;Vue.js is specifically described in the garden as a framework for building interactive web applications, making it a highly relevant link here.&quot;},{&quot;slug&quot;:&quot;what-programming-language-should-i-learn&quot;,&quot;anchor_text&quot;:&quot;beginning or aspiring web developers&quot;,&quot;context&quot;:&quot;It is aimed at beginning or aspiring web developers, or even those who aren&#39;t developers&quot;,&quot;rationale&quot;:&quot;Aspiring web developers reading this intro article would naturally want to know what programming language to learn next.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;Vue.js&quot;,&quot;rationale&quot;:&quot;Vue.js elaborates on how modern web applications are built with frontend frameworks, extending the discussion of dynamic web apps.&quot;},{&quot;slug&quot;:&quot;Rainfall&quot;,&quot;rationale&quot;:&quot;Rainfall is described as a static site generator and Flask web application, providing a concrete real-world example of the static vs dynamic website concepts discussed here.&quot;},{&quot;slug&quot;:&quot;what-programming-language-should-i-learn&quot;,&quot;rationale&quot;:&quot;That node directly addresses the next question a beginner reading this article would ask, making it a natural &#39;see also&#39; extension.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:819,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&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;:0},&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;Python&quot;,&quot;anchor_text&quot;:&quot;Python&quot;,&quot;context&quot;:&quot;I would personally suggest Javascript or Python. Javascript is great because&quot;,&quot;rationale&quot;:&quot;The garden has a dedicated node on Python that elaborates on the author&#39;s experience with the language.&quot;},{&quot;slug&quot;:&quot;javascript-typescript&quot;,&quot;anchor_text&quot;:&quot;Javascript&quot;,&quot;context&quot;:&quot;I would personally suggest Javascript or Python. Javascript is great because with a few lines&quot;,&quot;rationale&quot;:&quot;The garden has a dedicated node on Javascript/Typescript that expands on the language in depth.&quot;},{&quot;slug&quot;:&quot;Perl&quot;,&quot;anchor_text&quot;:&quot;Perl&quot;,&quot;context&quot;:&quot;think Python or R, but probably not C++ or Perl (side note: with my recent experiences&quot;,&quot;rationale&quot;:&quot;The garden has a dedicated node on Perl describing the author&#39;s experiences with the language.&quot;},{&quot;slug&quot;:&quot;programming languages&quot;,&quot;anchor_text&quot;:&quot;programming languages&quot;,&quot;context&quot;:&quot;I would recommend looking at lots of different languages when you&#39;re first starting out&quot;,&quot;rationale&quot;:&quot;The garden has a meta node tying together the author&#39;s notes on various programming languages.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;about&quot;,&quot;rationale&quot;:&quot;The About Me node mentions the author tutors students in Computer Science and teaches a free Python class, directly relevant to the audience of this post.&quot;},{&quot;slug&quot;:&quot;random-knowledge-about-javascript-and-typescript&quot;,&quot;rationale&quot;:&quot;This node provides additional technical detail about Javascript and Typescript that complements the beginner-oriented recommendation in this post.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:769,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:316,&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;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;And no, I&#39;m not particularly itching to do that with this digital garden.&quot;,&quot;rationale&quot;:&quot;The node directly refers to this digital garden as a project, and the digital-garden-itself node covers its structure and technology.&quot;},{&quot;slug&quot;:&quot;dg-evergreen&quot;,&quot;anchor_text&quot;:&quot;garden nodes&quot;,&quot;context&quot;:&quot;I have a vague feeling that I want to include more images in my garden nodes&quot;,&quot;rationale&quot;:&quot;The concept of garden nodes as evergreen, updateable content is central to this garden&#39;s philosophy and directly relevant here.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;plans&quot;,&quot;rationale&quot;:&quot;The plans node discusses aspirations for improving the digital garden&#39;s structure and content, which overlaps with the multimedia and build system limitations discussed here.&quot;},{&quot;slug&quot;:&quot;dg-new&quot;,&quot;rationale&quot;:&quot;The dg-new node discusses embracing new technologies and approaches for digital gardens, which relates to the author&#39;s reflections on whether their current setup is limiting them.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:426,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:231,&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;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;mastodon-is-not-twitter&quot;,&quot;anchor_text&quot;:&quot;Mastodon&quot;,&quot;context&quot;:&quot;upon returning to Mastodon, that it had that feature built into new versions&quot;,&quot;rationale&quot;:&quot;The node mentions Mastodon specifically in the context of post deletion features, and there is a dedicated node about Mastodon that would provide relevant context.&quot;},{&quot;slug&quot;:&quot;digital-garden-itself&quot;,&quot;anchor_text&quot;:&quot;digital garden&quot;,&quot;context&quot;:&quot;I hope that a digital garden will provide a more well-rounded view of my digital self&quot;,&quot;rationale&quot;:&quot;This node references the digital garden concept as a better alternative to blogging, and the dedicated node elaborates on this garden specifically.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;dg-public&quot;,&quot;rationale&quot;:&quot;The blog node discusses the tension between public visibility and personal liability of writing online, which is directly addressed in the dg-public node about learning in public.&quot;},{&quot;slug&quot;:&quot;dg-solo&quot;,&quot;rationale&quot;:&quot;The node reflects on writing without an audience and not needing attention, a theme directly explored in the dg-solo node.&quot;},{&quot;slug&quot;:&quot;more-about-blogging&quot;,&quot;rationale&quot;:&quot;That node elaborates on the author&#39;s history with blogging and desire to blog, directly extending the themes in this node.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:517,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:284,&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;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;completely automated using GitHub Actions. What this means is that before you merge a PR&quot;,&quot;rationale&quot;:&quot;The node discusses GitHub Actions as a core part of the Codecov integration workflow, and the github node covers Travis&#39;s thoughts and experiences with GitHub directly.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;warnings-python&quot;,&quot;rationale&quot;:&quot;That node covers elevating Python test warnings to errors in an automated test suite, which is directly complementary to the code coverage and CI pipeline topics discussed here.&quot;},{&quot;slug&quot;:&quot;Python&quot;,&quot;rationale&quot;:&quot;The wp-1.0 repo mentioned in this node is a Python project, and the Python node covers Travis&#39;s use of Python for that same project, providing context for why Codecov matters to him.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1254,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:504,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:324},&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;slug&quot;:&quot;mastodon-is-not-twitter&quot;,&quot;anchor_text&quot;:&quot;Mastodon&quot;,&quot;context&quot;:&quot;Then I saw someone&#39;s blog post that had a &quot;,&quot;rationale&quot;:&quot;Comments from Mastodon&#92;&quot; section&quot;},{&quot;slug&quot;:&quot;mastodon-is-not-twitter&quot;,&quot;anchor_text&quot;:&quot;Mastodon post&quot;,&quot;context&quot;:&quot;create a post on Mastodon that represents your blog post/garden node&quot;,&quot;rationale&quot;:&quot;The node relies heavily on Mastodon as the comment infrastructure, and there is a dedicated node about Mastodon in the garden.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;dg-feedback&quot;,&quot;rationale&quot;:&quot;This node is the technical implementation behind the principle described in dg-feedback, which states that digital gardens should allow and respond to feedback via comments.&quot;},{&quot;slug&quot;:&quot;comments&quot;,&quot;rationale&quot;:&quot;The comments node is a short summary of the outcome of this research and directly references this node, making it a natural bidirectional cross-reference.&quot;},{&quot;slug&quot;:&quot;digital-garden-itself&quot;,&quot;rationale&quot;:&quot;The digital-garden-itself node mentions that comments are enabled via Mastodon, which is exactly the system described in detail here.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1713,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:734,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:467},&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;slug&quot;:&quot;digital-garden-itself&quot;,&quot;anchor_text&quot;:&quot;digital garden&quot;,&quot;context&quot;:&quot;I didn&#39;t have any comments on my digital garden, which is of course counter&quot;,&quot;rationale&quot;:&quot;The node &#39;digital-garden-itself&#39; directly covers the garden this node is talking about, making it a natural link target.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;dg-public&quot;,&quot;rationale&quot;:&quot;The principle of learning/publishing in public is directly relevant to why comments matter on a digital garden.&quot;},{&quot;slug&quot;:&quot;dg-solo&quot;,&quot;rationale&quot;:&quot;This node discusses whether a digital garden needs attention or feedback, which contextualizes the importance (or unimportance) of comments.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:112,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:155,&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;slug&quot;:&quot;digital-garden-itself&quot;,&quot;anchor_text&quot;:&quot;this Garden&quot;,&quot;context&quot;:&quot;I&#39;ve felt handcuffed from adding new content to this Garden. While I thought I would be writing&quot;,&quot;rationale&quot;:&quot;The node repeatedly references &#39;this Garden&#39; as an entity, and digital-garden-itself is the node that describes the garden as a whole.&quot;},{&quot;slug&quot;:&quot;digital-gardening-principles&quot;,&quot;anchor_text&quot;:&quot;garden &#92;&quot;nodes&#92;&quot;&quot;,&quot;context&quot;:&quot;I had all these ideas for garden &#92;&quot;nodes&#92;&quot;, but no &#92;&quot;place in the garden&#92;&quot; for them&quot;,&quot;rationale&quot;:&quot;The concept of garden nodes and how they interlink is directly described in digital-gardening-principles, making it a natural link target here.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;plans&quot;,&quot;rationale&quot;:&quot;Plans for the digital garden discusses the same meta-concern of how to organize and grow the garden&#39;s content, directly complementing the compost pile&#39;s purpose as a staging area for new nodes.&quot;},{&quot;slug&quot;:&quot;dg-status&quot;,&quot;rationale&quot;:&quot;The compost pile is partly about nodes that haven&#39;t yet found their place; dg-status discusses how gardeners disclose the maturity/status of posts, which is closely related to the idea of nodes growing from rough ideas into finished content.&quot;},{&quot;slug&quot;:&quot;dg-public&quot;,&quot;rationale&quot;:&quot;The compost pile is about making rough thoughts public as a place to link from, which connects to dg-public&#39;s theme of learning and publishing in public even when content is incomplete.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:554,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:1306,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:975},&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;slug&quot;:&quot;new-danger-third-rail-ep&quot;,&quot;anchor_text&quot;:&quot;first full length album&quot;,&quot;context&quot;:&quot;songs for my first full length album, and I&#39;ve recorded demos of all the songs&quot;,&quot;rationale&quot;:&quot;The new-danger-third-rail-ep node directly discusses plans for a new Danger Third Rail release, making it a natural link here.&quot;},{&quot;slug&quot;:&quot;songwriting-reflections&quot;,&quot;anchor_text&quot;:&quot;written all the songs 100% myself&quot;,&quot;context&quot;:&quot;I&#39;ve written all the songs 100% myself, sang them all, played guitar and keyboards&quot;,&quot;rationale&quot;:&quot;The songwriting-reflections node covers the author&#39;s personal approach to writing songs, which is directly relevant to this creative process.&quot;},{&quot;slug&quot;:&quot;genre-thoughts&quot;,&quot;anchor_text&quot;:&quot;recording music in my&quot;,&quot;context&quot;:&quot;it&#39;s mostly just a recording project of myself, recording music in my home recording studio&quot;,&quot;rationale&quot;:&quot;The genre-thoughts node discusses the author&#39;s music writing and production process as a solo musician, closely related to this project.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;new-danger-third-rail-ep&quot;,&quot;rationale&quot;:&quot;This node announces a specific upcoming Danger Third Rail release and elaborates on the production plans and timeline mentioned in the danger-third-rail node.&quot;},{&quot;slug&quot;:&quot;intrisic motivation&quot;,&quot;rationale&quot;:&quot;The danger-third-rail node mentions struggling to motivate a DIY full album production, and the intrisic motivation node explores the author&#39;s motivational challenges in depth.&quot;},{&quot;slug&quot;:&quot;nike-the-shit-out-of-it&quot;,&quot;rationale&quot;:&quot;This node directly discusses the difficulty of finishing and publishing songs, which mirrors the hiatus and demo situation described in the danger-third-rail node.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:925,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:376,&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-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;reverse chronological posting&quot;,&quot;context&quot;:&quot;breaking free of reverse chronological posting. Digital Gardens allow notes on any topic&quot;,&quot;rationale&quot;:&quot;The dg-reverse node directly elaborates on the concept of reverse chronological sorting that this node references as something digital gardens react against.&quot;},{&quot;slug&quot;:&quot;digital-gardening-principles&quot;,&quot;anchor_text&quot;:&quot;digital gardens&quot;,&quot;context&quot;:&quot;there&#39;s something at the heart of digital gardens that is more than just a reaction&quot;,&quot;rationale&quot;:&quot;The digital-gardening-principles node is the foundational overview that this node is one part of, making it a natural link for context.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;dg-public&quot;,&quot;rationale&quot;:&quot;The dg-public node discusses learning in public and keeping notes updated, which directly complements the evergreen/perennial updating concept described here.&quot;},{&quot;slug&quot;:&quot;dg-status&quot;,&quot;rationale&quot;:&quot;The dg-status node discusses epistemic disclosure and post quality/importance metadata, which is closely related to the idea of nodes being unfinished and gradually developed over time.&quot;},{&quot;slug&quot;:&quot;compost&quot;,&quot;rationale&quot;:&quot;The compost node discusses the challenge of finding places to link new nodes and the idea of gradual growth, which directly relates to the evergreen nature of garden nodes described here.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:303,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:289,&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-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;slug&quot;:&quot;comments-research&quot;,&quot;anchor_text&quot;:&quot;my [[comments|comments system]]&quot;,&quot;context&quot;:&quot;You can read more about my comments system.&quot;,&quot;rationale&quot;:&quot;The comments-research node documents the full research and journey to enabling comments, which is exactly what &#39;read more about my comments system&#39; points to.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;digital-gardening-principles&quot;,&quot;rationale&quot;:&quot;This node elaborates on the broader principles underlying digital gardens, including feedback and evergreen content, providing important context for why feedback matters in this garden.&quot;},{&quot;slug&quot;:&quot;dg-status&quot;,&quot;rationale&quot;:&quot;Epistemic disclosure and status transparency are closely related to responding to feedback — readers who flag outdated content connect directly to the idea of being upfront about a post&#39;s status.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:243,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:175,&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;digital-gardening-principles&quot;,&quot;anchor_text&quot;:&quot;Digital Garden&quot;,&quot;context&quot;:&quot;it could be that a &#92;&quot;Digital Garden&#92;&quot; is just a reaction to the concept of &#92;&quot;Blogging&#92;&quot;&quot;,&quot;rationale&quot;:&quot;The digital-gardening-principles node directly elaborates on what defines a digital garden, making it a natural link for this mention.&quot;},{&quot;slug&quot;:&quot;dg-reverse&quot;,&quot;anchor_text&quot;:&quot;Blogging&quot;,&quot;context&quot;:&quot;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&quot;,&quot;rationale&quot;:&quot;The dg-reverse node explains how digital gardens react against reverse-chronological blogging, directly relevant to this claim.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;dg-evergreen&quot;,&quot;rationale&quot;:&quot;Discusses how digital gardens embrace evergreen, continuously updated content as a key &#39;new&#39; way of thinking compared to traditional blogs.&quot;},{&quot;slug&quot;:&quot;digital-garden-itself&quot;,&quot;rationale&quot;:&quot;Describes the author&#39;s own digital garden implementation, including use of new technologies like Gemini, directly illustrating this node&#39;s theme of embracing the new.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:220,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:249,&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-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-evergreen&quot;,&quot;anchor_text&quot;:&quot;What if I change my mind?&quot;,&quot;context&quot;:&quot;knowing for certain that it&#39;s completely &#92;&quot;settled&#92;&quot;. What if I change my mind? What if I realize&quot;,&quot;rationale&quot;:&quot;The dg-evergreen node directly addresses how garden posts are updated over time as views change, making it a natural link for this concern.&quot;},{&quot;slug&quot;:&quot;dg-status&quot;,&quot;anchor_text&quot;:&quot;completely &#92;&quot;settled&#92;&quot;&quot;,&quot;context&quot;:&quot;put out your own personal opinions without knowing for certain that it&#39;s completely &#92;&quot;settled&#92;&quot;&quot;,&quot;rationale&quot;:&quot;The dg-status node covers epistemic disclosure, which is precisely the mechanism for signaling how settled or uncertain a garden node&#39;s content is.&quot;},{&quot;slug&quot;:&quot;digital-gardening-principles&quot;,&quot;anchor_text&quot;:&quot;digital garden&quot;,&quot;context&quot;:&quot;The main reference article I&#39;ve been linking to is Shawn Wang&#39;s &#92;&quot;Learn In Public&#92;&quot;. I&#39;m hoping to be explosively productive&quot;,&quot;rationale&quot;:&quot;The digital-gardening-principles node is the foundational document for the practices described in this node.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;dg-solo&quot;,&quot;rationale&quot;:&quot;dg-solo discusses the tension between writing for oneself versus seeking external validation, which elaborates on the &#39;fearlessness&#39; required to publish personal opinions publicly.&quot;},{&quot;slug&quot;:&quot;dg-feedback&quot;,&quot;rationale&quot;:&quot;dg-feedback directly extends the idea of learning in public by discussing how comments and feedback enable the garden to stay accurate and evergreen.&quot;},{&quot;slug&quot;:&quot;dg-status&quot;,&quot;rationale&quot;:&quot;dg-status covers epistemic disclosure as a way to manage the vulnerability of publishing unsettled or naive thoughts publicly.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:234,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:365,&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 &#39;blog&#39; node directly covers the topic of blog posts and their relationship to this digital garden.&quot;},{&quot;slug&quot;:&quot;dg-public&quot;,&quot;anchor_text&quot;:&quot;author to put his or her best foot forward&quot;,&quot;context&quot;:&quot;RCS doesn&#39;t allow an author to put his or her best foot forward, because instead of presenting the most comprehensive&quot;,&quot;rationale&quot;:&quot;The dg-public node discusses how digital gardens allow learning and presenting work in public, which is closely related to the idea of putting your best foot forward for readers.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;blog-cycle&quot;,&quot;rationale&quot;:&quot;This node discusses the cycle of rebuilding blogs and authoring content, which directly elaborates on the frustrations with traditional blog structures that dg-reverse critiques.&quot;},{&quot;slug&quot;:&quot;dg-status&quot;,&quot;rationale&quot;:&quot;The dg-status node discusses how digital gardeners disclose the status/quality of posts, which is a key alternative to using chronological ordering to signal post relevance.&quot;},{&quot;slug&quot;:&quot;writings&quot;,&quot;rationale&quot;:&quot;This node describes the challenge of integrating old writings into the garden without reverse-chronological ordering, directly illustrating the problem dg-reverse addresses.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:428,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:291,&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-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;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 concept of acting without needing external approval is directly related to intrinsic vs extrinsic motivation, which that node explicitly explores.&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;dg-public covers the principle of learning and sharing in public, which is the counterpoint to the solo/self-directed ethos discussed here.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;intrisic motivation&quot;,&quot;rationale&quot;:&quot;That node dives deeply into the distinction between intrinsic and extrinsic motivation, directly elaborating on the psychological underpinning of wanting to create without needing external attention or approval.&quot;},{&quot;slug&quot;:&quot;dg-public&quot;,&quot;rationale&quot;:&quot;dg-public discusses the tension between publishing for oneself versus engaging with an audience, which is the central theme of this node.&quot;},{&quot;slug&quot;:&quot;blog&quot;,&quot;rationale&quot;:&quot;The blog node reflects on publishing to an audience that rarely responds, which parallels this node&#39;s exploration of creating without needing attention.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:294,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:295,&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-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;Shawn Wang lists Epistemic Disclosure as one of the foundation principles of a digital garden&quot;,&quot;rationale&quot;:&quot;This node describes implementing a principle from the broader digital gardening principles framework, which is documented in its own node.&quot;},{&quot;slug&quot;:&quot;dg-public&quot;,&quot;anchor_text&quot;:&quot;responsibly disclose metadata about posts or nodes to readers&quot;,&quot;context&quot;:&quot;leads us to understand how digital gardeners should responsibly disclose metadata about posts or nodes to readers&quot;,&quot;rationale&quot;:&quot;Disclosing status metadata to readers connects directly to the principle of learning and sharing in public.&quot;},{&quot;slug&quot;:&quot;digital-garden-itself&quot;,&quot;anchor_text&quot;:&quot;this garden&quot;,&quot;context&quot;:&quot;In this garden, I&#39;ve listed the &#39;quality&#39; and &#39;importance&#39; status of each node right on the node&#39;s page&quot;,&quot;rationale&quot;:&quot;The node references the garden itself as the implementation site of these status principles, which has its own dedicated node.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;dg-evergreen&quot;,&quot;rationale&quot;:&quot;The concept of evergreen notes is closely related to why status disclosures matter — nodes change over time and readers need to know how developed an idea is.&quot;},{&quot;slug&quot;:&quot;digital-gardening-principles&quot;,&quot;rationale&quot;:&quot;This node implements one of the core digital gardening principles (Epistemic Disclosure), making the principles node a natural elaboration point.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:505,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:318,&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;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;plans&quot;,&quot;anchor_text&quot;:&quot;plans for the digital garden&quot;,&quot;context&quot;:&quot;tracking issues to improve it. It is based on Eleventy Garden&quot;,&quot;rationale&quot;:&quot;The &#39;plans&#39; node directly covers plans and aspirations for this garden, making it a natural link from the garden&#39;s own description page.&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 garden references GitHub as where its source code lives, and there is a node specifically about GitHub.&quot;},{&quot;slug&quot;:&quot;dg-evergreen&quot;,&quot;anchor_text&quot;:&quot;Digital Gardens&quot;,&quot;context&quot;:&quot;When I first started reading about Digital Gardens, I quickly came to the conclusion&quot;,&quot;rationale&quot;:&quot;The dg-evergreen node covers a core principle of digital gardens (evergreen posts) that is directly relevant to what digital gardens are.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;dg-public&quot;,&quot;rationale&quot;:&quot;Elaborates on the principle of learning in public which is a core motivation for this digital garden&#39;s existence.&quot;},{&quot;slug&quot;:&quot;dg-solo&quot;,&quot;rationale&quot;:&quot;Discusses whether digital gardens need an audience, directly relevant to the purpose and philosophy of this garden.&quot;},{&quot;slug&quot;:&quot;plans&quot;,&quot;rationale&quot;:&quot;Contains specific plans and aspirations for improving this very digital garden.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:365,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:285,&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;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;slug&quot;:&quot;digital-garden-itself&quot;,&quot;anchor_text&quot;:&quot;digital garden&quot;,&quot;context&quot;:&quot;This is my attempt to distill and repeat what I consider to be the most important principles of digital gardening.&quot;,&quot;rationale&quot;:&quot;The digital-garden-itself node describes this specific garden&#39;s implementation of these principles, making it a direct and meaningful companion link.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;dg-evergreen&quot;,&quot;rationale&quot;:&quot;Directly elaborates on the evergreen notes principle referenced in this node, including the concept-oriented framing from Andy Matuschak.&quot;},{&quot;slug&quot;:&quot;plans&quot;,&quot;rationale&quot;:&quot;Discusses how the author plans to implement and live up to these digital gardening principles in practice.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:569,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&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;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;slug&quot;:&quot;blog&quot;,&quot;anchor_text&quot;:&quot;blog posts&quot;,&quot;context&quot;:&quot;rejected blog posts that I don&#39;t want to make public, song lyrics I&#39;ve written&quot;,&quot;rationale&quot;:&quot;The node mentions blog posts in the context of Draft usage, and there is a dedicated node about blog posts in the garden.&quot;},{&quot;slug&quot;:&quot;the-chain&quot;,&quot;anchor_text&quot;:&quot;Morning Pages&quot;,&quot;context&quot;:&quot;I&#39;ve done NaNoWriMo in Draft, and Morning Pages, rejected blog posts&quot;,&quot;rationale&quot;:&quot;Morning Pages is a daily writing habit practice closely related to the habit-building themes explored in the-chain node.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;font-of-creativity&quot;,&quot;rationale&quot;:&quot;That node discusses the author&#39;s feelings about creative output and the drive to write, which parallels the nostalgic reflection on Draft as a writing companion.&quot;},{&quot;slug&quot;:&quot;blog-cycle&quot;,&quot;rationale&quot;:&quot;The blog-cycle node discusses the impulse to switch writing platforms, directly relevant to the author&#39;s consideration of seeking a Draft alternative.&quot;},{&quot;slug&quot;:&quot;getting-nothing-done&quot;,&quot;rationale&quot;:&quot;The node touches on tools and systems people use to organize their creative and productive work, relevant to the discussion of Draft as a productivity/writing tool.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1028,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:267,&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;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 is not it&quot;,&quot;context&quot;:&quot;prompting for &#39;new avenues&#39; for 2023 but at the same time gently chastising that &#39;Mastodon is not it&#39;&quot;,&quot;rationale&quot;:&quot;The node directly quotes a critique of Mastodon, and the linked node elaborates extensively on why Mastodon differs from Twitter and won&#39;t replace it.&quot;},{&quot;slug&quot;:&quot;intrisic motivation&quot;,&quot;anchor_text&quot;:&quot;real motivation and action&quot;,&quot;context&quot;:&quot;I&#39;m not sure it will ever translate into real motivation and action.&quot;,&quot;rationale&quot;:&quot;The node&#39;s closing sentiment about lacking motivation to follow through on learning Spanish connects directly to the node on intrinsic vs extrinsic motivation.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;activity-pub&quot;,&quot;rationale&quot;:&quot;This node&#39;s excitement about Gemini and federated/alternative social protocols like Secure Scuttlebutt is closely related to the ActivityPub node&#39;s discussion of open protocols powering decentralized social networks.&quot;},{&quot;slug&quot;:&quot;dg-new&quot;,&quot;rationale&quot;:&quot;The excitement about new protocols and experimental technologies like Secure Scuttlebutt and Gemini aligns with the digital garden principle of embracing new ideas and technologies.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:364,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:558,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:265},&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;recording-setup&quot;,&quot;anchor_text&quot;:&quot;record them one by one&quot;,&quot;context&quot;:&quot;practice and perform them, and finally record them one by one. I have to program in the drums&quot;,&quot;rationale&quot;:&quot;The recording setup node directly describes the equipment and process Travis uses to record instruments one by one in his home studio.&quot;},{&quot;slug&quot;:&quot;danger-third-rail&quot;,&quot;anchor_text&quot;:&quot;my favorite bands&quot;,&quot;context&quot;:&quot;I&#39;m never going to have the raw power and coherence of some of my favorite bands&quot;,&quot;rationale&quot;:&quot;The danger-third-rail node is Travis&#39;s own band/recording project, which is the direct context for this reflection on solo music production.&quot;},{&quot;slug&quot;:&quot;ableton&quot;,&quot;anchor_text&quot;:&quot;MIDI&quot;,&quot;context&quot;:&quot;I have to program in the drums using MIDI (no drummer)&quot;,&quot;rationale&quot;:&quot;The Ableton node covers the DAW Travis uses for MIDI drum programming and music production.&quot;},{&quot;slug&quot;:&quot;songwriting-reflections&quot;,&quot;anchor_text&quot;:&quot;writing the lyrics and writing and singing the melody&quot;,&quot;context&quot;:&quot;I&#39;m the one writing the lyrics and writing and singing the melody&quot;,&quot;rationale&quot;:&quot;The songwriting-reflections node elaborates on Travis&#39;s thoughts about his approach to writing songs and melody.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;highs-and-lows-musician&quot;,&quot;rationale&quot;:&quot;That node covers Travis&#39;s broader history of writing and recording music solo in a home studio, directly extending the themes of this node.&quot;},{&quot;slug&quot;:&quot;something-terrible&quot;,&quot;rationale&quot;:&quot;That node discusses giving oneself permission to create imperfect music, which complements the &#39;fake it&#39; philosophy described here.&quot;},{&quot;slug&quot;:&quot;genre-thoughts&quot;,&quot;rationale&quot;:&quot;That node discusses the tension between the music Travis listens to and what he can produce solo, directly relevant to his reflections here on not matching his favorite bands.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:751,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:399,&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;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 directly discusses free will and determinism, expanding on the concept this node is titled after.&quot;},{&quot;slug&quot;:&quot;a-story-of-failure&quot;,&quot;rationale&quot;:&quot;The author explicitly reflects on free will and agency in the context of New Year&#39;s resolutions and personal outcomes.&quot;},{&quot;slug&quot;:&quot;not the circumstances&quot;,&quot;rationale&quot;:&quot;This node references free will directly and explores the related idea that outcomes are beyond our control.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:41,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:112,&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;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;github&quot;,&quot;anchor_text&quot;:&quot;Github&quot;,&quot;context&quot;:&quot;See it on Github or NPM&quot;,&quot;rationale&quot;:&quot;The node references GitHub as the hosting platform for the gemdown library, and there is a dedicated node about GitHub in the garden.&quot;},{&quot;slug&quot;:&quot;digital-garden-itself&quot;,&quot;anchor_text&quot;:&quot;Gemini version of 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 node explicitly references the digital garden&#39;s Gemini mirror, which is described in the digital-garden-itself node.&quot;},{&quot;slug&quot;:&quot;Rainfall&quot;,&quot;anchor_text&quot;:&quot;static site generator&quot;,&quot;context&quot;:&quot;designed to be used in conjunction with a static site generator in order to create a Gemini mirror&quot;,&quot;rationale&quot;:&quot;Rainfall is the author&#39;s own static site generator project, making it a highly relevant concrete example of the static site generator use case described here.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;more-about-blogging&quot;,&quot;rationale&quot;:&quot;That node discusses Gemini and the author&#39;s early Gemini capsule, providing useful context for why gemdown was created.&quot;},{&quot;slug&quot;:&quot;digital-garden-itself&quot;,&quot;rationale&quot;:&quot;The digital garden itself uses gemdown to generate its Gemini capsule, making this a direct real-world application of the library.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:807,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:295,&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;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;digital-garden-itself&quot;,&quot;anchor_text&quot;:&quot;Digital Garden&quot;,&quot;context&quot;:&quot;I originally considered making this garden a gemini-only publication&quot;,&quot;rationale&quot;:&quot;The node discusses converting this specific digital garden to Gemini, and the digital-garden-itself node covers the garden&#39;s technical setup and hosting directly.&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 references Mastodon&#39;s self-referential nature in comparison to Gemini, and mastodon-is-not-twitter directly covers Mastodon as a platform.&quot;},{&quot;slug&quot;:&quot;recording-setup&quot;,&quot;anchor_text&quot;:&quot;audio interface&quot;,&quot;context&quot;:&quot;I stopped unplugging my mic and guitar cables from my audio interface when I&#39;m done&quot;,&quot;rationale&quot;:&quot;The node uses the audio interface as an analogy for low-friction creative workflows, and recording-setup covers the actual setup being described.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;more-about-blogging&quot;,&quot;rationale&quot;:&quot;This node also discusses Gemini as a protocol and mentions creating one of the first 50 Gemini sites, directly elaborating on topics in the gemini node.&quot;},{&quot;slug&quot;:&quot;excited&quot;,&quot;rationale&quot;:&quot;This node discusses Gemini as a potential &#39;new avenue&#39; and references Robin Sloan&#39;s newsletter, the same source cited in the gemini node.&quot;},{&quot;slug&quot;:&quot;dg-evergreen&quot;,&quot;rationale&quot;:&quot;The gemini node discusses keeping the garden evergreen and low-friction workflows, which dg-evergreen elaborates on as a core digital gardening principle.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1136,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:376,&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;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;slug&quot;:&quot;fake-it-music&quot;,&quot;anchor_text&quot;:&quot;recording rock music without a band&quot;,&quot;context&quot;:&quot;recording rock music without a band, in your recording-setup home recording studio slash kitchen, is hard y&#39;all!&quot;,&quot;rationale&quot;:&quot;That node is entirely about the challenge of being a solo musician trying to produce rock music, directly addressing the same problem described here.&quot;},{&quot;slug&quot;:&quot;not-quite-writers-block&quot;,&quot;anchor_text&quot;:&quot;stare at it, mouth agape&quot;,&quot;context&quot;:&quot;my first step is to open 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&quot;,&quot;rationale&quot;:&quot;That node discusses the same creative block experience when opening the DAW and not knowing how to proceed.&quot;},{&quot;slug&quot;:&quot;songwriting-reflections&quot;,&quot;anchor_text&quot;:&quot;upbeat, melodic rock music&quot;,&quot;context&quot;:&quot;But my music tastes are squarely grounded in upbeat, melodic rock music.&quot;,&quot;rationale&quot;:&quot;That node specifically explores genre preferences and why melodic, harmonically rich rock appeals more than other styles.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;highs-and-lows-musician&quot;,&quot;rationale&quot;:&quot;Covers the same arc of home studio music production challenges, including the evolution of a solo recording setup and the difficulties of being a one-person band.&quot;},{&quot;slug&quot;:&quot;bands-as-sports-teams&quot;,&quot;rationale&quot;:&quot;Elaborates on why full bands have structural advantages over solo producers, directly relevant to the workflow difficulty described in this node.&quot;},{&quot;slug&quot;:&quot;motivation-music&quot;,&quot;rationale&quot;:&quot;Directly addresses motivation for writing and producing music as the sole member of Danger Third Rail, complementing the workflow frustrations explored here.&quot;},{&quot;slug&quot;:&quot;music-projects-as-ephemera&quot;,&quot;rationale&quot;:&quot;Discusses specific technical challenges with Ableton and Reason projects, overlapping with the DAW-centric workflow problems described in this node.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1299,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:2363,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:1931},&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;slug&quot;:&quot;wp-1.0&quot;,&quot;anchor_text&quot;:&quot;contribute to code&quot;,&quot;context&quot;:&quot;as I find and read about and contribute to code, that code is on Github&quot;,&quot;rationale&quot;:&quot;The wp-1.0 bot is a major open source project the author maintains on GitHub, making it a concrete example of the code they contribute to.&quot;},{&quot;slug&quot;:&quot;about&quot;,&quot;anchor_text&quot;:&quot;WP 1.0 Bot&quot;,&quot;context&quot;:&quot;the primary maintainer of the Wikipedia WP 1.0 Bot, which has the most all time edits&quot;,&quot;rationale&quot;:&quot;The about page describes the author&#39;s WP 1.0 Bot on GitHub, directly relevant to the discussion of GitHub usage.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;Python&quot;,&quot;rationale&quot;:&quot;Python is used in the author&#39;s major GitHub projects like wp-1.0, and the github node discusses contributing to open source code.&quot;},{&quot;slug&quot;:&quot;digital-garden-itself&quot;,&quot;rationale&quot;:&quot;The digital garden&#39;s source code is hosted on GitHub, making it a direct cross-reference for the github node&#39;s discussion of personal projects on the platform.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:559,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:246,&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;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;slug&quot;:&quot;songwriting-reflections&quot;,&quot;anchor_text&quot;:&quot;writing the songs I write, in the way I write them&quot;,&quot;context&quot;:&quot;if I really have to worry about faking it, or if writing the songs I write, in the way I write them, is enough&quot;,&quot;rationale&quot;:&quot;Songwriting Reflections directly explores the author&#39;s personal approach to songwriting and what makes a good song, making it a natural elaboration on this node&#39;s theme.&quot;},{&quot;slug&quot;:&quot;recording-setup&quot;,&quot;anchor_text&quot;:&quot;record it properly or create an arrangement&quot;,&quot;context&quot;:&quot;go back and write new verses or record it properly or create an arrangement with strings and drums&quot;,&quot;rationale&quot;:&quot;The recording setup node describes the author&#39;s home studio where songs get recorded and arranged, directly relevant to this mention of properly recording songs.&quot;},{&quot;slug&quot;:&quot;genre-thoughts&quot;,&quot;anchor_text&quot;:&quot;the music that I want to make&quot;,&quot;context&quot;:&quot;they&#39;re not songs. They&#39;re not the music that I want to make.&quot;,&quot;rationale&quot;:&quot;Genre Thoughts explores the author&#39;s relationship between the music they listen to and the music they want to produce, directly connecting to this reflection on what kind of music they want to make.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;nike-the-shit-out-of-it&quot;,&quot;rationale&quot;:&quot;That node reflects on the difficulty of finishing and publishing songs, which connects to this node&#39;s theme of focusing on writing good songs rather than over-producing them.&quot;},{&quot;slug&quot;:&quot;not-quite-writers-block&quot;,&quot;rationale&quot;:&quot;Discusses the author&#39;s songwriting process and the tension between perfectionism and productivity, which elaborates on the question of whether the songs one writes &#39;in the way I write them&#39; is enough.&quot;},{&quot;slug&quot;:&quot;best albums in the universe&quot;,&quot;rationale&quot;:&quot;The node about songs being covered and the timeless quality of great compositions connects naturally to the author&#39;s curated list of albums that have stood the test of time.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:742,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:416,&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 &#92;&quot;making it&#92;&quot;)&quot;,&quot;rationale&quot;:&quot;Spotify is explicitly named as the release target and the node about Spotify covers the platform&#39;s royalty structure and artist experience directly.&quot;},{&quot;slug&quot;:&quot;Bandcamp&quot;,&quot;anchor_text&quot;:&quot;Bandcamp donations&quot;,&quot;context&quot;:&quot;I&#39;ve made a grand total of about 50 bucks ever selling music (from Spotify/iTunes/Amazon/YouTube payments and Bandcamp donations).&quot;,&quot;rationale&quot;:&quot;Bandcamp is explicitly mentioned as a revenue source, and the Bandcamp node discusses the economics of music distribution for independent artists.&quot;},{&quot;slug&quot;:&quot;ableton&quot;,&quot;anchor_text&quot;:&quot;mixing lessons&quot;,&quot;context&quot;:&quot;I started taking mixing lessons so I could mix and master the songs myself, to make the album 100% DIY.&quot;,&quot;rationale&quot;:&quot;The mixing lessons were for Ableton Live production (as noted elsewhere in the garden), and the ableton node covers the DAW central to this workflow.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;another-year-without-resolutions&quot;,&quot;rationale&quot;:&quot;That node explicitly describes the decision to start music lessons for mixing, mastering, and Ableton Live production — directly elaborating on the mixing lessons backstory mentioned here.&quot;},{&quot;slug&quot;:&quot;music-projects-as-ephemera&quot;,&quot;rationale&quot;:&quot;That node discusses the challenges of maintaining old music projects across software versions, complementing the themes of stalled progress and DIY production discussed here.&quot;},{&quot;slug&quot;:&quot;something-terrible&quot;,&quot;rationale&quot;:&quot;That node covers the Make Something Terrible Challenge given to music production students, which directly relates to overcoming creative blocks in songwriting and recording discussed here.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:978,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:857,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:470},&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;slug&quot;:&quot;digital-gardening-principles&quot;,&quot;anchor_text&quot;:&quot;choose-your-own adventure game&quot;,&quot;context&quot;:&quot;resist the urge to write this entire website as a choose-your-own adventure game&quot;,&quot;rationale&quot;:&quot;The digital gardening principles node defines the philosophy behind this garden, making it a natural easter egg link for readers curious about the garden&#39;s structure.&quot;},{&quot;slug&quot;:&quot;recording-setup&quot;,&quot;anchor_text&quot;:&quot;power extension cords and other wires&quot;,&quot;context&quot;:&quot;huge amount of power extension cords and other wires darting through the gate&quot;,&quot;rationale&quot;:&quot;The recording setup node describes the actual studio equipment and wiring that likely inspired this metaphor in the garden&#39;s introduction.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;dg-evergreen&quot;,&quot;rationale&quot;:&quot;This node serves as the entry point to the garden and could benefit from a &#39;see also&#39; pointing to the evergreen philosophy that underpins how all garden nodes are maintained.&quot;},{&quot;slug&quot;:&quot;plans&quot;,&quot;rationale&quot;:&quot;The plans node discusses the author&#39;s intentions for the garden&#39;s content and organization, which directly elaborates on what visitors entering this garden can expect to find.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:311,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:250,&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;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;slug&quot;:&quot;motivation-music&quot;,&quot;anchor_text&quot;:&quot;writing songs again and I really want to keep doing it&quot;,&quot;context&quot;:&quot;&#39;I want to do the dishes tonight&#39; or &#39;I&#39;ve been writing songs again and I really want to keep doing it&#39;&quot;,&quot;rationale&quot;:&quot;The motivation-music node is specifically about motivation for writing and producing music, directly paralleling the example used here to illustrate intrinsic motivation.&quot;},{&quot;slug&quot;:&quot;dg-solo&quot;,&quot;anchor_text&quot;:&quot;doing it just for myself&quot;,&quot;context&quot;:&quot;I will resolve to never show it to anyone no matter what. I&#39;m doing it just for myself.&quot;,&quot;rationale&quot;:&quot;The dg-solo principle — that digital gardens don&#39;t need attention to thrive — is the exact same idea being described here about doing creative work without needing external validation.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;now&quot;,&quot;rationale&quot;:&quot;The now node explicitly mentions building intrinsic motivation as a current practice, making it a direct real-world update to the ideas described here.&quot;},{&quot;slug&quot;:&quot;the-chain&quot;,&quot;rationale&quot;:&quot;The chain/Seinfeld Strategy node deals with habit formation and self-directed practice, which overlaps with the intrinsic motivation practice of doing things consistently for oneself.&quot;},{&quot;slug&quot;:&quot;font-of-creativity&quot;,&quot;rationale&quot;:&quot;The font-of-creativity node explores the internal drive to create and whether creative people must create out of internal necessity, directly relating to the intrinsic vs extrinsic motivation distinction.&quot;},{&quot;slug&quot;:&quot;vibe coding&quot;,&quot;rationale&quot;:&quot;The vibe coding node explicitly references intrinsic motivation as a factor in how the author approaches personal projects, tying the two concepts together.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:882,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:1909,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:1543},&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;slug&quot;:&quot;Vue.js&quot;,&quot;anchor_text&quot;:&quot;web pages&quot;,&quot;context&quot;:&quot;It is the language used to write logic for web pages. Also, due to the V8 engine&quot;,&quot;rationale&quot;:&quot;Vue.js is a frontend Javascript framework directly relevant to writing logic for web pages, and is covered in its own node.&quot;},{&quot;slug&quot;:&quot;programming languages&quot;,&quot;anchor_text&quot;:&quot;most popular programming language in the world&quot;,&quot;context&quot;:&quot;Javascript is the most popular programming language in the world. It is the language&quot;,&quot;rationale&quot;:&quot;The programming languages meta node ties together all the language nodes in the garden, including Javascript/Typescript.&quot;},{&quot;slug&quot;:&quot;random-knowledge-about-javascript-and-typescript&quot;,&quot;anchor_text&quot;:&quot;Typescript compiler&quot;,&quot;context&quot;:&quot;you have to use a _Typescript compiler_ to turn your code back into Javascript&quot;,&quot;rationale&quot;:&quot;The random-knowledge node specifically covers Javascript and Typescript topics and elaborates on the compiler and typing concepts mentioned here.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;Vue.js&quot;,&quot;rationale&quot;:&quot;Vue.js is a Javascript/Typescript framework the author uses extensively, directly extending the practical application of this node&#39;s content.&quot;},{&quot;slug&quot;:&quot;programming languages&quot;,&quot;rationale&quot;:&quot;This meta node explicitly lists javascript-typescript as one of the garden&#39;s covered languages and connects it to the broader programming language landscape.&quot;},{&quot;slug&quot;:&quot;random-knowledge-about-javascript-and-typescript&quot;,&quot;rationale&quot;:&quot;This node covers overlapping Javascript and Typescript knowledge including backend usage and typing concepts discussed in this node.&quot;},{&quot;slug&quot;:&quot;what-programming-language-should-i-learn&quot;,&quot;rationale&quot;:&quot;That node discusses Javascript/Typescript as a recommended language choice, elaborating on the practical value described here.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:383,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:370,&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;slug&quot;:&quot;intrisic motivation&quot;,&quot;anchor_text&quot;:&quot;This is inspiration. This is what motivates a lot of music out there&quot;,&quot;context&quot;:&quot;You hear these songs, they&#39;re great, and suddenly you go out and buy a guitar... This is inspiration. This is what motivates a lot of music out there&quot;,&quot;rationale&quot;:&quot;The node on intrinsic motivation directly addresses the internal vs external drivers of creative work, which is the core theme of this entire graph/framework.&quot;},{&quot;slug&quot;:&quot;the-unattainable-and-the-attainable&quot;,&quot;anchor_text&quot;:&quot;terrifyingly good&quot;,&quot;context&quot;:&quot;this category is composed more of the music that is terrifyingly good. It&#39;s intimidating. These songs and albums are so amazing&quot;,&quot;rationale&quot;:&quot;The &#39;Great and makes me not want to make music&#39; category is essentially the same concept explored in the Unattainable and the Attainable node, making a direct link highly meaningful.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;genre-thoughts&quot;,&quot;rationale&quot;:&quot;That node discusses the specific roadblocks encountered in a music career and the gap between what one listens to and what one produces, which directly elaborates on why certain music can be demotivating.&quot;},{&quot;slug&quot;:&quot;fake-it-music&quot;,&quot;rationale&quot;:&quot;Explores the challenge of producing music solo and how not every part needs to be perfect, which speaks directly to overcoming the &#39;terrifyingly good&#39; demotivation category described here.&quot;},{&quot;slug&quot;:&quot;songwriting-reflections&quot;,&quot;rationale&quot;:&quot;Reflects on the emotional and aesthetic dimensions of songwriting, providing deeper context for why certain music inspires or deflates the desire to create.&quot;},{&quot;slug&quot;:&quot;highs-and-lows-musician&quot;,&quot;rationale&quot;:&quot;Chronicles the personal highs and lows of home music production, giving real-world grounding to the motivational framework described in this node.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:657,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:1215,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:800},&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;slug&quot;:&quot;giving-up-on-resolutions&quot;,&quot;anchor_text&quot;:&quot;resolutions&quot;,&quot;context&quot;:&quot;I&#39;m not making any hard and fast resolutions, though we have a goal to finally get our apartment&quot;,&quot;rationale&quot;:&quot;The node on giving up on resolutions directly addresses the recurring theme of New Year&#39;s resolutions that this post touches on.&quot;},{&quot;slug&quot;:&quot;philosophy&quot;,&quot;anchor_text&quot;:&quot;it is what it is&quot;,&quot;context&quot;:&quot;not-so-great news about her health. I&#39;m worried, I&#39;m anxious, but it is what it is.&quot;,&quot;rationale&quot;:&quot;The philosophy node discusses existentialism and accepting circumstances, which aligns with the resigned acceptance expressed in this phrase.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;another-year-without-resolutions&quot;,&quot;rationale&quot;:&quot;This node also reflects on New Year&#39;s without making resolutions and mentions the difficulty of 2020, making it a natural companion piece to this 2025 New Year&#39;s reflection.&quot;},{&quot;slug&quot;:&quot;now&quot;,&quot;rationale&quot;:&quot;The &#39;Now&#39; node mentions improved mental health in 2026 and embracing intrinsic motivation, directly extending the theme of being &#39;in a better place mentally&#39; raised in this node.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:572,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:265,&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;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;intrisic motivation&quot;,&quot;anchor_text&quot;:&quot;a lot of work without a lot of payoff&quot;,&quot;context&quot;:&quot;I haven&#39;t gone through the process to actually clean them all up... it just seems like a lot of work without a lot of payoff&quot;,&quot;rationale&quot;:&quot;The node on intrinsic motivation directly addresses this tension between effort and perceived reward, exploring why extrinsic payoff drives (or fails to drive) creative work.&quot;},{&quot;slug&quot;:&quot;fake-it-music&quot;,&quot;anchor_text&quot;:&quot;write all of the instrumental parts, the arrangement, the mix&quot;,&quot;context&quot;:&quot;I can write songs where I write all of the instrumental parts, the arrangement, the mix, etc. But it&#39;s exhausting&quot;,&quot;rationale&quot;:&quot;The fake-it-music node is specifically about the exhaustion of being a solo musician who must write and record every part, which is precisely the frustration described here.&quot;},{&quot;slug&quot;:&quot;bands-as-sports-teams&quot;,&quot;anchor_text&quot;:&quot;play with a band&quot;,&quot;context&quot;:&quot;I want to play with a band, where the drum feel and groove drive the composition of the guitar and bass parts&quot;,&quot;rationale&quot;:&quot;The bands-as-sports-teams node explores the dynamics of how different band members contribute to a song, directly relevant to the collaboration the author is craving here.&quot;},{&quot;slug&quot;:&quot;not-quite-writers-block&quot;,&quot;anchor_text&quot;:&quot;I think I&#39;m stagnating for another reason&quot;,&quot;context&quot;:&quot;The real reluctance comes from the fact that I think I&#39;m stagnating for another reason&quot;,&quot;rationale&quot;:&quot;The not-quite-writers-block node addresses the specific phenomenon of being able to generate sounds but not finishing or pushing music forward, matching this exact creative frustration.&quot;},{&quot;slug&quot;:&quot;motivation-music&quot;,&quot;anchor_text&quot;:&quot;sense of wonder in my songwriting process&quot;,&quot;context&quot;:&quot;I feel like I&#39;ve lost a sense of wonder in my songwriting process. Sometimes, I&#39;m going at it with feverish diligence&quot;,&quot;rationale&quot;:&quot;The motivation-music node is specifically about what drives (or kills) the desire to make music as the sole member of Danger Third Rail.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;a-story-of-failure&quot;,&quot;rationale&quot;:&quot;Directly chronicles a similar experience of failing to maintain consistent music output (the song-a-day resolution), providing a companion narrative to this node&#39;s themes of musical stagnation.&quot;},{&quot;slug&quot;:&quot;something-terrible&quot;,&quot;rationale&quot;:&quot;Offers a concrete creative exercise (the Make Something Terrible Challenge) as a direct response to the type of creative paralysis described in this node.&quot;},{&quot;slug&quot;:&quot;highs-and-lows-musician&quot;,&quot;rationale&quot;:&quot;Elaborates on the full history of home recording struggles and the formation of Danger Third Rail, giving deeper context to the exhaustion of solo music production mentioned here.&quot;},{&quot;slug&quot;:&quot;songwriting-reflections&quot;,&quot;rationale&quot;:&quot;Explores the author&#39;s deeper aesthetic preferences in songwriting (minor keys, ambiguous chords), which relates to the creative identity at stake when stagnation sets in.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:861,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:1904,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:1250},&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;slug&quot;:&quot;philosophy&quot;,&quot;anchor_text&quot;:&quot;the way you respond to it&quot;,&quot;context&quot;:&quot;You can&#39;t control what happens, only the way you respond to it. See also free will.&quot;,&quot;rationale&quot;:&quot;The node&#39;s core idea about responding to circumstances rather than controlling them connects directly to the philosophy node&#39;s discussion of existentialism, determinism, and free will.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;now&quot;,&quot;rationale&quot;:&quot;The &#39;now&#39; node explicitly states &#39;I&#39;ve come to truly believe that 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;Zen&quot;,&quot;rationale&quot;:&quot;Zen philosophy as discussed in that node deals with acceptance and non-attachment to circumstances, deeply complementing this node&#39;s message.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:110,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:177,&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;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 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;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;The node mentions YouTube as the author&#39;s employer, and there is a dedicated node about YouTube in the garden.&quot;},{&quot;slug&quot;:&quot;Zen&quot;,&quot;anchor_text&quot;:&quot;mental health perspective&quot;,&quot;context&quot;:&quot;2026 has been getting much better! Mostly from a mental health perspective.&quot;,&quot;rationale&quot;:&quot;The Zen node discusses the author&#39;s interest in Zen and non-duality as a path to self-understanding, which connects to the mental health theme mentioned here.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;null-rail&quot;,&quot;rationale&quot;:&quot;The null-rail node describes the author&#39;s 2026 embrace of vibe coding and AI music projects, directly paralleling the &#39;now&#39; node&#39;s mention of embracing vibe coding.&quot;},{&quot;slug&quot;:&quot;when to vibe code&quot;,&quot;rationale&quot;:&quot;This node elaborates on the author&#39;s philosophy and practical advice around vibe coding, which is a key topic mentioned in the &#39;now&#39; node.&quot;},{&quot;slug&quot;:&quot;philosophy&quot;,&quot;rationale&quot;:&quot;The philosophy node discusses determinism and the author&#39;s views on reacting to circumstances, which connects to the &#39;not the circumstances&#39; theme in this node.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:426,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&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;:0},&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 in public&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 node explicitly invokes the &#39;learning in public&#39; concept, which is the subject of the dg-public node.&quot;},{&quot;slug&quot;:&quot;ai-music-trends&quot;,&quot;anchor_text&quot;:&quot;The Suno tracks sound good, they&#39;re beyond an uncanny valley&quot;,&quot;context&quot;:&quot;The Suno tracks sound good, they&#39;re beyond an uncanny valley. But they have significant flaws and AI &#92;&quot;tells&#92;&quot;.&quot;,&quot;rationale&quot;:&quot;The ai-music-trends node directly addresses the quality, perception, and future of AI-generated music, elaborating on the exact concerns raised here about synthetic vocals and mix quality.&quot;},{&quot;slug&quot;:&quot;fake-it-music&quot;,&quot;anchor_text&quot;:&quot;full on DIY indie musician&quot;,&quot;context&quot;:&quot;I&#39;ve always prefered the view of myself as a full on DIY indie musician, in some sense an act or artist that happens to be mostly one person&quot;,&quot;rationale&quot;:&quot;The fake-it-music node is specifically about the challenges of being a single person writing, arranging, and recording music versus a full band, which is exactly the tension being described here.&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;The genre-thoughts node directly explores the author&#39;s relationship to writing rock/punk music and the mismatch between the music they listen to and what is commercially viable.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;bands-as-sports-teams&quot;,&quot;rationale&quot;:&quot;The node raises the question of being a &#39;pure songwriter&#39; pitching to bands, which directly relates to bands-as-sports-teams&#39;s discussion of roles within a band and whether star players/songwriters drive success.&quot;},{&quot;slug&quot;:&quot;songwriting-reflections&quot;,&quot;rationale&quot;:&quot;The node grapples with identity as a songwriter and the nature of the songs being produced, which songwriting-reflections elaborates on in terms of the author&#39;s aesthetic preferences and approach.&quot;},{&quot;slug&quot;:&quot;motivation-music&quot;,&quot;rationale&quot;:&quot;The existential question about whether to convert demos into polished recordings maps onto motivation-music&#39;s framework of what inspires or discourages music-making.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:998,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:1262,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:732},&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;The node directly mentions &#39;free will&#39; as a topic and there is a dedicated node for it in the garden.&quot;},{&quot;slug&quot;:&quot;not the circumstances&quot;,&quot;anchor_text&quot;:&quot;the process by which our conscious mind explains to itself why it did something&quot;,&quot;context&quot;:&quot;&#39;free will&#39; is the name we give to the process by which our conscious mind explains to itself why it did something&quot;,&quot;rationale&quot;:&quot;The &#39;Not The Circumstances&#39; node explicitly references free will and determinism as related topics.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;a-story-of-failure&quot;,&quot;rationale&quot;:&quot;That node touches on free will and the narrator&#39;s existentialist view of being &#39;driftwood on the ocean&#39;, directly echoing this philosophy node&#39;s themes.&quot;},{&quot;slug&quot;:&quot;not the circumstances&quot;,&quot;rationale&quot;:&quot;This node explicitly invokes free will and a deterministic outlook (&#39;You can&#39;t control what happens, only the way you respond to it&#39;), making it a strong cross-reference for the philosophy node.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:414,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:252,&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;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;github&quot;,&quot;anchor_text&quot;:&quot;Github repo&quot;,&quot;context&quot;:&quot;I&#39;ve documented some of the more technical issues on the garden&#39;s Github repo&quot;,&quot;rationale&quot;:&quot;The node references the garden&#39;s GitHub repository and there is a dedicated node about GitHub in the garden.&quot;},{&quot;slug&quot;:&quot;dg-evergreen&quot;,&quot;anchor_text&quot;:&quot;Evergreen Notes&quot;,&quot;context&quot;:&quot;I read in Andy Matuschak&#39;s &#92;&quot;Evergreen Notes&#92;&quot; that Evergreen notes should be concept-oriented&quot;,&quot;rationale&quot;:&quot;The node directly discusses Andy Matuschak&#39;s Evergreen Notes concept, which is the subject of the dg-evergreen 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 and do this.&quot;,&quot;rationale&quot;:&quot;The node mentions vibe coding as a technique being considered for garden maintenance, and there is a dedicated node on vibe coding.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;dg-evergreen&quot;,&quot;rationale&quot;:&quot;This node discusses Andy Matuschak&#39;s Evergreen Notes principles around concept-oriented and densely linked notes, which dg-evergreen elaborates on in detail.&quot;},{&quot;slug&quot;:&quot;dg-public&quot;,&quot;rationale&quot;:&quot;The plans described here for growing the garden organically and linking nodes connect directly to the principle of learning and building in public covered in dg-public.&quot;},{&quot;slug&quot;:&quot;digital-garden-itself&quot;,&quot;rationale&quot;:&quot;This node about plans for the garden pairs naturally with the node describing what the digital garden actually is and how it is structured.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1009,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:664,&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;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 node directly elaborates on which programming languages to choose and why, serving as a natural companion piece to the meta language overview.&quot;},{&quot;slug&quot;:&quot;random-knowledge-about-javascript-and-typescript&quot;,&quot;rationale&quot;:&quot;Contains additional technical detail about JavaScript/TypeScript that extends what this meta node briefly mentions about that language.&quot;},{&quot;slug&quot;:&quot;Qwobl&quot;,&quot;rationale&quot;:&quot;Mentions working with Python and Christian at Qwobl, providing context for how the author came to use these languages professionally.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:221,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:139,&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;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;slug&quot;:&quot;danger-third-rail&quot;,&quot;anchor_text&quot;:&quot;recording instruments into a&quot;,&quot;context&quot;:&quot;all of them were based around recording instruments into a DAW&quot;,&quot;rationale&quot;:&quot;The recording setup described is directly used for the Danger Third Rail project, making this a meaningful connection.&quot;},{&quot;slug&quot;:&quot;ableton&quot;,&quot;anchor_text&quot;:&quot;DAW&quot;,&quot;context&quot;:&quot;based around recording instruments into a [DAW]&quot;,&quot;rationale&quot;:&quot;The DAW concept is the subject of the Ableton Live node which explains what a DAW is in the context of music production.&quot;},{&quot;slug&quot;:&quot;highs-and-lows-musician&quot;,&quot;anchor_text&quot;:&quot;20+ years I&#39;ve been making digital music&quot;,&quot;context&quot;:&quot;over the past 20+ years I&#39;ve been making digital music&quot;,&quot;rationale&quot;:&quot;That node discusses the history of the author&#39;s home recording experiences, directly complementing this setup description.&quot;},{&quot;slug&quot;:&quot;music-projects-as-ephemera&quot;,&quot;anchor_text&quot;:&quot;MIDI keyboards&quot;,&quot;context&quot;:&quot;And I have a couple of MIDI keyboards, including an Akai MPK Mini&quot;,&quot;rationale&quot;:&quot;That node discusses MIDI and the author&#39;s history with music production tools including Ableton and Reason.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;highs-and-lows-musician&quot;,&quot;rationale&quot;:&quot;Provides a detailed history of the author&#39;s evolving recording setups and music production journey that directly elaborates on this node.&quot;},{&quot;slug&quot;:&quot;music-projects-as-ephemera&quot;,&quot;rationale&quot;:&quot;Discusses the technical aspects of the author&#39;s DAW setup including Ableton Live and MIDI, complementing the recording setup description.&quot;},{&quot;slug&quot;:&quot;fake-it-music&quot;,&quot;rationale&quot;:&quot;Discusses the challenges of being a solo musician recording all instruments, which is exactly the setup described here.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:460,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:390,&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;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;slug&quot;:&quot;getting-nothing-done&quot;,&quot;rationale&quot;:&quot;The node discusses difficulty sticking with Pimsleur for more than a week, which relates to the procrastination and habit-formation struggles described in Getting Nothing Done.&quot;},{&quot;slug&quot;:&quot;the-chain&quot;,&quot;rationale&quot;:&quot;The struggle to stick with Pimsleur and Anki long-term connects directly to the Seinfeld Strategy for building consistent habits discussed in The Chain.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:414,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:111,&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;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;JavaScript&quot;,&quot;context&quot;:&quot;laying out a webpage and writing some JavaScript for the project, but when I went&quot;,&quot;rationale&quot;:&quot;The node discusses writing JavaScript for the Taper submission, and there is a dedicated node on Javascript/Typescript in the garden.&quot;},{&quot;slug&quot;:&quot;Zen&quot;,&quot;anchor_text&quot;:&quot;duality&quot;,&quot;context&quot;:&quot;I actually submitted this piece for Taper #2, which was about duality, and it got rejected&quot;,&quot;rationale&quot;:&quot;The Zen node discusses non-duality as a central concept, directly connecting to the duality theme of the submitted piece.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;font-of-creativity&quot;,&quot;rationale&quot;:&quot;That node explores the experience of creative output and the desire to make things, which resonates with the frustrated creative energy described in trying to make a Taper submission.&quot;},{&quot;slug&quot;:&quot;blog-cycle&quot;,&quot;rationale&quot;:&quot;The blog-cycle node discusses authoring in HTML and the constraints of web-based mediums, which connects to Taper&#39;s HTML art/poetry format and the technical constraints discussed here.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:637,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:245,&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;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;:63,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:16,&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 covers the ChatGPT era and AI broadly, which is directly relevant to the cultural moment being referenced here.&quot;},{&quot;slug&quot;:&quot;null-rail&quot;,&quot;anchor_text&quot;:&quot;vibe coded fucking everything&quot;,&quot;context&quot;:&quot;I have been a vibe coding fiend. I have vibe coded fucking everything.&quot;,&quot;rationale&quot;:&quot;null-rail is a concrete example of a project the author built through vibe coding, making it a natural illustration of this claim.&quot;},{&quot;slug&quot;:&quot;q-poker-in-progress&quot;,&quot;anchor_text&quot;:&quot;explore lots of ideas quickly&quot;,&quot;context&quot;:&quot;come to see it as a way to truly explore lots of ideas quickly that would be too expensive&quot;,&quot;rationale&quot;:&quot;Q Poker is a personal project that exemplifies the kind of exploratory project vibe coding enables.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;ai&quot;,&quot;rationale&quot;:&quot;The ai node provides broader context on the AI era that enabled vibe coding, including the author&#39;s reflections on ChatGPT and its impact.&quot;},{&quot;slug&quot;:&quot;null-rail&quot;,&quot;rationale&quot;:&quot;Null Rail is explicitly described as a vibe-coded project, making it a direct real-world example of the vibe coding practice described here.&quot;},{&quot;slug&quot;:&quot;getting-nothing-done&quot;,&quot;rationale&quot;:&quot;This node discusses motivation and productivity systems, which connects to the author&#39;s reflections on losing motivation for &#39;regular&#39; coding in favor of vibe coding.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:325,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:355,&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;slug&quot;:&quot;javascript-typescript&quot;,&quot;anchor_text&quot;:&quot;test suite&quot;,&quot;context&quot;:&quot;one or more of my tests in my test suite are emitting warnings from pymysql&quot;,&quot;rationale&quot;:&quot;Tangential but weak — skipping this one.&quot;},{&quot;slug&quot;:&quot;vibe coding&quot;,&quot;anchor_text&quot;:&quot;trial and error&quot;,&quot;context&quot;:&quot;Eventually, with some trial and error, I landed on the following filter&quot;,&quot;rationale&quot;:&quot;No strong match here either.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;programming languages&quot;,&quot;rationale&quot;:&quot;This node is about Python specifically, and the programming languages meta-node ties together all language-specific nodes including Python.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1124,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:143,&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;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! But it usually works best&quot;,&quot;rationale&quot;:&quot;This node is directly about vibe coding and the main node on the topic provides context and definition.&quot;},{&quot;slug&quot;:&quot;intrisic motivation&quot;,&quot;anchor_text&quot;:&quot;personal projects&quot;,&quot;context&quot;:&quot;works best when the stakes are low, for personal projects honestly in my experience&quot;,&quot;rationale&quot;:&quot;The vibe coding node explicitly connects personal projects to intrinsic motivation, making this a meaningful thematic link.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;null-rail&quot;,&quot;rationale&quot;:&quot;Null Rail is a concrete example of a low-stakes personal project where vibe coding was applied, directly illustrating the advice in this node.&quot;},{&quot;slug&quot;:&quot;ai&quot;,&quot;rationale&quot;:&quot;The AI node covers the broader context of the AI era that makes vibe coding possible and relevant.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:81,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&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;: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;slug&quot;:&quot;about&quot;,&quot;anchor_text&quot;:&quot;Wikipedia&quot;,&quot;context&quot;:&quot;WP 1.0 is a project on Wikipedia that I have spent the last 5 years&quot;,&quot;rationale&quot;:&quot;The about node mentions the WP 1.0 Bot as one of Travis&#39;s key projects on Wikipedia, providing direct context for this node.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;Perl&quot;,&quot;rationale&quot;:&quot;The Perl node describes Travis&#39;s experience translating hundreds of lines of Perl into Python specifically for the wp-1.0 bot/web server, directly elaborating on the WP 1.0 project&#39;s history.&quot;},{&quot;slug&quot;:&quot;warnings-python&quot;,&quot;rationale&quot;:&quot;This node is explicitly about squashing Python warnings in the wp-1.0 test suite, making it a direct technical elaboration of the WP 1.0 project.&quot;},{&quot;slug&quot;:&quot;Vue.js&quot;,&quot;rationale&quot;:&quot;The Vue.js node mentions using it for wp-1.0 as a full fledged SPA, elaborating on the frontend stack of the project.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:91,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:239,&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/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;slug&quot;:&quot;writings&quot;,&quot;anchor_text&quot;:&quot;this blog is fiction&quot;,&quot;context&quot;:&quot;the fact that this blog is fiction comes necessarily into question&quot;,&quot;rationale&quot;:&quot;The writings node collects Travis&#39;s fictional and creative writing pieces, making it directly relevant to this node&#39;s meditation on the line between fiction and reality in personal writing.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;blog&quot;,&quot;rationale&quot;:&quot;The blog node discusses the tension between public writing and personal liability, which echoes this piece&#39;s exploration of what can and can&#39;t be said about real people in writing.&quot;},{&quot;slug&quot;:&quot;dg-public&quot;,&quot;rationale&quot;:&quot;This piece grapples with the ethics of writing about real people in a public medium, which connects directly to the principle of learning and writing in public.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:247,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:168,&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 story is part of the writings collection and the writings node explicitly references barney as one of its pieces, making it a natural bidirectional connection.&quot;},{&quot;slug&quot;:&quot;philosophy&quot;,&quot;rationale&quot;:&quot;The story&#39;s central conceit of causal loops and time travel causality (the Princeton Principle) connects thematically to the philosophy node&#39;s discussion of determinism and the nature of free will.&quot;},{&quot;slug&quot;:&quot;free will&quot;,&quot;rationale&quot;:&quot;The Princeton Principle described in the story — matter sent backwards and forwards in time creating causal loops — directly engages with determinism and free will themes that the free will node addresses.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:1024,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:802,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:645},&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;slug&quot;:&quot;writings&quot;,&quot;rationale&quot;:&quot;Best Wrecks is part of the same collection of writings/poems from 2014-2017 that the writings node catalogs and organizes.&quot;},{&quot;slug&quot;:&quot;coping-skills&quot;,&quot;rationale&quot;:&quot;The poem&#39;s themes of discarding and confronting &#39;the wretched mess&#39; of life thematically echo the coping skills node&#39;s exploration of acknowledging pain.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:117,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:106,&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;slug&quot;:&quot;writings&quot;,&quot;rationale&quot;:&quot;This poem is part of the same collection of writings from 2014-2017, and the writings node provides context for understanding this piece as part of a broader creative output.&quot;},{&quot;slug&quot;:&quot;pandemic-weary&quot;,&quot;rationale&quot;:&quot;Both nodes touch on themes of mental exhaustion and the feeling of fading vitality, offering thematic elaboration on the emotional states expressed in this poem.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:112,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:105,&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;slug&quot;:&quot;writings&quot;,&quot;rationale&quot;:&quot;This poem is part of the writings collection and contextualizing it there helps readers understand its origins among Travis&#39;s 2014-2017 creative output.&quot;},{&quot;slug&quot;:&quot;coping-skills&quot;,&quot;rationale&quot;:&quot;The poem&#39;s dark turn beneath a surface of cheerfulness thematically mirrors the node on coping skills and acknowledging that not everything is okay.&quot;},{&quot;slug&quot;:&quot;songwriting-reflections&quot;,&quot;rationale&quot;:&quot;The node on songwriting reflections discusses a preference for melancholy and minor keys in art, which resonates with this poem&#39;s subversion of forced happiness.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:117,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:145,&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 a therapeutic framework specifically focused on coping skills, making it directly relevant to the themes in this node.&quot;},{&quot;slug&quot;:&quot;philosophy&quot;,&quot;rationale&quot;:&quot;The node&#39;s themes of acceptance, resilience, and acknowledging pain without being defeated relate to the existentialist and Zen ideas discussed in the philosophy node.&quot;},{&quot;slug&quot;:&quot;Zen&quot;,&quot;rationale&quot;:&quot;The practice of seeing, knowing, and feeling pain as a path to resilience parallels Zen mindfulness concepts discussed in that node.&quot;},{&quot;slug&quot;:&quot;pandemic-weary&quot;,&quot;rationale&quot;:&quot;The pandemic-weary node discusses similar themes of mental struggle and emotional difficulty, providing context for the coping skills node.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:141,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:176,&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/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 the desired meditative Zen emptiness with its own hollow creative void, making a direct conceptual link to the Zen node meaningful.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;not-quite-writers-block&quot;,&quot;rationale&quot;:&quot;That node directly addresses creative block in music and songwriting, the same core struggle described here — being unable to produce despite wanting to.&quot;},{&quot;slug&quot;:&quot;something-terrible&quot;,&quot;rationale&quot;:&quot;Offers a practical antidote to the exact creative emptiness described here, exploring how giving oneself permission to create badly can break the stasis.&quot;},{&quot;slug&quot;:&quot;font-of-creativity&quot;,&quot;rationale&quot;:&quot;Explores the nature of the creative impulse — what it feels like when ideas burst out and what it means when they don&#39;t — directly complementing this node&#39;s lament.&quot;},{&quot;slug&quot;:&quot;intrisic motivation&quot;,&quot;rationale&quot;:&quot;Discusses the internal (or absent) drive to create, which maps closely to the resigned, motivationally drained state described in this node.&quot;},{&quot;slug&quot;:&quot;pandemic-weary&quot;,&quot;rationale&quot;:&quot;Describes a nearly identical mental state of listlessness, anxiety, and inability to engage with creative hobbies, offering a companion piece to this node.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:597,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:1263,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:942},&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;slug&quot;:&quot;ai&quot;,&quot;anchor_text&quot;:&quot;friendly robot&quot;,&quot;context&quot;:&quot;enlist the help of a friendly robot or at least a properly configured handy computing device&quot;,&quot;rationale&quot;:&quot;The node&#39;s central question about machine-generated poetry directly connects to the AI node&#39;s discussion of AI-generated content and creativity.&quot;},{&quot;slug&quot;:&quot;ai-music-trends&quot;,&quot;anchor_text&quot;:&quot;humanly written, humanly formed&quot;,&quot;context&quot;:&quot;could you say that the poetry was humanly written, humanly formed? Would it still express humanity?&quot;,&quot;rationale&quot;:&quot;The AI Music Trends node explores the same philosophical question of whether AI-generated creative work can be distinguished from human-made art.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;Suno&quot;,&quot;rationale&quot;:&quot;Suno explores AI-generated music/creativity in a way that parallels this poem&#39;s question about whether machine-produced creative work retains human meaning.&quot;},{&quot;slug&quot;:&quot;font-of-creativity&quot;,&quot;rationale&quot;:&quot;That node explores what drives creative output and whether inspiration is intrinsic, which complements this poem&#39;s meditation on machine-generated versus human poetry.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:308,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&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;:0},&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;slug&quot;:&quot;songwriting-reflections&quot;,&quot;rationale&quot;:&quot;The node on songwriting reflections discusses the appeal of melancholy and minor keys in music, directly echoing the poem&#39;s embrace of melancholy and &#39;un-joy&#39;.&quot;},{&quot;slug&quot;:&quot;philosophy&quot;,&quot;rationale&quot;:&quot;The poem&#39;s acceptance of melancholy and existential reflection on &#39;what it&#39;s like to be me&#39; connects to the philosophy node&#39;s themes of existentialism and finding meaning in life&#39;s absurdity.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:200,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:120,&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;writings&quot;,&quot;rationale&quot;:&quot;The &#39;writings&#39; node is the broader collection of poetry and creative writing that this node belongs to, making it a natural cross-reference for context.&quot;},{&quot;slug&quot;:&quot;empty-mind&quot;,&quot;rationale&quot;:&quot;Both nodes grapple with the challenge of creative output and the desire to write, making them thematically complementary.&quot;},{&quot;slug&quot;:&quot;font-of-creativity&quot;,&quot;rationale&quot;:&quot;The &#39;font of creativity&#39; node explores the same compulsion to write and create that this poem expresses, providing meaningful elaboration on its themes.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:243,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:136,&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;dg-new&quot;,&quot;anchor_text&quot;:&quot;extremely new and shiny&quot;,&quot;context&quot;:&quot;Since Ghost is also extremely new and shiny, it has some appeal as a new toy&quot;,&quot;rationale&quot;:&quot;The node about embracing new things in digital gardening directly relates to the author&#39;s attraction to new tools like Ghost.&quot;},{&quot;slug&quot;:&quot;blog&quot;,&quot;anchor_text&quot;:&quot;blog I already have&quot;,&quot;context&quot;:&quot;no one reads the blog I already have, and the effort of setting up a new one&quot;,&quot;rationale&quot;:&quot;The author references their existing blog, which is a distinct node in the garden covering their blogging history and philosophy.&quot;},{&quot;slug&quot;:&quot;writings&quot;,&quot;anchor_text&quot;:&quot;writings.travisbriggs.com&quot;,&quot;context&quot;:&quot;After all, the URL is http://writings.travisbriggs.com. Surely people would understand&quot;,&quot;rationale&quot;:&quot;The writings node is the direct home of the content described in this introduction post.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;blog-cycle&quot;,&quot;rationale&quot;:&quot;That node discusses the tendency to rebuild or restart blogs from scratch, which directly echoes the impulse described here to launch a new blog platform for creative writing.&quot;},{&quot;slug&quot;:&quot;considering-moving-blogs&quot;,&quot;rationale&quot;:&quot;This node covers the author&#39;s recurring pattern of evaluating new blogging platforms, which mirrors the decision described here to move to Ghost for fiction writing.&quot;},{&quot;slug&quot;:&quot;dg-reverse&quot;,&quot;rationale&quot;:&quot;The introduction mentions wanting a &#39;better way&#39; beyond just posting to an existing blog, which connects to the garden&#39;s philosophy of rejecting reverse-chronological blogging norms.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:367,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:344,&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/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;slug&quot;:&quot;writings&quot;,&quot;rationale&quot;:&quot;This poem is part of the same collection of writings from 2014-2017 and fits the emotional tone described there.&quot;},{&quot;slug&quot;:&quot;coping-skills&quot;,&quot;rationale&quot;:&quot;The poem&#39;s themes of pain, broken heart, and finding meaning in suffering resonate with the coping skills node&#39;s subject matter.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:263,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:90,&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;slug&quot;:&quot;writings&quot;,&quot;anchor_text&quot;:&quot;my bandmates always hated when I called it rehearsal&quot;,&quot;context&quot;:&quot;Sorry, &#39;practice&#39; — my bandmates always hated when I called it rehearsal. But you know&quot;,&quot;rationale&quot;:&quot;This piece is part of the writings collection and linking to that node contextualizes it within the broader set of creative writing pieces.&quot;},{&quot;slug&quot;:&quot;Christian&quot;,&quot;anchor_text&quot;:&quot;Christian thing to do&quot;,&quot;context&quot;:&quot;as if that was a very Christian thing to do. Like we weren&#39;t really sleeping together&quot;,&quot;rationale&quot;:&quot;The word &#39;Christian&#39; appears in the text and there is a node about a person named Christian, creating an amusing potential connection, though it&#39;s a pun/coincidence rather than a direct reference.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;writings&quot;,&quot;rationale&quot;:&quot;This node is explicitly part of the writings collection of short fiction and poetry pieces from 2014-2017.&quot;},{&quot;slug&quot;:&quot;font-of-creativity&quot;,&quot;rationale&quot;:&quot;The narrator&#39;s voice and the act of starting and restarting the story reflects themes of creative output and the struggle to express ideas that are discussed in that node.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:499,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&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;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;slug&quot;:&quot;writings&quot;,&quot;anchor_text&quot;:&quot;Pavement Windshield Pop&quot;,&quot;context&quot;:&quot;snippets of writing that I created between 2014 and 2017&quot;,&quot;rationale&quot;:&quot;This poem is part of the writings collection and should link back to its parent collection node.&quot;},{&quot;slug&quot;:&quot;philosophy&quot;,&quot;anchor_text&quot;:&quot;That&#39;s all life is&quot;,&quot;context&quot;:&quot;That&#39;s all life is, which -pow- arrives like a car crash&quot;,&quot;rationale&quot;:&quot;The poem touches on existential themes about life&#39;s meaning that connect directly to the philosophy node.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;writings&quot;,&quot;rationale&quot;:&quot;This poem is part of the broader writings collection migrated from writings.travisbriggs.com.&quot;},{&quot;slug&quot;:&quot;preoccupied&quot;,&quot;rationale&quot;:&quot;Both are poems from the same era dealing with existential themes of life, death, and the passage of time.&quot;},{&quot;slug&quot;:&quot;hurricane&quot;,&quot;rationale&quot;:&quot;Both poems use visceral, kinetic imagery to explore themes of destruction and creative renewal.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:342,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:224,&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 nodes deal with anxiety, emotional pain, and mental health struggles — coping-skills directly addresses strategies for managing these feelings.&quot;},{&quot;slug&quot;:&quot;pandemic-weary&quot;,&quot;rationale&quot;:&quot;Pandemic Weary describes similar feelings of dread, exhaustion, and inability to engage with daily life that this poem expresses.&quot;},{&quot;slug&quot;:&quot;DBT&quot;,&quot;rationale&quot;:&quot;DBT (Dialectical Behavior Therapy) is directly relevant to the anxiety and emotional regulation themes in this poem.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:221,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:129,&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;slug&quot;:&quot;writings&quot;,&quot;anchor_text&quot;:&quot;wrote poems&quot;,&quot;context&quot;:&quot;was preoccupied with death and wrote poems, fiercely stripped of other intentions&quot;,&quot;rationale&quot;:&quot;This poem is part of the broader writings collection, and linking &#39;wrote poems&#39; to that node contextualizes it within the author&#39;s creative writing output.&quot;},{&quot;slug&quot;:&quot;philosophy&quot;,&quot;anchor_text&quot;:&quot;ultimate demise&quot;,&quot;context&quot;:&quot;Why dwell on ultimate demise? Why let the fragrant afternoon pass, unexamined&quot;,&quot;rationale&quot;:&quot;The poem&#39;s meditation on death and existential questioning connects directly to the philosophy node&#39;s discussion of existentialism and finding meaning.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;empty-mind&quot;,&quot;rationale&quot;:&quot;Both nodes explore a poet&#39;s relationship with creative output and the inner emotional landscape, including anxiety and the struggle to create.&quot;},{&quot;slug&quot;:&quot;suffer&quot;,&quot;rationale&quot;:&quot;&#39;Suffer&#39; is a poem similarly preoccupied with unfinished creative work and existential anguish, making it a natural thematic companion to this node.&quot;},{&quot;slug&quot;:&quot;blackness&quot;,&quot;rationale&quot;:&quot;&#39;Blackness&#39; shares the same dark, death-adjacent meditative tone and poetic form as &#39;Preoccupied&#39;, making them closely related pieces in the writings collection.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:258,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:281,&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;slug&quot;:&quot;writings&quot;,&quot;rationale&quot;:&quot;This poem is part of the same collection of writings from 2014-2017 that were migrated into the garden, making it a natural cross-reference.&quot;},{&quot;slug&quot;:&quot;ai-music-trends&quot;,&quot;rationale&quot;:&quot;Both nodes touch on the devaluation of music and the sense of being crushed by mass-produced, lowest-common-denominator popular culture.&quot;},{&quot;slug&quot;:&quot;Bandcamp&quot;,&quot;rationale&quot;:&quot;The node&#39;s critique of the &#39;trash heap of popular culture&#39; and mass-produced music connects to Bandcamp&#39;s discussion of the stratification of the music industry and the long tail of artists.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:230,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:155,&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;slug&quot;:&quot;empty-mind&quot;,&quot;anchor_text&quot;:&quot;songs unwritten&quot;,&quot;context&quot;:&quot;From the agony of songs unwritten And poems unsung which Cleave their hooks&quot;,&quot;rationale&quot;:&quot;The Empty Mind node directly addresses the inability to create music and write songs, mirroring the poem&#39;s theme of creative frustration.&quot;},{&quot;slug&quot;:&quot;writings&quot;,&quot;anchor_text&quot;:&quot;poems unsung&quot;,&quot;context&quot;:&quot;From the agony of songs unwritten And poems unsung which Cleave their hooks into my brain&quot;,&quot;rationale&quot;:&quot;This poem is part of the writings collection, and linking &#39;poems unsung&#39; to that node connects the creative output theme directly.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;empty-mind&quot;,&quot;rationale&quot;:&quot;Empty Mind explores the same creative paralysis and inability to produce music or poetry that this poem expresses through its imagery of &#39;songs unwritten and poems unsung&#39;.&quot;},{&quot;slug&quot;:&quot;pandemic-weary&quot;,&quot;rationale&quot;:&quot;Pandemic Weary describes the same evening dread and inability to engage with activities, closely mirroring the emotional state depicted in this poem.&quot;},{&quot;slug&quot;:&quot;pillows-and-sheets&quot;,&quot;rationale&quot;:&quot;Pillows and Sheets shares the same tone of dejection and inability to engage with daily life, making it a strong companion poem.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:301,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:281,&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 node is part of the same collection of creative writing pieces that were migrated from writings.travisbriggs.com, and the writings node serves as the index for these pieces.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:313,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:63,&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;intrisic motivation&quot;,&quot;rationale&quot;:&quot;The poem&#39;s theme of self-motivation and getting things done connects directly to the node on intrinsic vs extrinsic motivation.&quot;},{&quot;slug&quot;:&quot;the-chain&quot;,&quot;rationale&quot;:&quot;The Seinfeld Strategy node discusses building habits and showing up daily, which aligns closely with the poem&#39;s message about doing the work each day.&quot;},{&quot;slug&quot;:&quot;coping-skills&quot;,&quot;rationale&quot;:&quot;Both nodes deal with finding the inner resolve to push through difficult feelings and keep going.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:295,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:127,&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;in a very zen sense&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 Zen philosophy to describe the non-existence of home, and the garden has a dedicated Zen node covering exactly these ideas of non-duality and the nature of existence.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;philosophy&quot;,&quot;rationale&quot;:&quot;The philosophy node discusses existentialism, the absurdity of existence, and Zen, all of which deeply parallel this node&#39;s meditation on home as a construct that doesn&#39;t truly exist.&quot;},{&quot;slug&quot;:&quot;free will&quot;,&quot;rationale&quot;:&quot;This node&#39;s river metaphor and deterministic framing (&#39;the river ceases to exist before you even step out of it&#39;) resonates thematically with the garden&#39;s exploration of free will and whether we have agency over our circumstances.&quot;},{&quot;slug&quot;:&quot;not the circumstances&quot;,&quot;rationale&quot;:&quot;That node&#39;s focus on accepting reality as it is rather than longing for something else complements this node&#39;s conclusion that home is an unattainable ideal the heart always yearns for.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:933,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:750,&quot;output_tokens_details&quot;:{&quot;thinking_tokens&quot;:492},&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;slug&quot;:&quot;suffer&quot;,&quot;rationale&quot;:&quot;Both poems explore themes of futile work, wasted effort, and the agony of creative output left unrealized.&quot;},{&quot;slug&quot;:&quot;empty-mind&quot;,&quot;rationale&quot;:&quot;The dried &#39;fonts of inspiration&#39; in Toil echoes the creative emptiness described in Empty Mind.&quot;},{&quot;slug&quot;:&quot;philosophy&quot;,&quot;rationale&quot;:&quot;The poem&#39;s nihilistic conclusion about futility and indifference connects to the existentialist and determinist themes explored in the philosophy node.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:230,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:122,&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;slug&quot;:&quot;listening-to-music-while-doing-things&quot;,&quot;anchor_text&quot;:&quot;listening to music&quot;,&quot;context&quot;:&quot;can&#39;t write poetry while listening to music. Well no one said that&quot;,&quot;rationale&quot;:&quot;This node directly explores the theme of doing creative work while listening to music, which is the central premise of this poem.&quot;},{&quot;slug&quot;:&quot;songwriting-reflections&quot;,&quot;anchor_text&quot;:&quot;poetry and music&quot;,&quot;context&quot;:&quot;A bit of zest from someone else&#39;s poetry and music, illuminating sound&quot;,&quot;rationale&quot;:&quot;That node reflects on music and creative expression, closely related to the interplay between poetry and music explored here.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;font-of-creativity&quot;,&quot;rationale&quot;:&quot;That node explores the compulsive need to create and the struggle with creative output, themes that resonate with this poem&#39;s ambivalence about the creative writing process.&quot;},{&quot;slug&quot;:&quot;blogging-but-this-time-with-blogging&quot;,&quot;rationale&quot;:&quot;That node discusses a similar free-writing exercise where song lyrics inspire the next line of writing, directly parallel to the approach described in this poem.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:361,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:244,&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&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;slug&quot;:&quot;digital-garden-itself&quot;,&quot;anchor_text&quot;:&quot;integrate them into the Garden&quot;,&quot;context&quot;:&quot;I thought it would be nice to integrate them into the Garden. Just need to make sure&quot;,&quot;rationale&quot;:&quot;The node references the Garden itself, which has its own dedicated node explaining the digital garden project.&quot;},{&quot;slug&quot;:&quot;blog&quot;,&quot;anchor_text&quot;:&quot;idle time-wasting&quot;,&quot;context&quot;:&quot;Most of these were just idle time-wasting while sitting on the Google bus.&quot;,&quot;rationale&quot;:&quot;The writing collection relates to the broader blog/writing output the author discusses in the blog node.&quot;}],&quot;cross_references&quot;:[{&quot;slug&quot;:&quot;dg-evergreen&quot;,&quot;rationale&quot;:&quot;The act of migrating old writings into the garden and keeping them as living nodes is a good example of the evergreen principle discussed in this node.&quot;},{&quot;slug&quot;:&quot;font-of-creativity&quot;,&quot;rationale&quot;:&quot;The font-of-creativity node reflects on the author&#39;s creative writing impulses, directly relevant to this collection of writings from the same period.&quot;},{&quot;slug&quot;:&quot;empty-mind&quot;,&quot;rationale&quot;:&quot;The empty-mind node discusses the author&#39;s struggles with creative output and depression, thematically consistent with the &#39;very depressed&#39; writings described here.&quot;}]},&quot;usage&quot;:{&quot;input_tokens&quot;:358,&quot;cache_creation_input_tokens&quot;:0,&quot;cache_read_input_tokens&quot;:25023,&quot;cache_creation&quot;:{&quot;ephemeral_5m_input_tokens&quot;:0,&quot;ephemeral_1h_input_tokens&quot;:0},&quot;output_tokens&quot;:266,&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;totals&quot;:{&quot;input&quot;:72934,&quot;output&quot;:58976,&quot;cacheRead&quot;:3202944,&quot;cacheWrite&quot;:25023},&quot;generatedAt&quot;:&quot;2026-05-29T13:07:40.467Z&quot;,&quot;nodeCount&quot;:129,&quot;totalLinks&quot;:253,&quot;totalRefs&quot;:352,&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;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-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;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;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;:0}&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 flips the reward structure on its head. 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>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>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>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>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>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>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 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.&lt;/p&gt;
&lt;p&gt;I 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 &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 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.&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;h1 style=&quot;text-align: center&quot;&gt;Digital Garden of Travis Briggs&lt;/h1&gt;

&lt;div style=&quot;text-align: center; margin: 4rem auto&quot;&gt;
  &lt;a href=&quot;https://garden.travisbriggs.com/garden/&quot; style=&quot;font-size: 1.5rem&quot;&gt;Approach the garden&lt;/a&gt;
  &lt;div style=&quot;margin-top: 0.5rem; color: #444&quot;&gt;
    &lt;a href=&quot;https://maggieappleton.com/garden-history&quot;&gt;What is a digital garden?&lt;/a&gt;
  &lt;/div&gt;
&lt;/div&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 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 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 feedback or approval, though that&#39;s not really how the world works. Maybe once I get comments working and &lt;a href=&quot;https://garden.travisbriggs.com/garden/dg-feedback/&quot;&gt;can respond to feedback&lt;/a&gt; it will be more true that this garden exists for engagement and discussion, and not just to blast my ideas out into the world.&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 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 &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 rock, pop and especially not EDM music 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>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>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>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>