Skip to main content

Isaac Freeman


  1. Sustainable Dev Environments with Docker and Bash

    Docker is a good tool for deployment, but I've always found it too fiddly to be useful for development environments on macOS.

    David Bryant Copeland's Sustainable Dev Environments with Docker and Bash covers a straightforward way to fix that, walking through how to write Bash scripts to manage Docker containers for development. Along the way it provides a refresher course on Docker and Bash scripting, and shows how to build well-behaved scripts with all the behaviour you'd expect from a command-line tool.

    Both Docker and Bash have (to put it mildly) a lot of poorly-conceived terminology and unpredictable behaviour. They're messy, but they're widely used, and Bash especially has stood the test of time. Copeland is appealingly snarky, and doesn't try to hide the sharp edges: instead he shows how to build around them so you don't get cut. It's immensely reassuring as a reader to know that the author sees the same problems you do, and has mapped out a path to avoid them.

  2. Kakano theme for Obsidian

    Minimal theme with a smooth gradient background based on your accent color. Image shows six screenshots with differently-colored backgrounds.

    Obsidian is a note-taking app I use a lot. It's extremely versatile, and great for storing all sorts of information that you want to get out of your head. You can link notes together into a kind of personal wiki, and there's a busy community building plugins for it. Notes are stored in standard Markdown, and grouped in "vaults".

    I use Obsidian for work, where I keep a daily logbook of what I'm working on, agenda items for upcoming meetings, and snippets of code to remind myself how to do various things. But I also keep a separate Obsidian vault for personal stuff: projects, shopping lists, draft submissions for for legislation, ideas for stories and non-fiction articles, and whatever else.

    Colour #

    I switch between these two vaults a lot, so I wanted to be able to tell them apart at a glance by having a strong colour difference. There are lots of themes available, but most seem to be designed with the (very reasonable) assumption that people typically use one vault at a time. But Obsidian is built with web technologies, and I am a web developer, so I made a new theme for the job.

    Obsidian provides a setting for an accent color, which by default is used for links, controls and text selection. That accent colour is available to themes, so I set out to use it more extensively. Kakano generates a set of lighter and darker shades from that base colour and uses them to provide a subtle smooth gradient background, and matching modal windows and controls.

    Two screenshots comparing the default gray theme for Obsidian with the Kakano theme in a colour I'm informed is named 'Dogwood Rose'.
    Default Obsidian theme on the left, Kakano on right.

    I use purple for work, green for my personal vault. The bright colours make it easy to locate my vaults against the mostly-monochrome windows of other apps.

    Kakano is the Māori word for "colour".

    Additional features #

    Light/dark themes #

    The same Kakano-themed window, split diagonally to show light and dark versions.

    Obsidian supports light and dark modes, so Kakano does too.

    Close buttons where they belong #

    Obsidian is available for Windows, macOS, Linux, iOS and Android. On most of these platforms the control to close a window is positioned on the right, so that's where it appears in most Obsidian themes. On macOS, though, close buttons have always been on the left of windows. I guess most people aren't bothered by the inconsistency, but I am not one of those people: when a macOS app has close buttons on the right it stands out like a sore thumb. Kakano detects which platform it's running on, and moves close buttons to the left if it's running on macOS.

    Consistent controls #

    Obsidian provides a lot of controls throughout its UI, and they're often provided by different plugins with slightly different appearances. I've aimed to improve consistency with Kakano.

    Examples of a text input field, dropdown, button, switch and several icons.
    Various Obsidian controls, styled with Kakano

    Getting Kakano #

    Kakano is available to install from within Obsidian. Go to Settings > Appearance, then click on Manage in the Themes section. You'll find it listed there alongisde other community themes that have been approved by the Obsidian team.

    Source code is available on Github.

    Future #

    There's a lot more to do! In particular, I want to polish how Kakano appears on mobile screens, and how it renders notes that use popular Obsidian plugins.

  3. Who's the main character?

    When a progressive political party launches a policy, it's worth paying attention to who gets centred as the main character in news articles.

    You would think that this would be straightforward. If the Green Party has launched a housing policy, you'd write an article saying ‘Greens launch housing policy’. Describing the policy would be the main point, then you might get some context from independent experts in housing to help people decide what they think of it.

    What you more often see is ‘Landlords attack logic of Green housing policy’. Before the reader knows what the policy is, they're told that there was a negative response and invited to dismiss it as unworkable. Somehow it's more important to tell you the self-interested opinion of a landlord than it is to give you accurate information about the policy itself. You’ll see this pattern all the time, and it reflects poorly on the news organisations that use it.

    It's not that the opinions of people affected by a policy are irrelevant. They could be included further down the article, or be spun out into a whole separate article. But if they're presented as the most important thing to know, that’s an attempt to discourage you from making up your own mind.

  4. A proposal to the Academy of English concerning the word Queue

    It has often been observed that the word queue is pronounced the same as the letter Q, and that therefore the remaining letters serve no useful purpose. Typically this is followed by a recommendation that the remaining letters be removed. While this is clearly an unacceptable situation, I believe that there is a better solution.

    I propose to the august members of the Academy of English that they introduce regular updates to the word queue. Once a year, the first letter should be removed on the assumption that it has had ample time to complete its business at the front, and it is now the next letter’s turn.

    Thus, in the subsequent year the word would be spelled ueue, and pronounced the same as the letter U. The following year it would become eue, pronounced E.

    From time to time, the Academy should announce new letters that have joined the end of the word. This is sure to excite great public interest, and provide valuable media attention to lesser-known letters.

  5. This is my blog.

    It might be a while before I have time to post much, but this is my new blog. It uses Elventy and Netlify. I am pleased with it.