<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:media="http://search.yahoo.com/mrss/"><channel><title><![CDATA[The Autodidacts]]></title><description><![CDATA[Exploring the universe from the inside out]]></description><link>https://www.autodidacts.io/</link><image><url>https://www.autodidacts.io/favicon.png</url><title>The Autodidacts</title><link>https://www.autodidacts.io/</link></image><generator>Ghost 5.79</generator><lastBuildDate>Fri, 23 Feb 2024 08:05:41 GMT</lastBuildDate><atom:link href="https://www.autodidacts.io/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[How to Make Your Smartphone Boring]]></title><description><![CDATA[<p>Yesterday evening I was laying by the fire and reading a book. It was my first evening off in a while; I had shut down my computer before heading for dinner, and I was thoroughly enjoying myself. At one point, after finishing the section I was reading, I remembered about</p>]]></description><link>https://www.autodidacts.io/how-to-make-your-smartphone-boring/</link><guid isPermaLink="false">63d8445cc97e4c0210458ecb</guid><category><![CDATA[Essay]]></category><category><![CDATA[Tech]]></category><category><![CDATA[Digital Minimalism]]></category><dc:creator><![CDATA[Immanuel]]></dc:creator><pubDate>Fri, 10 Mar 2023 08:43:50 GMT</pubDate><content:encoded><![CDATA[<p>Yesterday evening I was laying by the fire and reading a book. It was my first evening off in a while; I had shut down my computer before heading for dinner, and I was thoroughly enjoying myself. At one point, after finishing the section I was reading, I remembered about a message I had to send, regarding a meeting the following morning. My phone was nearby so I grabbed it and sent the message. After doing what I had picked it up to do, I swiped around aimlessly a bit, navigating back and forth between the various home screens. Looking, subconsciously, for something interesting to look at or do on it. After about 10 or 15 seconds of finding nothing, I put the phone down, resumed my cozy position by the fire, and continued the book I was reading.</p>
<p>I didn&#x2019;t think much of this little vignette at the time, but later on I realized something: my project had succeeded.</p>
<h2 id="the-project-making-my-smartphone-boring">The Project: Making My Smartphone Boring</h2>
<h3 id="background">Background</h3>
<p>I believe technology <em>can</em> be a useful tool when used properly, and I don&#x2019;t want to be an unfoundedly grouchy luddite codger. However, I also believe technology has the (intentionally engineered) tendency to reel us in, and entice us to become more reliant on it, and spend far more time using it, than is in our best interest.</p>
<p>For a while I didn&#x2019;t have a smartphone. Then I had one for a bit and then sold it. Then I got one, but kept changing my number. I did these things intentionally. Because I didn&#x2019;t want to become reliant on having a smartphone. And I saw that once people got a phone, they almost never got rid of it. In fact, they often couldn&#x2019;t even <em>consider</em> the idea of getting rid of it. I didn&#x2019;t want to end up in this trap.</p>
<p>For my current job as a tour manager of a small folk-music band, having a phone of some kind is kind of important, and a smartphone is more efficient for typing. So for now, I&#x2019;ve got a phone. It&#x2019;s shiny and fast and has a nice camera. And it does its job well. However, I&#x2019;ve made a gradual project of avoiding having it do things that are <em>not</em> its job. And one of the main things that&#x2019;s definitely not its job, is enticing me into spending time on things that I&#x2019;d prefer not to spend my time on.</p>
<p>Below are some of the tactics I&#x2019;ve used to do this. I know there are a lot of people out there who are experimenting with becoming less tied-in with technology, and I&#x2019;ve found some of your accounts inspiring. I hope these things I&#x2019;ve found effective might be helpful to some of you who are aiming for a more mindful relationship with devices &#x2014; aiming to make use of the benefits they can offer, without becoming sucked in by their ever-increasing allure to our attention.</p>
<p>I&#x2019;ve noticed that smartphones are very good at doing their job.  And even better at doing things that are not their job. What someone considers their smartphone&#x2019;s legitimate job is varies from person to person. Likely, some of my tactics will work for you, and some won&#x2019;t. That&#x2019;s fine. Feel free to pick whichever ones make sense to you, and ignore the rest. Keep in mind, however, that you may encounter the urge to leave more things available than necessary &#x201C;just in case you end up needing them&#x201D; Surely having the Twitter and Instagram apps installed on my phone is part of my job as tour manager, right? Nope. It&#x2019;s not. I&#x2019;ve gradually discovered that, and I&#x2019;m glad I have.</p>
<h3 id="things-i%E2%80%99ve-decided-are-in-my-smartphone%E2%80%99s-job-description">Things I&#x2019;ve Decided Are In My Smartphone&#x2019;s Job Description</h3>
<ul>
<li>
<p>Making and receiving <strong>phone calls</strong></p>
</li>
<li>
<p>Sending and receiving <strong>text messages</strong></p>
</li>
<li>
<p>Enabling <strong>2 factor authentication</strong> (the rise of which I&#x2019;m not at all pleased about. What if I lost my phone? Or accidentally dropped it into the ocean? I don&#x2019;t like the idea of being reliant on a device which can be easily lost, stolen, or simply cease to function)</p>
</li>
<li>
<p><strong>Depositing cheques</strong></p>
</li>
<li>
<p><strong>Listening to music</strong> (this is getting to be a bit of a grey zone. I do like having Spotify, and have about 10,000 tracks synced for offline listening, but I&#x2019;d also like to get a simple mp3 player for phone-free music listening)</p>
</li>
<li>
<p><strong>Google Maps</strong> (this is also a bit edge case, as I like to be able to get places without it. To this end, I often will look up the suggested route before I head out and try to memorize it rather than using turn-by-turn navigation.)</p>
</li>
<li>
<p><strong>Looking things up</strong>. This is also on the wane in my case. I do still look things up occasionally, but try to avoid it on mobile and either write it down in my notebook and do it when I&#x2019;m on my computer, or if it&#x2019;s an article, send it to my pocket account to be read along with other articles on my eReader (which I sync about once a week)</p>
</li>
<li>
<p><strong>Taking pictures</strong></p>
</li>
</ul>
<h3 id="things-i%E2%80%99ve-decided-are-not-in-my-smartphone%E2%80%99s-job-description">Things I&#x2019;ve Decided Are <em>Not</em> in my Smartphone&#x2019;s Job Description</h3>
<ul>
<li>
<p><strong>Encouraging me to waste time and energy</strong> on things that I don&#x2019;t want to waste time and energy on</p>
</li>
<li>
<p><strong>Processing email</strong> (yes it&#x2019;s very handy having email setup on your phone, but it&#x2019;s much slower than typing on a good laptop keyboard, and can be very intrusive. Especially if you haven&#x2019;t (gasp) <em><strong>disabled notifications!</strong></em> One middleground I&#x2019;ve found workable is to have email setup on my phone, but make sure both notifications and autosync are turned off. This means I can access or send messages if neccessary. but don&#x2019;t get dragged into them by default.)</p>
</li>
<li>
<p><strong>Browsing social media</strong></p>
</li>
<li>
<p><strong>Playing games</strong></p>
</li>
<li>
<p><strong>Reading news</strong></p>
</li>
<li>
<p><strong>Watching YouTube videos</strong></p>
</li>
<li>
<p><strong>Using it while I&#x2019;m walking</strong>, at meals, or conversing with others. These are things I&#x2019;ve decided are dangerous, unhealthy, and disrespectful respectively. And not worth doing, even though technically they could save me a few minutes here or there. One exception is talking to people on the phone while walking. This is the good version of multi-tasking, in my opinion.</p>
</li>
</ul>
<h3 id="thought-experiment-digression-what-if-i-dropped-my-phone-overboard">Thought Experiment Digression: What if I Dropped My Phone Overboard</h3>
<p>I used to live on a sailboat. And when you live on a sailboat, things sometimes fall overboard. Even if you&#x2019;re careful. Pot lid, diving mask, deck bucket, pocket knife, shoes, sunglasses. There&#x2019;s a partial list of my boat-life casualties. Some of them can be rescued if you strip off your shirt and heroically dive in after them, but others can&#x2019;t. Pocket knife? Gone like the wind into the deep dark black. No recovery. Never coming back.</p>
<p>Phones are heavy, small, and sleek. If I were to drop mine overboard, it&#x2019;d be gone in less than a second. So far, this hasn&#x2019;t happened to me, but it <em>did</em> happen to my uncle (during his son&#x2019;s wedding, no less!). I like to use this as a thought experiment: what would happen if I lost my phone without recourse. Would I be fine? Would I be stranded somewhere without my airline or bus ticket? If I had locked my phone in the car, could I get into the concert? Would I be lost without Google Maps? This is a helpful reality check. I&#x2019;d like to make sure that I&#x2019;d be okay if something unexpected happened to my phone &#x2014; and almost even <em>expect</em> something unexpected will happen to my phone at some point, in a Stoic sort of a way, so I&#x2019;m reminded not to be too reliant on it, and don&#x2019;t get totally tripped up when and if it does happen.</p>
<h3 id="tactics">Tactics</h3>
<p>Some of these things might seem redundant. At least, they used to seem redundant to me, when I saw them as advice on the internet before I actually tried doing them. After trying them, however, they no longer seem redundant. They work.</p>
<ul>
<li>
<p><strong>Uninstall apps.</strong> Instagram, TikTok, Twitter. No ands, ifs, or buts. If necessary, I can always make posts or browse feeds on my computer. But the thing is, I don&#x2019;t. These apps are designed specifically for mobile, and specifically to be sticky like honey for our attention. They&#x2019;re so pretty, and so well designed, and so engaging. And <em>this</em> is what means we waste time using them despite their detrimental effects on our physical wellbeing, happiness, and mental health. Yes, I&#x2019;d like to read @julz_petersen&#x2019;s tweets the minute she posts them, but no, it&#x2019;s not worth the wasted hours of byproduct browsing and incessant notifications. Which brings us to the next most important thing&#x2026;</p>
</li>
<li>
<p><strong>Disable notifications.</strong> All notifications. App icon badges, push notifications, blinking light notifications. All must go. Incoming and missed call notifications can&#x2019;t seem to be turned off, so you&#x2019;ll still be able to see when someone calls you on your <strong>telephone</strong>. And the one exception I&#x2019;ve made to disabling all notifications is for my messaging apps: Signal, Telegram, and SMS. I could probably even disable notifications for two out of three of these, and just keep SMS; but a lot of my friends primarily use Signal for digital communication, and I want to notice when they try to reach me.</p>
</li>
<li>
<p><strong>Keep it in a Device Hangout.</strong> One of the most successful things I&#x2019;ve tried recently is simply to store my telephone in a specific place, rather than always carrying it around with me or leaving it laying around where I can easily get distracted by it. This location should be accessible when you need to use it for approved activities, but <strong>out of sight</strong>. I like to keep mine in the top drawer of my desk. I can take it other places if necessary, but that&#x2019;s where it lives and goes back to; easily available when I need it, but out of sight. If I&#x2019;m taking it other places in the house (often to listen to music or take pictures), I try and put it on Airplane Mode first.</p>
</li>
<li>
<p><strong>Dial back your phone plan.</strong> I&#x2019;ve spent a lot of time dealing with cellphone providers<!-- have detailed experience with managing phone plans dealing with cellphone providers. Including dozens of hours on the phone with them over the years.-->, and I&#x2019;ve learned <em>they will try to sell you a <strong>way</strong> bigger phone plan than you need</em>, pretty much every time &#x2014; with great conviction! They&#x2019;ll push you towards more data, faster speeds, newer phones, and more expensive plans, regardless of your needs. Do your research in advance and stand your ground. <strong>Get the minimum plan you can get by with, rather than the best one you can afford.</strong> This has compounding results. My current phone plan costs me exactly <strong>$8.96 a month</strong>. It gives me more than enough minutes, unlimited SMS, but only a microscopic 250mb of data. This is <em>annoying</em>, but fine. It means I can use Google Maps, send as many Signal messages as I&#x2019;d like, and make the occasional Google search. But it&#x2019;s not enough to watch <em>any</em> YouTube videos (which would garburate a month&#x2019;s data in minutes). But I&#x2019;ve decided that watching YouTube videos is not currently in my phone&#x2019;s job description. I do occasionally need to purchase extra data &#x2014; usually if I&#x2019;m on a trip somewhere &#x2014; but I&#x2019;ve calculated the price, and found that even though it would be convenient to get the next plan up which has more data (1GB per month rather than 250mb) and is cheaper per GB, it wouldn&#x2019;t actually be more affordable.</p>
</li>
<li>
<p><strong>Keep it on vibrate or even silent</strong> most of the time. This does make it harder for people to get through to me (see below), but it has many benefits, and makes my phone way less of an attention suck.</p>
</li>
</ul>
<p>Note: Some of these things will, necessarily, make it slightly harder for people to get through to you. My philosophy about this: try to be prompt, friendly, and helpful with my communications but also do them on my own terms. I try and respond to all messages and emails at least once a day, but I don&#x2019;t consider I need to be reachable by email or text at all hours of the day. I usually answer the phone when I notice it ringing, but not always.</p>
<figure class="thumb">
<img src="https://www.autodidacts.io/content/images/2023/02/20230215_110716.jpg" alt="Handsome Used Seiko Men&#x2019;s Wristwatch">
<figcaption>$25 well spent</figcaption>
</figure>
<ul>
<li>
<p><strong>Get a wrist watch.</strong> A lot of people use their phone to check the time. The problem with this is, what if there&#x2019;s a notification on the screen when you go to check the time? Or a new message icon. Immediately, whatever you were doing can get derailed. I picked up a second-hand analog wrist watch at the local jeweller a few weeks ago. It&#x2019;s delightful. Finally, I can keep track of time without looking at my phone. I do, however, double-check on occasion as it doesn&#x2019;t quite run &#x201C;like clockwork&#x201D;, and has lost a few minutes at unexpected intervals...</p>
</li>
<li>
<p><strong>Turn off autosync</strong>. This may seem counterintuitive, especially if you have a shiny new smartphone and lots of data to burn, but try it. The results are amazing. Email, weather, news, Spotify. Everything you can possibly get away with. The only things I still have autosync enabled for are pretty much SMS, messages, and phone calls (I&#x2019;m not sure there&#x2019;s an option to turn these ones off).</p>
</li>
<li>
<p><strong>Enable data saver</strong>. This will restrict your phone from fooling around in the background too much. It saves data, saves battery, and leads to less distractions.</p>
</li>
</ul>
<h3 id="results">Results</h3>
<p>These changes have made my smartphone about 90% less interesting, without reducing its functionality. They have meant that when I go to do something actually useful on my phone, I can do it and get out &#x2014; without getting trapped by apps greedily vying for my attention. It also means that when I&#x2019;m looking for entertainment, I look elsewhere. Usually to a book, walk, or in-person social interaction. Because at this point my phone is simply quite boring. It&#x2019;s back to the category of an efficient and useful tool. Another side benefit of these tactics is the reduction in cost. In <em>case</em> I didn&#x2019;t mention it already, my phone plan now costs me less than $8.96 CAD per month.<span class="end-mark"></span></p>
]]></content:encoded></item><item><title><![CDATA[Taxonomy is Hard]]></title><description><![CDATA[<!--kg-card-begin: markdown--><!--Text started 2022-09-27-->
<p>We all have data that we need to store, and then find. <!--It can be paper files, or it can be digital files; it can be a small quantity or a vast quantity; but no matter what,-->Regardless of type, data tends to build up. Eventually, we need some system for organizing it into sensible categories.</p>
<p>It turns out, this problem is harder than it seems.</p>
<p>In this article, I&apos;m going to be</p>]]></description><link>https://www.autodidacts.io/taxonomy-is-hard/</link><guid isPermaLink="false">6338c2ad8f4da0020c8673be</guid><category><![CDATA[Essay]]></category><category><![CDATA[Tech]]></category><category><![CDATA[Linux]]></category><category><![CDATA[Data]]></category><category><![CDATA[Organization]]></category><dc:creator><![CDATA[Curiositry]]></dc:creator><pubDate>Fri, 21 Oct 2022 20:22:05 GMT</pubDate><media:content url="https://www.autodidacts.io/content/images/2022/10/index2.jpeg" medium="image"/><content:encoded><![CDATA[<!--kg-card-begin: markdown--><!--Text started 2022-09-27-->
<img src="https://www.autodidacts.io/content/images/2022/10/index2.jpeg" alt="Taxonomy is Hard"><p>We all have data that we need to store, and then find. <!--It can be paper files, or it can be digital files; it can be a small quantity or a vast quantity; but no matter what,-->Regardless of type, data tends to build up. Eventually, we need some system for organizing it into sensible categories.</p>
<p>It turns out, this problem is harder than it seems.</p>
<p>In this article, I&apos;m going to be talking about organizing digital files. However, most of the problems (and some of the solutions) also apply to paper files, spreadsheet tables, databases &#x2014; and even physical objects.</p>
<p>Let&apos;s dig in.</p>
<h3 id="thenavecategorizationsystem">The Na&#xEF;ve Categorization System</h3>
<p>Starting out, most of us come up with a categorization system that makes intuitive sense, following the general guideline <em>a place for everything and everything in its place</em>.</p>
<p>Everyone&apos;s mind works differently. The structure of people&#x2019;s categorization systems tend to reflect the way their mind works. Some people have hundreds of files piled in visual heaps on the digital (or physical) desktop, and it works for them. But most of us have some kind of nested folder structure, and most people I know organize it by type or project.</p>
<p>Here&apos;s an example:</p>
<pre><code>writing/
    fiction/
        in progress/
        draft/
        submitted/
        published/
    non-fiction/
    poetry/
        song lyrics/
    blog/
        post title/
reading/
photos/
learning/
music/
    recordings/
    practice and learning materials/
    original music/
    traditional songs and covers/
</code></pre>
<p>Obviously this is incomplete, but you get the idea. Organize things by context, in a way that makes sense, without overthinking it.</p>
<p>But you&apos;re probably already overthinking it, and if so, you have likely noticed several serious taxonomic flaws with the above directory structure!</p>
<h3 id="theproblemsexamples">The Problems: Examples</h3>
<p><strong>Exhibit A:</strong> The  <code>song lyrics</code> directory is a subdirectory of <code>writing</code>. But song lyrics also belong in the <code>music</code> directory. <!--(At the time I put it in the writing directory, there were no recordings in the music directory; the music directory may not have even existed.)--></p>
<!--So here we have an example of where naive categorization breaks down.-->
<p><strong>Exhibit B:</strong> <em>Some</em> of the photos in the <code>photos</code> directory are used in the blog that&apos;s in the <code>writing</code> directory.</p>
<p>I can see five ways of addressing Exhibit B:</p>
<ol>
<li>
<p>Move the photos that are used on the blog in the relevant post folder in the <code>blog</code> directory &#x2014; and lose the convenience of having all photos in one place.</p>
</li>
<li>
<p>Make a <code>blog</code> subdirectory in <code>photos</code> with all the photos that are used on the blog &#x2014; and then never know exactly which photos go with which post.</p>
</li>
<li>
<p><em>Copy</em> the photos that are used by the blog into the relevant blog subdirectory, leaving the canonical original copy with the original filename in the <code>photos</code> directory &#x2014; and then have duplicates of those photos on the filesystem.</p>
</li>
<li>
<p>Get rid of the <code>photos</code> directory altogether, and put all photos in the folder of the project they belong to.</p>
</li>
<li>
<p>Give up and bury my head in the sand.</p>
</li>
</ol>
<p>All the options are kind of horrible. But the last one seems promising.</p>
<h3 id="thenavesolutionprojectbasedtaxonomies">The Na&#xEF;ve Solution: Project-Based Taxonomies</h3>
<p>I&#x2019;ve had friends recommend &#x2014; and I have started to move to &#x2014; a <em>project based</em> categorization system. It solves many of the problems. For example, we don&apos;t have the problem of where to put speculative poetry (<code>fiction</code>, or <code>poetry</code>?), or any of the other problems that the above brittle hierarchy exhibits. Instead, we have a folder for each project (song, story, essay, etc.) that <em>everything</em> related to that project goes in: text, photos, reference material, <em>everything</em>.</p>
<p>Most often, the context we are working in is single-project, so this works well. I sit down to work on project <em>X</em>, not to work on &#x201C;Lists and Spreadsheets&#x201D; (another directory; not kidding). I have everything I need to work on that project, right at my fingertips.</p>
<p>But we still have two problems: duplication of files that are used in multiple projects, and loss of convenient access to files by <em>type</em>.</p>
<h3 id="theproblemsinabstract">The Problems, in Abstract</h3>
<!--Categorization systems run into four problems as the quantity and complexity of data grows:-->
<ol>
<li>
<p><strong>The re-use problem.</strong> Data is used by multiple projects.</p>
<ul>
<li>Does a book review belong in <code>reading</code>, or <code>writing</code>?</li>
</ul>
</li>
<li>
<p><strong>The interface problem.</strong> Sometimes we want to view data by type, not by project.</p>
<ul>
<li>That <code>photos</code> folder, even though it causes all kinds of problems, is there for a reason: sometimes we want to look at all the photos.</li>
</ul>
</li>
<li>
<p><strong>The mixed-quality problem.</strong> For every project, there is data that is invaluable and crucial, as well as a bunch of cruft created along the way.  Project-based taxonomies tend to mix this all together in a way that is unpleasant.</p>
<ul>
<li>Sometimes we want to exclude low-quality or third-party data from back-ups, due to limited space (or time).</li>
</ul>
</li>
<li>
<p><strong>The project-boundary problem.</strong> The boundaries of a &#x201C;project&#x201D; are fuzzy.</p>
<ul>
<li>I have an algebra rules website.  I&apos;m working on an algebra rules poster. I abandoned an algebra rules course. Are these three projects, or one?</li>
</ul>
</li>
</ol>
<h3 id="symlinkstotherescue">Symlinks to the Rescue?</h3>
<p>We can solve two problems at once by using <a href="https://en.wikipedia.org/wiki/Symbolic_link?ref=autodidacts.io">symbolic links</a>. We can have our avocado toast and eat it too, by having type folders <em>and</em> project folders!</p>
<pre><code>photos
  repellent-author-portrait.jpg

mangy-blogpost
  symlink-to-repellent-author-portrait.jpg
navelgazing-short-story
  another-symlink-to-same-repellent-author-portrait.jpg
</code></pre>
<p>Now, we have projects that contain everything we need, and we have a convenient <em>type-based</em> interface for all photos. Plus, we only store one copy of the file on disk. <!--And, because symlinks, we can easily ignore the photos if we backup the writing folder (though we could have done that before just as easily).--></p>
<p>Have we solved the hard problems of taxonomies yet?</p>
<p>Uh... not quite.</p>
<!--This approach has two problems:-->
<ol>
<li>
<p><strong>Symlinks are brittle</strong>. As soon as you re-organize the <code>photos</code> folder, or rename something further up the tree, <strong>all the symlinks to that original .jpg break.</strong> It sucks. Spreadsheets update references when data is moved; why can&apos;t we have nice things like that on the filesystem?</p>
</li>
<li>
<p><strong>Having a bajillion symlinks to one file is gross.</strong> I don&apos;t know what it is exactly, but there&apos;s something ... <em>messy</em> about this approach. Symlinks aren&#x2019;t technically duplicate files, but they feel like they are.</p>
</li>
</ol>
<h3 id="tagstotherescue">Tags to the Rescue!</h3>
<!--The fundamental problem with file taxonomies is that -->
<p><strong>Directories are hierarchical, and life is not.</strong> The best solution I&#x2019;ve come up with is to give up on directory structures and symlinks, and use <em>tags</em> for all organization.</p>
<p>Now, we can tag that author photo with <code>project:storytitle</code>, <code>project:essaytitle</code>, and <code>type:photo</code>. This means:</p>
<ol>
<li>
<p>Zero file duplication (not even symlinks!)</p>
</li>
<li>
<p>Multiple convenient overlapping &#x201C;interfaces&#x201D; &#x2014; just view all files tagged <code>project:storytitle</code>, or <code>type:photo</code> (you could call it <code>project:photos</code>)</p>
</li>
<li>
<p>Freedom from the tyranny of rigid directory structures. Throw all your files in one giant potpourri folder &#x2014; or keep your existing broken directory structure as is. Tag-based taxonomies enhance your existing organization system, rather than replacing it. (You can use your existing directory structure to automatically apply project and type tags to your files.)</p>
</li>
</ol>
<h2 id="filetaggingintherealworld">File Tagging in the Real World</h2>
<p>We have a promising theoretical solution to <em>The Hard Problem of Taxonomy</em>. <!--(For digital files, at least; tags are hard to implement in meatspace.)--> <!--But marriage is not the honeymoon, and it turns out that--> But the software to implement it is still in diapers.</p>
<!--Alright. We’ve outlined the problems, and found a promising theoretical solution. I’m going to leave it there for this article, before it <!-gets crazy long->becomes too sprawling. -->
<!--**Part II** will look at the real-world options for file tagging. It will go into the gory technical details of the various ways file tags can be stored, operating system specific considerations, third party tagging software, and more. Drop your email below to get it in your inbox as soon as it's published.
**Next up: file tagging in the real world.**  Part II will go into the gory technical details of the various ways file tags can be stored, operating system specific considerations, third party tagging software, the limitations (gasp!) of tab-based file categorization, and more. Enter your email below to get it in your inbox as soon as it is published.<span class="end-mark"></span>


--> 
<h3 id="metadatastorage">Metadata Storage</h3>
<p>There are several places tags for a file can be stored. None of them are a panacea.</p>
<ol>
<li>
<p><strong><a href="https://en.wikipedia.org/wiki/Extended_file_attributes?ref=autodidacts.io">Extended file attributes</a></strong> (called &#x201C;alternate data streams&#x201D; on Windows, and &#x201C;named forks&#x201D; on Mac) are a filesystem-level way of storing metadata. They are &#x2018;attached&#x2019; to the file in a sense, and travel with it where extended attributes are supported, but they aren&apos;t embedded in the file itself.</p>
<ul>
<li><strong>Pros:</strong> works with all filetypes, all major operating systems support them in some form, they travel with the file when it is moved or renamed.</li>
<li><strong>Cons:</strong> not many tagging tools support them, poor operating system level integration on Linux and Windows, different operating systems&#x2019; implementations are largely non-interoperable, can only store ~4kb of metadata on some filesystems, poor portability.</li>
</ul>
</li>
<li>
<p><strong><a href="https://en.wikipedia.org/wiki/Sidecar_file?ref=autodidacts.io">Sidecar files</a>.</strong> These are typically plaintext or XML files that are <a href="https://en.wikipedia.org/wiki/Hidden_file_and_hidden_directory?ref=autodidacts.io">hidden</a> by default, most often stored 1:1 alongside the single file the metadata sidecar file refers to.</p>
<ul>
<li><strong>Pros:</strong> portable, simple, no size or characterset limits for metadata contained in them.</li>
<li><strong>Cons</strong>: multiple competing non-interoperable formats for tag sidecar files, creates clutter, hidden files can get left behind, can easily become unlinked if the file referred to is moved or renamed.</li>
</ul>
</li>
<li>
<p><strong>File-specific embedded metadata</strong> such as EXIF data, ID3 tags, Vorbis comments, <a href="https://en.wikipedia.org/wiki/IPTC_Information_Interchange_Model?ref=autodidacts.io">IPTC</a> keywords, et cetera.</p>
<ul>
<li><strong>Pros:</strong> travels with the file, generally well-supported by operating systems and other software, industry standard for media files.</li>
<li><strong>Cons:</strong> not all filetypes have a place for it, different file formats have different fields.</li>
</ul>
</li>
<li>
<p><strong>Symbolic links.</strong> I&apos;m not sure if it&#x2019;s ever done, but technically you could have tag directories, and then symlink files into them? It would probably be a putid approach. More often, files are tagged, and the file-tag relations are stored in a database, and symlinks are used as described below.</p>
<ul>
<li><strong>Pros:</strong> simple.</li>
<li><strong>Cons:</strong> very primitive approach, breaks when files are moved.</li>
</ul>
</li>
<li>
<p><strong>In the filename.</strong> This is such a bad idea I don&apos;t even want to talk about it. However, who hasn&#x2019;t tried it?</p>
<ul>
<li><strong>Pros:</strong> simple, portable, widely supported.</li>
<li><strong>Cons:</strong> breaks your file naming system, makes your filenames horrible, limits tag length, limits characters that can be used in tags, may break spectacularly when moved to an OS with tighter constraints on allowed filenames.</li>
</ul>
</li>
<li>
<p><strong>A database</strong>. Rarely used on its own, though it could be. Generally, a database is used along with a virtual filesystem, with symlinks to the actual tagged files. A database is also generally required for any type of metadata that doesn&apos;t automatically travel with the file (such as sidecar files). A database is <em>also</em> generally needed to <em>index</em> tags stored in embedded metadata, or extended attributes. Storing tags <em>only</em> in a database seems like a bad idea, but pretty much any functional file tagging system is going to need some kind of database (often SQLite).</p>
<ul>
<li><strong>Pros:</strong> you kinda need one.</li>
<li><strong>Cons:</strong> Fragile, not necessarily portable, needs some kind of filesystem watcher that keeps it updated.</li>
</ul>
</li>
</ol>
<h3 id="operatingsystemsupportforfiletagging">Operating System Support for File Tagging</h3>
<p>Here&#x2019;s the state of things:</p>
<ol>
<li>
<p><strong>MacOS has built in, filesystem-level tagging via extended file attributes</strong>. Tags are also stored in <code>.DS_Store</code> (a sidecar file that&apos;s already used for other things) as a fallback. These tags have first class-support in Finder and Spotlight.</p>
</li>
<li>
<p><strong>Windows supports tagging <em>some</em> types of files using IPTC keywords.</strong> The file manager has support for finding things via tags, but not for managing tags or tagging files in bulk. Windows also has its own version of extended attributes (&#x201C;alternate data streams&#x201D;), but nothing much uses them. They&#x2019;re used to to store the url of files downloaded from the internet, so that Windows can display a warning when the user tries to run them.</p>
</li>
<li>
<p><strong>Linux is still in the stone age when it comes to tagging.</strong> Common Linux filesystems (including ext4 &amp; ZFS) <em>support</em> extended attributes, but I&apos;m not aware of any Linux distro or file manager that includes tagging features based on them (or embedded metadata, for that matter).</p>
</li>
</ol>
<h3 id="thirdpartytaggingsoftwareforlinux">Third-Party Tagging Software for Linux</h3>
<p>Third-party tagging software for Linux includes command-line tools<br>
<a href="https://tmsu.org/?ref=autodidacts.io">TMSU</a>, <a href="https://amoffat.github.io/supertag/?ref=autodidacts.io">SuperTag</a>, and <a href="https://www.tagsistant.net/?ref=autodidacts.io">Tagsistant</a>, and a cross-platform GUI app called <a href="https://www.tagspaces.org/?ref=autodidacts.io">TagSpaces</a> (warning: embeds tags in filename by default!). TMSU seems to be the most robust and recently updated contender. However, most of these are built on a database + virtual filesystem + symlinks, and inherit their problems. Ick!</p>
<!--Why are they all built on symlinks? Because **MacOS is the only major operating system that supports filesystem-level tagging.** Windows supports tags for some filetypes. Welcome to the stone age! -->
<p>I don&#x2019;t know why none of the options use extended attributes. They could use the <a href="https://man7.org/linux/man-pages/man1/setfattr.1.html?ref=autodidacts.io"><code>setfattr</code></a> &amp; <a href="https://man7.org/linux/man-pages/man1/getfattr.1.html?ref=autodidacts.io"><code>getfattr</code></a> commands from the <code>attr</code> package. Likely it has to do with the fact that other apps (including core utilities like <code>cp</code>, without a specific flag) tend to destroy data stored in extended attributes, they aren&apos;t preserved by .zip compression (<code>tar</code> with <code>--xattrs</code> flag preserves them), and <a href="https://en.wikipedia.org/wiki/Comparison_of_file_systems?ref=autodidacts.io#Metadata">not all filesystems</a> (notably, FAT32) support them in the first place. For more on extended attributes (which seem like the most promising option) see <a href="https://www.lesbonscomptes.com/pages/extattrs.html?ref=autodidacts.io#_system_configuration">Extended attributes: the good, the not so good, the bad</a>.</p>
<p>It might be possible to keep symlinks from going stale with a file manager plugin that updates them when files are moved or renamed, or an indexer &#x2014; but <a href="https://lobste.rs/s/u5iyme/tools_for_tag_based_file_management?ref=autodidacts.io">I&#x2019;ve asked</a>, and haven&#x2019;t heard of any existing solution.</p>
<p>The more I look into TMSU, though, the more promising it looks. It doesn&#x2019;t keep symlinks updated automatically, but it has a repair function that will reattach tags to files that have been moved or modified &#x2014; as long they have not been both moved <em>and</em> modified! TMSU also offers <a href="https://github.com/oniony/TMSU/wiki/Tricks-and-Tips?ref=autodidacts.io#delete-a-file">commands</a> for moving/renaming/deleting files while keeping tags fresh, and someone is even working on a <a href="https://github.com/talklittle/tmsu-nautilus-rs?ref=autodidacts.io">Nautilus extension</a>. Best of all, based on issues <a href="https://github.com/oniony/TMSU/issues/10?ref=autodidacts.io">#10</a>, <a href="https://github.com/oniony/TMSU/issues/86?ref=autodidacts.io">#86</a>, and <a href="https://github.com/oniony/TMSU/issues/160?ref=autodidacts.io">#160</a>, the developer seems open to the idea of supporting extended attributes, and has added them to the v0.8.0 milestone. <!--However, that was some time ago, so we probably shouldn’t hold our breath.--></p>
<small>
<p>Further reading:</p>
<ul>
<li><a href="https://git-annex.branchable.com/tips/metadata_driven_views/?ref=autodidacts.io">Git Annex metadata-driven views</a></li>
<li><a href="https://www.lesbonscomptes.com/pages/tagfs.html?ref=autodidacts.io">Extended attributes and tag file systems</a></li>
<li><a href="https://github.com/rrottmann/tag2xattr?ref=autodidacts.io">tag2xattr &#x2014; convert tags embedded in filename to Mac extended attributes</a></li>
<li><a href="https://rofi.roger-ferrer.org/eiciel/?ref=autodidacts.io">Eiciel - Nautilus plugin to graphically edit ACL and extended attributes of files</a></li>
<li><a href="https://www.lesbonscomptes.com/recoll/pages/index-recoll.html?ref=autodidacts.io">Recoll - fulltext document search app that supports extended attributes</a></li>
<li><a href="https://github.com/Ravn-Tech/HyperTag?ref=autodidacts.io">HyperTag - newish CLI tagging tool with ML-powered semantic search (no longer actively updated)</a></li>
<li><a href="https://darkfeline.github.io/dantalian/?ref=autodidacts.io">Dantalian - file tagging with hard links (no longer actively updated)</a></li>
<li><a href="https://github.com/immutag/immutag?ref=autodidacts.io">Immutag - experimental tag-based, content-addressed distributed file manager (work in progress)</a></li>
<li><a href="https://epilys.github.io/bibliothecula/?ref=autodidacts.io">Bibliothecula- document organizer with tags and full-text-search (archived)</a></li>
</ul>
</small>
<h3 id="inconclusion">(In)conclusion</h3>
<p>While we wait for better software (or go build it!), we can go ahead and use something like TMSU to tag files &#x2014; and keep our existing (imperfect, but more reliable) directory structure as a fall-back.<!-- on systems that don't support our new-hotness taxonomy Thanks for reading! --></p>
<p>What are the limitations of tag-based organization? I have only just started moving my data to tag-based systems, so I can&apos;t say how well it works at scale<!-- yet-->. Tags have worked well in the few areas where I have been using them. From my reading, a common complaint is that tags get out of hand, and end up with duplicates and general inconsistency &#x2014; requiring labour-intensive maintenance.</p>
<p>When I mentioned the problem of inconsistent tags to my brother &#x2014; who has been using embedded-metadata tags for decades as a professional photographer &#x2014; he patted me on the back and said, &#x201C;Young man, you are at the start of a very long journey.&#x201D; <span class="end-mark"></span></p>
<aside class="full contents">
<small>
<strong>CONTENTS</strong>
<ul>
<li><a href="#">Taxonomy is Hard</a><ul>
<li><a href="#thenavecategorizationsystem">The Na&#xEF;ve Categorization System</a></li>
<li><a href="#theproblemsexamples">The Problems: Examples</a></li>
<li><a href="#thenavesolutionprojectbasedtaxonomies">The Na&#xEF;ve Solution: Project-Based Taxonomies</a></li>
<li><a href="#theproblemsinabstract">The Problems, in Abstract</a></li>
<li><a href="#symlinkstotherescue">Symlinks to the Rescue?</a></li>
<li><a href="#tagstotherescue">Tags to the Rescue!</a></li>
</ul>
</li>
<li><a href="#filetaggingintherealworld">File Tagging in the Real World</a><ul>
<li><a href="#metadatastorage">Metadata Storage</a></li>
<li><a href="#operatingsystemsupportforfiletagging">Operating System Support for File Tagging</a></li>
<li><a href="#thirdpartytaggingsoftwareforlinux">Third-Party Tagging Software for Linux</a></li>
<li><a href="#inconclusion">(In)conclusion</a></li>
</ul>
</li>
</ul>
</small>
</aside>
<style>
aside.contents {
  display:none;
  padding: 0 1.5rem;
}
@media screen and (min-width: 1366px){
  aside.contents {
    display: inline-block;
    position: fixed;
    left: 0;
    padding-left:2rem;
    bottom: 0.5rem;
    margin-bottom: 0;
    opacity: 0.25;
    width: calc((100% - 850px) / 2);
    border: 0;
    background: rgba(255,255,255,0);
    overflow: auto;
    transition: 0.5s;
    -moz-transition: 0.5s;
    -webkit-transition: 0.5s;
  }
  aside.contents:hover {
    opacity: 1;
    transition: 0.5s;
    -moz-transition: 0.5s;
    -webkit-transition: 0.5s;
  }
  aside.contents li,
  aside.contents ul {
    margin: 0.125rem;
  }

aside.contents ul ul {
 margin-left: 1rem !important;
}
ol p:last-of-type {
  margin-bottom: 0.5rem;
}

ol ul {
  margin-left: 1rem;
}
</style>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[What Game Are You Playing?]]></title><description><![CDATA[<p>Brad, a top footballer, sits in the bleachers watching the game. He cannot believe his eyes. He has come to watch his friend Edgar play, and Edgar is the worst football player he has ever seen. He stands around, chewing gum. When he runs at all, he runs like a</p>]]></description><link>https://www.autodidacts.io/what-game-are-you-playing/</link><guid isPermaLink="false">6338c2ad8f4da0020c8673df</guid><category><![CDATA[Essay]]></category><category><![CDATA[Philosophy]]></category><category><![CDATA[Hot Air]]></category><category><![CDATA[Self-help]]></category><dc:creator><![CDATA[Curiositry]]></dc:creator><pubDate>Wed, 04 May 2022 17:13:18 GMT</pubDate><content:encoded><![CDATA[<p>Brad, a top footballer, sits in the bleachers watching the game. He cannot believe his eyes. He has come to watch his friend Edgar play, and Edgar is the worst football player he has ever seen. He stands around, chewing gum. When he runs at all, he runs like a chicken. He ignores the rules of the game, but somehow gets away with it. If Edgar has a strategy at all, it obviously sucks. He hasn&#x2019;t made a single touchdown. <em>How could he be so STUPID!!!</em> Brad thinks, and gets up and leaves. He does not want to be associated with a player so bad that it&#x2019;s almost like he&#x2019;s not even trying to win. After Brad leaves the stadium, Edgar hits a home run, winning the game.</p>
<p>Have you been Brad?</p>
<p>I know I have. When I was a boy, I was a real nerd. I immersed myself in chemistry, astronomy, electrical engineering, programming, and other STEM fields. And it happened that many of the people around me when I was growing up did not share my interest in science. I was quick to think that they were stupid. But what was really stupid was judging people by their performance <em>at a game they weren&#x2019;t even playing</em>. It can seem like the game I&#x2019;m playing is The Game. It&#x2019;s not. There are many games. There are many games <em>more difficult</em> than the Science game, or the Logic game. More relevant, too. There&#x2019;s the <em>being kind</em> game. There&#x2019;s the <em>making money</em> game. There&#x2019;s the <em>making art</em> game. There&#x2019;s the <em>self-knowledge and self-control</em> games. These were just a few of the games that other people were playing, that I hadn&#x2019;t even learned the rules of.</p>
<p>For the past five years, I have been playing catch up in the games that the people around me were playing while I was playing the science game. The people I grew up around, especially the women who were least impressed with the science game, turn out not to be stupid at all, and to be far ahead of me in more enduring games, such as the <em>understanding others</em> game, the <em>fathoming reality</em> game, and the <em>being a good person</em> game. I&#x2019;m the skinny little runt who&#x2019;s just glad to get to play.</p>
<p>My sixteen-year-old nephew already knows more mathematics than I ever knew. And that&#x2019;s great. I like watching that game from the bleachers, and seeing people play it well. And I don&#x2019;t have to feel left behind, because it&#x2019;s not the game I&#x2019;m playing right now. <span class="end-mark"></span></p>
]]></content:encoded></item><item><title><![CDATA[Who will own Mars?]]></title><description><![CDATA[<p>Elon Musk is planning to colonize Mars. If he succeeds, it could be one of the most important changes in human history. And, based on the surprising success of his previous ventures &#x2014; including Zip2, PayPal, Tesla Motors, and SolarCity &#x2014; it might be foolish to dismiss Musk&#x2019;s</p>]]></description><link>https://www.autodidacts.io/who-will-own-mars/</link><guid isPermaLink="false">6338c2ad8f4da0020c8673b4</guid><category><![CDATA[Essay]]></category><category><![CDATA[Philosophy]]></category><category><![CDATA[Society]]></category><category><![CDATA[Hot Air]]></category><category><![CDATA[Mars]]></category><dc:creator><![CDATA[Curiositry]]></dc:creator><pubDate>Wed, 08 Mar 2017 09:08:00 GMT</pubDate><media:content url="https://cdn.autodidacts.io/img/autodidacts/mars-governance/mars.png" medium="image"/><content:encoded><![CDATA[<img src="https://cdn.autodidacts.io/img/autodidacts/mars-governance/mars.png" alt="Who will own Mars?"><p>Elon Musk is planning to colonize Mars. If he succeeds, it could be one of the most important changes in human history. And, based on the surprising success of his previous ventures &#x2014; including Zip2, PayPal, Tesla Motors, and SolarCity &#x2014; it might be foolish to dismiss Musk&#x2019;s plan.</p>
<p><img src="https://cdn.autodidacts.io/img/autodidacts/mars-governance/spacex-iac-presentation-slide-approaching-mars.png" alt="Who will own Mars?" loading="lazy"></p>
<p>There has been a lot of hype about Mars, beginning with the Schiaparelli&#x2019;s illusory observation of Mars &#x201C;canali&#x201D; (mistranslated from Italian to the English as &#x201C;canals&#x201D;<sup class="footnote-ref"><a href="#fn1" id="fnref1">[1]</a></sup>) in 1877 and culminating in the media hyperventilation over Musk announcing, at the 67th International Astronautical Congress in Guadalajara, Mexico, his plan to send cargo to Mars in three years and colonists in ten.<sup class="footnote-ref"><a href="#fn2" id="fnref2">[2]</a></sup></p>
<figure class="thumb">
<img src="https://cdn.autodidacts.io/img/autodidacts/mars-governance/schiaparellis-map-of-the-surface-of-mars.png" alt="Who will own Mars?">
<figcaption>
Schiaparelli&#x2019;s map of Mars
</figcaption>
</figure>
<p>The prospect of my generation reaching Mars has fired up the popular imagination about interplanetary spaceflight in a way not seen since the Sputnik and Apollo missions six decades ago.</p>
<p>Everyone&#x2019;s excited about rockets to Mars, and each SpaceX launch brings that dream closer to reality<sup class="footnote-ref"><a href="#fn3" id="fnref3">[3]</a></sup>. Musk and others are putting a lot of money and brainpower on the technical problem of getting people to Mars. Less sensational topics, such as <em>surviving</em> on Mars, receive less attention &#x2014; but plenty of money and serious thought, because there&#x2019;s no way to get around them.<sup class="footnote-ref"><a href="#fn4" id="fnref4">[4]</a></sup></p>
<p>But there&#x2019;s another important question which isn&#x2019;t getting much attention:</p>
<p><strong>Who will own Mars, and how will it be governed?</strong></p>
<p>Does Mars belong to the people who get there first? To the highest bidder? To all the people of Earth?</p>
<p>Does Mars belong to Earth, or does Mars belong to Mars? Does it belong to the Sun?  To the Martian microbiome, if there is one? (What are the indigenous rights of microbes, I wonder?)</p>
<p>Who will be in charge of Mars once the colonists arrive? If Mars turns out to have valuable resources, who gets them? And if a Mars colony is to govern itself, what kind of government would it have?</p>
<p>The Mars colonization project is driven by the ultra rich. And those who want to stake their claim on Mars may rather the rest of us didn&#x2019;t think too much about the little problem of who owns the planet next door, and why.</p>
<figure class="thumb">
<img src="https://cdn.autodidacts.io/img/autodidacts/mars-governance/spacex-interplanetary-transport-system-architecture.png" alt="Who will own Mars?">
<figcaption>
Architecture of the SpaceX Interplanetary Transport System.
</figcaption>
</figure>
<p>Compared to most tech entrepreneurs, or most billionaires, Elon Musk seems to be doing a lot of good &#x2014; he&#x2019;s been pioneering (and funding) electric transportation, clean energy, and more prudent approaches to AI research. Now, he wants to backup the human race. But others in the same club may not be so altruistic &#x2014; and may put business interests, such as mining Martian resources, ahead of good governance.</p>
<p>When it comes to governance of a Martian colony, the first question is this: will Mars be controlled from Earth, or from Mars? Initially, running Mars from Mars will probably be impractical. There will be too few people, they&#x2019;ll still be dependent on Earth, and they&#x2019;ll have their hands full surviving.</p>
<p>Earth-based control of the Martian colony could run the gamut from first-come-first-served resource extraction, to some kind of bureaucratic transitional governing body dispensing resource and settlement rights, to a more carefully regulated &#x201C;commons.&#x201D;</p>
<p>But, immediately upon the establishment of a stable colony, the interests of the Martian settlers will begin to diverge from those of their terrestrial bosses, just as they have in Earth&#x2019;s colonial past. To <em>not</em> put in a plan for transition to self-government would be to risk disgruntlement, and, eventually, revolt.</p>
<p>Yet, a self-governing planetary neighbour presents its own challenges. There are plenty of scenarios that could lead to a &#x201C;rogue colony&#x201D; of one kind or another that would be, if not a military threat in the short term, at least an annoying and potentially inconvenient political situation.</p>
<p>And then there&#x2019;s the form of governance, regardless of where it&#x2019;s controlled from. We have all the options that we&#x2019;ve tried here on Earth (such as monarchy, theocracy, dictatorship, plutocracy, and representative democracy), few of which we&#x2019;d want to repeat, as well as possibilities we haven&#x2019;t yet imagined.</p>
<p>Let&#x2019;s plot a few of the possibilities to get a better look at them:</p>
<p><img src="https://cdn.autodidacts.io/img/autodidacts/mars-governance/scatter-plot-of-martian-governance-options.png" alt="Who will own Mars?" loading="lazy"></p>
<p>In the lower left we have Mars as an international commons &#x2014; neutral territory shared by all Earth&#x2019;s nation-states. Antarctica is the closest analogue I&#x2019;m aware of here on earth, and it&#x2019;s not that close. (When we discovered it, we didn&#x2019;t know it was loaded with natural resources, and I suspect this fact, along with the fact that it&#x2019;s an unwelcoming hunk of ice, made it possible to put such peaceful and ecologically-responsible treaties in place. The same can&#x2019;t be said for Mars.)</p>
<p>Musk has mentioned some sort of internet-facilitated <a href="https://en.wikipedia.org/wiki/Direct_democracy?ref=autodidacts.io">direct democracy</a><sup class="footnote-ref"><a href="#fn5" id="fnref5">[5]</a></sup>. A direct democracy could be a way to mitigate some of the weaknesses of human nature without altering human nature itself. Whoever goes to Mars will bring themselves with: their entire cultural inheritance (beliefs, prejudices, and so forth) will go along for the ride, and so will human nature. That&#x2019;s the problem: wherever we go, there we are. But as far as politics goes &#x2014; and it only goes so far &#x2014; direct democracy may be as good an option as any.</p>
<p>We have a long history of bad governance, war, corruption, injustice, and inequality. We&#x2019;ve run through the laundry list of possible political problems more than once. If we don&#x2019;t re-think our approach to governance <em>before</em> we colonize Mars, we risk repeating the most sordid parts of our history here on Earth, and Mars inheriting our intellectual, moral, and political diseases.</p>
<figure class="thumb">
<img src="https://cdn.autodidacts.io/img/autodidacts/mars-governance/1906-plate-for-hg-wells-war-of-the-worlds.png" alt="Who will own Mars?">
<figcaption>
A 1906 plate from  H.G. Wells&#x2019;s <em> War of the Worlds.</em>
</figcaption>
</figure>
<p>Musk proposes Mars as a &#x201C;backup&#x201D; for humanity, but, despite the apparent prudence of the idea, a second planet full of humans also doubles the chance of planetary-scale catastrophe. These concerns may seem too far-fetched and too far-future to be worth worrying about, but I think they&#x2019;re worth considering because the choices being made now will have major ramifications for a Martian future. We&#x2019;re having plenty of trouble here on Earth. Inter<em>planetary</em> conflict &#x2014; human or microbial &#x2014; is the last thing we need<sup class="footnote-ref"><a href="#fn6" id="fnref6">[6]</a></sup>.</p>
<!-- | Situation:           | Options for war:            | Options for interplanetary war:  |
|----------------------|-----------------------------|--------------------------------- |
| Humans stay on Earth | way too many                | ~0                               |
| Humans colonize Mars | way too many × 2            | ~1                               | -->
<table class="sans">
<thead>
<tr><th>
Situation:</th>
<th>
Options for conflict:</th>
<th>
Options for interplanetary conflict:</th>
</tr></thead>
<tbody>
<tr>
<td>Humans stay on Earth</td>
<td>way too many</td>
<td>~0</td>
</tr>
<tr>
<td>Humans colonize Mars</td>
<td>way too many &#xD7; 2</td>
<td>~1</td>
</tr>
</tbody>
</table>
<p>This is the fear-based, reactionary reason for figuring out Martian governance. There&#x2019;s another profoundly <em>hopeful</em> reason: Mars could be an opportunity to get governance right. For once, we can do what it takes without bloodshed or revolution, because nothing needs to be overturned.</p>
<p>Maybe we need a new political system. Maybe the solution is a lie detector, an empathy test. Maybe it&#x2019;s mandatory meditation. Maybe the solution is a new self-improvement webinar that would keep the less altruistic aspects of human nature in check. Maybe we need to build A.E Van Vogt&#x2019;s Games Machine.</p>
<p>When the question first occurred to me, I figured I&#x2019;d be able to come up with a solution. The more I thought, the more thorny the issue became: it is now clear, to my great disappointment, that I don&#x2019;t know how to govern Mars. But I think it&#x2019;s our collective responsibility to try to ensure, in whatever way we can, that Mars is governed well. We&#x2019;re members of the human race, and the human race is trying to colonize Mars: a lot is at stake in how this project works out. Which is why the rest of us should do what we can, even if the closest we&#x2019;ll get to governing Mars is thinking about it, talking about it &#x2014; or writing an essay and casting it adrift in some internet backwater.</p>
<p>When it comes down to it, I think many of the problems we&#x2019;ve had on Earth are due to human nature. But our societies reward some aspects of human nature, and ignore others. Maybe we can change ourselves from the outside in. Maybe we need to change the world from the inside out. Maybe we need to do both. <span class="end-mark"></span></p>
<figure>
<img src="https://cdn.autodidacts.io/img/autodidacts/mars-governance/mars.png" alt="Who will own Mars?">
<figcaption class="center-text">Image of Mars from the Viking Orbiter (1998). Photo credit: <a href="http://photojournal.jpl.nasa.gov/catalog/?IDNumber=pia00407&amp;ref=autodidacts.io">NASA/JPL/USGS</a></figcaption>
</figure>
<hr>
<p><em>Thanks for reading. If you have a question, an essay, or a grammatical axe to grind, leave a comment below. If you can say it in under 140 characters, you can find me <a href="http://twitter.com/curiositry?ref=autodidacts.io">on twitter</a>. <a href="http://autodidacts.io/contact?ref=autodidacts.io">Send me an email</a> if you want to talk without (too much of) the world watching.</em></p>
<!-- ---------- -->
<!-- ### Footnotes -->
<!--
[^4]: <p>One good thing about hype is that it increases the mind-share of the topic being hyped, which can result in an increase of sober discussion. Thanks in part to this process, some hurdles between here and a Mars colony have been fairly well addressed. <span hidden>A lot of smart people are working on how to get people to Mars.</span> When you can solve a complex problem step by step, without major scientific epiphanies, it will be solved as soon as someone throws enough brainpower and money at it. And that’s what Musk is doing to the problem of rocket-powered spaceflight. Rocket-powered spaceflight is possible without any new breakthroughs. We have the technology. It works. It just needs to be improved, and made cheaper.<div></div></p> 
-->
<style>
table {
  font-family: 'Roboto', Helvetica, 'Open Sans', sans-serif;
  font-size:1rem;
}
aside.bigfoot-footnote {
  width: auto;
  float: none;
  background-color: #f5eede;
}
.bigfoot-footnote__button {
  background-color: #E87E04 !important;
  background-image: none !important;
  border-radius: 0.15rem !important;
  width: auto !important;
}
.bigfoot-footnote__button:hover {
  border: 0 !important;
  background-color: #F9690E !important;
}
.bigfoot-footnote__button::after {
  color: white !important;
 }
.bigfoot-footnote__button,
.bigfoot-footnote__tooltip,
.bigfoot-footnote__container {
  margin-top:0;
}
.bigfoot-footnote {
  font-size: 0.9rem;
  padding: 0;
}

figcaption {
  text-align: center;
}
</style>
<script src="//code.jquery.com/jquery-1.12.0.min.js"></script>
<link rel="stylesheet" href="//cdn.autodidacts.io/css/vendor/bigfoot/bigfoot-number.css">
<script src="//cdn.autodidacts.io/js/vendor/bigfoot/bigfoot.min.js"></script>
<script>

var bigfoot = $.bigfoot(
  {
    actionOriginalFN: "hide",
    preventPageScroll: false,
  }
 );

</script>
<hr class="footnotes-sep">
<section class="footnotes">
<ol class="footnotes-list">
<li id="fn1" class="footnote-item"><p>A more accurate translation of Schiaparelli&#x2019;s &#x201C;canali&#x201D; would be &#x201C;channels&#x201D;, or maybe &#x201C;grooves&#x201D;. <a href="http://www.popularmechanics.com/space/moon-mars/a17529/a-short-history-of-martian-canals-and-mars-fever/?ref=autodidacts.io">According to Popular Mechanics</a>: </p><blockquote> Schiaparelli&apos;s canals went viral because of a mistranslation. Instead of its literal meaning of marks or grooves, &#x201C;canali&#x201D; in English became &#x201C;canals,&#x201D; suggestive of water, life, and intelligent intervention in the Martian landscape. </blockquote> My own investigation involved the internet: Google translate (English &#x2192; Italian) <a href="https://translate.google.com/?ref=autodidacts.io#en/it/canals">translates &#x201C;canals&#x201D; to &#x201C;canali&#x201D;</a>. But switch the direction (Italian &#x2192; English) and Google <a href="https://translate.google.com/?ref=autodidacts.io#it/en/canali">translates  &#x201C;canali&#x201D; to &#x201C;channels&#x201D;</a> &#x2014; as do  Bing &amp; Yandex.<div></div> <a href="#fnref1" class="footnote-backref">&#x21A9;&#xFE0E;</a><p></p>
</li>
<li id="fn2" class="footnote-item"><p>You can watch Musk&#x2019;s full 2016 IAC presentation at <a href="http://www.spacex.com/mars?ref=autodidacts.io">spacex.com/mars</a>. <a href="#fnref2" class="footnote-backref">&#x21A9;&#xFE0E;</a></p>
</li>
<li id="fn3" class="footnote-item"><p>With the exception of the Falcon 9 that blew up on the launchpad. <a href="https://www.washingtonpost.com/business/economy/implication-of-sabotage-adds-intrigue-to-spacex-investigation/2016/09/30/5bb60514-874c-11e6-a3ef-f35afb41797f_story.html?ref=autodidacts.io">Initial talk of sabotage</a> has been dismissed, and the incident has been traced to <a href="http://www.spacex.com/news/2016/09/01/anomaly-updates?ref=autodidacts.io">a breach in the cryogenic helium system of the second stage liquid oxygen tank</a>. That said: <em>had</em> it been sabotage, there could be other delays to the Mars colonization project&#x2026; <a href="#fnref3" class="footnote-backref">&#x21A9;&#xFE0E;</a></p>
</li>
<li id="fn4" class="footnote-item"><p>There is still a lot of work to be done on this project, or course. Most of the experiments I&#x2019;m aware of, including <a href="https://en.wikipedia.org/wiki/Biosphere_2?ref=autodidacts.io">Biosphere 2</a> and <a href="https://en.wikipedia.org/wiki/BIOS-3?ref=autodidacts.io">BIOS-3</a>, while not abject failures, have fallen short of the mark. There have been many partial simulations of the Martian environment, some of them fairly long, but long-term closed-ecosystem experiments have (understandably) been few and far between.  However, I may have missed other more promising efforts. <a href="#fnref4" class="footnote-backref">&#x21A9;&#xFE0E;</a></p>
</li>
<li id="fn5" class="footnote-item"><p>More on that in The Verge&#x2019;s article, <em><a href="http://www.theverge.com/2016/6/2/11837590/elon-musk-mars-government-direct-democracy-law-code-conference?ref=autodidacts.io">Elon Musk thinks the best government for Mars is a direct democracy</a></em> (He has talked about his ideas in other interviews, as well.) <a href="#fnref5" class="footnote-backref">&#x21A9;&#xFE0E;</a></p>
</li>
<li id="fn6" class="footnote-item"><p>I&#x2019;m not trying to fear-monger: interplanetary war is not likely in the short or medium term. But that doesn&#x2019;t mean we can safely ignore it.</p> <p>The stage on which interplanetary relations will be played out in the future is being assembled as I write this. The structure of the initial private-public partnership will have a huge effect on future relations between planets. And what are the possible consequences of heavy resource extraction in the early colonial days? Would it increase the probability of unpleasant interplanetary relations in the future &#x2014; whether in the form of an independence revolt on Mars, or a full on war (and the first seems more likely)?</p> <p>I&#x2019;m no expert, but given that almost every nation state on earth has fought with its neighbours at some point in its history, with devastating consequences for both, is it wise to assume the rules of power and politics will have magically changed by the time a Martian colony reaches independence?  I don&#x2019;t think so.</p><div></div><p></p>
 <a href="#fnref6" class="footnote-backref">&#x21A9;&#xFE0E;</a></li>
</ol>
</section>
]]></content:encoded></item><item><title><![CDATA[I cured my mysterious, debilitating seasonal rash with an ultra-low-carb Ketogenic diet and sardines (n=1) 🔒]]></title><description><![CDATA[<p>Because it contains details of my medical history, this is a members-only post. If you have a seasonal rash and the cost of membership is a financial hardship, please <a href="https://autodidacts.io/contact/?ref=autodidacts.io">contact me</a> so I can send you the article for free &#x2665;</p>
<hr>
<div class="center-text">~2,560 words</div>
<hr>]]></description><link>https://www.autodidacts.io/cure-seasonal-heat-rash-eczema-psoriasis-dermatitis-with-low-carb-ketogenic-diet/</link><guid isPermaLink="false">65276de4eaa08201374cc4cb</guid><category><![CDATA[Essay]]></category><category><![CDATA[Health]]></category><category><![CDATA[Diet]]></category><dc:creator><![CDATA[Curiositry]]></dc:creator><pubDate>Thu, 08 Feb 2024 06:48:28 GMT</pubDate><content:encoded><![CDATA[<p>Because it contains details of my medical history, this is a members-only post. If you have a seasonal rash and the cost of membership is a financial hardship, please <a href="https://autodidacts.io/contact/?ref=autodidacts.io">contact me</a> so I can send you the article for free &#x2665;</p>
<hr>
<div class="center-text">~2,560 words</div>
<hr>
]]></content:encoded></item><item><title><![CDATA[eBay Still (Secretly) Supports Dorking]]></title><description><![CDATA[<img class="thumb" src="https://www.autodidacts.io/content/images/2024/01/Ebay-advanced-search-dorking-with-logical-AND-OR-NOT-operators.png" alt="Example of how to narrow eBay search with AND/OR/NOT logical operators">
<p>While shopping for a new Linux laptop, I attempted to use Google-style advanced search operators on eBay, without luck.</p>
<p>All references to such things seem to have been removed from their docs. But it turns out it&#x2019;s still possible.</p>
<p>Here&#x2019;s the syntax I&apos;ve sleuthed</p>]]></description><link>https://www.autodidacts.io/ebay-still-supports-dorking-with-and-or-not-logical-operators-boolean-expressions/</link><guid isPermaLink="false">65ac3074e77f850139e8ac46</guid><category><![CDATA[Tech]]></category><category><![CDATA[Productivity]]></category><category><![CDATA[Tutorial]]></category><dc:creator><![CDATA[Curiositry]]></dc:creator><pubDate>Sun, 21 Jan 2024 01:52:22 GMT</pubDate><media:content url="https://www.autodidacts.io/content/images/2024/01/Ebay-advanced-search-dorking-with-logical-AND-OR-NOT-operators.png" medium="image"/><content:encoded><![CDATA[<img class="thumb" src="https://www.autodidacts.io/content/images/2024/01/Ebay-advanced-search-dorking-with-logical-AND-OR-NOT-operators.png" alt="eBay Still (Secretly) Supports Dorking">
<img src="https://www.autodidacts.io/content/images/2024/01/Ebay-advanced-search-dorking-with-logical-AND-OR-NOT-operators.png" alt="eBay Still (Secretly) Supports Dorking"><p>While shopping for a new Linux laptop, I attempted to use Google-style advanced search operators on eBay, without luck.</p>
<p>All references to such things seem to have been removed from their docs. But it turns out it&#x2019;s still possible.</p>
<p>Here&#x2019;s the syntax I&apos;ve sleuthed out:</p>
<ul>
<li>AND operator: <code>thing1 +thing2</code></li>
<li>OR operator: <code>(thing1,thing2)</code></li>
<li>NOT operator: <code>thing1 -thing2</code></li>
</ul>
<p>Notice that, unlike Google, there is no whitespace between the AND/NOT operator and the following term.</p>
<p>Here&#x2019;s an example which includes the syntax for AND, OR, NOT operators:</p>
<p><a href="https://www.ebay.com/sch/i.html?_from=R40&amp;_nkw=ryzen+%2B%287%2C9%29+%2B%28t14%2Cz13%2Cx13%2Cz16%2Cg14%2Cg16%2C%22zephyrus%22%2C%22framework+laptop%22%2Cg15%2C%22tuxedo%22%2C%22starlabs%22%29+-3750H&amp;_sacat=0&amp;_sop=1&amp;ref=autodidacts.io">ryzen +(7,9) +(t14,z13,x13,z16,g14,g16,&quot;zephyrus&quot;,&quot;framework laptop&quot;,g15,&quot;tuxedo&quot;,&quot;starlabs&quot;) -3750H</a></p>
<p>So far, I haven&#x2019;t managed to get grouping to work <em>within</em> an OR statement (ie, &#x201C;([ryzen +(7,9)],&quot;framework&quot;) laptop&#x201D; or &#x201C;((ryzen +(7,9)),&quot;framework&quot;) laptop&#x201D;).</p>
<p>While we&#x2019;re on the topic, Craigslist also supports this, with a more intuitive syntax:</p>
<p><a href="https://sfbay.craigslist.org/search/sss?query=%28t14+%7C+z13+%7C+x13+%7C+z16+%7C+g14+%7C+g16+%7C+%22zephyrus%22+%7C+%22framework+laptop%22+%7C+g15+%7C+%22tuxedo%22+%7C+%22starlabs%22%29+%28%22ryzen+7%22+%7C+%22ryzen+9%22%29&amp;ref=autodidacts.io#search=1~gallery~0~0">(t14 | z13 | x13 | z16 | g14 | g16 | &quot;zephyrus&quot; | &quot;framework laptop&quot; | g15 | &quot;tuxedo&quot; | &quot;starlabs&quot;) (&quot;ryzen 7&quot; | &quot;ryzen 9&quot;)</a></p>
<p><span class="end-mark"></span></p>
]]></content:encoded></item><item><title><![CDATA[How to (Rapidly) Switch Ghost Themes from the Command Line]]></title><description><![CDATA[<!--# How to Change Ghost Theme from the Command Line (Instantly)
How to (Rapidly) Switch Ghost Themes from the Command Line
How to Change Ghost Themes from Terminal (CLI) on Linux
how-to-switch-ghost-themes-from-the-the-command-line
2024-01-17-->
<img class="thumb" alt="Screenshot of FZF-powered Ghost-theme-selector" src="https://www.autodidacts.io/content/images/2024/01/Screenshot-from-2024-01-17-17-43-47.png">
<p>I do a lot of Ghost theme development, and have to swap which theme is running on my local install all the time. The Ghost admin interface takes a lot of clicking to get to the page where you can change themes. And I don&#x2019;t like clicking.</p>
<p>Neither</p>]]></description><link>https://www.autodidacts.io/how-to-switch-ghost-themes-from-the-command-line/</link><guid isPermaLink="false">65a85e6ce77f850139e8ab7e</guid><category><![CDATA[Tech]]></category><category><![CDATA[Tutorial]]></category><category><![CDATA[Ghost]]></category><category><![CDATA[Linux]]></category><dc:creator><![CDATA[Curiositry]]></dc:creator><pubDate>Thu, 18 Jan 2024 06:08:25 GMT</pubDate><media:content url="https://www.autodidacts.io/content/images/2024/01/Screenshot-from-2024-01-17-17-43-47.png" medium="image"/><content:encoded><![CDATA[<!--# How to Change Ghost Theme from the Command Line (Instantly)
How to (Rapidly) Switch Ghost Themes from the Command Line
How to Change Ghost Themes from Terminal (CLI) on Linux
how-to-switch-ghost-themes-from-the-the-command-line
2024-01-17-->
<img class="thumb" alt="How to (Rapidly) Switch Ghost Themes from the Command Line" src="https://www.autodidacts.io/content/images/2024/01/Screenshot-from-2024-01-17-17-43-47.png">
<img src="https://www.autodidacts.io/content/images/2024/01/Screenshot-from-2024-01-17-17-43-47.png" alt="How to (Rapidly) Switch Ghost Themes from the Command Line"><p>I do a lot of Ghost theme development, and have to swap which theme is running on my local install all the time. The Ghost admin interface takes a lot of clicking to get to the page where you can change themes. And I don&#x2019;t like clicking.</p>
<p>Neither Google nor GPT could tell me how to change the Ghost theme from the command line, using the Ghost Admin API or  Ghost CLI.</p>
<p>Fortunately, standard Unix tools can get the job done.</p>
<p>In preparation:</p>
<ol>
<li>Make sure you don&#x2019;t have a theme installed called &#x201C;current&#x201D;.</li>
<li>Create a symbolic link called &#x201C;current&#x201D; in your Ghost <code>/path/to/ghost/content/themes</code> directory, pointing at a working theme. (For example, from the themes directory: <code>ln -s casper current</code>.)</li>
<li>Navigate to the theme settings page of Ghost admin (<a href="http://localhost:2368/ghost/?ref=autodidacts.io#/settings/design/change-theme">http://localhost:2368/ghost/#/settings/design/change-theme</a>), click installed, and activate the theme that says &#x201C;(current)&#x201D; after the title, if it isn&#x2019;t already active.</li>
<li>Make sure the needed Unix utilities are installed: <code>ln</code>, <code>find</code>, <code>basename</code>, <code>xargs</code> and <code>fzf</code>. Likely, FZF is the only one you&apos;ll need to install (<code>sudo apt install fzf</code>). Note: while this symlink-updating approach should work on any OS, and many of the commands probably work pretty much the same way on MacOS (or maybe even Windows Subsystem for Linux &#x1F92E;), I have only tested them on Ubuntu Linux.</li>
</ol>
<p>Now, we&#x2019;re ready for <em>fast</em> theme switching. Change into the directory with your Ghost install (from here on, referred to as <code>/path/to/ghost</code>, which would be a <em>terrible</em> place for a Ghost install):</p>
<pre><code>rm content/themes/current &amp;&amp; ln -s $THEME content/themes/current
</code></pre>
<p>Here, $THEME is the directory (no path needed) of the theme you want to activate.</p>
<p>But this isn&#x2019;t fancy enough yet. We want one command to do it all. Here it is:</p>
<pre><code>ln -sfn &quot;$(find content/themes -maxdepth 1 -type d -print | fzf | xargs basename)&quot; content/themes/current
</code></pre>
<p>What this does is <code>find</code> directories that are direct children of the &#x201C;themes&#x201D; folder, pipe them to a fuzzy finder to let you pick, strip the path, and then <a href="https://explainshell.com/explain?cmd=ln+-sfn&amp;ref=autodidacts.io">update the existing symlink</a>, passing the bare directory name as the target for <code>ln</code>.</p>
<p>Now, you can add something like this to your <code>.bashrc</code>, if you want it to be even more convenient:</p>
<pre><code>alias gt=&apos;cd /path/to/ghost &amp;&amp; ln -sfn &quot;$(find content/themes -maxdepth 1 -type d -print | fzf | xargs basename)&quot; content/themes/current&apos;
</code></pre>
<p>Presto!<span class="end-mark"></span></p>
]]></content:encoded></item><item><title><![CDATA[Tinkering with Manjaro and NetBSD on the Pinebook Pro: a crumbs-in-the-forest tutorial & review]]></title><description><![CDATA[<!--
# Pinebook Pro - first impressions
Crumbs in the Forst: tinkering with Manjaro and NetBSD on the Pinebook Pro
tinkering with Manjaro and NetBSD on the Pinebook Pro: a tutorial and rant
Tinkering with Manjaro and NetBSD on the Pinebook Pro: a crumbs-in-the-forest tutorial & review

2023-06-02
-->
<p>I found a used Pinebook Pro on Craigslist for $100 CAD, invented some flimsy excuse<sup class="footnote-ref"><a href="#fn1" id="fnref1">[1]</a></sup>, and bought it.</p>
<p>Then I went much farther down the rabbit hole than I expected, trying to get it functional.<sup class="footnote-ref"><a href="#fn2" id="fnref2">[2]</a></sup></p>
<p>Here are my first impressions of the journey to get (semi-) functional Linux</p>]]></description><link>https://www.autodidacts.io/pinebook-pro-linux-bsd-laptop-review-tutorial/</link><guid isPermaLink="false">647ba73ffae90902101832ea</guid><category><![CDATA[Tech]]></category><category><![CDATA[Linux]]></category><category><![CDATA[Hardware]]></category><category><![CDATA[BSD]]></category><category><![CDATA[Tutorial]]></category><dc:creator><![CDATA[Curiositry]]></dc:creator><pubDate>Fri, 12 Jan 2024 06:30:20 GMT</pubDate><media:content url="https://www.autodidacts.io/content/images/2024/01/Pinebook_Pro.jpg" medium="image"/><content:encoded><![CDATA[<!--
# Pinebook Pro - first impressions
Crumbs in the Forst: tinkering with Manjaro and NetBSD on the Pinebook Pro
tinkering with Manjaro and NetBSD on the Pinebook Pro: a tutorial and rant
Tinkering with Manjaro and NetBSD on the Pinebook Pro: a crumbs-in-the-forest tutorial & review

