<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">

<channel>

<title>Rosano / entries tagged &#34;process&#34;</title>



<link>https://rosano.ca/log/tag/process/</link>

<generator>Hugo</generator>

<language>en-ca</language>



<lastBuildDate>Tue, 14 Apr 2026 08:33:02 +0000</lastBuildDate>

<atom:link href="https://rosano.ca/log/tag/process/feed" rel="self" type="application/rss" /><item>
  <title>tidying my homepage</title>
  <link>https://rosano.ca/blog/tidying-my-homepage/</link>
  <pubDate>Sun, 22 Mar 2026 11:50:00 +0000</pubDate>
  <guid>https://rosano.ca/blog/tidying-my-homepage/</guid>
  <description>Feels good to improve so much without a big &#39;redesign&#39;.</description>
  <content:encoded><![CDATA[
  <div class="post">

<nugget>Feels good to improve so much without a big 'redesign'.</nugget><hr>
<div class="content"><p>I've reorganized <a href="https://rosano.ca">my homepage</a> a bit.</p>
<figure>
<p><img src="https://static.rosano.ca/home/blog/2026-03-22-tidying-my-homepage/difference.gif" alt="scrolling preview of the previous and current layouts">
</p>
</figure>
<ol>
<li>Much less scrolling is needed now.</li>
<li>Larger lists have been broken into smaller lists which are easier to orient.</li>
<li>Mixing writing into each section makes way more sense. (I learn more and more: don't sort by type).</li>
<li>It's deliberately a bit rough so that I can fix things later.</li>
</ol>
<p>I had more grandiose ideas, but this will do for the moment. Feels good to improve so much without a big 'redesign'.</p>
<p>The <a href="http://loc.hom:1313/blog/why-i-added-text-to-my-pure-icon-site-after-eight-years/">last update in 2021</a> was quite dramatic for me, going from pure icons to text; slowly considering more the reader over 'aesthetic'.</p>
<p>This is part of some things I'm doing for the 20th anniversary of my domain. More to come this year.</p>
</div><small>Part of <a href="/log/series/digital-homestead/">Digital homestead</a>.</small><p>
	<small>Tagged: <a href="/log/tag/process/">process</a>, <a href="/log/tag/changelog/">changelog</a>.
	</small>
</p>

<hr>
<span class="metadata" data-pagefind-ignore>

	<small>
		<a aria-label="Permalink for 12:50 pm, March 22, 2026" href="/blog/tidying-my-homepage/"><time datetime="2026-03-22T12:50:00&#43;01:00" data-pagefind-sort="date[datetime]">12h50</time></a>

		
		<span>from <a href="/log/place/berlin/">Berlin</a> / </span>

		<span><a href="/log/country/germany/">Germany</a></span></small>

</span>

</div>

  ]]></content:encoded>
</item><item>
  <title>Sunday, March 22, 2026 12h50</title>
  <link>https://rosano.ca/log/2026-03-22-tidying-my-homepage/</link>
  <pubDate>Sun, 22 Mar 2026 12:50:00 +0100</pubDate>
  <guid>https://rosano.ca/log/2026-03-22-tidying-my-homepage/</guid>
  <description>I&#39;ve reorganized my homepage a bit.&#xA;Much less scrolling is needed now. Larger lists have been broken into smaller lists which are easier to orient. Mixing writing into each section makes way more sense. (I learn more and more: don&#39;t sort by type). It&#39;s deliberately a bit rough so that I can fix things later. I had more grandiose ideas, but this will do for the moment. Feels good to improve so much without a big &#39;redesign&#39;.&#xA;</description>
  <content:encoded><![CDATA[
  <div class="post">

<nugget><p>I've reorganized <a href="https://rosano.ca">my homepage</a> a bit.</p>
<figure>
<p><img src="https://static.rosano.ca/home/timeline/2026-03-22-tidying-my-homepage1774180200/difference.gif" alt="scrolling preview of the previous and current layouts">
</p>
</figure>
<ol>
<li>Much less scrolling is needed now.</li>
<li>Larger lists have been broken into smaller lists which are easier to orient.</li>
<li>Mixing writing into each section makes way more sense. (I learn more and more: don't sort by type).</li>
<li>It's deliberately a bit rough so that I can fix things later.</li>
</ol>
<p>I had more grandiose ideas, but this will do for the moment. Feels good to improve so much without a big 'redesign'.</p></nugget><hr>
<div class="content"><p>I've reorganized <a href="https://rosano.ca">my homepage</a> a bit.</p>
<figure>
<p><img src="https://static.rosano.ca/home/timeline/2026-03-22-tidying-my-homepage1774180200/difference.gif" alt="scrolling preview of the previous and current layouts">
</p>
</figure>
<ol>
<li>Much less scrolling is needed now.</li>
<li>Larger lists have been broken into smaller lists which are easier to orient.</li>
<li>Mixing writing into each section makes way more sense. (I learn more and more: don't sort by type).</li>
<li>It's deliberately a bit rough so that I can fix things later.</li>
</ol>
<p>I had more grandiose ideas, but this will do for the moment. Feels good to improve so much without a big 'redesign'.</p>
<p>The <a href="http://loc.hom:1313/blog/why-i-added-text-to-my-pure-icon-site-after-eight-years/">last update in 2021</a> was quite dramatic for me, going from pure icons to text; slowly considering more the reader over 'aesthetic'.</p>
<p>This is part of some things I'm doing for the 20th anniversary of my domain. More to come this year.</p>
</div><small>Part of <a href="/log/series/digital-homestead/">Digital homestead</a>.</small><p>
	<small>Tagged: <a href="/log/tag/process/">process</a>, <a href="/log/tag/changelog/">changelog</a>.
	</small>
</p>

<hr>
<span class="metadata" data-pagefind-ignore>

	<small>
		<a aria-label="Permalink for 12:50 pm, March 22, 2026" href="/log/2026-03-22-tidying-my-homepage/"><time datetime="2026-03-22T12:50:00&#43;01:00" data-pagefind-sort="date[datetime]">12h50</time></a>

		
		<span>from <a href="/log/place/berlin/">Berlin</a> / </span>

		<span><a href="/log/country/germany/">Germany</a></span></small>

</span>

</div>

  ]]></content:encoded>
</item><item>
  <title>introducing feedbox</title>
  <link>https://rosano.ca/blog/introducing-feedbox/</link>
  <pubDate>Wed, 20 Dec 2023 12:29:56 +0000</pubDate>
  <guid>https://rosano.ca/blog/introducing-feedbox/</guid>
  <description>Embed an RSS feed on any website with a few lines of code.</description>
  <content:encoded><![CDATA[
  <div class="post">

<nugget>Embed an RSS feed on any website with a few lines of code.</nugget><hr>
<div class="content"><p><a href="https://github.com/rosano/feedbox">feedbox</a> is an embed for previewing RSS feeds. Here's what it looks like:</p>
<p><img src="https://static.rosano.ca/home/blog/2023-12-20-introducing-feedbox/2023.12.20-08h56.jpg" aria-hidden="true">
</p>
<p>Here it's configured to fetch the one from this blog, but you can use any RSS feed and drop in on your website with a few lines of code. I've added it to all my project home pages, including <a href="https://0data.app">Zero Data App</a> and <a href="https://rosano.ca">my homepage</a>.</p>
<p>It uses an instance of <a href="https://github.com/Rob--W/cors-anywhere">cors-anywhere</a> to get around CORS complaints; I hope someday it will be simpler to just <code>fetch</code> the raw contents of a page.</p>
<p>Unlike most of my programming projects, I tried to write code that feels more 'messy' to me (simple human names instead of XYZVerboseNames, which is generally hell for other people). I also actually wrote a <a href="https://github.com/rosano/feedbox/blob/master/README.md">README</a> (uncommon for most of the over 100 <a href="https://github.com/olsk">OldSkool</a> modules) to describe the setup and possible options; hope to maintain this as a baseline for future modules.</p>
<p>Was kind of fun to let go, and not test everything, although I still wrote some tests…</p>
<p>As a more general complement, I <a href="https://github.com/olsk/OLSKExpress/commit/4eabc72df40cb0c822c27ba86ac45300e48a13c7#">automatically added link[rel=&quot;alternate]</a> to sites that don't have one by setting an environment variable.</p>
<p>The sensation of stuff updating everywhere, even on static pages, without anybody doing anything, is kind of electric to me: isn't that what computers are for? <em>bleep bloop</em>!</p>
</div><p>
	<small>Tagged: <a href="/log/tag/process/">process</a>, <a href="/log/tag/debut/">debut</a>, <a href="/log/tag/technical/">technical</a>.
	</small>
</p>

<hr>
<span class="metadata" data-pagefind-ignore>

	<small>
		<a aria-label="Permalink for 9:29 am, December 20, 2023" href="/blog/introducing-feedbox/"><time datetime="2023-12-20T09:29:56-03:00" data-pagefind-sort="date[datetime]">09h29</time></a>

		
		<span>from <a href="/log/place/brasilia/">Brasilia</a> / </span>

		<span><a href="/log/country/brazil/">Brazil</a></span></small>

</span>

</div>

  ]]></content:encoded>
</item><item>
  <title>Wednesday, December 20, 2023 09h29</title>
  <link>https://rosano.ca/log/2023-12-20-introducing-feedbox/</link>
  <pubDate>Wed, 20 Dec 2023 09:29:56 -0300</pubDate>
  <guid>https://rosano.ca/log/2023-12-20-introducing-feedbox/</guid>
  <description>feedbox is an embed for previewing RSS feeds. Here&#39;s what it looks like:&#xA;Here it&#39;s configured to fetch the one from this blog, but you can use any RSS feed and drop in on your website with a few lines of code. I&#39;ve added it to all my project home pages, including Zero Data App and my homepage.&#xA;It uses an instance of cors-anywhere to get around CORS complaints; I hope someday it will be simpler to just fetch the raw contents of a page.&#xA;</description>
  <content:encoded><![CDATA[
  <div class="post">

<nugget><p><a href="https://github.com/rosano/feedbox">feedbox</a> is an embed for previewing RSS feeds. Here's what it looks like:</p>
<p><img src="https://static.rosano.ca/home/timeline/2023-12-20-introducing-feedbox1703075396/2023.12.20-08h56.jpg" aria-hidden="true">
</p>
<p>Here it's configured to fetch the one from this blog, but you can use any RSS feed and drop in on your website with a few lines of code. I've added it to all my project home pages, including <a href="https://0data.app">Zero Data App</a> and <a href="https://rosano.ca">my homepage</a>.</p>
<p>It uses an instance of <a href="https://github.com/Rob--W/cors-anywhere">cors-anywhere</a> to get around CORS complaints; I hope someday it will be simpler to just <code>fetch</code> the raw contents of a page.</p></nugget><hr>
<div class="content"><p><a href="https://github.com/rosano/feedbox">feedbox</a> is an embed for previewing RSS feeds. Here's what it looks like:</p>
<p><img src="https://static.rosano.ca/home/timeline/2023-12-20-introducing-feedbox1703075396/2023.12.20-08h56.jpg" aria-hidden="true">
</p>
<p>Here it's configured to fetch the one from this blog, but you can use any RSS feed and drop in on your website with a few lines of code. I've added it to all my project home pages, including <a href="https://0data.app">Zero Data App</a> and <a href="https://rosano.ca">my homepage</a>.</p>
<p>It uses an instance of <a href="https://github.com/Rob--W/cors-anywhere">cors-anywhere</a> to get around CORS complaints; I hope someday it will be simpler to just <code>fetch</code> the raw contents of a page.</p>
<p>Unlike most of my programming projects, I tried to write code that feels more 'messy' to me (simple human names instead of XYZVerboseNames, which is generally hell for other people). I also actually wrote a <a href="https://github.com/rosano/feedbox/blob/master/README.md">README</a> (uncommon for most of the over 100 <a href="https://github.com/olsk">OldSkool</a> modules) to describe the setup and possible options; hope to maintain this as a baseline for future modules.</p>
<p>Was kind of fun to let go, and not test everything, although I still wrote some tests…</p>
<p>As a more general complement, I <a href="https://github.com/olsk/OLSKExpress/commit/4eabc72df40cb0c822c27ba86ac45300e48a13c7#">automatically added link[rel=&quot;alternate]</a> to sites that don't have one by setting an environment variable.</p>
<p>The sensation of stuff updating everywhere, even on static pages, without anybody doing anything, is kind of electric to me: isn't that what computers are for? <em>bleep bloop</em>!</p>
</div><p>
	<small>Tagged: <a href="/log/tag/process/">process</a>, <a href="/log/tag/debut/">debut</a>, <a href="/log/tag/technical/">technical</a>.
	</small>
</p>

<hr>
<span class="metadata" data-pagefind-ignore>

	<small>
		<a aria-label="Permalink for 9:29 am, December 20, 2023" href="/log/2023-12-20-introducing-feedbox/"><time datetime="2023-12-20T09:29:56-03:00" data-pagefind-sort="date[datetime]">09h29</time></a>

		
		<span>from <a href="/log/place/brasilia/">Brasilia</a> / </span>

		<span><a href="/log/country/brazil/">Brazil</a></span></small>

</span>

</div>

  ]]></content:encoded>
</item><item>
  <title>2022</title>
  <link>https://rosano.ca/blog/2022/</link>
  <pubDate>Sun, 01 Jan 2023 13:17:23 +0000</pubDate>
  <guid>https://rosano.ca/blog/2022/</guid>
  <description>Year two of my experiment in creating sustainable income as an independent creator.&#xA;I&#39;m currently so optimistic and confident about how much better it&#39;s going to look next year that I have no shame about how bad it might look this year. Also continually surprised at my unwavering commitment to something that appears to bear only a small material result. One might question when it makes sense to stop versus persist, but it&#39;s so obvious to me that the things which excite me and absorb my curiosity should be where I spend my time, that I usually make compromises that a rational person wouldn&#39;t make… I still believe my vision is possible and realistic, but it will take time based on the parameters I&#39;ve chosen.&#xA;</description>
  <content:encoded><![CDATA[
  <div class="post">


<div class="content"><p><em>Year two of my experiment in creating sustainable income as an independent creator.</em></p>
<hr>
<p>I'm currently so optimistic and confident about how much better it's going to look next year that I have no shame about how bad it might look this year. Also continually surprised at my unwavering commitment to something that appears to bear only a small material result. One might question when it makes sense to stop versus persist, but it's so obvious to me that the things which excite me and absorb my curiosity should be where I spend my time, that I usually make compromises that a rational person wouldn't make… I still believe my vision is possible and realistic, but it will take time based on the parameters I've chosen.</p>
<h1 id="podcast">Podcast</h1>
<p>The most significant effort I made this year was in producing <a href="https://rosano.hmm.garden/01frx8srcjn6v3jq7x6tp0a1nw">Strolling</a>, and it was quite a trip.</p>
<p>My original concept involved an intense two-week editing ceremony per episode, resulting in a short version, long version, intro, outro, music produced for each episode, subtitles, guest playlist, and publishing to every platform. I was rather proud of the result and intended to continue for a while, as it was creatively fulfilling, but participating in the <a href="https://moos.garden">moos.garden</a> residency changed things as I needed to record many guests in a short period, so I switched to publishing snippets with as little editing as possible. I'm also quite happy with this change and got lots of positive feedback (people like the tiny bites and enjoy them like little pieces of candy every now and then).</p>
<p>I learned to avoid a strict interview structure when possible, have more back and forth, film video from the waist up, and maybe care a little more about video quality than I'd like. Membership-wise I think I made a gross miscalibration in optimizing for 'people on the Internet' as a potential and somewhat generic audience: I learned that some common patterns for transacting (which I was trying to model) may not apply here, as the majority of members are people who know me somehow and want to support what I'm doing, not really in exchange for any 'exclusive content'—it's possible that I need to eventually optimize what I offer for a different kind of value exchange, where what supporters receive is not necessarily a material thing.</p>
<h1 id="freelancing-a-bit">Freelancing a bit</h1>
<p>I had a brief stint with getting paid as a freelancer again, curious to see how far I could pursue that: although it's validating to get paid for what comes naturally to me, I ultimately returned to <a href="https://utopia.rosano.ca/what-we-want">what we want</a> and felt unwilling to trade my time for money as there is no urgency for me to do so. It was also clear that I'm less fitting in organizations needing a specialist, and more cohesive when I can approach things holistically and fill various gaps based on that perspective (which comes from years of trying to 'make the whole widget'); this can result in me offering things that were never asked for, and that nobody else knew was needed. Also interesting to note that I might be hired based on the relationship, that people like having me around, or that I enjoy the company of people I work with. I plan to continued some freelancing as long as it doesn't get in the way of my projects, but I could also not, and I'm even willing to get into debt for some time if it gives me a clearer focus on what I'm passionate about.</p>
<h1 id="changes">Changes</h1>
<p>A big shift last year was leaving the iOS App Store after <a href="https://utopia.rosano.ca/going-fully-web">going fully web</a>, which freed up lots of mental and computer space to focus on other projects—I feel lighter, less stressed, and more excited to do my projects now that I've simplified my life in this way. Another shift was <a href="https://strolling.rosano.ca/0080">detaching from online life</a>, which resulted in closing <a href="https://rosano.hmm.garden/01f5gs4k2k4ps9eq1ns3gv9fkq">the Café</a>, merging <a href="https://rosano.hmm.garden/01f58x4bdpm6530ba58wxjm30w">Ephemerata</a> into my mailing list, and not doing online events; I think these projects were trying to accomplish a larger goal (of bringing people together), which I plan to continue working on via my podcast and other ways. That in mind, here is what the delta looks like:</p>
<table>
  <thead>
      <tr>
          <th>2020</th>
          <th>2021</th>
          <th>2022</th>
          <th></th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>twitter</td>
          <td>113</td>
          <td>339</td>
          <td>432</td>
      </tr>
      <tr>
          <td>mastodon</td>
          <td>87</td>
          <td>207</td>
          <td>283</td>
      </tr>
      <tr>
          <td>github</td>
          <td>7</td>
          <td>46</td>
          <td>63</td>
      </tr>
      <tr>
          <td><a href="https://utopia.rosano.ca/rethinking-analytics">visitors</a></td>
          <td>?</td>
          <td>&gt;19.9K</td>
          <td>33.8K</td>
      </tr>
      <tr>
          <td>mailing list</td>
          <td>110</td>
          <td>166</td>
          <td>316</td>
      </tr>
      <tr>
          <td>ephemerata</td>
          <td>116</td>
          <td>🏁</td>
          <td></td>
      </tr>
      <tr>
          <td>ios apps</td>
          <td>$4K</td>
          <td>$3K</td>
          <td>🏁</td>
      </tr>
      <tr>
          <td>fund button</td>
          <td>$87÷1</td>
          <td>$134÷5</td>
          <td>$147÷7</td>
      </tr>
      <tr>
          <td>open collective</td>
          <td>$750÷13</td>
          <td>$600÷8</td>
          <td></td>
      </tr>
      <tr>
          <td>strolling</td>
          <td>$691÷11</td>
          <td></td>
          <td></td>
      </tr>
      <tr>
          <td>café members</td>
          <td>17</td>
          <td>🏁</td>
          <td></td>
      </tr>
      <tr>
          <td>screencasts</td>
          <td>15</td>
          <td>15</td>
          <td></td>
      </tr>
      <tr>
          <td>public garden pages</td>
          <td>~40</td>
          <td>155</td>
          <td>168</td>
      </tr>
      <tr>
          <td>events organized</td>
          <td>15</td>
          <td>🏁</td>
          <td></td>
      </tr>
  </tbody>
</table>
<p>I called this 'bad' in the beginning because even though the numbers are basically higher, it doesn't represent a noticeable growth in sustainable income—still feels like the amount coming in per year would be better per month. Nonetheless, I'm looking forward to continuing, and again, I'm super optimistic about my plans for the following year.</p>
<p>Do follower and visitor counts matter? I was asking myself as I fetched the numbers this year. I'm significantly more detached about them than before, as I feel focused on my process and can stay underwater there for a while, but part of me wants to publish them to give a sense of how traffic and vanity correlates to financial sustainability. Unsure if the message is clear, but I'm reflecting on this.</p>
<h1 id="conclusion">Conclusion</h1>
<p>This was a year of dense learning despite being far less active in the majority of my projects. Next year, I hope to spend time maintaining and improving prior work, as well as launching new ideas; I'm specifically excited about a recent surge of thoughts around how to bring everything I do under a single hub.</p>
<p>Thanks to Ahsen, <a href="https://andymatuschak.org">Andy</a>, <a href="https://bmannconsulting.com">Boris</a>, Brian, Charles, David, <a href="https://www.deta.sh">Deta</a>, <a href="https://feathers.cloud">Feathers</a>, Filippo, Heddi, Hibai, Holger, Mark Segger, Michael, Mustafa, <a href="https://youtube.com/@LawrieC">my dad</a>, Myke, Noel, Omar, Orazio, Paul, Stephen, and Vision for your financial contributions to my work in 2022.</p>
<p>I'm trying to integrate more of my musical side online as time goes on, and so will leave you with my top three musical moments from this year:</p>
<p>1—with myself, creating the Strolling theme music…</p>
<iframe style="border: 0; width: 100%; height: 42px;" src="https://bandcamp.com/EmbeddedPlayer/album=2112287361/size=small/bgcol=ffffff/linkcol=0687f5/track=4230801753/transparent=true/" seamless=""></iframe>
<p>2—with <a href="https://kaixiyang.com">Kaixi Yang</a>, jamming after our podcast recording…</p>
<iframe width="300" height="250" src="https://www.youtube-nocookie.com/embed/5KNB-V2T9lg" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

<p>3—with my capoeira group, singing some of my favourite songs on earth (written by <a href="https://www.youtube.com/watch?v=fra75KTApwc">Paulo César Pinheiro</a>)…</p>
<iframe width="300" height="250" src="https://www.youtube-nocookie.com/embed/8ow-i6RYq2M" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

<hr>
<p>All fiscal posts: <a href="https://utopia.rosano.ca/2021">2021</a>, <a href="https://utopia.rosano.ca/2022">2022</a></p>
</div><p>
	<small>Tagged: <a href="/log/tag/process/">process</a>.
	</small>
</p>

<hr>
<span class="metadata" data-pagefind-ignore>

	<small>
		<a aria-label="Permalink for 2:17 pm, January 1, 2023" href="/blog/2022/"><time datetime="2023-01-01T14:17:23&#43;01:00" data-pagefind-sort="date[datetime]">14h17</time></a>

		
		<span>from <a href="/log/place/berlin/">Berlin</a> / </span>

		<span><a href="/log/country/germany/">Germany</a></span></small>

</span>

</div>

  ]]></content:encoded>
</item><item>
  <title>Sunday, January 1, 2023 14h17</title>
  <link>https://rosano.ca/log/2023-01-01-2022/</link>
  <pubDate>Sun, 01 Jan 2023 14:17:23 +0100</pubDate>
  <guid>https://rosano.ca/log/2023-01-01-2022/</guid>
  <description>Year two of my experiment in creating sustainable income as an independent creator.&#xA;I&#39;m currently so optimistic and confident about how much better it&#39;s going to look next year that I have no shame about how bad it might look this year. Also continually surprised at my unwavering commitment to something that appears to bear only a small material result. One might question when it makes sense to stop versus persist, but it&#39;s so obvious to me that the things which excite me and absorb my curiosity should be where I spend my time, that I usually make compromises that a rational person wouldn&#39;t make… I still believe my vision is possible and realistic, but it will take time based on the parameters I&#39;ve chosen.&#xA;</description>
  <content:encoded><![CDATA[
  <div class="post">


<div class="content"><p><em>Year two of my experiment in creating sustainable income as an independent creator.</em></p>
<hr>
<p>I'm currently so optimistic and confident about how much better it's going to look next year that I have no shame about how bad it might look this year. Also continually surprised at my unwavering commitment to something that appears to bear only a small material result. One might question when it makes sense to stop versus persist, but it's so obvious to me that the things which excite me and absorb my curiosity should be where I spend my time, that I usually make compromises that a rational person wouldn't make… I still believe my vision is possible and realistic, but it will take time based on the parameters I've chosen.</p>
<h1 id="podcast">Podcast</h1>
<p>The most significant effort I made this year was in producing <a href="https://rosano.hmm.garden/01frx8srcjn6v3jq7x6tp0a1nw">Strolling</a>, and it was quite a trip.</p>
<p>My original concept involved an intense two-week editing ceremony per episode, resulting in a short version, long version, intro, outro, music produced for each episode, subtitles, guest playlist, and publishing to every platform. I was rather proud of the result and intended to continue for a while, as it was creatively fulfilling, but participating in the <a href="https://moos.garden">moos.garden</a> residency changed things as I needed to record many guests in a short period, so I switched to publishing snippets with as little editing as possible. I'm also quite happy with this change and got lots of positive feedback (people like the tiny bites and enjoy them like little pieces of candy every now and then).</p>
<p>I learned to avoid a strict interview structure when possible, have more back and forth, film video from the waist up, and maybe care a little more about video quality than I'd like. Membership-wise I think I made a gross miscalibration in optimizing for 'people on the Internet' as a potential and somewhat generic audience: I learned that some common patterns for transacting (which I was trying to model) may not apply here, as the majority of members are people who know me somehow and want to support what I'm doing, not really in exchange for any 'exclusive content'—it's possible that I need to eventually optimize what I offer for a different kind of value exchange, where what supporters receive is not necessarily a material thing.</p>
<h1 id="freelancing-a-bit">Freelancing a bit</h1>
<p>I had a brief stint with getting paid as a freelancer again, curious to see how far I could pursue that: although it's validating to get paid for what comes naturally to me, I ultimately returned to <a href="https://utopia.rosano.ca/what-we-want">what we want</a> and felt unwilling to trade my time for money as there is no urgency for me to do so. It was also clear that I'm less fitting in organizations needing a specialist, and more cohesive when I can approach things holistically and fill various gaps based on that perspective (which comes from years of trying to 'make the whole widget'); this can result in me offering things that were never asked for, and that nobody else knew was needed. Also interesting to note that I might be hired based on the relationship, that people like having me around, or that I enjoy the company of people I work with. I plan to continued some freelancing as long as it doesn't get in the way of my projects, but I could also not, and I'm even willing to get into debt for some time if it gives me a clearer focus on what I'm passionate about.</p>
<h1 id="changes">Changes</h1>
<p>A big shift last year was leaving the iOS App Store after <a href="https://utopia.rosano.ca/going-fully-web">going fully web</a>, which freed up lots of mental and computer space to focus on other projects—I feel lighter, less stressed, and more excited to do my projects now that I've simplified my life in this way. Another shift was <a href="https://strolling.rosano.ca/0080">detaching from online life</a>, which resulted in closing <a href="https://rosano.hmm.garden/01f5gs4k2k4ps9eq1ns3gv9fkq">the Café</a>, merging <a href="https://rosano.hmm.garden/01f58x4bdpm6530ba58wxjm30w">Ephemerata</a> into my mailing list, and not doing online events; I think these projects were trying to accomplish a larger goal (of bringing people together), which I plan to continue working on via my podcast and other ways. That in mind, here is what the delta looks like:</p>
<table>
  <thead>
      <tr>
          <th>2020</th>
          <th>2021</th>
          <th>2022</th>
          <th></th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>twitter</td>
          <td>113</td>
          <td>339</td>
          <td>432</td>
      </tr>
      <tr>
          <td>mastodon</td>
          <td>87</td>
          <td>207</td>
          <td>283</td>
      </tr>
      <tr>
          <td>github</td>
          <td>7</td>
          <td>46</td>
          <td>63</td>
      </tr>
      <tr>
          <td><a href="https://utopia.rosano.ca/rethinking-analytics">visitors</a></td>
          <td>?</td>
          <td>&gt;19.9K</td>
          <td>33.8K</td>
      </tr>
      <tr>
          <td>mailing list</td>
          <td>110</td>
          <td>166</td>
          <td>316</td>
      </tr>
      <tr>
          <td>ephemerata</td>
          <td>116</td>
          <td>🏁</td>
          <td></td>
      </tr>
      <tr>
          <td>ios apps</td>
          <td>$4K</td>
          <td>$3K</td>
          <td>🏁</td>
      </tr>
      <tr>
          <td>fund button</td>
          <td>$87÷1</td>
          <td>$134÷5</td>
          <td>$147÷7</td>
      </tr>
      <tr>
          <td>open collective</td>
          <td>$750÷13</td>
          <td>$600÷8</td>
          <td></td>
      </tr>
      <tr>
          <td>strolling</td>
          <td>$691÷11</td>
          <td></td>
          <td></td>
      </tr>
      <tr>
          <td>café members</td>
          <td>17</td>
          <td>🏁</td>
          <td></td>
      </tr>
      <tr>
          <td>screencasts</td>
          <td>15</td>
          <td>15</td>
          <td></td>
      </tr>
      <tr>
          <td>public garden pages</td>
          <td>~40</td>
          <td>155</td>
          <td>168</td>
      </tr>
      <tr>
          <td>events organized</td>
          <td>15</td>
          <td>🏁</td>
          <td></td>
      </tr>
  </tbody>
</table>
<p>I called this 'bad' in the beginning because even though the numbers are basically higher, it doesn't represent a noticeable growth in sustainable income—still feels like the amount coming in per year would be better per month. Nonetheless, I'm looking forward to continuing, and again, I'm super optimistic about my plans for the following year.</p>
<p>Do follower and visitor counts matter? I was asking myself as I fetched the numbers this year. I'm significantly more detached about them than before, as I feel focused on my process and can stay underwater there for a while, but part of me wants to publish them to give a sense of how traffic and vanity correlates to financial sustainability. Unsure if the message is clear, but I'm reflecting on this.</p>
<h1 id="conclusion">Conclusion</h1>
<p>This was a year of dense learning despite being far less active in the majority of my projects. Next year, I hope to spend time maintaining and improving prior work, as well as launching new ideas; I'm specifically excited about a recent surge of thoughts around how to bring everything I do under a single hub.</p>
<p>Thanks to Ahsen, <a href="https://andymatuschak.org">Andy</a>, <a href="https://bmannconsulting.com">Boris</a>, Brian, Charles, David, <a href="https://www.deta.sh">Deta</a>, <a href="https://feathers.cloud">Feathers</a>, Filippo, Heddi, Hibai, Holger, Mark Segger, Michael, Mustafa, <a href="https://youtube.com/@LawrieC">my dad</a>, Myke, Noel, Omar, Orazio, Paul, Stephen, and Vision for your financial contributions to my work in 2022.</p>
<p>I'm trying to integrate more of my musical side online as time goes on, and so will leave you with my top three musical moments from this year:</p>
<p>1—with myself, creating the Strolling theme music…</p>
<iframe style="border: 0; width: 100%; height: 42px;" src="https://bandcamp.com/EmbeddedPlayer/album=2112287361/size=small/bgcol=ffffff/linkcol=0687f5/track=4230801753/transparent=true/" seamless=""></iframe>
<p>2—with <a href="https://kaixiyang.com">Kaixi Yang</a>, jamming after our podcast recording…</p>
<iframe width="300" height="250" src="https://www.youtube-nocookie.com/embed/5KNB-V2T9lg" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

<p>3—with my capoeira group, singing some of my favourite songs on earth (written by <a href="https://www.youtube.com/watch?v=fra75KTApwc">Paulo César Pinheiro</a>)…</p>
<iframe width="300" height="250" src="https://www.youtube-nocookie.com/embed/8ow-i6RYq2M" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

<hr>
<p>All fiscal posts: <a href="https://utopia.rosano.ca/2021">2021</a>, <a href="https://utopia.rosano.ca/2022">2022</a></p>
</div><p>
	<small>Tagged: <a href="/log/tag/process/">process</a>.
	</small>
</p>

<hr>
<span class="metadata" data-pagefind-ignore>

	<small>
		<a aria-label="Permalink for 2:17 pm, January 1, 2023" href="/log/2023-01-01-2022/"><time datetime="2023-01-01T14:17:23&#43;01:00" data-pagefind-sort="date[datetime]">14h17</time></a>

		
		<span>from <a href="/log/place/berlin/">Berlin</a> / </span>

		<span><a href="/log/country/germany/">Germany</a></span></small>

</span>

</div>

  ]]></content:encoded>
</item><item>
  <title>How I build a digital project archive</title>
  <link>https://rosano.ca/blog/how-i-build-a-digital-project-archive/</link>
  <pubDate>Fri, 23 Sep 2022 08:49:48 +0000</pubDate>
  <guid>https://rosano.ca/blog/how-i-build-a-digital-project-archive/</guid>
  <description>In the spirit of &#39;document and share&#39;, here are some considerations for how I assemble an online collection of projects I&#39;ve made since 2012.&#xA;Why bother doing this? It&#39;s easy to forget what happened, and hard to re-create experiences as time passes. Files can also get lost, making it impossible to have traces of what was done. My personal reason is that a CV makes little sense, as it doesn&#39;t capture well what I do. Aside from that, it&#39;s just pleasant to have a more media-rich reminder of the past that&#39;s as simple as scrolling through your personal photo library.&#xA;</description>
  <content:encoded><![CDATA[
  <div class="post">


<div class="content"><p>In the spirit of 'document and share', here are some considerations for how I assemble an <a href="https://archive.rosano.ca">online collection of projects I've made</a> since 2012.</p>
<h2 id="why-bother-doing-this">Why bother doing this?</h2>
<p>It's easy to forget what happened, and hard to re-create experiences as time passes. Files can also get lost, making it impossible to have traces of what was done. My personal reason is that a CV makes little sense, as it doesn't capture well what I do. Aside from that, it's just pleasant to have a more media-rich reminder of the past that's as simple as scrolling through your personal photo library.</p>
<h2 id="what-to-document">What to document?</h2>
<p>Not skills or roles. Focus on the work that was done, interesting aspects of the project, or what you're proud of. Although it would be fine to showcase just one artifact, I have chosen to document projects that result in multiple creations, as it better represents the different perspectives with which I approach things. This is less like a portfolio for potential clients and more like a diary: a reminder to oneself in the future of something to remember.</p>
<h2 id="when-to-capture">When to capture?</h2>
<p>Wait until the dust has settled—usually not right after publishing something; let time work in your favour as changes and improvements accumulate, especially with digital projects that can be modified easily. Perhaps a good moment is when it's clear the project will no longer be public, but also even when it feels stable and unlikely to change much.</p>
<p>For documenting processes or 'the making of', take screenshots (not with 'version control' or something that needs to be re-constructed later). It should be simple to scroll through to get a sense for what's going on, without complex interactions.</p>
<h2 id="where-to-store-it">Where to store it?</h2>
<p>Ideally on a space you can control (using <a href="https://ghost.org">Ghost</a> or <a href="https://wordpress.com">WordPress</a> for example), or a platform with decent export functionality. I use <a href="https://www.tumblr.com">Tumblr</a> for nostalgic reasons and because I trust their parent company <a href="https://automattic.com">Automattic</a> to keep it running after I turn to dust, but I suppose it would be wise to also have a self-hosted backup. It's useful to be able to organize with tags or search so that there are <a href="https://archive.rosano.ca/search/identity+process">flexible ways</a> in and out.</p>
<hr>
<p>Hope that's helpful for anyone wanting to do something similar. If you end up also creating a project archive, feel free to share with me.</p>
</div><p>
	<small>Tagged: <a href="/log/tag/process/">process</a>.
	</small>
</p>

<hr>
<span class="metadata" data-pagefind-ignore>

	<small>
		<a aria-label="Permalink for 10:49 am, September 23, 2022" href="/blog/how-i-build-a-digital-project-archive/"><time datetime="2022-09-23T10:49:48&#43;02:00" data-pagefind-sort="date[datetime]">10h49</time></a>

		
		<span>from <a href="/log/place/berlin/">Berlin</a> / </span>

		<span><a href="/log/country/germany/">Germany</a></span></small>

</span>

</div>

  ]]></content:encoded>
</item><item>
  <title>Friday, September 23, 2022 10h49</title>
  <link>https://rosano.ca/log/2022-09-23-how-i-build-a-digital-project-archive/</link>
  <pubDate>Fri, 23 Sep 2022 10:49:48 +0200</pubDate>
  <guid>https://rosano.ca/log/2022-09-23-how-i-build-a-digital-project-archive/</guid>
  <description>In the spirit of &#39;document and share&#39;, here are some considerations for how I assemble an online collection of projects I&#39;ve made since 2012.&#xA;Why bother doing this? It&#39;s easy to forget what happened, and hard to re-create experiences as time passes. Files can also get lost, making it impossible to have traces of what was done. My personal reason is that a CV makes little sense, as it doesn&#39;t capture well what I do. Aside from that, it&#39;s just pleasant to have a more media-rich reminder of the past that&#39;s as simple as scrolling through your personal photo library.&#xA;</description>
  <content:encoded><![CDATA[
  <div class="post">


<div class="content"><p>In the spirit of 'document and share', here are some considerations for how I assemble an <a href="https://archive.rosano.ca">online collection of projects I've made</a> since 2012.</p>
<h2 id="why-bother-doing-this">Why bother doing this?</h2>
<p>It's easy to forget what happened, and hard to re-create experiences as time passes. Files can also get lost, making it impossible to have traces of what was done. My personal reason is that a CV makes little sense, as it doesn't capture well what I do. Aside from that, it's just pleasant to have a more media-rich reminder of the past that's as simple as scrolling through your personal photo library.</p>
<h2 id="what-to-document">What to document?</h2>
<p>Not skills or roles. Focus on the work that was done, interesting aspects of the project, or what you're proud of. Although it would be fine to showcase just one artifact, I have chosen to document projects that result in multiple creations, as it better represents the different perspectives with which I approach things. This is less like a portfolio for potential clients and more like a diary: a reminder to oneself in the future of something to remember.</p>
<h2 id="when-to-capture">When to capture?</h2>
<p>Wait until the dust has settled—usually not right after publishing something; let time work in your favour as changes and improvements accumulate, especially with digital projects that can be modified easily. Perhaps a good moment is when it's clear the project will no longer be public, but also even when it feels stable and unlikely to change much.</p>
<p>For documenting processes or 'the making of', take screenshots (not with 'version control' or something that needs to be re-constructed later). It should be simple to scroll through to get a sense for what's going on, without complex interactions.</p>
<h2 id="where-to-store-it">Where to store it?</h2>
<p>Ideally on a space you can control (using <a href="https://ghost.org">Ghost</a> or <a href="https://wordpress.com">WordPress</a> for example), or a platform with decent export functionality. I use <a href="https://www.tumblr.com">Tumblr</a> for nostalgic reasons and because I trust their parent company <a href="https://automattic.com">Automattic</a> to keep it running after I turn to dust, but I suppose it would be wise to also have a self-hosted backup. It's useful to be able to organize with tags or search so that there are <a href="https://archive.rosano.ca/search/identity+process">flexible ways</a> in and out.</p>
<hr>
<p>Hope that's helpful for anyone wanting to do something similar. If you end up also creating a project archive, feel free to share with me.</p>
</div><p>
	<small>Tagged: <a href="/log/tag/process/">process</a>.
	</small>
</p>

<hr>
<span class="metadata" data-pagefind-ignore>

	<small>
		<a aria-label="Permalink for 10:49 am, September 23, 2022" href="/log/2022-09-23-how-i-build-a-digital-project-archive/"><time datetime="2022-09-23T10:49:48&#43;02:00" data-pagefind-sort="date[datetime]">10h49</time></a>

		
		<span>from <a href="/log/place/berlin/">Berlin</a> / </span>

		<span><a href="/log/country/germany/">Germany</a></span></small>

</span>

</div>

  ]]></content:encoded>
</item><item>
  <title>2021</title>
  <link>https://rosano.ca/blog/2021/</link>
  <pubDate>Sat, 01 Jan 2022 06:09:20 +0000</pubDate>
  <guid>https://rosano.ca/blog/2021/</guid>
  <description>After mentioning in my last birthday reflection how I wanted to avoid doing an end-of-year recap, I&#39;ve decided to do an end-of-year recap… Ever since reading the Pinboard anniversary posts, I felt the urge to make one—the charts and odd commentary, uh, inspire me. So this will be less personal and more fiscal—a mix of reflection, stats, link roundup, and (of course) music.&#xA;The biggest question of the year for me (asked by friends, strangers, internet acquaintances, parents, my therapist, the occasional bird, and myself) is: &amp;quot;How do I plan to make all this sustainable?&amp;quot; This hit me like a small pebble at least once every few weeks and my best answer was always &amp;quot;I&#39;ll do whatever I can to last a year or two and everything will work out after that…&amp;quot;—it makes sense to me (even now), but leaves many others raising one of their eyebrows. It&#39;s hard to see, I get it: I too questioned things, especially during periods of fatigue from doing too much… I wondered towards the end of the year about what energized me versus what didn&#39;t, and came to the conclusion that the work of recurring events needs to go for now.&#xA;</description>
  <content:encoded><![CDATA[
  <div class="post">


<div class="content"><p>After mentioning in my last <a href="https://utopia.rosano.ca/thirty-three">birthday reflection</a> how I wanted to avoid doing an end-of-year recap, I've decided to do an end-of-year recap… Ever since reading the <a href="https://blog.pinboard.in/2020/07/pinboard%5Fis%5Feleven/">Pinboard anniversary posts</a>, I felt the urge to make one—the charts and odd commentary, uh, inspire me. So this will be less personal and more fiscal—a mix of reflection, stats, link roundup, and (of course) music.</p>
<hr>
<p>The biggest question of the year for me (asked by friends, strangers, internet acquaintances, parents, my therapist, the occasional bird, and myself) is: &quot;How do I plan to make all this sustainable?&quot; This hit me like a small pebble at least once every few weeks and my best answer was always &quot;I'll do whatever I can to last a year or two and everything will work out after that…&quot;—it makes sense to me (even now), but leaves many others raising one of their eyebrows. It's hard to see, I get it: I too questioned things, especially during periods of fatigue from doing too much… I wondered towards the end of the year about what energized me versus what didn't, and came to the conclusion that the <a href="https://ephemerata.rosano.ca/01fh30m6w0njmbbt4jayzyr2yq">work of recurring events</a> needs to go for now.</p>
<p>The idea was an imitation of various individuals and organizations who create continuity through group meetups. Although the reasons for doing them align with my motivations and objectives, it would make more sense if I had fewer projects or if other people did most of the organizing. Even though it isn't that much on a day-to-day basis, the psychological load impedes me from concentrating on other things and I end up being able to handle only smaller tasks for most of the month, not advancing on my main projects. This was probably amplified because I was doing not one, but generally three events per month, but I think even with a single date, I would rather not deal with the before and after of making it happen. Also draining is the feeling that experiences don't accrete: the lack of recordings (often for good reason) leaves no collective artifact to share afterwards, which means I'm less present during the event as I frantically take notes to avoid letting everything 'slip away'—it's important for me to 'have something to show after', and I don't think written notes capture the experience well enough, so I might exclusively do recorded events from now unless it's mostly social in nature. I imagine focusing more on my <a href="https://strolling.rosano.ca">upcoming podcast project</a>, which could solve all these issues by 1) requiring less planning or promotion, 2) being recorded, and 3) compounding more easily over time.</p>
<p>A useful question that helped me find clarity is &quot;How does it help you to continue producing for another year?&quot; I would typically be satisfied with intrinsic motivations and the fulfillment of creating, but it ultimately isn't sustainable without what one might call 'material conditions for existence'. Perhaps now is a good time to look at stats and talk about money:</p>
<table>
  <thead>
      <tr>
          <th>2020</th>
          <th>2021</th>
          <th></th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>twitter</td>
          <td>113</td>
          <td>339</td>
      </tr>
      <tr>
          <td>mastodon</td>
          <td>87</td>
          <td>207</td>
      </tr>
      <tr>
          <td>github</td>
          <td>7</td>
          <td>46</td>
      </tr>
      <tr>
          <td>visitors</td>
          <td><a href="https://utopia.rosano.ca/rethinking-analytics">?</a></td>
          <td>&gt;19.9K</td>
      </tr>
      <tr>
          <td>mailing list</td>
          <td>110</td>
          <td>166</td>
      </tr>
      <tr>
          <td>ephemerata</td>
          <td>116</td>
          <td></td>
      </tr>
      <tr>
          <td>note the sound</td>
          <td>$1.4K</td>
          <td>🏁</td>
      </tr>
      <tr>
          <td>ios apps</td>
          <td>$4K</td>
          <td>$3K</td>
      </tr>
      <tr>
          <td>fund button</td>
          <td>$87 (via 1)</td>
          <td>$134 (via 5)</td>
      </tr>
      <tr>
          <td>open collective</td>
          <td>$750 (via 13)</td>
          <td></td>
      </tr>
      <tr>
          <td>café members</td>
          <td>17</td>
          <td></td>
      </tr>
      <tr>
          <td>screencasts</td>
          <td>15</td>
          <td></td>
      </tr>
      <tr>
          <td>public garden pages</td>
          <td>~40</td>
          <td>155</td>
      </tr>
      <tr>
          <td>events organized</td>
          <td>15</td>
          <td></td>
      </tr>
  </tbody>
</table>
<p>I've been re-imagining my income situation since the COVID-19 pandemic knocked out <a href="https://archive.rosano.ca/tagged/Opus%201/chrono">note the sound</a> in the first quarter of 2020; it used to be 60–70% of my income and will likely not return for the foreseeable future (but hopefully, maybe someday). I also decided to <a href="https://ephemerata.rosano.ca/01fmeehzvr3n9q0rkrnf7y2d5c">stop making iOS apps</a> and <a href="https://rosano.hmm.garden/01fr8tyecqmn1r0r87p86nttw3">lower prices or make them free</a>, which reduced and eliminated the other 30–40%. In 2021, I experimented with in-app payments via my <a href="https://cafe.rosano.ca/t/the-fund-button/69">fund button</a> and direct patronage from <a href="https://rosano.ca/back">financial backers</a>, describing tradeoffs of each in <a href="https://ephemerata.rosano.ca/01fpp2xb6fe3xbpswvfc4pxbmq/#funding-sustainable-income">Platform puzzle pieces for sustainable community</a>. The amounts that came in so far are too small to sustain me in most places, but I think it's a useful start and with some changes (see [[Why the fund button is slow (TBA)]]), I think I can dramatically improve the result.</p>
<p>On the bright side, everything else is growing! See <a href="https://rosano.hmm.garden/01fr7dfwen2mq509p64g58swyh">Measure progress</a> for more commentary on the other figures or <a href="https://rosano.hmm.garden/01ev1wh0nnpt3nkq2r8msvw9a2">100 steps to success</a> for these eighteen experiments from 2021:</p>
<ol>
<li><a href="https://rosano.hmm.garden/01ev1y7rmjztmqdshtvkv714wy">Create icons for feature lists</a></li>
<li><a href="https://rosano.hmm.garden/01ev20dze3ntrr42beqxh5de80">Use bolder design for landing pages</a></li>
<li><a href="https://rosano.hmm.garden/01evy0fctxpy7sq44zjp5wsc0s">Set an example for how to use a new medium</a></li>
<li><a href="https://rosano.hmm.garden/01f255wk8f42fbg4zv5hsjz6sh">Help friends to get started</a></li>
<li><a href="https://rosano.hmm.garden/01f256q3jwje2thmfm85jed2cs">Create tutorials to demonstrate how things work</a></li>
<li><a href="https://rosano.hmm.garden/01f74181dwgcqxb7wsmq2rccbx">House everything in the commons</a></li>
<li><a href="https://rosano.hmm.garden/01f7421fxs5dc0mh3q12ybwcts">Centralize project discussion and community</a></li>
<li><a href="https://rosano.hmm.garden/01f742dv0nhjf68fmj8g2j0sem">Start a weekly thing</a></li>
<li><a href="https://rosano.hmm.garden/01f742yqke6ztavvtkm1sxk9j0">Create original content on a regular basis</a></li>
<li><a href="https://rosano.hmm.garden/01fpk977ajv81er1am8tvq8qvt">Offer calls to action across projects</a></li>
<li><a href="https://rosano.hmm.garden/01fag786fd7bn4q0bp4rtm98w7">Differentiate unrelated elements with contrast</a></li>
<li><a href="https://rosano.hmm.garden/01fag9fff9en1q7jvn1p4trxk4">Announce the latest thing across projects</a></li>
<li><a href="https://rosano.hmm.garden/01fpxpv5ybqs9pdvvcqcch4jj8">Overview the universe</a></li>
<li><a href="https://rosano.hmm.garden/01fr70pvqmgqgmxyke7c91s47s">Host events</a></li>
<li><a href="https://rosano.hmm.garden/01fr7dfwen2mq509p64g58swyh">Measure progress</a></li>
<li><a href="https://rosano.hmm.garden/01fr8tyecqmn1r0r87p86nttw3">Broadcast the exit</a></li>
<li><a href="https://rosano.hmm.garden/01fr92rwd0t0bcjbwhmtn18pxk">Collaborate with others</a></li>
<li><a href="https://rosano.hmm.garden/01fr93m10a9rye2gnczd7anhpc">Try everything</a></li>
</ol>
<p>I don't have any doubts about all this becoming sustainable, especially with long-term persistence and constant learning. Doing anything worthwhile takes time, and I'm opting to use my current flexibility (year of savings/runway) to organize things in a way that gives me maximum leverage over my future—I hope that next year it will be easier to see why.</p>
<hr>
<p>Below are my most popular texts from this year.</p>
<ul>
<li><a href="https://utopia.rosano.ca/secular-churches-for-continuity">Secular churches for continuity</a> (which won Interintellect's first <a href="https://twitter.com/TheAnnaGat/status/1475935980142141448">Writing Challenge</a>)</li>
<li><a href="https://utopia.rosano.ca/dating-apps-take-one">Dating apps, take one</a> (sparked many conversations with friends and strangers)</li>
<li><a href="https://utopia.rosano.ca/wetware-of-writing-and-doing">Wetware of writing and doing</a> (video presentation with text version)</li>
</ul>
<p>(Apparently I wrote over 12,000 words when you count the other long-form ones, which is not quite a novella but comfortably a <a href="https://en.wikipedia.org/wiki/Novella#Versus%5Fnovelette">novelette</a>)</p>
<hr>
<p>It should come as no surprise that the albums I've most listened to are from Brazil.</p>
<ul>
<li>Paulo César Pinheiro: <em>Capoeira de Besouro</em> (2010)</li>
<li>João Donato: <em>Quem É Quem</em> (1973)</li>
<li>Cristina Buarque e Samba de Fato: <em>O Samba Informal de Mauro Duarte - Volume 1</em> (2008)</li>
<li>Joyce: <em>Revendo Amigos</em> (1994)</li>
<li>Pedro Martins: <em>VOX</em> (2019)</li>
</ul>
<p><a href="https://go.rosano.ca/2021-music"><img src="https://static.rosano.ca/joybox/_JBXPlaylistButton.svg" alt="Playlist via Joybox">
</a></p>
<hr>
<p>Last but not least, shout out to <a href="https://brianginsburg.com">Brian Ginsburg</a>, <a href="https://elisa.hmm.garden">Elisa Guimarães</a>, Lawrie, an anonymous donor, miguel francisco, <a href="https://andymatuschak.org">Andy Matuschak</a>, <a href="https://www.reefloretto.com">Reef Loretto</a>, <a href="https://feathers.cloud">Feathers Cloud</a>, Charles E. Lehner, <a href="https://deta.space">Deta</a>, Sasquatch in Orange Shoes, and <a href="https://bmannconsulting.com">Boris Mann</a> for <a href="https://rosano.ca/back">becoming backers</a> in 2021. You're all pioneers ❤️💫.</p>
<p>Thanks to everyone using my apps, reading my words, sharing my projects, and contributing in innumerable other ways. I look forward to see what the future holds and hope you'll join me there.</p>
<hr>
<p>All fiscal posts: <a href="https://utopia.rosano.ca/2021">2021</a>, <a href="https://utopia.rosano.ca/2022">2022</a></p>
</div><p>
	<small>Tagged: <a href="/log/tag/process/">process</a>, <a href="/log/tag/reflection/">reflection</a>.
	</small>
</p>

<hr>
<span class="metadata" data-pagefind-ignore>

	<small>
		<a aria-label="Permalink for 1:09 am, January 1, 2022" href="/blog/2021/"><time datetime="2022-01-01T01:09:20-05:00" data-pagefind-sort="date[datetime]">01h09</time></a>

		
		<span>from <a href="/log/place/toronto/">Toronto</a> / </span>

		<span><a href="/log/country/canada/">Canada</a></span></small>

</span>

</div>

  ]]></content:encoded>
</item><item>
  <title>Saturday, January 1, 2022 01h09</title>
  <link>https://rosano.ca/log/2022-01-01-2021/</link>
  <pubDate>Sat, 01 Jan 2022 01:09:20 -0500</pubDate>
  <guid>https://rosano.ca/log/2022-01-01-2021/</guid>
  <description>After mentioning in my last birthday reflection how I wanted to avoid doing an end-of-year recap, I&#39;ve decided to do an end-of-year recap… Ever since reading the Pinboard anniversary posts, I felt the urge to make one—the charts and odd commentary, uh, inspire me. So this will be less personal and more fiscal—a mix of reflection, stats, link roundup, and (of course) music.&#xA;The biggest question of the year for me (asked by friends, strangers, internet acquaintances, parents, my therapist, the occasional bird, and myself) is: &amp;quot;How do I plan to make all this sustainable?&amp;quot; This hit me like a small pebble at least once every few weeks and my best answer was always &amp;quot;I&#39;ll do whatever I can to last a year or two and everything will work out after that…&amp;quot;—it makes sense to me (even now), but leaves many others raising one of their eyebrows. It&#39;s hard to see, I get it: I too questioned things, especially during periods of fatigue from doing too much… I wondered towards the end of the year about what energized me versus what didn&#39;t, and came to the conclusion that the work of recurring events needs to go for now.&#xA;</description>
  <content:encoded><![CDATA[
  <div class="post">


<div class="content"><p>After mentioning in my last <a href="https://utopia.rosano.ca/thirty-three">birthday reflection</a> how I wanted to avoid doing an end-of-year recap, I've decided to do an end-of-year recap… Ever since reading the <a href="https://blog.pinboard.in/2020/07/pinboard%5Fis%5Feleven/">Pinboard anniversary posts</a>, I felt the urge to make one—the charts and odd commentary, uh, inspire me. So this will be less personal and more fiscal—a mix of reflection, stats, link roundup, and (of course) music.</p>
<hr>
<p>The biggest question of the year for me (asked by friends, strangers, internet acquaintances, parents, my therapist, the occasional bird, and myself) is: &quot;How do I plan to make all this sustainable?&quot; This hit me like a small pebble at least once every few weeks and my best answer was always &quot;I'll do whatever I can to last a year or two and everything will work out after that…&quot;—it makes sense to me (even now), but leaves many others raising one of their eyebrows. It's hard to see, I get it: I too questioned things, especially during periods of fatigue from doing too much… I wondered towards the end of the year about what energized me versus what didn't, and came to the conclusion that the <a href="https://ephemerata.rosano.ca/01fh30m6w0njmbbt4jayzyr2yq">work of recurring events</a> needs to go for now.</p>
<p>The idea was an imitation of various individuals and organizations who create continuity through group meetups. Although the reasons for doing them align with my motivations and objectives, it would make more sense if I had fewer projects or if other people did most of the organizing. Even though it isn't that much on a day-to-day basis, the psychological load impedes me from concentrating on other things and I end up being able to handle only smaller tasks for most of the month, not advancing on my main projects. This was probably amplified because I was doing not one, but generally three events per month, but I think even with a single date, I would rather not deal with the before and after of making it happen. Also draining is the feeling that experiences don't accrete: the lack of recordings (often for good reason) leaves no collective artifact to share afterwards, which means I'm less present during the event as I frantically take notes to avoid letting everything 'slip away'—it's important for me to 'have something to show after', and I don't think written notes capture the experience well enough, so I might exclusively do recorded events from now unless it's mostly social in nature. I imagine focusing more on my <a href="https://strolling.rosano.ca">upcoming podcast project</a>, which could solve all these issues by 1) requiring less planning or promotion, 2) being recorded, and 3) compounding more easily over time.</p>
<p>A useful question that helped me find clarity is &quot;How does it help you to continue producing for another year?&quot; I would typically be satisfied with intrinsic motivations and the fulfillment of creating, but it ultimately isn't sustainable without what one might call 'material conditions for existence'. Perhaps now is a good time to look at stats and talk about money:</p>
<table>
  <thead>
      <tr>
          <th>2020</th>
          <th>2021</th>
          <th></th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>twitter</td>
          <td>113</td>
          <td>339</td>
      </tr>
      <tr>
          <td>mastodon</td>
          <td>87</td>
          <td>207</td>
      </tr>
      <tr>
          <td>github</td>
          <td>7</td>
          <td>46</td>
      </tr>
      <tr>
          <td>visitors</td>
          <td><a href="https://utopia.rosano.ca/rethinking-analytics">?</a></td>
          <td>&gt;19.9K</td>
      </tr>
      <tr>
          <td>mailing list</td>
          <td>110</td>
          <td>166</td>
      </tr>
      <tr>
          <td>ephemerata</td>
          <td>116</td>
          <td></td>
      </tr>
      <tr>
          <td>note the sound</td>
          <td>$1.4K</td>
          <td>🏁</td>
      </tr>
      <tr>
          <td>ios apps</td>
          <td>$4K</td>
          <td>$3K</td>
      </tr>
      <tr>
          <td>fund button</td>
          <td>$87 (via 1)</td>
          <td>$134 (via 5)</td>
      </tr>
      <tr>
          <td>open collective</td>
          <td>$750 (via 13)</td>
          <td></td>
      </tr>
      <tr>
          <td>café members</td>
          <td>17</td>
          <td></td>
      </tr>
      <tr>
          <td>screencasts</td>
          <td>15</td>
          <td></td>
      </tr>
      <tr>
          <td>public garden pages</td>
          <td>~40</td>
          <td>155</td>
      </tr>
      <tr>
          <td>events organized</td>
          <td>15</td>
          <td></td>
      </tr>
  </tbody>
