<?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 under &#34;code&#34;</title>



<link>https://rosano.ca/log/type/code/</link>

<generator>Hugo</generator>

<language>en-ca</language>



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

<atom:link href="https://rosano.ca/log/type/code/feed" rel="self" type="application/rss" /><item>
  <title>Tuesday, February 24, 2026 12h31</title>
  <link>https://rosano.ca/log/01kj7pp5bzj2q1m4pd1d40tv3w/</link>
  <pubDate>Tue, 24 Feb 2026 12:31:25 +0100</pubDate>
  <guid>https://rosano.ca/log/01kj7pp5bzj2q1m4pd1d40tv3w/</guid>
  <description>How do I count all commits in a git repository?&#xA;# count for in branch alfa git rev-list --count alfa # count across all branches git rev-list --count --all </description>
  <content:encoded><![CDATA[
  <div class="post">


<div class="content"><p><a href="https://stackoverflow.com/questions/677436/how-do-i-get-the-git-commit-count#4061706">How do I count all commits in a git repository?</a></p>
<pre tabindex="0"><code># count for in branch alfa
git rev-list --count alfa

# count across all branches
git rev-list --count --all
</code></pre></div>

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

	<small>
		<a aria-label="Permalink for 12:31 pm, February 24, 2026" href="/log/01kj7pp5bzj2q1m4pd1d40tv3w/"><time datetime="2026-02-24T12:31:25&#43;01:00" data-pagefind-sort="date[datetime]">12h31</time></a>

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

		<span><a href="/log/country/germany/">Germany</a></span><span>, type:<a href="/log/type/code/">code</a></span></small>

</span>

</div>

  ]]></content:encoded>
</item><item>
  <title>Tuesday, February 24, 2026 09h02</title>
  <link>https://rosano.ca/log/01kj7ar4wjjtsrjsftxma4d7sx/</link>
  <pubDate>Tue, 24 Feb 2026 09:02:47 +0100</pubDate>
  <guid>https://rosano.ca/log/01kj7ar4wjjtsrjsftxma4d7sx/</guid>
  <description>How to cherry-pick commits from another repository in Git&#xA;# add the other repository&amp;#39;s commits git remote add alfa ../bravo git fetch alfa # show commits from branch charlie # (note/copy the ones you want to merge or the start and end) git log alfa/charlie --oneline # apply commit 789c05c git cherry-pick 789c05c # apply commits 789c05c to fd1b130 git cherry-pick 789c05c..fd1b130 </description>
  <content:encoded><![CDATA[
  <div class="post">


<div class="content"><p><a href="https://graphite.com/guides/git-cherry-pick-other-repo">How to cherry-pick commits from another repository in Git</a></p>
<pre tabindex="0"><code># add the other repository&#39;s commits
git remote add alfa ../bravo
git fetch alfa

# show commits from branch charlie
# (note/copy the ones you want to merge or the start and end)
git log alfa/charlie --oneline

# apply commit 789c05c
git cherry-pick 789c05c

# apply commits 789c05c to fd1b130
git cherry-pick 789c05c..fd1b130
</code></pre></div>

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

	<small>
		<a aria-label="Permalink for 9:02 am, February 24, 2026" href="/log/01kj7ar4wjjtsrjsftxma4d7sx/"><time datetime="2026-02-24T09:02:47&#43;01:00" data-pagefind-sort="date[datetime]">09h02</time></a>

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

		<span><a href="/log/country/germany/">Germany</a></span><span>, type:<a href="/log/type/code/">code</a></span></small>

</span>

</div>

  ]]></content:encoded>
