<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Emergent Thoughts, Captured on </title>
    <link>https://cmacr.ae/blog/</link>
    <description>Recent content in Emergent Thoughts, Captured on </description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en</language>
    <copyright>© 2023, Calum MacRae</copyright>
    <lastBuildDate>Fri, 09 Jul 2021 00:00:00 +0000</lastBuildDate><atom:link href="https://cmacr.ae/blog/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>A Simple GitHub Actions Pipeline for Releasing Container Images</title>
      <link>https://cmacr.ae/blog/a-simple-gh-actions-container-release-pipeline/</link>
      <pubDate>Fri, 09 Jul 2021 00:00:00 +0000</pubDate>
      
      <guid>https://cmacr.ae/blog/a-simple-gh-actions-container-release-pipeline/</guid>
      <description>If you&amp;#39;re hosting your software project on GitHub and it runs in a container, here&amp;#39;s a dead-simple, drop in GitHub Actions pipeline you can use to release your image.
Features OCI image annotations GitHub/DockerHub repository README syncing DockerHub &amp;amp; GitHub Container Registry publishing GitHub Release creation Workflow Releasing is based on tags. If you adhere to semantic versioning, a release will be built and published on every tag starting with v.</description>
    </item>
    
    <item>
      <title>A Nix overlay for Emacs 27 with the &#39;emacs-mac&#39; patches</title>
      <link>https://cmacr.ae/blog/a-nix-overlay-for-emacs-27-mac/</link>
      <pubDate>Wed, 12 Aug 2020 00:00:00 +0000</pubDate>
      
      <guid>https://cmacr.ae/blog/a-nix-overlay-for-emacs-27-mac/</guid>
      <description>UPDATE
The official emacs-macport package has been updated on the nixpkgs master branch, so should hit the nixpkgs-unstable channel soon!
With the recent release of Emacs 27.1, I figured I&amp;#39;d share a Nix overlay I&amp;#39;m using to build it with the &amp;#39;emacs-mac&amp;#39; patches.
Emacs 27 comes with some great performance improvements. Including native JSON support, which makes for a really slick experience with lsp-mode. On top of that, it&amp;#39;s really nice having Mitsuharu Yamamoto&amp;#39;s patches to enhance the experience further on macOS, as things just play a lot nicer.</description>
    </item>
    
    <item>
      <title>&#34;Cloud-like&#34; Infrastructure at Home - Part 1: LoadBalancers on the Metal</title>
      <link>https://cmacr.ae/blog/cloud-like-infra-at-home-part-1/</link>
      <pubDate>Mon, 10 Aug 2020 00:00:00 +0000</pubDate>
      
      <guid>https://cmacr.ae/blog/cloud-like-infra-at-home-part-1/</guid>
      <description>This is the introductory post to a series outlining how I achieve &amp;#34;Cloud-like&amp;#34; application deployments on my personal servers. If you&amp;#39;re interested in Platform Engineering/SRE/DevOps, read on!
What does &amp;#34;Cloud-like&amp;#34; mean? I&amp;#39;m using this phrase to express a set of capabilities that engineers have come to expect from cloud providers in their offerings for hosting infrastructure. Namely: load balancers, dynamic DNS, certificate leasing, and perhaps a few others.
Who&amp;#39;s this post for?</description>
    </item>
    
    <item>
      <title>spacebar module in nix-darwin now generally available</title>
      <link>https://cmacr.ae/blog/spacebar-module-in-nix-darwin-now-generally-available/</link>
      <pubDate>Thu, 14 May 2020 00:00:00 +0000</pubDate>
      
      <guid>https://cmacr.ae/blog/spacebar-module-in-nix-darwin-now-generally-available/</guid>
      <description>To accompany my post from yesterday for the yabai module in nix-darwin, I&amp;#39;m happy to announce there is now also a module for installing and configuring spacebar