</table>
<p>I've been re-imagining my income situation since the COVID-19 pandemic knocked out <a href="https://archive.rosano.ca/tagged/Opus%201/chrono">note the sound</a> in the first quarter of 2020; it used to be 60–70% of my income and will likely not return for the foreseeable future (but hopefully, maybe someday). I also decided to <a href="https://ephemerata.rosano.ca/01fmeehzvr3n9q0rkrnf7y2d5c">stop making iOS apps</a> and <a href="https://rosano.hmm.garden/01fr8tyecqmn1r0r87p86nttw3">lower prices or make them free</a>, which reduced and eliminated the other 30–40%. In 2021, I experimented with in-app payments via my <a href="https://cafe.rosano.ca/t/the-fund-button/69">fund button</a> and direct patronage from <a href="https://rosano.ca/back">financial backers</a>, describing tradeoffs of each in <a href="https://ephemerata.rosano.ca/01fpp2xb6fe3xbpswvfc4pxbmq/#funding-sustainable-income">Platform puzzle pieces for sustainable community</a>. The amounts that came in so far are too small to sustain me in most places, but I think it's a useful start and with some changes (see [[Why the fund button is slow (TBA)]]), I think I can dramatically improve the result.</p>
<p>On the bright side, everything else is growing! See <a href="https://rosano.hmm.garden/01fr7dfwen2mq509p64g58swyh">Measure progress</a> for more commentary on the other figures or <a href="https://rosano.hmm.garden/01ev1wh0nnpt3nkq2r8msvw9a2">100 steps to success</a> for these eighteen experiments from 2021:</p>
<ol>
<li><a href="https://rosano.hmm.garden/01ev1y7rmjztmqdshtvkv714wy">Create icons for feature lists</a></li>
<li><a href="https://rosano.hmm.garden/01ev20dze3ntrr42beqxh5de80">Use bolder design for landing pages</a></li>
<li><a href="https://rosano.hmm.garden/01evy0fctxpy7sq44zjp5wsc0s">Set an example for how to use a new medium</a></li>
<li><a href="https://rosano.hmm.garden/01f255wk8f42fbg4zv5hsjz6sh">Help friends to get started</a></li>
<li><a href="https://rosano.hmm.garden/01f256q3jwje2thmfm85jed2cs">Create tutorials to demonstrate how things work</a></li>
<li><a href="https://rosano.hmm.garden/01f74181dwgcqxb7wsmq2rccbx">House everything in the commons</a></li>
<li><a href="https://rosano.hmm.garden/01f7421fxs5dc0mh3q12ybwcts">Centralize project discussion and community</a></li>
<li><a href="https://rosano.hmm.garden/01f742dv0nhjf68fmj8g2j0sem">Start a weekly thing</a></li>
<li><a href="https://rosano.hmm.garden/01f742yqke6ztavvtkm1sxk9j0">Create original content on a regular basis</a></li>
<li><a href="https://rosano.hmm.garden/01fpk977ajv81er1am8tvq8qvt">Offer calls to action across projects</a></li>
<li><a href="https://rosano.hmm.garden/01fag786fd7bn4q0bp4rtm98w7">Differentiate unrelated elements with contrast</a></li>
<li><a href="https://rosano.hmm.garden/01fag9fff9en1q7jvn1p4trxk4">Announce the latest thing across projects</a></li>
<li><a href="https://rosano.hmm.garden/01fpxpv5ybqs9pdvvcqcch4jj8">Overview the universe</a></li>
<li><a href="https://rosano.hmm.garden/01fr70pvqmgqgmxyke7c91s47s">Host events</a></li>
<li><a href="https://rosano.hmm.garden/01fr7dfwen2mq509p64g58swyh">Measure progress</a></li>
<li><a href="https://rosano.hmm.garden/01fr8tyecqmn1r0r87p86nttw3">Broadcast the exit</a></li>
<li><a href="https://rosano.hmm.garden/01fr92rwd0t0bcjbwhmtn18pxk">Collaborate with others</a></li>
<li><a href="https://rosano.hmm.garden/01fr93m10a9rye2gnczd7anhpc">Try everything</a></li>
</ol>
<p>I don't have any doubts about all this becoming sustainable, especially with long-term persistence and constant learning. Doing anything worthwhile takes time, and I'm opting to use my current flexibility (year of savings/runway) to organize things in a way that gives me maximum leverage over my future—I hope that next year it will be easier to see why.</p>
<hr>
<p>Below are my most popular texts from this year.</p>
<ul>
<li><a href="https://utopia.rosano.ca/secular-churches-for-continuity">Secular churches for continuity</a> (which won Interintellect's first <a href="https://twitter.com/TheAnnaGat/status/1475935980142141448">Writing Challenge</a>)</li>
<li><a href="https://utopia.rosano.ca/dating-apps-take-one">Dating apps, take one</a> (sparked many conversations with friends and strangers)</li>
<li><a href="https://utopia.rosano.ca/wetware-of-writing-and-doing">Wetware of writing and doing</a> (video presentation with text version)</li>
</ul>
<p>(Apparently I wrote over 12,000 words when you count the other long-form ones, which is not quite a novella but comfortably a <a href="https://en.wikipedia.org/wiki/Novella#Versus%5Fnovelette">novelette</a>)</p>
<hr>
<p>It should come as no surprise that the albums I've most listened to are from Brazil.</p>
<ul>
<li>Paulo César Pinheiro: <em>Capoeira de Besouro</em> (2010)</li>
<li>João Donato: <em>Quem É Quem</em> (1973)</li>
<li>Cristina Buarque e Samba de Fato: <em>O Samba Informal de Mauro Duarte - Volume 1</em> (2008)</li>
<li>Joyce: <em>Revendo Amigos</em> (1994)</li>
<li>Pedro Martins: <em>VOX</em> (2019)</li>
</ul>
<p><a href="https://go.rosano.ca/2021-music"><img src="https://static.rosano.ca/joybox/_JBXPlaylistButton.svg" alt="Playlist via Joybox">
</a></p>
<hr>
<p>Last but not least, shout out to <a href="https://brianginsburg.com">Brian Ginsburg</a>, <a href="https://elisa.hmm.garden">Elisa Guimarães</a>, Lawrie, an anonymous donor, miguel francisco, <a href="https://andymatuschak.org">Andy Matuschak</a>, <a href="https://www.reefloretto.com">Reef Loretto</a>, <a href="https://feathers.cloud">Feathers Cloud</a>, Charles E. Lehner, <a href="https://deta.space">Deta</a>, Sasquatch in Orange Shoes, and <a href="https://bmannconsulting.com">Boris Mann</a> for <a href="https://rosano.ca/back">becoming backers</a> in 2021. You're all pioneers ❤️💫.</p>
<p>Thanks to everyone using my apps, reading my words, sharing my projects, and contributing in innumerable other ways. I look forward to see what the future holds and hope you'll join me there.</p>
<hr>
<p>All fiscal posts: <a href="https://utopia.rosano.ca/2021">2021</a>, <a href="https://utopia.rosano.ca/2022">2022</a></p>
</div><p>
	<small>Tagged: <a href="/log/tag/process/">process</a>, <a href="/log/tag/reflection/">reflection</a>.
	</small>
</p>

<hr>
<span class="metadata" data-pagefind-ignore>

	<small>
		<a aria-label="Permalink for 1:09 am, January 1, 2022" href="/log/2022-01-01-2021/"><time datetime="2022-01-01T01:09:20-05:00" data-pagefind-sort="date[datetime]">01h09</time></a>

		
		<span>from <a href="/log/place/toronto/">Toronto</a> / </span>

		<span><a href="/log/country/canada/">Canada</a></span></small>

</span>

</div>

  ]]></content:encoded>
