<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>utahcon.dev</title>
    <link>https://utahcon.dev/</link>
    <description>Recent content on utahcon.dev</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <managingEditor>utahcon@utahcon.com (Adam Barrett)</managingEditor>
    <webMaster>utahcon@utahcon.com (Adam Barrett)</webMaster>
    <lastBuildDate>Tue, 01 Sep 2026 12:00:00 -0600</lastBuildDate>
    <atom:link href="https://utahcon.dev/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Adding a Month Segment to claude-powerline</title>
      <link>https://utahcon.dev/post/2026-09-01_claude-powerline-month-segment/</link>
      <pubDate>Tue, 01 Sep 2026 12:00:00 -0600</pubDate><author>utahcon@utahcon.com (Adam Barrett)</author>
      <guid>https://utahcon.dev/post/2026-09-01_claude-powerline-month-segment/</guid>
      <description>&lt;h1 id=&#34;adding-a-month-segment-to-claude-powerline&#34;&gt;Adding a Month Segment to claude-powerline&lt;/h1&gt;&#xA;&lt;p&gt;I use &lt;a href=&#34;https://github.com/Owloops/claude-powerline&#34;&gt;claude-powerline&lt;/a&gt; for my Claude Code statusline. It&amp;rsquo;s got a &lt;code&gt;today&lt;/code&gt; segment that shows spend since midnight, which is great until you actually want to know where you stand for the month. &amp;ldquo;Today&amp;rdquo; resets every night and tells you nothing about the bigger picture. So I sent a PR: &lt;a href=&#34;https://github.com/Owloops/claude-powerline/pull/112&#34;&gt;Owloops/claude-powerline#112&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h3 id=&#34;what-it-adds&#34;&gt;What it adds&lt;/h3&gt;&#xA;&lt;p&gt;A new &lt;code&gt;month&lt;/code&gt; segment, opt-in, that tracks total cost/tokens for the current calendar month. It reuses the same local-transcript aggregation and caching the &lt;code&gt;today&lt;/code&gt; segment already had, so no network calls, nothing new to trust.&lt;/p&gt;</description>
    </item>
    <item>
      <title>New Release: github-pokemon v1.4.1</title>
      <link>https://utahcon.dev/post/2026-03-09_github-pokemon-release/</link>
      <pubDate>Mon, 09 Mar 2026 08:00:00 -0600</pubDate><author>utahcon@utahcon.com (Adam Barrett)</author>
      <guid>https://utahcon.dev/post/2026-03-09_github-pokemon-release/</guid>
      <description>&lt;h1 id=&#34;new-release-github-pokemon-v141&#34;&gt;New Release: github-pokemon v1.4.1&lt;/h1&gt;&#xA;&lt;p&gt;I&amp;rsquo;m excited to announce the latest release of &lt;a href=&#34;https://github.com/utahcon/github-pokemon&#34;&gt;github-pokemon&lt;/a&gt;, version v1.4.1!&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;github-pokemon&lt;/code&gt; is a Go-based command-line tool I built to efficiently manage multiple GitHub repositories within an organization. &amp;ldquo;Gotta catch &amp;rsquo;em all!&amp;rdquo; Its primary purpose is to automate the process of cloning all non-archived repositories and keeping them updated by fetching remote tracking branches.&lt;/p&gt;&#xA;&lt;h3 id=&#34;key-features&#34;&gt;Key Features&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Bulk Operations:&lt;/strong&gt; Quickly clones or updates all repositories in a specified GitHub organization.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Parallel Processing:&lt;/strong&gt; Uses parallel workers (defaulting to 5) to speed up operations.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Safe Updates:&lt;/strong&gt; Only updates remote tracking branches and never modifies local working directories or branches.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Authentication:&lt;/strong&gt; Supports GitHub Personal Access Tokens (via &lt;code&gt;GITHUB_TOKEN&lt;/code&gt;) for API access and SSH keys for Git operations.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;You can grab the latest pre-built binaries for Linux, macOS, and Windows over on the &lt;a href=&#34;https://github.com/utahcon/github-pokemon/releases/tag/v1.4.1&#34;&gt;GitHub Releases&lt;/a&gt; page.&lt;/p&gt;</description>
    </item>
    <item>
      <title>action-hugo</title>
      <link>https://utahcon.dev/post/2024-03-05_action-hugo/</link>
      <pubDate>Tue, 05 Mar 2024 16:11:39 -0700</pubDate><author>utahcon@utahcon.com (Adam Barrett)</author>
      <guid>https://utahcon.dev/post/2024-03-05_action-hugo/</guid>
      <description>&lt;h1 id=&#34;action-hugo-v01237&#34;&gt;action-hugo v0.123.7&lt;/h1&gt;&#xA;&lt;p&gt;Today I wrote the first post to my blog in a LONG time. I did of course update the entire pipeline to make it happen. Looks like the last time my build script for the &lt;code&gt;action-hugo&lt;/code&gt; repo ran was three years ago&amp;hellip; oh my. So some updates were of course needed. Now they are done.&lt;/p&gt;&#xA;&lt;p&gt;If you are interested in posting your blog easily with Hugo using GitHub Actions, well now you have another choice. Enjoy!&lt;/p&gt;</description>
    </item>
    <item>
      <title>Starting Blogumentation</title>
      <link>https://utahcon.dev/post/2024-03-05_writing_practice/</link>
      <pubDate>Tue, 05 Mar 2024 12:00:00 -0600</pubDate><author>utahcon@utahcon.com (Adam Barrett)</author>
      <guid>https://utahcon.dev/post/2024-03-05_writing_practice/</guid>
      <description>&lt;h1 id=&#34;starting-blogumentation&#34;&gt;Starting Blogumentation&lt;/h1&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s be real. I am not a great example of writing regularly. Or even occasionally. I am out right terrible at it. However,&#xA;I was recently listening to an &lt;a href=&#34;https://changelog.com/friends/31&#34;&gt;episode of Changelog &amp;amp; Friends podcast&lt;/a&gt; where Jamie Tanna (who has a &lt;a href=&#34;https://www.jvt.me/&#34;&gt;website&lt;/a&gt;) was talking about &lt;a href=&#34;https://www.jvt.me/posts/2017/06/25/blogumentation/&#34;&gt;Blogumentation&lt;/a&gt; and this rang true with me. Among many other things in the podcast episode. Go listen, it is great.&lt;/p&gt;&#xA;&lt;p&gt;So what? I am going to take a stab at using this blog as my own blogumentation again. Tracking the things I do, the things I learn, and making a small public space to share those things as needed.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Deadpool: Stackoverflow Developer Stories</title>
      <link>https://utahcon.dev/post/2022-03-28_stackoverflow_developer_story/</link>
      <pubDate>Mon, 28 Mar 2022 11:18:00 -0600</pubDate><author>utahcon@utahcon.com (Adam Barrett)</author>
      <guid>https://utahcon.dev/post/2022-03-28_stackoverflow_developer_story/</guid>
      <description>&lt;p&gt;Back in 2016 Stack Overflow tested a few things that were super awesome, at first glance, but like lots of technology&#xA;quickly faded into obscurity.&lt;/p&gt;&#xA;&lt;p&gt;One of those tests, was &lt;a href=&#34;https://meta.stackoverflow.com/questions/313960/introducing-the-developer-story&#34;&gt;Developer Stories&lt;/a&gt;.&#xA;Developer Stories was to be a &amp;ldquo;way we envision you showcasing every aspect of your developer identity.&amp;rdquo; as Stack Overflow&#xA;put it in their initial announcement. I ran out and filled out my developer story, which is now being discontinued. Probably,&#xA;for obvious reasons too. I created mine in 2016, and here it is 6 years later, and I have been with 3 different companies,&#xA;done hundreds of interesting things, but the content of my story is stale (much like this blog). So it is being retired.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Simple Invoice</title>
      <link>https://utahcon.dev/post/2021-05-03_simple_invoice_app/</link>
      <pubDate>Mon, 03 May 2021 09:31:01 -0600</pubDate><author>utahcon@utahcon.com (Adam Barrett)</author>
      <guid>https://utahcon.dev/post/2021-05-03_simple_invoice_app/</guid>
      <description>&lt;p&gt;My son, Isaac, has started a lawn service. To help him track who has paid, and who is outstanding I over-engineered a&#xA;spreadsheet for him. Behold!&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Customers&lt;/strong&gt;&#xA;The first sheet is a simple spreadsheet of customer data:&lt;/p&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;Customer&lt;/th&gt;&#xA;          &lt;th&gt;Address&lt;/th&gt;&#xA;          &lt;th&gt;Phone&lt;/th&gt;&#xA;          &lt;th&gt;Size&lt;/th&gt;&#xA;          &lt;th&gt;Price&lt;/th&gt;&#xA;          &lt;th&gt;Day&lt;/th&gt;&#xA;          &lt;th&gt;Notes&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;John Doe&lt;/td&gt;&#xA;          &lt;td&gt;123 Any Street&lt;/td&gt;&#xA;          &lt;td&gt;801-555-0011&lt;/td&gt;&#xA;          &lt;td&gt;Small, Medium, Large&lt;/td&gt;&#xA;          &lt;td&gt;$7&lt;/td&gt;&#xA;          &lt;td&gt;Thursday&lt;/td&gt;&#xA;          &lt;td&gt;Notes about last mowing&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;p&gt;&lt;strong&gt;Inventory&lt;/strong&gt;&#xA;For lack of better name this is a sheet for tracking which jobs have been completed.&lt;/p&gt;</description>
    </item>
    <item>
      <title>OpenSSL Certificate Authority</title>
      <link>https://utahcon.dev/post/2021-03-29_openssl_ca/</link>
      <pubDate>Mon, 29 Mar 2021 06:28:46 -0600</pubDate><author>utahcon@utahcon.com (Adam Barrett)</author>
      <guid>https://utahcon.dev/post/2021-03-29_openssl_ca/</guid>
      <description>&lt;p&gt;Over the years I have often come across a moment or two when I needed to have self-signed certificate authority. Well, a few years ago I stumbled across this lovely tutorial and explanation by Jamie Nguyen. Please, use this, and all credit to Jamie.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://jamielinux.com/docs/openssl-certificate-authority/&#34;&gt;https://jamielinux.com/docs/openssl-certificate-authority/&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>TIL: GitHub Action setup-go</title>
      <link>https://utahcon.dev/post/2021-02-24_github-action-setup-go/</link>
      <pubDate>Wed, 24 Feb 2021 09:49:14 -0700</pubDate><author>utahcon@utahcon.com (Adam Barrett)</author>
      <guid>https://utahcon.dev/post/2021-02-24_github-action-setup-go/</guid>
      <description>&lt;p&gt;If you are developing and running workflows on GitHub using Golang, and the recent release of Golang 1.16 had features&#xA;you want or need, then you might want to know about this GitHub Action &lt;code&gt;setup-go&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Essentially the way it works is that &lt;code&gt;ubuntu-latest&lt;/code&gt; on GitHub has the last three major versions of Golang in the cache,&#xA;but you have to properly switch between them. &lt;code&gt;setup-go&lt;/code&gt; does that for you, and if you are using a version of Golang&#xA;that doesn&amp;rsquo;t come pre-installed in the cache, it will install it for you. This is quite handy, and super easy to use:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Comments with Mastodon</title>
      <link>https://utahcon.dev/post/2021-02-01_comments-with-mastodon/</link>
      <pubDate>Mon, 01 Feb 2021 12:43:45 -0700</pubDate><author>utahcon@utahcon.com (Adam Barrett)</author>
      <guid>https://utahcon.dev/post/2021-02-01_comments-with-mastodon/</guid>
      <description>&lt;p&gt;If you aren&amp;rsquo;t aware, this blog is created using &lt;a href=&#34;https://gohugo.io/&#34;&gt;Hugo&lt;/a&gt;. This means this blog is essentially just&#xA;static files being served by a static web engine. It makes it light, and simply to host/deploy. One thing it makes it&#xA;hard to do, is host comments, because comments are by nature dynamic (not static).&lt;/p&gt;&#xA;&lt;p&gt;I came across the idea of using &lt;a href=&#34;https://joinmastodon.org/&#34;&gt;Mastodon&lt;/a&gt; a platform that is community-owned and ad-free.&#xA;This allows &amp;ldquo;dynamic&amp;rdquo; comments, without me having to add a comment engine to my blog. Yay! Let&amp;rsquo;s do it!&lt;/p&gt;</description>
    </item>
    <item>
      <title>Home Storage Upgrade Plan</title>
      <link>https://utahcon.dev/post/2021-01-26_upgrade-storage-plan/</link>
      <pubDate>Tue, 26 Jan 2021 13:41:00 -0700</pubDate><author>utahcon@utahcon.com (Adam Barrett)</author>
      <guid>https://utahcon.dev/post/2021-01-26_upgrade-storage-plan/</guid>
      <description>&lt;p&gt;Back in 2019 I built a small storage server for my home needs. Basically I store my music, movies, ebooks, and image&#xA;collections here, enabling the use of DLNA to watch them on my TVs throughout the house.&lt;/p&gt;&#xA;&lt;p&gt;Just the other day, I finally got the notice that I am running low on space. To be clear that threshold is any remaining&#xA;space under 1TB. As of this writing I am down to 1020.7GB of storage space left on this single server. Time to plan for&#xA;expanding my storage!&lt;/p&gt;</description>
    </item>
    <item>
      <title>PoC||GTFO Repo Update</title>
      <link>https://utahcon.dev/post/2021-01-15_pocorgtfo_updates/</link>
      <pubDate>Fri, 15 Jan 2021 11:25:20 -0700</pubDate><author>utahcon@utahcon.com (Adam Barrett)</author>
      <guid>https://utahcon.dev/post/2021-01-15_pocorgtfo_updates/</guid>
      <description>&lt;h1 id=&#34;pocgtfo&#34;&gt;PoC||GTFO&lt;/h1&gt;&#xA;&lt;p&gt;If you are unfamiliar with the&#xA;&lt;a href=&#34;https://www.alchemistowl.org/pocorgtfo/&#34;&gt;&lt;em&gt;International Journal of Proof-of-Concept or Get The F*ck Out&lt;/em&gt;&lt;/a&gt; (my edit)&#xA;then I encourage you, dear reader, to become familiar with it. It is a great read by hackers for hackers.&lt;/p&gt;&#xA;&lt;h2 id=&#34;long-story-short&#34;&gt;Long story short&lt;/h2&gt;&#xA;&lt;p&gt;One thing geeks like myself have taken to doing, is preserving the history of the internet by replicating information to&#xA;sites and servers with better control. That is why I have created this repo, which automatically updates daily (thanks&#xA;Github Workflows!)&lt;/p&gt;</description>
    </item>
    <item>
      <title>Github action-hugo Updated</title>
      <link>https://utahcon.dev/post/2021-01-14_action-hugo-updated/</link>
      <pubDate>Thu, 14 Jan 2021 15:10:07 -0700</pubDate><author>utahcon@utahcon.com (Adam Barrett)</author>
      <guid>https://utahcon.dev/post/2021-01-14_action-hugo-updated/</guid>
      <description>&lt;p&gt;Happy to announce that my Github Action &lt;code&gt;utahcon/action-hugo&lt;/code&gt; has been updated to now support Hugo Modules. This change&#xA;basically means there is now an on-board implementation of Golang, and git. Nothing too scary. Didn&amp;rsquo;t increase build&#xA;times by too much, nor does it impact the way you use the action, except that it now support Modules. Enjoy!&lt;/p&gt;&#xA;&lt;p&gt;Link: &lt;a href=&#34;https://github.com/utahcon/action-hugo/tree/release-v0.80.0&#34;&gt;utahcon/action-hugo:v0.80.0&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Github action-scp updated for 2021</title>
      <link>https://utahcon.dev/post/2021-01-13_action_scp_updated/</link>
      <pubDate>Wed, 13 Jan 2021 16:29:58 -0700</pubDate><author>utahcon@utahcon.com (Adam Barrett)</author>
      <guid>https://utahcon.dev/post/2021-01-13_action_scp_updated/</guid>
      <description>&lt;h1 id=&#34;2021-had-different-ideas&#34;&gt;2021 Had Different Ideas&lt;/h1&gt;&#xA;&lt;p&gt;Welcome to 2021, I decided to post about my plans to blog a bit more in 2021, but the internet gods had conspired&#xA;against me and made my Github Action &lt;code&gt;action-scp&lt;/code&gt; fail. So I started into fixing it. If you see this blog post, it is&#xA;indeed fixed.&lt;/p&gt;&#xA;&lt;h2 id=&#34;what-happened&#34;&gt;What happened?&lt;/h2&gt;&#xA;&lt;p&gt;No clue, but something on the Github side of things changed in a way that I was starting to fail host key verification,&#xA;even though it specifically uses &lt;code&gt;StrictHostKeyChecking=no&lt;/code&gt;. What to do? Play around.&lt;/p&gt;</description>
    </item>
    <item>
      <title>New Year New Goals</title>
      <link>https://utahcon.dev/post/2021-01-11_new_year_new_goals/</link>
      <pubDate>Mon, 11 Jan 2021 08:50:01 -0700</pubDate><author>utahcon@utahcon.com (Adam Barrett)</author>
      <guid>https://utahcon.dev/post/2021-01-11_new_year_new_goals/</guid>
      <description>&lt;h1 id=&#34;a-new-year&#34;&gt;A New Year&lt;/h1&gt;&#xA;&lt;p&gt;It has been a rough one, not for me personally, I actually can&amp;rsquo;t complain about 2020 too much. Aside from being locked in closer quarters than normal with my kids, the year was overly &lt;em&gt;meh&lt;/em&gt;. I will go count my blessings and keep at it.&lt;/p&gt;&#xA;&lt;h1 id=&#34;new-goals&#34;&gt;New Goals&lt;/h1&gt;&#xA;&lt;p&gt;Aside from the normal weight loss, education, etc. goals, I am also committing, once again to 52 posts on this blog this year. I am not going to make any commitment to the content of these posts, but I will generally try to keep them tied (at least in general) to tech and my thoughts on tech. Hopefully I will get the chance to sprinkle in some cloudy stuff, and some Golang stuff as I go. For now, I will just say, at least 1 post per week (yeah, I realize I already missed a week, I&amp;rsquo;ll make it up).&lt;/p&gt;</description>
    </item>
    <item>
      <title>Microsoft Certified Azure Fundamentals</title>
      <link>https://utahcon.dev/post/2020-10-15_azure_fundamentals/</link>
      <pubDate>Thu, 15 Oct 2020 11:45:50 -0600</pubDate><author>utahcon@utahcon.com (Adam Barrett)</author>
      <guid>https://utahcon.dev/post/2020-10-15_azure_fundamentals/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;../../img/azure-fundamentals-600x600.png&#34; alt=&#34;&#34;&gt;&#xA;I am proud to announce that I have completed my first Microsoft Azure Certification.&lt;/p&gt;&#xA;&lt;p&gt;To see more of my certifications checkout the &lt;a href=&#34;https://utahcon.dev/page/certs&#34;&gt;certifications page&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>2020 09 17_action Hugo Is Live</title>
      <link>https://utahcon.dev/post/2020-09-17_action-hugo-is-live/</link>
      <pubDate>Thu, 17 Sep 2020 11:24:44 -0600</pubDate><author>utahcon@utahcon.com (Adam Barrett)</author>
      <guid>https://utahcon.dev/post/2020-09-17_action-hugo-is-live/</guid>
      <description>&lt;p&gt;Well it is working if you are seeing this. More on that later.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Accessing Multiple CodeCommit Repos</title>
      <link>https://utahcon.dev/post/2020-06-30_multiple-codecommit-repos/</link>
      <pubDate>Tue, 30 Jun 2020 10:16:55 -0600</pubDate><author>utahcon@utahcon.com (Adam Barrett)</author>
      <guid>https://utahcon.dev/post/2020-06-30_multiple-codecommit-repos/</guid>
      <description>&lt;p&gt;AWS provides a handy Git based repository to their customers called CodeCommit. Accessing the repository is easy enough,&#xA;upload your SSH Key to the AWS Console, and then add CodeCommit to your SSH configuration:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# ~/.ssh/config&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Host git-codecommit.*.amazonaws.com&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;User USER1EXAMPLEARN1&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;IdentityFile ~/.ssh/USER1EXAMPLEARN1_rsa&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#xA;&lt;p&gt;This is wonderful until you need to access more than one AWS Account&amp;rsquo;s CodeCommit repo. How do you identify between two&#xA;different AWS Account repos that use the same URL? You update your SSH configuration like this:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Github Actions Worked</title>
      <link>https://utahcon.dev/post/2020-06-26_github_actions/</link>
      <pubDate>Fri, 26 Jun 2020 15:32:18 -0600</pubDate><author>utahcon@utahcon.com (Adam Barrett)</author>
      <guid>https://utahcon.dev/post/2020-06-26_github_actions/</guid>
      <description>&lt;p&gt;This is a temporary post to let me know that my Github Actions are functional. Yay me!&lt;/p&gt;</description>
    </item>
    <item>
      <title>AWS Boto3 Documentation Redirect</title>
      <link>https://utahcon.dev/post/2020-06-17_boto3_redirect/</link>
      <pubDate>Wed, 17 Jun 2020 08:20:18 -0600</pubDate><author>utahcon@utahcon.com (Adam Barrett)</author>
      <guid>https://utahcon.dev/post/2020-06-17_boto3_redirect/</guid>
      <description>&lt;p&gt;Maybe you are lazy like I am, but when I want to read the Boto3 documentation I just open my browser, and in the omnibar&#xA;I type &lt;code&gt;boto3&lt;/code&gt; and slap &lt;code&gt;Enter&lt;/code&gt;; however, this results in my browser auto-filling the URL bar with&#xA;&lt;code&gt;https://boto3.amazonaws.com&lt;/code&gt; and since the AWS guys are too lazy to add a redirect there, I have created a simple User&#xA;Script that does exactly that, it just redirects the browser to the correct link&#xA;&lt;code&gt;https://boto3.amazonaws.com/v1/documentation/api/latest/index.html&lt;/code&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Find all EC2 Instances using in-house AMIs</title>
      <link>https://utahcon.dev/post/2020-06-10_in-house_ami/</link>
      <pubDate>Wed, 10 Jun 2020 16:18:06 -0600</pubDate><author>utahcon@utahcon.com (Adam Barrett)</author>
      <guid>https://utahcon.dev/post/2020-06-10_in-house_ami/</guid>
      <description>&lt;p&gt;Building off my last post &lt;a href=&#34;https://utahcon.dev/post/2020-05-12_parallel_and_aws/&#34;&gt;GNU Parallel and AWS CLI&lt;/a&gt;, today I&#xA;used &lt;code&gt;parallel&lt;/code&gt; with more AWS to get a count of all AMIs being used in my infrastructure using any in-house AMI&#xA;(non-Amazon, non-Marketplace).&lt;/p&gt;&#xA;&lt;h2 id=&#34;the-problem&#34;&gt;The Problem&lt;/h2&gt;&#xA;&lt;p&gt;I need to know how many of my instances are running Chef clients. Conveniently we only run Chef client on instances that&#xA;use images we have created in-house. So I can limit my search. While I could have done this with a well thought out&#xA;one-liner I thought it would be more usable as a bash script.&lt;/p&gt;</description>
    </item>
    <item>
      <title>GNU Parallel and AWS CLI</title>
      <link>https://utahcon.dev/post/2020-05-12_parallel_and_aws/</link>
      <pubDate>Tue, 12 May 2020 10:49:00 -0600</pubDate><author>utahcon@utahcon.com (Adam Barrett)</author>
      <guid>https://utahcon.dev/post/2020-05-12_parallel_and_aws/</guid>
      <description>&lt;p&gt;We all know that the GUI/Console for AWS is sadly slow and cumbersome to use. That&amp;rsquo;s why they created the CLI and SDK&#xA;tools to let impatient people do more work in less time. However, the CLI and SDK are also slow because well, processing&#xA;time takes for ever sometimes. So for the truly impatient isn&amp;rsquo;t it nice that you can use GNU Parallel to complete more&#xA;work in less time? Let me show you an example.&lt;/p&gt;</description>
    </item>
    <item>
      <title>AWS IAM Scan for Role Name</title>
      <link>https://utahcon.dev/post/2020-05-08_aws_iam_scan/</link>
      <pubDate>Fri, 08 May 2020 11:04:20 -0600</pubDate><author>utahcon@utahcon.com (Adam Barrett)</author>
      <guid>https://utahcon.dev/post/2020-05-08_aws_iam_scan/</guid>
      <description>&lt;h1 id=&#34;scan-aws-account-for-iam-role&#34;&gt;Scan AWS Account for IAM Role&lt;/h1&gt;&#xA;&lt;p&gt;If you are like me you happen to work with ALZs with LOTS of accounts. Jumping into each one to verify a role exists, or&#xA;doesn&amp;rsquo;t it quite tedious. So here I have a simple &amp;ldquo;one-liner&amp;rdquo; that loops through your accounts and looks for the&#xA;existence of a role (by partial lookup).&lt;/p&gt;&#xA;&lt;h2 id=&#34;one-liner&#34;&gt;One-liner&lt;/h2&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; role in &lt;span class=&#34;k&#34;&gt;$(&lt;/span&gt;cat ~/.aws/credentials &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; grep devopsadmin &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; cut -d &lt;span class=&#34;s1&#34;&gt;&amp;#39;[&amp;#39;&lt;/span&gt; -f2 &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; cut -d &lt;span class=&#34;s1&#34;&gt;&amp;#39;]&amp;#39;&lt;/span&gt; -f1 &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; grep -v ^role_arn&lt;span class=&#34;k&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;do&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;echo&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$role&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; aws --profile &lt;span class=&#34;nv&#34;&gt;$role&lt;/span&gt; iam list-roles &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; jq -r &lt;span class=&#34;s2&#34;&gt;&amp;#34;.Roles[].RoleName&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; grep CMK&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;done&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;breakdown&#34;&gt;Breakdown&lt;/h2&gt;&#xA;&lt;p&gt;First we tell bash to list grab our AWS Credentials file, which is an INI that we store the profile names in as&#xA;&lt;code&gt;[ProfileName]&lt;/code&gt;, in my case I only care for the names containing &lt;code&gt;devopsadmin&lt;/code&gt;. The cut is to trim the &lt;code&gt;[&lt;/code&gt; &amp;amp; &lt;code&gt;]&lt;/code&gt; off&#xA;the line, and finally the &lt;code&gt;grep -v&lt;/code&gt; skips any lines that start with &lt;code&gt;role_arn&lt;/code&gt; as these aren&amp;rsquo;t needed (this time).&lt;/p&gt;</description>
    </item>
    <item>
      <title>AWS Backup Delete Script</title>
      <link>https://utahcon.dev/post/2020-05-03_aws-backup-delete-script/</link>
      <pubDate>Sun, 03 May 2020 14:26:07 -0600</pubDate><author>utahcon@utahcon.com (Adam Barrett)</author>
      <guid>https://utahcon.dev/post/2020-05-03_aws-backup-delete-script/</guid>
      <description>&lt;h1 id=&#34;delete-aws-backup-artifacts&#34;&gt;Delete AWS Backup artifacts&lt;/h1&gt;&#xA;&lt;p&gt;AWS Backup is a great utility, but when you are cleaning up an account it takes a long time to remove all the backup&#xA;artifacts by hand in the console. So instead I present this one-liner&lt;/p&gt;&#xA;&lt;h2 id=&#34;single-region&#34;&gt;Single Region&lt;/h2&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ aws --region us-east-1 backup list-recovery-points-by-backup-vault --backup-vault-name default &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; jq &lt;span class=&#34;s1&#34;&gt;&amp;#39;.RecoveryPoints&amp;#39;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; jq -c -r &lt;span class=&#34;s1&#34;&gt;&amp;#39;.[].RecoveryPointArn&amp;#39;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; xargs --max-lines&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;1&lt;/span&gt; aws --region us-east-1 backup delete-recovery-point --backup-vault-name default --recovery-point-arn&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;multiple-regions&#34;&gt;Multiple Regions&lt;/h2&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ &lt;span class=&#34;nv&#34;&gt;regions&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;us-east-1,us-west-2&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; region in &lt;span class=&#34;nv&#34;&gt;$regions&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;do&lt;/span&gt; aws --region &lt;span class=&#34;si&#34;&gt;${&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;region&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt; backup list-recovery-points-by-backup-vault --backup-vault-name default &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; jq &lt;span class=&#34;s1&#34;&gt;&amp;#39;.RecoveryPoints&amp;#39;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; jq -c -r &lt;span class=&#34;s1&#34;&gt;&amp;#39;.[].RecoveryPointArn&amp;#39;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; xargs --max-lines&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;1&lt;/span&gt; aws --region &lt;span class=&#34;si&#34;&gt;${&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;region&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt; backup delete-recovery-point --backup-vault-name default --recovery-point-arn&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;done&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Nginx &#43; SSL/TLS through Let&#39;s Encrypt</title>
      <link>https://utahcon.dev/post/2020-04-13_nginx-ssl-tls-letsencrypt/</link>
      <pubDate>Mon, 13 Apr 2020 08:14:34 -0600</pubDate><author>utahcon@utahcon.com (Adam Barrett)</author>
      <guid>https://utahcon.dev/post/2020-04-13_nginx-ssl-tls-letsencrypt/</guid>
      <description>&lt;h1 id=&#34;lets-encrypt--nginx-is-simple-easy&#34;&gt;Let&amp;rsquo;s Encrypt + Nginx is simple easy!&lt;/h1&gt;&#xA;&lt;p&gt;Look, it&amp;rsquo;s 2020, and if your site isn&amp;rsquo;t provided under SSL/TLS then you are&#xA;behind even the least sophisticated scammers out there.&lt;/p&gt;&#xA;&lt;p&gt;Here is a quick walk through on using &lt;code&gt;certbot&lt;/code&gt; from&#xA;&lt;a href=&#34;https://letsencrypt.org/&#34;&gt;Let&amp;rsquo;s Encrypt&lt;/a&gt;, that provides easy to acquire, and&#xA;even renew your certificates if you&amp;rsquo;re using Nginx.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;NOTE:&lt;/strong&gt; These directions are geared toward Fedora users, but this is literally&#xA;just as easy on Ubuntu, Arch, Gentoo, etc.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Certifications Updated</title>
      <link>https://utahcon.dev/post/2020-04-10/</link>
      <pubDate>Fri, 10 Apr 2020 00:00:00 +0000</pubDate><author>utahcon@utahcon.com (Adam Barrett)</author>
      <guid>https://utahcon.dev/post/2020-04-10/</guid>
      <description>&lt;p&gt;Updated the dev blog with my certifications.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Utahcon.dev 2020 is a go!</title>
      <link>https://utahcon.dev/post/2020-04-09/</link>
      <pubDate>Thu, 09 Apr 2020 00:00:00 +0000</pubDate><author>utahcon@utahcon.com (Adam Barrett)</author>
      <guid>https://utahcon.dev/post/2020-04-09/</guid>
      <description>&lt;p&gt;Man 2020 has been a rocky start to say the least! However, I am finally getting some time to do the things around my lab&#xA;that just need to be done. This little project is one of those things.&lt;/p&gt;&#xA;&lt;h2 id=&#34;what-is-this-project&#34;&gt;What is this project?&lt;/h2&gt;&#xA;&lt;p&gt;For years I have wanted to separate out the aspects of my life, to compartmentalize. I have lots of personal things I&#xA;want to accomplish, but I don&amp;rsquo;t want to muddy a personal site with professional journals and tech jargon. So I am&#xA;declaring utahcon.dev the Development Blog, more or less.&lt;/p&gt;</description>
    </item>
    <item>
      <title></title>
      <link>https://utahcon.dev/page/certs/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><author>utahcon@utahcon.com (Adam Barrett)</author>
      <guid>https://utahcon.dev/page/certs/</guid>
      <description></description>
    </item>
    <item>
      <title></title>
      <link>https://utahcon.dev/page/project.router/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><author>utahcon@utahcon.com (Adam Barrett)</author>
      <guid>https://utahcon.dev/page/project.router/</guid>
      <description></description>
    </item>
    <item>
      <title>Utahcon - About</title>
      <link>https://utahcon.dev/page/about/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><author>utahcon@utahcon.com (Adam Barrett)</author>
      <guid>https://utahcon.dev/page/about/</guid>
      <description>&lt;p&gt;My name is Adam Barrett. I&amp;rsquo;m currently a Staff Site Reliability Engineer with &lt;a href=&#34;https://pura.com&#34;&gt;Pura&lt;/a&gt;. I have&#xA;been involved with IT since graduating from high school in 1999, with some notable stops at:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Overstock.com&lt;/li&gt;&#xA;&lt;li&gt;Zulily.com&lt;/li&gt;&#xA;&lt;li&gt;Progrexion&lt;/li&gt;&#xA;&lt;li&gt;Cloud Technology Partners&lt;/li&gt;&#xA;&lt;li&gt;Hewlett Packard Enterprise (HPE)&lt;/li&gt;&#xA;&lt;li&gt;Pura&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;This site is dedicated to the projects I am working on in the public. I also use this space to chronicle my adventures&#xA;in my professional career, including live streaming code development, conference talks and reviews, as well as general&#xA;tech conversation. I can be found on a number of communication platforms including but not limited to:&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