If you&amp;#39;re a user of nix-darwin&amp;#39;s master branch, and follow the nixpkgs-unstable channel, you can manage spacebar in your configuration like so
services.spacebar.enable = true; services.spacebar.package = pkgs.spacebar; services.spacebar.config = { clock_format = &amp;#34;%R&amp;#34;; space_icon_strip = &amp;#34;   &amp;#34;; text_font = &amp;#39;&amp;#39;&amp;#34;Helvetica Neue:Bold:12.</description>
    </item>
    
    <item>
      <title>yabai module in nix-darwin now generally available</title>
      <link>https://cmacr.ae/blog/yabai-module-in-nix-darwin-now-generally-available/</link>
      <pubDate>Wed, 13 May 2020 00:00:00 +0000</pubDate>
      
      <guid>https://cmacr.ae/blog/yabai-module-in-nix-darwin-now-generally-available/</guid>
      <description>As of ~2 hours ago, a Nix module to install &amp;amp; configure yabai is now generally available on the master branch of nix-darwin.
I submitted a PR for a module I&amp;#39;d been using personally for a while which I finally decided to share.
If you follow the master branch on your macOS system, after a nix-channel --update, you can now manage yabai like so
{ services.yabai = { enable = true; package = pkgs.</description>
    </item>
    
    <item>
      <title>Nix Generator Functions for Sway</title>
      <link>https://cmacr.ae/blog/nix-generator-functions-for-sway/</link>
      <pubDate>Sun, 10 May 2020 00:00:00 +0000</pubDate>
      
      <guid>https://cmacr.ae/blog/nix-generator-functions-for-sway/</guid>
      <description>A short &amp;amp; sweet post on using the Nix language to generate Sway config 🥝
I don&amp;#39;t tend to use Linux on the desktop at the moment and figured it&amp;#39;d be a shame not to share these functions I wrote to generate input &amp;amp; output blocks.
toSwayInputs Convert a set representing Sway input expressions to valid sway config.
Usage toSwayinputs inputs
Expression toSwayInputs = inputs: concatStringsSep &amp;#34;\n&amp;#34; ( mapAttrsToList (device: config: &amp;#39;&amp;#39; input &amp;#34;${device}&amp;#34; { ${concatStringsSep &amp;#34;\n &amp;#34; ( mapAttrsToList (p: v: &amp;#34;${p} ${v}&amp;#34;) config )} } &amp;#39;&amp;#39;) inputs ); Example input inputs = { &amp;#34;1:1:AT_Translated_Set_2_keyboard&amp;#34; = { xkb_layout = &amp;#34;gb&amp;#34;; xkb_options = &amp;#34;ctrl:nocaps&amp;#34;; }; &amp;#34;1739:0:Synaptics_TM3381-002&amp;#34; = { pointer_accel = &amp;#34;0.</description>
    </item>
    
    <item>
      <title>Managing Firefox on macOS with Nix</title>
      <link>https://cmacr.ae/blog/managing-firefox-on-macos-with-nix/</link>
      <pubDate>Sat, 09 May 2020 00:00:00 +0000</pubDate>
      
      <guid>https://cmacr.ae/blog/managing-firefox-on-macos-with-nix/</guid>
      <description>In this post I&amp;#39;ll talk about how I manage Firefox and mimick some of the behaviours/aesthetics I&amp;#39;d come to enjoy from using other browsers over the years.
Note: I&amp;#39;m in no way affiliated with Worldwide. It&amp;#39;s a cool project and the site looks great, so figured I&amp;#39;d use it for a screenshot
Last winter, like many others, my experience with Chrome/Chromium had been a little sour for some time. I decided to make the jump to Firefox.</description>
    </item>
    
    <item>
      <title>Keeping Up Appearances: Non-native macOS Light/Dark Mode</title>
      <link>https://cmacr.ae/blog/keeping-up-appearances-non-native-macos-light-dark-mode/</link>
      <pubDate>Sun, 03 May 2020 00:00:00 +0000</pubDate>
      
      <guid>https://cmacr.ae/blog/keeping-up-appearances-non-native-macos-light-dark-mode/</guid>
      <description>I like the auto light/dark mode feature of macOS, it&amp;#39;s nice to have your system change in the evening as the sun sets - less strain on the eyes if a night of hacking is ahead. But I spend most of my time either in a terminal or in Emacs, so don&amp;#39;t really see much of a difference.
I was wondering if I could somehow invoke arbitrary commands when the system changed, that way I could run whatever I need to change from a light theme to a dark theme in other applications.</description>
    </item>
    
    <item>
      <title>Emacs: Making NeoTree work with Perspectives</title>
      <link>https://cmacr.ae/blog/emacs-making-neotree-work-with-perspectives/</link>
      <pubDate>Sat, 09 Feb 2019 00:00:00 +0000</pubDate>
      
      <guid>https://cmacr.ae/blog/emacs-making-neotree-work-with-perspectives/</guid>
      <description>I like NeoTree, it’s simple and does what I need in terms of side-bar file browsing. But it’s got a particularly annoying problem that I finally decided to take a stab at solving.
In day-to-day use of Emacs, I rely very heavily on projects and workspaces. These are at the very core of my workflow and navigation. I have many Git repositories that I operate in and move around. Those are translated to “projects” by Projectile, and in turn those projects are tied to “perspectives” (think workspaces/virtual desktops), provided by Perspective.</description>
    </item>
    
    <item>
      <title>Your own VPN with OpenIKED &amp; OpenBSD</title>
      <link>https://cmacr.ae/blog/your-own-vpn-with-openiked-openbsd/</link>
      <pubDate>Tue, 05 Jun 2018 00:00:00 +0000</pubDate>
      
      <guid>https://cmacr.ae/blog/your-own-vpn-with-openiked-openbsd/</guid>
      <description>Well, it’s been quite some time since I blogged! I figure I’ll jump back in with a short ‘n sweet post.
Remote connectivity to your home network is something I think a lot of people find desirable. Over the years, I’ve just established an SSH tunnel and use it as a SOCKS proxy, sending my traffic through that. It’s a nice solution for a “poor man’s VPN”, but it can be a bit clunky, and it’s not great having to expose SSH to the world, even if you make sure to lock everything down.</description>
    </item>
    
    <item>
      <title>A Seamless X11 Experience on OS X</title>
      <link>https://cmacr.ae/blog/seamless-x11-on-osx/</link>
      <pubDate>Mon, 04 May 2015 00:00:00 +0000</pubDate>
      
      <guid>https://cmacr.ae/blog/seamless-x11-on-osx/</guid>
      <description>Introduction When Youri and I first set out hacking on OS X, before the real inception of Save OS X, we spent quite some time chasing an X11 set up that felt as if we were on any other *nix platform that we had become accustomed to. We never did quite get it exactly the same. I even tried, at one point, taking apart and hacking about with some of the sources from the PureDarwin project.</description>
    </item>
    
    <item>
      <title>A Quick Demo of Save OS X on a Fresh Yosemite Install</title>
      <link>https://cmacr.ae/blog/sosx-fresh-demo/</link>
      <pubDate>Fri, 24 Apr 2015 00:00:00 +0000</pubDate>
      
      <guid>https://cmacr.ae/blog/sosx-fresh-demo/</guid>
      <description>Up and running in no time! I did a fresh install of OS X Yosemite on my MacBook Air (2011, 11&amp;#34;) today. I figured I&amp;#39;d show off how fast and easy it is to get up and running with secure, 64bit binary package management using Save OS X.
The above video shows the execution of the quickstrap script, a streamlined bootstrapper for getting Save OS X set-up on your system.</description>
    </item>
    
    <item>
      <title>E-mail in Emacs with mu4e on OS X</title>
      <link>https://cmacr.ae/blog/email-in-emacs/</link>
      <pubDate>Sun, 25 Jan 2015 00:00:00 +0000</pubDate>
      
      <guid>https://cmacr.ae/blog/email-in-emacs/</guid>
      <description>I&amp;#39;ve been using the brilliant mu4e for my e-mail for a little while now, and couldn&amp;#39;t not write about it. I&amp;#39;m enjoying e-mail for the first time!
So, I&amp;#39;m actually enthusiastic about E-mail now… Having my e-mail in Emacs means I actually want to check it, because using mu4e is such an enjoyable experience. I always have an mu4e buffer open. As is likely the case with a lot of people, depending on your profession I suppose, I get a lot more work e-mail than personal.</description>
    </item>
    
    <item>
      <title>Blogging with org-page</title>
      <link>https://cmacr.ae/blog/org-page-blogging/</link>
      <pubDate>Sun, 18 Jan 2015 00:00:00 +0000</pubDate>
      
      <guid>https://cmacr.ae/blog/org-page-blogging/</guid>
      <description>I moved my blogging framework from Jekyll over to org-page yesterday, so I figured I&amp;#39;d write about it!
Why I moved Before I moved to org-page yesterday, I&amp;#39;d been blogging with Jekyll for a while. Granted, I don&amp;#39;t write often (something which is going to change).
I like Jekyll - it&amp;#39;s simple. There&amp;#39;s not really any messing around. You just write your posts in markdown, then use git and post-commit hooks to generate/publish the site on your remote system.</description>
    </item>
    
    <item>
      <title>A Streamlined Bootstrapper for Save OS X</title>
      <link>https://cmacr.ae/blog/sosx-quickstrap/</link>
      <pubDate>Sat, 03 Jan 2015 00:00:00 +0000</pubDate>
      
      <guid>https://cmacr.ae/blog/sosx-quickstrap/</guid>
      <description>Well this is weird… I&amp;#39;m actually writing a blog post.
Youri and I have been working on Save OS X on and off for quite some time now. It&amp;#39;s grown and matured into something we&amp;#39;re very proud of, but sadly, we&amp;#39;re not the best at advocacy. This is something we&amp;#39;ll be working on. I won&amp;#39;t be going into detail about the project at large in this post. I wanted to write about a specific script I threw together the other day, and my motives behind writing it.</description>
    </item>
    
    <item>
      <title>Yet Another &#34;Put your dotfiles on GitHub&#34; Post</title>
      <link>https://cmacr.ae/blog/github-dotfiles/</link>
      <pubDate>Sat, 19 Apr 2014 00:00:00 +0000</pubDate>
      
      <guid>https://cmacr.ae/blog/github-dotfiles/</guid>
      <description>Yes, I know, the web is littered with posts recommending you manage your dotfiles with version control, specifically - more often than not - with Git &amp;amp; GitHub. I figured I&amp;#39;d do this short write up, as I&amp;#39;d like to detail how I go about achieving what many others have come to find a handy convenience, but I&amp;#39;d like to touch on one or two things others may not have mentioned.</description>
    </item>
    
    <item>
      <title>2FA with the YubiKey &amp; OpenBSD for SSH Access</title>
      <link>https://cmacr.ae/blog/yubikey-openssh/</link>
      <pubDate>Wed, 25 Dec 2013 00:00:00 +0000</pubDate>
      
      <guid>https://cmacr.ae/blog/yubikey-openssh/</guid>
      <description>In this post, I&amp;#39;ll be detailing the steps you can take to harden your remote SSH access, and achieve a two factor authentication setup with a YubiKey and OpenBSD&amp;#39;s SSH server. The authentication principle After carrying out the steps detailed here, you&amp;#39;ll have an SSH server with which you can only establish a connection once the following authentication requirements have been met:
Key pair passes with the presence of a permitted private key Passphrase for the key pair is correct Unique OTP provided by the YubiKey is correct This isn&amp;#39;t quite multi factor authentication (by definition), but it&amp;#39;s damn good!</description>
    </item>
    
    <item>
      <title>Dropping status bars for tmux</title>
      <link>https://cmacr.ae/blog/dropping-status-bars-for-tmux/</link>
      <pubDate>Thu, 06 Dec 2012 00:00:00 +0000</pubDate>
      
      <guid>https://cmacr.ae/blog/dropping-status-bars-for-tmux/</guid>
      <description>As I&amp;#39;m sure some of my readers know, I run Linux on an 11&amp;#34; MacBook Air as my &amp;#39;daily driver&amp;#39; machine. I love smaller laptops, especially one as tiny as the Air. But of course, when you&amp;#39;re using a machine with a small display, screen real estate is a primary concern for some, it&amp;#39;s always nice to squeeze as many pixels as you can out of your desktop, y&amp;#39;know, use the space for useful stuff, the stuff you actually want to see!</description>
    </item>
    
  </channel>
</rss>