</item><item>
  <title>Why I added text to my &#39;pure icon&#39; site after eight years</title>
  <link>https://rosano.ca/blog/why-i-added-text-to-my-pure-icon-site-after-eight-years/</link>
  <pubDate>Tue, 14 Dec 2021 23:00:48 +0000</pubDate>
  <guid>https://rosano.ca/blog/why-i-added-text-to-my-pure-icon-site-after-eight-years/</guid>
  <description>Since 2013, I was using a website design with no visible words—icons only; it was an obsession with The icon is a promise and the perspective of words being &#39;limited&#39; in expressing things. Eventually I added text available only to screenreaders, and thought it was interesting to have a context where visually impaired persons (VIPs) would be able to &#39;see more&#39; than sighted people. I digged the pure visual aesthetic and the design seemed like it would last forever (just keep adding icons to the list). I also avoided explaining &#39;me&#39; because I thought that &#39;what I do should explain me&#39;, and seeked to make everything &#39;about the projects&#39;. So for almost a decade, I have been &#39;explaining&#39; myself to the online world with a list of icons, and a small amount of project-specific text essentially invisible to most people. After contemplating this recently, I began to notice issues.&#xA;</description>
  <content:encoded><![CDATA[
  <div class="post">


<div class="content"><p>Since 2013, I was using a <a href="https://web.archive.org/web/20211024165114/https://rosano.ca/">website design with no visible words</a>—icons only; it was an obsession with <a href="https://rosano.hmm.garden/01et68bmqf38n795hrda63vcdp">The icon is a promise</a> and the perspective of words being 'limited' in expressing things. Eventually I added text available only to <a href="https://en.wikipedia.org/wiki/Screen%5Freader">screenreaders</a>, and thought it was interesting to have a context where visually impaired persons (VIPs) would be able to 'see more' than sighted people. I digged the pure visual aesthetic and the design seemed like it would last forever (just keep adding icons to the list). I also avoided explaining 'me' because I thought that 'what I do should explain me', and seeked to make everything 'about the projects'. So for almost a decade, I have been 'explaining' myself to the online world with a list of icons, and a small amount of project-specific text essentially <em>invisible</em> to most people. After contemplating this recently, I began to notice issues.</p>
<p>Imagining what it's like for someone arriving there, I feel it would be overwhelming to click on anything: a giant list of icons, each one descending into a rabbit hole of who knows what, not one seeming to offer a sense of the landscape or horizon—how does one decide where to start? I suspect that the poor sense of 'what to click on next' might cause me to lose many people who arrive there and feel lost. It would be selfish to expect people to essentially gamble with their attention and click many links at random in order to understand the larger picture—if they aren't able to understand, the medium of communication has failed. Worse, I realized recently that although it was possible to hover on icons to see the name and description of each icon, this was not possible on mobile devices. I sometimes thought I was raising awareness about the needs of VIPs, but in retrospect it was kind of a jerk move which made it harder for most people on purpose… So it's time to try something different. It should be simple to get an overview of what's going on: perhaps better to present with more information.</p>
<p>Comparing <a href="https://rosano.hmm.garden/01fpxpv5ybqs9pdvvcqcch4jj8">current and previous layouts</a>: text is now visible everywhere without any special interaction or hardware and there is a small blurb about me which links to an <a href="https://rosano.ca/about">about page</a> for a more textual overview. I think both frame everything in a way that's more accessible for everyone, making it simpler to understand what on earth I'm doing with my life. I feel happy with the result: I still dig the aesthetic and actually find it more friendly. Looking forward to see how this next phase of the design goes, and how much time passes until the next change.</p>
<hr>
<p>As a bonus, check out the <a href="https://web.archive.org/web/20120814083036/http://rosano.ca/">pre-2013 layout on Wayback Machine</a>.</p>
</div><p>
	<small>Tagged: <a href="/log/tag/process/">process</a>.
	</small>
</p>

<hr>
<span class="metadata" data-pagefind-ignore>

	<small>
		<a aria-label="Permalink for 6:00 pm, December 14, 2021" href="/blog/why-i-added-text-to-my-pure-icon-site-after-eight-years/"><time datetime="2021-12-14T18:00:48-05:00" data-pagefind-sort="date[datetime]">18h00</time></a>

		
		<span>from <a href="/log/place/toronto/">Toronto</a> / </span>

		<span><a href="/log/country/canada/">Canada</a></span></small>

</span>

</div>

  ]]></content:encoded>
</item><item>
  <title>Tuesday, December 14, 2021 18h00</title>
  <link>https://rosano.ca/log/2021-12-14-why-i-added-text-to-my-pure-icon-site-after-eight-years/</link>
  <pubDate>Tue, 14 Dec 2021 18:00:48 -0500</pubDate>
  <guid>https://rosano.ca/log/2021-12-14-why-i-added-text-to-my-pure-icon-site-after-eight-years/</guid>
  <description>Since 2013, I was using a website design with no visible words—icons only; it was an obsession with The icon is a promise and the perspective of words being &#39;limited&#39; in expressing things. Eventually I added text available only to screenreaders, and thought it was interesting to have a context where visually impaired persons (VIPs) would be able to &#39;see more&#39; than sighted people. I digged the pure visual aesthetic and the design seemed like it would last forever (just keep adding icons to the list). I also avoided explaining &#39;me&#39; because I thought that &#39;what I do should explain me&#39;, and seeked to make everything &#39;about the projects&#39;. So for almost a decade, I have been &#39;explaining&#39; myself to the online world with a list of icons, and a small amount of project-specific text essentially invisible to most people. After contemplating this recently, I began to notice issues.&#xA;</description>
  <content:encoded><![CDATA[
  <div class="post">


<div class="content"><p>Since 2013, I was using a <a href="https://web.archive.org/web/20211024165114/https://rosano.ca/">website design with no visible words</a>—icons only; it was an obsession with <a href="https://rosano.hmm.garden/01et68bmqf38n795hrda63vcdp">The icon is a promise</a> and the perspective of words being 'limited' in expressing things. Eventually I added text available only to <a href="https://en.wikipedia.org/wiki/Screen%5Freader">screenreaders</a>, and thought it was interesting to have a context where visually impaired persons (VIPs) would be able to 'see more' than sighted people. I digged the pure visual aesthetic and the design seemed like it would last forever (just keep adding icons to the list). I also avoided explaining 'me' because I thought that 'what I do should explain me', and seeked to make everything 'about the projects'. So for almost a decade, I have been 'explaining' myself to the online world with a list of icons, and a small amount of project-specific text essentially <em>invisible</em> to most people. After contemplating this recently, I began to notice issues.</p>
<p>Imagining what it's like for someone arriving there, I feel it would be overwhelming to click on anything: a giant list of icons, each one descending into a rabbit hole of who knows what, not one seeming to offer a sense of the landscape or horizon—how does one decide where to start? I suspect that the poor sense of 'what to click on next' might cause me to lose many people who arrive there and feel lost. It would be selfish to expect people to essentially gamble with their attention and click many links at random in order to understand the larger picture—if they aren't able to understand, the medium of communication has failed. Worse, I realized recently that although it was possible to hover on icons to see the name and description of each icon, this was not possible on mobile devices. I sometimes thought I was raising awareness about the needs of VIPs, but in retrospect it was kind of a jerk move which made it harder for most people on purpose… So it's time to try something different. It should be simple to get an overview of what's going on: perhaps better to present with more information.</p>
<p>Comparing <a href="https://rosano.hmm.garden/01fpxpv5ybqs9pdvvcqcch4jj8">current and previous layouts</a>: text is now visible everywhere without any special interaction or hardware and there is a small blurb about me which links to an <a href="https://rosano.ca/about">about page</a> for a more textual overview. I think both frame everything in a way that's more accessible for everyone, making it simpler to understand what on earth I'm doing with my life. I feel happy with the result: I still dig the aesthetic and actually find it more friendly. Looking forward to see how this next phase of the design goes, and how much time passes until the next change.</p>
<hr>
<p>As a bonus, check out the <a href="https://web.archive.org/web/20120814083036/http://rosano.ca/">pre-2013 layout on Wayback Machine</a>.</p>
</div><p>
	<small>Tagged: <a href="/log/tag/process/">process</a>.
	</small>
</p>

<hr>
<span class="metadata" data-pagefind-ignore>

	<small>
		<a aria-label="Permalink for 6:00 pm, December 14, 2021" href="/log/2021-12-14-why-i-added-text-to-my-pure-icon-site-after-eight-years/"><time datetime="2021-12-14T18:00:48-05:00" data-pagefind-sort="date[datetime]">18h00</time></a>

		
		<span>from <a href="/log/place/toronto/">Toronto</a> / </span>

		<span><a href="/log/country/canada/">Canada</a></span></small>

</span>

</div>

  ]]></content:encoded>
