<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xml:base="https://henryisonline.com/" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Henry Is Online</title>
    <link>https://henryisonline.com/</link>
    <atom:link href="https://henryisonline.com/feeds/rssfeed.xml" rel="self" type="application/rss+xml" />
    <description></description>
    <language>en</language>
    <item>
      <title>On small computers and digital sovereignty</title>
      <link>https://henryisonline.com/blog/on-small-computers-and-digital-sovereignty/</link>
      <description>&lt;p&gt;I was handed an old iPad by a family member recently. There was no real reason for me to have it, other than they didn&#39;t need it and they knew that I might like to disassemble it for fun. Out of curiosity, I plugged it in to a charger and tried to see if it would boot up, which it did. With their permission, I started diving through the photo album to see if there were any photos that I might be able to salvage for archival before I started pulling component out of this old tablet.&lt;/p&gt;
&lt;p&gt;There were lots of photos. &lt;em&gt;Old&lt;/em&gt; photos. Photos of me as a child, photos of my family from many years ago, and photos of my old house. This wasn&#39;t the first time I&#39;ve come across old digital photos like this, and certainly not the first time that I&#39;ve tried to recover them. However, this was the first time that I wasn&#39;t able to.&lt;/p&gt;
&lt;p&gt;You see, this old iPad was an iPad Mini 2 with 16gb of storage - a frankly &lt;em&gt;minuscule&lt;/em&gt; amount, even for 2013. As a result, most of these photos were backed up and stored to iCloud under a family account. While this iPad was still in use (and even while its was sitting idle in a cupboard) this worked perfectly, and saved a lot of room on the device. The problems came not from iCloud, but form the email account tied to it.&lt;/p&gt;
&lt;p&gt;That email address was compromised in a data breach, and almost immediately it was being targeted by scammers and fraudsters. Justifiably, all ties to that address were removed, and the address and accounts associated with it were deleted — including the old Apple account that it was tied to. Now this was a minor hassle as lots of account stuff had to be set up from scratch, but we all were able to remove all out photos and data from iCloud before that account was deleted — with the exception of this iPad Mini 2. It had long since drained completely, and was completely oblivious to all of these account changes and removals.&lt;/p&gt;
&lt;p&gt;All the photos on this iPad were backed up to iCloud, owned by an account that didn&#39;t exist, administered by an email that was deleted. The thumbnails exist on the device still, but the photos they reference in the cloud servers have long since been deleted. Every single photo has the little &amp;quot;Download error&amp;quot; exclamation mark on the bottom right. They are completely unrecoverable, maybe save for the low-resolution thumbnails.&lt;/p&gt;
&lt;p&gt;As far as I can tell, these photos didn&#39;t exist anywhere else. They were never backed up or downloaded, they were never emailed or stored in Files. They&#39;re just &lt;em&gt;gone&lt;/em&gt;. For me, as someone who likes to digitally hoard all the photos I possibly can, this was hard to see. I like to use photos as an outboard memory, especially since mine isn&#39;t the best to begin with. To see all these memories be rendered completely inaccessible was truly saddening, and it strengthened by resolve to start backing up and storing locally as much information as I possibly could.&lt;/p&gt;
&lt;p&gt;Data breaches won&#39;t stop. Email addresses can be so easily compromised, and they serve as the digital keys to the kingdom in so many places. I want to be clear: this isn&#39;t a ding against Apple or Google or whoever stores your photo library in a cloud service somewhere. It&#39;s my personal gripe that this kind of offloading of personal data has become so commonplace, and as a result, we have &lt;em&gt;very little control&lt;/em&gt; over how any of that data is cared for.&lt;/p&gt;
&lt;p&gt;Precious things like photos can be so easily removed and deleted if they leave your hands. Keeping them and archiving them yourself shifts the burden of care back onto you, sure, but it means that &lt;em&gt;you&lt;/em&gt; own them. &lt;em&gt;You alone&lt;/em&gt; know where they&#39;re stored and how they&#39;re stored. &lt;em&gt;You alone&lt;/em&gt; care for them and keep them safe. There&#39;s no outsourcing to a cloud service that could shut off at any minute, or any risk that a compromised account leads to the deletion of every photo you&#39;ve every taken. They are in your hands. That&#39;s where they should stay.&lt;/p&gt;
&lt;p&gt;I&#39;m making a promise to myself. In a year&#39;s time, I want to be much less reliant on cloud storage services like this — and more broadly speaking, much less reliant on any cloud service in general. I want to own all the media I like, whether it&#39;s a song or a movie or a TV show, or the photos and videos I take to remember things. I want to find things I like and care about, and know that I can keep them somewhere safe for as along as I live. I don&#39;t want to have to have to cede my photos and movies and memories to a data centre somewhere halfway across the world — I want to know that everything I hold dear is safe under my roof.&lt;/p&gt;
&lt;p&gt;In some ways, I&#39;ve already started. I built a small game server in my house for me and my friends so we aren&#39;t burdened by endless live service subscription fees. But it has more to do with the stability. I know that I own the whole server: the hardware, the software, and the game files are mine alone, and there isn&#39;t any risk of any server host suddenly shutting down and my friends and I losing all our progress and effort. It&#39;s a small start, but I hope to grow it. I want to own my stuff again.&lt;/p&gt;
</description>
      <pubDate>Wed, 29 Apr 2026 00:00:00 GMT</pubDate>
      <dc:creator>Henry</dc:creator>
      <guid>https://henryisonline.com/blog/on-small-computers-and-digital-sovereignty/</guid>
    </item>
    <item>
      <title>Reconfiguring a HP EliteDesk 800 G6 into a home server</title>
      <link>https://henryisonline.com/blog/reconfiguring-a-hp-elitedesk-800-g6-into-a-home-server/</link>
      <description>&lt;p&gt;I bought a mini pc on eBay recently with the goal of turning it into a home server — specifically, a Minecraft server. However, my efforts were cut short when I discovered that the PC was BIOS locked.&lt;/p&gt;
&lt;p&gt;This means that the system that boots the operating system was locked behind a password field, and I didn&#39;t have the password at all. The seller must have forgotten to enter it and subsequently disable the BIOS lock, or simple received this computer as-is, cleaned and refurbished it, and then sold it in eBay without look at it&#39;s software situation. Given who the seller was and the other devices they were selling, I assumed the latter was true, meaning that they would not be able to supply me with the password.&lt;/p&gt;
&lt;p&gt;I knew there was a way to remove the lock on these systems, and on older versions of these mini PCs, it&#39;s as simple as removing a connector which shorted two motherboard pins. However, no such contraption exists in the computer I had bought, which made things a whole lot more complicated. I thought I would have to desolder the BIOS chip and re-flash a modified BIOS which didn&#39;t contain the password hash, and I was nowhere near prepared enough to do that.&lt;/p&gt;
&lt;p&gt;Fortunately, this is the Internet®, and &lt;a href=&quot;https://blog.rhysgoodwin.com/it/hp-elite-800-bios-password-removal/&quot;&gt;someone already figured it out&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I followed the steps in their post, carefully holding the jumper wire onto the tiny solder joint of (what seems to be) the chip that secures the BIOS (called HP SureStart for HP systems) and shorted the connection — hopefully wiping the BIOS password and resetting the BIOS to the factory settings.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;It worked!!&lt;/strong&gt; The BIOS was completely reset to factory settings and the password was gone. I could freely access and change all the settings I needed to — namely, disabling secure boot and changing the boot order to I could flash linux onto it.&lt;/p&gt;
&lt;p&gt;Man, do I love the internet. I was able to find valid instructions to a problem I was specifically having with y specific computer, all because someone else had the same problem and decided to document it for everyone. That&#39;s what the internet is all about, folks.&lt;/p&gt;
</description>
      <pubDate>Mon, 09 Mar 2026 00:00:00 GMT</pubDate>
      <dc:creator>Henry</dc:creator>
      <guid>https://henryisonline.com/blog/reconfiguring-a-hp-elitedesk-800-g6-into-a-home-server/</guid>
    </item>
    <item>
      <title>An update on macOS drive unmounting</title>
      <link>https://henryisonline.com/blog/an-update-on-macos-drive-unmounting/</link>
      <description>&lt;p&gt;I made a post recently about &lt;a href=&quot;https://henryisonline.com/blog/unmounting-drives-en-masse-with-applescript/&quot;&gt;drive unmounting on macOS&lt;/a&gt;, and while the method described in that post certainly &lt;em&gt;worked&lt;/em&gt;, it was not very &lt;em&gt;effective&lt;/em&gt;. I wanted something that just ejected my drives for me without me having to think about it, and unfortunately the AppleScript method still required me to remember to use the script.&lt;/p&gt;
&lt;p&gt;I ended up finding a tool called &lt;a href=&quot;http://www.stclairsoft.com/Jettison/&quot;&gt;Jettison&lt;/a&gt; that does this &lt;em&gt;perfectly&lt;/em&gt;. It&#39;s a paid tool, and I was a bit unwilling (at first) to spend money on something which would mostly just eject my Time Machine disk when I take my MacBook out of the house. But, a few days into their 15-day free trial, I sent the developers the $12 AUD to buy a full licence without a second thought.&lt;/p&gt;
&lt;p&gt;It&#39;s &lt;strong&gt;such&lt;/strong&gt; a good utility, and it means that I don&#39;t have to think &lt;em&gt;for a second&lt;/em&gt; about unmounting my disks when I&#39;m in a hurry. It just sits quietly in the menu bar and ejects everything when I close my laptop&#39;s lid and rush off. I never have to think about it at all, which is exactly how much I want to think about ejecting external drives. For me, and for that purpose, Jettison is well worth the cost.&lt;/p&gt;
</description>
      <pubDate>Tue, 03 Mar 2026 00:00:00 GMT</pubDate>
      <dc:creator>Henry</dc:creator>
      <guid>https://henryisonline.com/blog/an-update-on-macos-drive-unmounting/</guid>
    </item>
    <item>
      <title>Gaming on Linux</title>
      <link>https://henryisonline.com/blog/gaming-on-linux/</link>
      <description>&lt;p&gt;Windows has really given me the shits lately.&lt;/p&gt;
&lt;p&gt;I find it very challenging to justify using or installing that operating system on anything in the state that it&#39;s currently in. It&#39;s useful for enterprises I suppose, since most enterprise software runs on Windows by default, but for home use? It&#39;s not fit for purpose. At least, not to me.&lt;/p&gt;
&lt;p&gt;I find using Windows in my spare time to be one of the most &lt;em&gt;grating&lt;/em&gt; things in my life. Things will often not work or simply break over the course of a single update. Not to mention, if you want to change anything about how the system works, you will often have to reimplement those changes after every update. Windows has also become &lt;em&gt;massively&lt;/em&gt; bloated and cumbersome, to the point where there are &lt;a href=&quot;https://github.com/ChrisTitusTech/winutil&quot;&gt;specific&lt;/a&gt; &lt;a href=&quot;https://rufus.ie/en/&quot;&gt;tools&lt;/a&gt; and &lt;a href=&quot;https://www.revouninstaller.com&quot;&gt;utilities&lt;/a&gt;  designed to remove crap from Windows.&lt;/p&gt;
&lt;p&gt;Computers are supposed to be fun. Or at least, that&#39;s how I think they should be. They should be tools to do whatever you want, and when you ask them to do something, they should &lt;em&gt;get the hell out of the way&lt;/em&gt;. Windows does none of those things. It&#39;s obstructive, challenging, and downright &lt;em&gt;miserable&lt;/em&gt; to use in its&#39; current state. You shouldn&#39;t have to follow a guide on how to make an operating system &lt;em&gt;usable&lt;/em&gt; after you install it. It should be that way &lt;em&gt;&lt;strong&gt;immediately&lt;/strong&gt;&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;I have held these gripes for a few years now, and my opinion on Windows as a piece of software has definitely soured over time. However, what I didn&#39;t expect was for the hardware on which I ran Windows to become as unreliable as the operating system itself. My custom built PC started having some problems with power delivery to the motherboard, which ultimately ended with the whole computer being unable to turn on. Not only was I tinkering with the operating system to get it to work the way I wanted, but now I was tinkering with the computer itself.&lt;/p&gt;
&lt;p&gt;I was &lt;em&gt;so&lt;/em&gt; sick of tinkering. I&#39;ve done enough fiddling with the registry and uninstalling AI crap. I&#39;ve plugged in more than my fair share of cables and installed plenty of SSDs. I just wanted to start using the computers I owned and stop having to work on them all the time.&lt;/p&gt;
&lt;p&gt;So I left Windows (and the custom PC world) behind. I did two things after that:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Bought a Macbook, which I &lt;em&gt;adore&lt;/em&gt; and will probably write about in the future, and&lt;/li&gt;
&lt;li&gt;Started looking into Linux.&lt;/li&gt;
&lt;/ol&gt;
&lt;h1 id=&quot;linux&quot;&gt;Linux?&lt;/h1&gt;
&lt;p&gt;&lt;strong&gt;Why Linux? Isn&#39;t that more fiddly?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;That&#39;s what I thought too. But I heard that Linux had become much more useable in 2025, and that you didn&#39;t need to do nearly as much fiddling with it — or often, no fiddling at all. I decided to give it a try. After all, by this point I had been using my Mac for months, and had saved so much time that I had could afford to spend some of it fiddling with a new operating system for fun.&lt;/p&gt;
&lt;p&gt;I fixed my PC first — turns out it was a power button issue, and something had gone wrong with the whole front panel circuit board. The front panel was not available as a part and couldn&#39;t easily be replaced, but it wasn&#39;t a big deal. I was considering a new case anyway. I bought a &lt;a href=&quot;https://www.coolermaster.com/en-au/products/masterbox-nr200p/&quot;&gt;small cooler master case&lt;/a&gt; that has been around forever and has a &lt;em&gt;lot&lt;/em&gt; of good reviews. Nothing fancy for me this time. I also decided to buy a new graphics card (right before prices went ballistic at the end of 2025) as I needed a new one anyway, and ended up with an &lt;a href=&quot;https://www.centrecom.com.au/xfx-swift-amd-radeon-rx-9070-xt-triple-fan-gaming-edition-graphics-card&quot;&gt;AMD RX 9070XT&lt;/a&gt; since I read that AMD cards work very well on Linux.&lt;/p&gt;
&lt;p&gt;As for the operating system, I went with &lt;a href=&quot;https://www.fedoraproject.org&quot;&gt;Fedora&lt;/a&gt; with the GNOME desktop. It seemed like the most reasonable and stable choice, and appealed to me as a very no-frills base-level operating system. If I needed anything else, I could simply install it from the software store. Oh, and as a bonus, this whole system was completely free. I spent no money to buy a licence as I did with Windows, which made the deal a whole lot sweeter.&lt;/p&gt;
&lt;h1 id=&quot;getting-started&quot;&gt;Getting started&lt;/h1&gt;
&lt;p&gt;Getting everything set up was super easy. I downloaded the &lt;code&gt;.iso&lt;/code&gt;  file from the fedora website and used &lt;a href=&quot;https://etcher.balena.io&quot;&gt;balena etcher&lt;/a&gt; to write it onto a USB. Then I plugged it into my now-refurbished PC, turned it on, and was immediately met with the install screen. The installation process took very few steps: it asked for the language, the keyboard settings, the time zone, asked to enable third party repositories (which confused me at the time, but you should click &amp;quot;yes&amp;quot;), and then finally where to install it (which was as simple as clicking on the SSD I had already installed). There might be some steps I&#39;m missing, but I think that&#39;s a testament to how fast I was able to fly through it.&lt;/p&gt;
&lt;p&gt;Getting through the installer took (maybe) five minutes, and the install itself was complete in another five. Comparing that to the &lt;em&gt;&lt;strong&gt;four f-cking hours&lt;/strong&gt;&lt;/em&gt; it took me to install Windows last time, I&#39;d say that&#39;s a pretty good start. As soon as the installer was finished, it prompted me to restart and remove the drive I used originally, and so I did. Lo and behold, I now had Fedora Linux on my computer. That was &lt;em&gt;shockingly&lt;/em&gt; easy.&lt;/p&gt;
&lt;h1 id=&quot;getting-all-my-software&quot;&gt;Getting all my software&lt;/h1&gt;
&lt;p&gt;Like Windows, many Linux systems need an updates-and-restart cycle after the initial install. Unlike Windows systems, it&#39;s &lt;em&gt;so&lt;/em&gt; much easier on Linux — and particularly easy in GNOME. You just open the Software Centre app — it looks like a big shopping bag — and press the big blue &amp;quot;Update All&amp;quot; button under the &amp;quot;Updates&amp;quot; menu. It runs though and updates everything (yes, &lt;em&gt;everything&lt;/em&gt;, including all your apps) and then prompts for a restart. After that, everything it up and running! Again, &lt;em&gt;shockingly&lt;/em&gt; easy.&lt;/p&gt;
&lt;p&gt;But what about gaming? I made this PC to play games with my friends, so it better be able to do that too. Ah, well that&#39;s now (almost) solved too. Since Valve debuted the &lt;a href=&quot;https://store.steampowered.com/steamdeck&quot;&gt;Steam Desk&lt;/a&gt; (which runs a version of Linux called SteamOS), there have been &lt;em&gt;huge&lt;/em&gt; advances in gaming on Linux. Valve created a translation layer called Proton which allows Windows games to run on Linux as if they were natively compiled for the platform. Even while running though the translation layer, many Windows games have actually been benchmarked to run &lt;em&gt;faster&lt;/em&gt; on Linux than on Windows, even when running the same hardware.&lt;/p&gt;
&lt;p&gt;This works for the majority of Steam games which, to be fair, is most of the games. Some of them don&#39;t work quite as well, but most work perfectly out of the box. All I had to do to start playing games on linux was to go to the Software Centre, search for Steam, and install it. I did absolutely nothing else.&lt;/p&gt;
&lt;p&gt;I launched the Steam app (which takes a few minutes to launch for the first time on Linux as it has a lot to initialise) and downloaded some games. They ran. They just &lt;em&gt;ran&lt;/em&gt;. &lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://henryisonline.com/blog/gaming-on-linux/#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt; I didn&#39;t have to do any fiddling or programming or even touch the terminal &lt;em&gt;once&lt;/em&gt;. Even my Xbox controller just connected automatically and worked flawlessly right away. I was completely blown away. This was all &lt;em&gt;unbelievably&lt;/em&gt; easy to do.&lt;/p&gt;
&lt;h1 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h1&gt;
&lt;p&gt;I&#39;m simplifying some of the research it took to get to this point, but not by &lt;em&gt;that&lt;/em&gt; much. Understanding what a linux distribution is and finding the one I wanted was the extent the research I did for this project, and I highly doubt that you want a blow-by-blow of what I typed in to google that led to me choosing &lt;a href=&quot;https://www.fedoraproject.org/&quot;&gt;Fedora&lt;/a&gt; (which you should choose too, if you&#39;ve made it this far in). Everything else is &lt;em&gt;as it happened&lt;/em&gt;, which is beyond amazing.&lt;/p&gt;
&lt;p&gt;I&#39;m so impressed with this system, and especially how easy it is to maintain. I just press that big blue &amp;quot;Update All&amp;quot; button whenever I remember to and otherwise completely forget about it. There&#39;s no management, there&#39;s no concerns over whether &lt;a href=&quot;https://au.pcmag.com/migrated-15175-windows-10/112704/microsoft-investigating-reports-of-ssds-vanishing-after-latest-windows-11-update&quot;&gt;the next update&lt;/a&gt; &lt;a href=&quot;https://www.windowslatest.com/2026/01/29/microsoft-confirms-windows-11-kb5074109-january-2026-update-causes-bsod-boot-issues-on-some-pcs-commerical/&quot;&gt;will brick &lt;/a&gt;&lt;a href=&quot;https://www.windowscentral.com/microsoft/windows-11/windows-11-february-update-kb5077181-hits-installation-errors-and-system-issues&quot;&gt;something&lt;/a&gt;, and theres no weird software or telemetry running in the background to worry about. I love that aspect of Linux so very much.&lt;/p&gt;
&lt;p&gt;Oh, I forgot to mention — I have this thing hooked up to my TV. I play games on the couch and treat this computer like a console. It doesn&#39;t care. I don&#39;t care. Everything just &lt;em&gt;works&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;I have fallen in love with computers again, and I have Linux to thank for that.&lt;/p&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;Well, aside from Minecraft: Bedrock Edition, but that one&#39;s entirely Microsoft&#39;s fault. Java Edition (my preferred version to play) runs &lt;em&gt;beautifully&lt;/em&gt;. And by the looks of things, &lt;a href=&quot;https://github.com/Weather-OS/WineGDK&quot;&gt;Bedrock might be playable on Linux within the next year or two&lt;/a&gt;. I&#39;ll be keeping my eye on this, but it&#39;s a little too much work for me to set it up in its&#39; current state. And without online play available (which is the only reason I play Bedrock), it&#39;s not of much use to me right now. Still, I&#39;m &lt;em&gt;very&lt;/em&gt; excited to see where this goes. &lt;a href=&quot;https://henryisonline.com/blog/gaming-on-linux/#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</description>
      <pubDate>Thu, 19 Feb 2026 00:00:00 GMT</pubDate>
      <dc:creator>Henry</dc:creator>
      <guid>https://henryisonline.com/blog/gaming-on-linux/</guid>
    </item>
    <item>
      <title>A note on footnotes</title>
      <link>https://henryisonline.com/blog/a-note-on-footnotes/</link>
      <description>&lt;p&gt;I like writing in obsidian because to me, it&#39;s the most capable editor out there. It can do &lt;em&gt;so so&lt;/em&gt; much with markdown, and the extensive plugin support is amazing. However, many of the base features will do just about anything anyone needs. By simply typing the markdown syntax for a footnote, you get the option to add one &lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://henryisonline.com/blog/a-note-on-footnotes/#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt;
