<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Blog on Aaron&#39;s Blog</title>
    <link>https://aarongorka.com/blog/</link>
    <description>Recent content in Blog on Aaron&#39;s Blog</description>
    <generator>Hugo</generator>
    <language>en-AU</language>
    <lastBuildDate>Fri, 24 Apr 2026 22:47:00 +1000</lastBuildDate>
    <atom:link href="https://aarongorka.com/blog/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>VS Code Language Servers in Neovim</title>
      <link>https://aarongorka.com/blog/vs-code-language-servers-in-neovim/</link>
      <pubDate>Fri, 24 Apr 2026 22:47:00 +1000</pubDate>
      <guid>https://aarongorka.com/blog/vs-code-language-servers-in-neovim/</guid>
      <description>&lt;p&gt;I&#39;ve been wanting to do my &lt;a href=&#34;https://esphome.io&#34;&gt;ESPHome&lt;/a&gt; development in Neovim, but the autocompletion and diagnostic capabilities in the dashboard make it hard to leave it. I noticed that it was powered by a &lt;a href=&#34;https://github.com/esphome/esphome-vscode&#34;&gt;VS Code extension&lt;/a&gt;. Can I get this running in Neovim?&lt;/p&gt;</description>
    </item>
    <item>
      <title>Fixing my Dyson TP07</title>
      <link>https://aarongorka.com/blog/fixing-my-dyson-tp07/</link>
      <pubDate>Tue, 24 Mar 2026 11:22:00 +1100</pubDate>
      <guid>https://aarongorka.com/blog/fixing-my-dyson-tp07/</guid>
      <description>&lt;p&gt;Recently fixed an issue with my &amp;quot;Dyson Purifier CoolTM Fan&amp;quot; (TP07) and wanted to share for anyone else that was having the same issue.&lt;/p&gt;&#xA;&lt;p&gt;TL;DR: the cable to the screen was invisibly broken, and this causes the entire fan to not boot.&lt;/p&gt;</description>
    </item>
    <item>
      <title>ESP32-based Smart Switch for PC without WOL</title>
      <link>https://aarongorka.com/blog/esp32-based-smart-switch-for-pc-without-wol/</link>
      <pubDate>Wed, 04 Mar 2026 13:20:26 +1100</pubDate>
      <guid>https://aarongorka.com/blog/esp32-based-smart-switch-for-pc-without-wol/</guid>
      <description>&lt;p&gt;Making a smart power switch for my PC that doesn&#39;t support Wake-on-LAN.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How Not to Do Healthchecks</title>
      <link>https://aarongorka.com/blog/how-not-to-do-healthchecks/</link>
      <pubDate>Wed, 04 Mar 2026 13:15:35 +1100</pubDate>
      <guid>https://aarongorka.com/blog/how-not-to-do-healthchecks/</guid>
      <description>&lt;p&gt;Just because I see it all too often, so here&#39;s some examples.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Fixing GoPro videos with ADB, Termux and FFMPEG</title>
      <link>https://aarongorka.com/blog/fixing-gopro-videos-with-adb-termux-and-ffmpeg/</link>
      <pubDate>Tue, 19 Sep 2023 13:30:28 +1000</pubDate>
      <guid>https://aarongorka.com/blog/fixing-gopro-videos-with-adb-termux-and-ffmpeg/</guid>
      <description>&lt;p&gt;A summary of my adventures in the GoPro Quik app, mp4 metadata, root on Android, ADB, static linking and &lt;code&gt;ffmpeg&lt;/code&gt; in Termux.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Fixing Security for Terraform Plan</title>
      <link>https://aarongorka.com/blog/fixing-security-for-terraform-plan/</link>
      <pubDate>Thu, 03 Aug 2023 16:18:23 +1000</pubDate>
      <guid>https://aarongorka.com/blog/fixing-security-for-terraform-plan/</guid>
      <description>&lt;p&gt;So you want to lock down your Terraform state?&lt;/p&gt;</description>
    </item>
    <item>
      <title>`npm update`, but actually useful</title>
      <link>https://aarongorka.com/blog/npm-update-but-actually-useful/</link>
      <pubDate>Thu, 27 Apr 2023 12:01:47 +1000</pubDate>
      <guid>https://aarongorka.com/blog/npm-update-but-actually-useful/</guid>
      <description>&lt;p&gt;Intuitively, to update a package using &lt;a href=&#34;https://www.npmjs.com/&#34;&gt;npm&lt;/a&gt;, you might assume you need to run something like:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;npm update&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;This command does &lt;a href=&#34;https://stackoverflow.com/questions/39758042/npm-update-does-not-do-anything&#34;&gt;nothing&lt;/a&gt;. The correct command is:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;npm install &amp;lt;package name&amp;gt;@latest&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Why We Chose Fluentd Over Fluent Bit</title>
      <link>https://aarongorka.com/blog/why-we-chose-fluentd-over-fluent-bit/</link>
      <pubDate>Tue, 12 Oct 2021 09:40:25 +1100</pubDate>
      <guid>https://aarongorka.com/blog/why-we-chose-fluentd-over-fluent-bit/</guid>
      <description>&lt;p&gt;Fluent Bit is a log shipping agent, designed to be lightweight and run in distributed environments. So why did we pick Fluentd, which is written in Ruby and predates Fluent Bit?&lt;/p&gt;</description>
    </item>
    <item>
      <title>SRAM eTAP AXS Front Derailleur Adjustment</title>
      <link>https://aarongorka.com/blog/sram-etap-axs-front-derailleur-adjustment/</link>
      <pubDate>Sun, 10 Oct 2021 12:28:13 +1100</pubDate>
      <guid>https://aarongorka.com/blog/sram-etap-axs-front-derailleur-adjustment/</guid>
      <description>&lt;p&gt;SRAM don&#39;t make it particularly easy to find a quick reference on eTAP AXS front derailleur adjustment without having to sit through a Youtube video.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.urbandictionary.com/define.php?term=tl%3Bdw&#34;&gt;TL;DW&lt;/a&gt;: turn the top screw on the front derailleur clockwise to stop your chain from falling off when shifting up.&lt;/p&gt;</description>
    </item>
    <item>
      <title>VPC Endpoints Without the Magic</title>
      <link>https://aarongorka.com/blog/vpc-endpoints-without-the-magic/</link>
      <pubDate>Wed, 19 May 2021 11:31:15 +1000</pubDate>
      <guid>https://aarongorka.com/blog/vpc-endpoints-without-the-magic/</guid>
      <description>&lt;p&gt;A short summary of the two types of VPC Endpoints and how they work.&lt;/p&gt;</description>
    </item>
    <item>
      <title>VPN to any EC2 Instance using SSH</title>
      <link>https://aarongorka.com/blog/vpn-to-any-ec2-instance-using-ssh/</link>
      <pubDate>Mon, 19 Apr 2021 10:25:25 +1000</pubDate>
      <guid>https://aarongorka.com/blog/vpn-to-any-ec2-instance-using-ssh/</guid>
      <description>&lt;p&gt;A horrible hack that allows you to create a VPN tunnel from your workstation to any of your EC2 instances -- &lt;strong&gt;even one you don&#39;t have direct network access to&lt;/strong&gt;, such as an instance in a private subnet.&lt;/p&gt;</description>
    </item>
    <item>
      <title>A CMS Project</title>
      <link>https://aarongorka.com/blog/a-cms-project/</link>
      <pubDate>Wed, 21 Oct 2020 11:43:57 +1100</pubDate>
      <guid>https://aarongorka.com/blog/a-cms-project/</guid>
      <description>&lt;p&gt;This blog entry is the story of my experience in implemeting a CMS as a consultant. It details some mundane problems I faced in day-to-day work and the solutions that my team and I implemented, probably in more detail than necessary. I make no attempt to avoid the boring and tedious parts of the project. Maybe you can learn something from it, or maybe you can relate to it.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Why You Need PSPs in EKS</title>
      <link>https://aarongorka.com/blog/why-you-need-psps-in-eks/</link>
      <pubDate>Fri, 04 Oct 2019 11:47:24 +1000</pubDate>
      <guid>https://aarongorka.com/blog/why-you-need-psps-in-eks/</guid>
      <description>&lt;p&gt;Pod Security Policies (PSPs) are an important component of security in Kubernetes. Lets explore what happens without them.&lt;/p&gt;</description>
    </item>
    <item>
      <title>GitLab Monorepo Pipelines</title>
      <link>https://aarongorka.com/blog/gitlab-monorepo-pipelines/</link>
      <pubDate>Wed, 18 Sep 2019 10:45:00 +1000</pubDate>
      <guid>https://aarongorka.com/blog/gitlab-monorepo-pipelines/</guid>
      <description>&lt;p&gt;Exploring &lt;a href=&#34;https://about.gitlab.com/2019/08/22/gitlab-12-2-released/#directed-acyclic-graphs-dag-for-gitlab-pipelines&#34;&gt;GitLab&#39;s new Directed Acyclic Graph feature&lt;/a&gt; to build monorepo CI/CD pipelines.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Git Revert Last n Commits</title>
      <link>https://aarongorka.com/blog/git-revert-last-n-commits/</link>
      <pubDate>Thu, 11 Jul 2019 10:24:07 +1000</pubDate>
      <guid>https://aarongorka.com/blog/git-revert-last-n-commits/</guid>
      <description>&lt;p&gt;To revert the last &lt;em&gt;n&lt;/em&gt; commits using git:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;git revert HEAD~3..HEAD&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Smoke Testing Infrastructure</title>
      <link>https://aarongorka.com/blog/smoke-testing-infrastructure/</link>
      <pubDate>Fri, 24 May 2019 11:23:20 +1000</pubDate>
      <guid>https://aarongorka.com/blog/smoke-testing-infrastructure/</guid>
      <description>&lt;p&gt;Some real-world examples on how to smoke test infrastructure.&lt;/p&gt;</description>
    </item>
    <item>
      <title>AWS Summit 2019</title>
      <link>https://aarongorka.com/blog/aws-summit-2019/</link>
      <pubDate>Sat, 04 May 2019 12:43:44 +1000</pubDate>
      <guid>https://aarongorka.com/blog/aws-summit-2019/</guid>
      <description>&lt;p&gt;A few thoughts and photos on the Sydney AWS Summit 2019.&lt;/p&gt;</description>
    </item>
    <item>
      <title>gVisor on ECS</title>
      <link>https://aarongorka.com/blog/gvisor-on-ecs/</link>
      <pubDate>Tue, 19 Mar 2019 12:21:36 +1100</pubDate>
      <guid>https://aarongorka.com/blog/gvisor-on-ecs/</guid>
      <description>&lt;p&gt;Google&#39;s &lt;a href=&#34;https://github.com/google/gvisor&#34;&gt;gVisor&lt;/a&gt; exists to provide a &lt;strong&gt;true sandbox&lt;/strong&gt; for your Docker containers. It replaces &lt;code&gt;runc&lt;/code&gt;, the default Docker runtime which recently had a serious vulnerability &lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt;&#xA;&lt;p&gt;In theory gVisor is a &lt;strong&gt;drop-in&lt;/strong&gt; replacement for &lt;code&gt;runc&lt;/code&gt;, but does it actually work with &lt;a href=&#34;https://aws.amazon.com/ecs/&#34;&gt;Amazon ECS&lt;/a&gt;?&lt;/p&gt;</description>
    </item>
    <item>
      <title>Dark mode on all the things</title>
      <link>https://aarongorka.com/blog/dark-mode-on-all-the-things/</link>
      <pubDate>Mon, 24 Dec 2018 13:21:37 +1100</pubDate>
      <guid>https://aarongorka.com/blog/dark-mode-on-all-the-things/</guid>
      <description>&lt;h1 id=&#34;arc-dark&#34;&gt;Arc Dark&lt;/h1&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://camo.githubusercontent.com/e343c19dc3e67b13908733bf26ecfdfc1405749a/687474703a2f2f692e696d6775722e636f6d2f3541476c436e412e706e67&#34; alt=&#34;Arc Dark preview&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;sudo dnf install arc-theme gnome-tweaks&lt;/code&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;nvim&#34;&gt;nvim&lt;/h2&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://aarongorka.com/going_dark_nvim.png&#34; alt=&#34;catppuccin/nvim preview&#34;&gt;&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-lua&#34; data-lang=&#34;lua&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;catppuccin/nvim&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#75715e&#34;&gt;-- https://github.com/catppuccin/nvim&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    name &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;catppuccin&amp;#34;&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    lazy &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;false&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    priority &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;1000&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    opts &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      dim_inactive &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        enabled &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;true&lt;/span&gt;,    &lt;span style=&#34;color:#75715e&#34;&gt;-- dims the background color of inactive window&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#75715e&#34;&gt;-- shade = &amp;#34;dark&amp;#34;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        percentage &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0.99&lt;/span&gt;, &lt;span style=&#34;color:#75715e&#34;&gt;-- 50, -- 0.15, -- percentage of the shade to apply to the inactive window&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      },&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      integrations &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        notify &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;true&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        notifier &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;true&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        lsp_trouble &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;true&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        barbar &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;true&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        neotree &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;true&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        noice &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;true&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        dropbar &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; { enabled &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;true&lt;/span&gt; },&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        mason &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;true&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        nvim_surround &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;true&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        overseer &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;true&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        which_key &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;true&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        snacks &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          enabled &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;true&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          &lt;span style=&#34;color:#75715e&#34;&gt;-- indent_scope_color = &amp;#34;&amp;#34;, -- catppuccin color (eg. `lavender`) Default: text&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        },&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        native_lsp &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          enabled &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;true&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          virtual_text &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            errors &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; { &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;italic&amp;#34;&lt;/span&gt; },&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            hints &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; { &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;italic&amp;#34;&lt;/span&gt; },&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            warnings &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; { &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;italic&amp;#34;&lt;/span&gt; },&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            information &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; { &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;italic&amp;#34;&lt;/span&gt; },&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            ok &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; { &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;italic&amp;#34;&lt;/span&gt; },&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          },&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          underlines &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            errors &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; { &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;underline&amp;#34;&lt;/span&gt; },&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            hints &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; { &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;underline&amp;#34;&lt;/span&gt; },&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            warnings &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; { &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;underline&amp;#34;&lt;/span&gt; },&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            information &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; { &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;underline&amp;#34;&lt;/span&gt; },&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            ok &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; { &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;underline&amp;#34;&lt;/span&gt; },&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          },&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          inlay_hints &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            background &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;true&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          },&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        },&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    },&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    config &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;function&lt;/span&gt;(_, opts)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      require(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;catppuccin&amp;#34;&lt;/span&gt;).setup(opts)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      vim.cmd.colorscheme(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;catppuccin-macchiato&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;end&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  },&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h1 id=&#34;everything-else---dark-reader&#34;&gt;Everything Else - Dark Reader&lt;/h1&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://darkreader.org/&#34;&gt;https://darkreader.org/&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Antipatterns</title>
      <link>https://aarongorka.com/blog/antipatterns/</link>
      <pubDate>Fri, 21 Dec 2018 21:33:00 +1100</pubDate>
      <guid>https://aarongorka.com/blog/antipatterns/</guid>
      <description>&lt;p&gt;Just a list of antipatterns I&#39;m not going to elaborate on in no particular order&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Boiling the ocean&lt;/li&gt;&#xA;&lt;li&gt;Big bang deliveries&lt;/li&gt;&#xA;&lt;li&gt;Developer portals&lt;/li&gt;&#xA;&lt;li&gt;Abstracting the cloud from your engineers&lt;/li&gt;&#xA;&lt;li&gt;Multi-cloud&lt;/li&gt;&#xA;&lt;li&gt;Implementing tooling beyond your maturity&lt;/li&gt;&#xA;&lt;li&gt;Ignoring boring, simple fixes in favour of shiny tech&lt;/li&gt;&#xA;&lt;li&gt;Run the company on your laptop&lt;/li&gt;&#xA;&lt;li&gt;Concurrent microservice development without contract testing&lt;/li&gt;&#xA;&lt;li&gt;Access control that isn&#39;t role-based&lt;/li&gt;&#xA;&lt;li&gt;Depriving staff of agency&lt;/li&gt;&#xA;&lt;li&gt;Security teams&lt;/li&gt;&#xA;&lt;li&gt;Conflating one-way doors with two-way doors (decisions)&lt;/li&gt;&#xA;&lt;li&gt;Using features simply because they exist&lt;/li&gt;&#xA;&lt;li&gt;Architects&lt;/li&gt;&#xA;&lt;li&gt;Gitops&lt;/li&gt;&#xA;&lt;li&gt;Git branch strategies that aren&#39;t trunk-based&lt;/li&gt;&#xA;&lt;li&gt;Write code that is easy to delete, not easy to extend&lt;/li&gt;&#xA;&lt;li&gt;Liveness checks that rely on downstream systems&lt;/li&gt;&#xA;&lt;li&gt;Thinking load balancers and DNS aren&#39;t good enough&lt;/li&gt;&#xA;&lt;li&gt;Telling yourself you&#39;ll make that pipeline stage automatic later on&lt;/li&gt;&#xA;&lt;li&gt;Monorepos&lt;/li&gt;&#xA;&lt;li&gt;Troubleshooting through the pipeline&lt;/li&gt;&#xA;&lt;li&gt;A lack of care for how clear naming of things is necessary for basic communication&lt;/li&gt;&#xA;&lt;li&gt;Not forcing people to use open communication channels&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>Google SRE Book Takeaways</title>
      <link>https://aarongorka.com/blog/google-sre-book-takeaways/</link>
      <pubDate>Fri, 21 Dec 2018 19:18:05 +1100</pubDate>
      <guid>https://aarongorka.com/blog/google-sre-book-takeaways/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;SRE is what happens when you ask a software engineer to design an operations team.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;I just finished reading through the (first) &lt;a href=&#34;https://landing.google.com/sre/&#34;&gt;Google SRE book&lt;/a&gt;. While a lot of it is what we take for granted today, there were a few worthwhile takeaways for me.&lt;/p&gt;</description>
    </item>
    <item>
      <title>ECS Autoscaling Tips</title>
      <link>https://aarongorka.com/blog/ecs-autoscaling-tips/</link>
      <pubDate>Fri, 20 Jul 2018 10:26:49 +1000</pubDate>
      <guid>https://aarongorka.com/blog/ecs-autoscaling-tips/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://aws.amazon.com/ecs/&#34;&gt;Amazon Elastic Container Service (Amazon ECS)&lt;/a&gt; is a highly scalable, high-performance container orchestration service that supports Docker containers and allows you to easily run and scale containerized applications on AWS.&lt;/p&gt;&#xA;&lt;p&gt;Autoscaling your container orchestration system introduces some complexity. Here are some tips for creating robust autoscaling for your ECS Cluster.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Mass CloudFormation Template Validation</title>
      <link>https://aarongorka.com/blog/mass-cloudformation-template-validation/</link>
      <pubDate>Wed, 18 Jul 2018 23:39:31 +1000</pubDate>
      <guid>https://aarongorka.com/blog/mass-cloudformation-template-validation/</guid>
      <description>&lt;p&gt;Ever needed to do CI on a centralised CloudFormation repository, and struggled to get template validation done &lt;strong&gt;quickly&lt;/strong&gt;? Here&#39;s how you can do it.&lt;/p&gt;</description>
    </item>
    <item>
      <title>AWS ALB Limitations</title>
      <link>https://aarongorka.com/blog/aws-alb-limitations/</link>
      <pubDate>Sat, 14 Jul 2018 11:20:07 +1000</pubDate>
      <guid>https://aarongorka.com/blog/aws-alb-limitations/</guid>
      <description>&lt;p&gt;Some gripes on AWS Application Load balancers.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Serverless Plugins</title>
      <link>https://aarongorka.com/blog/serverless-plugins/</link>
      <pubDate>Thu, 12 Jul 2018 23:37:04 +1000</pubDate>
      <guid>https://aarongorka.com/blog/serverless-plugins/</guid>
      <description>&lt;p&gt;Here are some cool plugins for &lt;a href=&#34;https://serverless.com&#34;&gt;Serverless&lt;/a&gt;:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/amplify-education/serverless-log-forwarding&#34;&gt;serverless-log-forwarding&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;pre&gt;&lt;code&gt;&amp;gt; I want a log solution that is both durable and has powerful search capabilities&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;CloudWatch Logs is reliable, but that&#39;s about it. You need something that you can search and analyse logs with, and this plugin is the bridge between Lambda and your log aggregation system.&lt;/p&gt;&#xA;&lt;ol start=&#34;2&#34;&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/ACloudGuru/serverless-plugin-aws-alerts&#34;&gt;serverless-plugin-aws-alerts&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;Building a full suite of alerts for a Serverless application is not simple, but this gives you a big head start. It alerts on the 4 main metrics (one being errors) that are already provided by CloudWatch Metrics. Just install and configure a destination SNS topic that sends to your alert aggregation system.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Portable Virtualenv</title>
      <link>https://aarongorka.com/blog/portable-virtualenv/</link>
      <pubDate>Thu, 12 Jul 2018 23:01:43 +1000</pubDate>
      <guid>https://aarongorka.com/blog/portable-virtualenv/</guid>
      <description>&lt;p&gt;Ever wanted to move a Python virtualenv around but found it didn&#39;t work? Here&#39;s how you can create a portable virtualenv for Python 3.6.&lt;/p&gt;</description>
    </item>
    <item>
      <title>My First Post</title>
      <link>https://aarongorka.com/blog/my-first-post/</link>
      <pubDate>Thu, 12 Jul 2018 22:53:59 +1000</pubDate>
      <guid>https://aarongorka.com/blog/my-first-post/</guid>
      <description>&lt;p&gt;Hello world!&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