</item><item>
  <title>Evolution one</title>
  <link>https://rosano.ca/blog/evolution-one/</link>
  <pubDate>Sat, 04 Dec 2021 20:51:17 +0000</pubDate>
  <guid>https://rosano.ca/blog/evolution-one/</guid>
  <description>Since the first edition of Ephemerata, my intention was to share things that give a sense of my world and spur discussion, grouping them in a single digest to avoid overloading people with real-time messages. I still think there&#39;s value in sharing them (especially the music I find, as it might be hard for most people to come by)—now and then I get feedback that there&#39;s something compelling in there—but there seems to be a clear stronger reaction to my original writing (for example, about community or analytics, where people have gone out of their way on various channels to share their impressions), so I&#39;m going to focus more on that.&#xA;</description>
  <content:encoded><![CDATA[
  <div class="post">


<div class="content"><p>Since the <a href="https://cafe.rosano.ca/t/001-ali-abdaal-collectivity-heavy-baile/64">first edition of Ephemerata</a>, my intention was to share things that give a sense of my world and spur discussion, grouping them in a single digest to avoid overloading people with real-time messages. I still think there's value in sharing them (especially the music I find, as it might be hard for most people to come by)—now and then I get feedback that there's something compelling in there—but there seems to be a clear stronger reaction to my original writing (for example, about <a href="https://cafe.rosano.ca/t/019-community-essence-thirty-three-going-doorless/145/1#community-essence-1">community</a> or <a href="https://cafe.rosano.ca/t/014-rethinking-analytics-nihiloxica/123">analytics</a>, where people have gone out of their way on various channels to share their impressions), so I'm going to focus more on that.</p>
<p>I initially thought about writing something original for every edition, which would be motivating for me, but zooming out further I felt something unexpected click. I could atomize these texts so that they live on their own space (sort of like a blog) and publish them any time without being tied to the release schedule of Ephemerata. I can write about my experiences, document what I learn, share my thought process, and expand beyond the conceptual or 'reference' focus of <a href="https://rosano.hmm.garden">my garden</a>—this text is an example of what I might do. By giving myself permission to explore 'transient' things and write as it happens (perhaps even multiple times between editions), I feel a new outlet of expression opening up, and I'm excited to see what I would put there.</p>
<p>Using the same <a href="https://ghost.org">Ghost</a> installation that now powers the newsletter, I've compiled an <a href="https://ephemerata.rosano.ca/archive">archive</a> of texts from the newsletter with other long-form writing; as much as I've avoided the traditional blog organization for most of my life, it still feels like a better interface to explore collections of writing than a 'forum'. I'm still using <a href="https://www.discourse.org">Discourse</a> for comments on individual texts and for newsletter editions.</p>
<p>Setting up a new <a href="https://tumblr.com">Tumblr</a>, I've organized the links I share into a <a href="https://fleetingarrivals.rosano.ca">chronological stream</a>. This still forces me to take time (contra the urge to post a link in a box and have an app fetch the context) to reflect on what I want to communicate by sharing and be more deliberate. I suspect also that receiving many links on a weekly basis might be kind of overloading (despite my intentions to the contrary), so now there's more than one way to check it out. This also makes it possible to explore or even subscribe to <a href="https://fleetingarrivals.rosano.ca/tagged/sound">music</a>, <a href="https://fleetingarrivals.rosano.ca/tagged/text">articles</a>, or <a href="https://fleetingarrivals.rosano.ca/tagged/talk">podcasts</a> via tag.</p>
<p>So in summary: 1) the newsletter is still a weekly package and an important rhythm for continuity; 2) the blog is for anyone who just wants original texts (and maybe via <a href="https://ephemerata.rosano.ca/rss/">RSS Feed</a>); 3) the Tumblr is for getting the links as I share them and also for things that don't make it into the newsletter. I would also re-state about Ephemerata that you don't have to read <em>any</em> of it—it disappears, and if you miss a week there's nothing to catch up on; just come in when you feel like it and know that it's consistently there and ready for you.</p>
</div><p>
	<small>Tagged: <a href="/log/tag/process/">process</a>.
	</small>
</p>

<hr>
<span class="metadata" data-pagefind-ignore>

	<small>
		<a aria-label="Permalink for 3:51 pm, December 4, 2021" href="/blog/evolution-one/"><time datetime="2021-12-04T15:51:17-05:00" data-pagefind-sort="date[datetime]">15h51</time></a>

		
		<span>from <a href="/log/place/toronto/">Toronto</a> / </span>

		<span><a href="/log/country/canada/">Canada</a></span></small>

</span>

</div>

  ]]></content:encoded>
</item><item>
  <title>Saturday, December 4, 2021 15h51</title>
  <link>https://rosano.ca/log/2021-12-04-evolution-one/</link>
  <pubDate>Sat, 04 Dec 2021 15:51:17 -0500</pubDate>
  <guid>https://rosano.ca/log/2021-12-04-evolution-one/</guid>
  <description>Since the first edition of Ephemerata, my intention was to share things that give a sense of my world and spur discussion, grouping them in a single digest to avoid overloading people with real-time messages. I still think there&#39;s value in sharing them (especially the music I find, as it might be hard for most people to come by)—now and then I get feedback that there&#39;s something compelling in there—but there seems to be a clear stronger reaction to my original writing (for example, about community or analytics, where people have gone out of their way on various channels to share their impressions), so I&#39;m going to focus more on that.&#xA;</description>
  <content:encoded><![CDATA[
  <div class="post">


<div class="content"><p>Since the <a href="https://cafe.rosano.ca/t/001-ali-abdaal-collectivity-heavy-baile/64">first edition of Ephemerata</a>, my intention was to share things that give a sense of my world and spur discussion, grouping them in a single digest to avoid overloading people with real-time messages. I still think there's value in sharing them (especially the music I find, as it might be hard for most people to come by)—now and then I get feedback that there's something compelling in there—but there seems to be a clear stronger reaction to my original writing (for example, about <a href="https://cafe.rosano.ca/t/019-community-essence-thirty-three-going-doorless/145/1#community-essence-1">community</a> or <a href="https://cafe.rosano.ca/t/014-rethinking-analytics-nihiloxica/123">analytics</a>, where people have gone out of their way on various channels to share their impressions), so I'm going to focus more on that.</p>
<p>I initially thought about writing something original for every edition, which would be motivating for me, but zooming out further I felt something unexpected click. I could atomize these texts so that they live on their own space (sort of like a blog) and publish them any time without being tied to the release schedule of Ephemerata. I can write about my experiences, document what I learn, share my thought process, and expand beyond the conceptual or 'reference' focus of <a href="https://rosano.hmm.garden">my garden</a>—this text is an example of what I might do. By giving myself permission to explore 'transient' things and write as it happens (perhaps even multiple times between editions), I feel a new outlet of expression opening up, and I'm excited to see what I would put there.</p>
<p>Using the same <a href="https://ghost.org">Ghost</a> installation that now powers the newsletter, I've compiled an <a href="https://ephemerata.rosano.ca/archive">archive</a> of texts from the newsletter with other long-form writing; as much as I've avoided the traditional blog organization for most of my life, it still feels like a better interface to explore collections of writing than a 'forum'. I'm still using <a href="https://www.discourse.org">Discourse</a> for comments on individual texts and for newsletter editions.</p>
<p>Setting up a new <a href="https://tumblr.com">Tumblr</a>, I've organized the links I share into a <a href="https://fleetingarrivals.rosano.ca">chronological stream</a>. This still forces me to take time (contra the urge to post a link in a box and have an app fetch the context) to reflect on what I want to communicate by sharing and be more deliberate. I suspect also that receiving many links on a weekly basis might be kind of overloading (despite my intentions to the contrary), so now there's more than one way to check it out. This also makes it possible to explore or even subscribe to <a href="https://fleetingarrivals.rosano.ca/tagged/sound">music</a>, <a href="https://fleetingarrivals.rosano.ca/tagged/text">articles</a>, or <a href="https://fleetingarrivals.rosano.ca/tagged/talk">podcasts</a> via tag.</p>
<p>So in summary: 1) the newsletter is still a weekly package and an important rhythm for continuity; 2) the blog is for anyone who just wants original texts (and maybe via <a href="https://ephemerata.rosano.ca/rss/">RSS Feed</a>); 3) the Tumblr is for getting the links as I share them and also for things that don't make it into the newsletter. I would also re-state about Ephemerata that you don't have to read <em>any</em> of it—it disappears, and if you miss a week there's nothing to catch up on; just come in when you feel like it and know that it's consistently there and ready for you.</p>
</div><p>
	<small>Tagged: <a href="/log/tag/process/">process</a>.
	</small>
</p>

<hr>
<span class="metadata" data-pagefind-ignore>

	<small>
		<a aria-label="Permalink for 3:51 pm, December 4, 2021" href="/log/2021-12-04-evolution-one/"><time datetime="2021-12-04T15:51:17-05:00" data-pagefind-sort="date[datetime]">15h51</time></a>

		
		<span>from <a href="/log/place/toronto/">Toronto</a> / </span>

		<span><a href="/log/country/canada/">Canada</a></span></small>

</span>

</div>

  ]]></content:encoded>
