utahcon.dev https://utahcon.dev/ Recent content on utahcon.dev Hugo -- gohugo.io en-us [email protected] (Adam Barrett) [email protected] (Adam Barrett) Mon, 09 Mar 2026 08:00:00 -0600 New Release: github-pokemon v1.4.1 https://utahcon.dev/post/2026-03-09_github-pokemon-release/ Mon, 09 Mar 2026 08:00:00 -0600[email protected] (Adam Barrett) https://utahcon.dev/post/2026-03-09_github-pokemon-release/ New Release: github-pokemon v1.4.1 I’m excited to announce the latest release of github-pokemon, version v1.4.1! github-pokemon is a Go-based command-line tool I built to efficiently manage multiple GitHub repositories within an organization. “Gotta catch ’em all!” Its primary purpose is to automate the process of cloning all non-archived repositories and keeping them updated by fetching remote tracking branches. Key Features Bulk Operations: Quickly clones or updates all repositories in a specified GitHub organization. action-hugo https://utahcon.dev/post/2024-03-05_action-hugo/ Tue, 05 Mar 2024 16:11:39 -0700[email protected] (Adam Barrett) https://utahcon.dev/post/2024-03-05_action-hugo/ action-hugo v0.123.7 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 action-hugo repo ran was three years ago… oh my. So some updates were of course needed. Now they are done. If you are interested in posting your blog easily with Hugo using GitHub Actions, well now you have another choice. Starting Blogumentation https://utahcon.dev/post/2024-03-05_writing_practice/ Tue, 05 Mar 2024 12:00:00 -0600[email protected] (Adam Barrett) https://utahcon.dev/post/2024-03-05_writing_practice/ Starting Blogumentation Let’s be real. I am not a great example of writing regularly. Or even occasionally. I am out right terrible at it. However, I was recently listening to an episode of Changelog & Friends podcast where Jamie Tanna (who has a website) was talking about Blogumentation and this rang true with me. Among many other things in the podcast episode. Go listen, it is great. So what? I am going to take a stab at using this blog as my own blogumentation again. Deadpool: Stackoverflow Developer Stories https://utahcon.dev/post/2022-03-28_stackoverflow_developer_story/ Mon, 28 Mar 2022 11:18:00 -0600[email protected] (Adam Barrett) https://utahcon.dev/post/2022-03-28_stackoverflow_developer_story/ Back in 2016 Stack Overflow tested a few things that were super awesome, at first glance, but like lots of technology quickly faded into obscurity. One of those tests, was Developer Stories. Developer Stories was to be a “way we envision you showcasing every aspect of your developer identity.” as Stack Overflow put it in their initial announcement. I ran out and filled out my developer story, which is now being discontinued. Simple Invoice https://utahcon.dev/post/2021-05-03_simple_invoice_app/ Mon, 03 May 2021 09:31:01 -0600[email protected] (Adam Barrett) https://utahcon.dev/post/2021-05-03_simple_invoice_app/ My son, Isaac, has started a lawn service. To help him track who has paid, and who is outstanding I over-engineered a spreadsheet for him. Behold! Customers The first sheet is a simple spreadsheet of customer data: Customer Address Phone Size Price Day Notes John Doe 123 Any Street 801-555-0011 Small, Medium, Large $7 Thursday Notes about last mowing Inventory For lack of better name this is a sheet for tracking which jobs have been completed. OpenSSL Certificate Authority https://utahcon.dev/post/2021-03-29_openssl_ca/ Mon, 29 Mar 2021 06:28:46 -0600[email protected] (Adam Barrett) https://utahcon.dev/post/2021-03-29_openssl_ca/ 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. https://jamielinux.com/docs/openssl-certificate-authority/ TIL: GitHub Action setup-go https://utahcon.dev/post/2021-02-24_github-action-setup-go/ Wed, 24 Feb 2021 09:49:14 -0700[email protected] (Adam Barrett) https://utahcon.dev/post/2021-02-24_github-action-setup-go/ If you are developing and running workflows on GitHub using Golang, and the recent release of Golang 1.16 had features you want or need, then you might want to know about this GitHub Action setup-go. Essentially the way it works is that ubuntu-latest on GitHub has the last three major versions of Golang in the cache, but you have to properly switch between them. setup-go does that for you, and if you are using a version of Golang that doesn’t come pre-installed in the cache, it will install it for you. Comments with Mastodon https://utahcon.dev/post/2021-02-01_comments-with-mastodon/ Mon, 01 Feb 2021 12:43:45 -0700[email protected] (Adam Barrett) https://utahcon.dev/post/2021-02-01_comments-with-mastodon/ If you aren’t aware, this blog is created using Hugo. This means this blog is essentially just static files being served by a static web engine. It makes it light, and simply to host/deploy. One thing it makes it hard to do, is host comments, because comments are by nature dynamic (not static). I came across the idea of using Mastodon a platform that is community-owned and ad-free. This allows “dynamic” comments, without me having to add a comment engine to my blog. Home Storage Upgrade Plan https://utahcon.dev/post/2021-01-26_upgrade-storage-plan/ Tue, 26 Jan 2021 13:41:00 -0700[email protected] (Adam Barrett) https://utahcon.dev/post/2021-01-26_upgrade-storage-plan/ Back in 2019 I built a small storage server for my home needs. Basically I store my music, movies, ebooks, and image collections here, enabling the use of DLNA to watch them on my TVs throughout the house. Just the other day, I finally got the notice that I am running low on space. To be clear that threshold is any remaining space under 1TB. As of this writing I am down to 1020. PoC||GTFO Repo Update https://utahcon.dev/post/2021-01-15_pocorgtfo_updates/ Fri, 15 Jan 2021 11:25:20 -0700[email protected] (Adam Barrett) https://utahcon.dev/post/2021-01-15_pocorgtfo_updates/ PoC||GTFO If you are unfamiliar with the International Journal of Proof-of-Concept or Get The F*ck Out (my edit) then I encourage you, dear reader, to become familiar with it. It is a great read by hackers for hackers. Long story short One thing geeks like myself have taken to doing, is preserving the history of the internet by replicating information to sites and servers with better control. That is why I have created this repo, which automatically updates daily (thanks Github Workflows! Github action-hugo Updated https://utahcon.dev/post/2021-01-14_action-hugo-updated/ Thu, 14 Jan 2021 15:10:07 -0700[email protected] (Adam Barrett) https://utahcon.dev/post/2021-01-14_action-hugo-updated/ Happy to announce that my Github Action utahcon/action-hugo has been updated to now support Hugo Modules. This change basically means there is now an on-board implementation of Golang, and git. Nothing too scary. Didn’t increase build times by too much, nor does it impact the way you use the action, except that it now support Modules. Enjoy! Link: utahcon/action-hugo:v0.80.0 Github action-scp updated for 2021 https://utahcon.dev/post/2021-01-13_action_scp_updated/ Wed, 13 Jan 2021 16:29:58 -0700[email protected] (Adam Barrett) https://utahcon.dev/post/2021-01-13_action_scp_updated/ 2021 Had Different Ideas Welcome to 2021, I decided to post about my plans to blog a bit more in 2021, but the internet gods had conspired against me and made my Github Action action-scp fail. So I started into fixing it. If you see this blog post, it is indeed fixed. What happened? No clue, but something on the Github side of things changed in a way that I was starting to fail host key verification, even though it specifically uses StrictHostKeyChecking=no. New Year New Goals https://utahcon.dev/post/2021-01-11_new_year_new_goals/ Mon, 11 Jan 2021 08:50:01 -0700[email protected] (Adam Barrett) https://utahcon.dev/post/2021-01-11_new_year_new_goals/ A New Year It has been a rough one, not for me personally, I actually can’t complain about 2020 too much. Aside from being locked in closer quarters than normal with my kids, the year was overly meh. I will go count my blessings and keep at it. New Goals Aside from the normal weight loss, education, etc. goals, I am also committing, once again to 52 posts on this blog this year. Microsoft Certified Azure Fundamentals https://utahcon.dev/post/2020-10-15_azure_fundamentals/ Thu, 15 Oct 2020 11:45:50 -0600[email protected] (Adam Barrett) https://utahcon.dev/post/2020-10-15_azure_fundamentals/ I am proud to announce that I have completed my first Microsoft Azure Certification. To see more of my certifications checkout the certifications page. 2020 09 17_action Hugo Is Live https://utahcon.dev/post/2020-09-17_action-hugo-is-live/ Thu, 17 Sep 2020 11:24:44 -0600[email protected] (Adam Barrett) https://utahcon.dev/post/2020-09-17_action-hugo-is-live/ Well it is working if you are seeing this. More on that later. Accessing Multiple CodeCommit Repos https://utahcon.dev/post/2020-06-30_multiple-codecommit-repos/ Tue, 30 Jun 2020 10:16:55 -0600[email protected] (Adam Barrett) https://utahcon.dev/post/2020-06-30_multiple-codecommit-repos/ AWS provides a handy Git based repository to their customers called CodeCommit. Accessing the repository is easy enough, upload your SSH Key to the AWS Console, and then add CodeCommit to your SSH configuration: # ~/.ssh/config Host git-codecommit.*.amazonaws.com User USER1EXAMPLEARN1 IdentityFile ~/.ssh/USER1EXAMPLEARN1_rsa This is wonderful until you need to access more than one AWS Account’s CodeCommit repo. How do you identify between two different AWS Account repos that use the same URL? Github Actions Worked https://utahcon.dev/post/2020-06-26_github_actions/ Fri, 26 Jun 2020 15:32:18 -0600[email protected] (Adam Barrett) https://utahcon.dev/post/2020-06-26_github_actions/ This is a temporary post to let me know that my Github Actions are functional. Yay me! AWS Boto3 Documentation Redirect https://utahcon.dev/post/2020-06-17_boto3_redirect/ Wed, 17 Jun 2020 08:20:18 -0600[email protected] (Adam Barrett) https://utahcon.dev/post/2020-06-17_boto3_redirect/ 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 I type boto3 and slap Enter; however, this results in my browser auto-filling the URL bar with https://boto3.amazonaws.com and since the AWS guys are too lazy to add a redirect there, I have created a simple User Script that does exactly that, it just redirects the browser to the correct link https://boto3. Find all EC2 Instances using in-house AMIs https://utahcon.dev/post/2020-06-10_in-house_ami/ Wed, 10 Jun 2020 16:18:06 -0600[email protected] (Adam Barrett) https://utahcon.dev/post/2020-06-10_in-house_ami/ Building off my last post GNU Parallel and AWS CLI, today I used parallel with more AWS to get a count of all AMIs being used in my infrastructure using any in-house AMI (non-Amazon, non-Marketplace). The Problem I need to know how many of my instances are running Chef clients. Conveniently we only run Chef client on instances that use images we have created in-house. So I can limit my search. GNU Parallel and AWS CLI https://utahcon.dev/post/2020-05-12_parallel_and_aws/ Tue, 12 May 2020 10:49:00 -0600[email protected] (Adam Barrett) https://utahcon.dev/post/2020-05-12_parallel_and_aws/ We all know that the GUI/Console for AWS is sadly slow and cumbersome to use. That’s why they created the CLI and SDK tools to let impatient people do more work in less time. However, the CLI and SDK are also slow because well, processing time takes for ever sometimes. So for the truly impatient isn’t it nice that you can use GNU Parallel to complete more work in less time? AWS IAM Scan for Role Name https://utahcon.dev/post/2020-05-08_aws_iam_scan/ Fri, 08 May 2020 11:04:20 -0600[email protected] (Adam Barrett) https://utahcon.dev/post/2020-05-08_aws_iam_scan/ Scan AWS Account for IAM Role 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 doesn’t it quite tedious. So here I have a simple “one-liner” that loops through your accounts and looks for the existence of a role (by partial lookup). One-liner for role in $(cat ~/.aws/credentials | grep devopsadmin | cut -d '[' -f2 | cut -d ']' -f1 | grep -v ^role_arn); do echo $role; aws --profile $role iam list-roles | jq -r ". AWS Backup Delete Script https://utahcon.dev/post/2020-05-03_aws-backup-delete-script/ Sun, 03 May 2020 14:26:07 -0600[email protected] (Adam Barrett) https://utahcon.dev/post/2020-05-03_aws-backup-delete-script/ Delete AWS Backup artifacts AWS Backup is a great utility, but when you are cleaning up an account it takes a long time to remove all the backup artifacts by hand in the console. So instead I present this one-liner Single Region $ aws --region us-east-1 backup list-recovery-points-by-backup-vault --backup-vault-name default | jq '.RecoveryPoints' | jq -c -r '.[].RecoveryPointArn' | xargs --max-lines=1 aws --region us-east-1 backup delete-recovery-point --backup-vault-name default --recovery-point-arn Multiple Regions $ regions=us-east-1,us-west-2; for region in $regions; do aws --region ${region} backup list-recovery-points-by-backup-vault --backup-vault-name default | jq '. Nginx + SSL/TLS through Let's Encrypt https://utahcon.dev/post/2020-04-13_nginx-ssl-tls-letsencrypt/ Mon, 13 Apr 2020 08:14:34 -0600[email protected] (Adam Barrett) https://utahcon.dev/post/2020-04-13_nginx-ssl-tls-letsencrypt/ Let’s Encrypt + Nginx is simple easy! Look, it’s 2020, and if your site isn’t provided under SSL/TLS then you are behind even the least sophisticated scammers out there. Here is a quick walk through on using certbot from Let’s Encrypt, that provides easy to acquire, and even renew your certificates if you’re using Nginx. NOTE: These directions are geared toward Fedora users, but this is literally just as easy on Ubuntu, Arch, Gentoo, etc. Certifications Updated https://utahcon.dev/post/2020-04-10/ Fri, 10 Apr 2020 00:00:00 +0000[email protected] (Adam Barrett) https://utahcon.dev/post/2020-04-10/ Updated the dev blog with my certifications. Utahcon.dev 2020 is a go! https://utahcon.dev/post/2020-04-09/ Thu, 09 Apr 2020 00:00:00 +0000[email protected] (Adam Barrett) https://utahcon.dev/post/2020-04-09/ 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 that just need to be done. This little project is one of those things. What is this project? For years I have wanted to separate out the aspects of my life, to compartmentalize. I have lots of personal things I want to accomplish, but I don’t want to muddy a personal site with professional journals and tech jargon. https://utahcon.dev/page/certs/ Mon, 01 Jan 0001 00:00:00 +0000[email protected] (Adam Barrett) https://utahcon.dev/page/certs/ Certifications Microsoft Certified Azure Fundamentals Azure Fundamentals exam is an opportunity to prove knowledge of cloud concepts, Azure services, Azure workloads, security and privacy in Azure, as well as Azure pricing and support. Candidates should be familiar with the general technology concepts, including concepts of networking, storage, compute, application support, and application development. Azure Fundamentals can be used to prepare for other Azure role-based or specialty certifications, but it is not a prerequisite for any of them. https://utahcon.dev/page/project.router/ Mon, 01 Jan 0001 00:00:00 +0000[email protected] (Adam Barrett) https://utahcon.dev/page/project.router/ Router A web interface for running my home internet endpoint. I need a better name for this project. I am working on that. The (First World) Problem I have CenturyLink Fiber to the Home, and they supply a decent “modem”, the Zyxel C3000Z. However, I am power user of all things internet (streaming services, torrents, servers, VPNs, etc.). While the Zyxel C3000Z can handle some of this, I find that I exhaust its capabilities pretty quickly. Utahcon - About https://utahcon.dev/page/about/ Mon, 01 Jan 0001 00:00:00 +0000[email protected] (Adam Barrett) https://utahcon.dev/page/about/ My name is Adam Barrett. I’m currently a Staff Site Reliability Engineer with Pura. I have been involved with IT since graduating from high school in 1999, with some notable stops at: Overstock.com Zulily.com Progrexion Cloud Technology Partners Hewlett Packard Enterprise (HPE) Pura This site is dedicated to the projects I am working on in the public. I also use this space to chronicle my adventures in my professional career, including live streaming code development, conference talks and reviews, as well as general tech conversation.