2023-06-02
-->
<img src="https://www.autodidacts.io/content/images/2024/01/Pinebook_Pro.jpg" alt="Tinkering with Manjaro and NetBSD on the Pinebook Pro: a crumbs-in-the-forest tutorial &amp; review"><p>I found a used Pinebook Pro on Craigslist for $100 CAD, invented some flimsy excuse<sup class="footnote-ref"><a href="#fn1" id="fnref1">[1]</a></sup>, and bought it.</p>
<p>Then I went much farther down the rabbit hole than I expected, trying to get it functional.<sup class="footnote-ref"><a href="#fn2" id="fnref2">[2]</a></sup></p>
<p>Here are my first impressions of the journey to get (semi-) functional Linux and BSD systems installed on the Pinebook Pro.</p>
<h3 id="what-works-out-of-the-box">What works out of the box</h3>
<p>Here&#x2019;s what Just Works&#x2122; with Manjaro KDE, the stock Pinebook Pro Linux distribution:</p>
<ul>
<li>It boots!</li>
<li>Screen brightness keys</li>
<li>Wifi</li>
<li>Keyboard</li>
<li>The battery charges</li>
<li>USB</li>
<li>Suspend (mostly)</li>
<li>Privacy switches (though there&#x2019;s no way to confirm)</li>
</ul>
<h3 id="what-i-like">What I like</h3>
<ul>
<li><strong>Hackable! Linux-first!! Open-hardware!!!</strong></li>
<li>Cheap ($100 CAD used)</li>
<li>Excellent battery life</li>
<li>Lovely magnesium alloy case</li>
<li>Decent keyboard</li>
<li>Nice screen</li>
<li>It was my introduction to Arch linux / Manjaro, which was surprisingly pleasant:
<ul>
<li>various nice things are packaged for Arch linux that aren&#x2019;t packaged for Debian/Ubuntu, including Sway, Helix, &amp; Nyxt browser</li>
<li>Manjaro software installer GUI is very nice, and actually works (unlike Ubuntu&#x2019;s new software store)</li>
<li>KDE Plasma, aside from how laggy it is on this little machine, is nice and polished, and Manjaro Sway is surprisingly slick, too.</li>
</ul>
</li>
</ul>
<h3 id="the-rough-edges">The rough edges</h3>
<ul>
<li>
<p><strong>It ... is ... very ... slow ... to ... do ... &#x2026; &#x2026; anything.</strong> Even basic apps (like Manjaro system settings) hang frequently. Web browsing is barely usable. This is probably a combination of the underpowered specs (little ram, sub-SSD disk speed, lots of slow cores), and the fact that fewer things are optimized for Arm.</p>
</li>
<li>
<p>The touchpad performance is extremely shoddy out of the box, especially at fine movements. This turned out to be partly a firmware issue (see below).</p>
</li>
<li>
<p>Installing OpenBSD is a real headache (you&#x2019;d need a UART serial console, rockchip DTB files, etc.) This is too bad because I kind of got the machine in order to fiddle with OpenBSD...</p>
</li>
<li>
<p>Privacy keys are not hardware killswitches, they&#x2019;re controlled by the keyboard firmware, which could be compromised.</p>
</li>
<li>
<p>No dedicated delete key :/</p>
</li>
<li>
<p>Having the power button as part of the keyboard is irritating; especially since it&#x2019;s where the delete key should be on a full size keyboard, and I accidentally hit it all the time.</p>
</li>
<li>
<p>It wasn&#x2019;t possible to flash Tow Boot onto the SPI using the Tow Boot SD card installer until I had removed U-boot from the eMMC. (It might have been possible to <code>dd</code> Tow Boot onto the eMMC, but I figured the installer would be more reliable, so I got rid of U-Boot first.)</p>
</li>
<li>
<p>My first attempt to overwrite eMMC with zeros using <code>dd</code> mysteriously failed. (Eventually either <code>dd</code> with <code>/dev/urandom</code> or else <code>blkdiscard /dev/mmcblk2</code> seemed like it worked...)</p>
</li>
<li>
<p>I was unable to connect to an external 4k monitor (Asus TUF) using Baseus USB-C hub, either on NetBSD or Manjaro</p>
</li>
<li>
<p>And some other quirks that are probably Arch Linux / Manjaro specific:</p>
<ul>
<li>Suspend failed one time. Thankfully, it provided lucid instructions on what command to run on a virtual terminal to get back in (Ctrl+Alt+f3, run loginctl unlock-session 2)</li>
<li>Setting language to en_GB somehow set keyboard layout to en_GB, even though I specified en_US keyboard layout. (This is probably a Manjaro thing, not Pinebook specific.)</li>
<li>Arm printer drivers didn&#x2019;t work. It&#x2019;s probably possible (by extracting and converting various pieces), but I gave up after wasting too much time trying to figure it out.</li>
<li>On first install of Manjaro, pacman (the Arch Linux package manager) had all kinds of GPG signing errors. I tried all the fixes I found mentioned on forums. Eventually, I knobbled the security features by editing pacman.conf, which fixed it; then I re-installed Manjaro, and that time it worked...</li>
</ul>
</li>
</ul>
<p>Here are some of the steps I used to get up and running:</p>
<h3 id="how-i-tried-to-erase-the-spi">How I tried to erase the SPI</h3>
<p>First, install <code>mtd-utils</code> with <code>sudo pacman -S mtd-utils</code> then run <code>sudo flash_erase /dev/mtd0 0 0 </code>. (Not sure if this actually worked.)</p>
<h3 id="write-tow-boot-installer-to-sd-card">Write Tow Boot installer to SD card</h3>
<p>On my normal machine, I downloaded <code>pine64-pinebookPro-2021.10-005.tar.xz</code> from Tow Boot&#x2019;s latest GitHub release (<a href="https://github.com/Tow-Boot/Tow-Boot/releases/download/release-2021.10-005/pine64-pinebookPro-2021.10-005.tar.xz?ref=autodidacts.io">link</a>), unzipped it, and, following <a href="https://tow-boot.org/devices/pine64-pinebookPro.html?ref=autodidacts.io">the instructions</a>, wrote the installer to an SD card with:</p>
<pre><code class="language-bash">sudo dd if=spi.installer.img of=/dev/mmcblk0 bs=1M oflag=direct,sync status=progress
</code></pre>
<h3 id="useful-things-i-installed-right-away">Useful things I installed right away:</h3>
<pre><code class="language-bash">pacman -S kupfer helix vim nyxt hdparm
</code></pre>
<p>Kupfer was unable to set its own hotkey (probably because Wayland), so I set up a keybinding through system settings.</p>
<h3 id="install-sway-optional-dependencies">Install sway &amp; optional dependencies</h3>
<pre><code class="language-bash">pamac install sway bemenu dmenu foot i3status mako polkit swaybg swayidle swaylock waybar xorg-wayland
</code></pre>
<p>I think pamac is Manjaro&#x2019;s more user-friendly wrapper around pacman?</p>
<h3 id="overclocking">Overclocking?!</h3>
<p>I tried to use <code>corectrl</code> but it showed up blank. I tinkered with <code>cpupower</code> but even on the default governor the A72 cores were maxed out.</p>
<p>I have asked on Twitter, but as far as I can tell, unlike the Raspberry Pi, there&#x2019;s no straightforward way to overclock this machine without re-compiling the kernel.</p>
<p><a href="https://wiki.pine64.org/wiki/Overclocking?ref=autodidacts.io">https://wiki.pine64.org/wiki/Overclocking</a></p>
<h3 id="how-to-update-your-manjaro-system">How to update your Manjaro system</h3>
<pre><code class="language-bash">sudo pacman -Syu
</code></pre>
<h3 id="how-i-overwrote-the-emmc-but-not-as-securely-as-i%E2%80%99d-like">How I overwrote the eMMC (but not as securely as I&#x2019;d like)</h3>
<p>One or other or both of these seemed to work:</p>
<pre><code>sudo dd if=/dev/urandom of=/dev/mmcblk2 bs=8192
sudo blkdiscard --secure /dev/mmcblk2
</code></pre>
<p>However, I wanted to use secure erase.  Installed hdparm, but <code>hdparm -I /dev/mmcblk2</code> just prints <code>/dev/mmcblk2</code>, so I assumed the eMMC didn&#x2019;t support ATA secure erase.</p>
<p>However, the <a href="https://files.pine64.org/doc/datasheet/pine64/SDINADF4-16-128GB-H%20data%20sheet%20v1.13.pdf?ref=autodidacts.io">datasheet</a> indicate that secure erase <em>is</em> supported.</p>
<pre><code class="language-bash">pamac install mmc-utils
</code></pre>
<pre><code class="language-bash">mmc erase secure-erase 0 9999999999999999 /dev/mmcblk2
</code></pre>
<p>... seemed to work. I also ran the command on<br>
/dev/mmcblk2boot0 and /dev/mmcblk2boot1, which said it succeeded.  I ran it on /dev/mmcblk2p1 and /dev/mmcblk2p4, after having run it on  /dev/mmcblk2, and those failed (maybe because the partitions had already been secure-erased?)</p>
<p><del>I still don&#x2019;t know if I have <em>securely</em> erased the eMMC, but I&#x2019;ve tried enough things that it seems unlikely there are any but the most durable creepy-crawlies left on it.</del> I can confirm that mmc erase <strong>did not work</strong>. BSD still tried to boot after it should have been gone...</p>
<h3 id="how-i-flashed-an-installer-to-the-emmc">How I flashed an installer to the eMMC</h3>
<p>Successfully wrote BSD to eMMC (from Manjaro running off an SD card) with:</p>
<pre><code class="language-bash">sudo cat &apos;/run/media/pine/Data/install73-arm.img&apos; | sudo dd of=/dev/mmcblk2 bs=1M status=progress conv=fsync
</code></pre>
<p>There was also talk of using <code>manjaro-chroot -a</code> or <code>manjaro-arm-flasher</code>, which I installed with <code>pacman -S majaro-arm-flasher</code>, but it wouldn&#x2019;t run on Wayland, needed sudo, sudo -E didn&#x2019;t work, and I&apos;d forgotten about <code>wsudo</code>...</p>
<h3 id="run-gui-apps-with-sudo-in-wayland">Run GUI apps with sudo in Wayland</h3>
<p>This sometimes works, but is probably a bad idea:</p>
<pre><code class="language-bash">sudo -E gnome-disks
</code></pre>
<p>See also: <a href="https://www.autodidacts.io/switching-to-sway-wayland-from-i3-x11-ubuntu/#makingitpossibletorungraphicalapplicationswithsudo">https://www.autodidacts.io/switching-to-sway-wayland-from-i3-x11-ubuntu/#makingitpossibletorungraphicalapplicationswithsudo</a></p>
<h3 id="how-to-write-manjaro-disk-image-to-an-sd-card">How to write Manjaro disk image to an SD card</h3>
<pre><code class="language-bash">sudo xzcat &apos;/home/pine/Manjaro-ARM-kde-plasma-pbpro-23.02.img.xz&apos; | sudo dd of=/dev/mmcblk1 bs=1M status=progress conv=fsync
</code></pre>
<h3 id="how-i-tried-and-failed-to-fix-the-issues-with-pacman">How I tried and failed to fix the issues with Pacman</h3>
<pre><code class="language-bash">killall gpg-agent # (didn&#x2019;t work)
sudo pkill gpg-agent
sudo rm -rf /etc/pacman.d/gnupg/
sudo pacman-key --init
sudo pacman-key --populate archlinux
sudo pacman -Sc
sudo pacman -Sy archlinux-keyring &amp;&amp; sudo pacman -Su
</code></pre>
<h3 id="how-i-updated-the-keyboard-firmware-which-significantly-improved-touchpad-performance">How I updated the keyboard firmware, which <em>significantly</em> improved touchpad performance</h3>
<p>I carefully followed the instructions in README to compile and use this keyboard firmware updater:</p>
<p><a href="https://github.com/dragan-simic/pinebook-pro-keyboard-updater?ref=autodidacts.io">https://github.com/dragan-simic/pinebook-pro-keyboard-updater</a></p>
<p>It worked, and improved fine movements of touchpad.</p>
<p>NOTE: my usb keyboard did not work at the Tow Boot stage. Therefor, I had to open the case and switch off the eMMC. Thankfully, the USB keyboard worked to login and issue the remaining commands; otherwise I would have been hooped.</p>
<h3 id="attempts-to-connect-to-a-4k-monitor-over-usb-c">Attempts to connect to a 4K monitor over USB-C</h3>
<p>I have an Asus VG289Q 4K monitor. It will talk to a Dell XPS 15 running Ubuntu via a Baseus JoyStar USB-C hub (though only at 30Hz). I have not been able to connect to the monitor using that hub from the Pinebook. On NetBSD, the hub doesn&#x2019;t even light up. On Manjaro, the hub works for ethernet, but the HDMI signal does not reach the monitor. I have tried flipping the USB-C cable over, as some have suggested. I also ran across mention of running <code>sudo pacman -Syyu linux-pinebookpro linux-pinebookpro-headers</code>, however I get &#x201C;target not found&#x201D; errors for those packages.</p>
<p>I know that people have successfully run 4k monitors with the PineBook Pro, including, I believe, the model I have. A Baseus USB-C hub is listed as &#x201C;good&#x201D; in the <a href="https://wiki.pine64.org/wiki/Pinebook_Pro_Hardware_Accessory_Compatibility?ref=autodidacts.io#USB_C_alternate_mode_DP">hardware compatibility table</a>. I&#x2019;ve read that Manjaro used to distribute a <a href="https://github.com/megous/linux?ref=autodidacts.io">patched</a> kernel (5.7?), and then dropped the patch for the 5.8 kernel (?), which broke 4k monitor support (which relies on USB-C DisplayPort Alt Mode), and the fix never made it to mainline.</p>
<p>I&#x2019;ve given up, for now.</p>
<h3 id="performance-tuning">Performance tuning</h3>
<p>I followed some of the tips in <a href="https://haydenjames.io/pinebook-pro-my-first-impressions-and-setup-tips/?ref=autodidacts.io">this article</a>; specifically, setting <code>swappiness</code>, <code>vfs_cache_pressure</code>, <code>dirty_ratio</code>, and <code>dirty_background_ratio</code> to the recommended values.</p>
<p>However, rather than in a single file as described (<code>/etc/sysctl.conf</code>), those setting are now set with individual configuration files in /etc/sysctl.d/. So I made a file for each parameter, putting <code>vm.swappiness=100</code> in <code>/etc/sysctl.d/swappiness.conf</code>, and so forth.</p>
<h2 id="regarding-openbsd-on-the-pinebook-pro">Regarding OpenBSD on the Pinebook Pro</h2>
<p>Installing OpenBSD on the Pinebook Pro can&#x2019;t be done without using a UART serial console:</p>
<p><a href="https://tomscii.sig7.se/2022/02/Guide-to-OpenBSD-on-the-PinebookPro?ref=autodidacts.io">https://tomscii.sig7.se/2022/02/Guide-to-OpenBSD-on-the-PinebookPro</a></p>
<p>... or getting into some heavy and experimental patching:</p>
<p><a href="https://tomscii.sig7.se/2022/03/Patches-for-OpenBSD-on-the-PinebookPro?ref=autodidacts.io">https://tomscii.sig7.se/2022/03/Patches-for-OpenBSD-on-the-PinebookPro</a></p>
<h2 id="installing-netbsd">Installing NetBSD</h2>
<p>Well, if we can&#x2019;t have nice things, maybe we can at least have semi-nice things? I decided to try to install some other BSD, and settled on NetBSD.</p>
<ul>
<li>
<p>Download from: <a href="https://nycdn.netbsd.org/pub/arm/?ref=autodidacts.io">https://nycdn.netbsd.org/pub/arm/</a></p>
</li>
<li>
<p>Replace xzcat with gunzip -c, and the same <code>dd</code> command used to write the Manjaro installer to the eMMC works:</p>
</li>
</ul>
<pre><code class="language-bash">gunzip -c /path/to/installer.img.gz | sudo dd of=/dev/mmcblk1 bs=1M status=progress conv=fsync
</code></pre>
<p>I went away, and when I came back, it was installed, and at login. Hit enter, type <code>startx</code>, and we&#x2019;re golden!</p>
<p>How to use it was another question...</p>
<h3 id="using-netbsd">Using NetBSD</h3>
<p>Enable ethernet:</p>
<pre><code class="language-bash">ifconfig
</code></pre>
<p>... will print out various things. In my case, there was &#x201C;lo&#x201D; and &#x201C;cdce0&#x201D;:</p>
<pre><code class="language-bash">ifconfig cdce0 up
</code></pre>
<p>...  Internet connection established! (I tested it with <code>dig autodidacts.io</code>; you might want to use a site with higher uptime...)</p>
<p>Wifi drivers are not available for the Pinebook Pro.</p>
<p>Also, the USB 3 port on the left side does not seem to work on NetBSD.</p>
<h3 id="installing-packages">Installing packages:</h3>
<pre><code class="language-bash">vi /root/.profile
</code></pre>
<p>As I recall, I uncommented the &#x201C;PKG_SRC...&#x201D; line, but that didn&apos;t do anything, so then I ran <code>export PKG_SRC=</code> with the value from the line in <code>/root/.profile</code>.  (only works with http?)</p>
<p>How to upgrade NetBSD system (can be quite slow, if it&#x2019;s been a while):</p>
<pre><code>pkgin update
pkgin upgrade
</code></pre>
<p>Add some useful apps:</p>
<pre><code>pkg_add vim git firefox helix zoxide gnome-terminal bash nushell fzf pkgin nautilus cryptsetup pandoc 
</code></pre>
<p>Unsolved:</p>
<ul>
<li>There was a warning about Firefox security, and something about a timestamp, which I never got to the bottom of. Firefox was too heavy anyway.</li>
<li>Copy and paste works in gnome terminal, but not in uxterm.</li>
<li>I was able to compile whisper.cpp text-to-speech on NetBSD and batch-transcribe audio overnight using the medium model. I was not able to get SDL2 support working for real-time streaming transcription (even though I think I installed the right SDL2 packages).</li>
<li>I tried to install the following apps, and found them not available: <code>which</code>, <code>locate</code>, <code>kupfer</code>, <code>gnome-do</code>, <code>albert</code>, <code>lshw</code>, <code>lsblk</code>, <code>nyxt</code>, <code>ulauncher</code>.</li>
</ul>
<p>Further reading: <a href="https://wiki.netbsd.org/laptops/?ref=autodidacts.io">https://wiki.netbsd.org/laptops/</a></p>
<h3 id="xfce-on-netbsd">XFCE on NetBSD</h3>
<p>Install it with:</p>
<pre><code>pkgin install xfce4 xfce4-extras 
</code></pre>
<p>(I also installed the cpugraph and system load plugins, and some others.)</p>
<p>Start it with:</p>
<pre><code>startxfce4
</code></pre>
<p>It seems to basically work!</p>
<h3 id="how-to-mount-a-usb-drive">How to mount a USB drive</h3>
<pre><code class="language-bash"># Figure out which drive to mount. In this case, I&#x2019;m searching for info about an ADATA thumbdrive:
dmesg | grep ADATA

# The above command revealed that it was /dev/sd0. &#x201C;a&#x201D; is the partition? I just guessed that part and it worked.
mount_msdos /dev/sd0a /mnt

# When you&#x2019;re done, unmount drive with:
umount /dev/sd0a
</code></pre>
<p>But what about if you&apos;re using an encrypted drive? In that case, you&#x2019;ll need to <code>pkg_add cryptsetup</code> (included in the above list of programs to install), then:</p>
<pre><code class="language-bash">cryptsetup luksOpen /dev/sdb1 luks_device
mount /dev/mapper/luks_device /mnt
</code></pre>
<p>I never got this to work AFAIK.</p>
<h3 id="how-to-set-backlight-brightness">How to set backlight brightness:</h3>
<pre><code class="language-bash">sysctl hw.pwmbacklight0
# hw.pwmbacklight0.levels = 0 30 40 50 60 70 80 90 100
hw.pwmbacklight0.level = 80
</code></pre>
<h3 id="default-shell">Default shell?</h3>
<p>The default shell, strangely, is <code>sh</code>, rather than <code>bash</code>. sh doesn&#x2019;t seem to have Ctrl+R reverse history search, which I <em>depend</em> upon for rapid use of the command line.</p>
<p>So, one of the first things I did was to install bash, and, just for kicks, nushell (which I&#x2019;d tried before). I run <code>nu</code> every time I open a terminal, since I haven&#x2019;t bothered to set the default shell yet.</p>
<h3 id="first-impression-of-netbsd">First impression of NetBSD</h3>
<p>Let me just say, I liked NetBSD as soon as it booted (after all, it <em>had</em> booted), even though I didn&#x2019;t know how to get it to do anything.  When I&#x2019;d briefly experimented with OpenBSD on a ThinkPad, the install process was confusing, and nothing much worked.</p>
<p>To be very untechnical, NetBSD felt <em>small and light and stable</em>. If Manjaro was a very smart, powerful person who was overcaffeinated and under-rested and having a very bad hair day &#x2026; NetBSD was an aging but good-natured accountant, quietly and placidly adding sums by hand over its spectacles, while sipping tea. NetBSD isn&#x2019;t fast &#x2014; but it doesn&#x2019;t hang when you ask it to do something that taxes the hardware specs (like, in this case, opening Firefox). It just does it <em>very slowly</em>. And I like that a lot.</p>
<p>That said, it&#x2019;s not for those who want an out-of-the box experience and nice GUIs. Wifi does not work, and I haven&#x2019;t found a way to get it to. Screen brightness keys don&#x2019;t work. Suspend does not work (it turns off the screen, that&#x2019;s all, when the lid is closed).</p>
<h2 id="conclusion">Conclusion</h2>
<p>The Pinebook Pro offers appealing hardware at a very low price. However, the combination of Arm architecture, underpowered specs, and poor software support for the hardware make it frustrating to get things working, or be productive in any way.</p>
<p>But it&#x2019;s usable for writing text, and a fun way to learn about different Linux &amp; BSD operating systems.<span class="end-mark"></span></p>
<!--
next steps: 4k monitor with Xfce. Erase eMMC. Try OpenBSD from Ventoy.
-->
<hr>
<aside class="full contents">
<small>
<strong>CONTENTS</strong>
<ul>
<li><a href="#">Hardware &amp; first impressions</a><ul>
<li><a href="#what-works-out-of-the-box">What works out of the box</a></li>
<li><a href="#what-i-like">What I like</a></li>
<li><a href="#the-rough-edges">The rough edges</a></li>
<li><a href="#how-i-tried-to-erase-the-spi">How I tried to erase the SPI</a></li>
<li><a href="#write-tow-boot-installer-to-sd-card">Write Tow Boot installer to SD 
card</a></li>
</ul>
</li>
<li><a href="#useful-things-i-installed-right-away">Manjaro</a><ul>
<li><a href="#useful-things-i-installed-right-away" ">Useful things I installed right away</a></li>
<li><a href="#install-sway-optional-dependencies">Install sway &amp; optional dependencies</a></li>
<li><a href="#overclocking">Overclocking?!</a></li>
<li><a href="#how-to-update-your-manjaro-system">How to update your Manjaro system</a></li>
<li><a href="#how-i-overwrote-the-emmc-but-not-as-securely-as-i&#x2019;d-like">How I overwrote the eMMC (but not as securely as I&#x2019;d like)</a></li>
<li><a href="#how-i-flashed-an-installer-to-the-emmc">How I flashed an installer to the eMMC</a></li>
<li><a href="#run-gui-apps-with-sudo-in-wayland">Run GUI apps with sudo in Wayland</a></li>
<li><a href="#how-to-write-manjaro-disk-image-to-an-sd-card">How to write Manjaro disk image to an SD card</a></li>
<li><a href="#how-i-tried-and-failed-to-fix-the-issues-with-pacman">How I tried and failed to fix the issues with Pacman</a></li>
<li><a href="#how-i-updated-the-keyboard-firmware-which-significantly-improved-touchpad-performance">How I updated the keyboard firmware, which <em>significantly</em> improved touchpad performance</a></li>
<li><a href="#attempts-to-connect-to-a-4k-monitor-over-usb-c">Attempts to connect to a 4K monitor over USB-C</a></li>
<li><a href="#performance-tuning">Performance tuning</a></li>
</ul>
</li>
<li><a href="#regarding-openbsd-on-the-pinebook-pro">Regarding OpenBSD on the Pinebook Pro</a></li>
<li><a href="#installing-netbsd">NetBSD</a><ul>
<li><a href="#installing-netbsd">Installing NetBSD</a></li>
<li><a href="#using-netbsd">Using NetBSD</a></li>
<li><a href="#installing-packages">Installing packages</a></li>
<li><a href="#xfce-on-netbsd">XFCE on NetBSD</a></li>
<li><a href="#how-to-mount-a-usb-drive">How to mount a USB drive</a></li>
<li><a href="#how-to-set-backlight-brightness">How to set backlight brightness</a></li>
<li><a href="#default-shell">Default shell?</a></li>
<li><a href="#first-impression-of-netbsd">First impression of NetBSD</a></li>
</ul>
</li>
<li><a href="#conclusion">Conclusion</a></li>
</ul>
</small>
</aside>
<style>
aside.contents {
  display:none;
  padding: 0 1.5rem;
}
@media screen and (min-width: 1366px){
  aside.contents {
    display: inline-block;
    position: fixed;
    left: 0;
    padding-left:2rem;
    bottom: 0.5rem;
    margin-bottom: 0;
    opacity: 0.25;
    width: calc((100% - 850px) / 2);
    border: 0;
    background: rgba(255,255,255,0);
    overflow: auto;
    transition: 0.5s;
    -moz-transition: 0.5s;
    -webkit-transition: 0.5s;
  }
  aside.contents:hover {
    opacity: 1;
    transition: 0.5s;
    -moz-transition: 0.5s;
    -webkit-transition: 0.5s;
  }
  aside.contents li,
  aside.contents ul {
    margin: 0.125rem;
  }

aside.contents ul ul {
 margin-left: 1rem !important;
}
ol p:last-of-type {
  margin-bottom: 0.5rem;
}

ol ul {
  margin-left: 1rem;
}

  sup {
    line-height: 0;
    font-family: var(--interface-font-stack);
    font-size: smaller;
  }
  .footnotes {
    font-size: smaller;
  }
</style>
<hr class="footnotes-sep">
<section class="footnotes">
<ol class="footnotes-list">
<li id="fn1" class="footnote-item"><p>Upon close examination, my rationale for the purchase could be reduced to*gollum voice* <em>We wants it, we needs it</em> *gollum voice* &#x2026; <a href="#fnref1" class="footnote-backref">&#x21A9;&#xFE0E;</a></p>
</li>
<li id="fn2" class="footnote-item"><p>It&#x2019;s <a href="https://www.autodidacts.io/switching-to-sway-wayland-from-i3-x11-ubuntu/">not the first time</a> something like this has happened. But, I&#x2019;m getting wise in my old age, and after spending the better part of two days tinkering with it, I set a 1-hour daily Pinebook troubleshooting limit. <a href="#fnref2" class="footnote-backref">&#x21A9;&#xFE0E;</a></p>
</li>
</ol>
</section>
]]></content:encoded></item><item><title><![CDATA[Things I don’t know how to do]]></title><description><![CDATA[<!--2023-05-08 Idea 2023-05-07-->
<p>I propose a new standard for the blogosphere, along the lines of Derek Sivers&#x2019;s &#x201C;<a href="https://nownownow.com/about?ref=autodidacts.io">Now</a>&#x201D; page: the <strong>Things I don&#x2019;t know how to do</strong> list.</p>
<h3 id="criteria">Criteria:</h3>
<ol>
<li>Maintain a more or less up-to-date list of things that you don&#x2019;t know how to do,</li></ol>]]></description><link>https://www.autodidacts.io/intractable/</link><guid isPermaLink="false">64597355fae909021018329c</guid><category><![CDATA[Essay]]></category><category><![CDATA[Learning]]></category><category><![CDATA[Blogging]]></category><dc:creator><![CDATA[Curiositry]]></dc:creator><pubDate>Tue, 24 Oct 2023 23:39:40 GMT</pubDate><media:content url="https://www.autodidacts.io/content/images/2023/10/Screenshot-from-2023-10-23-17-29-25-1.png" medium="image"/><content:encoded><![CDATA[<!--2023-05-08 Idea 2023-05-07-->
<img src="https://www.autodidacts.io/content/images/2023/10/Screenshot-from-2023-10-23-17-29-25-1.png" alt="Things I don&#x2019;t know how to do"><p>I propose a new standard for the blogosphere, along the lines of Derek Sivers&#x2019;s &#x201C;<a href="https://nownownow.com/about?ref=autodidacts.io">Now</a>&#x201D; page: the <strong>Things I don&#x2019;t know how to do</strong> list.</p>
<h3 id="criteria">Criteria:</h3>
<ol>
<li>Maintain a more or less up-to-date list of things that you don&#x2019;t know how to do, and would like to learn.
<ul>
<li>These should be things that you have <em>tried</em> to learn how to do, and failed: things that are small enough to be achievable, but not the kind of thing that can be solved easily with a search engine.</li>
<li>Optionally, include information about how hard you&#x2019;ve worked on the problem already, and what solutions you tried that didn&#x2019;t work.</li>
</ul>
</li>
<li>Ideally, put a link in the footer of your site to the page. I propose the interrobang (<strong>&#x203D;</strong>), since it&#x2019;s not widely used, and conveys the curiosity and frustration of unsolved problems that <em>should</em> be solvable but have so far been uncooperative.</li>
<li>When one of the problems is solved, strike out the question and add the solution, or a link to the solution. (It&#x2019;s occasionally permissible to remove answered questions that make the blogger look really dumb.)</li>
<li>Optionally, include a list of expertise that you could share with anyone who helps you solve one of the problems</li>
<li>I propose the page title &#x201C;Things I don&#x2019;t know how to do&#x201D;, and the URL <code>/intractable</code>. <!--[^1]--></li>
</ol>
<h3 id="why-bother">Why bother?</h3>
<p>The people reading blogs know all kinds of things the blogger doesn&#x2019;t. Blogs have high surface area. By maintaining a list, the blogger opens up the possibility of being helped.</p>
<p>But it also gives a low friction way for readers to get in touch with bloggers. It creates a passive way of helping each other solve obscure but tractable problems, and meet other friendly internet citizens.</p>
<h3 id="i%E2%80%99ll-start">I&#x2019;ll start:</h3>
<ul>
<li>
<p>Fall asleep in less than ten minutes, when not sleep-deprived. (I have tried 4-7-8 breathing, and the 2-minute military relaxation techniques, as well as following as much as possible of the usual advice on &#x201C;sleep hygiene&#x201D;.)</p>
</li>
<li>
<p>Connect a USB keyboard to a Kobo e-reader, or use it as an external monitor (connected over USB, rather than through the internet), without supermassive headache (I have done a lot of Googling, and started an <a href="https://news.ycombinator.com/item?id=35577144&amp;ref=autodidacts.io">Ask HN thread</a>.)</p>
</li>
<li>
<p>See what LibreOffice Calc formula or function is slowing down the worksheet. (I have Googled this, but not done thorough research.)</p>
</li>
<li>
<p>Get Nouveau + Wayland to work after upgrading to Ubuntu 22.04 LTS, on a Thinkpad T430 with GF108M [NVS 5400M] graphics. (Now, only the Nvdia 390 drivers + Xorg work. I have tried the usual <code>sudo apt purge *nvidia*</code> without success.)</p>
</li>
<li>
<p>Reliably prevent nosebleeds (I&#x2019;ve tried: Vitamin C, Calendula.)</p>
</li>
<li>
<p>Find any rigorous research on optimizing handwriting speed, legibility, and comfort. (I have Googled, and started an <a href="https://news.ycombinator.com/item?id=33698130&amp;ref=autodidacts.io">Ask HN thread</a>.)</p>
</li>
<li>
<p>Figure out how to setup Discourse when running the Bitnami Discourse Docker container on Fly. (The step I am missing is the <a href="https://github.com/bitnami/containers/tree/main/bitnami/discourse?ref=autodidacts.io#troubleshooting-discourse">&#x201C;executing a shell inside the container&#x201D;</a>, I believe. When I SSH into fly and run the bundle rake command from <code>/opt/bitnami/discourse</code>, it fails. More info <a href="https://community.fly.io/t/running-discourse-on-fly/3349/4?u=curiositry&amp;ref=autodidacts.io">here</a>.)</p>
</li>
</ul>
<!--- Get rid of fullscreen Thunderbird notifications on Ubuntu + Wayland + Sway (which are *turned off* in Thunderbird preferences).-->
<ul>
<li>
<p>Find a free video tutorial series teaching intermediate-level Waltz steps.</p>
</li>
<li>
<p>View waveform/stem of audio files in VLC or MPV (or better yet, in Nautilus!), the way that phone audio recorders show it (allowing you to easily skip to the salient section, and get a visual overview of the track.)</p>
</li>
<li>
<p>Install OpenBSD on the Pinebook Pro without taking it apart and having a UART serial connector (I don&#x2019;t believe it&#x2019;s possible, but maybe it will be soon.)</p>
</li>
<li>
<p>Find a website for verbose, idiot-proof, almost page-by-page user-contributed summaries of (fiction) books and short stories. (I often find myself frustrated that I have obviously missed the point of some obscure science fiction story, and Google it, finding <em>reviews</em>, but no blow-by-blow plot explainer. An obvious example: I remain embarrassingly clueless about the symbolism in <em>Voyage to Arcturus</em>.)</p>
</li>
<li>
<p>Discover a chemical that reverses the bleaching effect  Hydrogen Peroxide has on <a href="https://www.stylo.ca/en/show-product/26780.html?ref=autodidacts.io">Diamine Registrars Blue-Black</a> waterproof iron gall fountain pen ink.</p>
</li>
<li>
<p>Find any Danish literary magazines that pay writers and accept fiction submissions in English.</p>
</li>
</ul>
<h3 id="my-skills">My skills</h3>
<details>
<summary><b>&#xBB; Click to expand</b></summary><br>
<p>I <em>might</em> be able to help with problems related to <strong>the topics covered on this blog</strong>: Linux, the command line, writing fiction &amp; non-fiction, music &amp; music theory, distance running, philosophy, DIY neuroscience, chemistry, spreadsheets, memory enhancement, health &amp; nutrition, electronics troubleshooting, web design, et cetera.</p>
<p>A few things I know about, but haven&#x2019;t written about  yet, include how to:</p>
<ul>
<li>Cure an intractable seasonal rash with diet</li>
<li>Use rsync to backup ereaders, or keep an MP3 player synched with music on a laptop</li>
<li>Run NetBSD on the Pinebook Pro</li>
<li>Use Regex to correct common Tesseract OCR errors</li>
<li>Publish short fiction in magazines</li>
<li>Make a highly-satisfying submissions tracking &amp; cover-letter-generating spreadsheet</li>
<li>Use the Nashville Number System</li>
<li>Bulk transcribe audio memos with Whisper.cpp</li>
<li>Get people to read my lousy blog posts <!--- Write songs--></li>
<li>Negotiate</li>
<li>Live life without a smartphone</li>
</ul>
<p>And here are some notes I have written for <del><a href="https://grugbrain.dev/?ref=autodidacts.io">grug</a></del> myself which I can share:</p>
<!-- screenshot of How To notes directory -->
<figure style="line-height:0;" class="kg-card kg-image-card"><img src="https://www.autodidacts.io/content/images/2023/10/Screenshot-from-2023-10-23-17-29-25.png" class="kg-image" alt="Things I don&#x2019;t know how to do" loading="lazy" width="1083" height="813" srcset="https://www.autodidacts.io/content/images/size/w600/2023/10/Screenshot-from-2023-10-23-17-29-25.png 600w, https://www.autodidacts.io/content/images/size/w1000/2023/10/Screenshot-from-2023-10-23-17-29-25.png 1000w, https://www.autodidacts.io/content/images/2023/10/Screenshot-from-2023-10-23-17-29-25.png 1083w" sizes="(min-width: 720px) 720px" data-jslghtbx>
<figcaption>Ignore the spelling.</figcaption></figure>
</details>
<h3 id="join-the-club">Join the club!</h3>
<p>If you start a &#x201C;Things I don&#x2019;t know how to do&#x201D; list on your blog, please <a href="https://autodidacts.io/contact/?ref=autodidacts.io">email me the link</a> or drop it in the comments below so I can read it &#x2014; and look for anything I can help with. <span class="end-mark"></span></p>
<!--[^1]:<span style="color:grey"> Other URL options include `/stuck` or `/stumped` (h/t [Chris](https://whyfool.com)). Vote for your favorite by leaving a comment — or just using it. Eventually, a convention will emerge.</span>-->]]></content:encoded></item><item><title><![CDATA[80/20 Spanish]]></title><description><![CDATA[<!--# 80/20 Spanish

2023-10-18
-->
<p>I have tried several methods of learning Spanish that didn&#x2019;t work:</p>
<ul>
<li>Spanish in 30 days (book &amp; CD combo)</li>
<li>Duolingo</li>
<li>Memorizing vocabulary with Anki</li>
<li>Listening to Language Transfer Complete Spanish</li>
<li>Listening to Spanish music &amp; watching Spanish films</li>
<li>&#x201C;Spanish days&#x201D; with fellow learners, on which we</li></ul>]]></description><link>https://www.autodidacts.io/80-20-spanish-learning-tips/</link><guid isPermaLink="false">65303ce9eaa08201374cc535</guid><category><![CDATA[Essay]]></category><category><![CDATA[Learning]]></category><category><![CDATA[Spanish]]></category><dc:creator><![CDATA[Curiositry]]></dc:creator><pubDate>Sun, 22 Oct 2023 22:27:22 GMT</pubDate><content:encoded><![CDATA[<!--# 80/20 Spanish

2023-10-18
-->
<p>I have tried several methods of learning Spanish that didn&#x2019;t work:</p>
<ul>
<li>Spanish in 30 days (book &amp; CD combo)</li>
<li>Duolingo</li>
<li>Memorizing vocabulary with Anki</li>
<li>Listening to Language Transfer Complete Spanish</li>
<li>Listening to Spanish music &amp; watching Spanish films</li>
<li>&#x201C;Spanish days&#x201D; with fellow learners, on which we only spoke Spanish amongst ourselves</li>
<li>Reading Spanish easy-readers</li>
<li>Reading Jorge Luis Borges in Spanish, alongside an English translation</li>
</ul>
<p>Recently, I realized that I didn&#x2019;t need to Learn Spanish. I just needed to learn the ~20% of Spanish, following the <a href="https://en.wikipedia.org/wiki/Pareto_principle?ref=autodidacts.io">Pareto Principle</a>, that would let me communicate 80% of what I was trying to communicate.</p>
<p>I still don&#x2019;t Know Spanish, but I&#x2019;ve made more progress in the past few weeks than I did in years of half-hearted study, and here a few things I&#x2019;ve noticed:</p>
<ul>
<li>
<p>Nothing replaces having a native Spanish speaker you can talk to, who you enjoy talking to, and who doesn&#x2019;t mind being on the receiving end of your painfully horrible Spanish.</p>
<ul>
<li>It seems like no-one would accept this bargain, but Spanish speakers seem surprisingly tolerant, and, if you make a good effort, might even find blunders you consider tragic, amusing. If they&#x2019;re a recent arrival, you could trade English for Spanish.</li>
</ul>
</li>
<li>
<p>Many learning resources cram you full of vocabulary words (Duolingo is <em>el Elephante</em> in the room), which makes you feel like you Know Spanish, but prove useless for being able to speak and understand Spanish in real life. In my experience, <strong>nouns are the easy part</strong>. They&#x2019;re often guessable, and they aren&#x2019;t foxy shapeshifters the way verbs are. Learn a small amount of vocabulary for the things you know you&#x2019;ll often need to speak about, and let the rest take care of itself.</p>
</li>
<li>
<p>Learn the power verbs (in all their conjugations). Tener, tomar, ir, venir, hablar, hacer, poder, querer and others are used <em>all the time</em>. Many of them are also irregular. You can often fake it till you make it with nouns; not so much with verbs, because of the complications of conjugation.</p>
</li>
<li>
<p>I recommended taking time to grok the two sets of little words (I/she/he/they/we/it and me/her/him/them/us/it) early on &#x2014; earlier than most courses teach them &#x2014; because they&#x2019;re used all the time, they&#x2019;re crucial for understanding what&#x2019;s said, and they go in seriously weird places in the sentence.</p>
</li>
<li>
<p>If you don&#x2019;t have the vocabulary to say what you want to say, instead of reaching for the dictionary, <em>use the vocabulary you have</em> to <em>describe</em> the word you don&#x2019;t have. A limited vocabulary can describe remarkably complex things, given enough time and a bit of creativity. (If you&#x2019;re trying to say &#x201C;the thing under the table&#x201D; but don&#x2019;t know <em>bajo</em>, you can say &#x201C;the thing that is not over the table&#x201D;; instead of &#x201C;house&#x201D;, you can say &#x201C;the thing you live in&#x201D;.)</p>
</li>
<li>
<p>For getting your meaning across, the present tense is usually enough, combined with time-specifiers, if you don&#x2019;t mind sounding stupid. Not minding sounding stupid vastly simplifies everything during the learning phase. Once you can speak and be understood, it&#x2019;s much easier to learn to speak correctly.</p>
</li>
</ul>
<ul>
<li>All the methods I used probably helped, but they didn&#x2019;t get me fluent. What <em>does</em> seem to be getting me fluent is the combination of conversation with Spanish speakers, Language Transfer taken seriously, and reading Borges. (Though Borges&#x2019; <em>El Aleph</em> is way above my skill level, I wanted to read it badly enough it remained interesting even when read agonizingly slowly.)</li>
</ul>
<ul>
<li>
<p>Language Transfer is an incredible resource, but it&#x2019;s useless unless you actually engage with it the way recommended in the introduction. Say every word that the student does, out loud, ideally before they do. You have the same information they do, and can figure it out.</p>
</li>
<li>
<p>Don&#x2019;t forget that the (always) silent <strong>h</strong>, double <strong>l</strong> (y sound), <strong>&#xF1;</strong> with the y sound, trying-to-get-an-insect-out-of-throat <strong>g</strong>, soft b for <strong>v</strong>, and literal vowel pronunciation can trip you up <em>and make you not recognize spoken words</em> that you actually know from reading, and vice versa.</p>
</li>
<li>
<p>Everything makes much more sense once you understand vowel-splitting, and stress (which Language Transfer will teach you).</p>
</li>
<li>
<p>Try writing letters back and forth with fellow learners <strong>without using the dictionary or Google Translate</strong>. It&#x2019;s easy to reach for an aid, but I suspect you learn much faster without it. What I&#x2019;ve been doing is writing back and forth in Spanish, and putting my proximate translation for the last letter above my next letter. Only once my letter or approximate translation is finished do I use Translate to see what I missed, and whether my letter means what I think it does.</p>
</li>
<li>
<p>Spanish is spoken fast, and the words run together into an unintelligible river. (Particularly, articles get stuck onto the verb without breathing room.) I have no solution for this.</p>
</li>
</ul>
<p>Good luck! <span class="end-mark"></span></p>
<hr>
<p><strong>Resources &amp; further reading</strong>:</p>
<ul>
<li><a href="https://www.languagetransfer.org/free-courses-1?ref=autodidacts.io#complete-spanish">Language Transfer Complete Spanish</a> (Spanish for the engineering-minded. This blew my mind, and is the best Spanish-learning resource I&apos;ve found. Plus, it&#x2019;s free. But it only works if you do...)</li>
<li><a href="https://www.deepl.com/translator?ref=autodidacts.io">DeepL Translator</a> (purported to be more accurate than Google Translate)</li>
<li><a href="https://libretranslate.com/?ref=autodidacts.io">Libre Translate</a> (open-source Google Translate alternative)</li>
<li><a href="https://spanishchecker.com/en/?ref=autodidacts.io">Spanish Checker</a> (Spanish grammar checker. Since I&#x2019;m not good at Spanish grammar, I don&#x2019;t know how accurate it is.)</li>
<li><a href="https://www.deliberatespanish.com/?ref=autodidacts.io">Deliberate Spanish</a> (I was subscribed for a while, but it was too advanced at the time.)</li>
<li><a href="https://ankiweb.net/shared/info/241428882?ref=autodidacts.io">Spanish Top 5000 Vocabulary</a> deck for <a href="ihttps://apps.ankiweb.net/">Anki</a> spaced-repetition flashcard software.</li>
<li><a href="https://duolingo.com/?ref=autodidacts.io">Duolingo</a> (fun &amp; easy, but I did the complete Spanish course and still couldn&#x2019;t carry on a conversation. It did get me part way there, though.)</li>
<li><a href="https://mangolanguages.com/?ref=autodidacts.io">Mango Languages</a> (Duolingo competitor that I get free access to through my local library.)</li>
<li><a href="https://web.archive.org/web/20230919185629/http://comparelanguageapps.com/">Compare Language Apps</a> (The effectiveness of 15 language apps, compared)</li>
</ul>
]]></content:encoded></item><item><title><![CDATA[How to Backup Ghost on Fly.io with Rsync]]></title><description><![CDATA[<!--kg-card-begin: markdown--><!--
# Backup Ghost on Fly.io — with rsync
# How to Backup Ghost on Fly.io, with Rsync
Using Rsync to Copy Files Off Your Fly.io VM's Persistent Volume
rsync-files-off-fly-vm-volume-to-backup-ghost-blog
rsync-backup-ghost-files-from-fly-vm-volume
2023-08-30
-->
<p><em>This is <a href="https://autodidacts.io/things-ive-learned-self-hosting-ghost-on-fly-io-free-tier/?ref=autodidacts.io">yet</a> <a href="https://autodidacts.io/update-ghost-site-on-fly/?ref=autodidacts.io">another</a> small companion piece to my Ghost on Fly tutorials.</em></p>
<figure class="thumb">
<img src="https://www.autodidacts.io/content/images/2023/08/ghost-rsync-fly-backup-cover-image.png">
</figure>
<p>In my last tutorial in the series, I showed how to <a href="https://autodidacts.io/backup-ghost-on-fly-sftp/?ref=autodidacts.io">back up your Ghost blog hosted on Fly.io over SFTP</a>.</p>
<p>SFTP does the job, but transferring <em>all</em> those images and files every time is a waste of bandwidth &#x2014; and pig-slow.</p>
<p><a href="https://en.wikipedia.org/wiki/Rsync?ref=autodidacts.io"><code>Rsync</code></a> is an amazing command line file synchronization utility, and a <em>much</em> better tool for the job.</p>
<p>It took me a while to figure out how to <code>scp</code> file to and from Fly VM persistent volumes. Once I&#x2019;d figured that out<sup><a href="https://community.fly.io/t/how-to-copy-files-off-a-vm/1651/24?u=curiositry&amp;ref=autodidacts.io">[1]</a></sup>, swapping <code>scp</code> for <code>rsync</code> was simple.</p>
<p><strong>Here&#x2019;s how to back up your blog in seconds, rather than minutes, without sending eight years worth of uploads over the wire each time.</strong></p>
<p>In one terminal, run:</p>
<pre><code class="language-bash">flyctl proxy 10022:22
</code></pre>
<p>In another, SSH in:</p>
<pre><code class="language-bash">fly ssh console
</code></pre>
<p>Install <code>rsync</code> on the remote (which is running Alpine Linux, if you followed my tutorial):</p>
<pre><code class="language-bash">apk add rsync
</code></pre>
<p>Back on your local machine, run:</p>
<pre><code class="language-bash">ssh-agent bash
ssh-keygen -f &quot;/home/USERNAME/.ssh/known_hosts&quot; -R &quot;[localhost]:10022&quot;
flyctl ssh issue --agent
</code></pre>
<p>After that, run the backup! To rsync Ghost&#x2019;s content files from the persistent volume:</p>
<pre><code class="language-bash">rsync -aviz -e &apos;ssh -p 10022&apos; root@localhost:/var/lib/ghost/content/ .
</code></pre>
<p><a href="https://explainshell.com/explain?cmd=rsync+-aviz+-e+%27ssh+-p+10022%27+root%40localhost%3A%2Fvar%2Flib%2Fghost%2Fcontent%2F+.&amp;ref=autodidacts.io">I&#x2019;m using the <code>-a</code> (--archive) flag with <code>-z</code> (--compress), with <code>-v</code> (--verbose) <code>-i</code> (--itemize-changes)</a>.</p>
<p>It probably doesn&#x2019;t hurt to run it with the <code>--dry-run</code> flag first, to make sure everything&#x2019;s working as expected. &#x1F607;</p>
<hr>
<p>In the unlikely event that you found this tutorial so helpful and thrilling that you&#x2019;d like to support me, you can sign up for Ghost(Pro) with my <a href="https://ghost.org/?via=curiositry&amp;ref=autodidacts.io">referral link</a>, or buy one of my <a href="https://creativemarket.com/Curiositry/3192652-weblog-%E2%80%94-old-school-ghost-blog-theme?ref=autodidacts.io">premium</a> <a href="https://creativemarket.com/Curiositry/1037280-Laminim-%E2%80%94-Ghost-Theme-for-Bloggers?ref=autodidacts.io">themes</a> Or, if you&#x2019;re like me, host your blog <a href="https://www.autodidacts.io/host-a-ghost-blog-free-on-fly-io/">for</a> <a href="https://www.autodidacts.io/host-ghost-mysql8-on-fly-io-free-tier/">free</a> using one of my <a href="https://github.com/curiositry/undefined-ghost-theme?ref=autodidacts.io">free</a> <a href="https://mnml.curiositry.com/?ref=autodidacts.io">themes</a> instead, while thinking grateful thoughts.<span class="end-mark"></span></p>
<style>
sup {
  font-size: smaller;
  line-height:0;
}
</style><!--kg-card-end: markdown-->]]></description><link>https://www.autodidacts.io/backup-ghost-on-fly-with-rsync/</link><guid isPermaLink="false">64f0398cd619850107748004</guid><category><![CDATA[Tech]]></category><category><![CDATA[Tutorial]]></category><category><![CDATA[Fly.io]]></category><category><![CDATA[Ghost]]></category><category><![CDATA[Rsync]]></category><category><![CDATA[Linux]]></category><dc:creator><![CDATA[Curiositry]]></dc:creator><pubDate>Thu, 31 Aug 2023 20:32:03 GMT</pubDate><media:content url="https://www.autodidacts.io/content/images/2023/08/ghost-rsync-fly-backup-cover-image.png" medium="image"/><content:encoded><![CDATA[<!--kg-card-begin: markdown--><!--
# Backup Ghost on Fly.io — with rsync
# How to Backup Ghost on Fly.io, with Rsync
Using Rsync to Copy Files Off Your Fly.io VM's Persistent Volume
rsync-files-off-fly-vm-volume-to-backup-ghost-blog
rsync-backup-ghost-files-from-fly-vm-volume
2023-08-30
-->
<img src="https://www.autodidacts.io/content/images/2023/08/ghost-rsync-fly-backup-cover-image.png" alt="How to Backup Ghost on Fly.io with Rsync"><p><em>This is <a href="https://autodidacts.io/things-ive-learned-self-hosting-ghost-on-fly-io-free-tier/?ref=autodidacts.io">yet</a> <a href="https://autodidacts.io/update-ghost-site-on-fly/?ref=autodidacts.io">another</a> small companion piece to my Ghost on Fly tutorials.</em></p>
<figure class="thumb">
<img src="https://www.autodidacts.io/content/images/2023/08/ghost-rsync-fly-backup-cover-image.png" alt="How to Backup Ghost on Fly.io with Rsync">
</figure>
<p>In my last tutorial in the series, I showed how to <a href="https://autodidacts.io/backup-ghost-on-fly-sftp/?ref=autodidacts.io">back up your Ghost blog hosted on Fly.io over SFTP</a>.</p>
<p>SFTP does the job, but transferring <em>all</em> those images and files every time is a waste of bandwidth &#x2014; and pig-slow.</p>
<p><a href="https://en.wikipedia.org/wiki/Rsync?ref=autodidacts.io"><code>Rsync</code></a> is an amazing command line file synchronization utility, and a <em>much</em> better tool for the job.</p>
<p>It took me a while to figure out how to <code>scp</code> file to and from Fly VM persistent volumes. Once I&#x2019;d figured that out<sup><a href="https://community.fly.io/t/how-to-copy-files-off-a-vm/1651/24?u=curiositry&amp;ref=autodidacts.io">[1]</a></sup>, swapping <code>scp</code> for <code>rsync</code> was simple.</p>
<p><strong>Here&#x2019;s how to back up your blog in seconds, rather than minutes, without sending eight years worth of uploads over the wire each time.</strong></p>
<p>In one terminal, run:</p>
<pre><code class="language-bash">flyctl proxy 10022:22
</code></pre>
<p>In another, SSH in:</p>
<pre><code class="language-bash">fly ssh console
</code></pre>
<p>Install <code>rsync</code> on the remote (which is running Alpine Linux, if you followed my tutorial):</p>
<pre><code class="language-bash">apk add rsync
</code></pre>
<p>Back on your local machine, run:</p>
<pre><code class="language-bash">ssh-agent bash
ssh-keygen -f &quot;/home/USERNAME/.ssh/known_hosts&quot; -R &quot;[localhost]:10022&quot;
flyctl ssh issue --agent
</code></pre>
<p>After that, run the backup! To rsync Ghost&#x2019;s content files from the persistent volume:</p>
<pre><code class="language-bash">rsync -aviz -e &apos;ssh -p 10022&apos; root@localhost:/var/lib/ghost/content/ .
</code></pre>
<p><a href="https://explainshell.com/explain?cmd=rsync+-aviz+-e+%27ssh+-p+10022%27+root%40localhost%3A%2Fvar%2Flib%2Fghost%2Fcontent%2F+.&amp;ref=autodidacts.io">I&#x2019;m using the <code>-a</code> (--archive) flag with <code>-z</code> (--compress), with <code>-v</code> (--verbose) <code>-i</code> (--itemize-changes)</a>.</p>
<p>It probably doesn&#x2019;t hurt to run it with the <code>--dry-run</code> flag first, to make sure everything&#x2019;s working as expected. &#x1F607;</p>
<hr>
<p>In the unlikely event that you found this tutorial so helpful and thrilling that you&#x2019;d like to support me, you can sign up for Ghost(Pro) with my <a href="https://ghost.org/?via=curiositry&amp;ref=autodidacts.io">referral link</a>, or buy one of my <a href="https://creativemarket.com/Curiositry/3192652-weblog-%E2%80%94-old-school-ghost-blog-theme?ref=autodidacts.io">premium</a> <a href="https://creativemarket.com/Curiositry/1037280-Laminim-%E2%80%94-Ghost-Theme-for-Bloggers?ref=autodidacts.io">themes</a> Or, if you&#x2019;re like me, host your blog <a href="https://www.autodidacts.io/host-a-ghost-blog-free-on-fly-io/">for</a> <a href="https://www.autodidacts.io/host-ghost-mysql8-on-fly-io-free-tier/">free</a> using one of my <a href="https://github.com/curiositry/undefined-ghost-theme?ref=autodidacts.io">free</a> <a href="https://mnml.curiositry.com/?ref=autodidacts.io">themes</a> instead, while thinking grateful thoughts.<span class="end-mark"></span></p>
<style>
sup {
  font-size: smaller;
  line-height:0;
}
</style><!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[Useful keyboard shortcuts I learned too late]]></title><description><![CDATA[<p></p><p>I&#x2019;ve been using computers for a long time, and for most of that time, I&#x2019;ve considered myself a power user &#x2014; the kind of person who bothers to use keyboard shortcuts in the first place, runs Linux, and knows a bit about programming and the command</p>]]></description><link>https://www.autodidacts.io/useful-keyboard-shortcuts/</link><guid isPermaLink="false">642f804b75aa6d021017d106</guid><category><![CDATA[Tech]]></category><category><![CDATA[Productivity]]></category><category><![CDATA[Linux]]></category><dc:creator><![CDATA[Curiositry]]></dc:creator><pubDate>Tue, 18 Apr 2023 00:29:50 GMT</pubDate><content:encoded><![CDATA[<p></p><p>I&#x2019;ve been using computers for a long time, and for most of that time, I&#x2019;ve considered myself a power user &#x2014; the kind of person who bothers to use keyboard shortcuts in the first place, runs Linux, and knows a bit about programming and the command line.</p>
<p>Of course self-described power users know and use the really useful, really basic shortcuts.<sup class="footnote-ref"><a href="#fn1" id="fnref1">[1]</a></sup> Usually, they also know many slightly more obscure but still vital app- and <abbr title="Operating System">OS</abbr>-specific shortcuts.<sup class="footnote-ref"><a href="#fn2" id="fnref2">[2]</a></sup></p>
<p>But in the past year or so, I&#x2019;ve learned a handful of shortcuts I now use <em>every day</em>, which I never knew about, and which are available in almost every application:</p>
<ol>
<li>
<p><strong>Navigate by word</strong> with <kbd>ctrl</kbd>+<kbd>arrowkey</kbd>. If you&#x2019;re navigating text using the arrow keys, holding down control makes each key-press move by a whole <em>word</em> rather than a character.<span style="color:purple" contenteditable> (This sentence is editable: click on it to try navigating around without having to open your text editor.) </span></p>
</li>
<li>
<p><strong>Delete by word</strong> with <kbd>ctrl</kbd>+<kbd>backspace</kbd>. This works in most apps.<sup class="footnote-ref"><a href="#fn3" id="fnref3">[3]</a></sup> It&#x2019;s useful in file rename dialogues (to remove the extension, date, or version number). It&#x2019;s also useful for quickly changing the extension (or other fragments) of URLs, since it treats control characters including periods, slashes, hashes, and hyphens as word boundaries. <kbd>Ctrl</kbd>+<kbd>delete</kbd> deletes by word going forward from the cursor.</p>
</li>
<li>
<p><strong>Select by word</strong> with <kbd>ctrl</kbd>+<kbd>shift</kbd>+<kbd>arrowkey</kbd>. (I only discovered that one just now, and don&#x2019;t yet use it habitually.)</p>
</li>
<li>
<p><strong>Type to focus</strong> If you start typing in Firefox&#x2019;s bookmarking UI, you can quickly find and select the folder you&#x2019;re looking for in the claustrophobic 1.25&#x2033; x 2.75&#x2033; folder-picker (yes, I measured it), even though no search option is evident. This also works in drop-down menus.</p>
</li>
</ol>
<p>Here are a few others, which I learned fairly early, but not as early as I should have. I expect you know them, but if you don&#x2019;t:</p>
<ul>
<li>
<p><kbd>Ctrl</kbd>+<kbd>w</kbd> = close tab in most apps. (<kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>T</kbd> reopens last closed tab in some apps.)</p>
</li>
<li>
<p><kbd>Ctrl</kbd>+<kbd>;</kbd> = insert date in some apps, such as Excel (I <a href="https://www.autodidacts.io/switching-to-sway-wayland-from-i3-x11-ubuntu/#morefunwithsegmentationfaults">made it global</a>, since I <a href="https://www.autodidacts.io/save-the-date/">use it all the time</a>.)</p>
</li>
<li>
<p><kbd>/</kbd> = quick-find search in many apps (<kbd>ctrl</kbd>+<kbd>f</kbd> for full-fledged search where available).</p>
</li>
<li>
<p><kbd>Ctrl</kbd>+<kbd>k</kbd> = insert link in many rich text editors (Wordpress, Ghost, Thunderbird, Office, Ghost, etc).</p>
</li>
<li>
<p><kbd>Shift</kbd>+<kbd>Enter</kbd> = insert line-break (in text messages, tweets) without sending.</p>
</li>
</ul>
<p>I hope one of these was new to you, and saves you more time than it took to read this post.<span class="end-mark"></span></p>
<style>
  sup {
    line-height: 0;
    font-family: var(--interface-font-stack);
    font-size: smaller;
  }
  .footnotes {
    font-size: smaller;
  }
</style>
<hr class="footnotes-sep">
<section class="footnotes">
<ol class="footnotes-list">
<li id="fn1" class="footnote-item"><p>Ctrl+c, ctrl+v, ctrl+x, ctrl+a, ctrl+z, ctrl+y, ctrl+p, f5, f11, alt+tab, alt+backtick, and so forth. <a href="#fnref1" class="footnote-backref">&#x21A9;&#xFE0E;</a></p>
</li>
<li id="fn2" class="footnote-item"><p>Ctrl+l to focus the URL bar; f2 to rename file; super or ctrl+spacebar to summon launcher; spacebar to play/pause video; common email shortcuts (ctrl+r to reply, m to mark as unread, ctrl+enter to send, and so forth); ctrl+alt+delete &amp; ctrl+Alt+PrtSc+REISUB; and so on. <a href="#fnref2" class="footnote-backref">&#x21A9;&#xFE0E;</a></p>
</li>
<li id="fn3" class="footnote-item"><p>In terminal, use ctrl+w instead (another one I learned surprisingly late). Alt+d deletes forward from cursor. <a href="#fnref3" class="footnote-backref">&#x21A9;&#xFE0E;</a></p>
</li>
</ol>
</section>
]]></content:encoded></item><item><title><![CDATA[The Art of Resisting Promotion]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p>The default course is: as soon as you&#x2019;re doing a job well, you get encouraged to switch to a different job. This new job will likely be similar to what you&#x2019;ve just been doing, but slightly larger, more complex, higher status, more flashy, and higher pay.</p>]]></description><link>https://www.autodidacts.io/resisting-promotion/</link><guid isPermaLink="false">64078672eaa5e102103dcb61</guid><category><![CDATA[Essay]]></category><category><![CDATA[Life]]></category><category><![CDATA[Philosophy]]></category><dc:creator><![CDATA[Immanuel]]></dc:creator><pubDate>Sat, 25 Mar 2023 01:53:45 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><p>The default course is: as soon as you&#x2019;re doing a job well, you get encouraged to switch to a different job. This new job will likely be similar to what you&#x2019;ve just been doing, but slightly larger, more complex, higher status, more flashy, and higher pay. And higher pressure.</p>
<p>This can seem like a tantalizing upgrade &#x2014; and sometimes it is, especially for the ambitious climbers out there &#x2014; but sometimes it isn&#x2019;t. Sometimes this new job is actually less fun than the one you had been doing, and had finally gotten good at. Sometimes it takes ten to twenty percent more of your time and attention, which is exactly the time you would otherwise use to rest, restore, and work on creative projects. Those vital few minutes needed to defrag, kick it back, and feel like you&#x2019;re not constantly behind on everything.</p>
<p>In addition to that, it&#x2019;s usually slightly different duties. These can be a fun challenge and a welcome respite, if you were bored with your previous duties.  Or it can be frustrating. Sometimes &#x2014; this seems to often be the case with management promotions &#x2014; the skillsets required to do the new job well are slightly different from what you had already developed, and sometimes even conflicting with your creative passion or aptitude. For example, a programmer who is good at programming and enjoys it, but gets promoted to a team-lead for a programming project &#x2014; since they obviously know what they are doing and produce good work &#x2014; but doesn&#x2019;t actually enjoy managing other people and isn&#x2019;t necessarily very good at it. What they&#x2019;re good at, and enjoy, is programming, which they no longer get to do.</p>
<p>(A related phenomenon is what I call Creative Off-Ramping; where musicians end up turning into music teachers, or performers end up turning into sound techs, but this is slightly different and I&#x2019;ll leave it for another article.)</p>
<p>For many years I volunteered as a stage-hand at a local music festival. It was usually one of my favourite parts of the summer. The excitement, sense of duty, and all the live music was incredible. A couple of times, I helped out as the assistant stage manager. This was fun and exciting, too. And slightly higher pressure than just being a stage-hand. At one point, noticing that our stage had been running smoothly, our coordinator asked if any of us would like to take on being the stage-manager. I considered this carefully. It would be exciting, I would feel important, it would be a great thing to put on my resume. But I decided it wasn&#x2019;t worth it. And I&#x2019;m so glad I did. Declining this tantalizing offer meant I could enjoy the rest of the festival more. It meant I wasn&#x2019;t tied to that stage all the time, and could walk around and enjoy the music. And most of all, it meant I could still work at that stage, do my best, feel like I was actually doing a decent job and more or less knew what I was doing, but I could also relax a little knowing I was not where the buck stops if something went sideways.</p>
<p>Another time I made a similar choice, and was glad I did, was when I was involved with a local radio station. I&#x2019;d been into music for years, and had started a show with a friend. Shortly after that, the station manager was ready to retire. I was petitioned to switch from just helping host one of the shows, to be the paid station manager. A job I felt in no way qualified for, and which wasn&#x2019;t lined up with my life goals and passions. It was nonetheless interesting, probably because of the importance involved, and the fact that the other staff for some reason thought I&#x2019;d be a good fit for the job. I gratefully declined the offer, stating that I was honoured they had thought of me, but I&#x2019;d prefer to remain an artist creating content for the station rather than managing it.  I&#x2019;m glad I did.</p>
<p>On several occasions during my restaurant days, I was asked to step from cook to kitchen manager. Or from barista to front of house manager. On both occasions I considered this. But I liked cooking, and I liked making coffees, and I liked being able to occasionally say &#x201C;No, I&#x2019;m busy that afternoon&#x201D; when the manger messaged me asking if I could fill in a dropped shift. Staying as a staff member rather than a manager gave me more freedom. Slightly less pay, but much more freedom. On a couple of occasions, I agreed to fill in for the kitchen manager and front of house manager. This was an interesting experience and it worked out well: I got to try doing the job, in a way that was helpful to the business because they needed someone while the normal manager was away, and I got to learn about how it worked, feel the importance of the position for a few weeks, and then I got to step back.</p>
<p>So I try and remind myself (and encourage you to also!) to think twice before accepting a promotion. If you&#x2019;re an honest, reliable, hard-working person, you will probably be offered promotions on a regular basis; promotions of many different kinds, in many different areas of life. Some of them will be worth taking, but others won&#x2019;t. Perhaps the majority won&#x2019;t, even if they seem like an interesting opportunity. And the people offering them can be quite compelling with their sales pitches!</p>
<p>Whatever kind of promotion it is &#x2014; work, volunteer, other &#x2014; I try to ask myself: will this be better or worse lined up with my goals and aims? Will it be more fun, or less fun than the job I&#x2019;m currently doing? Are my skills a good match for it, even though it would be a logical progression from the point of view of the person offering it? Is the added importance worth the added responsibility? Even though money is useful stuff, I try to avoid making these decisions based on the pay. The people I&#x2019;ll be working with, how the job aligns with my values, and whether it&#x2019;s something I enjoy doing, I&#x2019;ve realized, are far more relevant to my long-term happiness than a modest increase in pay or prestige.<span class="end-mark"></span></p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[Link to segment of a YouTube video with a set stop time using "end" URL query parameter]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p>Sometimes, you just want to link to a specific <em>segment</em> of a YouTube video. Deep-linking to a specific start time in a YouTube video is fairly common &#x2014; but sometimes specifying an end-time is as (or more!) important.</p>
<p>After much fruitless Googling, I&#x2019;ve found a way to do</p>]]></description><link>https://www.autodidacts.io/link-to-segment-of-youtube-video-with-set-stop-time-using-end-url-query-parameter/</link><guid isPermaLink="false">63f8545ceaa5e102103dca7c</guid><category><![CDATA[Tech]]></category><category><![CDATA[HowTo]]></category><category><![CDATA[YouTube]]></category><category><![CDATA[Internet]]></category><dc:creator><![CDATA[Curiositry]]></dc:creator><pubDate>Fri, 24 Feb 2023 07:37:59 GMT</pubDate><media:content url="https://www.autodidacts.io/content/images/2023/02/maxresdefault.jpg" medium="image"/><content:encoded><![CDATA[<!--kg-card-begin: markdown--><img src="https://www.autodidacts.io/content/images/2023/02/maxresdefault.jpg" alt="Link to segment of a YouTube video with a set stop time using &quot;end&quot; URL query parameter"><p>Sometimes, you just want to link to a specific <em>segment</em> of a YouTube video. Deep-linking to a specific start time in a YouTube video is fairly common &#x2014; but sometimes specifying an end-time is as (or more!) important.</p>
<p>After much fruitless Googling, I&#x2019;ve found a way to do this:</p>
<ol>
<li>
<p>Use the embed URL (<a href="https://youtube.com/embed/ID?ref=autodidacts.io">https://youtube.com/embed/ID</a>) rather than the watch URL (<a href="https://youtube.com/watch?v=ID&amp;ref=autodidacts.io">https://youtube.com/watch?v=ID</a> or <a href="https://youtube.com/watch/ID?ref=autodidacts.io">https://youtube.com/watch/ID</a>)</p>
</li>
<li>
<p>Specify the start time, end time, or both, using the URL parameters <code>start</code> and <code>end</code>. The units are seconds. I haven&apos;t figured out a way to use other units but it might be possible.</p>
</li>
</ol>
<p>Here are seven seconds from the middle of a Joel Spolsky talk:</p>
<p><a href="https://www.youtube.com/embed/0nbkaYsR94c?start=41&amp;end=48&amp;ref=autodidacts.io">https://www.youtube.com/embed/0nbkaYsR94c?start=41&amp;end=48</a></p>
<p>(When you use embed URLs as links, it&#x2019;s just the video &#x2014; no sidebars or comments. In my view, that&apos;s a good thing.)</p>
<p>Here&#x2019;s an actual embed of the above embed URL, so you can see the query parameters at work without leaving the page:</p>
<iframe width="1596" height="782" src="https://www.youtube.com/embed/0nbkaYsR94c?start=41&amp;end=48" title="You Suck at Excel with Joel Spolsky" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
<br>
<p>Here&#x2019;s the same video, starting one minute in:</p>
<p><a href="https://www.youtube.com/embed/0nbkaYsR94c?start=60&amp;ref=autodidacts.io">https://www.youtube.com/embed/0nbkaYsR94c?start=60</a></p>
<p>Here&#x2019;s just the first minute of the talk:</p>
<p><a href="https://www.youtube.com/embed/0nbkaYsR94c?end=60&amp;ref=autodidacts.io">https://www.youtube.com/embed/0nbkaYsR94c?end=60</a></p>
<p>[For those who aren&#x2019;t familiar with <a href="https://en.wikipedia.org/wiki/Query_string?ref=autodidacts.io">URL query strings</a>: a question mark goes after the URL and before the first query parameter, and additional key-value pairs are separated with an ampersand.]</p>
<p>I&#x2019;d run across mention of YouTube allowing one to link to a segment of a video using <code>?start=30&amp;end=60</code> (or in some cases <code>stop</code> rather than <code>end</code>) in various articles, but <strong>these parameters don&#x2019;t work on the watch URL</strong>. When sharing a regular YouTube link, <code>start=30</code> turns into <code>t=30s</code> and the <code>stop</code> or <code>end</code> parameter gets thrown out.</p>
<p>At first, I assumed YouTube had removed this useful functionality. But <a href="https://developers.google.com/youtube/player_parameters?csw=1&amp;ref=autodidacts.io#end">the docs for the embedded player still mentioned the end parameter</a>, so I tried using them on the embed URL when not embedded &#x2014; and it worked!</p>
<p>I hope this helps anyone who has the same question I had.<span class="end-mark"></span></p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[Everything is a Rabbit Hole]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p>Everything is connected. It&#x2019;s a truism because it&#x2019;s true. To move a physical thing, everything touching it must move also &#x2026; and then the neighbours of the neighbours must make way &#x2026; and the <em>neighbours</em> of the neighbours of the neighbours. It goes on.</p>
<p>(Thus, reductive</p>]]></description><link>https://www.autodidacts.io/everything-is-a-rabbit-hole/</link><guid isPermaLink="false">63d0bcfd4a049f0210c17447</guid><category><![CDATA[Essay]]></category><category><![CDATA[Philosophy]]></category><category><![CDATA[Hot Air]]></category><dc:creator><![CDATA[Curiositry]]></dc:creator><pubDate>Wed, 25 Jan 2023 20:30:13 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><p>Everything is connected. It&#x2019;s a truism because it&#x2019;s true. To move a physical thing, everything touching it must move also &#x2026; and then the neighbours of the neighbours must make way &#x2026; and the <em>neighbours</em> of the neighbours of the neighbours. It goes on.</p>
<p>(Thus, reductive science is at best an approximation of the truth; at worst, actively misleading.)</p>
<p>Newtonian physics is useful, but it isn&#x2019;t <em>true</em> in all cases. Einsteinian physics is less useful day-to-day, but more true (as far as we can tell).</p>
<p>Ideas behave a bit like matter. You can&#x2019;t really think or write about one idea without, to some degree, thinking or writing about all ideas. (See <a href="https://autodidacts.io/opinions-are-optional/?ref=autodidacts.io">Opinions are Optional</a> for more on this theme.)</p>
<p>A good scientific paper is like Einsteinian physics, or quantum theory: a more accurate, but less useful, description of reality.</p>
<p>Blog posts and essays are more like Newtonian physics. They&#x2019;re effective because they don&#x2019;t try to cover every edge-case. Which means, they&#x2019;re not always absolutely so.</p>
<p>Often, what was once considered the more true, more complex representation of reality turn out, as we learn more, to be itself only an approximate, simplified version.</p>
<p>Both approaches, useful and true, have their merits &#x2014; and it&#x2019;s good to know which kind of knowledge one is aiming for.  Sometimes, we need to know something <em>exactly</em>. But sometimes we just want to fire a cannon and hit the target, without spending all day doing math.<span class="end-mark"></span></p>
<!--kg-card-end: markdown-->]]></content:encoded></item></channel></rss>