</item><item>
  <title>Going fully web</title>
  <link>https://rosano.ca/blog/going-fully-web/</link>
  <pubDate>Sun, 14 Nov 2021 05:26:11 +0000</pubDate>
  <guid>https://rosano.ca/blog/going-fully-web/</guid>
  <description>Why I stopped making iOS apps after twelve years.</description>
  <content:encoded><![CDATA[
  <div class="post">

<nugget>Why I stopped making iOS apps after twelve years.</nugget><hr>
<div class="content"><p>I have been working on iOS apps since 2009; I started with a collaboration with <a href="https://twitter.com/tom%5Ffrog">Wil</a> on <a href="https://rosano.ca/audioscrub">AudioScrub</a> (née iLift), and eventually <a href="https://utopia.rosano.ca/sixth-times-a-charm">went solo</a> in 2014. After twelve years on the App Store, I've decided it's time to <strong>go all-in on the web</strong> and would like to share what that means and outline the tradeoffs involved.</p>
<p>The spur for this change occurred years ago after the launch of my seventh app <a href="https://rosano.ca/sonogrid">sonogrid</a>. Although the project had iterations over several years, it mostly came together in the summer of 2018: I overworked myself for months, with incessant attention to detail, and was eager to present this to people I would meet during my upcoming trip to Colombia (they <em>really</em> love music there, and this app was for music lovers).</p>
<p>The app launched to a good reception online within various iOS music app communities, but to my dismay, most of the Colombians I met in person were not able to access it because Apple devices are prohibitively expensive there. I would offer to demo the app on my phone and let the other person play with it after: repeatedly, they would enjoy the interface and become immersed in a fun creative process, only to become disappointed on learning that it's not on Android. It was hard to resolve the contradiction between producing something I was super proud to share—a kind of magnificent zenith in my iOS trajectory—and realizing that only half the world can use it.</p>
<p>This was a bit deflating, and I wasn't motivated to do double the work just because of platform duopolies. Added to this was the more subtle but long-standing aversion to the 'review process' that native apps go through before appearing on the App Store: I was hesitant to invest further in an environment with little control and leverage over my own future, with a constant fear of 'reviewer rejection' and <a href="https://marco.org/2009/06/13/trust-hostility-and-the-human-side-of-apple">the rug slipping out from under me at any time</a>. So I took a step back and haven't updated many of my iOS apps since then.</p>
<p>In place, I worked on <a href="https://github.com/orgs/olsk/repositories">various web components</a> and put them together to create <a href="https://github.com/rosano#open-source-projects">about a dozen web-based projects</a>. Contrasting the experience between the web and native (i.e. iOS) worlds, I feel more enthusiastic about how the web is evolving. It can still be 'limited' in comparison to native apps, but that gap is gradually closing and most of my ideas already fit within what's currently possible.</p>
<h2 id="why-you-should-choose-web-over-native">Why you should choose Web over Native</h2>
<p>Just to review, in case it's not obvious, there are some more commonly understood reasons for choosing the web over native:</p>
<ul>
<li>Basically, all current and future devices (mobile, tablet, desktop) and operating systems (iOS, Android, macOS, Windows, Linux) are supported.</li>
<li>Projects are simpler and more cost-effective to build and deploy, with tools and skills that are easier to acquire.</li>
<li>A thriving universe with bazillions of communities spanning the entire Internet provides lots of answers to questions, and most knowledge is based on open standards and therefore highly transferable.</li>
<li>Backward compatibility is a priority, which means your project is likely to continue working despite technology evolving over time.</li>
<li>You can make changes whenever you like and have them online within seconds or minutes, as opposed to requiring third-party approval for everything, which could take days or weeks.</li>
<li>The environment makes it more and more empowering for single-person or small team operations to produce things, without requiring the resources of a large company.</li>
</ul>
<p>The challenges of the web for developers like myself is to help people 'cross the chasm' that exists due to a lack of common patterns for interacting with apps:</p>
<ul>
<li>There is <strong>no obvious 'App Store'</strong>, so people are left to search the wider web (amongst articles, videos, cat pictures, and everything else), but maybe there could be <a href="https://appindex.app/">one that celebrates the 'instant' nature of this platform</a>, or a subscription bundle like <a href="https://talk.fission.codes/t/setapp-curated-apps-bundle-subscription/2260">SetApp</a> to help with discovery.</li>
<li>There is <strong>no universal 'buy' button</strong>—every project does this their own way, but the <a href="https://ghost.org/help/setting-up-portal/">Ghost Portal</a> is becoming more and more common, and I'm trying something similar with my <a href="https://cafe.rosano.ca/t/69">Fund Button</a>.</li>
<li>The idea of an 'install' button isn't ubiquitous, and <strong>some web apps may not be mobile-friendly</strong> or <a href="https://www.inkandswitch.com/local-first">local-first</a>, but for the rest there are libraries like <a href="https://github.com/koddr/a2hs.js">a2hs.js</a> that help guide people to make accessing web apps a more familiar experience: simply click on an app icon to launch.</li>
<li>The <strong>lack of an integrated payment system</strong> means that every project needs to re-build trust and help others be comfortable enough in the environment to support them financially, but <a href="https://stripe.com/payments/checkout">Stripe Checkout</a>, <a href="https://www.paypal.com/merchantapps/appcenter/acceptpayments/checkout">PayPal Checkout</a>, and <a href="https://webmonetization.org/">Web Monetization</a> are contributing various solutions that reduce friction from this process. (I would also love to see <a href="https://opencollective.com/fiscal-hosting">fiscal hosting</a> become more prevalent so that having a legal entity is not necessary to receive money.)</li>
<li>Performance has often <strong>held back the types of applications that can be built</strong> on the web platform, but <a href="https://webassembly.org/roadmap">WebAssembly</a> will eliminate this issue for a whole class of ideas.</li>
</ul>
<p>There are plenty of people working to create open solutions to these 'missing features'; it seems like a solvable problem with time.</p>
<h2 id="what-its-like-making-native-apps">What it’s like making Native Apps</h2>
<p>(Feel free to skip this section if you'd rather not hear me complain about Apple.) I'm sharing some negative aspects of my experience making native apps with hesitation, not to be a downer but because there might be people that aren't really familiar with the developer side:</p>
<ul>
<li><strong>The paternal review process can be soul-crushing at times</strong>: reviewers don't enforce rules consistently; bad app(le)s get approved and grift people out of money or personal information; it's an anxiety-ridden process that can feel unpredictable. You may have a good impression of Apple if you've bought their products: calling them for support usually means speaking to a friendly person who takes responsibility for your issue and tries to resolve it. App Review on the other hand might as well be an outsourced company, incredibly bureaucratic, and often feels like talking to a rock; any sensuality around the Apple brand quickly vanishes under these bright white office lights as you find yourself filling out TPS reports in the developer cubicle all of a sudden.</li>
<li><strong>Large companies dominate the App Store listings and generally get better treatment</strong>. The lucky independent developers are ones who have the ear of someone who works at Apple to support them if there's a dispute and either push their app through App Review or get it featured.</li>
<li><strong>It's quite a task for an individual or small team to produce an app</strong>, create screenshots and videos, localize everything in multiple languages, respond to reviews, and keep on top of technology that changes every year. The prototypical success looks more like a large organization than two guys in a garage.</li>
<li>It feels like <strong>feeding into a device ecosystem of planned obsolescence and overconsumption</strong>, where developers and consumers need to keep upgrading—an insatiable appetite for more.</li>
<li>The certificates and signing from the build process is <strong>complex</strong> and can bring development to a halt if you don't have the right combination of XCode and macOS (hint: keep buying new Macs).</li>
<li>The expanding variety of screen sizes forces you to <strong>learn responsiveness primitives which are platform-specific</strong> and create a complex array of image and video assets at different sizes for distribution.</li>
<li>The <strong>constantly changing environment</strong> <em>will</em> break your app and force you to either hurry and accommodate the changes or receive messages from customers asking why it doesn't work anymore.</li>
<li>You can't simply share your app with a friend or even <em>install it on your own device</em> without <strong>paying rent or getting permission through App Review</strong>.</li>
</ul>
<p>There are obviously lots of positives to native platforms as well, but these kinds of things weigh down smaller operations like mine, favouring large companies with resources and time to deal with this ever-growing complexity.</p>
<h2 id="developing-for-web">Developing for Web</h2>
<p>Despite the web's challenges, there's much that excites me about its future and some of these characteristics are intrinsic to the platform:</p>
<ul>
<li>The concept of <a href="https://www.fortressofdoors.com/the-future-of-games-is-an-instant-flash-to-the-past/">instant games</a> promotes highly shareable apps via a simple link that requires no install process: show up and start.</li>
<li>Having multiple payment providers, potentially with the addition of cryptocurrencies means if you wanted to also just invent your own value system, maybe some kind of post-money coupon thing, it's possible to integrate with existing systems…</li>
<li>User-controlled personal data stores are <a href="https://0data.app/">already being used</a> on the web and will eventually make their way to native apps.</li>
<li>Edge apps that work completely in the browser are easy to mirror or fork, and virtually free to distribute: imagine having your site/app available everywhere via <a href="https://ipfs.io/">IPFS</a></li>
<li>The culture of perpetual improvement, with less focus on versioning, is normal: people do not need to 'install updates' for each app they use on every change.</li>
<li>It's just more fun and with a lower barrier to entry, which results in more diverse and dynamic communities who form part of a larger public commons: more sparks, more life, more weird.</li>
</ul>
<p><a href="https://apps.apple.com/us/developer/rcreativ/id356609408">My iOS apps</a> have been quietly free for a while. By mid February 2022, they will disappear <em>forever</em>; I'm not completely sure how this works—I understand you can continue to use them, perhaps even re-download them, but only if you already have it. I would like to eventually re-make them for the web (be welcome to <a href="https://github.com/rosano">join me</a> or <a href="https://rosano.ca/back">keep me alive</a>). In the meantime, enjoy these apps while they last. I'm jumping headfirst into a world bubbling with new possibilities and excited to develop for the largest open pool of people on the planet.</p>
</div><p>
	<small>Tagged: <a href="/log/tag/apps/">apps</a>, <a href="/log/tag/process/">process</a>, <a href="/log/tag/meta/">meta</a>.
	</small>
</p>

<hr>
<span class="metadata" data-pagefind-ignore>

	<small>
		<a aria-label="Permalink for 0:26 am, November 14, 2021" href="/blog/going-fully-web/"><time datetime="2021-11-14T00:26:11-05:00" data-pagefind-sort="date[datetime]">00h26</time></a>

		
		<span>from <a href="/log/place/toronto/">Toronto</a> / </span>

		<span><a href="/log/country/canada/">Canada</a></span></small>

</span>

</div>

  ]]></content:encoded>
</item><item>
  <title>Sunday, November 14, 2021 00h26</title>
  <link>https://rosano.ca/log/2021-11-14-going-fully-web/</link>
  <pubDate>Sun, 14 Nov 2021 00:26:11 -0500</pubDate>
  <guid>https://rosano.ca/log/2021-11-14-going-fully-web/</guid>
  <description>I have been working on iOS apps since 2009; I started with a collaboration with Wil on AudioScrub (née iLift), and eventually went solo in 2014. After twelve years on the App Store, I&#39;ve decided it&#39;s time to go all-in on the web and would like to share what that means and outline the tradeoffs involved.&#xA;The spur for this change occurred years ago after the launch of my seventh app sonogrid. Although the project had iterations over several years, it mostly came together in the summer of 2018: I overworked myself for months, with incessant attention to detail, and was eager to present this to people I would meet during my upcoming trip to Colombia (they really love music there, and this app was for music lovers).&#xA;</description>
  <content:encoded><![CDATA[
  <div class="post">

<nugget><p>I have been working on iOS apps since 2009; I started with a collaboration with <a href="https://twitter.com/tom%5Ffrog">Wil</a> on <a href="https://rosano.ca/audioscrub">AudioScrub</a> (née iLift), and eventually <a href="https://utopia.rosano.ca/sixth-times-a-charm">went solo</a> in 2014. After twelve years on the App Store, I've decided it's time to <strong>go all-in on the web</strong> and would like to share what that means and outline the tradeoffs involved.</p>
<p>The spur for this change occurred years ago after the launch of my seventh app <a href="https://rosano.ca/sonogrid">sonogrid</a>. Although the project had iterations over several years, it mostly came together in the summer of 2018: I overworked myself for months, with incessant attention to detail, and was eager to present this to people I would meet during my upcoming trip to Colombia (they <em>really</em> love music there, and this app was for music lovers).</p></nugget><hr>
<div class="content"><p>I have been working on iOS apps since 2009; I started with a collaboration with <a href="https://twitter.com/tom%5Ffrog">Wil</a> on <a href="https://rosano.ca/audioscrub">AudioScrub</a> (née iLift), and eventually <a href="https://utopia.rosano.ca/sixth-times-a-charm">went solo</a> in 2014. After twelve years on the App Store, I've decided it's time to <strong>go all-in on the web</strong> and would like to share what that means and outline the tradeoffs involved.</p>
<p>The spur for this change occurred years ago after the launch of my seventh app <a href="https://rosano.ca/sonogrid">sonogrid</a>. Although the project had iterations over several years, it mostly came together in the summer of 2018: I overworked myself for months, with incessant attention to detail, and was eager to present this to people I would meet during my upcoming trip to Colombia (they <em>really</em> love music there, and this app was for music lovers).</p>
<p>The app launched to a good reception online within various iOS music app communities, but to my dismay, most of the Colombians I met in person were not able to access it because Apple devices are prohibitively expensive there. I would offer to demo the app on my phone and let the other person play with it after: repeatedly, they would enjoy the interface and become immersed in a fun creative process, only to become disappointed on learning that it's not on Android. It was hard to resolve the contradiction between producing something I was super proud to share—a kind of magnificent zenith in my iOS trajectory—and realizing that only half the world can use it.</p>
<p>This was a bit deflating, and I wasn't motivated to do double the work just because of platform duopolies. Added to this was the more subtle but long-standing aversion to the 'review process' that native apps go through before appearing on the App Store: I was hesitant to invest further in an environment with little control and leverage over my own future, with a constant fear of 'reviewer rejection' and <a href="https://marco.org/2009/06/13/trust-hostility-and-the-human-side-of-apple">the rug slipping out from under me at any time</a>. So I took a step back and haven't updated many of my iOS apps since then.</p>
<p>In place, I worked on <a href="https://github.com/orgs/olsk/repositories">various web components</a> and put them together to create <a href="https://github.com/rosano#open-source-projects">about a dozen web-based projects</a>. Contrasting the experience between the web and native (i.e. iOS) worlds, I feel more enthusiastic about how the web is evolving. It can still be 'limited' in comparison to native apps, but that gap is gradually closing and most of my ideas already fit within what's currently possible.</p>
<h2 id="why-you-should-choose-web-over-native">Why you should choose Web over Native</h2>
<p>Just to review, in case it's not obvious, there are some more commonly understood reasons for choosing the web over native:</p>
<ul>
<li>Basically, all current and future devices (mobile, tablet, desktop) and operating systems (iOS, Android, macOS, Windows, Linux) are supported.</li>
<li>Projects are simpler and more cost-effective to build and deploy, with tools and skills that are easier to acquire.</li>
<li>A thriving universe with bazillions of communities spanning the entire Internet provides lots of answers to questions, and most knowledge is based on open standards and therefore highly transferable.</li>
<li>Backward compatibility is a priority, which means your project is likely to continue working despite technology evolving over time.</li>
<li>You can make changes whenever you like and have them online within seconds or minutes, as opposed to requiring third-party approval for everything, which could take days or weeks.</li>
<li>The environment makes it more and more empowering for single-person or small team operations to produce things, without requiring the resources of a large company.</li>
</ul>
<p>The challenges of the web for developers like myself is to help people 'cross the chasm' that exists due to a lack of common patterns for interacting with apps:</p>
<ul>
<li>There is <strong>no obvious 'App Store'</strong>, so people are left to search the wider web (amongst articles, videos, cat pictures, and everything else), but maybe there could be <a href="https://appindex.app/">one that celebrates the 'instant' nature of this platform</a>, or a subscription bundle like <a href="https://talk.fission.codes/t/setapp-curated-apps-bundle-subscription/2260">SetApp</a> to help with discovery.</li>
<li>There is <strong>no universal 'buy' button</strong>—every project does this their own way, but the <a href="https://ghost.org/help/setting-up-portal/">Ghost Portal</a> is becoming more and more common, and I'm trying something similar with my <a href="https://cafe.rosano.ca/t/69">Fund Button</a>.</li>
<li>The idea of an 'install' button isn't ubiquitous, and <strong>some web apps may not be mobile-friendly</strong> or <a href="https://www.inkandswitch.com/local-first">local-first</a>, but for the rest there are libraries like <a href="https://github.com/koddr/a2hs.js">a2hs.js</a> that help guide people to make accessing web apps a more familiar experience: simply click on an app icon to launch.</li>
<li>The <strong>lack of an integrated payment system</strong> means that every project needs to re-build trust and help others be comfortable enough in the environment to support them financially, but <a href="https://stripe.com/payments/checkout">Stripe Checkout</a>, <a href="https://www.paypal.com/merchantapps/appcenter/acceptpayments/checkout">PayPal Checkout</a>, and <a href="https://webmonetization.org/">Web Monetization</a> are contributing various solutions that reduce friction from this process. (I would also love to see <a href="https://opencollective.com/fiscal-hosting">fiscal hosting</a> become more prevalent so that having a legal entity is not necessary to receive money.)</li>
<li>Performance has often <strong>held back the types of applications that can be built</strong> on the web platform, but <a href="https://webassembly.org/roadmap">WebAssembly</a> will eliminate this issue for a whole class of ideas.</li>
</ul>
<p>There are plenty of people working to create open solutions to these 'missing features'; it seems like a solvable problem with time.</p>
<h2 id="what-its-like-making-native-apps">What it’s like making Native Apps</h2>
<p>(Feel free to skip this section if you'd rather not hear me complain about Apple.) I'm sharing some negative aspects of my experience making native apps with hesitation, not to be a downer but because there might be people that aren't really familiar with the developer side:</p>
<ul>
<li><strong>The paternal review process can be soul-crushing at times</strong>: reviewers don't enforce rules consistently; bad app(le)s get approved and grift people out of money or personal information; it's an anxiety-ridden process that can feel unpredictable. You may have a good impression of Apple if you've bought their products: calling them for support usually means speaking to a friendly person who takes responsibility for your issue and tries to resolve it. App Review on the other hand might as well be an outsourced company, incredibly bureaucratic, and often feels like talking to a rock; any sensuality around the Apple brand quickly vanishes under these bright white office lights as you find yourself filling out TPS reports in the developer cubicle all of a sudden.</li>
<li><strong>Large companies dominate the App Store listings and generally get better treatment</strong>. The lucky independent developers are ones who have the ear of someone who works at Apple to support them if there's a dispute and either push their app through App Review or get it featured.</li>
<li><strong>It's quite a task for an individual or small team to produce an app</strong>, create screenshots and videos, localize everything in multiple languages, respond to reviews, and keep on top of technology that changes every year. The prototypical success looks more like a large organization than two guys in a garage.</li>
<li>It feels like <strong>feeding into a device ecosystem of planned obsolescence and overconsumption</strong>, where developers and consumers need to keep upgrading—an insatiable appetite for more.</li>
<li>The certificates and signing from the build process is <strong>complex</strong> and can bring development to a halt if you don't have the right combination of XCode and macOS (hint: keep buying new Macs).</li>
<li>The expanding variety of screen sizes forces you to <strong>learn responsiveness primitives which are platform-specific</strong> and create a complex array of image and video assets at different sizes for distribution.</li>
<li>The <strong>constantly changing environment</strong> <em>will</em> break your app and force you to either hurry and accommodate the changes or receive messages from customers asking why it doesn't work anymore.</li>
<li>You can't simply share your app with a friend or even <em>install it on your own device</em> without <strong>paying rent or getting permission through App Review</strong>.</li>
</ul>
<p>There are obviously lots of positives to native platforms as well, but these kinds of things weigh down smaller operations like mine, favouring large companies with resources and time to deal with this ever-growing complexity.</p>
<h2 id="developing-for-web">Developing for Web</h2>
<p>Despite the web's challenges, there's much that excites me about its future and some of these characteristics are intrinsic to the platform:</p>
<ul>
<li>The concept of <a href="https://www.fortressofdoors.com/the-future-of-games-is-an-instant-flash-to-the-past/">instant games</a> promotes highly shareable apps via a simple link that requires no install process: show up and start.</li>
<li>Having multiple payment providers, potentially with the addition of cryptocurrencies means if you wanted to also just invent your own value system, maybe some kind of post-money coupon thing, it's possible to integrate with existing systems…</li>
<li>User-controlled personal data stores are <a href="https://0data.app/">already being used</a> on the web and will eventually make their way to native apps.</li>
<li>Edge apps that work completely in the browser are easy to mirror or fork, and virtually free to distribute: imagine having your site/app available everywhere via <a href="https://ipfs.io/">IPFS</a></li>
<li>The culture of perpetual improvement, with less focus on versioning, is normal: people do not need to 'install updates' for each app they use on every change.</li>
<li>It's just more fun and with a lower barrier to entry, which results in more diverse and dynamic communities who form part of a larger public commons: more sparks, more life, more weird.</li>
</ul>
<p><a href="https://apps.apple.com/us/developer/rcreativ/id356609408">My iOS apps</a> have been quietly free for a while. By mid February 2022, they will disappear <em>forever</em>; I'm not completely sure how this works—I understand you can continue to use them, perhaps even re-download them, but only if you already have it. I would like to eventually re-make them for the web (be welcome to <a href="https://github.com/rosano">join me</a> or <a href="https://rosano.ca/back">keep me alive</a>). In the meantime, enjoy these apps while they last. I'm jumping headfirst into a world bubbling with new possibilities and excited to develop for the largest open pool of people on the planet.</p>
</div><p>
	<small>Tagged: <a href="/log/tag/apps/">apps</a>, <a href="/log/tag/process/">process</a>, <a href="/log/tag/meta/">meta</a>.
	</small>
</p>

<hr>
<span class="metadata" data-pagefind-ignore>

	<small>
		<a aria-label="Permalink for 0:26 am, November 14, 2021" href="/log/2021-11-14-going-fully-web/"><time datetime="2021-11-14T00:26:11-05:00" data-pagefind-sort="date[datetime]">00h26</time></a>

		
		<span>from <a href="/log/place/toronto/">Toronto</a> / </span>

		<span><a href="/log/country/canada/">Canada</a></span></small>

</span>

</div>

  ]]></content:encoded>
</item><item>
  <title>Presenting &#39;wetware of writing and doing&#39; at Tools for Thought Rocks</title>
  <link>https://rosano.ca/blog/presenting-wetware-of-writing-and-doing-at-tools-for-thought-rocks/</link>
  <pubDate>Tue, 26 Oct 2021 15:13:40 +0000</pubDate>
  <guid>https://rosano.ca/blog/presenting-wetware-of-writing-and-doing-at-tools-for-thought-rocks/</guid>
  <description>I talk often about my apps, but rarely about how I use them to make things happen. Going share some of my process on October 29th at Tools for Thought Rocks.&#xA;ToolsForThought.Rocks October Meeting&#xA;Video for the event with timestamps and links below. See also the chat log.&#xA;time section notes 00:00 Introduction 07:52 wetware of writing and doing presentation links 08:17 doing, creating, producing 09:39 productivity trinity: capture, organize, purge Productivity Trinity 10:47 keep going 12:08 queues 13:18 joybox for audiovisual media Joybox 15:46 kommit for committing to memory Kommit 17:03 Shareability Joybox source code 18:39 Maintaining software for the long-term 21:45 launchlet for removing friction Launchlet 23:40 emoji log for time-bound journaling and tracking Emoji Log 25:51 Misusing tools on purpose 27:27 Data structures 28:18 Re-usable interface components OLSKCatalog 29:18 Linus Lee and interface consistency between projects thesephist.com 30:30 Tool-making and &#39;handedness&#39; 31:28 Formats for machines versus humans 35:32 hyperdraft for reference, writing, and publishing Hyperdraft 42:12 writing without magic 45:28 Technical stack 46:45 Update your website while typing 48:45 Building your own tool versus using an existing one 51:09 Writing emerges from accumulated material 52:40 Autocomplete helps reference the past 53:28 Twitter likes as a picture of someone&#39;s brain 55:35 POSSE versus PESOS POSSE 57:13 A note-taking Twitter client hybrid 59:08 Cross-platform standards for public and private posts Export considered harmful 61:44 Andy Matuschak tweets as an Agora 62:25 Making app-writing easier 67:13 Safely publishing private things 71:55 Developing apps without authentication 74:36 Throwaway software 75:42 Fragmented forks are hard to merge </description>
  <content:encoded><![CDATA[
  <div class="post">


<div class="content"><p>I talk often about my apps, but rarely about how I use them to make things happen. Going share some of my process on October 29th at Tools for Thought Rocks.</p>
<p><a href="https://lu.ma/tftrocks-oct">ToolsForThought.Rocks October Meeting</a></p>
<hr>
<p>Video for the event with timestamps and links below. See also the <a href="https://raw.githubusercontent.com/ToolsForThoughtRocks/ToolsForThoughtLogSeq/master/pages/October%202021%20Chat%20Log.md">chat log</a>.</p>
<iframe width="300" height="250" src="https://www.youtube-nocookie.com/embed/McKXW-bP2HQ?start=472" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

<table>
  <thead>
      <tr>
          <th>time</th>
          <th>section</th>
          <th>notes</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>00:00</td>
          <td><a href="https://www.youtube.com/watch?v=McKXW-bP2HQ&amp;t=00m00s">Introduction</a></td>
          <td></td>
      </tr>
      <tr>
          <td>07:52</td>
          <td><a href="https://www.youtube.com/watch?v=McKXW-bP2HQ&amp;t=07m52s">wetware of writing and doing</a></td>
          <td><a href="https://rosano.ca/wetware">presentation links</a></td>
      </tr>
      <tr>
          <td>08:17</td>
          <td><a href="https://www.youtube.com/watch?v=McKXW-bP2HQ&amp;t=08m17s">doing, creating, producing</a></td>
          <td></td>
      </tr>
      <tr>
          <td>09:39</td>
          <td><a href="https://www.youtube.com/watch?v=McKXW-bP2HQ&amp;t=09m39s">productivity trinity: capture, organize, purge</a></td>
          <td><a href="https://rosano.hmm.garden/01ett0ax73nhv89tyd5wpn145z">Productivity Trinity</a></td>
      </tr>
      <tr>
          <td>10:47</td>
          <td><a href="https://www.youtube.com/watch?v=McKXW-bP2HQ&amp;t=10m47s">keep going</a></td>
          <td></td>
      </tr>
      <tr>
          <td>12:08</td>
          <td><a href="https://www.youtube.com/watch?v=McKXW-bP2HQ&amp;t=12m08s">queues</a></td>
          <td></td>
      </tr>
      <tr>
          <td>13:18</td>
          <td><a href="https://www.youtube.com/watch?v=McKXW-bP2HQ&amp;t=13m18s">joybox for audiovisual media</a></td>
          <td><a href="https://joybox.rosano.ca">Joybox</a></td>
      </tr>
      <tr>
          <td>15:46</td>
          <td><a href="https://www.youtube.com/watch?v=McKXW-bP2HQ&amp;t=15m46s">kommit for committing to memory</a></td>
          <td><a href="https://kommit.rosano.ca">Kommit</a></td>
      </tr>
      <tr>
          <td>17:03</td>
          <td><a href="https://www.youtube.com/watch?v=McKXW-bP2HQ&amp;t=17m03s">Shareability</a></td>
          <td><a href="https://github.com/joyboxapp/joybox">Joybox source code</a></td>
      </tr>
      <tr>
          <td>18:39</td>
          <td><a href="https://www.youtube.com/watch?v=McKXW-bP2HQ&amp;t=18m39s">Maintaining software for the long-term</a></td>
          <td></td>
      </tr>
      <tr>
          <td>21:45</td>
          <td><a href="https://www.youtube.com/watch?v=McKXW-bP2HQ&amp;t=21m45s">launchlet for removing friction</a></td>
          <td><a href="https://launchlet.dev">Launchlet</a></td>
      </tr>
      <tr>
          <td>23:40</td>
          <td><a href="https://www.youtube.com/watch?v=McKXW-bP2HQ&amp;t=23m40s">emoji log for time-bound journaling and tracking</a></td>
          <td><a href="https://emojilog.rosano.ca">Emoji Log</a></td>
      </tr>
      <tr>
          <td>25:51</td>
          <td><a href="https://www.youtube.com/watch?v=McKXW-bP2HQ&amp;t=25m51s">Misusing tools on purpose</a></td>
          <td></td>
      </tr>
      <tr>
          <td>27:27</td>
          <td><a href="https://www.youtube.com/watch?v=McKXW-bP2HQ&amp;t=27m27s">Data structures</a></td>
          <td></td>
      </tr>
      <tr>
          <td>28:18</td>
          <td><a href="https://www.youtube.com/watch?v=McKXW-bP2HQ&amp;t=28m18s">Re-usable interface components</a></td>
          <td><a href="https://github.com/olsk/OLSKCatalog">OLSKCatalog</a></td>
      </tr>
      <tr>
          <td>29:18</td>
          <td><a href="https://www.youtube.com/watch?v=McKXW-bP2HQ&amp;t=29m18s">Linus Lee and interface consistency between projects</a></td>
          <td><a href="https://thesephist.com">thesephist.com</a></td>
      </tr>
      <tr>
          <td>30:30</td>
          <td><a href="https://www.youtube.com/watch?v=McKXW-bP2HQ&amp;t=30m30s">Tool-making and 'handedness'</a></td>
          <td></td>
      </tr>
      <tr>
          <td>31:28</td>
          <td><a href="https://www.youtube.com/watch?v=McKXW-bP2HQ&amp;t=31m28s">Formats for machines versus humans</a></td>
          <td></td>
      </tr>
      <tr>
          <td>35:32</td>
          <td><a href="https://www.youtube.com/watch?v=McKXW-bP2HQ&amp;t=35m32s">hyperdraft for reference, writing, and publishing</a></td>
          <td><a href="https://hyperdraft.rosano.ca">Hyperdraft</a></td>
      </tr>
      <tr>
          <td>42:12</td>
          <td><a href="https://www.youtube.com/watch?v=McKXW-bP2HQ&amp;t=42m12s">writing without magic</a></td>
          <td></td>
      </tr>
      <tr>
          <td>45:28</td>
          <td><a href="https://www.youtube.com/watch?v=McKXW-bP2HQ&amp;t=45m28s">Technical stack</a></td>
          <td></td>
      </tr>
      <tr>
          <td>46:45</td>
          <td><a href="https://www.youtube.com/watch?v=McKXW-bP2HQ&amp;t=46m45s">Update your website while typing</a></td>
          <td></td>
      </tr>
      <tr>
          <td>48:45</td>
          <td><a href="https://www.youtube.com/watch?v=McKXW-bP2HQ&amp;t=48m45s">Building your own tool versus using an existing one</a></td>
          <td></td>
      </tr>
      <tr>
          <td>51:09</td>
          <td><a href="https://www.youtube.com/watch?v=McKXW-bP2HQ&amp;t=51m09s">Writing emerges from accumulated material</a></td>
          <td></td>
      </tr>
      <tr>
          <td>52:40</td>
          <td><a href="https://www.youtube.com/watch?v=McKXW-bP2HQ&amp;t=52m40s">Autocomplete helps reference the past</a></td>
          <td></td>
      </tr>
      <tr>
          <td>53:28</td>
          <td><a href="https://www.youtube.com/watch?v=McKXW-bP2HQ&amp;t=53m28s">Twitter likes as a picture of someone's brain</a></td>
          <td></td>
      </tr>
      <tr>
          <td>55:35</td>
          <td><a href="https://www.youtube.com/watch?v=McKXW-bP2HQ&amp;t=55m35s">POSSE versus PESOS</a></td>
          <td><a href="https://indieweb.org/POSSE">POSSE</a></td>
      </tr>
      <tr>
          <td>57:13</td>
          <td><a href="https://www.youtube.com/watch?v=McKXW-bP2HQ&amp;t=57m13s">A note-taking Twitter client hybrid</a></td>
          <td></td>
      </tr>
      <tr>
          <td>59:08</td>
          <td><a href="https://www.youtube.com/watch?v=McKXW-bP2HQ&amp;t=59m08s">Cross-platform standards for public and private posts</a></td>
          <td><a href="https://twitter.com/andy%5Fmatuschak/status/1452438176996347907">Export considered harmful</a></td>
      </tr>
      <tr>
          <td>61:44</td>
          <td><a href="https://www.youtube.com/watch?v=McKXW-bP2HQ&amp;t=61m44s">Andy Matuschak tweets as an Agora</a></td>
          <td></td>
      </tr>
      <tr>
          <td>62:25</td>
          <td><a href="https://www.youtube.com/watch?v=McKXW-bP2HQ&amp;t=62m25s">Making app-writing easier</a></td>
          <td></td>
      </tr>
      <tr>
          <td>67:13</td>
          <td><a href="https://www.youtube.com/watch?v=McKXW-bP2HQ&amp;t=67m13s">Safely publishing private things</a></td>
          <td></td>
      </tr>
      <tr>
          <td>71:55</td>
          <td><a href="https://www.youtube.com/watch?v=McKXW-bP2HQ&amp;t=71m55s">Developing apps without authentication</a></td>
          <td></td>
      </tr>
      <tr>
          <td>74:36</td>
          <td><a href="https://www.youtube.com/watch?v=McKXW-bP2HQ&amp;t=74m36s">Throwaway software</a></td>
          <td></td>
      </tr>
      <tr>
          <td>75:42</td>
          <td><a href="https://www.youtube.com/watch?v=McKXW-bP2HQ&amp;t=75m42s">Fragmented forks are hard to merge</a></td>
          <td></td>
      </tr>
  </tbody>
</table>
</div><p>
	<small>Tagged: <a href="/log/tag/apps/">apps</a>, <a href="/log/tag/process/">process</a>, <a href="/log/tag/event/">event</a>.
	</small>
</p>

<hr>
<span class="metadata" data-pagefind-ignore>

	<small>
		<a aria-label="Permalink for 11:13 am, October 26, 2021" href="/blog/presenting-wetware-of-writing-and-doing-at-tools-for-thought-rocks/"><time datetime="2021-10-26T11:13:40-04:00" data-pagefind-sort="date[datetime]">11h13</time></a>

		
		<span>from <a href="/log/place/toronto/">Toronto</a> / </span>

		<span><a href="/log/country/canada/">Canada</a></span></small>

</span>

</div>

  ]]></content:encoded>
</item><item>
  <title>Tuesday, October 26, 2021 11h13</title>
  <link>https://rosano.ca/log/2021-10-26-presenting-wetware-of-writing-and-doing-at-tools-for-thought-rocks/</link>
  <pubDate>Tue, 26 Oct 2021 11:13:40 -0400</pubDate>
  <guid>https://rosano.ca/log/2021-10-26-presenting-wetware-of-writing-and-doing-at-tools-for-thought-rocks/</guid>
  <description>I talk often about my apps, but rarely about how I use them to make things happen. Going share some of my process on October 29th at Tools for Thought Rocks.&#xA;ToolsForThought.Rocks October Meeting&#xA;Video for the event with timestamps and links below. See also the chat log.&#xA;time section notes 00:00 Introduction 07:52 wetware of writing and doing presentation links 08:17 doing, creating, producing 09:39 productivity trinity: capture, organize, purge Productivity Trinity 10:47 keep going 12:08 queues 13:18 joybox for audiovisual media Joybox 15:46 kommit for committing to memory Kommit 17:03 Shareability Joybox source code 18:39 Maintaining software for the long-term 21:45 launchlet for removing friction Launchlet 23:40 emoji log for time-bound journaling and tracking Emoji Log 25:51 Misusing tools on purpose 27:27 Data structures 28:18 Re-usable interface components OLSKCatalog 29:18 Linus Lee and interface consistency between projects thesephist.com 30:30 Tool-making and &#39;handedness&#39; 31:28 Formats for machines versus humans 35:32 hyperdraft for reference, writing, and publishing Hyperdraft 42:12 writing without magic 45:28 Technical stack 46:45 Update your website while typing 48:45 Building your own tool versus using an existing one 51:09 Writing emerges from accumulated material 52:40 Autocomplete helps reference the past 53:28 Twitter likes as a picture of someone&#39;s brain 55:35 POSSE versus PESOS POSSE 57:13 A note-taking Twitter client hybrid 59:08 Cross-platform standards for public and private posts Export considered harmful 61:44 Andy Matuschak tweets as an Agora 62:25 Making app-writing easier 67:13 Safely publishing private things 71:55 Developing apps without authentication 74:36 Throwaway software 75:42 Fragmented forks are hard to merge </description>
  <content:encoded><![CDATA[
  <div class="post">


<div class="content"><p>I talk often about my apps, but rarely about how I use them to make things happen. Going share some of my process on October 29th at Tools for Thought Rocks.</p>
<p><a href="https://lu.ma/tftrocks-oct">ToolsForThought.Rocks October Meeting</a></p>
<hr>
<p>Video for the event with timestamps and links below. See also the <a href="https://raw.githubusercontent.com/ToolsForThoughtRocks/ToolsForThoughtLogSeq/master/pages/October%202021%20Chat%20Log.md">chat log</a>.</p>
<iframe width="300" height="250" src="https://www.youtube-nocookie.com/embed/McKXW-bP2HQ?start=472" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

<table>
  <thead>
      <tr>
          <th>time</th>
          <th>section</th>
          <th>notes</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>00:00</td>
          <td><a href="https://www.youtube.com/watch?v=McKXW-bP2HQ&amp;t=00m00s">Introduction</a></td>
          <td></td>
      </tr>
      <tr>
          <td>07:52</td>
          <td><a href="https://www.youtube.com/watch?v=McKXW-bP2HQ&amp;t=07m52s">wetware of writing and doing</a></td>
          <td><a href="https://rosano.ca/wetware">presentation links</a></td>
      </tr>
      <tr>
          <td>08:17</td>
          <td><a href="https://www.youtube.com/watch?v=McKXW-bP2HQ&amp;t=08m17s">doing, creating, producing</a></td>
          <td></td>
      </tr>
      <tr>
          <td>09:39</td>
          <td><a href="https://www.youtube.com/watch?v=McKXW-bP2HQ&amp;t=09m39s">productivity trinity: capture, organize, purge</a></td>
          <td><a href="https://rosano.hmm.garden/01ett0ax73nhv89tyd5wpn145z">Productivity Trinity</a></td>
      </tr>
      <tr>
          <td>10:47</td>
          <td><a href="https://www.youtube.com/watch?v=McKXW-bP2HQ&amp;t=10m47s">keep going</a></td>
          <td></td>
      </tr>
      <tr>
          <td>12:08</td>
          <td><a href="https://www.youtube.com/watch?v=McKXW-bP2HQ&amp;t=12m08s">queues</a></td>
          <td></td>
      </tr>
      <tr>
          <td>13:18</td>
          <td><a href="https://www.youtube.com/watch?v=McKXW-bP2HQ&amp;t=13m18s">joybox for audiovisual media</a></td>
          <td><a href="https://joybox.rosano.ca">Joybox</a></td>
      </tr>
      <tr>
          <td>15:46</td>
          <td><a href="https://www.youtube.com/watch?v=McKXW-bP2HQ&amp;t=15m46s">kommit for committing to memory</a></td>
          <td><a href="https://kommit.rosano.ca">Kommit</a></td>
      </tr>
      <tr>
          <td>17:03</td>
          <td><a href="https://www.youtube.com/watch?v=McKXW-bP2HQ&amp;t=17m03s">Shareability</a></td>
          <td><a href="https://github.com/joyboxapp/joybox">Joybox source code</a></td>
      </tr>
      <tr>
          <td>18:39</td>
          <td><a href="https://www.youtube.com/watch?v=McKXW-bP2HQ&amp;t=18m39s">Maintaining software for the long-term</a></td>
          <td></td>
      </tr>
      <tr>
          <td>21:45</td>
          <td><a href="https://www.youtube.com/watch?v=McKXW-bP2HQ&amp;t=21m45s">launchlet for removing friction</a></td>
          <td><a href="https://launchlet.dev">Launchlet</a></td>
      </tr>
      <tr>
          <td>23:40</td>
          <td><a href="https://www.youtube.com/watch?v=McKXW-bP2HQ&amp;t=23m40s">emoji log for time-bound journaling and tracking</a></td>
          <td><a href="https://emojilog.rosano.ca">Emoji Log</a></td>
      </tr>
      <tr>
          <td>25:51</td>
          <td><a href="https://www.youtube.com/watch?v=McKXW-bP2HQ&amp;t=25m51s">Misusing tools on purpose</a></td>
          <td></td>
      </tr>
      <tr>
          <td>27:27</td>
          <td><a href="https://www.youtube.com/watch?v=McKXW-bP2HQ&amp;t=27m27s">Data structures</a></td>
          <td></td>
      </tr>
      <tr>
          <td>28:18</td>
          <td><a href="https://www.youtube.com/watch?v=McKXW-bP2HQ&amp;t=28m18s">Re-usable interface components</a></td>
          <td><a href="https://github.com/olsk/OLSKCatalog">OLSKCatalog</a></td>
      </tr>
      <tr>
          <td>29:18</td>
          <td><a href="https://www.youtube.com/watch?v=McKXW-bP2HQ&amp;t=29m18s">Linus Lee and interface consistency between projects</a></td>
          <td><a href="https://thesephist.com">thesephist.com</a></td>
      </tr>
      <tr>
          <td>30:30</td>
          <td><a href="https://www.youtube.com/watch?v=McKXW-bP2HQ&amp;t=30m30s">Tool-making and 'handedness'</a></td>
          <td></td>
      </tr>
      <tr>
          <td>31:28</td>
          <td><a href="https://www.youtube.com/watch?v=McKXW-bP2HQ&amp;t=31m28s">Formats for machines versus humans</a></td>
          <td></td>
      </tr>
      <tr>
          <td>35:32</td>
          <td><a href="https://www.youtube.com/watch?v=McKXW-bP2HQ&amp;t=35m32s">hyperdraft for reference, writing, and publishing</a></td>
          <td><a href="https://hyperdraft.rosano.ca">Hyperdraft</a></td>
      </tr>
      <tr>
          <td>42:12</td>
          <td><a href="https://www.youtube.com/watch?v=McKXW-bP2HQ&amp;t=42m12s">writing without magic</a></td>
          <td></td>
      </tr>
      <tr>
          <td>45:28</td>
          <td><a href="https://www.youtube.com/watch?v=McKXW-bP2HQ&amp;t=45m28s">Technical stack</a></td>
          <td></td>
      </tr>
      <tr>
          <td>46:45</td>
          <td><a href="https://www.youtube.com/watch?v=McKXW-bP2HQ&amp;t=46m45s">Update your website while typing</a></td>
          <td></td>
      </tr>
      <tr>
          <td>48:45</td>
          <td><a href="https://www.youtube.com/watch?v=McKXW-bP2HQ&amp;t=48m45s">Building your own tool versus using an existing one</a></td>
          <td></td>
      </tr>
      <tr>
          <td>51:09</td>
          <td><a href="https://www.youtube.com/watch?v=McKXW-bP2HQ&amp;t=51m09s">Writing emerges from accumulated material</a></td>
          <td></td>
      </tr>
      <tr>
          <td>52:40</td>
          <td><a href="https://www.youtube.com/watch?v=McKXW-bP2HQ&amp;t=52m40s">Autocomplete helps reference the past</a></td>
          <td></td>
      </tr>
      <tr>
          <td>53:28</td>
          <td><a href="https://www.youtube.com/watch?v=McKXW-bP2HQ&amp;t=53m28s">Twitter likes as a picture of someone's brain</a></td>
          <td></td>
      </tr>
      <tr>
          <td>55:35</td>
          <td><a href="https://www.youtube.com/watch?v=McKXW-bP2HQ&amp;t=55m35s">POSSE versus PESOS</a></td>
          <td><a href="https://indieweb.org/POSSE">POSSE</a></td>
      </tr>
      <tr>
          <td>57:13</td>
          <td><a href="https://www.youtube.com/watch?v=McKXW-bP2HQ&amp;t=57m13s">A note-taking Twitter client hybrid</a></td>
          <td></td>
      </tr>
      <tr>
          <td>59:08</td>
          <td><a href="https://www.youtube.com/watch?v=McKXW-bP2HQ&amp;t=59m08s">Cross-platform standards for public and private posts</a></td>
          <td><a href="https://twitter.com/andy%5Fmatuschak/status/1452438176996347907">Export considered harmful</a></td>
      </tr>
      <tr>
          <td>61:44</td>
          <td><a href="https://www.youtube.com/watch?v=McKXW-bP2HQ&amp;t=61m44s">Andy Matuschak tweets as an Agora</a></td>
          <td></td>
      </tr>
      <tr>
          <td>62:25</td>
          <td><a href="https://www.youtube.com/watch?v=McKXW-bP2HQ&amp;t=62m25s">Making app-writing easier</a></td>
          <td></td>
      </tr>
      <tr>
          <td>67:13</td>
          <td><a href="https://www.youtube.com/watch?v=McKXW-bP2HQ&amp;t=67m13s">Safely publishing private things</a></td>
          <td></td>
      </tr>
      <tr>
          <td>71:55</td>
          <td><a href="https://www.youtube.com/watch?v=McKXW-bP2HQ&amp;t=71m55s">Developing apps without authentication</a></td>
          <td></td>
      </tr>
      <tr>
          <td>74:36</td>
          <td><a href="https://www.youtube.com/watch?v=McKXW-bP2HQ&amp;t=74m36s">Throwaway software</a></td>
          <td></td>
      </tr>
      <tr>
          <td>75:42</td>
          <td><a href="https://www.youtube.com/watch?v=McKXW-bP2HQ&amp;t=75m42s">Fragmented forks are hard to merge</a></td>
          <td></td>
      </tr>
  </tbody>
</table>
</div><p>
	<small>Tagged: <a href="/log/tag/apps/">apps</a>, <a href="/log/tag/process/">process</a>, <a href="/log/tag/event/">event</a>.
	</small>
</p>

<hr>
<span class="metadata" data-pagefind-ignore>

	<small>
		<a aria-label="Permalink for 11:13 am, October 26, 2021" href="/log/2021-10-26-presenting-wetware-of-writing-and-doing-at-tools-for-thought-rocks/"><time datetime="2021-10-26T11:13:40-04:00" data-pagefind-sort="date[datetime]">11h13</time></a>

		
		<span>from <a href="/log/place/toronto/">Toronto</a> / </span>

		<span><a href="/log/country/canada/">Canada</a></span></small>

</span>

</div>

  ]]></content:encoded>
</item><item>
  <title>Rethinking analytics</title>
  <link>https://rosano.ca/blog/rethinking-analytics/</link>
  <pubDate>Sun, 17 Oct 2021 17:00:00 +0000</pubDate>
  <guid>https://rosano.ca/blog/rethinking-analytics/</guid>
  <description>A while ago, after years of being &amp;quot;analytics-free&amp;quot;, I decided to try Plausible Analytics and I want to share what led me to start thinking differently.&#xA;The original provocation was learning that Photopea, despite financial success as a one-person operation, earns most of its revenue from advertising and only four percent of its revenue from subscriptions or memberships. Considering that I am trying to finance my own sustainability directly via the people using the app, I thought it curious that this income equalled a sort of &#39;minimum wage&#39; despite being a well-known, high-traffic project. I don&#39;t intend or know how to make something as complex and deep as a Photoshop clone, and so I wondered if I would have fewer opportunities than this—perhaps I need to be open to selling ads at some point in the future, if that&#39;s what it takes to keep content freely accessible on the web. (On the other hand, I believe it&#39;s better to avoid comparing yourself to others and complexity is not synonymous with income, but I&#39;m not sure how to think about all this at the moment).&#xA;</description>
  <content:encoded><![CDATA[
  <div class="post">


<div class="content"><p>A while ago, after years of being &quot;analytics-free&quot;, I decided to try <a href="https://plausible.io">Plausible Analytics</a> and I want to share what led me to start thinking differently.</p>
<p>The original provocation was learning that <a href="https://photopea.com">Photopea</a>, despite <a href="https://www.lunadio.com/blog/the-story-of-a-unicorn-solo-founder-making-dollar500000-arr">financial success as a one-person operation</a>, earns most of its revenue from advertising and only four percent of its revenue from subscriptions or memberships. Considering that I am trying to finance my own sustainability directly via the people using the app, I thought it curious that this income equalled a sort of 'minimum wage' despite being a well-known, high-traffic project. I don't intend or know how to make something as complex and deep as a Photoshop clone, and so I wondered if I would have fewer opportunities than this—perhaps I need to be open to selling ads at some point in the future, if that's what it takes to keep content freely accessible on the web. (On the other hand, I believe it's better to avoid comparing yourself to others and complexity is not synonymous with income, but I'm not sure how to think about all this at the moment).</p>
<p>Another reason is that I had a hard time turning garbage numbers like 'requests' (which include bots and counts multiple files for each pageload) into something that gives me an idea of 'how many people are actually looking at this?'. I believe in talking to the people who use what you make, but I think many (or most?) people don't have time to write in their impressions, and so this will always be smaller by a magnitude you cannot know; there is value in passive feedback and I think most people would prefer this if it's done with purpose.</p>
<p>So far it feels good. I <a href="https://rosano.hmm.garden/01fc3te69pp5ydmxct69x8jahg">aggregate visitors to various projects into a single picture</a>. It's nice to have more meaningful numbers and to find out about interesting places that link to you, like <a href="https://manualdousuario.net">this Brazilian guy's tech blog</a>. One of my <a href="https://rosano.hmm.garden/01ev1wh0nnpt3nkq2r8msvw9a2">100 steps to success</a>, still in-progress, is to track your growth over time, and this is another way to do that.</p>
<p>I hesitated all these years because Google Analytics has become a form of surveillance capitalism, and this taints most other approaches to analytics (or at least our perceptions of it). How can this be remedied? Does it help to use <a href="https://plausible.io/open-source-website-analytics">open-source technology</a>? Or if the company hosting the technology <a href="https://plausible.io/privacy-focused-web-analytics">aligns with your values</a>? Collecting data generally requires trust because one cannot verify beyond the 'privacy policy'—what about being transparent and <a href="https://plausible.io/hyperdraft.rosano.ca">just showing what one collects</a>?</p>
<p>Similar to <a href="https://buttondown.email">Buttondown</a>, which I use to send mailing lists, I dig <a href="https://plausible.io/blog/best-marketing-practices">the spirit behind the project and its team</a> and would like to lend my support. All this feels holistic so far, but I'm open to having my mind changed again. What do you think?</p>
<hr>
<p>Originally posted in <a href="https://cafe.rosano.ca/t/014-rethinking-analytics-nihiloxica/123#rethinking-analytics-2">Ephemerata #014</a>.</p>
</div><p>
	<small>Tagged: <a href="/log/tag/process/">process</a>, <a href="/log/tag/meta/">meta</a>.
	</small>
</p>

<hr>
<span class="metadata" data-pagefind-ignore>

	<small>
		<a aria-label="Permalink for 1:00 pm, October 17, 2021" href="/blog/rethinking-analytics/"><time datetime="2021-10-17T13:00:00-04:00" data-pagefind-sort="date[datetime]">13h00</time></a>

		
		<span>from <a href="/log/place/toronto/">Toronto</a> / </span>

		<span><a href="/log/country/canada/">Canada</a></span></small>

</span>

</div>

  ]]></content:encoded>
</item><item>
  <title>Sunday, October 17, 2021 13h00</title>
  <link>https://rosano.ca/log/2021-10-17-rethinking-analytics/</link>
  <pubDate>Sun, 17 Oct 2021 13:00:00 -0400</pubDate>
  <guid>https://rosano.ca/log/2021-10-17-rethinking-analytics/</guid>
  <description>A while ago, after years of being &amp;quot;analytics-free&amp;quot;, I decided to try Plausible Analytics and I want to share what led me to start thinking differently.&#xA;The original provocation was learning that Photopea, despite financial success as a one-person operation, earns most of its revenue from advertising and only four percent of its revenue from subscriptions or memberships. Considering that I am trying to finance my own sustainability directly via the people using the app, I thought it curious that this income equalled a sort of &#39;minimum wage&#39; despite being a well-known, high-traffic project. I don&#39;t intend or know how to make something as complex and deep as a Photoshop clone, and so I wondered if I would have fewer opportunities than this—perhaps I need to be open to selling ads at some point in the future, if that&#39;s what it takes to keep content freely accessible on the web. (On the other hand, I believe it&#39;s better to avoid comparing yourself to others and complexity is not synonymous with income, but I&#39;m not sure how to think about all this at the moment).&#xA;</description>
  <content:encoded><![CDATA[
  <div class="post">


<div class="content"><p>A while ago, after years of being &quot;analytics-free&quot;, I decided to try <a href="https://plausible.io">Plausible Analytics</a> and I want to share what led me to start thinking differently.</p>
<p>The original provocation was learning that <a href="https://photopea.com">Photopea</a>, despite <a href="https://www.lunadio.com/blog/the-story-of-a-unicorn-solo-founder-making-dollar500000-arr">financial success as a one-person operation</a>, earns most of its revenue from advertising and only four percent of its revenue from subscriptions or memberships. Considering that I am trying to finance my own sustainability directly via the people using the app, I thought it curious that this income equalled a sort of 'minimum wage' despite being a well-known, high-traffic project. I don't intend or know how to make something as complex and deep as a Photoshop clone, and so I wondered if I would have fewer opportunities than this—perhaps I need to be open to selling ads at some point in the future, if that's what it takes to keep content freely accessible on the web. (On the other hand, I believe it's better to avoid comparing yourself to others and complexity is not synonymous with income, but I'm not sure how to think about all this at the moment).</p>
<p>Another reason is that I had a hard time turning garbage numbers like 'requests' (which include bots and counts multiple files for each pageload) into something that gives me an idea of 'how many people are actually looking at this?'. I believe in talking to the people who use what you make, but I think many (or most?) people don't have time to write in their impressions, and so this will always be smaller by a magnitude you cannot know; there is value in passive feedback and I think most people would prefer this if it's done with purpose.</p>
<p>So far it feels good. I <a href="https://rosano.hmm.garden/01fc3te69pp5ydmxct69x8jahg">aggregate visitors to various projects into a single picture</a>. It's nice to have more meaningful numbers and to find out about interesting places that link to you, like <a href="https://manualdousuario.net">this Brazilian guy's tech blog</a>. One of my <a href="https://rosano.hmm.garden/01ev1wh0nnpt3nkq2r8msvw9a2">100 steps to success</a>, still in-progress, is to track your growth over time, and this is another way to do that.</p>
<p>I hesitated all these years because Google Analytics has become a form of surveillance capitalism, and this taints most other approaches to analytics (or at least our perceptions of it). How can this be remedied? Does it help to use <a href="https://plausible.io/open-source-website-analytics">open-source technology</a>? Or if the company hosting the technology <a href="https://plausible.io/privacy-focused-web-analytics">aligns with your values</a>? Collecting data generally requires trust because one cannot verify beyond the 'privacy policy'—what about being transparent and <a href="https://plausible.io/hyperdraft.rosano.ca">just showing what one collects</a>?</p>
<p>Similar to <a href="https://buttondown.email">Buttondown</a>, which I use to send mailing lists, I dig <a href="https://plausible.io/blog/best-marketing-practices">the spirit behind the project and its team</a> and would like to lend my support. All this feels holistic so far, but I'm open to having my mind changed again. What do you think?</p>
<hr>
<p>Originally posted in <a href="https://cafe.rosano.ca/t/014-rethinking-analytics-nihiloxica/123#rethinking-analytics-2">Ephemerata #014</a>.</p>
</div><p>
	<small>Tagged: <a href="/log/tag/process/">process</a>, <a href="/log/tag/meta/">meta</a>.
	</small>
</p>

<hr>
<span class="metadata" data-pagefind-ignore>

	<small>
		<a aria-label="Permalink for 1:00 pm, October 17, 2021" href="/log/2021-10-17-rethinking-analytics/"><time datetime="2021-10-17T13:00:00-04:00" data-pagefind-sort="date[datetime]">13h00</time></a>

		
		<span>from <a href="/log/place/toronto/">Toronto</a> / </span>

		<span><a href="/log/country/canada/">Canada</a></span></small>

</span>

</div>

  ]]></content:encoded>
</item><item>
  <title>Inner feedback loops</title>
  <link>https://rosano.ca/blog/inner-feedback-loops/</link>
  <pubDate>Sun, 18 Jul 2021 13:44:49 +0000</pubDate>
  <guid>https://rosano.ca/blog/inner-feedback-loops/</guid>
  <description>In preparing Tiny concert for a friend, I audio recorded myself playing guitar while singing and listened back to it immediately after. I tried to do this at least once per day and ended up with four or five sessions repeating this process with the same set of songs.&#xA;I was surprised by my noticeable progress in just a few days, and that the process felt productive, self-affirming, and contributing to a healthy relationship with music and the instrument—I actually enjoyed the feedback loop. I noted how my own preferences emerge more clearly: I&#39;m definitely modelling my performance off of the recordings from which I learned the repertoire, but hearing myself makes my inclinations more malleable—music starts to feel more like a moldable material rather than something abstract or &#39;from someone else&#39;. I thought I would feel overly critical, but it actually trained me to accept and even enjoy my own sound. For a few days I also had a nice routine going of breakfast, reading, stretching, recording, listening back—it felt like a thorough wake-up, leaving me ready to experience the day.&#xA;</description>
  <content:encoded><![CDATA[
  <div class="post">


<div class="content"><p>In preparing <a href="https://utopia.rosano.ca/tiny-concert-for-a-friend">Tiny concert for a friend</a>, I audio recorded myself playing guitar while singing and listened back to it immediately after. I tried to do this at least once per day and ended up with four or five sessions repeating this process with the same set of songs.</p>
<p>I was surprised by my noticeable progress in just a few days, and that the process felt productive, self-affirming, and contributing to a healthy relationship with music and the instrument—I actually enjoyed the feedback loop. I noted how my own preferences emerge more clearly: I'm definitely modelling my performance off of the recordings from which I learned the repertoire, but hearing myself makes my inclinations more malleable—music starts to feel more like a moldable material rather than something abstract or 'from someone else'. I thought I would feel overly critical, but it actually trained me to accept and even enjoy my own sound. For a few days I also had a nice routine going of breakfast, reading, stretching, recording, listening back—it felt like a thorough wake-up, leaving me ready to experience the day.</p>
<p>I frequently wondered, &quot;Why have I never done this?&quot;. I always knew that people do this, and that I could too, but somehow never gave it a try. I've known about this for a while, since studying music professionally and having been around musicians and their culture for a while. Perhaps it's due to dogmas around perfection that made me feel too intimidated to listen to myself: in one context, music being more about execution than improvisation; in another music being <a href="https://rosano.hmm.garden/01ev1pxthspxdq5e5k5m54e1sg">professionalized</a> to the point where sounding 'good' takes precedence over emotional expression. I haven't figured out my answer yet, but I find it useful to ask &quot;What stopped me from doing this and what else is it preventing me from experiencing?&quot;</p>
<p>There were obviously various challenges, but I felt uplifted knowing that one grows by learning to deal with situations. One long-time difficulty of mine is to play music at an unfavourable moment (such as in the morning, before my day starts, in sort of chilly temperature). I found myself working through feelings of clammy fingers and lousy tone, using what I have to construct something (the recursive process of using your own resources to validate your own resources), and building ways to deal with what's at hand. Another difficulty is various hesitations and mental disturbances (thinking too much and other things that impede your flow). I found multiple aspects of performance to help hook myself into the music when feeling distracted: pronunciation, enunciation, helping the body embody the music, voice projection, breathing, etc… It was a relief when I reminded myself that it's okay for me to be somewhat shoddy with my guitar playing because in this context the words are more important. I was able to overcome this binary around &quot;now we're playing the song, now we're not&quot; by constructing mini-routines like tuning the guitar before each performance, allowing myself to revise any ambiguities directly or through improvising, not worrying about how the audience perceives it, and generally opening myself up to be more fluid with music and sound.</p>
<p>To me, the ideals of 'gradual incremental progress' (so common in the world of technology) always seemed at odds with the non-linear nature of music, but I now feel like having arrived at some semblance of it that nurtures more than compromises the practice.</p>
<p>I'm excited to try this more in the future, not only as a way to 'rehearse' but as a way to 'compose'. I also see the approach as part of my broader idea about documenting moments:</p>
<blockquote>
<p>For most of life it's possible to look back and observe your own progress. This is encouraging at times when you feel less positive about yourself. All it takes is making a note of where you are with words, sounds, or images.</p></blockquote>
</div><p>
	<small>Tagged: <a href="/log/tag/reflection/">reflection</a>, <a href="/log/tag/vibrations/">Vibrations</a>, <a href="/log/tag/process/">process</a>, <a href="/log/tag/meta/">meta</a>.
	</small>
</p>

<hr>
<span class="metadata" data-pagefind-ignore>

	<small>
		<a aria-label="Permalink for 10:44 am, July 18, 2021" href="/blog/inner-feedback-loops/"><time datetime="2021-07-18T10:44:49-03:00" data-pagefind-sort="date[datetime]">10h44</time></a>

		
		<span>from <a href="/log/place/brasilia/">Brasilia</a> / </span>

		<span><a href="/log/country/brazil/">Brazil</a></span></small>

</span>

</div>

  ]]></content:encoded>
</item><item>
  <title>Sunday, July 18, 2021 10h44</title>
  <link>https://rosano.ca/log/2021-07-18-inner-feedback-loops/</link>
  <pubDate>Sun, 18 Jul 2021 10:44:49 -0300</pubDate>
  <guid>https://rosano.ca/log/2021-07-18-inner-feedback-loops/</guid>
  <description>In preparing Tiny concert for a friend, I audio recorded myself playing guitar while singing and listened back to it immediately after. I tried to do this at least once per day and ended up with four or five sessions repeating this process with the same set of songs.&#xA;I was surprised by my noticeable progress in just a few days, and that the process felt productive, self-affirming, and contributing to a healthy relationship with music and the instrument—I actually enjoyed the feedback loop. I noted how my own preferences emerge more clearly: I&#39;m definitely modelling my performance off of the recordings from which I learned the repertoire, but hearing myself makes my inclinations more malleable—music starts to feel more like a moldable material rather than something abstract or &#39;from someone else&#39;. I thought I would feel overly critical, but it actually trained me to accept and even enjoy my own sound. For a few days I also had a nice routine going of breakfast, reading, stretching, recording, listening back—it felt like a thorough wake-up, leaving me ready to experience the day.&#xA;</description>
  <content:encoded><![CDATA[
  <div class="post">


<div class="content"><p>In preparing <a href="https://utopia.rosano.ca/tiny-concert-for-a-friend">Tiny concert for a friend</a>, I audio recorded myself playing guitar while singing and listened back to it immediately after. I tried to do this at least once per day and ended up with four or five sessions repeating this process with the same set of songs.</p>
<p>I was surprised by my noticeable progress in just a few days, and that the process felt productive, self-affirming, and contributing to a healthy relationship with music and the instrument—I actually enjoyed the feedback loop. I noted how my own preferences emerge more clearly: I'm definitely modelling my performance off of the recordings from which I learned the repertoire, but hearing myself makes my inclinations more malleable—music starts to feel more like a moldable material rather than something abstract or 'from someone else'. I thought I would feel overly critical, but it actually trained me to accept and even enjoy my own sound. For a few days I also had a nice routine going of breakfast, reading, stretching, recording, listening back—it felt like a thorough wake-up, leaving me ready to experience the day.</p>
<p>I frequently wondered, &quot;Why have I never done this?&quot;. I always knew that people do this, and that I could too, but somehow never gave it a try. I've known about this for a while, since studying music professionally and having been around musicians and their culture for a while. Perhaps it's due to dogmas around perfection that made me feel too intimidated to listen to myself: in one context, music being more about execution than improvisation; in another music being <a href="https://rosano.hmm.garden/01ev1pxthspxdq5e5k5m54e1sg">professionalized</a> to the point where sounding 'good' takes precedence over emotional expression. I haven't figured out my answer yet, but I find it useful to ask &quot;What stopped me from doing this and what else is it preventing me from experiencing?&quot;</p>
<p>There were obviously various challenges, but I felt uplifted knowing that one grows by learning to deal with situations. One long-time difficulty of mine is to play music at an unfavourable moment (such as in the morning, before my day starts, in sort of chilly temperature). I found myself working through feelings of clammy fingers and lousy tone, using what I have to construct something (the recursive process of using your own resources to validate your own resources), and building ways to deal with what's at hand. Another difficulty is various hesitations and mental disturbances (thinking too much and other things that impede your flow). I found multiple aspects of performance to help hook myself into the music when feeling distracted: pronunciation, enunciation, helping the body embody the music, voice projection, breathing, etc… It was a relief when I reminded myself that it's okay for me to be somewhat shoddy with my guitar playing because in this context the words are more important. I was able to overcome this binary around &quot;now we're playing the song, now we're not&quot; by constructing mini-routines like tuning the guitar before each performance, allowing myself to revise any ambiguities directly or through improvising, not worrying about how the audience perceives it, and generally opening myself up to be more fluid with music and sound.</p>
<p>To me, the ideals of 'gradual incremental progress' (so common in the world of technology) always seemed at odds with the non-linear nature of music, but I now feel like having arrived at some semblance of it that nurtures more than compromises the practice.</p>
<p>I'm excited to try this more in the future, not only as a way to 'rehearse' but as a way to 'compose'. I also see the approach as part of my broader idea about documenting moments:</p>
<blockquote>
<p>For most of life it's possible to look back and observe your own progress. This is encouraging at times when you feel less positive about yourself. All it takes is making a note of where you are with words, sounds, or images.</p></blockquote>
</div><p>
	<small>Tagged: <a href="/log/tag/reflection/">reflection</a>, <a href="/log/tag/vibrations/">Vibrations</a>, <a href="/log/tag/process/">process</a>, <a href="/log/tag/meta/">meta</a>.
	</small>
</p>

<hr>
<span class="metadata" data-pagefind-ignore>

	<small>
		<a aria-label="Permalink for 10:44 am, July 18, 2021" href="/log/2021-07-18-inner-feedback-loops/"><time datetime="2021-07-18T10:44:49-03:00" data-pagefind-sort="date[datetime]">10h44</time></a>

		
		<span>from <a href="/log/place/brasilia/">Brasilia</a> / </span>

		<span><a href="/log/country/brazil/">Brazil</a></span></small>

</span>

</div>

  ]]></content:encoded>
</item><item>
  <title>Testing logic and interfaces</title>
  <link>https://rosano.ca/blog/testing-logic-and-interfaces/</link>
  <pubDate>Thu, 10 Jun 2021 13:59:48 +0000</pubDate>
  <guid>https://rosano.ca/blog/testing-logic-and-interfaces/</guid>
  <description>Automatically check that things are working as intended.</description>
  <content:encoded><![CDATA[
  <div class="post">

<nugget>Automatically check that things are working as intended.</nugget><hr>
<div class="content"><iframe width="300" height="250" src="https://www.youtube-nocookie.com/embed/cbTpX1Z1C-E" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

<h1 id="tutorial">Tutorial</h1>
<table>
  <thead>
      <tr>
          <th>time</th>
          <th>section</th>
          <th>notes</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>00:00</td>
          <td><a href="https://youtu.be/cbTpX1Z1C-E?start=00m00s">Intro</a></td>
          <td></td>
      </tr>
      <tr>
          <td>00:39</td>
          <td><a href="https://youtu.be/cbTpX1Z1C-E?start=00m39s">Design</a></td>
          <td>Rich Hickey's <a href="https://www.infoq.com/presentations/Simple-Made-Easy">Simple Made Easy</a> talk</td>
      </tr>
      <tr>
          <td>02:15</td>
          <td><a href="https://youtu.be/cbTpX1Z1C-E?start=02m15s">Part 1: logic</a></td>
          <td></td>
      </tr>
      <tr>
          <td>02:39</td>
          <td><a href="https://youtu.be/cbTpX1Z1C-E?start=02m39s">Add a function</a></td>
          <td></td>
      </tr>
      <tr>
          <td>09:12</td>
          <td><a href="https://youtu.be/cbTpX1Z1C-E?start=09m12s">Simple library</a></td>
          <td><a href="https://github.com/olsk/OLSKHash">OLSKHash</a></td>
      </tr>
      <tr>
          <td>10:50</td>
          <td><a href="https://youtu.be/cbTpX1Z1C-E?start=10m50s">Complex library</a></td>
          <td><a href="https://github.com/0dataapp/0datawrap">Zero Data Wrap</a></td>
      </tr>
      <tr>
          <td>14:41</td>
          <td><a href="https://youtu.be/cbTpX1Z1C-E?start=14m41s">Part 2: interface</a></td>
          <td></td>
      </tr>
      <tr>
          <td>15:58</td>
          <td><a href="https://youtu.be/cbTpX1Z1C-E?start=15m58s">Add a link</a></td>
          <td><a href="https://github.com/olsk/OLSKGazette">OLSKGazette</a></td>
      </tr>
      <tr>
          <td>21:00</td>
          <td><a href="https://youtu.be/cbTpX1Z1C-E?start=21m00s">Access</a></td>
          <td></td>
      </tr>
      <tr>
          <td>21:42</td>
          <td><a href="https://youtu.be/cbTpX1Z1C-E?start=21m42s">Localize</a></td>
          <td></td>
      </tr>
      <tr>
          <td>22:39</td>
          <td><a href="https://youtu.be/cbTpX1Z1C-E?start=22m39s">Misc</a></td>
          <td></td>
      </tr>
      <tr>
          <td>23:48</td>
          <td><a href="https://youtu.be/cbTpX1Z1C-E?start=23m48s">Simple component</a></td>
          <td><a href="https://github.com/olsk/OLSKPlaceholder">OLSKPlaceholder</a></td>
      </tr>
      <tr>
          <td>25:27</td>
          <td><a href="https://youtu.be/cbTpX1Z1C-E?start=25m27s">URLs for each test</a></td>
          <td></td>
      </tr>
      <tr>
          <td>27:14</td>
          <td><a href="https://youtu.be/cbTpX1Z1C-E?start=27m14s">Complex component</a></td>
          <td><a href="https://github.com/olsk/OLSKAppToolbar">OLSKAppToolbar</a></td>
      </tr>
      <tr>
          <td>33:07</td>
          <td><a href="https://youtu.be/cbTpX1Z1C-E?start=33m07s">Messages</a></td>
          <td></td>
      </tr>
      <tr>
          <td>37:33</td>
          <td><a href="https://youtu.be/cbTpX1Z1C-E?start=37m33s">Concerns via files</a></td>
          <td></td>
      </tr>
      <tr>
          <td>38:36</td>
          <td><a href="https://youtu.be/cbTpX1Z1C-E?start=38m36s">General tips</a></td>
          <td><a href="https://merveilles.town/@grafofilia/102641808237464089">'tests are your eyes'</a></td>
      </tr>
      <tr>
          <td>42:27</td>
          <td><a href="https://youtu.be/cbTpX1Z1C-E?start=42m27s">Conclusion</a></td>
          <td></td>
      </tr>
  </tbody>
</table>
<h1 id="part-1-logic-tests-aka-unit-tests">Part 1: logic tests (AKA unit tests)</h1>
<p>Requires no build system and ideally runs unlimited tests in about one second. See <a href="https://rosano.hmm.garden/01f7bg7reapxeggv0cp3etxgsa">Modular object structure</a> for syntax.</p>
<h1 id="part-2-interface-tests-aka-uiintegration-tests">Part 2: interface tests (AKA UI/integration tests)</h1>
<p>Requires a server for [[System A]] and also building process for [[System B]]. See <a href="https://rosano.hmm.garden/01f62t5yseb053m024v1mczbzy">Build and run my apps on your machine</a> for setup. Takes more time than logic tests and gets longer with more tests: optimizations welcome. Look for localizing in another video [[localizing (tba)]].</p>
<p>Technical note: runs <a href="https://github.com/assaf/zombie">Zombie</a> headless, no concept of CSS or box model, just HTML and JavaScript.</p>
<h2 id="access">Access</h2>
<ul>
<li>is it on screen or not?</li>
<li>decouple visibility from other concerns</li>
</ul>
<h2 id="localize">Localize</h2>
<ul>
<li>put the maximum on screen</li>
<li>run suite for each supported language</li>
<li>will fail or make noise about missing translations</li>
<li>decouple language from other concerns</li>
</ul>
<h2 id="misc">Misc</h2>
<ul>
<li>can be for checking attributes, binding, sending messages, anything</li>
<li>decouple configuration/behaviour from other concerns</li>
</ul>
<h1 id="general-tips">General tips</h1>
<ol>
<li>Test as much as you can. If something is not testable because of the testing environment, write the test that should pass and then skip it. I avoid changing anything before writing tests.</li>
<li>'Tests are your eyes' (via <a href="https://merveilles.town/@grafofilia/102641808237464089">Zura</a>) – they are imperfect and should be distrusted at some level, but ignoring them entirely is like 'playing jenga with blackboxes'. Let the machine work for you.</li>
<li>Design for change. Assume that you have missed something and will need to adjust later. How easily can it be changed?</li>
</ol>
<hr>
<p>Part of <a href="https://rosano.hmm.garden/01f62sb0g9d19tt9d73fvj0n7r">Project workflow</a>.</p>
<hr>
<p><a href="https://cafe.rosano.ca/t/90">Reply with a comment.</a></p>
</div><p>
	<small>Tagged: <a href="/log/tag/process/">process</a>.
	</small>
</p>

<hr>
<span class="metadata" data-pagefind-ignore>

	<small>
		<a aria-label="Permalink for 10:59 am, June 10, 2021" href="/blog/testing-logic-and-interfaces/"><time datetime="2021-06-10T10:59:48-03:00" data-pagefind-sort="date[datetime]">10h59</time></a>

		
		<span>from <a href="/log/place/brasilia/">Brasilia</a> / </span>

		<span><a href="/log/country/brazil/">Brazil</a></span></small>

</span>

</div>

  ]]></content:encoded>
</item><item>
  <title>Thursday, June 10, 2021 10h59</title>
  <link>https://rosano.ca/log/2021-06-10-testing-logic-and-interfaces/</link>
  <pubDate>Thu, 10 Jun 2021 10:59:48 -0300</pubDate>
  <guid>https://rosano.ca/log/2021-06-10-testing-logic-and-interfaces/</guid>
  <description> Tutorial time section notes 00:00 Intro 00:39 Design Rich Hickey&#39;s Simple Made Easy talk 02:15 Part 1: logic 02:39 Add a function 09:12 Simple library OLSKHash 10:50 Complex library Zero Data Wrap 14:41 Part 2: interface 15:58 Add a link OLSKGazette 21:00 Access 21:42 Localize 22:39 Misc 23:48 Simple component OLSKPlaceholder 25:27 URLs for each test 27:14 Complex component OLSKAppToolbar 33:07 Messages 37:33 Concerns via files 38:36 General tips &#39;tests are your eyes&#39; 42:27 Conclusion Part 1: logic tests (AKA unit tests) Requires no build system and ideally runs unlimited tests in about one second. See Modular object structure for syntax.&#xA;</description>
  <content:encoded><![CDATA[
  <div class="post">

<nugget><iframe width="300" height="250" src="https://www.youtube-nocookie.com/embed/cbTpX1Z1C-E" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
<h1 id="tutorial">Tutorial</h1>
<table>
  <thead>
      <tr>
          <th>time</th>
          <th>section</th>
          <th>notes</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>00:00</td>
          <td><a href="https://youtu.be/cbTpX1Z1C-E?start=00m00s">Intro</a></td>
          <td></td>
      </tr>
      <tr>
          <td>00:39</td>
          <td><a href="https://youtu.be/cbTpX1Z1C-E?start=00m39s">Design</a></td>
          <td>Rich Hickey's <a href="https://www.infoq.com/presentations/Simple-Made-Easy">Simple Made Easy</a> talk</td>
      </tr>
      <tr>
          <td>02:15</td>
          <td><a href="https://youtu.be/cbTpX1Z1C-E?start=02m15s">Part 1: logic</a></td>
          <td></td>
      </tr>
      <tr>
          <td>02:39</td>
          <td><a href="https://youtu.be/cbTpX1Z1C-E?start=02m39s">Add a function</a></td>
          <td></td>
      </tr>
      <tr>
          <td>09:12</td>
          <td><a href="https://youtu.be/cbTpX1Z1C-E?start=09m12s">Simple library</a></td>
          <td><a href="https://github.com/olsk/OLSKHash">OLSKHash</a></td>
      </tr>
      <tr>
          <td>10:50</td>
          <td><a href="https://youtu.be/cbTpX1Z1C-E?start=10m50s">Complex library</a></td>
          <td><a href="https://github.com/0dataapp/0datawrap">Zero Data Wrap</a></td>
      </tr>
      <tr>
          <td>14:41</td>
          <td><a href="https://youtu.be/cbTpX1Z1C-E?start=14m41s">Part 2: interface</a></td>
          <td></td>
      </tr>
      <tr>
          <td>15:58</td>
          <td><a href="https://youtu.be/cbTpX1Z1C-E?start=15m58s">Add a link</a></td>
          <td><a href="https://github.com/olsk/OLSKGazette">OLSKGazette</a></td>
      </tr>
      <tr>
          <td>21:00</td>
          <td><a href="https://youtu.be/cbTpX1Z1C-E?start=21m00s">Access</a></td>
          <td></td>
      </tr>
      <tr>
          <td>21:42</td>
          <td><a href="https://youtu.be/cbTpX1Z1C-E?start=21m42s">Localize</a></td>
          <td></td>
      </tr>
      <tr>
          <td>22:39</td>
          <td><a href="https://youtu.be/cbTpX1Z1C-E?start=22m39s">Misc</a></td>
          <td></td>
      </tr>
      <tr>
          <td>23:48</td>
          <td><a href="https://youtu.be/cbTpX1Z1C-E?start=23m48s">Simple component</a></td>
          <td><a href="https://github.com/olsk/OLSKPlaceholder">OLSKPlaceholder</a></td>
      </tr>
      <tr>
          <td>25:27</td>
          <td><a href="https://youtu.be/cbTpX1Z1C-E?start=25m27s">URLs for each test</a></td>
          <td></td>
      </tr>
      <tr>
          <td>27:14</td>
          <td><a href="https://youtu.be/cbTpX1Z1C-E?start=27m14s">Complex component</a></td>
          <td><a href="https://github.com/olsk/OLSKAppToolbar">OLSKAppToolbar</a></td>
      </tr>
      <tr>
          <td>33:07</td>
          <td><a href="https://youtu.be/cbTpX1Z1C-E?start=33m07s">Messages</a></td>
          <td></td>
      </tr>
      <tr>
          <td>37:33</td>
          <td><a href="https://youtu.be/cbTpX1Z1C-E?start=37m33s">Concerns via files</a></td>
          <td></td>
      </tr>
      <tr>
          <td>38:36</td>
          <td><a href="https://youtu.be/cbTpX1Z1C-E?start=38m36s">General tips</a></td>
          <td><a href="https://merveilles.town/@grafofilia/102641808237464089">'tests are your eyes'</a></td>
      </tr>
      <tr>
          <td>42:27</td>
          <td><a href="https://youtu.be/cbTpX1Z1C-E?start=42m27s">Conclusion</a></td>
          <td></td>
      </tr>
  </tbody>
</table>
<h1 id="part-1-logic-tests-aka-unit-tests">Part 1: logic tests (AKA unit tests)</h1>
<p>Requires no build system and ideally runs unlimited tests in about one second. See <a href="https://rosano.hmm.garden/01f7bg7reapxeggv0cp3etxgsa">Modular object structure</a> for syntax.</p></nugget><hr>
<div class="content"><iframe width="300" height="250" src="https://www.youtube-nocookie.com/embed/cbTpX1Z1C-E" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

<h1 id="tutorial">Tutorial</h1>
<table>
  <thead>
      <tr>
          <th>time</th>
          <th>section</th>
          <th>notes</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>00:00</td>
          <td><a href="https://youtu.be/cbTpX1Z1C-E?start=00m00s">Intro</a></td>
          <td></td>
      </tr>
      <tr>
          <td>00:39</td>
          <td><a href="https://youtu.be/cbTpX1Z1C-E?start=00m39s">Design</a></td>
          <td>Rich Hickey's <a href="https://www.infoq.com/presentations/Simple-Made-Easy">Simple Made Easy</a> talk</td>
      </tr>
      <tr>
          <td>02:15</td>
          <td><a href="https://youtu.be/cbTpX1Z1C-E?start=02m15s">Part 1: logic</a></td>
          <td></td>
      </tr>
      <tr>
          <td>02:39</td>
          <td><a href="https://youtu.be/cbTpX1Z1C-E?start=02m39s">Add a function</a></td>
          <td></td>
      </tr>
      <tr>
          <td>09:12</td>
          <td><a href="https://youtu.be/cbTpX1Z1C-E?start=09m12s">Simple library</a></td>
          <td><a href="https://github.com/olsk/OLSKHash">OLSKHash</a></td>
      </tr>
      <tr>
          <td>10:50</td>
          <td><a href="https://youtu.be/cbTpX1Z1C-E?start=10m50s">Complex library</a></td>
          <td><a href="https://github.com/0dataapp/0datawrap">Zero Data Wrap</a></td>
      </tr>
      <tr>
          <td>14:41</td>
          <td><a href="https://youtu.be/cbTpX1Z1C-E?start=14m41s">Part 2: interface</a></td>
          <td></td>
      </tr>
      <tr>
          <td>15:58</td>
          <td><a href="https://youtu.be/cbTpX1Z1C-E?start=15m58s">Add a link</a></td>
          <td><a href="https://github.com/olsk/OLSKGazette">OLSKGazette</a></td>
      </tr>
      <tr>
          <td>21:00</td>
          <td><a href="https://youtu.be/cbTpX1Z1C-E?start=21m00s">Access</a></td>
          <td></td>
      </tr>
      <tr>
          <td>21:42</td>
          <td><a href="https://youtu.be/cbTpX1Z1C-E?start=21m42s">Localize</a></td>
          <td></td>
      </tr>
      <tr>
          <td>22:39</td>
          <td><a href="https://youtu.be/cbTpX1Z1C-E?start=22m39s">Misc</a></td>
          <td></td>
      </tr>
      <tr>
          <td>23:48</td>
          <td><a href="https://youtu.be/cbTpX1Z1C-E?start=23m48s">Simple component</a></td>
          <td><a href="https://github.com/olsk/OLSKPlaceholder">OLSKPlaceholder</a></td>
      </tr>
      <tr>
          <td>25:27</td>
          <td><a href="https://youtu.be/cbTpX1Z1C-E?start=25m27s">URLs for each test</a></td>
          <td></td>
      </tr>
      <tr>
          <td>27:14</td>
          <td><a href="https://youtu.be/cbTpX1Z1C-E?start=27m14s">Complex component</a></td>
          <td><a href="https://github.com/olsk/OLSKAppToolbar">OLSKAppToolbar</a></td>
      </tr>
      <tr>
          <td>33:07</td>
          <td><a href="https://youtu.be/cbTpX1Z1C-E?start=33m07s">Messages</a></td>
          <td></td>
      </tr>
      <tr>
          <td>37:33</td>
          <td><a href="https://youtu.be/cbTpX1Z1C-E?start=37m33s">Concerns via files</a></td>
          <td></td>
      </tr>
      <tr>
          <td>38:36</td>
          <td><a href="https://youtu.be/cbTpX1Z1C-E?start=38m36s">General tips</a></td>
          <td><a href="https://merveilles.town/@grafofilia/102641808237464089">'tests are your eyes'</a></td>
      </tr>
      <tr>
          <td>42:27</td>
          <td><a href="https://youtu.be/cbTpX1Z1C-E?start=42m27s">Conclusion</a></td>
          <td></td>
      </tr>
  </tbody>
</table>
<h1 id="part-1-logic-tests-aka-unit-tests">Part 1: logic tests (AKA unit tests)</h1>
<p>Requires no build system and ideally runs unlimited tests in about one second. See <a href="https://rosano.hmm.garden/01f7bg7reapxeggv0cp3etxgsa">Modular object structure</a> for syntax.</p>
<h1 id="part-2-interface-tests-aka-uiintegration-tests">Part 2: interface tests (AKA UI/integration tests)</h1>
<p>Requires a server for [[System A]] and also building process for [[System B]]. See <a href="https://rosano.hmm.garden/01f62t5yseb053m024v1mczbzy">Build and run my apps on your machine</a> for setup. Takes more time than logic tests and gets longer with more tests: optimizations welcome. Look for localizing in another video [[localizing (tba)]].</p>
<p>Technical note: runs <a href="https://github.com/assaf/zombie">Zombie</a> headless, no concept of CSS or box model, just HTML and JavaScript.</p>
<h2 id="access">Access</h2>
<ul>
<li>is it on screen or not?</li>
<li>decouple visibility from other concerns</li>
</ul>
<h2 id="localize">Localize</h2>
<ul>
<li>put the maximum on screen</li>
<li>run suite for each supported language</li>
<li>will fail or make noise about missing translations</li>
<li>decouple language from other concerns</li>
</ul>
<h2 id="misc">Misc</h2>
<ul>
<li>can be for checking attributes, binding, sending messages, anything</li>
<li>decouple configuration/behaviour from other concerns</li>
</ul>
<h1 id="general-tips">General tips</h1>
<ol>
<li>Test as much as you can. If something is not testable because of the testing environment, write the test that should pass and then skip it. I avoid changing anything before writing tests.</li>
<li>'Tests are your eyes' (via <a href="https://merveilles.town/@grafofilia/102641808237464089">Zura</a>) – they are imperfect and should be distrusted at some level, but ignoring them entirely is like 'playing jenga with blackboxes'. Let the machine work for you.</li>
<li>Design for change. Assume that you have missed something and will need to adjust later. How easily can it be changed?</li>
</ol>
<hr>
<p>Part of <a href="https://rosano.hmm.garden/01f62sb0g9d19tt9d73fvj0n7r">Project workflow</a>.</p>
<hr>
<p><a href="https://cafe.rosano.ca/t/90">Reply with a comment.</a></p>
</div><p>
	<small>Tagged: <a href="/log/tag/process/">process</a>.
	</small>
</p>

<hr>
<span class="metadata" data-pagefind-ignore>

	<small>
		<a aria-label="Permalink for 10:59 am, June 10, 2021" href="/log/2021-06-10-testing-logic-and-interfaces/"><time datetime="2021-06-10T10:59:48-03:00" data-pagefind-sort="date[datetime]">10h59</time></a>

		
		<span>from <a href="/log/place/brasilia/">Brasilia</a> / </span>

		<span><a href="/log/country/brazil/">Brazil</a></span></small>

</span>

</div>

  ]]></content:encoded>
</item><item>
  <title>Build and run my apps on your machine</title>
  <link>https://rosano.ca/blog/build-and-run-my-apps-on-your-machine/</link>
  <pubDate>Wed, 19 May 2021 17:18:41 +0000</pubDate>
  <guid>https://rosano.ca/blog/build-and-run-my-apps-on-your-machine/</guid>
  <description>Tutorial time section 00:00 Heads up 00:14 Intro 01:55 The 4 steps 02:11 Step 0: Install node.js 03:37 Step 1: Open the project folder in your terminal 05:29 Step 2: Install dependencies 07:35 Running the project 08:17 Step 3: Run system B 09:34 Step 4: Run system A 11:04 Making changes 11:46 System A changes 13:31 System B changes 15:36 Localization files 16:26 Localize system A 17:19 Localize system B 17:58 Help fix this 18:43 Conclusion The 4 steps Step 0: Install Node.js + NPM if it&#39;s not already on your machine Confirm by executing node -v in your terminal. I currently have v14. Earlier versions should work but you might run into problems, the closer the versions are the better…&#xA;</description>
  <content:encoded><![CDATA[
  <div class="post">


<div class="content"><h1 id="tutorial">Tutorial</h1>
<iframe width="300" height="250" src="https://www.youtube-nocookie.com/embed/BDZ1wggKBDs" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

<table>
  <thead>
      <tr>
          <th>time</th>
          <th>section</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>00:00</td>
          <td><a href="https://youtu.be/BDZ1wggKBDs?start=00m00s">Heads up</a></td>
      </tr>
      <tr>
          <td>00:14</td>
          <td><a href="https://youtu.be/BDZ1wggKBDs?start=00m14s">Intro</a></td>
      </tr>
      <tr>
          <td>01:55</td>
          <td><a href="https://youtu.be/BDZ1wggKBDs?start=01m55s">The 4 steps</a></td>
      </tr>
      <tr>
          <td>02:11</td>
          <td><a href="https://youtu.be/BDZ1wggKBDs?start=02m11s">Step 0: Install node.js</a></td>
      </tr>
      <tr>
          <td>03:37</td>
          <td><a href="https://youtu.be/BDZ1wggKBDs?start=03m37s">Step 1: Open the project folder in your terminal</a></td>
      </tr>
      <tr>
          <td>05:29</td>
          <td><a href="https://youtu.be/BDZ1wggKBDs?start=05m29s">Step 2: Install dependencies</a></td>
      </tr>
      <tr>
          <td>07:35</td>
          <td><a href="https://youtu.be/BDZ1wggKBDs?start=07m35s">Running the project</a></td>
      </tr>
      <tr>
          <td>08:17</td>
          <td><a href="https://youtu.be/BDZ1wggKBDs?start=08m17s">Step 3: Run system B</a></td>
      </tr>
      <tr>
          <td>09:34</td>
          <td><a href="https://youtu.be/BDZ1wggKBDs?start=09m34s">Step 4: Run system A</a></td>
      </tr>
      <tr>
          <td>11:04</td>
          <td><a href="https://youtu.be/BDZ1wggKBDs?start=11m04s">Making changes</a></td>
      </tr>
      <tr>
          <td>11:46</td>
          <td><a href="https://youtu.be/BDZ1wggKBDs?start=11m46s">System A changes</a></td>
      </tr>
      <tr>
          <td>13:31</td>
          <td><a href="https://youtu.be/BDZ1wggKBDs?start=13m31s">System B changes</a></td>
      </tr>
      <tr>
          <td>15:36</td>
          <td><a href="https://youtu.be/BDZ1wggKBDs?start=15m36s">Localization files</a></td>
      </tr>
      <tr>
          <td>16:26</td>
          <td><a href="https://youtu.be/BDZ1wggKBDs?start=16m26s">Localize system A</a></td>
      </tr>
      <tr>
          <td>17:19</td>
          <td><a href="https://youtu.be/BDZ1wggKBDs?start=17m19s">Localize system B</a></td>
      </tr>
      <tr>
          <td>17:58</td>
          <td><a href="https://youtu.be/BDZ1wggKBDs?start=17m58s">Help fix this</a></td>
      </tr>
      <tr>
          <td>18:43</td>
          <td><a href="https://youtu.be/BDZ1wggKBDs?start=18m43s">Conclusion</a></td>
      </tr>
  </tbody>
</table>
<h1 id="the-4-steps">The 4 steps</h1>
<h2 id="step-0-install-nodejs--npm-if-its-not-already-on-your-machine">Step 0: Install <a href="https://nodejs.org/en/download/">Node.js + NPM</a> if it's not already on your machine</h2>
<p>Confirm by executing <code>node -v</code> in your terminal. I currently have v14. Earlier versions should work but you might run into problems, the closer the versions are the better…</p>
<h2 id="step-1-open-the-project-folder-in-in-your-terminal">Step 1: Open the project folder in in your terminal</h2>
<p>From the <a href="https://github.com/wikiavec/hyperdraft">repository page</a>, click 'Download ZIP' under 'Code'.</p>
<p>Alternatively, run <code>git clone https://github.com/wikiavec/hyperdraft</code>.</p>
<h2 id="step-2-install-dependencies">Step 2: Install dependencies</h2>
<p>Execute <code>npm run setup</code>. This will:</p>
<ul>
<li>run <code>npm install</code> without modifying the <code>package.json</code> file</li>
<li>clear any <code>package-lock.json</code> file</li>
<li>copy the <code>.env-sample</code> to <code>.env</code></li>
</ul>
<h2 id="step-3-start-system-b">Step 3: Start system B</h2>
<p>Execute <code>npm run watch</code>. This will:</p>
<ul>
<li>build the final JavaScript from Svelte files</li>
<li>watch for changes to re-build automatically</li>
</ul>
<h2 id="step-4-start-system-a">Step 4: Start system A</h2>
<p>Execute <code>npm start</code>. This will:</p>
<ul>
<li>start a node.js server</li>
<li>allow the site to be accessible at <a href="http://localhost:3000">http://localhost:3000</a></li>
<li>watch for changes to reload when certain files are changed</li>
</ul>
<h1 id="other-notes">Other notes</h1>
<p>Avoid making changes before writing tests. See <a href="https://rosano.hmm.garden/01f7v3hk3txz5d0v9ms467x8bz">Testing logic and interfaces</a>.</p>
<p>See <a href="https://rosano.hmm.garden/01f71kp52knc5nnv08qr9kzj3m">Universal project folder structure</a>.</p>
<p>Localization files (<code>i18n.xx.yml</code>) will not trigger any updates or be visible on reload. For system A: kill the process in your terminal with <code>Ctrl+c</code> and execute <code>npm start</code> again; if you would like to improve this, make a pull request to <a href="https://github.com/olsk/OLSKExpress">OLSKExpress</a>. For system B: make a change to any <code>.svelte</code> file.</p>
<hr>
<p>Part of <a href="https://rosano.hmm.garden/01f62sb0g9d19tt9d73fvj0n7r">Project workflow</a>.</p>
<hr>
<p><a href="https://cafe.rosano.ca/t/77">Reply with a comment.</a></p>
</div><p>
	<small>Tagged: <a href="/log/tag/process/">process</a>.
	</small>
</p>

<hr>
<span class="metadata" data-pagefind-ignore>

	<small>
		<a aria-label="Permalink for 2:18 pm, May 19, 2021" href="/blog/build-and-run-my-apps-on-your-machine/"><time datetime="2021-05-19T14:18:41-03:00" data-pagefind-sort="date[datetime]">14h18</time></a>

		
		<span>from <a href="/log/place/brasilia/">Brasilia</a> / </span>

		<span><a href="/log/country/brazil/">Brazil</a></span></small>

</span>

</div>

  ]]></content:encoded>
</item><item>
  <title>Wednesday, May 19, 2021 14h18</title>
  <link>https://rosano.ca/log/2021-05-19-build-and-run-my-apps-on-your-machine/</link>
  <pubDate>Wed, 19 May 2021 14:18:41 -0300</pubDate>
  <guid>https://rosano.ca/log/2021-05-19-build-and-run-my-apps-on-your-machine/</guid>
  <description>Tutorial time section 00:00 Heads up 00:14 Intro 01:55 The 4 steps 02:11 Step 0: Install node.js 03:37 Step 1: Open the project folder in your terminal 05:29 Step 2: Install dependencies 07:35 Running the project 08:17 Step 3: Run system B 09:34 Step 4: Run system A 11:04 Making changes 11:46 System A changes 13:31 System B changes 15:36 Localization files 16:26 Localize system A 17:19 Localize system B 17:58 Help fix this 18:43 Conclusion The 4 steps Step 0: Install Node.js + NPM if it&#39;s not already on your machine Confirm by executing node -v in your terminal. I currently have v14. Earlier versions should work but you might run into problems, the closer the versions are the better…&#xA;</description>
  <content:encoded><![CDATA[
  <div class="post">


<div class="content"><h1 id="tutorial">Tutorial</h1>
<iframe width="300" height="250" src="https://www.youtube-nocookie.com/embed/BDZ1wggKBDs" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

<table>
  <thead>
      <tr>
          <th>time</th>
          <th>section</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>00:00</td>
          <td><a href="https://youtu.be/BDZ1wggKBDs?start=00m00s">Heads up</a></td>
      </tr>
      <tr>
          <td>00:14</td>
          <td><a href="https://youtu.be/BDZ1wggKBDs?start=00m14s">Intro</a></td>
      </tr>
      <tr>
          <td>01:55</td>
          <td><a href="https://youtu.be/BDZ1wggKBDs?start=01m55s">The 4 steps</a></td>
      </tr>
      <tr>
          <td>02:11</td>
          <td><a href="https://youtu.be/BDZ1wggKBDs?start=02m11s">Step 0: Install node.js</a></td>
      </tr>
      <tr>
          <td>03:37</td>
          <td><a href="https://youtu.be/BDZ1wggKBDs?start=03m37s">Step 1: Open the project folder in your terminal</a></td>
      </tr>
      <tr>
          <td>05:29</td>
          <td><a href="https://youtu.be/BDZ1wggKBDs?start=05m29s">Step 2: Install dependencies</a></td>
      </tr>
      <tr>
          <td>07:35</td>
          <td><a href="https://youtu.be/BDZ1wggKBDs?start=07m35s">Running the project</a></td>
      </tr>
      <tr>
          <td>08:17</td>
          <td><a href="https://youtu.be/BDZ1wggKBDs?start=08m17s">Step 3: Run system B</a></td>
      </tr>
      <tr>
          <td>09:34</td>
          <td><a href="https://youtu.be/BDZ1wggKBDs?start=09m34s">Step 4: Run system A</a></td>
      </tr>
      <tr>
          <td>11:04</td>
          <td><a href="https://youtu.be/BDZ1wggKBDs?start=11m04s">Making changes</a></td>
      </tr>
      <tr>
          <td>11:46</td>
          <td><a href="https://youtu.be/BDZ1wggKBDs?start=11m46s">System A changes</a></td>
      </tr>
      <tr>
          <td>13:31</td>
          <td><a href="https://youtu.be/BDZ1wggKBDs?start=13m31s">System B changes</a></td>
      </tr>
      <tr>
          <td>15:36</td>
          <td><a href="https://youtu.be/BDZ1wggKBDs?start=15m36s">Localization files</a></td>
      </tr>
      <tr>
          <td>16:26</td>
          <td><a href="https://youtu.be/BDZ1wggKBDs?start=16m26s">Localize system A</a></td>
      </tr>
      <tr>
          <td>17:19</td>
          <td><a href="https://youtu.be/BDZ1wggKBDs?start=17m19s">Localize system B</a></td>
      </tr>
      <tr>
          <td>17:58</td>
          <td><a href="https://youtu.be/BDZ1wggKBDs?start=17m58s">Help fix this</a></td>
      </tr>
      <tr>
          <td>18:43</td>
          <td><a href="https://youtu.be/BDZ1wggKBDs?start=18m43s">Conclusion</a></td>
      </tr>
  </tbody>
</table>
<h1 id="the-4-steps">The 4 steps</h1>
<h2 id="step-0-install-nodejs--npm-if-its-not-already-on-your-machine">Step 0: Install <a href="https://nodejs.org/en/download/">Node.js + NPM</a> if it's not already on your machine</h2>
<p>Confirm by executing <code>node -v</code> in your terminal. I currently have v14. Earlier versions should work but you might run into problems, the closer the versions are the better…</p>
<h2 id="step-1-open-the-project-folder-in-in-your-terminal">Step 1: Open the project folder in in your terminal</h2>
<p>From the <a href="https://github.com/wikiavec/hyperdraft">repository page</a>, click 'Download ZIP' under 'Code'.</p>
<p>Alternatively, run <code>git clone https://github.com/wikiavec/hyperdraft</code>.</p>
<h2 id="step-2-install-dependencies">Step 2: Install dependencies</h2>
<p>Execute <code>npm run setup</code>. This will:</p>
<ul>
<li>run <code>npm install</code> without modifying the <code>package.json</code> file</li>
<li>clear any <code>package-lock.json</code> file</li>
<li>copy the <code>.env-sample</code> to <code>.env</code></li>
</ul>
<h2 id="step-3-start-system-b">Step 3: Start system B</h2>
<p>Execute <code>npm run watch</code>. This will:</p>
<ul>
<li>build the final JavaScript from Svelte files</li>
<li>watch for changes to re-build automatically</li>
</ul>
<h2 id="step-4-start-system-a">Step 4: Start system A</h2>
<p>Execute <code>npm start</code>. This will:</p>
<ul>
<li>start a node.js server</li>
<li>allow the site to be accessible at <a href="http://localhost:3000">http://localhost:3000</a></li>
<li>watch for changes to reload when certain files are changed</li>
</ul>
<h1 id="other-notes">Other notes</h1>
<p>Avoid making changes before writing tests. See <a href="https://rosano.hmm.garden/01f7v3hk3txz5d0v9ms467x8bz">Testing logic and interfaces</a>.</p>
<p>See <a href="https://rosano.hmm.garden/01f71kp52knc5nnv08qr9kzj3m">Universal project folder structure</a>.</p>
<p>Localization files (<code>i18n.xx.yml</code>) will not trigger any updates or be visible on reload. For system A: kill the process in your terminal with <code>Ctrl+c</code> and execute <code>npm start</code> again; if you would like to improve this, make a pull request to <a href="https://github.com/olsk/OLSKExpress">OLSKExpress</a>. For system B: make a change to any <code>.svelte</code> file.</p>
<hr>
<p>Part of <a href="https://rosano.hmm.garden/01f62sb0g9d19tt9d73fvj0n7r">Project workflow</a>.</p>
<hr>
<p><a href="https://cafe.rosano.ca/t/77">Reply with a comment.</a></p>
</div><p>
	<small>Tagged: <a href="/log/tag/process/">process</a>.
	</small>
</p>

<hr>
<span class="metadata" data-pagefind-ignore>

	<small>
		<a aria-label="Permalink for 2:18 pm, May 19, 2021" href="/log/2021-05-19-build-and-run-my-apps-on-your-machine/"><time datetime="2021-05-19T14:18:41-03:00" data-pagefind-sort="date[datetime]">14h18</time></a>

		
		<span>from <a href="/log/place/brasilia/">Brasilia</a> / </span>

		<span><a href="/log/country/brazil/">Brazil</a></span></small>

</span>

</div>

  ]]></content:encoded>
</item><item>
  <title>My mother&#39;s gift</title>
  <link>https://rosano.ca/blog/my-mothers-gift/</link>
  <pubDate>Sun, 09 May 2021 13:10:00 +0000</pubDate>
  <guid>https://rosano.ca/blog/my-mothers-gift/</guid>
  <description>It usually takes me time to create projects and develop ideas before sharing them with the world. The durations always differ, but I might expect to wait a month or so as details accumulate, one or more weeks to conceive and finalize a visual identity, some weeks or months for implementation if there&#39;s programming involved, some time for considering how another person might come to and perceive the space, etc… The entirety of this process was compressed into about three hours in the case of Ephemerata.&#xA;</description>
  <content:encoded><![CDATA[
  <div class="post">


<div class="content"><p>It usually takes me time to create projects and develop ideas before sharing them with the world. The durations always differ, but I might expect to wait a month or so as details accumulate, one or more weeks to conceive and finalize a visual identity, some weeks or months for implementation if there's programming involved, some time for considering how another person might come to and perceive the space, etc… The entirety of this process was compressed into about three hours in the case of <a href="https://rosano.hmm.garden/01f58x4bdpm6530ba58wxjm30w">Ephemerata</a>.</p>
<p>I woke up on a Sunday morning ready to begin a normal day: made myself hot oatmeal for breakfast, read some articles. An idea came to me while reading, and I thought, &quot;That sounds kind of cool, I should do that some day.&quot; Ten minutes passed by, and then I received a jolt and thought, &quot;Whoa, I should really, really do that, like maybe even drop everything and get started immediately type of thing.&quot; I tried to calmly finish eating, and then got to work.</p>
<p>Completely consumed by this idea for a weekly newsletter, I came up with a concept and visual identity, wrote the first edition, and told the world about it before lunch. It was like standing under a waterfall, a deluge of possibilities and details hitting me intensely and all at once. In combination with <a href="https://rosano.hmm.garden/01f5gs4k2k4ps9eq1ns3gv9fkq">my discussion forum</a>, this very clearly represented for me a missing piece of the puzzle, one that I've been struggling with for over a year now in my journey to earning a living as an independent creator. The two create a sort of connective tissue for building a community around what I do. This sort of thing might seem obvious to many people who approach things from a less technical perspective, but I was skeptical about this approach for a long time, and it actually took me until now to arrive here.</p>
<p>Reflecting later in the evening, I realized something: it was Mother's Day. And how fitting it was for this idea to have emerged, fully formed, on that day: I gave birth, in a sense, to a new community, and my mother was someone who brought people together. It was like receiving a gift from <em>her</em>, and reconnecting with qualities that she had passed onto me, qualities that I have only recently began to cultivate more deeply. I now believe that this idea struck me so hard because—and I say this with sincerity—it resembles a new way of for me to integrate myself into the world, a gift of life. It gives me a significant resolution to various questions of belonging that have plagued me for ages, and I feel relieved, energized, and excited.</p>
<p>Thanks, Mom, and to all mothers, whose nurture and care transcends their time on earth.</p>
</div><p>
	<small>Tagged: <a href="/log/tag/reflection/">reflection</a>, <a href="/log/tag/ephemerata/">Ephemerata</a>, <a href="/log/tag/process/">process</a>.
	</small>
</p>

<hr>
<span class="metadata" data-pagefind-ignore>

	<small>
		<a aria-label="Permalink for 10:10 am, May 9, 2021" href="/blog/my-mothers-gift/"><time datetime="2021-05-09T10:10:00-03:00" data-pagefind-sort="date[datetime]">10h10</time></a>

		
		<span>from <a href="/log/place/brasilia/">Brasilia</a> / </span>

		<span><a href="/log/country/brazil/">Brazil</a></span></small>

</span>

</div>

  ]]></content:encoded>
</item><item>
  <title>Sunday, May 9, 2021 10h10</title>
  <link>https://rosano.ca/log/2021-05-09-my-mothers-gift/</link>
  <pubDate>Sun, 09 May 2021 10:10:00 -0300</pubDate>
  <guid>https://rosano.ca/log/2021-05-09-my-mothers-gift/</guid>
  <description>It usually takes me time to create projects and develop ideas before sharing them with the world. The durations always differ, but I might expect to wait a month or so as details accumulate, one or more weeks to conceive and finalize a visual identity, some weeks or months for implementation if there&#39;s programming involved, some time for considering how another person might come to and perceive the space, etc… The entirety of this process was compressed into about three hours in the case of Ephemerata.&#xA;</description>
  <content:encoded><![CDATA[
  <div class="post">


<div class="content"><p>It usually takes me time to create projects and develop ideas before sharing them with the world. The durations always differ, but I might expect to wait a month or so as details accumulate, one or more weeks to conceive and finalize a visual identity, some weeks or months for implementation if there's programming involved, some time for considering how another person might come to and perceive the space, etc… The entirety of this process was compressed into about three hours in the case of <a href="https://rosano.hmm.garden/01f58x4bdpm6530ba58wxjm30w">Ephemerata</a>.</p>
<p>I woke up on a Sunday morning ready to begin a normal day: made myself hot oatmeal for breakfast, read some articles. An idea came to me while reading, and I thought, &quot;That sounds kind of cool, I should do that some day.&quot; Ten minutes passed by, and then I received a jolt and thought, &quot;Whoa, I should really, really do that, like maybe even drop everything and get started immediately type of thing.&quot; I tried to calmly finish eating, and then got to work.</p>
<p>Completely consumed by this idea for a weekly newsletter, I came up with a concept and visual identity, wrote the first edition, and told the world about it before lunch. It was like standing under a waterfall, a deluge of possibilities and details hitting me intensely and all at once. In combination with <a href="https://rosano.hmm.garden/01f5gs4k2k4ps9eq1ns3gv9fkq">my discussion forum</a>, this very clearly represented for me a missing piece of the puzzle, one that I've been struggling with for over a year now in my journey to earning a living as an independent creator. The two create a sort of connective tissue for building a community around what I do. This sort of thing might seem obvious to many people who approach things from a less technical perspective, but I was skeptical about this approach for a long time, and it actually took me until now to arrive here.</p>
<p>Reflecting later in the evening, I realized something: it was Mother's Day. And how fitting it was for this idea to have emerged, fully formed, on that day: I gave birth, in a sense, to a new community, and my mother was someone who brought people together. It was like receiving a gift from <em>her</em>, and reconnecting with qualities that she had passed onto me, qualities that I have only recently began to cultivate more deeply. I now believe that this idea struck me so hard because—and I say this with sincerity—it resembles a new way of for me to integrate myself into the world, a gift of life. It gives me a significant resolution to various questions of belonging that have plagued me for ages, and I feel relieved, energized, and excited.</p>
<p>Thanks, Mom, and to all mothers, whose nurture and care transcends their time on earth.</p>
</div><p>
	<small>Tagged: <a href="/log/tag/reflection/">reflection</a>, <a href="/log/tag/ephemerata/">Ephemerata</a>, <a href="/log/tag/process/">process</a>.
	</small>
</p>

<hr>
<span class="metadata" data-pagefind-ignore>

	<small>
		<a aria-label="Permalink for 10:10 am, May 9, 2021" href="/log/2021-05-09-my-mothers-gift/"><time datetime="2021-05-09T10:10:00-03:00" data-pagefind-sort="date[datetime]">10h10</time></a>

		
		<span>from <a href="/log/place/brasilia/">Brasilia</a> / </span>

		<span><a href="/log/country/brazil/">Brazil</a></span></small>

</span>

</div>

  ]]></content:encoded>
</item>



</channel>

</rss>