</item><item>
  <title>Friday, February 13, 2026 10h03</title>
  <link>https://rosano.ca/log/01khb3tvqsn72n9j4qynvfybcw/</link>
  <pubDate>Fri, 13 Feb 2026 10:03:12 +0100</pubDate>
  <guid>https://rosano.ca/log/01khb3tvqsn72n9j4qynvfybcw/</guid>
  <description>exploring how my cheap ULID&#39;s date portion changes by shifting the:&#xA;const date36 = e =&amp;gt; new Date(e).valueOf().toString(36); // year [ date36(&amp;#39;2026-01-01&amp;#39;), // mjuohs00 date36(&amp;#39;2027-01-01&amp;#39;), // myc87pc0 ]; // month [ date36(&amp;#39;2026-01-01&amp;#39;), // mjuohs00 date36(&amp;#39;2026-02-01&amp;#39;), // ml2z56o0 ]; // day [ date36(&amp;#39;2026-01-01&amp;#39;), // mjuohs00 date36(&amp;#39;2026-01-02&amp;#39;), // mjw3xmo0 ]; // hour [ date36(&amp;#39;2026-01-01 12:00&amp;#39;), // mjvc2jk0 date36(&amp;#39;2026-01-01 13:00&amp;#39;), // mjve7pc0 ]; // minute [ date36(&amp;#39;2026-01-01 12:00&amp;#39;), // mjvc2jk0 date36(&amp;#39;2026-01-01 12:01&amp;#39;), // mjvc3tuo ]; // second [ date36(&amp;#39;2026-01-01 12:00:00&amp;#39;), // mjvc2jk0 date36(&amp;#39;2026-01-01 12:00:01&amp;#39;), // mjvc2kbs ]; // microsecond [ date36(&amp;#39;2026-01-01 12:00:00.000&amp;#39;), // mjvc2jk0 date36(&amp;#39;2026-01-01 12:00:00.001&amp;#39;), // mjvc2jk1 ]; </description>
  <content:encoded><![CDATA[
  <div class="post">


<div class="content"><p>exploring how my <a href="https://rosano.ca/log/01htmzbbzaz44w89zj6vzaetkn/">cheap ULID</a>'s date portion changes by shifting the:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-javascript" data-lang="javascript"><span style="display:flex;"><span><span style="color:#66d9ef">const</span> <span style="color:#a6e22e">date36</span> <span style="color:#f92672">=</span> <span style="color:#a6e22e">e</span> =&gt; <span style="color:#66d9ef">new</span> Date(<span style="color:#a6e22e">e</span>).<span style="color:#a6e22e">valueOf</span>().<span style="color:#a6e22e">toString</span>(<span style="color:#ae81ff">36</span>);
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// year
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>[
</span></span><span style="display:flex;"><span>	<span style="color:#a6e22e">date36</span>(<span style="color:#e6db74">&#39;2026-01-01&#39;</span>), <span style="color:#75715e">// mjuohs00
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>	<span style="color:#a6e22e">date36</span>(<span style="color:#e6db74">&#39;2027-01-01&#39;</span>), <span style="color:#75715e">// myc87pc0
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>];
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// month
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>[
</span></span><span style="display:flex;"><span>	<span style="color:#a6e22e">date36</span>(<span style="color:#e6db74">&#39;2026-01-01&#39;</span>), <span style="color:#75715e">// mjuohs00
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>	<span style="color:#a6e22e">date36</span>(<span style="color:#e6db74">&#39;2026-02-01&#39;</span>), <span style="color:#75715e">// ml2z56o0
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>];
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// day
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>[
</span></span><span style="display:flex;"><span>	<span style="color:#a6e22e">date36</span>(<span style="color:#e6db74">&#39;2026-01-01&#39;</span>), <span style="color:#75715e">// mjuohs00
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>	<span style="color:#a6e22e">date36</span>(<span style="color:#e6db74">&#39;2026-01-02&#39;</span>), <span style="color:#75715e">// mjw3xmo0
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>];
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// hour
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>[
</span></span><span style="display:flex;"><span>	<span style="color:#a6e22e">date36</span>(<span style="color:#e6db74">&#39;2026-01-01 12:00&#39;</span>), <span style="color:#75715e">// mjvc2jk0
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>	<span style="color:#a6e22e">date36</span>(<span style="color:#e6db74">&#39;2026-01-01 13:00&#39;</span>), <span style="color:#75715e">// mjve7pc0
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>];
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// minute
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>[
</span></span><span style="display:flex;"><span>	<span style="color:#a6e22e">date36</span>(<span style="color:#e6db74">&#39;2026-01-01 12:00&#39;</span>), <span style="color:#75715e">// mjvc2jk0
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>	<span style="color:#a6e22e">date36</span>(<span style="color:#e6db74">&#39;2026-01-01 12:01&#39;</span>), <span style="color:#75715e">// mjvc3tuo
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>];
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// second
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>[
</span></span><span style="display:flex;"><span>	<span style="color:#a6e22e">date36</span>(<span style="color:#e6db74">&#39;2026-01-01 12:00:00&#39;</span>), <span style="color:#75715e">// mjvc2jk0
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>	<span style="color:#a6e22e">date36</span>(<span style="color:#e6db74">&#39;2026-01-01 12:00:01&#39;</span>), <span style="color:#75715e">// mjvc2kbs
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>];
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// microsecond
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>[
</span></span><span style="display:flex;"><span>	<span style="color:#a6e22e">date36</span>(<span style="color:#e6db74">&#39;2026-01-01 12:00:00.000&#39;</span>), <span style="color:#75715e">// mjvc2jk0
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>	<span style="color:#a6e22e">date36</span>(<span style="color:#e6db74">&#39;2026-01-01 12:00:00.001&#39;</span>), <span style="color:#75715e">// mjvc2jk1
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>];
</span></span></code></pre></div></div>

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

	<small>
		<a aria-label="Permalink for 10:03 am, February 13, 2026" href="/log/01khb3tvqsn72n9j4qynvfybcw/"><time datetime="2026-02-13T10:03:12&#43;01:00" data-pagefind-sort="date[datetime]">10h03</time></a>

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

		<span><a href="/log/country/germany/">Germany</a></span><span>, type:<a href="/log/type/code/">code</a></span></small>

</span>

</div>

  ]]></content:encoded>
</item><item>
  <title>Friday, May 24, 2024 10h04</title>
  <link>https://rosano.ca/log/01hymt1xw2my8g8btbfn2z7fhv/</link>
  <pubDate>Fri, 24 May 2024 10:04:09 +0200</pubDate>
  <guid>https://rosano.ca/log/01hymt1xw2my8g8btbfn2z7fhv/</guid>
  <description>I was wondering if it&#39;s possible to load a local JavaScript file via bookmarklet (to get around Firefox&#39;s character limit) but it seems file:// URLs will return an error. I can either load an https:// URL or embed my file inside an extension.&#xA;</description>
  <content:encoded><![CDATA[
  <div class="post">


<div class="content"><p>I was wondering if it's possible to load a local JavaScript file via bookmarklet (to get around Firefox's character limit) but it seems <code>file://</code> URLs will return an error. I can either load an <code>https://</code> URL or embed my file <a href="https://stackoverflow.com/questions/10611796/is-there-any-way-to-load-a-local-js-file-dynamically">inside an extension</a>.</p>
</div>

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

	<small>
		<a aria-label="Permalink for 10:04 am, May 24, 2024" href="/log/01hymt1xw2my8g8btbfn2z7fhv/"><time datetime="2024-05-24T10:04:09&#43;02:00" data-pagefind-sort="date[datetime]">10h04</time></a>

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

		<span><a href="/log/country/germany/">Germany</a></span><span>, type:<a href="/log/type/code/">code</a></span></small>

</span>

</div>

  ]]></content:encoded>
</item><item>
  <title>Monday, May 20, 2024 09h32</title>
  <link>https://rosano.ca/log/01hyaenf6gnm3e10vctsv832kd/</link>
  <pubDate>Mon, 20 May 2024 09:32:42 +0200</pubDate>
  <guid>https://rosano.ca/log/01hyaenf6gnm3e10vctsv832kd/</guid>
  <description>How can we reduce the size of homebrew-cask and homebrew-core folders?&#xA;[As of Homebrew 4, you can save space by removing certain packages only used for developing formulae or casks:]&#xA;brew untap homebrew/core brew untap homebrew/cask </description>
  <content:encoded><![CDATA[
  <div class="post">


<div class="content"><p><a href="https://stackoverflow.com/questions/63770382/how-can-we-reduce-the-size-of-homebrew-cask-and-homebrew-core-folders/75484337#75484337">How can we reduce the size of homebrew-cask and homebrew-core folders?</a></p>
<blockquote>
<p>[As of Homebrew 4, you can save space by removing certain packages only used for developing formulae or casks:]</p></blockquote>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>brew untap homebrew/core
</span></span><span style="display:flex;"><span>brew untap homebrew/cask
</span></span></code></pre></div></div>

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

	<small>
		<a aria-label="Permalink for 9:32 am, May 20, 2024" href="/log/01hyaenf6gnm3e10vctsv832kd/"><time datetime="2024-05-20T09:32:42&#43;02:00" data-pagefind-sort="date[datetime]">09h32</time></a>

		
		<span>from <a href="/log/place/wiesenburg-mark/">Wiesenburg (Mark)</a> / </span>

		<span><a href="/log/country/germany/">Germany</a></span><span>, type:<a href="/log/type/code/">code</a></span></small>

</span>

</div>

  ]]></content:encoded>
</item><item>
  <title>Thursday, April 4, 2024 12h33</title>
  <link>https://rosano.ca/log/01htmzbbzaz44w89zj6vzaetkn/</link>
  <pubDate>Thu, 04 Apr 2024 12:33:54 -0400</pubDate>
  <guid>https://rosano.ca/log/01htmzbbzaz44w89zj6vzaetkn/</guid>
  <description>Cheap non-ugly ULID combining time and a random number using radix 36.&#xA;Date.now().toString(36) + Math.random().toString(36).replace(&amp;#39;0.&amp;#39;, &amp;#39;&amp;#39;) // something like lulgjvgkc5mk5sbmfaf </description>
  <content:encoded><![CDATA[
  <div class="post">


<div class="content"><p>Cheap non-ugly <a href="https://github.com/ulid/javascript">ULID</a> combining time and a random number using radix 36.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-javascript" data-lang="javascript"><span style="display:flex;"><span>Date.<span style="color:#a6e22e">now</span>().<span style="color:#a6e22e">toString</span>(<span style="color:#ae81ff">36</span>) <span style="color:#f92672">+</span> Math.<span style="color:#a6e22e">random</span>().<span style="color:#a6e22e">toString</span>(<span style="color:#ae81ff">36</span>).<span style="color:#a6e22e">replace</span>(<span style="color:#e6db74">&#39;0.&#39;</span>, <span style="color:#e6db74">&#39;&#39;</span>) <span style="color:#75715e">// something like lulgjvgkc5mk5sbmfaf
</span></span></span></code></pre></div></div>

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

	<small>
		<a aria-label="Permalink for 12:33 pm, April 4, 2024" href="/log/01htmzbbzaz44w89zj6vzaetkn/"><time datetime="2024-04-04T12:33:54-04:00" data-pagefind-sort="date[datetime]">12h33</time></a>

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

		<span><a href="/log/country/canada/">Canada</a></span><span>, type:<a href="/log/type/code/">code</a></span></small>

</span>

</div>

  ]]></content:encoded>
</item><item>
  <title>Monday, March 18, 2024 18h28</title>
  <link>https://rosano.ca/log/01hs9tx1ytkp3kb0v03pdpm08a/</link>
  <pubDate>Mon, 18 Mar 2024 18:28:50 -0400</pubDate>
  <guid>https://rosano.ca/log/01hs9tx1ytkp3kb0v03pdpm08a/</guid>
  <description>Finally managed to install a custom app via Cloudron by following the tutorial documentation, and without installing Docker.&#xA;1. Install the Cloudron CLI locally sudo npm install -g cloudron cloudron login my.example.com 2. Setup build tools One-click install the Docker Registry App (replace alfa.bravo below with this app domain) and Build Service App (replace charlie.delta below with this app domain) via your Cloudron App Store. Configure the latter&#39;s credentials in /app/data/docker.json via the File Manager&#xA;</description>
  <content:encoded><![CDATA[
  <div class="post">


<div class="content"><p>Finally managed to install a custom app via Cloudron by following the <a href="https://docs.cloudron.io/packaging/tutorial/">tutorial documentation</a>, and without installing Docker.</p>
<h2 id="1-install-the-cloudron-cli-locally">1. Install the Cloudron CLI locally</h2>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo npm install -g cloudron
</span></span><span style="display:flex;"><span>cloudron login my.example.com
</span></span></code></pre></div><h2 id="2-setup-build-tools">2. Setup build tools</h2>
<p>One-click install the <a href="https://docs.cloudron.io/apps/docker-registry/">Docker Registry App</a> (replace <code>alfa.bravo</code> below with this app domain) and <a href="https://docs.cloudron.io/apps/build-service/">Build Service App</a> (replace <code>charlie.delta</code> below with this app domain) via your Cloudron App Store. Configure the latter's credentials in <code>/app/data/docker.json</code> via the File Manager</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-json" data-lang="json"><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">&#34;alfa.bravo&#34;</span>: {
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;username&#34;</span>: <span style="color:#e6db74">&#34;CLOUDRON_USERNAME&#34;</span>,
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;password&#34;</span>: <span style="color:#e6db74">&#34;CLOUDRON_PASSWORD&#34;</span>
</span></span><span style="display:flex;"><span>  }
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div><p>and restart the app.</p>
<h2 id="3-install-the-pre-packaged-custom-app">3. Install the pre-packaged custom app</h2>
<p>Replace the <a href="https://git.cloudron.io/cloudron/tutorial-nodejs-app">simple tutorial app</a> with yours:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>git clone https://git.cloudron.io/cloudron/tutorial-nodejs-app
</span></span><span style="display:flex;"><span>cd tutorial-nodejs-app
</span></span><span style="display:flex;"><span>cloudron build --build-service-url https://charlie.delta --repository alfa.bravo/echo/foxtrot --tag golf
</span></span><span style="display:flex;"><span>cloudron install --image alfa.bravo/echo/foxtrot:golf
</span></span></code></pre></div><p>If you want to update, run <code>cloudron build</code> again, then call <code>cloudron update</code> like so:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>cloudron build --build-service-url https://charlie.delta --repository alfa.bravo/echo/foxtrot --tag golf
</span></span><span style="display:flex;"><span>cloudron update --image alfa.bravo/echo/foxtrot:golf
</span></span></code></pre></div><h3 id="resources">Resources</h3>
<p>Aside from the <a href="https://docs.cloudron.io/packaging/tutorial/">tutorial documentation</a>, I found some hints in these forum topics:</p>
<ul>
<li><a href="https://forum.cloudron.io/topic/4412/how-to-build-custom-apps-using-the-docker-registry">How to build (custom) apps using the docker-registry</a></li>
<li><a href="https://forum.cloudron.io/topic/6717/how-do-i-do-this">How do I do this??</a></li>
<li><a href="https://forum.cloudron.io/topic/9957/ui-not-working">UI not working</a></li>
</ul>
</div><p>
	<small>Tagged: <a href="/log/tag/notes/">notes</a>.
	</small>
</p>

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

	<small>
		<a aria-label="Permalink for 6:28 pm, March 18, 2024" href="/log/01hs9tx1ytkp3kb0v03pdpm08a/"><time datetime="2024-03-18T18:28:50-04:00" data-pagefind-sort="date[datetime]">18h28</time></a>

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

		<span><a href="/log/country/canada/">Canada</a></span><span>, type:<a href="/log/type/code/">code</a></span></small>

</span>

</div>

  ]]></content:encoded>
</item><item>
  <title>Wednesday, March 6, 2024 12h50</title>
  <link>https://rosano.ca/log/01hrcnygxxj7ar347gheeesdwg/</link>
  <pubDate>Wed, 06 Mar 2024 12:50:00 -0500</pubDate>
  <guid>https://rosano.ca/log/01hrcnygxxj7ar347gheeesdwg/</guid>
  <description>Whisper or &#39;Whisper-Faster&#39; can run as a standalone terminal program on macOS 10.14 with whisper-standalone-win by simply downloading the binary from &#39;releases&#39; and running a single command from the resulting folder:&#xA;./whisper-faster &amp;#34;~/alfa/bravo.mp3&amp;#34; --pp --model base.en --language=en --output_format all --output_dir . This will fetch the model if there isn&#39;t a local copy, and transcribe into about half a dozen formats, including plaintext, JSON, and subtitle files.&#xA;The openai/whisper documentation says:&#xA;The .en models for English-only applications tend to perform better, especially for the tiny.en and base.en models. We observed that the difference becomes less significant for the small.en and medium.en models.&#xA;</description>
  <content:encoded><![CDATA[
  <div class="post">


<div class="content"><p>Whisper or 'Whisper-Faster' can run as a standalone terminal program on macOS 10.14 with <a href="https://github.com/Purfview/whisper-standalone-win">whisper-standalone-win</a> by simply downloading the binary from 'releases' and running a single command from the resulting folder:</p>
<pre tabindex="0"><code>./whisper-faster &#34;~/alfa/bravo.mp3&#34; --pp --model base.en --language=en --output_format all --output_dir .
</code></pre><p>This will fetch the model if there isn't a local copy, and transcribe into about half a dozen formats, including plaintext, JSON, and subtitle files.</p>
<p>The <a href="https://github.com/openai/whisper">openai/whisper</a> documentation says:</p>
<blockquote>
<p>The .en models for English-only applications tend to perform better, especially for the tiny.en and base.en models. We observed that the difference becomes less significant for the small.en and medium.en models.</p></blockquote>
<p>To run it without printing text into the console, use <code>-pp</code> or <a href="https://github.com/Purfview/whisper-standalone-win/discussions/210#discussioncomment-8709934">send to NUL</a></p>
</div><p>
	<small>Tagged: <a href="/log/tag/notes/">notes</a>.
	</small>
</p>

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

	<small>
		<a aria-label="Permalink for 12:50 pm, March 6, 2024" href="/log/01hrcnygxxj7ar347gheeesdwg/"><time datetime="2024-03-06T12:50:00-05:00" data-pagefind-sort="date[datetime]">12h50</time></a>

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

		<span><a href="/log/country/canada/">Canada</a></span><span>, type:<a href="/log/type/code/">code</a></span></small>

</span>

</div>

  ]]></content:encoded>
</item><item>
  <title>Saturday, March 2, 2024 12h56</title>
  <link>https://rosano.ca/log/01hr04ykk93s104vrcs0y7p4qa/</link>
  <pubDate>Sat, 02 Mar 2024 12:56:21 -0500</pubDate>
  <guid>https://rosano.ca/log/01hr04ykk93s104vrcs0y7p4qa/</guid>
  <description>macOS Time Machine exclusions can be managed via the terminal, as documented in Exclude folders by regex (?) from time machine backup, Control Time Machine from the command line, and Scripting Timemachine exclusion lists:&#xA;find `pwd` -maxdepth 3 -type d -name &amp;#39;node_modules&amp;#39; | xargs -n 1 tmutil addexclusion But this doesn&#39;t make it show up in the System Preferences GUI. Writing to defaults seems to do that:&#xA;sudo defaults write /Library/Preferences/com.apple.TimeMachine.plist SkipPaths -array-add &amp;#34;~/.cache&amp;#34; but I&#39;m too paranoid about doing it wrong to see what happens.&#xA;</description>
  <content:encoded><![CDATA[
  <div class="post">


<div class="content"><p>macOS Time Machine exclusions can be managed via the terminal, as documented in <a href="https://superuser.com/questions/1161038/exclude-folders-by-regex-from-time-machine-backup">Exclude folders by regex (?) from time machine backup</a>, <a href="https://www.macworld.com/article/220774/control-time-machine-from-the-command-line.html">Control Time Machine from the command line</a>, and <a href="https://apple.stackexchange.com/questions/122504/scripting-timemachine-exclusion-lists">Scripting Timemachine exclusion lists</a>:</p>
<pre tabindex="0"><code>find `pwd` -maxdepth 3 -type d -name &#39;node_modules&#39; | xargs -n 1 tmutil addexclusion
</code></pre><p>But this doesn't make it show up in the System Preferences GUI. Writing to <code>defaults</code> seems to do that:</p>
<pre tabindex="0"><code>sudo defaults write /Library/Preferences/com.apple.TimeMachine.plist SkipPaths -array-add &#34;~/.cache&#34;
</code></pre><p>but I'm too paranoid about doing it wrong to see what happens.</p>
<p><a href="https://github.com/stevegrunwell/asimov">Asimov</a> is another option (installed via homebrew) to &quot;Automatically exclude development dependencies from Apple Time Machine backups&quot;.</p>
</div><p>
	<small>Tagged: <a href="/log/tag/notes/">notes</a>.
	</small>
</p>

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

	<small>
		<a aria-label="Permalink for 12:56 pm, March 2, 2024" href="/log/01hr04ykk93s104vrcs0y7p4qa/"><time datetime="2024-03-02T12:56:21-05:00" data-pagefind-sort="date[datetime]">12h56</time></a>

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

		<span><a href="/log/country/canada/">Canada</a></span><span>, type:<a href="/log/type/code/">code</a></span></small>

</span>

</div>

  ]]></content:encoded>
</item><item>
  <title>Friday, March 1, 2024 20h52</title>
  <link>https://rosano.ca/log/01hqyds7szzva5st2tebgdgn7e/</link>
  <pubDate>Fri, 01 Mar 2024 20:52:13 -0500</pubDate>
  <guid>https://rosano.ca/log/01hqyds7szzva5st2tebgdgn7e/</guid>
  <description>How Bear does analytics with CSS&#xA;when a person hovers their cursor over the page (or scrolls on mobile) it triggers body:hover which calls the URL for the post hit. I don&#39;t think any bots hover and instead just use JS to interact with the page, so I can, with reasonable certainty, assume that this is a human reader.&#xA;</description>
  <content:encoded><![CDATA[
  <div class="post">


<div class="content"><p><a href="https://herman.bearblog.dev/how-bear-does-analytics-with-css/#tldr">How Bear does analytics with CSS</a></p>
<blockquote>
<p>when a person hovers their cursor over the page (or scrolls on mobile) it triggers <code>body:hover</code> which calls the URL for the post hit. I don't think any bots hover and instead just use JS to interact with the page, so I can, with reasonable certainty, assume that this is a human reader.</p></blockquote>
</div>

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

	<small>
		<a aria-label="Permalink for 8:52 pm, March 1, 2024" href="/log/01hqyds7szzva5st2tebgdgn7e/"><time datetime="2024-03-01T20:52:13-05:00" data-pagefind-sort="date[datetime]">20h52</time></a>

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

		<span><a href="/log/country/canada/">Canada</a></span><span>, type:<a href="/log/type/code/">code</a></span></small>

</span>

</div>

  ]]></content:encoded>
</item><item>
  <title>Friday, February 23, 2024 18h00</title>
  <link>https://rosano.ca/log/01hqe9pssm2td1jxqgcqqse4fx/</link>
  <pubDate>Fri, 23 Feb 2024 18:00:00 -0500</pubDate>
  <guid>https://rosano.ca/log/01hqe9pssm2td1jxqgcqqse4fx/</guid>
  <description>How many HTTP requests does it take to read a blog post versus a thread? What does it mean when it matters? What does it mean when it doesn&#39;t?&#xA;</description>
  <content:encoded><![CDATA[
  <div class="post">


<div class="content"><p>How many HTTP requests does it take to read a blog post versus a thread? What does it mean when it matters? What does it mean when it doesn't?</p>
</div><p>
	<small>Tagged: <a href="/log/tag/digital/">digital</a>.
	</small>
</p>

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

	<small>
		<a aria-label="Permalink for 6:00 pm, February 23, 2024" href="/log/01hqe9pssm2td1jxqgcqqse4fx/"><time datetime="2024-02-23T18:00:00-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><span>, type:<a href="/log/type/code/">code</a><a href="/log/type/thought/">thought</a></span></small>

</span>

</div>

  ]]></content:encoded>
</item><item>
  <title>Saturday, February 17, 2024 22h25</title>
  <link>https://rosano.ca/log/01hpx3yz4q8d7ybdzntg14s8a6/</link>
  <pubDate>Sat, 17 Feb 2024 22:25:39 -0500</pubDate>
  <guid>https://rosano.ca/log/01hpx3yz4q8d7ybdzntg14s8a6/</guid>
  <description>Forked cors-anywhere to replace cors-proxy.fringe.zone with cors.rosano.ca in Joybox, OSFeedbox, and home.&#xA;</description>
  <content:encoded><![CDATA[
  <div class="post">


<div class="content"><p>Forked <a href="https://github.com/rosano/cors-anywhere">cors-anywhere</a> to replace cors-proxy.fringe.zone with cors.rosano.ca in <a href="https://github.com/rosano/joybox/commit/1cd924e7686a96985dac6838a1d8b1a085bd31bd">Joybox</a>, <a href="https://github.com/olsk/OSFeedbox/commit/2d0d0e94c1d9a9c48a6ca6d27bd35f84d06f6e10">OSFeedbox</a>, and <a href="https://github.com/rosano/home/commit/de0769f7f8ecde24fb6d7d6593c09752504050e2">home</a>.</p>
</div><p>
	<small>Tagged: <a href="/log/tag/notes/">notes</a>.
	</small>
</p>

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

	<small>
		<a aria-label="Permalink for 10:25 pm, February 17, 2024" href="/log/01hpx3yz4q8d7ybdzntg14s8a6/"><time datetime="2024-02-17T22:25:39-05:00" data-pagefind-sort="date[datetime]">22h25</time></a>

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

		<span><a href="/log/country/canada/">Canada</a></span><span>, type:<a href="/log/type/code/">code</a></span></small>

</span>

</div>

  ]]></content:encoded>
</item><item>
  <title>Saturday, February 17, 2024 21h34</title>
  <link>https://rosano.ca/log/01hpx11f7vvz5m3tysfmezhj71/</link>
  <pubDate>Sat, 17 Feb 2024 21:34:35 -0500</pubDate>
  <guid>https://rosano.ca/log/01hpx11f7vvz5m3tysfmezhj71/</guid>
  <description>YunoHost has an &#39;Edit&#39; button on their homepage which lets you directly modify the content and send them a &#39;patch&#39;.&#xA;I wasn&#39;t able to submit my change because of a &#39;File not found&#39; error, but still find it fascinating to not require people to use GitHub or Git in order to contribute.&#xA;The logic is in the seemingly random &#39;gertrude&#39; repository (which has not much of a README or description for what it is, and it looks like the &#39;patch&#39; is just the full HTML page content; perhaps someone can manually integrate it later. They claim to require email verification to catch spam before actually sending the change.&#xA;</description>
  <content:encoded><![CDATA[
  <div class="post">


<div class="content"><p><a href="https://yunohost.org">YunoHost</a> has an 'Edit' button on their homepage which lets you directly modify the content and send them a 'patch'.</p>
<p>I wasn't able to submit my change because of a 'File not found' error, but still find it fascinating to not require people to use GitHub or Git in order to contribute.</p>
<p>The logic is in the seemingly random '<a href="https://github.com/YunoHost/gertrude/blob/master/frontend/static/_js/app.js">gertrude</a>' repository (which has not much of a README or description for what it is, and it looks like the 'patch' is just the full HTML page content; perhaps someone can manually integrate it later. They claim to require email verification to catch spam before actually sending the change.</p>
<p>If it was possible to put a <code>mailto</code> on the internet without spam, it could remove friction from this kind of collaboration and create steps for people to do larger things.</p>
</div><p>
	<small>Tagged: <a href="/log/tag/notes/">notes</a>, <a href="/log/tag/contribute/">contribute</a>, <a href="/log/tag/inclusive/">inclusive</a>.
	</small>
</p>

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

	<small>
		<a aria-label="Permalink for 9:34 pm, February 17, 2024" href="/log/01hpx11f7vvz5m3tysfmezhj71/"><time datetime="2024-02-17T21:34:35-05:00" data-pagefind-sort="date[datetime]">21h34</time></a>

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

		<span><a href="/log/country/canada/">Canada</a></span><span>, type:<a href="/log/type/code/">code</a></span></small>

</span>

</div>

  ]]></content:encoded>
</item><item>
  <title>Monday, February 12, 2024 18h15</title>
  <link>https://rosano.ca/log/01hpfsnxj2xa2q5stv8daybd14/</link>
  <pubDate>Mon, 12 Feb 2024 18:15:49 -0500</pubDate>
  <guid>https://rosano.ca/log/01hpfsnxj2xa2q5stv8daybd14/</guid>
  <description>[DRAFT] FAST Accessibility Checklist&#xA;[Look for these cues to ensure accessibility: visual content (like images, video); changeable color; input controls; interaction features; audio content; time limits; text-only input.]&#xA;</description>
  <content:encoded><![CDATA[
  <div class="post">


<div class="content"><p><a href="https://w3c.github.io/apa/fast/checklist.html">[DRAFT] FAST Accessibility Checklist</a></p>
<blockquote>
<p>[Look for these cues to ensure accessibility: visual content (like images, video); changeable color; input controls; interaction features; audio content; time limits; text-only input.]</p></blockquote>
</div><p>
	<small>Tagged: <a href="/log/tag/inclusive/">inclusive</a>.
	</small>
</p>

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

	<small>
		<a aria-label="Permalink for 6:15 pm, February 12, 2024" href="/log/01hpfsnxj2xa2q5stv8daybd14/"><time datetime="2024-02-12T18:15:49-05:00" data-pagefind-sort="date[datetime]">18h15</time></a>

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

		<span><a href="/log/country/canada/">Canada</a></span><span>, type:<a href="/log/type/project/">project</a><a href="/log/type/code/">code</a></span></small>

</span>

</div>

  ]]></content:encoded>
</item><item>
  <title>Monday, February 12, 2024 18h09</title>
  <link>https://rosano.ca/log/01hpfsaanq8z5eh11ex58gcnch/</link>
  <pubDate>Mon, 12 Feb 2024 18:09:29 -0500</pubDate>
  <guid>https://rosano.ca/log/01hpfsaanq8z5eh11ex58gcnch/</guid>
  <description>Spec review i18n checklist&#xA;[Look for these cues to handle underlying localization: natural language text for humans (in error messages, UI text, JSON strings, etc…); interactions with text through a keyboard or cursor; searching, matching, sorting text; capturing user input; represents time; deals with names, addresses, time formats, etc…; references any cultural norms.]&#xA;</description>
  <content:encoded><![CDATA[
  <div class="post">


<div class="content"><p><a href="https://w3c.github.io/i18n-drafts/techniques/shortchecklist">Spec review i18n checklist</a></p>
<blockquote>
<p>[Look for these cues to handle underlying localization: natural language text for humans (in error messages, UI text, JSON strings, etc…); interactions with text through a keyboard or cursor; searching, matching, sorting text; capturing user input; represents time; deals with names, addresses, time formats, etc…; references any cultural norms.]</p></blockquote>
</div><p>
	<small>Tagged: <a href="/log/tag/inclusive/">inclusive</a>.
	</small>
</p>

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

	<small>
		<a aria-label="Permalink for 6:09 pm, February 12, 2024" href="/log/01hpfsaanq8z5eh11ex58gcnch/"><time datetime="2024-02-12T18:09:29-05:00" data-pagefind-sort="date[datetime]">18h09</time></a>

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

		<span><a href="/log/country/canada/">Canada</a></span><span>, type:<a href="/log/type/project/">project</a><a href="/log/type/code/">code</a></span></small>

</span>

</div>

  ]]></content:encoded>
</item><item>
  <title>Monday, February 12, 2024 17h09</title>
  <link>https://rosano.ca/log/01hpfnw8rwaq8vexnby3mhqv8h/</link>
  <pubDate>Mon, 12 Feb 2024 17:09:23 -0500</pubDate>
  <guid>https://rosano.ca/log/01hpfnw8rwaq8vexnby3mhqv8h/</guid>
  <description>How to be a -10x Engineer&#xA;Mock function calls until no original code runs.&#xA;Wow, do I need to change my approach!&#xA;</description>
  <content:encoded><![CDATA[
  <div class="post">


<div class="content"><p><a href="https://taylor.town/-10x">How to be a -10x Engineer</a></p>
<blockquote>
<p>Mock function calls until no original code runs.</p></blockquote>
<p>Wow, do I need to change my approach!</p>
</div>

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

	<small>
		<a aria-label="Permalink for 5:09 pm, February 12, 2024" href="/log/01hpfnw8rwaq8vexnby3mhqv8h/"><time datetime="2024-02-12T17:09:23-05:00" data-pagefind-sort="date[datetime]">17h09</time></a>

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

		<span><a href="/log/country/canada/">Canada</a></span><span>, type:<a href="/log/type/code/">code</a></span></small>

</span>

</div>

  ]]></content:encoded>
</item><item>
  <title>Sunday, February 11, 2024 07h29</title>
  <link>https://rosano.ca/log/01hpc2a40bg4z84twdy3vn53ec/</link>
  <pubDate>Sun, 11 Feb 2024 07:29:42 -0500</pubDate>
  <guid>https://rosano.ca/log/01hpc2a40bg4z84twdy3vn53ec/</guid>
  <description>People don&#39;t like build systems but they love static-site generators.&#xA;</description>
  <content:encoded><![CDATA[
  <div class="post">


<div class="content"><p>People don't like build systems but they love static-site generators.</p>
</div>

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

	<small>
		<a aria-label="Permalink for 7:29 am, February 11, 2024" href="/log/01hpc2a40bg4z84twdy3vn53ec/"><time datetime="2024-02-11T07:29:42-05:00" data-pagefind-sort="date[datetime]">07h29</time></a>

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

		<span><a href="/log/country/canada/">Canada</a></span><span>, type:<a href="/log/type/code/">code</a><a href="/log/type/thought/">thought</a></span></small>

</span>

</div>

  ]]></content:encoded>
</item><item>
  <title>Friday, February 9, 2024 19h14</title>
  <link>https://rosano.ca/log/01hp85v3sdjsjmkre7zbas6b8a/</link>
  <pubDate>Fri, 09 Feb 2024 19:14:27 -0500</pubDate>
  <guid>https://rosano.ca/log/01hp85v3sdjsjmkre7zbas6b8a/</guid>
  <description>Hugo Testing&#xA;Each branch of Joe&#39;s hugo-testing git repository is a scratchpad where he has over 750 attempted &#39;solutions&#39; to help different people on the Hugo forum. Seems like discovery requires starting at a specific topic (as opposed to searching for the problem or solution), but it&#39;s quite organized the way it is. How might being this prolific in helping others impact one&#39;s own skills?&#xA;</description>
  <content:encoded><![CDATA[
  <div class="post">


<div class="content"><p><a href="https://github.com/jmooring/hugo-testing">Hugo Testing</a></p>
<p>Each branch of Joe's <code>hugo-testing</code> git repository is a scratchpad where he has over 750 attempted 'solutions' to help different people on the <a href="https://discourse.gohugo.io">Hugo forum</a>. Seems like discovery requires starting at a specific topic (as opposed to searching for the problem or solution), but it's quite organized the way it is. How might being this prolific in helping others impact one's own skills?</p>
</div><p>
	<small>Tagged: <a href="/log/tag/idea/">idea</a>, <a href="/log/tag/contribute/">contribute</a>.
	</small>
</p>

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

	<small>
		<a aria-label="Permalink for 7:14 pm, February 9, 2024" href="/log/01hp85v3sdjsjmkre7zbas6b8a/"><time datetime="2024-02-09T19:14:27-05:00" data-pagefind-sort="date[datetime]">19h14</time></a>

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

		<span><a href="/log/country/canada/">Canada</a></span><span>, type:<a href="/log/type/project/">project</a><a href="/log/type/code/">code</a></span></small>

</span>

</div>

  ]]></content:encoded>
</item><item>
  <title>Wednesday, February 7, 2024 13h41</title>
  <link>https://rosano.ca/log/01hp2e058nevd3ffw6y2z5te0d/</link>
  <pubDate>Wed, 07 Feb 2024 13:41:34 -0500</pubDate>
  <guid>https://rosano.ca/log/01hp2e058nevd3ffw6y2z5te0d/</guid>
  <description>Is there a better way to run a command N times in bash?&#xA;alfa=10 for bravo in $(seq $alfa); do echo &amp;#34;$bravo&amp;#34; done </description>
  <content:encoded><![CDATA[
  <div class="post">


<div class="content"><p><a href="https://stackoverflow.com/questions/3737740/is-there-a-better-way-to-run-a-command-n-times-in-bash">Is there a better way to run a command N times in bash?</a></p>
<pre tabindex="0"><code>alfa=10
for bravo in $(seq $alfa); do
   echo &#34;$bravo&#34;
done
</code></pre></div>

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

	<small>
		<a aria-label="Permalink for 1:41 pm, February 7, 2024" href="/log/01hp2e058nevd3ffw6y2z5te0d/"><time datetime="2024-02-07T13:41:34-05:00" data-pagefind-sort="date[datetime]">13h41</time></a>

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

		<span><a href="/log/country/canada/">Canada</a></span><span>, type:<a href="/log/type/code/">code</a></span></small>

</span>

</div>

  ]]></content:encoded>
</item><item>
  <title>Wednesday, February 7, 2024 13h34</title>
  <link>https://rosano.ca/log/01hp2dk1pbmrzg537r6m6gqz76/</link>
  <pubDate>Wed, 07 Feb 2024 13:34:24 -0500</pubDate>
  <guid>https://rosano.ca/log/01hp2dk1pbmrzg537r6m6gqz76/</guid>
  <description>How do I get the Git commit count?&#xA;git rev-list --count master </description>
  <content:encoded><![CDATA[
  <div class="post">


<div class="content"><p><a href="https://stackoverflow.com/questions/677436/how-do-i-get-the-git-commit-count#4061706">How do I get the Git commit count?</a></p>
<pre tabindex="0"><code>git rev-list --count master
</code></pre></div>

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

	<small>
		<a aria-label="Permalink for 1:34 pm, February 7, 2024" href="/log/01hp2dk1pbmrzg537r6m6gqz76/"><time datetime="2024-02-07T13:34:24-05:00" data-pagefind-sort="date[datetime]">13h34</time></a>

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

		<span><a href="/log/country/canada/">Canada</a></span><span>, type:<a href="/log/type/code/">code</a></span></small>

</span>

</div>

  ]]></content:encoded>
</item><item>
  <title>Wednesday, February 7, 2024 13h31</title>
  <link>https://rosano.ca/log/01hp2de3848egp4r1ysswakhdq/</link>
  <pubDate>Wed, 07 Feb 2024 13:31:42 -0500</pubDate>
  <guid>https://rosano.ca/log/01hp2de3848egp4r1ysswakhdq/</guid>
  <description>How do you jump to the first commit in git?&#xA;git checkout `git rev-list --max-parents=0 HEAD | tail -n 1` </description>
  <content:encoded><![CDATA[
  <div class="post">


<div class="content"><p><a href="https://stackoverflow.com/questions/43197105/how-do-you-jump-to-the-first-commit-in-git">How do you jump to the first commit in git?</a></p>
<pre tabindex="0"><code>git checkout `git rev-list --max-parents=0 HEAD | tail -n 1`
</code></pre></div>

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

	<small>
		<a aria-label="Permalink for 1:31 pm, February 7, 2024" href="/log/01hp2de3848egp4r1ysswakhdq/"><time datetime="2024-02-07T13:31:42-05:00" data-pagefind-sort="date[datetime]">13h31</time></a>

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

		<span><a href="/log/country/canada/">Canada</a></span><span>, type:<a href="/log/type/code/">code</a></span></small>

</span>

</div>

  ]]></content:encoded>
</item><item>
  <title>Monday, February 5, 2024 14h06</title>
  <link>https://rosano.ca/log/01hnxakh6gdwyb30hhe5xk3a29/</link>
  <pubDate>Mon, 05 Feb 2024 14:06:02 -0500</pubDate>
  <guid>https://rosano.ca/log/01hnxakh6gdwyb30hhe5xk3a29/</guid>
  <description>Building a self-updating profile README for GitHub&#xA;GitHub Actions can run on a recurring schedule and manually by pushing a button.&#xA;</description>
  <content:encoded><![CDATA[
  <div class="post">


<div class="content"><p><a href="https://simonwillison.net/2020/Jul/10/self-updating-profile-readme/">Building a self-updating profile README for GitHub</a></p>
<p>GitHub Actions can run on a recurring schedule <em>and</em> manually by pushing a button.</p>
</div>

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

	<small>
		<a aria-label="Permalink for 2:06 pm, February 5, 2024" href="/log/01hnxakh6gdwyb30hhe5xk3a29/"><time datetime="2024-02-05T14:06:02-05:00" data-pagefind-sort="date[datetime]">14h06</time></a>

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

		<span><a href="/log/country/canada/">Canada</a></span><span>, type:<a href="/log/type/code/">code</a></span></small>

</span>

</div>

  ]]></content:encoded>
</item><item>
  <title>Saturday, February 3, 2024 12h20</title>
  <link>https://rosano.ca/log/01hnqzsdyscv744y80wet0pzcf/</link>
  <pubDate>Sat, 03 Feb 2024 12:20:49 -0500</pubDate>
  <guid>https://rosano.ca/log/01hnqzsdyscv744y80wet0pzcf/</guid>
  <description> [1. Distribute a self-hostable package; 2. Releases are free to distribute and use, source not available; 3. Offer free community support channels via a forum or chat; 4. Provide source and extended community access for a monthly fee; 5. Automatically make the source available on a rolling basis delayed by one year.]&#xA;</description>
  <content:encoded><![CDATA[
  <div class="post">


<div class="content"><blockquote>
<p>[1. Distribute a self-hostable package; 2. Releases are free to distribute and use, source not available; 3. Offer free community support channels via a forum or chat; 4. Provide source and extended community access for a monthly fee; 5. Automatically make the source available on a rolling basis delayed by one year.]</p></blockquote>
</div><p>
	<small>Tagged: <a href="/log/tag/idea/">idea</a>.
	</small>
</p>

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

	<small>
		<a aria-label="Permalink for 12:20 pm, February 3, 2024" href="/log/01hnqzsdyscv744y80wet0pzcf/"><time datetime="2024-02-03T12:20:49-05:00" data-pagefind-sort="date[datetime]">12h20</time></a>

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

		<span><a href="/log/country/canada/">Canada</a></span><span>, via: 
			<a href="https://twitter.com/aboodman/status/1749911396207497309">twitter.com</a></span><span>, type:<a href="/log/type/thought/">thought</a><a href="/log/type/code/">code</a></span></small>

</span>

</div>

  ]]></content:encoded>
</item><item>
  <title>Friday, February 2, 2024 10h53</title>
  <link>https://rosano.ca/log/01hnn8c3tjxqx5we5m6h8e4drq/</link>
  <pubDate>Fri, 02 Feb 2024 10:53:07 -0500</pubDate>
  <guid>https://rosano.ca/log/01hnn8c3tjxqx5we5m6h8e4drq/</guid>
  <description>Tenets&#xA;Instead of striving to be the fastest or smallest or whateverest, we explicitly aim to be the framework with the best vibes.&#xA;HTML, The Mother Language&#xA;There&#39;s a subtle line between something feeling magical, and something feeling like magic. We want Svelte to feel magical — we want you to feel like a wizard when you&#39;re writing Svelte code. Historically I think Svelte went too far into magic territory, where it&#39;s not 100% clear why things work a certain way, and that&#39;s something that we&#39;re rectifying with Svelte 5.&#xA;</description>
  <content:encoded><![CDATA[
  <div class="post">


<div class="content"><p><a href="https://github.com/sveltejs/svelte/discussions/10085#discussion-6029409">Tenets</a></p>
<blockquote>
<p>Instead of striving to be the fastest or smallest or whateverest, we explicitly aim to be the framework with the best vibes.</p></blockquote>
<blockquote>
<p>HTML, The Mother Language</p></blockquote>
<blockquote>
<p>There's a subtle line between something feeling magical, and something feeling like magic. We want Svelte to feel magical — we want you to feel like a wizard when you're writing Svelte code. Historically I think Svelte went too far into magic territory, where it's not 100% clear why things work a certain way, and that's something that we're rectifying with Svelte 5.</p></blockquote>
<blockquote>
<p>So when we design things we need to think about the people who haven't read the docs in a while, if at all, and don't care about things like fine-grained rendering or configuring their build tool. This means that things need to be intuitive, that we shouldn't need to worry about manual optimisations like memoisation, that we should have as few APIs as possible, and that things need to be discoverable — for example you should be able to hover over a rune and get a link to comprehensive documentation.</p></blockquote>
</div>

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

	<small>
		<a aria-label="Permalink for 10:53 am, February 2, 2024" href="/log/01hnn8c3tjxqx5we5m6h8e4drq/"><time datetime="2024-02-02T10:53:07-05:00" data-pagefind-sort="date[datetime]">10h53</time></a>

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

		<span><a href="/log/country/canada/">Canada</a></span><span>, type:<a href="/log/type/code/">code</a></span></small>

</span>

</div>

  ]]></content:encoded>
</item><item>
  <title>Saturday, January 27, 2024 09h29</title>
  <link>https://rosano.ca/log/01hn5n61y5r6c0r1sfc4b5sy67/</link>
  <pubDate>Sat, 27 Jan 2024 09:29:09 -0500</pubDate>
  <guid>https://rosano.ca/log/01hn5n61y5r6c0r1sfc4b5sy67/</guid>
  <description>Paul’s notes on how JSON-LD works&#xA;[The JSON-LD data model is a graph with documents as nodes and properties as edges to other nodes or &#39;values&#39;.]&#xA;[@vocab maps a default prefix to keys not mapped explicitly in @context].&#xA;[@context provides only definitions to map your keys, it&#39;s not a type. @type is a type, and can be defined with a URL or a term from @context.&#xA;[@id&#39;s value is a reference to another object or node.]&#xA;</description>
  <content:encoded><![CDATA[
  <div class="post">


<div class="content"><p><a href="https://paulfrazee.medium.com/pauls-notes-on-how-json-ld-works-965732ea559d">Paul’s notes on how JSON-LD works</a></p>
<blockquote>
<p>[The JSON-LD data model is a graph with documents as nodes and properties as edges to other nodes or 'values'.]</p></blockquote>
<blockquote>
<p>[<code>@vocab</code> maps a default prefix to keys not mapped explicitly in <code>@context</code>].</p></blockquote>
<blockquote>
<p>[<code>@context</code> provides only definitions to map your keys, it's not a type. <code>@type</code> is a type, and can be defined with a URL or a term from <code>@context</code>.</p></blockquote>
<blockquote>
<p>[<code>@id</code>'s value is a reference to another object or node.]</p></blockquote>
</div>

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

	<small>
		<a aria-label="Permalink for 9:29 am, January 27, 2024" href="/log/01hn5n61y5r6c0r1sfc4b5sy67/"><time datetime="2024-01-27T09:29:09-05:00" data-pagefind-sort="date[datetime]">09h29</time></a>

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

		<span><a href="/log/country/canada/">Canada</a></span><span>, type:<a href="/log/type/code/">code</a></span></small>

</span>

</div>

  ]]></content:encoded>
</item><item>
  <title>Friday, January 26, 2024 05h05</title>
  <link>https://rosano.ca/log/01hn2kp45ymyf6k4kee258yv3h/</link>
  <pubDate>Fri, 26 Jan 2024 05:05:15 -0500</pubDate>
  <guid>https://rosano.ca/log/01hn2kp45ymyf6k4kee258yv3h/</guid>
  <description>At this point I basically upgrade iOS when there are new Progressive Web App features.&#xA;</description>
  <content:encoded><![CDATA[
  <div class="post">


<div class="content"><p>At this point I basically upgrade iOS when there are new Progressive Web App features.</p>
</div>

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

	<small>
		<a aria-label="Permalink for 5:05 am, January 26, 2024" href="/log/01hn2kp45ymyf6k4kee258yv3h/"><time datetime="2024-01-26T05:05:15-05:00" data-pagefind-sort="date[datetime]">05h05</time></a>

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

		<span><a href="/log/country/canada/">Canada</a></span><span>, type:<a href="/log/type/code/">code</a><a href="/log/type/thought/">thought</a></span></small>

</span>

</div>

  ]]></content:encoded>
</item><item>
  <title>Thursday, January 25, 2024 07h49</title>
  <link>https://rosano.ca/log/01hn0apxv5pj3pqmxbzqn0f9sw/</link>
  <pubDate>Thu, 25 Jan 2024 07:49:55 -0500</pubDate>
  <guid>https://rosano.ca/log/01hn0apxv5pj3pqmxbzqn0f9sw/</guid>
  <description>Apple System Preferences URL Schemes&#xA;Open a macOS preference pane via URL like file:///System/Library/PreferencePanes/Keyboard.prefPane or terminal with open &amp;quot;x-apple.systempreferences:&amp;lt;PaneID&amp;gt;&amp;quot;&#xA;</description>
  <content:encoded><![CDATA[
  <div class="post">


<div class="content"><p><a href="https://gist.github.com/rmcdongit/f66ff91e0dad78d4d6346a75ded4b751">Apple System Preferences URL Schemes</a></p>
<p>Open a macOS preference pane via URL like <code>file:///System/Library/PreferencePanes/Keyboard.prefPane</code> or terminal with <code>open &quot;x-apple.systempreferences:&lt;PaneID&gt;&quot;</code></p>
</div>

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

	<small>
		<a aria-label="Permalink for 7:49 am, January 25, 2024" href="/log/01hn0apxv5pj3pqmxbzqn0f9sw/"><time datetime="2024-01-25T07:49:55-05:00" data-pagefind-sort="date[datetime]">07h49</time></a>

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

		<span><a href="/log/country/canada/">Canada</a></span><span>, type:<a href="/log/type/code/">code</a></span></small>

</span>

</div>

  ]]></content:encoded>
</item><item>
  <title>Wednesday, January 24, 2024 12h04</title>
  <link>https://rosano.ca/log/01hmy6wzjzy249gawc4kap2dj9/</link>
  <pubDate>Wed, 24 Jan 2024 12:04:50 -0500</pubDate>
  <guid>https://rosano.ca/log/01hmy6wzjzy249gawc4kap2dj9/</guid>
  <description>How to concatenate two MP4 files using FFmpeg?&#xA;(echo file &amp;#39;/alfa/bravo.mp4&amp;#39; &amp;amp; echo file &amp;#39;/charlie/delta.mp4&amp;#39; ) &amp;gt; echo.txt ffmpeg -f concat -safe 0 -i echo.txt -c copy foxtrot.mp4 </description>
  <content:encoded><![CDATA[
  <div class="post">


<div class="content"><p><a href="https://stackoverflow.com/questions/7333232/how-to-concatenate-two-mp4-files-using-ffmpeg">How to concatenate two MP4 files using FFmpeg?</a></p>
<pre tabindex="0"><code>(echo file &#39;/alfa/bravo.mp4&#39; &amp; echo file &#39;/charlie/delta.mp4&#39; ) &gt; echo.txt
ffmpeg -f concat -safe 0 -i echo.txt -c copy foxtrot.mp4
</code></pre></div>

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

	<small>
		<a aria-label="Permalink for 12:04 pm, January 24, 2024" href="/log/01hmy6wzjzy249gawc4kap2dj9/"><time datetime="2024-01-24T12:04:50-05:00" data-pagefind-sort="date[datetime]">12h04</time></a>

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

		<span><a href="/log/country/canada/">Canada</a></span><span>, type:<a href="/log/type/code/">code</a></span></small>

</span>

</div>

  ]]></content:encoded>
</item><item>
  <title>Friday, December 15, 2023 10h39</title>
  <link>https://rosano.ca/log/01hhpv8a3741y0pya9fp6bjt26/</link>
  <pubDate>Fri, 15 Dec 2023 10:39:32 -0300</pubDate>
  <guid>https://rosano.ca/log/01hhpv8a3741y0pya9fp6bjt26/</guid>
  <description>No more raw data&#xA;[Sometimes it&#39;s better not to decide what data you share, and defer the choice to someone with more expertise, such as medical data being provisioned by your doctor (who likely knows better how to respond to the request).]&#xA;Not only can my pod automatically fill out such forms; the forms don’t need to be there in the first place, because my pod can just share the needed data, machine to machine.&#xA;</description>
  <content:encoded><![CDATA[
  <div class="post">


<div class="content"><p><a href="https://ruben.verborgh.org/blog/2023/11/10/no-more-raw-data/">No more raw data</a></p>
<blockquote>
<p>[Sometimes it's better not to decide what data you share, and defer the choice to someone with more expertise, such as medical data being provisioned by your doctor (who likely knows better how to respond to the request).]</p></blockquote>
<blockquote>
<p>Not only can my pod automatically fill out such forms; the forms don’t need to be there in the first place, because my pod can just share the needed data, machine to machine.</p></blockquote>
<blockquote>
<p>[Recipients will want to keep the trust envelope because it's their proof to an auditor that they comply with its policy.]</p></blockquote>
</div><p>
	<small>Tagged: <a href="/log/tag/interop/">interop</a>.
	</small>
</p>

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

	<small>
		<a aria-label="Permalink for 10:39 am, December 15, 2023" href="/log/01hhpv8a3741y0pya9fp6bjt26/"><time datetime="2023-12-15T10:39:32-03:00" data-pagefind-sort="date[datetime]">10h39</time></a>

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

		<span><a href="/log/country/brazil/">Brazil</a></span><span>, type:<a href="/log/type/code/">code</a></span></small>

</span>

</div>

  ]]></content:encoded>
</item><item>
  <title>Thursday, November 23, 2023 13h28</title>
  <link>https://rosano.ca/log/01hfyg59w6hycty0cbz0fgbq0k/</link>
  <pubDate>Thu, 23 Nov 2023 13:28:11 -0300</pubDate>
  <guid>https://rosano.ca/log/01hfyg59w6hycty0cbz0fgbq0k/</guid>
  <description>Plausible: GDPR, CCPA and cookie law compliant site analytics&#xA;Old salts are deleted every 24 hours to avoid the possibility of linking visitor information from one day to the next. Forgetting used salts also removes the possibility of the original IP addresses being revealed in a brute-force attack.&#xA;</description>
  <content:encoded><![CDATA[
  <div class="post">


<div class="content"><p><a href="https://plausible.io/data-policy">Plausible: GDPR, CCPA and cookie law compliant site analytics</a></p>
<blockquote>
<p>Old salts are deleted every 24 hours to avoid the possibility of linking visitor information from one day to the next. Forgetting used salts also removes the possibility of the original IP addresses being revealed in a brute-force attack.</p></blockquote>
</div><p>
	<small>Tagged: <a href="/log/tag/safety/">safety</a>.
	</small>
</p>

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

	<small>
		<a aria-label="Permalink for 1:28 pm, November 23, 2023" href="/log/01hfyg59w6hycty0cbz0fgbq0k/"><time datetime="2023-11-23T13:28:11-03:00" data-pagefind-sort="date[datetime]">13h28</time></a>

		
		<span>from <a href="/log/place/recife/">Recife</a> / </span>

		<span><a href="/log/country/brazil/">Brazil</a></span><span>, type:<a href="/log/type/code/">code</a></span></small>

</span>

</div>

  ]]></content:encoded>
</item><item>
  <title>Tuesday, November 21, 2023 15h52</title>
  <link>https://rosano.ca/log/01hfskmbjsm3hpb8zzvg83ywny/</link>
  <pubDate>Tue, 21 Nov 2023 15:52:38 -0300</pubDate>
  <guid>https://rosano.ca/log/01hfskmbjsm3hpb8zzvg83ywny/</guid>
  <description>ChatGPT as muse, not oracle&#xA;In rubber duck debugging, talking to a silent rubber duck helps a person figure out the problem by forcing them to put it into words. The Oblique Strategies card deck promotes creative ideas based on general loose strategies. ELIZA can ask super basic questions and cause people to feel a therapeutic relationship. In all these cases, a person gets a boost in the creative process from interacting with a tool that’s clearly far from intelligent. It seems like large language models could do at least as well as these tools, and have a much higher ceiling.&#xA;</description>
  <content:encoded><![CDATA[
  <div class="post">


<div class="content"><p><a href="https://www.geoffreylitt.com/2023/02/26/llm-as-muse-not-oracle">ChatGPT as muse, not oracle</a></p>
<blockquote>
<p>In rubber duck debugging, talking to a silent rubber duck helps a person figure out the problem by forcing them to put it into words. The Oblique Strategies card deck promotes creative ideas based on general loose strategies. ELIZA can ask super basic questions and cause people to feel a therapeutic relationship. In all these cases, a person gets a boost in the creative process from interacting with a tool that’s clearly far from intelligent. It seems like large language models could do at least as well as these tools, and have a much higher ceiling.</p></blockquote>
</div><p>
	<small>Tagged: <a href="/log/tag/learn/">learn</a>.
	</small>
</p>

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

	<small>
		<a aria-label="Permalink for 3:52 pm, November 21, 2023" href="/log/01hfskmbjsm3hpb8zzvg83ywny/"><time datetime="2023-11-21T15:52:38-03:00" data-pagefind-sort="date[datetime]">15h52</time></a>

		
		<span>from <a href="/log/place/recife/">Recife</a> / </span>

		<span><a href="/log/country/brazil/">Brazil</a></span><span>, type:<a href="/log/type/code/">code</a></span></small>

</span>

</div>

  ]]></content:encoded>
</item><item>
  <title>Wednesday, October 11, 2023 11h10</title>
  <link>https://rosano.ca/log/01hg6j4mhez5evmgja8evzp3jd/</link>
  <pubDate>Wed, 11 Oct 2023 11:10:08 -0400</pubDate>
  <guid>https://rosano.ca/log/01hg6j4mhez5evmgja8evzp3jd/</guid>
  <description>&amp;quot;Platform data&amp;quot; and &amp;quot;Other&amp;quot; disk usage&#xA;Reclaim Docker storage:&#xA;docker image prune # or docker image prune -a docker volume prune </description>
  <content:encoded><![CDATA[
  <div class="post">


<div class="content"><p><a href="https://forum.cloudron.io/topic/1977/platform-data-and-other-disk-usage/24">&quot;Platform data&quot; and &quot;Other&quot; disk usage</a></p>
<p>Reclaim Docker storage:</p>
<pre tabindex="0"><code>docker image prune
# or
docker image prune -a

docker volume prune
</code></pre></div>

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

	<small>
		<a aria-label="Permalink for 11:10 am, October 11, 2023" href="/log/01hg6j4mhez5evmgja8evzp3jd/"><time datetime="2023-10-11T11:10:08-04:00" data-pagefind-sort="date[datetime]">11h10</time></a>

		
		<span>from <a href="/log/place/ithaca/">Ithaca</a> / </span>

		<span><a href="/log/country/united-states/">United States</a></span><span>, type:<a href="/log/type/code/">code</a></span></small>

</span>

</div>

  ]]></content:encoded>
</item><item>
  <title>Wednesday, October 11, 2023 11h09</title>
  <link>https://rosano.ca/log/01hg6jdxf1qcbx05cvb74wq6me/</link>
  <pubDate>Wed, 11 Oct 2023 11:09:08 -0400</pubDate>
  <guid>https://rosano.ca/log/01hg6jdxf1qcbx05cvb74wq6me/</guid>
  <description>How do I free up disk space?&#xA;# remove downloaded packages sudo apt-get clean # clear package caches that can&amp;#39;t be downloaded sudo apt-get autoclean # remove unused packages sudo apt-get autoremove </description>
  <content:encoded><![CDATA[
  <div class="post">


<div class="content"><p><a href="https://askubuntu.com/questions/5980/how-do-i-free-up-disk-space/6002#6002">How do I free up disk space?</a></p>
<pre tabindex="0"><code># remove downloaded packages
sudo apt-get clean

# clear package caches that can&#39;t be downloaded
sudo apt-get autoclean

# remove unused packages
sudo apt-get autoremove
</code></pre></div>

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

	<small>
		<a aria-label="Permalink for 11:09 am, October 11, 2023" href="/log/01hg6jdxf1qcbx05cvb74wq6me/"><time datetime="2023-10-11T11:09:08-04:00" data-pagefind-sort="date[datetime]">11h09</time></a>

		
		<span>from <a href="/log/place/ithaca/">Ithaca</a> / </span>

		<span><a href="/log/country/united-states/">United States</a></span><span>, type:<a href="/log/type/code/">code</a></span></small>

</span>

</div>

  ]]></content:encoded>
</item><item>
  <title>Wednesday, October 11, 2023 11h08</title>
  <link>https://rosano.ca/log/01hg6jjz2r72nc41v6zqp7aref/</link>
  <pubDate>Wed, 11 Oct 2023 11:08:08 -0400</pubDate>
  <guid>https://rosano.ca/log/01hg6jjz2r72nc41v6zqp7aref/</guid>
  <description>5 Linux commands to check free disk space&#xA;# show disk space in human-readable format df -h # show disk usage in human-readable format for all directories and subdirectories du -h -d 1 </description>
  <content:encoded><![CDATA[
  <div class="post">


<div class="content"><p><a href="https://opensource.com/article/18/7/how-check-free-disk-space-linux">5 Linux commands to check free disk space</a></p>
<pre tabindex="0"><code># show disk space in human-readable format
df -h

# show disk usage in human-readable format for all directories and subdirectories
du -h -d 1
</code></pre></div>

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

	<small>
		<a aria-label="Permalink for 11:08 am, October 11, 2023" href="/log/01hg6jjz2r72nc41v6zqp7aref/"><time datetime="2023-10-11T11:08:08-04:00" data-pagefind-sort="date[datetime]">11h08</time></a>

		
		<span>from <a href="/log/place/ithaca/">Ithaca</a> / </span>

		<span><a href="/log/country/united-states/">United States</a></span><span>, type:<a href="/log/type/code/">code</a></span></small>

</span>

</div>

  ]]></content:encoded>
</item><item>
  <title>Wednesday, October 11, 2023 09h26</title>
  <link>https://rosano.ca/log/01hg6jnfrzz8kpb651h480bq87/</link>
  <pubDate>Wed, 11 Oct 2023 09:26:00 -0400</pubDate>
  <guid>https://rosano.ca/log/01hg6jnfrzz8kpb651h480bq87/</guid>
  <description>Cannot update due to one tiny app filling up 20GB drive&#xA;Remove swap storage&#xA;sudo swapoff -a # or sudo swapoff /apps.swap # if desired truncate -s 1G /apps.swap sudo rm /apps.swap </description>
  <content:encoded><![CDATA[
  <div class="post">


<div class="content"><p><a href="https://forum.cloudron.io/topic/8554/cannot-update-due-to-one-tiny-app-filling-up-20gb-drive/19">Cannot update due to one tiny app filling up 20GB drive</a></p>
<p>Remove swap storage</p>
<pre tabindex="0"><code>sudo swapoff -a
# or
sudo swapoff /apps.swap

# if desired
truncate -s 1G /apps.swap

sudo rm /apps.swap
</code></pre></div>

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

	<small>
		<a aria-label="Permalink for 9:26 am, October 11, 2023" href="/log/01hg6jnfrzz8kpb651h480bq87/"><time datetime="2023-10-11T09:26:00-04:00" data-pagefind-sort="date[datetime]">09h26</time></a>

		
		<span>from <a href="/log/place/ithaca/">Ithaca</a> / </span>

		<span><a href="/log/country/united-states/">United States</a></span><span>, type:<a href="/log/type/code/">code</a></span></small>

</span>

</div>

  ]]></content:encoded>
</item><item>
  <title>Monday, September 11, 2023 08h00</title>
  <link>https://rosano.ca/log/01hg6kgeb7975mkkvsd5wpz6m0/</link>
  <pubDate>Mon, 11 Sep 2023 08:00:00 -0400</pubDate>
  <guid>https://rosano.ca/log/01hg6kgeb7975mkkvsd5wpz6m0/</guid>
  <description>Tried to understand why my Kobo doesn&#39;t mount to the computer when connecting via cable. Best solution I&#39;ve found is to try a different computer.&#xA;Kobo not connecting to computer...&#xA;[Use the cable that came with the Kobo.]&#xA;[Try a different cable.]&#xA;[Try a different computer.]&#xA;[USB 3 ports may cause issues. Try a cheap USB 2 hub in between.]&#xA;[Some USB cables are charge-only!]&#xA;Kobo Aura H2O keeps Connecting and Disconnecting USB issue [Solved-ish]&#xA;</description>
  <content:encoded><![CDATA[
  <div class="post">


<div class="content"><p>Tried to understand why my Kobo doesn't mount to the computer when connecting via cable. Best solution I've found is to try a different computer.</p>
<hr>
<p><a href="https://www.reddit.com/r/kobo/comments/mkb6lh/kobo_not_connecting_to_computer/">Kobo not connecting to computer...</a></p>
<blockquote>
<p>[Use the cable that came with the Kobo.]</p></blockquote>
<blockquote>
<p>[Try a different cable.]</p></blockquote>
<blockquote>
<p>[Try a different computer.]</p></blockquote>
<blockquote>
<p>[USB 3 ports may cause issues. Try a cheap USB 2 hub in between.]</p></blockquote>
<blockquote>
<p>[Some USB cables are charge-only!]</p></blockquote>
<hr>
<p><a href="https://www.reddit.com/r/kobo/comments/om1xci/kobo_aura_h2o_keeps_connecting_and_disconnecting/">Kobo Aura H2O keeps Connecting and Disconnecting USB issue [Solved-ish]</a></p>
<blockquote>
<p>[Try turning off Wi-Fi.] Seems that the WiFi and the USB subsystems might be sharing a data path to the processor, so there can be conflicts between them.</p></blockquote>
<hr>
<p><a href="https://www.mobileread.com/forums/showthread.php?s=3cfefe531d93be8fa3d577fae8ac0ef9&amp;t=289265&amp;page=2">Aura H2O Kobo won't connect to a PC anymore</a></p>
<hr>
<p><a href="https://www.reddit.com/r/kobo/comments/8cfygq/kobo_not_recognized_by_computer/">Kobo not recognized by computer</a></p>
<blockquote>
<p>Transferring over wifi: Calibre has a content server (you can find it under preferences, sharing, sharing over the net), your Kobo can connect to it with its browser (under extra's). The default port is 8080, there's a more detailed explanation on the content server dialog.</p></blockquote>
<p>More Wi-Fi possibilities in <a href="https://www.reddit.com/r/kobo/comments/ks5rr2/add_books_over_wifi/">Add Books Over WiFi?</a>, but the filenames tend to get mangled when importing this way, so I don't like it.</p>
<hr>
<p><a href="https://help.kobo.com/hc/en-us/articles/1500005659942-Troubleshoot-issues-connecting-your-eReader-to-your-computer-with-a-USB-cable">Official documentation</a> discusses none of these issues</p>
<hr>
<p>Would love to recommend a 'Canadian alternative' to Amazon, but no longer wish anyone to experience 'fussy' electronics.</p>
</div>

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

	<small>
		<a aria-label="Permalink for September 11, 2023" href="/log/01hg6kgeb7975mkkvsd5wpz6m0/"><time datetime="2023-09-11T08:00:00-04:00" data-pagefind-sort="date[datetime]">08h00</time></a>

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

		<span><a href="/log/country/canada/">Canada</a></span><span>, type:<a href="/log/type/code/">code</a></span></small>

</span>

</div>

  ]]></content:encoded>
</item><item>
  <title>Wednesday, November 3, 2021 09h54</title>
  <link>https://rosano.ca/log/01fkkbjjmmhwvq4fnedxthy45f/</link>
  <pubDate>Wed, 03 Nov 2021 09:54:35 -0700</pubDate>
  <guid>https://rosano.ca/log/01fkkbjjmmhwvq4fnedxthy45f/</guid>
  <description>So You Think You Know window.open&#xA;[target attribute can name and refocus other tabs.]&#xA;</description>
  <content:encoded><![CDATA[
  <div class="post">


<div class="content"><p><a href="https://2021.cascadiajs.com/speakers/jessica-campos">So You Think You Know <code>window.open</code></a></p>
<blockquote>
<p>[<code>target</code> attribute can name and refocus other tabs.]</p></blockquote>
</div>

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

	<small>
		<a aria-label="Permalink for 9:54 am, November 3, 2021" href="/log/01fkkbjjmmhwvq4fnedxthy45f/"><time datetime="2021-11-03T09:54:35-07:00" data-pagefind-sort="date[datetime]">09h54</time></a>

		
		<span>from <a href="/log/place/vancouver/">Vancouver</a> / </span>

		<span><a href="/log/country/canada/">Canada</a></span><span>, type:<a href="/log/type/code/">code</a></span></small>

</span>

</div>

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



</channel>

</rss>