&lt;p&gt;Getting these to work in Eleventy is a little more complex, but fortunately for us, this is the Internet®, and &lt;a href=&quot;https://blog.martin-haehnel.de/blog/2025/02/11/footnotes-in-eleventy/&quot;&gt;someone has already figured it out&lt;/a&gt;. For the sake of posterity and preservation, I&#39;ll put a short version here.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Install the markdown-it-footnotes plugin (I use pnpm, but the syntax is the same for npm)&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code class=&quot;language-sh&quot;&gt;pnpm install markdown-it-footnote --save
&lt;/code&gt;&lt;/pre&gt;
&lt;ol start=&quot;2&quot;&gt;
&lt;li&gt;Import the library in your &lt;code&gt;eleventyconfig.js&lt;/code&gt; — this goes at the top of your file&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code class=&quot;language-js&quot;&gt;import footnote_plugin from &#39;markdown-it-footnote&#39;;
&lt;/code&gt;&lt;/pre&gt;
&lt;ol start=&quot;3&quot;&gt;
&lt;li&gt;Put this line under &lt;code&gt;export default async function(eleventyConfig) {&lt;/code&gt; in your config file&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code class=&quot;language-js&quot;&gt;eleventyConfig.amendLibrary(&amp;quot;md&amp;quot;, (mdLib) =&amp;gt; mdLib.use(footnote_plugin));
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;That&#39;s it! Super simple. Now you can have all the footnotes you want &lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://henryisonline.com/blog/a-note-on-footnotes/#fn2&quot; id=&quot;fnref2&quot;&gt;[2]&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;Like this one here. They&#39;re very useful. &lt;a href=&quot;https://henryisonline.com/blog/a-note-on-footnotes/#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn2&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;Massive thanks to &lt;a href=&quot;https://blog.martin-haehnel.de/&quot;&gt;Martin Hähnel&lt;/a&gt; for this. &lt;a href=&quot;https://henryisonline.com/blog/a-note-on-footnotes/#fnref2&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</description>
      <pubDate>Thu, 19 Feb 2026 00:00:00 GMT</pubDate>
      <dc:creator>Henry</dc:creator>
      <guid>https://henryisonline.com/blog/a-note-on-footnotes/</guid>
    </item>
    <item>
      <title>A shell script to make my life easier</title>
      <link>https://henryisonline.com/blog/a-shell-script-to-make-my-life-easier/</link>
      <description>&lt;p&gt;I built a little shell script to make my life easier when I want to make a new post. After I finish typing this, I&#39;ll use this script to publish this very post that you&#39;re reading now.&lt;/p&gt;
&lt;p&gt;Here is the script:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;#!/bin/bash

# --- INFORMATION ---
# Simple shell script for automating my blog publication with eleventy.
#
# I use Obsidian to write and organise all my posts, then when I want
# to publish a post, I use this script to save me typing a bunch.
#
# This is simply aliased as &amp;quot;blog&amp;quot; in my termial. I can type &amp;quot;blog&amp;quot; in
# any termial window and publish a post.
#
PROJECT_DIR=&amp;quot;&amp;quot; # I put my directory in here - I won&#39;t publish that.
# --- INFORMATION ---

# Colors for terminal output
GREEN=&#39;&#92;033[0;32m&#39;
RED=&#39;&#92;033[0;31m&#39;
NC=&#39;&#92;033[0m&#39; # No Color

echo &amp;quot;
#     # ####### #     #    ######   #####   #####  ####### 
##    # #       #  #  #    #     # #     # #     #    #    
# #   # #       #  #  #    #     # #     # #          #    
#  #  # #####   #  #  #    ######  #     #  #####     #    
#   # # #       #  #  #    #       #     #       #    #    
#    ## #       #  #  #    #       #     # #     #    #    
#     # #######  ## ##     #        #####   #####     #              
&amp;quot;

# Navigate to the project directory
if [ -d &amp;quot;$PROJECT_DIR&amp;quot; ]; then
  cd &amp;quot;$PROJECT_DIR&amp;quot;
else
  echo -e &amp;quot;${RED}Project directory not found at $PROJECT_DIR${NC}&amp;quot;
  exit 1
fi

# Delete the existing _site folder
if [ -d &amp;quot;_site&amp;quot; ]; then
  echo &amp;quot;Removing old _site directory...&amp;quot;
  rm -rf _site
  echo -e &amp;quot;${GREEN}✅ _site directory removed.${NC}&amp;quot;
fi

# Run my eleventy build command
echo &amp;quot;Running build...&amp;quot;
pnpm build-quiet

# Check if the build was successful
if [ $? -eq 0 ]; then
  echo -e &amp;quot;${GREEN}✅ Build Success.${NC}&amp;quot;
  
  # Push all the changes to GitHub
  echo &amp;quot;Staging files...&amp;quot;
  git add .
  
  echo &amp;quot;Committing changes...&amp;quot;
  git commit -m &amp;quot;new post&amp;quot;
  
  echo &amp;quot;Pushing to repository...&amp;quot;
  git push
  
  if [ $? -eq 0 ]; then
    echo -e &amp;quot;${GREEN}✅ Site successfully published and pushed to repository.${NC}&amp;quot;
  else
    echo -e &amp;quot;${RED}❌ Git push failed.${NC}&amp;quot;
  fi

else
  echo -e &amp;quot;${RED}❌ Build Failed. Aborting git push.${NC}&amp;quot;
  # If something is wrong with the build, I don&#39;t push any changes.
  exit 1
fi

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I find this very useful. I hope that someone else might find it useful too.&lt;/p&gt;
</description>
      <pubDate>Mon, 16 Feb 2026 00:00:00 GMT</pubDate>
      <dc:creator>Henry</dc:creator>
      <guid>https://henryisonline.com/blog/a-shell-script-to-make-my-life-easier/</guid>
    </item>
    <item>
      <title>Watch this Technology Connections video</title>
      <link>https://henryisonline.com/blog/watch-this-technology-connections-video/</link>
      <description>&lt;p&gt;&lt;a href=&quot;https://www.youtube.com/technologyconnections&quot;&gt;Technology Connections&lt;/a&gt; is one of my favourite creators. His videos are some of the best on the platform (in my opinion), and I come away having learned something every time.&lt;/p&gt;
&lt;p&gt;I think a lot of people should watch his &lt;a href=&quot;https://www.youtube.com/watch?v=KtQ9nt2ZeGM&quot;&gt;latest video&lt;/a&gt;. It&#39;s his best yet.&lt;/p&gt;
</description>
      <pubDate>Mon, 09 Feb 2026 00:00:00 GMT</pubDate>
      <dc:creator>Henry</dc:creator>
      <guid>https://henryisonline.com/blog/watch-this-technology-connections-video/</guid>
    </item>
    <item>
      <title>Adding the published date to post URLs in Eleventy</title>
      <link>https://henryisonline.com/blog/adding-the-published-date-to-post-urls-in-eleventy/</link>
      <description>&lt;p&gt;I have been fiddling with &lt;a href=&quot;https://eleventy.dev&quot;&gt;Eleventy&lt;/a&gt; for a little while now, in an effort to build the website that you&#39;re (probably) reading this on. I&#39;ll end up writing a longer post about that and including it in the &lt;a href=&quot;https://henryisonline.com/blog/adding-the-published-date-to-post-urls-in-eleventy/colophon&quot;&gt;colophon&lt;/a&gt;, but I digress.&lt;/p&gt;
&lt;p&gt;As I was building this website, I initially though it would be a good idea to include the year the post was published in the url, formatted like &lt;code&gt;./blog/YYYY/blog-post-title/&lt;/code&gt;, as well as organise my output blog directory by year. I had unsuccessfully tried for a while to make this work, and only found success by modifying some code that I took from the &lt;a href=&quot;https://github.com/11ty/eleventy-base-blog/tree/main&quot;&gt;eleventy base blog&lt;/a&gt; repo.&lt;/p&gt;
&lt;p&gt;The repo has a custom filter set in &lt;code&gt;_config/filters.js&lt;/code&gt;, and part of this filter set creates dates using the &lt;a href=&quot;https://moment.github.io/luxon/#/&quot;&gt;luxon&lt;/a&gt; date engine. Using these filters, eleventy is able to create strings based on the input date metadata and format them however you want (within the contraints of luxon, of course). The two filers create:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;a human-readable date (called &lt;code&gt;readableDate&lt;/code&gt;);&lt;/li&gt;
&lt;li&gt;an &lt;a href=&quot;https://www.iso.org/iso-8601-date-and-time-format.html&quot;&gt;ISO8601&lt;/a&gt; date which can be prepended to a post title in the post list for quick scanning (called &lt;code&gt;htmlDateString&lt;/code&gt;).&lt;br&gt;
&lt;code&gt;htmlDateString&lt;/code&gt; in particular was interesting to me, as it did almost exactly what I wanted it to do.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;eleventyConfig.addFilter(&amp;quot;htmlDateString&amp;quot;, (dateObj) =&amp;gt; {
    // dateObj input: https://html.spec.whatwg.org/multipage/common-microsyntaxes.html#valid-date-string
    return DateTime.fromJSDate(dateObj, { zone: &amp;quot;utc&amp;quot; }).toFormat(&#39;yyyy-LL-dd&#39;);
    });
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This function passes the date through luxon and formats it by using the &lt;a href=&quot;https://moment.github.io/luxon/#/formatting?id=table-of-tokens&quot;&gt;luxon tokens&lt;/a&gt; into an output string that looks like &lt;code&gt;2026-01-25&lt;/code&gt;(for example).&lt;/p&gt;
&lt;p&gt;Since all I wanted was a string that contained the date to be part of my URL structure, and I already had a filter that created a date string, I just needed some way to use that date filter in my &lt;code&gt;blog.json&lt;/code&gt; &lt;a href=&quot;https://www.11ty.dev/docs/data-template-dir/&quot;&gt;directory date file&lt;/a&gt;, transfer the post date to that filter, and put the whole thing in a &lt;a href=&quot;https://www.11ty.dev/docs/permalinks/&quot;&gt;permalink&lt;/a&gt; key which applies to every post. I ended up with this:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;{
    &amp;quot;layout&amp;quot;: &amp;quot;layouts/post.njk&amp;quot;,
    &amp;quot;tags&amp;quot;: &amp;quot;post&amp;quot;,
    &amp;quot;permalink&amp;quot;: &amp;quot;/blog/2026-01-25/adding-the-published-date-to-post-urls-in-eleventy/index.html&amp;quot;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This does the following:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Assigns the layout file &lt;code&gt;post&lt;/code&gt; to every blog post in the directory&lt;/li&gt;
&lt;li&gt;Applies the &lt;code&gt;post&lt;/code&gt; tag to every post in the directory (to make for easy sorting later)&lt;/li&gt;
&lt;li&gt;Creates an output URL by taking the date from each page (&lt;code&gt;page.date&lt;/code&gt;) and piping (&lt;code&gt;|&lt;/code&gt;) it to the &lt;code&gt;htmlDateString&lt;/code&gt; filer, which is globally available since it&#39;s referenced in the &lt;code&gt;.eleventy.config.js&lt;/code&gt; &lt;a href=&quot;https://www.11ty.dev/docs/config/&quot;&gt;configuration file&lt;/a&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;All of this creates an output directory which looks like this:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;. 
└── _site/ 
    └── blog/ 
        └── 2026-01-25/ 
            └── adding-the-publish-date-to-post-urls-in-eleventy
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;and a URL that looks like this:&lt;br&gt;
&lt;code&gt;https://henryisonline/blog/2026-01-25/adding-the-publish-date-to-post-urls-in-eleventy&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;This was, to me, a huge success. But I still wasn&#39;t done. I wanted just the year in both my URL and output directory, and this way just put the whole date there. This made my URLs longer and meant that my &lt;code&gt;_site/blog/&lt;/code&gt; output directory would end up filled with folders that only contain one post, instead of being organised by year.&lt;/p&gt;
&lt;p&gt;This was a simple fix. I created a new function called &lt;code&gt;yearString&lt;/code&gt; which was identical in every way to &lt;code&gt;htmlDateString&lt;/code&gt; with one exception: &lt;strong&gt;only the year tokens for luxon were used.&lt;/strong&gt; This meant that the output string only contained the year.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;eleventyConfig.addFilter(&amp;quot;htmlDateString&amp;quot;, (dateObj) =&amp;gt; {
    return DateTime.fromJSDate(dateObj, { zone: &amp;quot;utc&amp;quot; }).toFormat(&#39;yyyy&#39;);
    });
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I referenced this function in my &lt;code&gt;blog.json&lt;/code&gt; under the &lt;code&gt;permalink&lt;/code&gt; key, giving me:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;{
    &amp;quot;layout&amp;quot;: &amp;quot;layouts/post.njk&amp;quot;,
    &amp;quot;tags&amp;quot;: &amp;quot;post&amp;quot;,
    &amp;quot;permalink&amp;quot;: &amp;quot;/blog/2026/adding-the-published-date-to-post-urls-in-eleventy/index.html&amp;quot;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;With this change, my output directory now looks like this:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;. 
└── _site/ 
    └── blog/ 
        └── 2026/ 
            └── adding-the-publish-date-to-post-urls-in-eleventy
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;and URLs look like this:&lt;br&gt;
&lt;code&gt;https://henryisonline/blog/2026/adding-the-publish-date-to-post-urls-in-eleventy&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;This also means that for every blog post I create, my output directory only grows by the year, which makes the whole thing much more manageable.&lt;/p&gt;
&lt;p&gt;To implement this, I created a &lt;code&gt;date.js&lt;/code&gt; file under a &lt;code&gt;_config&lt;/code&gt; directory at the root of my site.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;// Custom date filters based on = eleventy-base-blog

import { DateTime } from &amp;quot;luxon&amp;quot;;

export default function(eleventyConfig) {
    eleventyConfig.addFilter(&amp;quot;readableDate&amp;quot;, (dateObj, format, zone) =&amp;gt; {
        // Formatting tokens for Luxon: https://moment.github.io/luxon/#/formatting?id=table-of-tokens
        return DateTime.fromJSDate(dateObj, { zone: zone || &amp;quot;utc&amp;quot; }).toFormat(format || &amp;quot;dd LLLL yyyy&amp;quot;);
    });

    eleventyConfig.addFilter(&amp;quot;htmlDateString&amp;quot;, (dateObj) =&amp;gt; {
        // dateObj input: https://html.spec.whatwg.org/multipage/common-microsyntaxes.html#valid-date-string
        return DateTime.fromJSDate(dateObj, { zone: &amp;quot;utc&amp;quot; }).toFormat(&#39;yyyy-LL-dd&#39;);
    });

    eleventyConfig.addFilter(&amp;quot;yearString&amp;quot;, (dateObj) =&amp;gt; {
        // This is identical to the above function
        // The only difference is the removal of the month and year portions of the date format
        //
        // I use this to get the year a post was created and create a matching folder in the 
        // output directory, which then contains the slug of the post title.
        return DateTime.fromJSDate(dateObj, { zone: &amp;quot;utc&amp;quot; }).toFormat(&#39;yyyy&#39;);
    });
};
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I then referenced it in my config file:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;import dateFilters from &amp;quot;./_config/date.js&amp;quot;;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Everything was working perfectly.&lt;/p&gt;
&lt;p&gt;However, I later learned that putting the dates in your URL is &lt;em&gt;perhaps&lt;/em&gt; not best practice. That&#39;s not to say it&#39;s outright &lt;em&gt;wrong&lt;/em&gt;, but a lot of blogs that I follow don&#39;t do this. In fact, I haven&#39;t seen &lt;em&gt;any&lt;/em&gt; personal blogs do this. It seems to be a practice mostly reserved for newsrooms, where relaying the currency of any information is so important that &lt;em&gt;not&lt;/em&gt; having the date in the URL would be completely foolish.&lt;/p&gt;
&lt;p&gt;Last I checked, I&#39;m not a newsroom. So I&#39;m going back — removing all the work I did to create this permalink structure and replacing it with the good old &lt;code&gt;blog/title-slug/&lt;/code&gt; URL structure. It seems like most blogs that use static site generators work this way, as do many other sites. Wordpress blogs seem to exhibit this behaviour by default, which seems to be a Wordpress quirk more than anything.&lt;/p&gt;
&lt;p&gt;Oh well. At least I kept this record for my own sake, in case I every want to create something similar in the future. This might actually be a great way to run a photo gallery, where I can create albums organised by year. If I ever get around to doing that, I certainly will.&lt;/p&gt;
</description>
      <pubDate>Sun, 25 Jan 2026 00:00:00 GMT</pubDate>
      <dc:creator>Henry</dc:creator>
      <guid>https://henryisonline.com/blog/adding-the-published-date-to-post-urls-in-eleventy/</guid>
    </item>
    <item>
      <title>Joan Westenberg - The Case for Blogging in the Ruins</title>
      <link>https://henryisonline.com/blog/joan-westenberg-the-case-for-blogging-in-the-ruins/</link>
      <description>&lt;p&gt;&lt;a href=&quot;https://www.joanwestenberg.com/&quot;&gt;Joan Westenberg&lt;/a&gt; is one of my favourite writers. Her work is inspiring to me, and is part of the reason that I made a blog in the first place. I recently found her article &amp;quot;&lt;a href=&quot;https://www.joanwestenberg.com/the-case-for-blogging-in-the-ruins/&quot;&gt;The Case for Blogging in the Ruins&lt;/a&gt;&amp;quot; through a &lt;a href=&quot;https://kevquirk.com/blog/the-case-for-blogging-in-the-ruins/&quot;&gt;post by Kev Quirk&lt;/a&gt;, and it encompasses may of the reasons I started blogging. I encourage everyone to read it.&lt;/p&gt;
&lt;p&gt;One line in particular stands out to me, and it&#39;s about people who, in Joan&#39;s words, &amp;quot;&lt;em&gt;have essentially stopped writing anything substantial because they&#39;ve moved their entire intellectual presence to Twitter or Substack Notes.&lt;/em&gt;&amp;quot; I&#39;ve seen this too, and it&#39;s truly unfortunate. I&#39;ve met lots of good people who have a lot of interesting things to say, and many of them have put their time and effort into consuming and fuelling social media algorithms.&lt;/p&gt;
&lt;p&gt;Joan provides a list of blogging platforms at the end of her article, and encourages anyone who might be interest in blogging to give those platforms a try. I have another to recommend: &lt;a href=&quot;https://pika.page&quot;&gt;Pika&lt;/a&gt;. It&#39;s how I got started with blogging, and it makes the whole process very easy and straightforward. Their free plan is very generous, as they give you your first 50 (&lt;em&gt;50!!&lt;/em&gt;) posts for free. Pika is run by some truly incredible people, of which &lt;a href=&quot;https://bjhess.com&quot;&gt;Barry Hess&lt;/a&gt; is one (and the founder of &lt;a href=&quot;https://goodenough.us&quot;&gt;Good Enough&lt;/a&gt; — the small but wonderful company that runs Pika).&lt;/p&gt;
&lt;p&gt;Start blogging. Make a place for yourself on the internet. Don&#39;t give Zuckerberg any more of your time or attention.&lt;/p&gt;
</description>
      <pubDate>Fri, 16 Jan 2026 00:00:00 GMT</pubDate>
      <dc:creator>Henry</dc:creator>
      <guid>https://henryisonline.com/blog/joan-westenberg-the-case-for-blogging-in-the-ruins/</guid>
    </item>
    <item>
      <title>Mango processing</title>
      <link>https://henryisonline.com/blog/mango-processing/</link>
      <description>&lt;p&gt;It&#39;s December, which means mango season in Queensland. My Dad and I both love mangoes, and fortunately for us, we were gifted with two huge piles of mangoes from work colleagues. After letting them ripen for a bit, we started the mango processing production line that we do every year:&lt;/p&gt;
&lt;p&gt;We start with the box of mangoes to one side. Dad cut the off the mango cheeks and removed the flesh from the cheek skin and around the seed, then gave them to me to chop into small cubes. After chopping, I dump them in a big bucket off to the side.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://henryisonline.com/blog/mango-processing/ksBJTyPPmO-1200.png&quot; alt=&quot;d6abc3d153fe17104700ad9228441205.jpeg&quot; width=&quot;1200&quot; height=&quot;900&quot;&gt;&lt;br&gt;
&lt;em&gt;There were a few rotten ones in there – we left them to ripen just a little too long.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;We managed to fill the entire steel bowl with cubed mango pieces. We decided to store them in ziplock bags in the freezer, so while Dad took the mango husks to the compost (and the chickens, who also love mango season), I took a sharpie and wrote the date on the bags.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://henryisonline.com/blog/mango-processing/vFkXec69KK-1200.png&quot; alt=&quot;55d60f583570e134a81a1e7d0ee7226a.jpeg&quot; width=&quot;1200&quot; height=&quot;900&quot;&gt;&lt;/p&gt;
&lt;p&gt;However, we needed to figure out how much mango was to go into these bags. The most common use for mango in this house is to make mango smoothies, so we made one with the amount of mango we wanted and decided to fill the bags with the same amount.&lt;/p&gt;
&lt;p&gt;Smoothie ingredients:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;1 serve mangoes (~160g, or one large scoop with a serving spoon)&lt;/li&gt;
&lt;li&gt;2 scoops vanilla ice cream&lt;/li&gt;
&lt;li&gt;6ish ice cubes&lt;/li&gt;
&lt;li&gt;Milk to cover it all&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://henryisonline.com/blog/mango-processing/MFS5ld7VLZ-1200.png&quot; alt=&quot;ed5f0cd141f78c09dd49ff4da3c32643.jpeg&quot; width=&quot;1200&quot; height=&quot;1600&quot;&gt;&lt;/p&gt;
&lt;p&gt;It turned out great! The smoothie recipe makes enough for two people, so we had a glass each before bagging the rest of the mangoes.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://henryisonline.com/blog/mango-processing/mM3DhmogY2-1200.png&quot; alt=&quot;0838f4178dc2d4fa99e38fbbc6e02938.jpeg&quot; width=&quot;1200&quot; height=&quot;1600&quot;&gt;&lt;/p&gt;
&lt;p&gt;Using the same blue scoop in the image above, I scooped the mango pieces into the bags while my Dad held them open. After bagging, we ended up with &lt;strong&gt;14&lt;/strong&gt; serves of mangoes.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://henryisonline.com/blog/mango-processing/kDoBiXRWDB-1200.png&quot; alt=&quot;9599f37e8f649ae0ae90f4fc9946e207.jpeg&quot; width=&quot;1200&quot; height=&quot;900&quot;&gt;&lt;/p&gt;
&lt;p&gt;Straight into the freezer they go.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://henryisonline.com/blog/mango-processing/4IHv4bJT39-1200.png&quot; alt=&quot;7890a7ffdbc10d8cf02ef53c52fc0e15.jpeg&quot; width=&quot;1200&quot; height=&quot;900&quot;&gt;&lt;/p&gt;
</description>
      <pubDate>Sun, 07 Dec 2025 00:00:00 GMT</pubDate>
      <dc:creator>Henry</dc:creator>
      <guid>https://henryisonline.com/blog/mango-processing/</guid>
    </item>
    <item>
      <title>Creating a simpler static site generator</title>
      <link>https://henryisonline.com/blog/creating-a-simpler-static-site-generator/</link>
      <description>&lt;p&gt;I have a lofty goal of creating a simpler static site generator.&lt;/p&gt;
&lt;p&gt;I understand that other generators exist. They&#39;re all great, I&#39;m sure, but I noticed something was missing in the whole realm of SSGs. I wanted something so simple, it&#39;s entire operations could be contained to one script. I wanted something so laser-focused on blogs in a way that so many other SSGs aren&#39;t. I wanted it to run locally, not build from a command in cloudflare pages or something. I wanted a simple way to write in markdown, create html files, and send them to a remote repository somewhere.&lt;/p&gt;
&lt;p&gt;I wanted a &lt;strong&gt;python script.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;This is a development log of how I made that happen. All of the decision I made along the way, the ways I resolved various issues, and how I eventually succeeded in my goal of creating the simplest site generator around.&lt;/p&gt;
&lt;h2 id=&quot;2025-11-04-starting-from-scratch&quot;&gt;2025-11-04 - Starting from scratch&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Started by defining what I wanted from this thing:
&lt;ul&gt;
&lt;li&gt;A single script.&lt;/li&gt;
&lt;li&gt;As few dependencies as possible.&lt;/li&gt;
&lt;li&gt;Easy to reproduce regardless of my OS.&lt;/li&gt;
&lt;li&gt;Work with existing tools I use to write markdown like VSCode or Obsidian.&lt;/li&gt;
&lt;li&gt;Simple folder stricture that makes sense to a human as much as a program.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Looked at python packages that I could use to create it:
&lt;ul&gt;
&lt;li&gt;knew I needed a markdown parser.&lt;/li&gt;
&lt;li&gt;knew I needed something to deal with images.&lt;/li&gt;
&lt;li&gt;discovered python has an inbuilt but limited markdown library.&lt;/li&gt;
&lt;li&gt;found &lt;code&gt;markdown-it-py&lt;/code&gt;, decided to use that since it follows the established &lt;a href=&quot;https://spec.commonmark.org&quot;&gt;CommonMark spec&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;found &lt;code&gt;pillow&lt;/code&gt; and while overkill, does exactly what I need — resize images.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Found out about how dependencies can install OS-wide and mess things up (important, as I plan to work more with python in the future).
&lt;ul&gt;
&lt;li&gt;Found &lt;code&gt;uv&lt;/code&gt;, which promised to solve all my problems.&lt;/li&gt;
&lt;li&gt;Created a new python project in my project folder.&lt;/li&gt;
&lt;li&gt;Didn&#39;t do any research on how to use the tools.&lt;/li&gt;
&lt;li&gt;Fiddled for a bit and gave up for the day.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;2025-11-05-deciding-on-tooling&quot;&gt;2025-11-05 - Deciding on tooling&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fiddled some more with &lt;code&gt;uv&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Hated it.&lt;/li&gt;
&lt;li&gt;Gave up.
&lt;ul&gt;
&lt;li&gt;It was overcomplicated for my needs, and ended up causing me more frustration than it would theoretically solve.&lt;/li&gt;
&lt;li&gt;It was another tool, and my goal was to create something that relied on a few tools as possible.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;I decided to use the standard python tooling: &lt;code&gt;venv&lt;/code&gt; and &lt;code&gt;pip&lt;/code&gt;.
&lt;ul&gt;
&lt;li&gt;This was plenty for my needs  this is not a complicated project, and a simple &lt;code&gt;venv&lt;/code&gt; for two dependencies was all I would need.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Discovered a beautiful &lt;a href=&quot;https://github.com/bingryan/obsidian-markdown-export-plugin&quot;&gt;obsidian plugin&lt;/a&gt; that made my life about 50 times easier.
&lt;ul&gt;
&lt;li&gt;Unfortunately, though I would love to convert straight to HTML, I want to have a dynamic homepage or blog page that updates with an index of all the posts I&#39;ve ever made.&lt;/li&gt;
&lt;li&gt;I&#39;ll still be able to export as markdown to my source folder and run the site generator script over everything when I want to publish a post.&lt;/li&gt;
&lt;li&gt;This saved me from having to use &lt;code&gt;draft&lt;/code&gt; frontmatter tags in my posts — they only appear on my blog when I manually put them there.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Found an &lt;em&gt;incredible&lt;/em&gt; macOS shortcut for punctuation: &lt;code&gt;opt+-&lt;/code&gt; makes an en-dash (–), and &lt;code&gt;opt+shift+-&lt;/code&gt; makes an em-dash(—).
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;God I love this computer.&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;2025-11-08&quot;&gt;2025-11-08&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;I did some (read: one) tests with &lt;code&gt;markdown-it-py&lt;/code&gt;. They were successful! I passed a string into the renderer, and when printing the result of the variable attached to the render command, I got an HTML output in the terminal.&lt;/li&gt;
&lt;li&gt;I decided that now would be the best time to also learn ZSH, since I wanted ti put together a shell script that would install all the things I needed in one command. I have no idea why I did this, but I have a &lt;code&gt;.sh&lt;/code&gt; file in my directory now.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;2025-11-14&quot;&gt;2025-11-14&lt;/h2&gt;
&lt;p&gt;I gave up.&lt;/p&gt;
&lt;p&gt;There are a lot of static site generators out there already, and of them all, &lt;a href=&quot;https://111ty.dev&quot;&gt;Eleventy&lt;/a&gt; is probably the best option for me anyway. I want to create a real home on the internet, and having a tool like Eleventy that can grow with me is the best thing I need. Sure, it&#39;s &lt;em&gt;way&lt;/em&gt; more than I need at the moment for just building a blog, but it means that I don&#39;t have to spend the time and energy building a new tool when everything I could ever want is only an &lt;code&gt;npm install&lt;/code&gt; away.&lt;/p&gt;
&lt;p&gt;I&#39;ll have to learn some javascript to make this work, but it&#39;s a well documented language and will expand my knowledge base. It&#39;s worth the effort of learning something new to do what I want to do. If I want to expand my website in the future, I can pick and choose from the vast array of plugins that work with Eleventy.&lt;/p&gt;
&lt;p&gt;This, above anything, was a learning experience. It helped me learn that trying to make everything exactly the way I want (at least while I&#39;m in the stage of life that I am now) is not the best way of doing things, especially when there are already tools that do everything I want to do and all I have to do is learn how to use them.&lt;/p&gt;
&lt;p&gt;I&#39;m sure I&#39;ll come back to this. &lt;a href=&quot;https://herluf-ba.github.io/writing-a-static-site-generator-in-a-single-file.html&quot;&gt;It&#39;s been done before in other languages&lt;/a&gt;, and I don&#39;t see why I couldn&#39;t do what I see out to do sometime in the future, given I have the time and resources to do so. In the meantime, I&#39;ll read the &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/JavaScript&quot;&gt;Mozilla JavaScript docs&lt;/a&gt; and learn how to use the tools that already exist.&lt;/p&gt;
</description>
      <pubDate>Fri, 14 Nov 2025 00:00:00 GMT</pubDate>
      <dc:creator>Henry</dc:creator>
      <guid>https://henryisonline.com/blog/creating-a-simpler-static-site-generator/</guid>
    </item>
    <item>
      <title>Shut Up About The F*cking Glass</title>
      <link>https://henryisonline.com/blog/shut-up-about-the-f-cking-glass/</link>
      <description>&lt;p&gt;I have seen a lot of hate towards macOS 26 Tahoe.&lt;/p&gt;
&lt;p&gt;Some of is is genuinely warranted. I&#39;ve seen truly abhorrent memory leaks in both Calculator and Messages, and some very strange behaviour in Safari. I&#39;ve seen weird UI bugs, issues with window rendering, and a lot of odd behaviour in the some of Apple&#39;s own apps. But that&#39;s not what the vast majority of the complaints are about — god forbid we bring attention to misbehaving software. No, instead, most of the complaints are levelled at the &lt;em&gt;appearance&lt;/em&gt; of the Liquid Glass redesign, and frankly, it&#39;s &lt;em&gt;driving me up the fucking wall.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Genuinely, some of the stupidest sentences I have ever read online have come from people complaining about the &lt;em&gt;look&lt;/em&gt; of macOS 26. To some extent, I understand. The quality of the UI chrome (or rather, glass) in the 26.0 update is &lt;em&gt;well&lt;/em&gt; below the standard that one has come to expect from Apple based on their track record, in terms of stability at least. But regarding the UI elements themselves? You&#39;d be forgiven for thinking Apple made the entire interface &lt;strong&gt;neon green&lt;/strong&gt; the way the some folks are complaining about it.&lt;/p&gt;
&lt;p&gt;Some of the complaints I&#39;ve seen make me genuinely question my sanity. I have seen comments on forums and reddit threads and tech blogs about how &lt;em&gt;&amp;quot;no-one can use the computers anymore because the corner radius is bigger now!&amp;quot;&lt;/em&gt; or how the sidebars &lt;em&gt;&amp;quot;look like other windows now and it&#39;s too confusing!&amp;quot;&lt;/em&gt; Do you hear yourselves? Am I the only person alive still managing to use their Mac daily despite the &lt;em&gt;&amp;quot;terrible horrible update&amp;quot;&lt;/em&gt;? What the hell do you mean about the sidebar looking like a whole seperate window?? &lt;em&gt;&lt;strong&gt;What the hell about your computers is so hard to use???&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;The more hilarious comments I&#39;ve seen are about how Apple has lost their way, and people are moving to &lt;strong&gt;Linux&lt;/strong&gt; in search of UI consistency. Sorry to break the bad news to ya champ, but you won&#39;t find any of that over there. Linux is a lot of things, but visually consistent across all apps on the desktop it &lt;em&gt;certainly is not.&lt;/em&gt; GNOME&#39;s been trying, sure, but it&#39;s a &lt;em&gt;far cry&lt;/em&gt; from Apple, and doesn&#39;t have &lt;em&gt;nearly&lt;/em&gt; the level of polish that even the most unpolished UI glass has on a Mac.&lt;/p&gt;
&lt;p&gt;Complaints from app developers I can understand — Apple dropped a whole new UI on you and gave you a few months to completely change and rebuild your apps against the new SDK, so being pissed about the amount of development work required just to change how your app looks when you could&#39;ve been writing new features is completely understandable. But from users? Nah.&lt;/p&gt;
&lt;p&gt;The computers look different, I get it. But not &lt;em&gt;that&lt;/em&gt; different. It&#39;s a little rounder, a little brighter, and a little more translucent. Honestly, some of you just have to &lt;em&gt;get the fuck over it.&lt;/em&gt; And if you &lt;em&gt;really&lt;/em&gt; can&#39;t, you can always roll back your OS version to Sequoia. It&#39;s not the end of the world because the buttons are rounder.&lt;/p&gt;
&lt;p&gt;My honest feelings about the whole issue are these: if you&#39;re utterly unable to do any work on your computer because the window corner radius got larger or the sidebar got more transparent, then &lt;em&gt;maybe you should be doing something more important.&lt;/em&gt; And if the changes to the UI are enough to turn you off macOS for good, &lt;em&gt;maybe you weren&#39;t enjoying it to begin with, and maybe it&#39;s better if you use Linux or Windows instead.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;I&#39;ve been working just fine with macOS Tahoe. Dare I say, I actually prefer it to Sequoia. Beyond the UI changes (which I enjoy), there are heaps of changes across the board which make the whole operating system more enjoyable and useable. I think Apple released all the operating systems too early, and they needed &lt;em&gt;much&lt;/em&gt; more time in the oven before they were ready for public release. But it&#39;s not a crime againt humanity for the user interface of an OS to change. The whole issue is &lt;em&gt;way&lt;/em&gt; overblown.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Please, for the love of god,&lt;/strong&gt; &lt;em&gt;&lt;strong&gt;Shut Up And Use The Fucking Computer.&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
</description>
      <pubDate>Sun, 19 Oct 2025 00:00:00 GMT</pubDate>
      <dc:creator>Henry</dc:creator>
      <guid>https://henryisonline.com/blog/shut-up-about-the-f-cking-glass/</guid>
    </item>
    <item>
      <title>Unmounting drives en masse with AppleScript</title>
      <link>https://henryisonline.com/blog/unmounting-drives-en-masse-with-applescript/</link>
      <description>&lt;p&gt;&lt;em&gt;I recently switched to using a Mac full-time. I wanted to escape from Windows and all the hassles that come with it, and I&#39;ll write about that soon, For now though, please enjoy this piece about a handy litte facet of macOS that makes my life a lot easier.&lt;/em&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Mac users have undoubtedly experienced macOS&#39;s paranoia about ejecting (or &amp;quot;unmounting&amp;quot;) external drives. As someone who recently made the switch from Windows, it was a bit worrying to see various warnings pop up in my notification centre about how the drives attached to my docking station were not ejected properly after I unceremoniously yanked the Thunderbolt cable from my MacBook.&lt;/p&gt;
&lt;p&gt;This behaviour doesn&#39;t exist in Windows -- at least, it hasn&#39;t since early versions of Windows 10 (v1809 to be exact), when Microsoft updated the default USB policy to &amp;quot;&lt;strong&gt;Quick Removal&lt;/strong&gt;&amp;quot; rather than &amp;quot;&lt;strong&gt;Better Performance&lt;/strong&gt;&amp;quot;. This meant that users could just yank the drive out without borthering to eject it first. Mac users don&#39;t have that luxury, and It was one of the many thing I wasn&#39;t aware of before making the switch.&lt;/p&gt;
&lt;p&gt;If you&#39;re dealing with only one drive at a time, this really isn&#39;t a problem. Unmounting the drives is as simple as clicking the &amp;quot;unmount&amp;quot; icon to the right of the drive name in Finder. However, it can get a little cumbersome when dealing with many drives at once, as I often do. In fact, my regular usage sees &lt;em&gt;three&lt;/em&gt; external drives connected at any one time -- one of which is my Time Machine backup. It&#39;s not a difficult thing by any means to unmount all of these drives, but it&#39;s something I forget to do often enough when taking my MacBook out of the house that I decided I needed a tool to help me do it more efficiently.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Enter AppleScript.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/AppleScript&quot;&gt;AppleScript&lt;/a&gt; is a really handy high-level scripting language built into macOS, and it can be used to automate almost any functions of macOS itself. I had heard about if before (and truth be told, it was one of the reasons for me to switch in the first place), and I figured it would be the perfect way for me to eject all my drives at once.&lt;/p&gt;
&lt;p&gt;With a little help from reddit and ChatGPT, I was able to learn enough to write a script in about half an hour, and made this:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-applescript&quot;&gt;tell application &amp;quot;Finder&amp;quot;
	if exists disk &amp;quot;Disk 1&amp;quot; then
		eject disk &amp;quot;Disk 1&amp;quot;
	end if
	if exists disk &amp;quot;Disk 2&amp;quot; then
		eject disk &amp;quot;Disk 2&amp;quot;
	end if
	if exists disk &amp;quot;Time Machine&amp;quot; then
		eject disk &amp;quot;Time Machine&amp;quot;
	end if
end tell
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This script works like this. Firstly, the &lt;code&gt;tell&lt;/code&gt; command calls the application you specifically name (&lt;code&gt;Finder&lt;/code&gt;, in this case) to do a specific task, denoted by the indented line below the &lt;code&gt;tell&lt;/code&gt; command. The task here is to check that a &lt;code&gt;disk&lt;/code&gt; object exists within Finder that uses that particular name using a simpel &lt;code&gt;if&lt;/code&gt; statement. If it exists, eject it. If not, move on to the next line.&lt;/p&gt;
&lt;p&gt;This little automation can then be saved (Cmd+S) and then compiled (hammer icon). Then, to make it accessable from the menu bar, I put it in the &lt;strong&gt;User Scripts&lt;/strong&gt; folder (under &lt;code&gt;/Users/usr/Library/Scripts&lt;/code&gt;). I had to first change the Script Editor settings to show the Script Menu in the menu bar, but after that, it was smooth sailing. The script itself appears at the bottom of the script menu, and clicking on it makes it run. With this, I can quickly and easily unmount all the external drives that stay attached to my docking station without needing to drag the drive icons on the desktop to the trash.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://henryisonline.com/blog/unmounting-drives-en-masse-with-applescript/kx7MY7-5pN-548.png&quot; alt=&quot;A screenshot of the macOS menu bar, showing the script menu on the far left. It looks like a paper scroll shown from a 3/4 angle, curled up to form an &amp;quot;S&amp;quot; shape. The are two main menu items: Open Scripts Folder (with right pointing arrow on the edge of the menu item), and Open Script Editor.app. There is a divider that spans the width of the menu, and below that are 6 folders all with right-pointing arrows: ColourSync, Folder Actions, Printing Scripts, Script Editor Scripts, UI Element Scripts, and VoiceOver. There is another full-width divider, the, at the very bottom of the menu, is my script called &amp;quot;Unmount External Drives&amp;quot;. It has the icon of a simple text document - that is, a page with the top right corner folded inward such that it covers the page slightly, and fuzzy lines indicating text on the page.&quot; width=&quot;548&quot; height=&quot;582&quot;&gt;&lt;/p&gt;
</description>
      <pubDate>Tue, 07 Oct 2025 00:00:00 GMT</pubDate>
      <dc:creator>Henry</dc:creator>
      <guid>https://henryisonline.com/blog/unmounting-drives-en-masse-with-applescript/</guid>
    </item>
    <item>
      <title>Something excellent just happened</title>
      <link>https://henryisonline.com/blog/something-excellent-just-happened/</link>
      <description>&lt;p&gt;&lt;em&gt;This post very late, and for that I am sorry. I started drafting this and then just about everything happened all once — I’ll provide a link here when I finally write about that. Regardless, I am finally publishing this, and I hope you enjoy.&lt;/em&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Today I got excellent news. There are &lt;s&gt;three&lt;/s&gt; &lt;s&gt;five&lt;/s&gt; a whole bunch of new blogs on &lt;a href=&quot;https://pika.page/&quot;&gt;Pika&lt;/a&gt;, and the people who made them are some of the most incredible people I’ve ever met online. Here they are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://requiembay.pika.page/&quot;&gt;Requiem Bay&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://nomenclature.pika.page/&quot;&gt;Nomenclature&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://apocalyptography.pika.page/&quot;&gt;Apocalyptography&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://meanwhiletheworld.pika.page/&quot;&gt;Meanwhile The World&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://junk.pika.page/&quot;&gt;Junk Drawer&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://bazombo.pika.page/&quot;&gt;Bazombo&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I’m thrilled beyond measure that more people are taking up blogging. This medium has become so important to me over the last few years, and to have some truly excellent and funny people writing long form content is a dream come true.&lt;/p&gt;
&lt;p&gt;To my fellow writers and friends, I love you all. To Barry and all of Good Enough, I’m incredibly appreciative of the platform you’ve created. And to anyone who reads anything on a blog, thank you. You’re helping more than you know, and your presence and attention being focused on independent writing and creation is so important.&lt;/p&gt;
&lt;p&gt;This is how we fight back against social media algorithms and the increasing amount of AI generated garbage that exists all over the internet at the moment. This is how we win our attention back, and how we support the independent creators who keep pushing their ideas to the internet. This is how we make it out.&lt;/p&gt;
&lt;p&gt;Thank you everyone, from the bottom of my heart. I’m so excited to see what comes next.&lt;/p&gt;
</description>
      <pubDate>Sat, 24 May 2025 00:00:00 GMT</pubDate>
      <dc:creator>Henry</dc:creator>
      <guid>https://henryisonline.com/blog/something-excellent-just-happened/</guid>
    </item>
    <item>
      <title>Keyboard Shortcuts - Praise Be</title>
      <link>https://henryisonline.com/blog/keyboard-shortcuts-praise-be/</link>
      <description>&lt;p&gt;I am a massive fan of keyboard shortcuts, and I think they’re a massive benefit for both productivity and ergonomics. However, this idea falls flat for a lot of people, particularly since we’re in the age of the GUI. For most people, there are precious few reasons to learn and understand keyboard shortcuts when they can do all the same things by clicking an icon on a menu bar. Moving a mouse a clicking a button is much easier than remembering which specific keyboard incantation to press to make something work. However, I’m here to make a case. Current software development practices (at the time of writing) have led us to increasingly simplified icons with reduced legibility. In my opinion, it can &lt;em&gt;really&lt;/em&gt; pay off to learn a few essential keyboard shortcuts to make your life easier.&lt;/p&gt;
&lt;p&gt;This epiphany came while I was writing emails, of all things. Microsoft recently debuted their “New Outlook™”, which, in my opinion, is aesthetically better but functionally worse. It’s essentially their Outlook web app encased in a WebView2 runtime to give it desktop functionality. This means that it doesn’t work without an internet connection, and doesn’t support .ics files. It’s also missing a lot of functionality compared to the old desktop outlook version. Not to mention, the design and layout is different. Not &lt;em&gt;radically&lt;/em&gt; different, but different &lt;em&gt;enough&lt;/em&gt; that it’s befuddling when you first make the switch. However, they did one thing right: &lt;strong&gt;the keyboard shortcuts are all still intact.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;This means that by simply knowing some simple key combinations, you can bypass &lt;em&gt;all&lt;/em&gt; the inconveniences of the new design language and simply enjoy its aesthetics, all while continuing to use the functionality you’re familiar with. For example, I was able to create, format, and send an email — something I do a lot — without &lt;em&gt;ever touching the mouse.&lt;/em&gt; The whole interaction went like this:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;CTRL + N&lt;/code&gt; to create a new email&lt;/li&gt;
&lt;li&gt;Type in the recipient, using &lt;code&gt;TAB&lt;/code&gt; and &lt;code&gt;ENTER&lt;/code&gt; to select the correct address&lt;/li&gt;
&lt;li&gt;&lt;code&gt;TAB&lt;/code&gt; to the subject line and type the subject&lt;/li&gt;
&lt;li&gt;&lt;code&gt;TAB&lt;/code&gt; to the email field and begin writing the email
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;CTRL + B/I/U&lt;/code&gt; for bold/italics/underline&lt;/li&gt;
&lt;li&gt;&lt;code&gt;CTRL + K&lt;/code&gt; for hyperlinks&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Once the email was drafted, &lt;code&gt;CTRL + ENTER&lt;/code&gt; to send&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;This, for me, was much faster than reaching for the mouse, clicking on icons, and highlighting and applying formatting by hand. Granted, it takes practice to memorise these things, but it’s worth it for me. It makes the whole process of interacting with any computer feel more universal and more simple. I don’t feel bogged down by strange or unfamiliar UI or get stuck interpreting minimalist icons — I simply press the keys that I need, and get the job done twice as fast.&lt;/p&gt;
&lt;p&gt;I also really appreciate apps that allow you to assign keyboard shortcuts to specific features. Two apps that I use often — Obsidian and Todoist — allow you to assign or modify their built-in keyboard shortcuts so they don’t clash with system shortcuts, or even just so you can create shortcuts that make more sense for you. I really appreciate this, as I often have keybinds memorised for existing apps, so creating new ones just allows me to add new functionality to my existing workflow rather than modify it. If many apps have a similar function, I usually assign the same keybind to all of them for that one action so I don’t lose my way when switching between them.&lt;/p&gt;
&lt;p&gt;I understand that this is an archaic way of thinking, &lt;em&gt;especially&lt;/em&gt; in the age of the GUI. Realistically, I &lt;em&gt;know&lt;/em&gt; that no-one really needs to know or use keyboard shortcuts for anything, especially since it’s more simple by orders of magnitude to click on a button. It’s a paradigm that makes sense for so many people, and it’s one of the main reasons computers became much more popular. Clicking icons is simply more &lt;em&gt;accessible&lt;/em&gt;. I know all of this, and yet here I am trying to convince you to tap at your keyboard. &lt;em&gt;&lt;strong&gt;Why?&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;Why?? Because it’s just better, that’s why.&lt;/strong&gt;&lt;/em&gt; Look, I’m really not trying to be pushy about this, but it just &lt;em&gt;is&lt;/em&gt;. It’s the whole reason I draft my blog posts in Markdown, the whole reason I use the terminal to update, install, and remove applications, and the whole reason why I write to begin with: &lt;strong&gt;keyboard shortcuts have intention.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I’ve accidentally clicked on the wrong icon or pressed the wrong button &lt;em&gt;countless&lt;/em&gt; times, or in some cases, thanks to overly flat and minimalist UI (urgh), I attempted to click a button when there wasn’t a button at all. Keyboard shortcuts circumvent this entirely. By either looking at the keyboard while you type, or by typing with muscle memory and looking at the screen, you get both tactile and visual feedback from your actions. For example, when italicising text, you feel your fingers press the shortcut &lt;code&gt;CTRL + I&lt;/code&gt; and, at the same time, you see your cursor change from vertical to slanted. This feedback is &lt;em&gt;good.&lt;/em&gt; It’s built-in confirmation that you initiated the right action.&lt;/p&gt;
&lt;p&gt;In many cases, keyboard shortcuts are often just faster. If you’re someone who types a lot, it’s faster for you to work if your fingers never have to leave the keyboard. You have the option to move the cursor backward and forward through the text – or highlight it – with two- or three-key combinations, which is much faster the clicking and dragging the mouse over specific portions of text.&lt;/p&gt;
&lt;p&gt;In Markdown, specific text formatting options have their built-in functions. &lt;code&gt;*[text]*&lt;/code&gt; will &lt;em&gt;italicise&lt;/em&gt; anything, and &lt;code&gt;**[text]**&lt;/code&gt; formats as &lt;strong&gt;bold.&lt;/strong&gt; &lt;code&gt;~~[text]~~&lt;/code&gt; will &lt;s&gt;strikethrough&lt;/s&gt; text, and &lt;code&gt;#&lt;/code&gt;, &lt;code&gt;##&lt;/code&gt;, or &lt;code&gt;###&lt;/code&gt; result in different heading levels. All this is possible with only the keyboard, and by never moving my hand off the keyboard to create this formatting, my flow of ideas and thoughts remains uninterrupted.&lt;/p&gt;
&lt;p&gt;Now if you’ll excuse me, I’m going to get a little strange about computers. For me, keyboard shortcuts also make me feel like I’m collaborating with the computer more than anything else. When I use the keyboard to interact with all the functions of my operating system or my programs, I feel like the computer is an extension of my brain and body, and that means I get more high-quality work done on the computer. When I use the mouse and just click at things, I just feel like I’m pointing at tasks for the computer to do and saying “Just sort that out for me, will you.” It doesn’t feel collaborative or engaging, and it certainly doesn’t lead to me producing my best work.&lt;/p&gt;
&lt;p&gt;I’m not saying everyone should use keyboard shortcuts. From some people, that idea won’t stick well, and they’ll have a harder time using the computer than if they just used the mouse and clicked on icons. But I really want you to give it a try. If you’re reading this blog, then you’re probably familiar enough with computers that keyboard shortcuts will meaningfully improve how you work and interact with computers as a whole.&lt;/p&gt;
&lt;p&gt;Give it a shot. Do some research about what shortcuts are available to you in your application of choice, and start using a few of them for the tasks you do most often. And please, above anything, have empathy for the machine. It’s doing its best.&lt;/p&gt;
</description>
      <pubDate>Fri, 04 Apr 2025 00:00:00 GMT</pubDate>
      <dc:creator>Henry</dc:creator>
      <guid>https://henryisonline.com/blog/keyboard-shortcuts-praise-be/</guid>
    </item>
    <item>
      <title>Reupholstery Is Fun And Everyone Should Do It</title>
      <link>https://henryisonline.com/blog/reupholstery-is-fun-and-everyone-should-do-it/</link>
      <description>&lt;p&gt;The chairs that go with the dining table at my house are old. We’ve had them for over a decade, and the fabric and foam filling were both pretty degraded. They looked worn and a bit rough, and needed some work done to help them look their best. Thankfully, the timber frame of the chairs were fine, it was just the cushions that needed replacing.&lt;/p&gt;
&lt;h1 id=&quot;measuring-the-cushions&quot;&gt;Measuring the cushions&lt;/h1&gt;
&lt;p&gt;To replace the cushions, the first step was to remove them from the chairs. This was quite easy - they were attached with a screw in each corner.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://henryisonline.com/blog/reupholstery-is-fun-and-everyone-should-do-it/pS_Uq7EhyU-1200.png&quot; alt=&quot;316aa9883a137ac938f4e5a803867d3c.jpg&quot; width=&quot;1200&quot; height=&quot;900&quot;&gt;&lt;br&gt;
The old fully assembled chair compared to the same chair with the cushion removed&lt;/p&gt;
&lt;p&gt;After this, I had to disassemble the cushions themselves. They had quite a few layers:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The top layer, the one that you sit on&lt;/li&gt;
&lt;li&gt;An underlayer for the top fabric&lt;/li&gt;
&lt;li&gt;The foam cushion&lt;/li&gt;
&lt;li&gt;The plywood base - this was 5mm ply, and it had delaminated over time. This needed replacing, which made the job a little more complicated&lt;/li&gt;
&lt;li&gt;An underlayer for the base of the chair&lt;/li&gt;
&lt;li&gt;A black fabric finish layer for the underside of the cushion&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://henryisonline.com/blog/reupholstery-is-fun-and-everyone-should-do-it/35JyRnznLo-1200.png&quot; alt=&quot;a2778879a3c07b09e5e5f12d01d68669.jpg&quot; width=&quot;1200&quot; height=&quot;1600&quot;&gt;&lt;br&gt;
The layers of the cushion - black finish layer not pictured.&lt;/p&gt;
&lt;p&gt;From these layers, I was able to determine the dimensions for all the materials I’d need.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;500x500m plywood - preferably thicker material&lt;/li&gt;
&lt;li&gt;500x500mm high density foam - something about 50mm thick&lt;/li&gt;
&lt;li&gt;500x500mm squares of white and black fabric
&lt;ul&gt;
&lt;li&gt;white for the lower underlayer, black for the finish layer&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;740x740mm upper underlayer fabric&lt;/li&gt;
&lt;li&gt;My mum had already chosen the fabric she wanted for the top, so I used that.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://henryisonline.com/blog/reupholstery-is-fun-and-everyone-should-do-it/K06e0e2w1Q-1200.png&quot; alt=&quot;72efe7f9d0a9c83f53fc14c766b34505.jpeg&quot; width=&quot;1200&quot; height=&quot;1200&quot;&gt;&lt;/p&gt;
&lt;h1 id=&quot;getting-the-materials&quot;&gt;Getting the materials&lt;/h1&gt;
&lt;p&gt;I bought the fabric that I needed from Spotlight. While they didn’t have the exact fabric I was looking for, I found something better. Plain white and black poplin was the cheapest fabric they had there, and was perfect for this upholstery project. It was a higher thread count and overall a more sturdy material than the upholstery fabrics I pulled out of the cushions on the first place.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://henryisonline.com/blog/reupholstery-is-fun-and-everyone-should-do-it/hGlaI3MLO1-1200.png&quot; alt=&quot;27b14a051377738588ce5e26a8725aca.jpg&quot; width=&quot;1200&quot; height=&quot;900&quot;&gt;&lt;br&gt;
Fabric cut to size and laid out on the dining table&lt;/p&gt;
&lt;p&gt;After the fabrics, I had to get the new timber for the base. My main concern when searching for the timber was its stability - I wanted something that could easily withstand another 10 years of use and would be resilient against the dramatic temperature and humidity changes that we can experience in North Queensland. I ended up finding 1200×2400mm size 12mm thick marine-grade plywood with a thin oak veneer, which was perfect for my needs.&lt;/p&gt;
&lt;p&gt;Despite &lt;a href=&quot;https://henryisonline.pika.page/posts/building-a-workbench&quot;&gt;building a workbench a little while ago&lt;/a&gt;, I couldn’t use that to cut the plywood down to size for two reasons:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;The saw wasn’t fixed to the bench at the time I was constricting the new cushions (though this has been done at the time of writing), and&lt;/li&gt;
&lt;li&gt;The plywood wouldn’t fit in my car.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Fortunately, Bunnings offers a panel saw cutting service, and I asked them to cut the plywood down into eight 500x500mm squares and let me keep the offcuts. This made it much easier to transport.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://henryisonline.com/blog/reupholstery-is-fun-and-everyone-should-do-it/knaiHaqm1g-1200.png&quot; alt=&quot;a36084baf075e59e3bd22be87dd674ba.jpg&quot; width=&quot;1200&quot; height=&quot;900&quot;&gt;&lt;br&gt;
The cut plywood in the back of my car.&lt;/p&gt;
&lt;p&gt;The foam was a bit more of a challenge, in that I had &lt;em&gt;no clue&lt;/em&gt; what the original foam was or what thickness it used to be. I found some upholstery foam typically used for caravans and camper vans, which seemed like it might be pretty resilient and sturdy. I got that foam cut to the same 500x500mm squares as the plywood base, but eventually I had to get them trimmed to shape.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://henryisonline.com/blog/reupholstery-is-fun-and-everyone-should-do-it/oM73Nmh7ZU-1200.png&quot; alt=&quot;cb1d16c8e286c5492bed4dd32ea29de1.jpg&quot; width=&quot;1200&quot; height=&quot;1472&quot;&gt;&lt;br&gt;
The foam squares on my dining table.&lt;/p&gt;
&lt;h1 id=&quot;building-the-cushions&quot;&gt;Building the cushions&lt;/h1&gt;
&lt;ol&gt;
&lt;li&gt;I used the shape of the old plywood base as a template and traced the shape onto the new plywood squares, and cut those shapes out with a jigsaw. I also got the foam trimmed to the same shape because it was was an &lt;em&gt;absolute pain&lt;/em&gt; to do at home.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&quot;https://henryisonline.com/blog/reupholstery-is-fun-and-everyone-should-do-it/kkxZfDcGOp-1200.png&quot; alt=&quot;b5b873558695b0761ca1579f35d817a9.jpeg&quot; width=&quot;1200&quot; height=&quot;900&quot;&gt;&lt;br&gt;
&lt;img src=&quot;https://henryisonline.com/blog/reupholstery-is-fun-and-everyone-should-do-it/7SbT5XHB8Z-1200.png&quot; alt=&quot;89ea38ea98aa625e9e09ff11a16f4bf3.jpeg&quot; width=&quot;1200&quot; height=&quot;900&quot;&gt;&lt;br&gt;
&lt;img src=&quot;https://henryisonline.com/blog/reupholstery-is-fun-and-everyone-should-do-it/ILA8E37aiN-1200.png&quot; alt=&quot;7f6515cd0a6b756eaf9d4e3bf6776c8e.jpeg&quot; width=&quot;1200&quot; height=&quot;1600&quot;&gt;&lt;br&gt;
The foam wasn’t &lt;em&gt;exactly&lt;/em&gt; the same shape because there had to be some overhang on the front of the chair the I could pull down over the front of the cushion to provide padding for people’s legs.&lt;/p&gt;
&lt;ol start=&quot;2&quot;&gt;
&lt;li&gt;I then glued the foam to the plywood with spray adhesive, making sure to align the back edge of the foam to the back edge of the plywood.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&quot;https://henryisonline.com/blog/reupholstery-is-fun-and-everyone-should-do-it/EaDyU9jecs-1200.png&quot; alt=&quot;0f6e309c982db650685cc6d8fd0a44d6.jpeg&quot; width=&quot;1200&quot; height=&quot;900&quot;&gt;&lt;br&gt;
&lt;img src=&quot;https://henryisonline.com/blog/reupholstery-is-fun-and-everyone-should-do-it/zmrTeo8QZx-1200.png&quot; alt=&quot;842878dd83669a975442663a7910102f.jpeg&quot; width=&quot;1200&quot; height=&quot;1600&quot;&gt;&lt;/p&gt;
&lt;ol start=&quot;3&quot;&gt;
&lt;li&gt;After leaving the cushions to dry overnight, I stapled the first underlayer on. This was the underlayer for the top, and was the one that would provide the most tension on the foam.
&lt;ul&gt;
&lt;li&gt;Unfortunately, I cut the fabric slightly too small here. I probably could have done with an extra 20mm on each side, but I made it work. The tension of the foam was higher this way anyway, so probably a good thing ultimately.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&quot;https://henryisonline.com/blog/reupholstery-is-fun-and-everyone-should-do-it/mI3w8U6mWI-1200.png&quot; alt=&quot;97ce9d36337dc0ff0ccffe49a8cd9bfe.jpeg&quot; width=&quot;1200&quot; height=&quot;1600&quot;&gt;&lt;/p&gt;
&lt;ol start=&quot;4&quot;&gt;
&lt;li&gt;After this I stapled on the lower underlayer. This went on much more easily, as its main job was to be a padding layer for the black finish layer. I had to stretch it to get a bit of tension (again, probably could have cut the fabric larger), but it went on well.
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Note: everyone should buy an Arrow T-50 staple gun&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&quot;https://henryisonline.com/blog/reupholstery-is-fun-and-everyone-should-do-it/P0KKEnNuXD-1200.png&quot; alt=&quot;00cfcdcdd70f5090ace654a057cb5233.jpeg&quot; width=&quot;1200&quot; height=&quot;900&quot;&gt;&lt;br&gt;
&lt;img src=&quot;https://henryisonline.com/blog/reupholstery-is-fun-and-everyone-should-do-it/tOKHKq7NSb-1200.png&quot; alt=&quot;98a5466bc1aceada41a1076c0d10506c.jpeg&quot; width=&quot;1200&quot; height=&quot;899&quot;&gt;&lt;/p&gt;
&lt;ol start=&quot;5&quot;&gt;
&lt;li&gt;
&lt;p&gt;I installed the top layer for the cushion after that, and completely forgot to take any photos of it. This was the fabric that my mum bought, and it looked beautiful.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Finally, I attached the black finish layer on the underside of the cushion. Again, I forgot to take any photos, so you’ll have to use your imagination here. It looked the same as the white underlayer from above, only black and a slightly thicker fabric.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h1 id=&quot;finishing-the-chairs&quot;&gt;Finishing the chairs&lt;/h1&gt;
&lt;p&gt;After doing the process above &lt;em&gt;seven more times&lt;/em&gt;, the cushions were finished. I attached them to the chair frames in the same way I took them off – four screws, one in each corner. I was able to use slightly longer screws for a more secure fit thanks to the thicker plywood I used for the base.&lt;/p&gt;
&lt;p&gt;Compared to the older worn-out fabric, I think these look great. They’re also much more comfortable thanks to the thicker foam cushion.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://henryisonline.com/blog/reupholstery-is-fun-and-everyone-should-do-it/FbUCOuRXxw-1200.png&quot; alt=&quot;4a10c5c0cb8f3267e4d7ab40ec9bf585.jpeg&quot; width=&quot;1200&quot; height=&quot;1600&quot;&gt;&lt;br&gt;
&lt;img src=&quot;https://henryisonline.com/blog/reupholstery-is-fun-and-everyone-should-do-it/YyMOsNZ5Yt-1200.png&quot; alt=&quot;ef4b1244d9bf0ea7bdd830592824f825.jpeg&quot; width=&quot;1200&quot; height=&quot;1600&quot;&gt;&lt;/p&gt;
</description>
      <pubDate>Tue, 04 Mar 2025 00:00:00 GMT</pubDate>
      <dc:creator>Henry</dc:creator>
      <guid>https://henryisonline.com/blog/reupholstery-is-fun-and-everyone-should-do-it/</guid>
    </item>
    <item>
      <title>Hello again</title>
      <link>https://henryisonline.com/blog/hello-again/</link>
      <description>&lt;p&gt;I’m experimenting with GitHub, and so far it’s going &lt;em&gt;fine&lt;/em&gt;. Not great really, or bad either. Just &lt;em&gt;fine&lt;/em&gt;. That’s the nature of learning and experimenting I suppose.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://henryisonline.com/blog/hello-again/GbYJ-CZmnJ-311.png&quot; alt=&quot;e6d50daa61f2cf2e557c9ebc74edd713.png&quot; width=&quot;311&quot; height=&quot;284&quot;&gt;&lt;br&gt;
I had vscode, terminal, and github open all at once, and tried to do things with all of them. Don’t do this if you treasure your files.&lt;/p&gt;
&lt;p&gt;I cherry picked the hairiest and weirdest bit of my git history specifically because I think it&#39;s funny. I made a lot of mistakes here. Whoops.&lt;/p&gt;
&lt;p&gt;I also made a new face for my face. This image has become important to me, if only because it’s funny and I like it.&lt;br&gt;
&lt;img src=&quot;https://henryisonline.com/blog/hello-again/dStglxx7cq-1200.png&quot; alt=&quot;e50e562129b536aef84738b5f4bb6ec1.jpeg&quot; width=&quot;1200&quot; height=&quot;1200&quot;&gt;&lt;/p&gt;
&lt;p&gt;Got a new job too, and it’s going well. I’ll have to update my now page, which I’d link here except that Pika’s editor is a bit cumbersome on mobile. As far as creating a post goes though, it’s really easy to use this platform. I think I need to draft my posts in here instead of anywhere else.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I like it here. It feels peaceful.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&quot;https://henryisonline.com/blog/hello-again/ZU8nGOXiAW-1086.png&quot; alt=&quot;5c3683d319ab2f9bf7c76646a51078d1.jpeg&quot; width=&quot;1086&quot; height=&quot;724&quot;&gt;&lt;br&gt;
Cat. But you knew that already.&lt;/p&gt;
&lt;h2 id=&quot;how-does-this-thing-work-again&quot;&gt;How does this thing work again?&lt;/h2&gt;
&lt;p&gt;This, beyond anything, is an experiment. Not only an experiment about using this website and if I like it, but if I like blogging and writing in general.&lt;/p&gt;
&lt;p&gt;I think I do. I like writing, and I think as far as writing goes, this is the best place to share it socially.  I’m pretty tired of microblogging on social media, and I want a space where my stuff lives.&lt;/p&gt;
&lt;p&gt;A blog sounds good and practical, especially since I want to write more than I want to post photos or videos. Maybe a static site generator like &lt;a href=&quot;https://www.11ty.dev/&quot;&gt;Eleventy&lt;/a&gt; might be better. Maybe. Anyway.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Wonderful monospaced font. 
Running a website seems hard, and I&#39;d much rather someone else do it.
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The biggest thing that I need is to reduce the friction between myself and writing. Putting words on the page is the goal. A website and its inner workings can come later, for now I just need to write more. Maybe I’ll do one of those “write something once a week” challenges.&lt;/p&gt;
&lt;p&gt;Ah well. lots of solutions to problems that I may not even have. For now though, I’m back.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://henryisonline.com/blog/hello-again/XQfj80E1UL-1200.png&quot; alt=&quot;A photo of the sky I took. Sometimes I forget that I took it because it looks so lovely. There&#39;s some magic in photography.&quot; width=&quot;1200&quot; height=&quot;400&quot;&gt;&lt;/p&gt;
&lt;p&gt;.     .     .&lt;/p&gt;
</description>
      <pubDate>Wed, 19 Feb 2025 00:00:00 GMT</pubDate>
      <dc:creator>Henry</dc:creator>
      <guid>https://henryisonline.com/blog/hello-again/</guid>
    </item>
    <item>
      <title>A solution for Topcon Office on ARM-based computers</title>
      <link>https://henryisonline.com/blog/a-solution-for-topcon-office-on-arm-based-computers/</link>
      <description>&lt;p&gt;Recently, the surveying students in my cohort were required to use Topcon Office as part of a university course. As with most CAD software, Topcon Office only runs on Windows, but I didn’t realise that it would have issues running on specific versions of Windows. I’m going to get detailed about this, so if you’re just after the solution for this problem, there’s a TL;DR at the bottom of this article.&lt;/p&gt;
&lt;p&gt;The issue arose when my friend was asked to install Topcon Office – it simply wouldn’t install on her computer. Initially, I couldn’t figure out why it wouldn’t install, besides general Windows Weirdness™. She had bought a new Surface Laptop for the surveying degree so she could run CAD software locally and not have to deal with our university’s browser-based remote virtual machines. Generally, a new laptop with an up-to-date OS wouldn’t be a problem. However, I found out that this was an ARM-based Surface Laptop, which used Microsoft’s Prism emulation layer for x86 software compatibility.&lt;/p&gt;
&lt;p&gt;For those unfamiliar, there are two main processor architectures: &lt;strong&gt;ARM&lt;/strong&gt; and &lt;strong&gt;x86&lt;/strong&gt;. &lt;strong&gt;x86&lt;/strong&gt; is known as a “legacy” architecture, and most software for desktops and laptops has been written to work on these processors. &lt;strong&gt;ARM&lt;/strong&gt; is a newer and more efficient architecture, and is used in phones, tablets, and all Apple products (at the time of writing). These two architectures operate differently at a fundamental level, so software written for one processor architecture &lt;em&gt;cannot&lt;/em&gt; run directly on the other architecture. It’s like different languages – it would be almost impossible for someone who only knows French to communicate with someone who only knows Japanese.&lt;/p&gt;
&lt;p&gt;For any software written x86 to run on ARM, an emulation layer is required – essentially a layer of code that pretends to be an x86 processor to the software and spits out ARM instructions to the actual processor. Think of it like a translator – they can act as a bridge between the French person and the Japanese person, translating to Japanese when the French person asks a question, and translating back to French when the Japanese person responds.&lt;/p&gt;
&lt;p&gt;Apple recently transitioned all their Macs away from using Intel’s x86-based processors and onto their own M-series processors, which use the ARM architecture. Their emulation layer, called Rosetta, has been largely successful, and the entire Intel to M-series transition has been met with resounding praise. Microsoft recently attempted a similar thing, and they partnered with Qualcomm to try to create a laptop chip that performed just as well as Apple’s M-series does. They also needed a translation layer, which they called Prism. However, because of the way that Windows works, Prism can’t emulate any software that requires more direct access to the processor (called kernel mode in Windows). As a result, many pieces of software just &lt;em&gt;don’t work&lt;/em&gt; on ARM-based Windows computers when you install it the normal way, including Topcon Office.&lt;/p&gt;
&lt;p&gt;During the install process, I saw that the Topcon Office installer was attempting to install the x86 version of the “Microsoft Visual C++ Redistributable”, which is a code library that a lot of Windows software uses. This in itself is not a problem, as you can install a lot of x86 software on ARM laptops thanks to emulation layers. However, the C++ Redistributable is one of those bits of software that needs kernel mode to work properly, which Prism can’t emulate. As such, this x86 based software simply wouldn’t install or run on the ARM based laptop.&lt;/p&gt;
&lt;p&gt;The solution was simple in the end: just manually download and install &lt;a href=&quot;https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist?view=msvc-170&quot;&gt;the C++ Redistributable that has been written and compiled for ARM&lt;/a&gt; (called ARM64 in Microsoft’s documentation) and hope that the Topcon Office installer sees the C++ Redistributable that’s already installed and doesn’t attempt to install the x86 version instead. After installing the ARM Redistributable package, I ran the Topcon Office installer again, and it worked flawlessly. It detected that a C++ Redistributable package was already installed and carried on without trying to download anything else. The rest of the CAD package was perfectly supported by the Prism emulation layer and was operating entirely as normal.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; The issue was that Topcon Office called for the Microsoft Visual C++ Redistributable to be installed but was attempting to install and run the x86 version, which does not work on ARM-based Windows laptops. To rectify this, I installed &lt;a href=&quot;https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist?view=msvc-170&quot;&gt;the C++ Redistributable that has been written and compiled for ARM&lt;/a&gt; (called ARM64 in Microsoft’s documentation) and ran the installer again. There were no problems after that, and the rest of the CAD package operated perfectly.&lt;/p&gt;
</description>
      <pubDate>Sun, 15 Dec 2024 00:00:00 GMT</pubDate>
      <dc:creator>Henry</dc:creator>
      <guid>https://henryisonline.com/blog/a-solution-for-topcon-office-on-arm-based-computers/</guid>
    </item>
    <item>
      <title>Building a workbench</title>
      <link>https://henryisonline.com/blog/building-a-workbench/</link>
      <description>&lt;p&gt;I really enjoy woodworking. I like watching videos about it, I like learning about it, I like the tools, and I &lt;em&gt;love&lt;/em&gt; the kinds of things people can make out of timber. Unfortunately, most of the experience I’ve had with woodworking came from a furnishing skills class in high school several years ago, and I&#39;ve only had limited access to fine woodworking tools or machinery. I wanted to create a space for woodworking in my shed - one that has most of the functionality of a proper furniture shop - and a key part of this was finding a good table saw.&lt;/p&gt;
&lt;h1 id=&quot;the-saw-saga&quot;&gt;The saw saga&lt;/h1&gt;
&lt;p&gt;I had decided to get a table saw as that would give me the precision I wanted to create custom furniture. However, I didn’t have enough space for a full-size cabinet or panel saw, and needed to find a good jobsite saw that would fit the space. I ended up choosing the Makita MLT100N — a decision I would come to regret.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://henryisonline.com/blog/building-a-workbench/3-AGYQMyRA-1200.png&quot; alt=&quot;f893105a52dcb345cd38c375962c154f.jpg&quot; width=&quot;1200&quot; height=&quot;679&quot;&gt;&lt;em&gt;The Makita MLT100N. It looks like a good deal on paper, but it has some critical flaws.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;I saw this Makita table saw on display for the excellent price of $750 AUD whilst shopping for a new mitre saw. It was a bit of an impulse purchase, especially since it was only $100 more than the mitre saw I was looking at. A table saw can do the job of both a mitre saw and circular saw with the appropriate jigs, which made this saw looked like a great deal on paper. It also offered a wide, extendable table, and a sliding section similar to a much larger panel saw. However, it came with a significant flaw that wasn’t immediately obvious: the fence was not stable.&lt;/p&gt;
&lt;p&gt;Most table saws, even cheaper jobsite saws, have a fence that attaches on both the front and back of the table. The Makita, however, did not. The fence was a thin rectangular piece of extruded aluminium and was only attached front of the table by a simple friction clamp. While this made it easy to move, it also made the fence &lt;em&gt;flexible.&lt;/em&gt; The only part of the saw that was not supposed to move &lt;em&gt;at all&lt;/em&gt; was this part, and it &lt;em&gt;did&lt;/em&gt;. This flexibility made it inaccurate and entirely unsuitable for my needs, so after it sat in its box on the floor of the shed for about two months, I returned it for a full refund. To the generous staff at Total Tools, I thank you.&lt;/p&gt;
&lt;p&gt;After doing my research (this time), I settled on the Hikoki C10R jobsite saw. This saw had the ideal fence: a rack-and-pinion system that was attached to the front &lt;em&gt;and&lt;/em&gt; back of the saw, which made it incredibly sturdy when locked down and &lt;em&gt;very&lt;/em&gt; good for precise adjustments. The fence was attached to the rack by some very sturdy clamps, which made it easy to precisely align with the fence with the blade by placing a straightedge along the blade and pushing the fence up against it. It also came with a fold-out cart that bolted onto the saw, making it very easy to move and set up. &lt;a href=&quot;https://www.protoolreviews.com/hitachi-c10rj-table-saw-review/&quot;&gt;This review&lt;/a&gt; goes into more detail, but the bottom line is this: &lt;strong&gt;It’s a &lt;em&gt;really&lt;/em&gt; good table saw.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://henryisonline.com/blog/building-a-workbench/fu1y2eRgOP-1053.png&quot; alt=&quot;5e66a137293aaff93ae20a4539e05cfe.jpg&quot; width=&quot;1053&quot; height=&quot;1080&quot;&gt;&lt;em&gt;The Hikoki C10R jobsite saw. This thing is great, and it makes an excellent base to build a workbench around.&lt;/em&gt;&lt;/p&gt;
&lt;h1 id=&quot;the-plan&quot;&gt;The plan&lt;/h1&gt;
&lt;p&gt;The goal for the shed was simple: &lt;strong&gt;build a sturdy workbench that will fit in the limited available space and serves many purposes.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;As I said earlier, I really wanted a table saw, and so I began to plan a workbench that would be built around a jobsite saw. However, I couldn’t get too detailed with plans and 3D models because I didn’t know the final dimensions of the saw that was going to be used in the bench. Initially, I had planned to use the Makita table saw, but after exchanging it for the Hikoki saw, the rough dimensions I had planned didn’t match. Ultimately, the plan for this bench was nothing more than a vague sketch on my whiteboard and some basic ideas for joinery.&lt;/p&gt;
&lt;p&gt;I initially planned to use fully surfaced (S4S) pine for the finished build, and had some idea about the dimensions of the timber I would use. An afternoon at the hardware store arranging boards in the timber aisle confirmed that the rough sketches I made would work well, but I decided against S4S timber once I saw the price. For the timber pictured below (plus a few extra boards), before any screws or other hardware, it was going to cost me $622.7 AUD. You read that correctly, dear reader. &lt;strong&gt;Six hundred and twenty-three Australian dollars.&lt;/strong&gt; (and for pine! &lt;em&gt;PINE!!&lt;/em&gt;)&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://henryisonline.com/blog/building-a-workbench/bpHYz1ANJE-1080.png&quot; alt=&quot;35ddc62f2b117e3626160c31cf914573.jpeg&quot; width=&quot;1080&quot; height=&quot;1440&quot;&gt;&lt;em&gt;Ridiculously expensive timber.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;I decided to use construction timber in the end. Bunnings had some 2.4m lengths of 90x35mm structural pine, which were about $24 each. I bought nine of them. I also decided to keep the two larger 90x90mm square posts, as I planned to use them as the legs of the bench. Those pieces each cost $76. The top was to be made of two 1200x597mm pieces of 12mm thick film face plywood, as the black film coating would stop glue from sticking to the workbench. Those two were $25 each. The rest of the bench hardware (the castors, post anchors for the castors, screws) added up to around $100. The total cost of the bench came to about $520, which is a &lt;em&gt;lot&lt;/em&gt; more than I was intending to spend. I think it’s worth it though; a good sturdy workbench should last a lifetime, and that’s exactly what I’m making.&lt;/p&gt;
&lt;h1 id=&quot;the-demolition&quot;&gt;The demolition&lt;/h1&gt;
&lt;p&gt;The plan for this new bench was to replace an existing bench in the shed. The existing bench was fine as a work surface, but it was quite shallow and not really all that useful for woodworking. I tore out the old bench in an afternoon with the goal of salvaging as much timber as I possibly could.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://henryisonline.com/blog/building-a-workbench/GYMkyTn4OV-1200.png&quot; alt=&quot;ce692d0c74c4315e1c593911f5c85b91.jpg&quot; width=&quot;1200&quot; height=&quot;900&quot;&gt;&lt;/p&gt;
&lt;p&gt;The space where the old bench was. Fortunately, it was exactly 2.4m long.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://henryisonline.com/blog/building-a-workbench/qHYfgbyzuM-1200.png&quot; alt=&quot;42ad0193eecef3008b218602c46bfb32.jpg&quot; width=&quot;1200&quot; height=&quot;900&quot;&gt;&lt;/p&gt;
&lt;p&gt;The pile of timber that I recovered from the old bench. There was some useful material in there, but nothing that was of much use for building the new bench unfortunately.&lt;/p&gt;
&lt;h1 id=&quot;day-1-learnings-and-leg-assemblies&quot;&gt;Day 1: Learnings and leg assemblies&lt;/h1&gt;
&lt;p&gt;After the old bench was demolished, the new bench could be built in its place. My Dad was building this bench with me, and we only had the weekend to start and finish this entire project. As much as we would have liked to get to building straight away, we had to learn how to use the new table saw first. In preparation for this new tool, I watched a lot of videos about table saw safety by &lt;a href=&quot;https://www.youtube.com/@StumpyNubs&quot;&gt;Stumpy Nubs on YouTube&lt;/a&gt;, so I had some ideas about the do&#39;s and don&#39;t’s of table saws.&lt;/p&gt;
&lt;p&gt;The legs were the first thing that we decided to cut. The plan called for legs about 900mm tall, which meant that the larger 1.8m lengths had to be cut roughly in half. I say roughly because a mounting plate and a castor was to be attached to the base these legs, and the desired finish height of 900mm meant that more would need to be trimmed from the legs to account for the height of the castors and their mounting hardware.&lt;/p&gt;
&lt;p&gt;The first cuts on the table saw ended well, though it wasn&#39;t without a hitch. We didn&#39;t have a crosscut sled, only the simple mitre gauge that came with the table saw. While it did fit in the mitre slots on the table, it was quite loose – I observed about 1.5mm of play. This, and the limited checking we did to check that the blade was &lt;em&gt;actually&lt;/em&gt; square to the mitre slots, meant that the cuts came out slightly angled. We decided against making a fuss about it – and any small angles in the base could easily be accounted for with the castors.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://henryisonline.com/blog/building-a-workbench/6pLeUkMduR-1200.png&quot; alt=&quot;5354a5e2e40dfda34c57a9ec71772a50.JPG&quot; width=&quot;1200&quot; height=&quot;900&quot;&gt;&lt;/p&gt;
&lt;p&gt;The sketchy-looking setup I used for trimming the legs on the table saw. No fine-tuning here - just send it through.&lt;/p&gt;
&lt;p&gt;The castors required some mounting hardware in the form of post brackets, as the castors would otherwise have to be screwed directly into the end grain of the legs – something that I would rather avoid for a secure attachment. Unfortunately, the bolts that we bought to attach the post brackets to the legs were slightly too large, so the mounting holes had to be drilled out. We used the leg offcuts to stabilise the post brackets while we drilled out the holes in the drill press. They didn&#39;t end up perfect, but they fit the bolts that we bought.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://henryisonline.com/blog/building-a-workbench/kInmEVtkdb-1080.png&quot; alt=&quot;b6386c6b2deee8752bf8e3cfd7b863be.JPG&quot; width=&quot;1080&quot; height=&quot;1440&quot;&gt;&lt;/p&gt;
&lt;p&gt;We then drilled the legs, which was a bit of a challenge. A few of the holes in the legs didn’t align with the holes in the post brackets, but with a little fiddling and drilling they ended up fitting, and all the post brackets were bolted to the legs. To get the measurement for the top and bottom rails for the legs, we measured the depth of the saw’s table, excluding the fence and the hardware required to move it. We cut the rails to that length with our old mitre saw (which doesn’t cut very straight anymore) and screwed those onto the legs to make two finished leg assemblies.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://henryisonline.com/blog/building-a-workbench/nJzEj4NkP0-1200.png&quot; alt=&quot;7c56c9bbf393096958274a342bff5814.JPG&quot; width=&quot;1200&quot; height=&quot;900&quot;&gt;&lt;/p&gt;
&lt;p&gt;The finished leg assemblies marked the end of Day 1. While not much actual woodworking happened, we learned a lot about how to use our new table saw. Given that this new workbench is being built around it, it seems worthwhile to know how to use it well and how to be safe around it.&lt;/p&gt;
&lt;h1 id=&quot;day-2-the-rest-of-it&quot;&gt;Day 2: The rest of it&lt;/h1&gt;
&lt;p&gt;Sunday: The Big One. The goal for this second and last day was to get the rest of the bench finished. A lofty goal, perhaps, but certainly manageable.&lt;/p&gt;
&lt;p&gt;We started by building the rest of the frame. Thankfully we didn&#39;t have to do much cutting for this step, as the bench was planned to be 2.4m long and our boards were already just a little over 2.4m. We squared up one end on four boards, measured from the square end to &lt;em&gt;exactly&lt;/em&gt; 2.4m, and trimmed any excess. These four boards would be the top and bottom rails for the front and back of the bench. The issue now was attaching everything so the bench was square.&lt;/p&gt;
&lt;p&gt;We clamped all the rails to the bench and laid it on its side, so what would be the back was now the bottom and what would be the front was now the top. After making sure the rails were aligned by eye as best as we could, we checked for square by measuring from corner to corner on both the top and the bottom of the bench. The whole thing was out of square by about 50mm, corner to corner.&lt;/p&gt;
&lt;p&gt;To square it up, we used a length of rope and a hammer (in lieu of a ratchet strap). We looped the rope around the rails we attached to the legs yesterday and use the hammer as a lever to tighten everything up. After about an hour of tightening, hammering, checking for square, and tightening again, we finally got the whole bench to within 1mm of square, corner to corner.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://henryisonline.com/blog/building-a-workbench/jPkki_nEOP-1080.png&quot; alt=&quot;5358387abbd53656109e0772756a01a7.JPG&quot; width=&quot;1080&quot; height=&quot;1440&quot;&gt;&lt;/p&gt;
&lt;p&gt;The ratchet-strap-torniquet-style contraption we used to square the bench up. It worked quite well.&lt;/p&gt;
&lt;p&gt;With everything squared up, we screwed all four rails into the legs, completing the basic frame for the workbench. We then had to add the vertical supports for the section that the table saw was to sit in. We measured the length of the table saw first, so see what we were working with. Then we divided the table saw length in half and measured out that amount from the centre of the bench such that the saw was exactly centred in the bench. The vertical supports were cut on the mitre saw to exactly match the height between the top and bottom rails and screwed into the positions we marked earlier.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://henryisonline.com/blog/building-a-workbench/Hw9ZhYgUsn-1200.png&quot; alt=&quot;e51ed6b5e7c097f7b71895e8c0b96fe4.JPG&quot; width=&quot;1200&quot; height=&quot;1016&quot;&gt;&lt;/p&gt;
&lt;p&gt;With the vertical supports installed, the top and bottom cross-bracing was next. These pieces were cut to fit inside the vertical supports, and they were screwed in through both the top and bottom rails and the vertical supports with some 100mm baton screws.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://henryisonline.com/blog/building-a-workbench/Oo7_19__62-1200.png&quot; alt=&quot;95b677e151b855aedabc4927d397d302.JPG&quot; width=&quot;1200&quot; height=&quot;900&quot;&gt;&lt;/p&gt;
&lt;p&gt;We flipped the frame upside down here in preparation to mount the castors.&lt;/p&gt;
&lt;p&gt;The castors were relatively simple to install. We marked out the layout of the mounting holes in the baseplate of the castors onto the post brackets, pre-drilled the holes for the self-tapping sheet metal screws, and drove them in.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://henryisonline.com/blog/building-a-workbench/W-Oa7Jh0AH-1200.png&quot; alt=&quot;d6269f6271ea720fb2bf4b15fc3cb54a.JPG&quot; width=&quot;1200&quot; height=&quot;900&quot;&gt;&lt;/p&gt;
&lt;p&gt;Before fitting the saw to the bench, we had to cut out a section of both the top rails. This timber was repurposed to create supports for the plywood top.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://henryisonline.com/blog/building-a-workbench/1DHGl8mQko-1200.png&quot; alt=&quot;da2e4aab54957e5a0e5fa9e3d7b6fa4a.JPG&quot; width=&quot;1200&quot; height=&quot;900&quot;&gt;&lt;/p&gt;
&lt;p&gt;With the frame of the bench complete (aside from the structure that would hold the table saw, of course), I began breaking down the plywood pieces to fit the bench frame. I used the flip-down component of the fence to support the wood that was overhanging the table saw and found that the wood was catching on both the fence and the table. This was quickly resolved with the help of a light coating of silicon lubricant. I know, this isn&#39;t technically the correct way to lubricate the table or the fence, but it&#39;s what we had on hand. We only had a limited timeline to complete the project, remember?&lt;/p&gt;
&lt;p&gt;We screwed the bench down with 44 screws in total. I mention this only because it seems excessive in retrospect. This benchtop would probably have been secure enough with about &lt;em&gt;half&lt;/em&gt; as many screws, but I wanted to be sure that it wouldn&#39;t go &lt;em&gt;anywhere.&lt;/em&gt; The screw pattern looked like this:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://henryisonline.com/blog/building-a-workbench/-bxaXNdE3k-1200.png&quot; alt=&quot;1dd66c55f93668fad7edac01e6568652.jpg&quot; width=&quot;1200&quot; height=&quot;750&quot;&gt;&lt;/p&gt;
&lt;p&gt;This was not the smartest or most efficient use of screws, but at least I’m certain that this benchtop truly won’t be going anywhere. In the future, I’ll make sure I plan my screw layout more carefully. Regardless, we secured the plywood tops to the bench frame. It’s really looking like a proper workbench now.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://henryisonline.com/blog/building-a-workbench/OVu7rZy657-1200.png&quot; alt=&quot;53aeee60ac4b6a0b5029246dce39838d.JPG&quot; width=&quot;1200&quot; height=&quot;900&quot;&gt;&lt;/p&gt;
&lt;p&gt;The next stage was the most critical, and the culmination of the entire project: fitting the table saw into the workbench. We measured the height of the saw from the top of the table down to the attachment points to the cart and translated that measurement to the vertical struts, measuring down from the top of the workbench. Using the last 2.4m length of our timber, we cut two pieces to length so they overlapped the vertical struts entirely and clamped them tightly in place at the lines we marked earlier. We then took some of our other offcuts and trimmed them to size to form a sort of floor for the saw to sit on.&lt;/p&gt;
&lt;p&gt;Now for the moment of truth. We detached the table saw from its cart and slowly lowered it into the gap in the workbench. Alas, &lt;strong&gt;it did not fit.&lt;/strong&gt; We had to make some emergency modifications with the circular saw to trim just a few millimetres off either side of the gap. With those small adjustments made, we slowly lowered the saw back into the bench. &lt;strong&gt;Success!!&lt;/strong&gt; It fit perfectly, with just millimetres to spare on either side of the table. This job wasn’t over yet though.&lt;/p&gt;
&lt;p&gt;We had to adjust the height of those horizontal supports, as the saw was sitting just below the finished height of the workbench. A few taps on each corner with a mallet and some checks on the surface with a level, and we had the saw flush with the surface (or actually just a little proud, if only to account for discrepancies in the bench construction). With that, we screwed the horizontal supports in place, and the saw was (sort of) mounted.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://henryisonline.com/blog/building-a-workbench/aFnE5JiCFk-1200.png&quot; alt=&quot;b9d7bcc70723b31b209e240242d4fb90.JPG&quot; width=&quot;1200&quot; height=&quot;900&quot;&gt;&lt;/p&gt;
&lt;p&gt;However, we encountered a problem. Somewhere in our measurements, we had made the bench &lt;em&gt;just slightly&lt;/em&gt; too deep. Not by much, just a few millimetres, but enough that the fence couldn’t extend in either direction no matter how we moved the saw. We pulled the table saw back out of the cavity and decided that we had to make another emergency modification with the circular saw to make everything fit.&lt;/p&gt;
&lt;p&gt;We didn’t have a straight edge long enough to make the cut the whole way across the bench, so we had to use the longest plywood offcuts we could find and clamp them together to make a suitable straight edge for the cut. I sunk the screws further into the bench with the impact drill just to be certain they wouldn’t hit the saw blade, and my dad plunged the saw to its deepest possible cut depth and removed the thinnest slivers of material he possibly could. It was the most stressful cut of the whole project by far.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://henryisonline.com/blog/building-a-workbench/A2ciSG-ftR-1200.png&quot; alt=&quot;3d6e4be75a4a6a11ca24bd5ba752708b.JPG&quot; width=&quot;1200&quot; height=&quot;900&quot;&gt;&lt;/p&gt;
&lt;p&gt;Thankfully, that small trim was all we needed. Upon lowering the table saw back into the bench for the third and final time, we tested the fence in both directions and it was &lt;em&gt;perfect.&lt;/em&gt; After a bit of tidying up, movement tests, and final checks, we could declare the bench &lt;strong&gt;complete.&lt;/strong&gt;&lt;/p&gt;
&lt;h1 id=&quot;the-finished-bench&quot;&gt;The finished bench&lt;/h1&gt;
&lt;p&gt;Well, “almost finished” might be better. The saw still has to be properly secured to the four supports beneath it, and those supports still have to be secured to the workbench. I also discovered that the benchtop has some high spots on the right side of the saw, which means that I’ll have to shim the supports under the back right corner of the saw. At the time of writing, we’ve only just started on fixing the saw position. Still, the bench is mostly done, and it’s the start of a good woodshop. I’m very keen to build the first project with it.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://henryisonline.com/blog/building-a-workbench/tQGuO-kyXC-1200.png&quot; alt=&quot;232367773216b9092a3539e473c2560a.JPG&quot; width=&quot;1200&quot; height=&quot;900&quot;&gt;&lt;/p&gt;
</description>
      <pubDate>Sat, 02 Nov 2024 00:00:00 GMT</pubDate>
      <dc:creator>Henry</dc:creator>
      <guid>https://henryisonline.com/blog/building-a-workbench/</guid>
    </item>
    <item>
      <title>How How I make my playlist art</title>
      <link>https://henryisonline.com/blog/how-how-i-make-my-playlist-art/</link>
      <description>&lt;p&gt;I like to make playlists, if only to decorate the covers. I use Spotify, and while the standard album grid it creates for each playlist is fine, I like to make things a bit more personal. This is more of a guide for myself than a showcase of my work, but I’ve provided some examples at the bottom of this post and included steps that would be easy to replicate in any modern photo editor, should you be inspired to make your own playlist art.&lt;/p&gt;
&lt;p&gt;I work in &lt;a href=&quot;https://affinity.serif.com/en-us/designer/&quot;&gt;Affinity Designer&lt;/a&gt;, because Adobe doesn’t need any more money. To make things easier for myself I made a “.styleguide” file, which serves as the starting point for all my cover art. Currently, it’s formatted this way:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A 1687px x 1687px empty canvas as the background,&lt;/li&gt;
&lt;li&gt;One text layer which contains the playlist title (Inter Display Semibold, 230pt) set 80px in from the left and 80px down from the top,&lt;/li&gt;
&lt;li&gt;Another text layer for the date (Inter Display Bold, 98pt) in DD-MM-YYYY set 80px in from the left and 340px down from the top.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://henryisonline.com/blog/how-how-i-make-my-playlist-art/8jM1nVLvmY-1128.png&quot; alt=&quot;8b442d33e2b487974c8c369339e2a1fe.png&quot; width=&quot;1128&quot; height=&quot;653&quot;&gt;&lt;br&gt;
The layer structure of .styleguide in Affinity Designer.&lt;/p&gt;
&lt;p&gt;Previously I used Spotify’s Circular Semibold font to match the theme of the Spotify interface, but their recent changes in branding and font choice forced me to choose another option. I settled for &lt;a href=&quot;https://rsms.me/inter/&quot;&gt;Inter&lt;/a&gt; as a widely recognised, open-source alternative. I also chose to use the DD-MM-YYYY date format rather than the standardised &lt;a href=&quot;https://en.wikipedia.org/wiki/ISO_8601&quot;&gt;IOS8601 YYYY-MM-DD format&lt;/a&gt; because, to be frank, &lt;em&gt;it just looks better this way.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;To create the cover for my playlist, I follow this process:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Find an image that I’d like to use as the background.&lt;/li&gt;
&lt;li&gt;Crop the chosen image to square (if it isn’t already), place it into the “Background” layer, and resize it so it fits perfectly.&lt;/li&gt;
&lt;li&gt;Edit the title block to display the name of the playlist&lt;/li&gt;
&lt;li&gt;Edit the date block to the date that the first song was added to the playlist.&lt;/li&gt;
&lt;li&gt;Depending on the colour of the background against the text, I will change the text colour from black to white to aid visibility.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;For my normal playlists, I’ll usually browse &lt;a href=&quot;https://unsplash.com/&quot;&gt;Unsplash&lt;/a&gt; to find a photo that fits the vibe of that playlist the best. My monthly playlists use a photo that I took that month as the background - one that I feel  represents the overall vibe of the playlist. I set the date to  when the first song was added.&lt;/p&gt;
&lt;p&gt;After the design is done, I export the cover in three different formats.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;As an Affinity Designer file (.afdesign);
&lt;ul&gt;
&lt;li&gt;This file is completely uncompressed and can be opened at any time in Affinity Design should I wish to make changes.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;As a .TIFF file with 16-bit RGB colour and layers turned on for compatibility;
&lt;ul&gt;
&lt;li&gt;This is an open format that any photo editor can work with. By saving it in 16-bit colour and with layers on, it provides me with a completely useable backup of the Affinity project should I ever choose to use a different photo editor.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Finally, as a .PNG which I can upload to Spotify and use as the cover art for my playlists.
&lt;ul&gt;
&lt;li&gt;I prefer to use a PNG instead of a JPEG, because the lossless compression of the PNG format means that colour banding or artifacts from JPEG compression are a non-issue.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&quot;https://henryisonline.com/blog/how-how-i-make-my-playlist-art/7UjuIZJzPB-1200.png&quot; alt=&quot;The completed cover art for my personal lofi mix.&quot; width=&quot;1200&quot; height=&quot;1200&quot;&gt;&lt;/p&gt;
&lt;p&gt;The completed cover art for my personal lofi mix.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://henryisonline.com/blog/how-how-i-make-my-playlist-art/14cWmdaPJt-1200.png&quot; alt=&quot;0c72e93daf9f12fbcad7ee17504ff025.png&quot; width=&quot;1200&quot; height=&quot;1200&quot;&gt;&lt;br&gt;
The cover for one of my monthly playlists. Note the white text, which is easier to read in this context.&lt;/p&gt;
</description>
      <pubDate>Sun, 13 Oct 2024 00:00:00 GMT</pubDate>
      <dc:creator>Henry</dc:creator>
      <guid>https://henryisonline.com/blog/how-how-i-make-my-playlist-art/</guid>
    </item>
    <item>
      <title>A thorough endorsement of the AeroPress</title>
      <link>https://henryisonline.com/blog/a-thorough-endorsement-of-the-aeropress/</link>
      <description>&lt;h1 id=&quot;preamble&quot;&gt;Preamble&lt;/h1&gt;
&lt;p&gt;I recently got into coffee.&lt;/p&gt;
&lt;p&gt;I’ve never been much of a coffee person, but unfortunately my usual morning earl grey tea wasn’t giving me the kick I needed to deal with the general drudgery of being a university student. Coffee seemed like an appealing solution (at least more so than amphetamines), but I had no idea where to start or what to buy, so I turned to the internet for answers.&lt;/p&gt;
&lt;p&gt;I quickly learned that the best way to make a good coffee is by grinding the beans at home, which in itself is not complicated unless you make it so. Fortunately, my dad has a simple bladed grinder that he was willing to share with me, which saved me from going down the rabbit hole of trying to find and buy my own grinder.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;An aside:&lt;/strong&gt; many of these machines insist that their way of turning beans into powder is worth a $500 premium (or more). Reader, I assure you that a coffee grinder is not worth more than the money you will earn with it. If you make coffee professionally, then perhaps a grinder with various settings and dials and discs and whatnot might be worth the extra cash, but a &lt;a href=&quot;https://www.bigw.com.au/product/contempo-coffee-grinder-black/p/131637&quot;&gt;simple grinder&lt;/a&gt; will do just fine for most people.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;With the problem of grinding the beans solved, I had to find some way to brew them. This where you can really get into the weeds about which method makes the best coffee. It seems like there’s as many ways to brew a cup as there are people who are into coffee, but I was looking for something simple, quick, and fairly inexpensive. I came up with two options: a &lt;a href=&quot;https://www.breville.com/en-au/product/bcm700?sku=LCM700BSS2JAN1&quot;&gt;drip coffee machine&lt;/a&gt; or an &lt;a href=&quot;https://aeropress.com.au/&quot;&gt;AeroPress&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Ultimately, I chose the AeroPress. I don’t drink a whole carafe of coffee in a day, and I didn’t want to have to deal with cleaning a drip coffee machine. I also didn’t fancy having a tank of water sitting on the kitchen counter, especially during the heat and humidity of summer in tropical Australia. The fact that the AeroPress could make just one cup of coffee at a time was the best feature to me, and it also seemed super easy to clean. I bought mine with the &lt;a href=&quot;https://fellowproducts.com/products/prismo&quot;&gt;Prismo attachment from Fellow&lt;/a&gt;, because it seemed like less hassle than paper filters and eliminated the ongoing cost of purchasing them. All up, it cost me $109.85 AUD, including shipping. Not a bad deal, I reckon.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://henryisonline.com/blog/a-thorough-endorsement-of-the-aeropress/q6BymOgwRz-1200.png&quot; alt=&quot;829fd1611e101d4829e634aa988a2d7d.jpeg&quot; width=&quot;1200&quot; height=&quot;1600&quot;&gt;&lt;/p&gt;
&lt;h1 id=&quot;using-the-aeropress&quot;&gt;Using the AeroPress&lt;/h1&gt;
&lt;p&gt;Using the AeroPress is really straightforward, especially with the Prismo. Unlike other methods, there’s very little preamble to making your coffee besides the usual bean-grinding and kettle-boiling. After that, you just pour the grounds in, pour the water in, stir, let it brew, and press. It’s a really good way to reliably get a good coffee. However, the trick to mastering the AeroPress and getting a &lt;em&gt;really&lt;/em&gt; good cup is in the finer details. Here’s my process for getting coffee the way I like it:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Grind the beans a little coarser than you would for an espresso brew. While the AeroPress does rely on pressure like an espresso machine, I found that a finer espresso grind creates a more bitter flavour, while a coarser French press grind doesn&#39;t provide a good extraction. Somewhere in between those two is where you should aim for with grind size.&lt;/li&gt;
&lt;li&gt;Let the kettle heat up to just before a rolling boil. If you have a kettle you can control the temperature of, that’s about 90°C/195°F. A higher temperature tends to create a more bitter brew, whilst cooler water can’t extract some of the finer flavours of your beans and can make your brew feel a bit flat and uninteresting. Of course, this may depend on the type of beans you use. More on that later.&lt;/li&gt;
&lt;li&gt;Fill the AeroPress up to the ④ mark and stir until the grounds are fully incorporated. This may be a little easier with a gooseneck kettle designed for pourover coffee, but any kettle works fine. I’ve noticed that the water level drops slightly as the space beneath the metal filter of the Prismo fills up, so I make sure to top up the water level as I’m stirring.&lt;/li&gt;
&lt;li&gt;After stirring, let your coffee brew with the plunger off for 1 minute. Any less time and your extraction may not be as complete, so the flavour profile of your coffee may not be very well-rounded. Any more time and you’ll get a much more bitter brew, which I personally don’t enjoy.&lt;/li&gt;
&lt;li&gt;Push the plunger into the base and press &lt;em&gt;&lt;strong&gt;gently.&lt;/strong&gt;&lt;/em&gt; Pressing is in the name of the AeroPress, and it’s arguably the most important part of the process. This is where the espresso-meets-french-press strangeness of the whole contraption become clear, and it’s where most of the extraction occurs. Only a gentle pressure is needed, and this can be achieved simply through the weight of your arms on the plunger. This is also the reason for a slightly coarser grind — finer grinds require more pressure, and more pressure creates a greater extraction, which can lead to bitterness and acidity. Coarser grinds need significantly less pressure, and create a smoother, richer, more full-bodied flavour with minimal bitterness and acidity as a result.&lt;/li&gt;
&lt;li&gt;Season to taste. I use whole milk and a teaspoon of raw sugar, but you can use whatever you like. This process should serve as a starting point, and I encourage you to modify anything in here to suit your taste. Coffee is entirely subjective, and however you enjoy it is the best way to make it.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;It should be noted that while the brewing process does have some impact on the final flavour of your coffee, most of the flavour will come from the beans you start with. Coffee shops nearby are a good place to start looking for good beans. If you find a coffee that you like from a local cafe, ask if you can buy a sample of their coffee blend to take home. If you have a local roaster or distributor near you, it’s worth paying more to get some good beans from there too, rather than going to the grocery store for your beans. As James Hoffman said - &lt;a href=&quot;https://www.youtube.com/watch?v=O9YnLFrM7Fs&amp;amp;t=720s&quot;&gt;grocery stores don’t treat coffee like food&lt;/a&gt;. It’s worth finding places that treat coffee well, and take pride in selling fresh, traceable beans.&lt;/p&gt;
&lt;h1 id=&quot;the-results&quot;&gt;The results&lt;/h1&gt;
&lt;p&gt;For my first foray into coffee, I think it turned out pretty well. I can reliably get a good coffee with minimal cleanup, and it makes my mornings much more tolerable. It provides me with a nice little ritual, and has given me something else to do with my hands and eyes in the morning that isn’t reading my emails and scrolling Threads. If anyone reading this has become interested in making coffee at home, I highly recommend the &lt;a href=&quot;https://aeropress.com.au/&quot;&gt;AeroPress&lt;/a&gt;. It’s a great entry into brewing at home, and I have a feeling that it’ll be the first and last coffee gadget I buy. I’m very happy with it.&lt;/p&gt;
</description>
      <pubDate>Fri, 20 Sep 2024 00:00:00 GMT</pubDate>
      <dc:creator>Henry</dc:creator>
      <guid>https://henryisonline.com/blog/a-thorough-endorsement-of-the-aeropress/</guid>
    </item>
    <item>
      <title>Things I recommend you buy and use</title>
      <link>https://henryisonline.com/blog/things-i-recommend-you-buy-and-use/</link>
      <description>&lt;p&gt;&lt;em&gt;All prices for this list will be in Australian Dollars.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;This is a series started by Sam Bowman that I stumbled across a little while ago, and I thought I’d throw my hat in the ring. These are some of the things I’ve bought and found to be extremely useful and immensely enjoyable. In keeping with the theme of the previous entries in this series, I’ve tried to be as budget friendly as possible, but I’ve also attached some links to the more expensive things that I thoroughly enjoy at the bottom of this article. For the other entries in this list, see the links below.&lt;/p&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://s8mb.medium.com/stuff-that-i-recommend-you-buy-747d7a3bd51e&quot;&gt;&lt;strong&gt;Sam Bowman’s original post&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://s8mb.medium.com/things-i-recommend-you-buy-and-use-second-edition-457a8e7163f6&quot;&gt;&lt;strong&gt;Sam’s second post&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://medium.com/@robertwiblin/things-i-recommend-you-buy-and-use-rob-edition-1d7b2ce27d68&quot;&gt;&lt;strong&gt;Robert Wiblin of 80,000 hours responds to Sam’s post&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.sambowman.co/p/things-i-recommend-you-buy-2020-sam-bowman&quot;&gt;&lt;strong&gt;Sam Bowman’s updated list for 2020&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.sambowman.co/p/things-i-recommend-you-buy-and-use&quot;&gt;&lt;strong&gt;Sam Bowman’s 2023 list&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://reasonalone.substack.com/p/things-i-recommend-you-buy-and-use&quot;&gt;&lt;strong&gt;Sam Enright’s list, inspired by Bowman’s 2023 list.&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h1 id=&quot;kitchen&quot;&gt;Kitchen&lt;/h1&gt;
&lt;h3 id=&quot;cheap-knife-set-25&quot;&gt;&lt;a href=&quot;https://www.kmart.com.au/product/6-piece-stainless-steel-knife-block-set-43328291/?&quot;&gt;Cheap knife set&lt;/a&gt; — $25&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://henryisonline.com/blog/things-i-recommend-you-buy-and-use/FiYXWxAoN8-800.png&quot; alt=&quot;fed3297c419e05c65125c305a44f18b9.jpg&quot; width=&quot;800&quot; height=&quot;800&quot;&gt;&lt;/p&gt;
&lt;p&gt;There’s certainly some enjoyment that can be derived from owning fancy hardened steel knives, and if you cook a lot then they’re certainly worth the investment. However, a cheap 5-piece knife set will work &lt;em&gt;just fine&lt;/em&gt; for most normal home use. There’s no need to follow specific care instructions for these things, they can go straight in the dishwasher without  any fear of damage,  and they do all that needs to be done for pretty much all home cooking. In fact, I’d go so far as to say that one only needs &lt;strong&gt;three knives&lt;/strong&gt;: a general-purpose chef’s knife for most chopping tasks, a bread knife for, well, bread, and a paring knife for small precise work. I bought this cheap  set from my local Kmart, and I’ve had no complaints with them thus far. There’s probably some similar sets for similar prices at your local Target or home goods store.&lt;/p&gt;
&lt;h3 id=&quot;pull-through-knife-sharpener-24&quot;&gt;&lt;a href=&quot;https://www.amazon.com.au/Wiltshire-Stage-Sharpener-Knife-41322/dp/B07HXPVYSG&quot;&gt;Pull through knife sharpener&lt;/a&gt; — $24&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://henryisonline.com/blog/things-i-recommend-you-buy-and-use/J0OaFRPWND-800.png&quot; alt=&quot;39cef3f4994ff804e02d2c085419dfba.jpg&quot; width=&quot;800&quot; height=&quot;456&quot;&gt;&lt;/p&gt;
&lt;p&gt;If you listen to chefs of any kind online for any amount of time, you’ll have undoubtedly been told to use a whetstone of some kind for sharpening your knives. While that is undoubtedly the best way of doing it, it’s also the most arduous and fiddly way of doing it, and developing the skills required for good whetstone sharpening requires much more time than one often has free to dedicate to that kind of thing. Whetstone sharpening is also more relevant to harder, more expensive knives, and doesn&#39;t make too much sense for cheaper, softer knives (like those above).&lt;/p&gt;
&lt;p&gt;Enter the pull-through knife sharpener. It’s a wonderful accompaniment for a cheap knife set, as it requires minimal effort and knowledge to use properly. As most cheap knives are made from soft metals like stainless steel, a pull-through knife sharpener is more than adequate for sharpening. There are versions of these sharpeners that have adjustable angles, but in my experience, they’re not really worth it. I have this exact one at home and use it on all my cheap knives. It sharpens them beautifully, and I make sure that I run my knives through the ceramic “finishing” side before I cook dinner to hone the edge.&lt;/p&gt;
&lt;h3 id=&quot;kitchen-shears-50&quot;&gt;&lt;a href=&quot;https://www.amazon.com.au/OXO-1072121-Kitchen-Scissors-Stainless/dp/B000KILLXM/ref=mp_s_a_1_3?crid=1EICVN1116K03&amp;amp;dib=eyJ2IjoiMSJ9.DlnkdB0pUJOidsxYUzAo_QsbDzQ7cTbwYlMESl9tbz-6f717lb9Y0_i2cgsPdhNurakJiDELHqekScbVCv6bBlgbCFnHzdp7d-_OcjK3d4YbWn5Eosm1f8UgAfGWXxoEzpjGpfTihITw7JTFGlWSMPj5mgA17PFsZUMpwD4Gq3CN_gIT734pRrUILiCtQFOiXie2djRIaS706JIwcLgsVg.soEl4acZ3U_PxoCRiAhoJVSQDAFfSoN_vdlZO3CQmUs&amp;amp;dib_tag=se&amp;amp;keywords=kitchen+shears&amp;amp;qid=1724113797&amp;amp;sprefix=kitchen+shears%2Caps%2C578&amp;amp;sr=8-3&quot;&gt;Kitchen shears&lt;/a&gt; — $50&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://henryisonline.com/blog/things-i-recommend-you-buy-and-use/STmVzWeRzc-800.png&quot; alt=&quot;670123e85db219227b4a025eb60c4eab.jpg&quot; width=&quot;800&quot; height=&quot;328&quot;&gt;&lt;/p&gt;
&lt;p&gt;This is something I actually recommend you don’t cheap out on. A good set of kitchen shears is a worthwhile investment, and they can last you a while. They’re really good for all kinds of tasks, but are especially good for working with small cuts of meat or chopping a salad in a a bowl. The ones I’ve linked here are dishwasher safe, easy to disassemble for easy cleaning, and have two little holes near the handles to strip herbs, if you’re that kind of person. I bought a set of these a while back, and they’ve lasted well and retained their edge. They also can be run through a knife sharpener like the one above (which is what I do), but these might be worth learning how to use a whetstone for.&lt;/p&gt;
&lt;h1 id=&quot;software-and-services&quot;&gt;Software and Services&lt;/h1&gt;
&lt;h3 id=&quot;barcodes-15-sorry-android-people&quot;&gt;&lt;a href=&quot;https://smallcolossus.com/apps/barcodes&quot;&gt;Barcodes&lt;/a&gt; — $15 (sorry android people)&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://henryisonline.com/blog/things-i-recommend-you-buy-and-use/KNWgYZKJgi-800.png&quot; alt=&quot;2bc0cc145f03bd38d3c2be5823b523ec.png&quot; width=&quot;800&quot; height=&quot;608&quot;&gt;&lt;/p&gt;
&lt;p&gt;This is &lt;strong&gt;the best&lt;/strong&gt; loyalty card app I’ve ever used. I was previously using Stocard (an app I have come to detest so much that I won’t do it the dignity of being linked here), and discovering this has been a &lt;em&gt;very&lt;/em&gt; welcome change. You simply scan the barcode of the loyalty card with the camera or import it from a photo, and the app will find the store colours and iconography and apply those to the card. If it’s not the right information, you can search for the store manually when editing the card, or you can use a custom icon and colour instead. If you can’t find the information for the card you have, the developer has linked a form which you can use to submit the correct information. This app gets regular updates and improvements, doesn’t collect your data (unlike Stocard), and has made my wallet lighter and my life easier. I can’t recommend this enough.&lt;/p&gt;
&lt;h3 id=&quot;todoist-from-0&quot;&gt;&lt;a href=&quot;https://todoist.com/&quot;&gt;Todoist&lt;/a&gt; — from $0&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://henryisonline.com/blog/things-i-recommend-you-buy-and-use/_MIcnFHYbI-800.png&quot; alt=&quot;4c66aceb7f33bdca83a6b025668dd38d.jpg&quot; width=&quot;800&quot; height=&quot;452&quot;&gt;&lt;/p&gt;
&lt;p&gt;This is one of those rare apps in the notetaking/organisation space that I actually use. Notion has been hit or miss for me, Things didn’t work in my cross-platform computing life, and every other piece of specialty software has been a bust. All except Todoist. I started using their free version in 2020 and I’ve never looked back. What you get on the free plan is fairly barebones: 5 projects only (not counting archived ones), no reminders, and no calendar layout. Everything else is included though, and that’s been more than enough for me. I really love how snappy the app feels on any platform (except for the windows desktop version which is just an Electron app — I have certain opinions about that), I love their lock screen widget in iOS that lets you add a task immediately, and I absolutely adore their natural language date and time input. It’s been a game-changer for organising my life, projects, and assignments, and I encourage anyone who struggles with organisation to give the free plan a try.&lt;/p&gt;
&lt;h3 id=&quot;pocket-casts-from-0&quot;&gt;&lt;a href=&quot;https://pocketcasts.com/&quot;&gt;Pocket Casts&lt;/a&gt; — from $0&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://henryisonline.com/blog/things-i-recommend-you-buy-and-use/3PNGioNSg4-800.png&quot; alt=&quot;995058ced7b9d57709a705843b8376e8.png&quot; width=&quot;800&quot; height=&quot;176&quot;&gt;&lt;/p&gt;
&lt;p&gt;I first discovered pocket casts when I moved on from my beloved iPhone SE 1st Gen and onto a Samsung Galaxy S21. I decided at that point that I wanted to try listing to podcasts, and so I used Spotify, which I was already paying for. However, Spotify’s podcast interface was (and frankly still is) truly horrible, and I decided to look for something better. I switched over to Pocket Casts and became enamoured instantly. It has everything that I want in a podcast player for free: auto-skipping, smart silence trimming (which is really impressive by the way), voice volume boosting, and automatic rule-based podcast organisation. I’ve become very nerdy about these things, but you really don’t have to be like that to enjoy this app. If you currently listen to podcasts on Spotify, then please be kind to yourself and switch to Pocket Casts. If you don’t currently listen to podcasts, I encourage you to give it a try with this app.&lt;/p&gt;
&lt;h3 id=&quot;a-good-2fa-app-from-0&quot;&gt;A good 2FA app — from $0&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://henryisonline.com/blog/things-i-recommend-you-buy-and-use/41tZEpG5jB-820.png&quot; alt=&quot;1aaea2165eb2068ddb036109cf1312ce.png&quot; width=&quot;820&quot; height=&quot;314&quot;&gt;&lt;/p&gt;
&lt;p&gt;There’s nothing suggested in the title here because of the sheer volume of 2FA apps that exist. It’s worth finding one that works for you, especially with the increase of data breaches over the years.&lt;/p&gt;
&lt;p&gt;For those unaware, a 2FA app is much better for security than being sent a code through a text message or email because it relies on a &lt;strong&gt;web communication standard&lt;/strong&gt; and not a &lt;strong&gt;digital identifier.&lt;/strong&gt; Using a phone number or email for 2FA is risky, because if either of those identifiers get leaked in a &lt;a href=&quot;https://www.theverge.com/2024/8/16/24222112/data-breach-national-public-data-2-9-billion-ssn&quot;&gt;data breach&lt;/a&gt;, your main method of security is now accessible to bad actors, who &lt;em&gt;&lt;strong&gt;can and will&lt;/strong&gt;&lt;/em&gt; compromise your accounts and use them for their personal gain. It’s happened to me and to my parents, though thankfully none of our data was stolen or deleted before we became aware of the issue. A 2FA app bypasses this issue by avoiding the need for an identifier in the first place, instead using web technologies and encryption to deliver a randomised code to an app on your phone that you have to manually input to continue the login process. It may be more effort, but it’s worth the additional protection that it offers.&lt;/p&gt;
&lt;p&gt;There’s loads of 2FA apps out there, but only a few I recommend. I’ve made a short list of some good ones, so make sure you pick one of these and set up 2FA for &lt;a href=&quot;https://2fa.directory/int/&quot;&gt;everything that allows it&lt;/a&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://ente.io/auth/&quot;&gt;Ente Auth&lt;/a&gt; (cross-platform, free, and my most recommended)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://2fas.com/&quot;&gt;2FAS&lt;/a&gt; (cross-platform, free)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.microsoft.com/en-au/security/mobile-authenticator-app&quot;&gt;Microsoft Authenticator&lt;/a&gt; (cross-platform, free)&lt;/li&gt;
&lt;li&gt;Google Authenticator - &lt;a href=&quot;https://apps.apple.com/au/app/google-authenticator/id388497605&quot;&gt;iOS&lt;/a&gt; - &lt;a href=&quot;https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2&amp;amp;hl=en_AU&quot;&gt;Android&lt;/a&gt; (cross-platform, free)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://steptwo.app/&quot;&gt;Step Two&lt;/a&gt; (Apple only, free for 10 accounts then a one-time purchase)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://play.google.com/store/apps/details?id=me.jmh.authenticatorpro&amp;amp;hl=en_AU&quot;&gt;Authenticator Pro&lt;/a&gt; (Android only, free)&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id=&quot;personal-items&quot;&gt;Personal items&lt;/h1&gt;
&lt;h3 id=&quot;some-damn-good-socks-from-12&quot;&gt;Some damn good socks — from $12&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://henryisonline.com/blog/things-i-recommend-you-buy-and-use/lr8uV6aAiN-797.png&quot; alt=&quot;beec7b319d4b952ed467cce809cdf6e4.png&quot; width=&quot;797&quot; height=&quot;535&quot;&gt;&lt;/p&gt;
&lt;p&gt;The only brand I’ve heard to be fairly universally appreciated is &lt;a href=&quot;https://shop.bombas.com/&quot;&gt;Bombas&lt;/a&gt;, but they’re not available in Australia, so I’ve had to make do. Ultimately, socks are quite subjective, and it’s a good idea to shop around if you can. I’ve paid top dollar for some of the crappiest, scratchiest excuses for socks from designer brands, and paid pennies at big box stores for some really good pairs. My preferred socks are these &lt;a href=&quot;https://www.kmart.com.au/product/3-pack-bamboo-rib-crew-socks-s158962/?selectedSwatch=Black&quot;&gt;bamboo socks from my local Kmart&lt;/a&gt;. They’re only $12 for a three-pack, and they’re the most comfortable socks I’ve ever worn. I make an effort to get another pack whenever I go shopping out of fear that they’ll stop making them one day. I have so many socks.&lt;/p&gt;
&lt;h3 id=&quot;cetaphil-daily-facial-cleanser-and-exfoliant-17-and-20-respectively&quot;&gt;Cetaphil &lt;a href=&quot;https://www.amazon.com.au/Cetaphil-Dermatologist-Non-irritating-Formulated-Niacinamide/dp/B0CY1FM12B?ref_=ast_sto_dp&quot;&gt;Daily Facial Cleanser&lt;/a&gt; and &lt;a href=&quot;https://www.amazon.com.au/Cetaphil-Daily-Exfoliating-Cleanser-178/dp/B07ZGCRQ1N?ref_=ast_sto_dp&quot;&gt;Exfoliant&lt;/a&gt; — $17 and $20, respectively&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://henryisonline.com/blog/things-i-recommend-you-buy-and-use/DG7nhWpAlk-1200.png&quot; alt=&quot;4dbd1d05e0c18ddb7d9255db5156f234.png&quot; width=&quot;1200&quot; height=&quot;675&quot;&gt;&lt;/p&gt;
&lt;p&gt;These are a package deal for me. I use them both daily (as the name may imply) and my skin has never felt better. I’ve used all kinds of designer creams and exfoliants and scrubs and oils and what have you, but these two bottles of goop (along with a &lt;a href=&quot;https://www.amazon.com.au/Olay-Complete-Protection-Moisture-Sensitive/dp/B07H7Y461V/ref=mp_s_a_1_8?crid=2TMGY52Z5VHMM&amp;amp;dib=eyJ2IjoiMSJ9.eNQpnZwWjyQ7Ws0DIs6tOQY9l3kWIosN29SZy2xjlOVSeWoukO8UUhhKcRVw6pzpaUxGX2RneM7Nnf13D7K5GqLM-Hh6zmfERGtaJ8oVxbMDFW7HID6U6Y8yq8XF4av7uTED8cH_9FoVPguhls3HCI1F-s7Dlubu6cxDpw0iLu4eQHYPp4LHW1XT9oGQFUEsyVfmxQfDKXE-lcT92u7LJQ.c2uSUq2undtlRrJzRnxp4B2aLqCTH3O7RfHjlG74mQk&amp;amp;dib_tag=se&amp;amp;keywords=olay+moisturising+cream&amp;amp;qid=1724158259&amp;amp;sprefix=olay+%2Caps%2C503&amp;amp;sr=8-8&quot;&gt;moisturiser from Olay&lt;/a&gt;) have done more for my skin than any fancy products ever have. They feel amazing, and work really well to get dirt out of my pores after I’ve been outside surveying all day without making my skin feel tight and dry like other products have. They’re really good for anyone who’s tried everything or at least is thinking about it. Pick up that moisturiser while you’re at it too — it’s the only one I’ve found that doesn’t ruin my glasses with smudges and grease, and it works amazingly to boot.&lt;/p&gt;
&lt;h1 id=&quot;everyday-utilities&quot;&gt;Everyday utilities&lt;/h1&gt;
&lt;h3 id=&quot;orbitkey-key-organiser-or-similar-50&quot;&gt;&lt;a href=&quot;https://www.amazon.com.au/Orbitkey-Leather-Organizer-Chestnut-Stitching/dp/B08383V5B3?ref_=ast_sto_dp&amp;amp;th=1&quot;&gt;Orbitkey key organiser&lt;/a&gt; (or similar) — $50&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://henryisonline.com/blog/things-i-recommend-you-buy-and-use/CSlj0Dg2ly-1000.png&quot; alt=&quot;ee89cfed93086d031f92e0a413e0aa0f.png&quot; width=&quot;1000&quot; height=&quot;1000&quot;&gt;&lt;/p&gt;
&lt;p&gt;I bought this exact key organiser in 2022, and it’s made my life noticeably better. Having all my keys on one place and in order has been really helpful for organisation, and it’s easy to detach this from my larger set of car keys when I want to go on a walk or ride my bike and don’t need the extra bulk of all the various attachments that one collects just by having a set of keys. It’s certainly not as easy to add a key to this as it is to a split ring or carabiner, but the utility of having everything in one place far outweighs the ease of those other options. I got the “Crazy Horse” variation as I love the natural leather look, and the patina it developed is frankly beautiful.&lt;/p&gt;
&lt;h3 id=&quot;rubber-cable-clips-from-13&quot;&gt;&lt;a href=&quot;https://www.amazon.com/OHill-Organizer-Management-Organizing-Adhesive/dp/B071FXZBMV/ref=sr_1_3?crid=NLW3WLD3XGX0&amp;amp;dib=eyJ2IjoiMSJ9.R9-GM50-vceAXYUyK8ugFhvrPZLMN_CaSyMQzW4_kfJRCvBlMWnrzQipkdARh1kf2n4wtp0QdpAvudiazFE0EBuAz44cRxcZTA6ZCXhkmBo8MpnUSQqYXQkQwYLWV2TLhes0KLO3groeYmr7gtO3v2_bZVPa2LF2FFyxdfuavg2my-nqwxqvGBcRuqX4BHy0-lBkNy1qy4n3XK6xjsEuvDYIj18mcqLMwzyXVFXhAf0.u3dcysXPfAjVzl0HE6tXyDP8-qaDx--bVRT9w14r_Rw&amp;amp;dib_tag=se&amp;amp;keywords=cable+holder+for+desk&amp;amp;qid=1722748564&amp;amp;sprefix=cable+holder+for+des%2Caps%2C296&amp;amp;sr=8-3&quot;&gt;Rubber cable clips&lt;/a&gt; — from $13&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://henryisonline.com/blog/things-i-recommend-you-buy-and-use/jDgUNiqhIz-679.png&quot; alt=&quot;fb6b96cf31aff53320db8f4db8c03f63.jpg&quot; width=&quot;679&quot; height=&quot;616&quot;&gt;&lt;/p&gt;
&lt;p&gt;While I don’t have these exact cable clips, I can nonetheless recommend them. These things are awesome — you can stick them pretty much anywhere with their double-sided-tape backing, and they just hold your cables. They’re great for keeping cables up off the floor, or in my case, holding my iPhone and Apple Watch cables on the side of my desk so I can easily grab them as needed. They’re fairly cheap, and you can probably find these or similar ones at your local stationery store.&lt;/p&gt;
&lt;h3 id=&quot;velcro-cable-ties-17&quot;&gt;&lt;a href=&quot;https://www.amazon.com/VELCRO-Brand-Cable-Ties-100Pk/dp/B001E1Y5O6/ref=sr_1_4?crid=3DSGVFSKTZJYZ&amp;amp;dib=eyJ2IjoiMSJ9.3RCWpBR9nnPUY0kQZTZPfKou4ICya2PMhZEpIuMbCa3zj9AFxNS8Kv7lyVvtz8xht3qRv4V4fZkx9Lg4MRfNp-ce_LXL1Nv0TCCH_vxujlPL5HabSpRZui6O9Ghdjkb-2FnUj-wZWMr0klDWAMZRBVA7IUVobYBglWZH80vL6EO_EmV3c24rLF_gHJISG-I2L5lbqcZwwYD7RShJqhScTY0Aiv69bBvcmmt4_fWHiEI.IJG6rHchezm06T6BF9oS3eN4uynIkGUzBAUxsnltw3E&amp;amp;dib_tag=se&amp;amp;keywords=velcro%2Bcable%2Bties&amp;amp;qid=1722860190&amp;amp;sprefix=velcro%2Bcable%2Btie%2Caps%2C359&amp;amp;sr=8-4&amp;amp;th=1&quot;&gt;Velcro cable ties&lt;/a&gt; — ~$17&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://henryisonline.com/blog/things-i-recommend-you-buy-and-use/q9CyUIcMYb-679.png&quot; alt=&quot;7c8a0563fa4498931714f9ac202d6b29.jpg&quot; width=&quot;679&quot; height=&quot;630&quot;&gt;&lt;/p&gt;
&lt;p&gt;On the topic of cables, I have the unfortunate habit of collecting all the cables from all my devices, storing them in a drawer,  and never throwing them away because &lt;em&gt;one day I just might need that one particular cable.&lt;/em&gt; Rather than changing my ways and dealing with the habit itself, I purchased these reusable cable ties so the rat’s nest created by my cable hoard is at least somewhat orderly. I’m only halfway though the 100-pack that I bought, and I’ve used them everywhere and for everything. They tie up the cables in my desk setup, they bundle my charging cables when I travel and they hold all the cables inside my PC together. If there’s a cable in my house, it will most likely have one of these cable ties on it. I love them.&lt;/p&gt;
&lt;h3 id=&quot;electric-candle-lighter-11&quot;&gt;&lt;a href=&quot;https://www.amazon.com/Electric-Lighter%EF%BC%8CUSB-Charge%EF%BC%8CRechargeable%EF%BC%8CArc%EF%BC%8CPlasma-Candles%EF%BC%8CFireworks%EF%BC%8CGrill%EF%BC%8CCook-Obsidian/dp/B08GLRLH25/ref=sr_1_5?crid=2XWA0L0GV03PZ&amp;amp;dib=eyJ2IjoiMSJ9.t-_MoTSHoDMvJHfTVxOy2rM46WfghkoRLLvKto7P0yyT-9nBUjTDU-OAgPus_SFBMntDnW55xqeleZzj8LoKSK6mSuCqFvhVd_945ZPOHj5ppUBzHUqMpdMg9Mwpcvh7MfARKpA-zFw7hsbcKlbuerjtTMErQYLtVIFLCK8MYQWL8bbsgLqCYkjTqx3ql0tlGOfNoOtTxsfjnB7A4Zif2EJ83uER8UZUgJUwsV5nK-EsDqD3Bw7PBG8qtVsbF7jrURVh0Qyv813_qSMMk92pltFjyMD0mmw4pKhnyI8dxZg.QCN0QAyHvlUiC9nfhk8JJdGye0b-2MnLTJm3dOD3gbg&amp;amp;dib_tag=se&amp;amp;keywords=electric%2Barc%2Blighter&amp;amp;qid=1722749159&amp;amp;sprefix=electric%2Barc%2Blight%2Caps%2C356&amp;amp;sr=8-5&amp;amp;th=1&quot;&gt;Electric candle lighter&lt;/a&gt; — $11&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://henryisonline.com/blog/things-i-recommend-you-buy-and-use/ykgPDfU2wN-679.png&quot; alt=&quot;0xy2zLpA8LtIqM5jC.jpg&quot; width=&quot;679&quot; height=&quot;656&quot;&gt;&lt;/p&gt;
&lt;p&gt;I don’t like matches, mainly because I don’t like how needlessly wasteful they are. They also feel cumbersome to use, are prone to breaking, and are a hassle to keep alive if you live in a humid area like me. I also didn’t want to buy a gas lighter that I have to spend money to either replace or refill when it runs dry, which is why I moved to using an arc lighter. These things are rechargeable, cost effective, and do all the same jobs that matches and lighters do. I’ve started countless campfires with the one I bought — &lt;a href=&quot;https://shopflint.co/products/flint-electric-candle-lighter?variant=41716921467036&quot;&gt;a nice $70 metal one from Flint&lt;/a&gt; — and with it, I’ve been able to do away with gas lighters and matches entirely. They’re also better for lighting a grill, as they’re often longer than a traditional lighter or a match.&lt;/p&gt;
&lt;h3 id=&quot;sandisk-dual-drive-go-from-20&quot;&gt;&lt;a href=&quot;https://www.amazon.com/SanDisk-256GB-Ultra-Drive-Type-C/dp/B0D245GQQ1?ref_=ast_sto_dp&amp;amp;th=1&quot;&gt;SanDisk Dual Drive Go&lt;/a&gt; — from ~$20&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://henryisonline.com/blog/things-i-recommend-you-buy-and-use/DzNruESaiU-800.png&quot; alt=&quot;ef083cfb2a8735a55458553d73a3ce07.jpg&quot; width=&quot;800&quot; height=&quot;450&quot;&gt;&lt;/p&gt;
&lt;p&gt;Possibly one of the better purchases I’ve made. I was originally recommended this USB by one of my friends on Threads and now I’m recommending it to everybody, as it’s ridiculously cheap for what you get. What you get is a tiny thumb drive with both USB-A and USB-C connectors, high transfer speeds, and phenomenal capacity. I picked up a 64GB version from my local Officeworks because &lt;strong&gt;it was the cheapest one they had&lt;/strong&gt;*,* and I use it daily. You can get this thing configured up to 1TB of storage, which is &lt;em&gt;insane&lt;/em&gt; for something this small.&lt;/p&gt;
&lt;h3 id=&quot;stanley-5m-tape-measure-9&quot;&gt;&lt;a href=&quot;https://www.bunnings.com.au/stanley-5m-19mm-yellow-tape-measure_p0588598&quot;&gt;Stanley 5m tape measure&lt;/a&gt; — $9&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://henryisonline.com/blog/things-i-recommend-you-buy-and-use/Ypk3ah37Zs-1200.png&quot; alt=&quot;b65f08b3aa646129ad82e2d7fb43342c.jpeg&quot; width=&quot;1200&quot; height=&quot;1142&quot;&gt;&lt;/p&gt;
&lt;p&gt;I bought this on a whim at the hardware store one day because it was cheap, thinking that I might find a use for it a some point. It turns out that I need to measure stuff fairly often, so much so that this tape has become part of my everyday carry. It fits in the palm of my hand and is very lightweight, which means I can easily throw it in my bag or even my pocket and completely forget about it until I need it.&lt;/p&gt;
&lt;p&gt;The case is a very thick, durable plastic, and the belt clip is pressed steel. The tape itself is only 19mm (about 5/8”) wide with clear graduations, and the spring inside feels sturdy and smooth. It’s very easy to pull and it retracts quickly. The whole thing is also bright yellow, which makes it really easy to find when I inevitably misplace it. The best part is the price. With how cheap this is, I don’t need to worry too much about being rough with it or losing it, as I can pick up another one from whatever hardware store I’m the closest to.&lt;/p&gt;
&lt;p&gt;Unfortunately I haven’t been able to find this online for much less than about &lt;a href=&quot;https://www.amazon.com.au/Stanley-pocket-tape-16FT-496/dp/B0001GRV8M/ref=mp_s_a_1_19?crid=ILI9RX214DXA&amp;amp;dib=eyJ2IjoiMSJ9.uaY1piVq2Wg76xOHvnt-nc0Jym7tbCwK67QzjpbUKGuudiRIeOzG0Ja7887Pu61jh8JGv24q_wGw4_3QXrYE8vYVnc6SPT3OTYyrWwg0XlBLHq9avD5ZsotN0Za_Y4Fe_c8-cKAaeXGedb0fKorMSXQ0Khn6Jqxc2sMSXoIaO8yj56ZUo2sXYEFABYz3R8ySdnD0_2Nz-_fcs3AmMQPtpA.NSplaaTyVmTMsZB_PsUx1RTctHjbl4wbCxXPxrL_LYQ&amp;amp;dib_tag=se&amp;amp;keywords=stanley+5m+tape+measure&amp;amp;qid=1724112921&amp;amp;sprefix=stanley+5m+%2Caps%2C591&amp;amp;sr=8-19&quot;&gt;$35&lt;/a&gt;, but this tape in particular should be really easy to find at your local hardware store for very little money.&lt;/p&gt;
&lt;h1 id=&quot;stationery&quot;&gt;Stationery&lt;/h1&gt;
&lt;h3 id=&quot;12-pack-of-staedtler-natural-pencils-12&quot;&gt;&lt;a href=&quot;https://www.amazon.com.au/STAEDTLER-PENCIL-LEAD-NATURAL-BX12/dp/B077H8JX4H/ref=sr_1_30?crid=VV64NIANQN6E&amp;amp;dib=eyJ2IjoiMSJ9.YOw19RZ7fXvrmabQuN5pGmL4tAdnKcmJncr1bloIeKtxFIouMGbZ5UpTIqUWEMGkvCk-ndL07T_TMwopsb0sAbLWZpiEKF_QpFqQe0iEixE-NL8kVkocMSgZIpBX6F7eQjpUQ95hdIQwac6vSnQmIddJVGZhO_ZRKhevKrGvaLvOZvB5qsj6A9UUGFZS6PG9ByH43JSSMPLkGHKQl75SO9Qn-thYLQB1J3uP4GhaOOTz6ahpEM2NbRD0joX_rhBy_AEt7zf8N6QLZPMcR4A_Rr7zltAG3tr6WcGi9BNLxik.Jlz9UfO7EXtwlvpZKW9p36UDxTdD2VwF0HGmAxB2qW8&amp;amp;dib_tag=se&amp;amp;keywords=staedtler+12pk+2b+pencils&amp;amp;qid=1722861953&amp;amp;sprefix=staedlet+12pk+2b+pencil%2Caps%2C245&amp;amp;sr=8-30&quot;&gt;12 pack of Staedtler natural pencils&lt;/a&gt; — $12&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://henryisonline.com/blog/things-i-recommend-you-buy-and-use/YxTRj0tGb3-800.png&quot; alt=&quot;12fd3f03854c0969b198e26b15cc2eb6.jpg&quot; width=&quot;800&quot; height=&quot;800&quot;&gt;&lt;/p&gt;
&lt;p&gt;Pencils are one of those things that are just handy to have around. Staedtler has been my go-to brand for a while now, mostly because I love how durable their graphite cores are. I’ve dropped them, stepped on them, thrown them, and accidentally flung them off my desk, and they simply &lt;strong&gt;refuse&lt;/strong&gt; to break. I prefer the natural wood ones to the &lt;a href=&quot;https://www.amazon.com.au/Staedtler-Pencils-Tradition-Graphite-110-B/dp/B000SHUQB8/ref=sr_1_21?crid=VV64NIANQN6E&amp;amp;dib=eyJ2IjoiMSJ9.YOw19RZ7fXvrmabQuN5pGmL4tAdnKcmJncr1bloIeKtxFIouMGbZ5UpTIqUWEMGkvCk-ndL07T_TMwopsb0sAbLWZpiEKF_QpFqQe0iEixE-NL8kVkocMSgZIpBX6F7eQjpUQ95hdIQwac6vSnQmIddJVGZhO_ZRKhevKrGvaLvOZvB5qsj6A9UUGFZS6PG9ByH43JSSMPLkGHKQl75SO9Qn-thYLQB1J3uP4GhaOOTz6ahpEM2NbRD0joX_rhBy_AEt7zf8N6QLZPMcR4A_Rr7zltAG3tr6WcGi9BNLxik.Jlz9UfO7EXtwlvpZKW9p36UDxTdD2VwF0HGmAxB2qW8&amp;amp;dib_tag=se&amp;amp;keywords=staedtler%2B12pk%2B2b%2Bpencils&amp;amp;qid=1722862150&amp;amp;sprefix=staedlet%2B12pk%2B2b%2Bpencil%2Caps%2C245&amp;amp;sr=8-21&amp;amp;th=1&quot;&gt;painted version&lt;/a&gt; because they feel much less slippery and softer to the touch, but you can save about 50c if you go for the painted ones (it all adds up, man).&lt;/p&gt;
&lt;h3 id=&quot;uni-ball-jetstream-101-ballpoint-pens-from-2-30&quot;&gt;&lt;a href=&quot;https://www.amazon.com.au/Uni-Ball-1768011-Jetstream-Point-12-Count/dp/B003VNGAKC/ref=mp_s_a_1_7?crid=MSKHRSBXZYPI&amp;amp;dib=eyJ2IjoiMSJ9._U44dfTOY0KOE7KRqtw5UtBw8W0uNBCxzCKkwQYjiu1CgCg9LDJBjYu1CzebDp6ckfqFE2sJ3hfuFljjlVcOPbxzfKB0ZOhTOybln6lc1bgZrLr2XC3qV_V54Tv5x9b6V6_o2-epxX6YwrMaEG6-S1cYb-g_mPky3UNPdYxJQgRkjCrGXq-iy8qtguJ4_6Z0Q_xIrCNRerQJjeOoGQGSXw.8MgtB-7Oyvt1AjKZuEv5KSsAHGYdTbnLbnR5rbsKWco&amp;amp;dib_tag=se&amp;amp;keywords=uni%252Bjetstream%252B101%252B0.7&amp;amp;qid=1722863812&amp;amp;sprefix=uni%252Bjetstream%252B101%252B%252Caps%252C357&amp;amp;sr=8%E2%80%937&amp;amp;th=1&quot;&gt;Uni-Ball Jetstream 101 ballpoint pens&lt;/a&gt; — from $2.30&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://henryisonline.com/blog/things-i-recommend-you-buy-and-use/BZlN0Qtk1Q-800.png&quot; alt=&quot;5b82f399d7204a2fdc35fb96b271c85e.jpg&quot; width=&quot;800&quot; height=&quot;450&quot;&gt;&lt;/p&gt;
&lt;p&gt;In a similar vein to the pencils, I always keep some of these pens on me. They’re much pricier than your typical &lt;a href=&quot;https://www.amazon.com.au/Cristal-Medium-Crystal-Biros-Ballpoint/dp/B004DBHR2Q&quot;&gt;Bic Cristal rollerball&lt;/a&gt; (you know the one), but they’re well worth the cost in my eyes. They last for ages, write &lt;em&gt;incredibly&lt;/em&gt; smoothly, and provide some of the cleanest lines of any pen I’ve used so far (0.7mm is objectively the correct thickness, I will not be taking questions). They also have no moving parts like their &lt;a href=&quot;https://www.amazon.com.au/Uni-JetStream-101-Retractable-._U44dfTOY0KOE7KRqtw5UtBw8W0uNBCxzCKkwQYjiu1CgCg9LDJBjYu1CzebDp6ckfqFE2sJ3hfuFljjlVcOPbxzfKB0ZOhTOybln6lc1bgZrLr2XC3qV_V54Tv5x9b6V6_o2-epxX6YwrMaEG6-S1cYb-g_mPky3UNPdYxJQgRkjCrGXq-iy8qtguJ4_6Z0Q_xIrCNRerQJjeOoGQGSXw.8MgtB-7Oyvt1AjKZuEv5KSsAHGYdTbnLbnR5rbsKWco&amp;amp;dib_tag=se&amp;amp;keywords=uni+jetstream+101+0.7&amp;amp;qid=1722863812&amp;amp;sprefix=uni+jetstream+101+%252Caps%252C357&amp;amp;sr=8%E2%80%9310-7mm/dp/B09Y8QGN88/ref=mp_s_a_1_1?crid=MSKHRSBXZYPI&amp;amp;dib=eyJ2IjoiMSJ9&quot;&gt;retractable counterpart&lt;/a&gt;s, which I frankly find very appealing from a reliability perspective. They’re $2.30 per pen at my local Officeworks, but I’ve linked to a 12 pack on amazon because it doesn&#39;t hurt to have a few spares.&lt;/p&gt;
&lt;h3 id=&quot;post-it-notes-6&quot;&gt;&lt;a href=&quot;https://www.amazon.com.au/Post-Orange-47-6mm-Sheets-2051-FLT/dp/B000GAVJP4/ref=sr_1_5?crid=CZITY5B0T5G2&amp;amp;dib=eyJ2IjoiMSJ9.ikFhjKosDEST__FaMbeKlL5cq5V8OeYHd3fPqDhW0G0CrQNs3t_yjrwyevrBB14OkrEIyLyVpFkPGCnyS7eHYGR3IK6fW6HAmP0_YfHQL7dGWevh2YdNSHUSVvhRw70DU0GlKG1VcmdPg-lnKejuBkrFMTRrUmzL8utB32Ppc4fDBOb_uezxVScCUPVGHdOk046u6sqEYU_528YC5zsGcKS7yfTITLELhKPwXmp7KBoiWQu4RRqC1WFzU0UhJue1WkklrmxSorPNu8A_CW6xXkpyZi7CJ1bF4olKeQhP8mg.rRBg8nVgqCE3ia_zcvUnquq7S9u7-__GhkvkY2_oQAc&amp;amp;dib_tag=se&amp;amp;keywords=post%2Bit%2Bnotes&amp;amp;qid=1724209604&amp;amp;sprefix=post%2Bit%2Bnote%2Caps%2C248&amp;amp;sr=8-5&amp;amp;th=1&quot;&gt;Post it notes&lt;/a&gt; — $6&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://henryisonline.com/blog/things-i-recommend-you-buy-and-use/62vMnSEuph-1200.png&quot; alt=&quot;9347e359646e673b62b6cd7b54dd1bb8.jpg&quot; width=&quot;1200&quot; height=&quot;1200&quot;&gt;&lt;/p&gt;
&lt;p&gt;Another one of those things that’s just handy to have around. I have a stack of post-it notes on my desk that I find myself reaching for several times a day to take note of small things that immediately spring to mind. They’re also useful as physical reminders. If, say, you remember that the bins need to be taken out, but you’re too busy &lt;em&gt;right now&lt;/em&gt; to take them out, you can write a reminder on a post-it note, stick it to the bins, and get back to what you were doing without breaking your concentration too much. This is mostly how I use post-it notes, and they’re such a useful tool for those of us who tend to forget things as soon as they come to mind.&lt;/p&gt;
&lt;h3 id=&quot;a-medium-sized-whiteboard-60&quot;&gt;&lt;a href=&quot;https://www.amazon.com.au/Magnetic-Whiteboard-Silver-Aluminum-905X600MM/dp/B07HNRQZGM/ref=sr_1_5?crid=3M9CJKG9EGSN9&amp;amp;dib=eyJ2IjoiMSJ9.EyQ_0EX8cYPcxmAH8Sup_mmg1A2tlT3c_zTrI_fNKcG-qusZIb2i9q7LbjILuByHdhm4MAMiiLTC-PGXnWNB_1gZde2-11oAZmbVQvqDoNMclYIuP9CTI0JgBuHd6BlgXXqD9rbCTMPsHMB966VTNaKhZMUvVfQz3rPSaWYVd5RtYH298YEtAJyQBabgAtB4ZgXlbfA_tgClklG0-ZdJsJKKw-EjfeH0E19avyRu4kP11c4zhzJie6CwfT6RxxSZnHPtad1bgY4snajncm04mt86Tt32emh8-yXMclpsEPs.rKMuzIKP_EBxooI_Qn1Tl-DpT7r6Bs9QasfUSGWUpE4&amp;amp;dib_tag=se&amp;amp;keywords=whiteboard&amp;amp;qid=1724209930&amp;amp;sprefix=whiteboar%2Caps%2C249&amp;amp;sr=8-5&amp;amp;th=1&quot;&gt;A medium-sized whiteboard&lt;/a&gt; — $60&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://henryisonline.com/blog/things-i-recommend-you-buy-and-use/6tOudHpEW2-1200.png&quot; alt=&quot;d06703bc34c609a2f422257b3506af6c.png&quot; width=&quot;1200&quot; height=&quot;796&quot;&gt;&lt;/p&gt;
&lt;p&gt;A whiteboard with &lt;a href=&quot;https://www.amazon.com.au/QUARTET-QTTWC250-Quartet-Whiteboard-Cleaner/dp/B075ZZW9X8/ref=sr_1_5?crid=290AMQ0ICPVVA&amp;amp;dib=eyJ2IjoiMSJ9.8qBNFOXuKDliHOxIZQDjG_fMEeBDsN8Bn3xjsbKqMMoCLc73FMqOG3oaN_ck1lBjlpj88U2ejDxYJO7YYFFmNZvKCuTYy2xp3Gnl_i6mgTOEUk2SVfbla8KaCBuPyZisHyL5AT-Jw-Y_oiVvQaghtOSOz6N3DXl9_hKFLnJnK36Xo5VUksbhhzFgOcE047DxsO-qZkBShiVDDUmqbCHfqiIwetCPvhKL0wAYZNWle8g0M3zM1lACzmyPzCjKlFWK_NsqA1F-dMFBaksso85cdKi7ooy3t2sP1IljV_oscXo.bEtrKCAonVS0MU6bFCRmaFYW-8ZYFYUgYeZs-rIhCUc&amp;amp;dib_tag=se&amp;amp;keywords=whiteboard%2Bcleaner&amp;amp;qid=1724210091&amp;amp;sprefix=whiteboard%2Bcleane%2Caps%2C248&amp;amp;sr=8-5&amp;amp;th=1&quot;&gt;some&lt;/a&gt; &lt;a href=&quot;https://www.amazon.com.au/Post-Whiteboard-Surface-Cleaning-DEFCLOTH/dp/B00NC1D5OC/ref=sr_1_4?crid=1EAHU9LFJ1BE0&amp;amp;dib=eyJ2IjoiMSJ9.gTflIFLGHGWeDjXagduTbvUjIvYA-DUailR-mFp5d5ddan2pOuZZQJ0qieogw8aoxOgsitgfsp6RVfTHdsNBV0B1iMsseSz509aSd5AuY7OAczC6fOmV6c3OZoSd-kDzfM5mrr_Jg51O7qnXSNydkvJIMmklCvSN-6PryfSGkc7FJ5E8kSSKXEMSJ1fOHmxAgn0h3ijdNQP_E9J4QIF91XgMvPHytb_3YMvfl2171O3T0c4tUTDpadQwjp9DjvCs-UGf09A-Na6QK9y4k5x5hFgIP3dGbQpqZpk_6hIsU-U.SxTPz0a9qmM2hdigLOGxRUtEhvSm7LIUS1WluXhYZss&amp;amp;dib_tag=se&amp;amp;keywords=whiteboard%2Bcleaner%2Bcloth&amp;amp;qid=1724210114&amp;amp;sprefix=whiteboard%2Bcleaner%2Bclot%2Caps%2C244&amp;amp;sr=8-4&amp;amp;th=1&quot;&gt;good&lt;/a&gt; &lt;a href=&quot;https://www.amazon.com.au/Magnetic-Whiteboard-Storage-Organizer-Cabinets/dp/B0B3T7X5BD/ref=sr_1_5?crid=3I7DXBT9CFGO8&amp;amp;dib=eyJ2IjoiMSJ9.fBQ5WcfMhafqxJyXs1e9al4aScIFaFkkO6c51yjQIg_UZkP7OEutpr4bc654QKiUujywO-1WN78KmT6NO5X1qmhtaiyhgcL5_oucCXSlVbLgGdy6DDtA5cKZYqLGmgvKio59s4l6NoAyALO-YgzsL8iF9P--C29_iiN8NWf2_z0WwpOP10yw2_umCuxXhuQhRUUt_lRH4YbPqQBAgxAQCWEx9CRdURqsLkX9LPUstsbB_Ep9hBopB62aaECJUztI0v1fyWtINu4UNXdHYBgN073-vpv30w9lHFWoUuSBU3I.5vDqIxmsegKmUolVgpm35X7uJY_aaDyU-S_sRDBGub0&amp;amp;dib_tag=se&amp;amp;keywords=whiteboard%2Beraser%2Band%2Bpen%2Bholder&amp;amp;qid=1724210142&amp;amp;sprefix=whiteboard%2Beraser%2Band%2Bpen%2Bholde%2Caps%2C244&amp;amp;sr=8-5&amp;amp;th=1&quot;&gt;accessories&lt;/a&gt; and &lt;a href=&quot;https://www.amazon.com.au/Staedtler-Whiteboard-Lumocolor-351-WP6/dp/B000KJMJ5K/ref=sr_1_8?crid=3U93H3YBKBSEQ&amp;amp;dib=eyJ2IjoiMSJ9.bjzqmpp6Xh-_UHBNERKRuHmg24JgQj4qvLXoRx59YJ5uuUm-miWmLV5X1kXbgd3iZZruVPShVmmAxYT4KG83VJyzvdCx3UXn1P7n6tmsjUpwyDijtRtuoyppxlquxCEXN5Xe8R1V48uAP0p1jx9lfyN9OPq8TaUgpwzz5MqnDuW6jIa80R7-wRJgIc0MfHcpMIH6AdX5Fc8KHR9uS-O7_rgFN8f_zuZfNby7CWSGSx5XgRrmbz9bM5cjJNYTwWnGkjgPayIf2DH4ayzPitQ4spki_elCD0PPHXOs2QNmeK4.rGjvBMMKTHq5VHSZYofAReBDgYQQpxUIEezB-YqBlwQ&amp;amp;dib_tag=se&amp;amp;keywords=staedtler+whiteboard+pens&amp;amp;qid=1724210199&amp;amp;sprefix=staedler+whiteboard+pe%2Caps%2C247&amp;amp;sr=8-8&quot;&gt;pens&lt;/a&gt; has been incredible helpful for my organisation over the past few years. I don&#39;t have this whiteboard exactly - I instead used a &lt;a href=&quot;https://www.amazon.com.au/Post-Whiteboard-Erase-Surface-DEF3X2/dp/B00NC1D5YM/ref=sr_1_1?crid=CY2HAE7L6619&amp;amp;dib=eyJ2IjoiMSJ9.9DXYWLHU1EwNB5gfeY00JbvDiiJsY9VZ_bXpGyP5rKh1KDvwmIPF9aunyEs98edzrSv5QEYDj3ncfgvHxLAjY7SiA37oYYh9iolPlLHfvCoVVwhKPDSJTLUlCjblx9Xu-TT_XGOZH2efnhUhJOZxsZogmJBEPV6EczSTJPAvj_DeYurdpas8TszPOP5a5HmIuYW6lNXZDkVB9CZXHDK2fvEdSqDPUVGYpdbYOjy20T7hOQmoLZ4-md8OUhMHE2CYXqrC6wHIJ_l3Y0WQqOTwkrWsta-MCn3zCotKgUIPV18.bjuRl2rGff0qnEiDK-lyD6z-XfX-A72P_GNhtKdYzNA&amp;amp;dib_tag=se&amp;amp;keywords=post%2Bit%2Badhesive%2Bwhiteboard&amp;amp;qid=1724210330&amp;amp;sprefix=postit%2Badhesive%2Bwhoteboar%2Caps%2C247&amp;amp;sr=8-1&amp;amp;th=1&quot;&gt;Post-It adhesive whiteboard&lt;/a&gt; and some MDF to make my own and stick them to my cupboard doors - but I can nonetheless recommend it. My whiteboard serves as a scratchpad for ideas and is often the first place I’ll write things down when trying brainstorm or fix things. It’s also really handy for explaining ideas that work better with a diagrams, or when I have to work on ideas with a group of people, as everything can be easily erased and moved around.&lt;/p&gt;
&lt;p&gt;It’s also a very handy way to plan a week, note down any tasks that need doing without having to use any kind of software (like my beloved Todoist), or just generally organise your life. It’s a freeform reusable canvas, and it’s well worth the money for the time and mental energy you can save by using it as an outboard brain.&lt;/p&gt;
&lt;h1 id=&quot;other-things-i-like-that-aren-t-cheap&quot;&gt;Other things I like that aren’t cheap&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.amazon.com/dp/B0C35V1CLK?ref_=mr_referred_us_au_au&amp;amp;th=1&amp;amp;source=post_page-----b442d74874e8--------------------------------&quot;&gt;Epson Perfection V39 II scanner&lt;/a&gt; — $181&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.skechers.com.au/hyper-slide-reliance-229040-bbk.html&quot;&gt;Sketchers slides&lt;/a&gt; — $139&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.amazon.com/SAMSUNG-Portable-SSD-1TB-MU-PC1T0T/dp/B0874XN4D8/ref=sr_1_1?crid=2CIWLBGK28D3T&amp;amp;dib=eyJ2IjoiMSJ9.1e7xIf9mgHwLWvSeT6yTUl_2bd4_XxTNWVGoDe8wDtGkhuwXHgufVjAgoQjwbC2OCsiI5tONxNrp05ShANUy1zN-vBDQ6zfjHd4M7mo9AHpamEFQJG0_vbt38moKoAWyazDNroOquaH3VPRXVEbgMhskvgVgobpBBo9tKjwKvsWXIERs2VROTnW1tqs5kLgmt5JKu-UOJ665UXOkyRyh-tdQ-upcyulAEzJThv4du5I.7dNIhkW-cZ8t7Pj5BTQGkUcSXuvTtpQBI7VyNCWnEHM&amp;amp;dib_tag=se&amp;amp;keywords=samsung%2Bt7&amp;amp;qid=1722748303&amp;amp;sprefix=samsung%2Bt%2Caps%2C431&amp;amp;sr=8-1&amp;amp;th=1&quot;&gt;Samsung T7 External SSD 1TB&lt;/a&gt;— $154&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://leatherman.com.au/collections/multi-tools/products/rebar%C2%AE-stainless?variant=37789298917538&quot;&gt;Leatherman Rebar&lt;/a&gt; - $194&lt;/li&gt;
&lt;/ul&gt;
</description>
      <pubDate>Fri, 23 Aug 2024 00:00:00 GMT</pubDate>
      <dc:creator>Henry</dc:creator>
      <guid>https://henryisonline.com/blog/things-i-recommend-you-buy-and-use/</guid>
    </item>
    <item>
      <title>On blogging and social media</title>
      <link>https://henryisonline.com/blog/on-blogging-and-social-media/</link>
      <description>&lt;p&gt;I really think one of the things that’s stopping me from writing more is this strange idea that everything I make here has to be some impressive think piece, or reach some higher minimum word count than any of my threads.&lt;/p&gt;
&lt;p&gt;I don’t think it could be further from the truth.&lt;/p&gt;
&lt;p&gt;This is &lt;em&gt;my&lt;/em&gt; blog, where &lt;em&gt;I&lt;/em&gt; post things. There’s no set rules other than &lt;strong&gt;I post what I want&lt;/strong&gt;. I like to write longer posts than what I typically write on threads, but that’s probably a good thing. Instant gratification from social media has done a number on my brain chemistry, and I’m really enjoying going back to an older, slower internet for a little bit while I get less online. If I’m being honest, I think a &lt;em&gt;lot&lt;/em&gt; of people could benefit from a slower internet. It helps.&lt;/p&gt;
&lt;p&gt;Ultimately, I want my place online to be a blog that I write, because writing this way definitely works better for my brain than Threads or Twitter (may she rest in peace) ever has. I’m slowly working on rewriting my thought processes to pursue more intentional internet use, and writing in a blog like this is going to be a big part of it. Focusing more of the quality of my time spent online, not the quantity. It’s a goal I’m working on slowly, but I’m making progress, which I’m happy about. I like where I am on the internet at the moment, and I want to keep this feeling around for as long as I can. It’s good to make stuff again.&lt;/p&gt;
</description>
      <pubDate>Wed, 21 Aug 2024 00:00:00 GMT</pubDate>
      <dc:creator>Henry</dc:creator>
      <guid>https://henryisonline.com/blog/on-blogging-and-social-media/</guid>
    </item>
    <item>
      <title>What Am I Doing Here</title>
      <link>https://henryisonline.com/blog/what-am-i-doing-here/</link>
      <description>&lt;p&gt;First post here, and more of a test post than anything. I’ll tell you a little about me and what I plan to do here.&lt;/p&gt;
&lt;p&gt;The &lt;em&gt;about&lt;/em&gt; has most of the interesting things about me covered, but I haven’t really said what I plan to do with this place. That&#39;s mostly because I’m not really sure. I’ve never had a blog before, much less one I’ve been inclined to use regularly, and my only experience with microblogging proper has been on Threads. I’ve yelled about some of my ideas over there, but I haven’t been able to go into too much detail because of the way that Threads is — what with character limits and all that. I want to use this space to write out some of my more complex thoughts and ideas that I feel are worth sharing with all the nuance and caveats and details they require.&lt;/p&gt;
&lt;p&gt;I honestly feel like the last thing the world needs right now is another blog about consumer technology, so I’ll do my best to not do &lt;em&gt;that&lt;/em&gt;. However, if I’ve learnt anything about myself, it’s that I am a Certain Way, so it’s entirely likely that it might devolve into &lt;em&gt;just that.&lt;/em&gt; Mostly I’ll write about whatever I feel like, which I sincerely hope will be entertaining enough for you to stick around. Anyway.&lt;/p&gt;
&lt;p&gt;Big Things Coming™, as the mediocre club DJs always say. I’m looking forward to writing more, and I’m keen to see what others have to say about what I have to say. Go read a bunch of other good blogs — it’s well worth it. You can find me on &lt;a href=&quot;https://bsky.app&quot;&gt;Bluesky&lt;/a&gt; and &lt;a href=&quot;https://mastodon.social/&quot;&gt;mastodon.social&lt;/a&gt; as @henryisonline. This used to say Threads, but now it doesn’t — I’ve come to detest Meta and their shenanigans. I have no idea how wrap these things up.&lt;/p&gt;
&lt;p&gt;Here’s my stupid face from years ago.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://henryisonline.com/blog/what-am-i-doing-here/wx__aFdRzG-720.png&quot; alt=&quot;ac3a3f54b536c4b14766c7055be5fe50.jpeg&quot; width=&quot;720&quot; height=&quot;720&quot;&gt;&lt;br&gt;
My stupid face from years ago&lt;/p&gt;
</description>
      <pubDate>Tue, 16 Jul 2024 00:00:00 GMT</pubDate>
      <dc:creator>Henry</dc:creator>
      <guid>https://henryisonline.com/blog/what-am-i-doing-here/</guid>
    </item>
  </channel>
</rss>