Leveraging External Tables in Google BigQuery

Context Recently, I was tasked with logging error messages, request data, and the response body of failed HTTP requests to BigQuery for a service that makes outgoing GET and POST requests to thousands of different endpoints. Simple enough, right? Loading Logs into BigQuery Thankfully, the project already contained a legacy BigQuery streaming implementation which I used as my batch writer. After a thorough review of the changes, it was deployed to production....

June 29, 2022 · 6 min · michaelpeterswa

Ansible for the Homelab

Ansible for the Homelab It’s been a while since I last posted. Well, I’ve been working on something special. With my first server (an HP laptop with a broken screen) being nearly five years old, I was rapidly growing concerned about the health of it’s battery. The laptop has been plugged in and “floating” at 100% for the last 3-4 years. Given it’s previous life as a daily driven laptop (~7 years of total use), I assumed one day in the near future it would decide to become a spicy pillow....

February 13, 2022 · 4 min · michaelpeterswa

My ZSH Configuration

ZSH! Below you can find the setup that I’ve found very comfortable while still maintaining a relatively minimal terminal experience. Confidential environment variables and aliases have been omitted to maintain basic operational security. This post will be edited every time a major revision is made. Customizations of Note Plugin Manager: Antibody cat Alternative: bat Theme: lambda-gitster Current .zshrc Configuration export ZSH="/Users/michaelpeters/.oh-my-zsh" export PATH=/usr/local/git/bin:$PATH ZSH_THEME="lambda-gitster" DISABLE_UPDATE_PROMPT="true" COMPLETION_WAITING_DOTS="true" DISABLE_UNTRACKED_FILES_DIRTY="true" source $ZSH/oh-my-zsh.sh source <(antibody init) antibody bundle < ~/....

December 22, 2021 · 2 min · michaelpeterswa

Hashes and Strings in Go

Introduction In a few cases while working on Go software, I have needed to generate a cryptographic hash (mainly SHA-256) from a string or JSON value. In all cases up to this point, I needed to convert the resulting []byte to a string representation for storage or viewing. In my investigation, I found two popular ways to approach this problem. I’ll describe them below as well as explore the performance implications of each choice....

December 22, 2021 · 3 min · michaelpeterswa

Adventures in IPFS

Preface (just a shoutout) Firstly, before digging into the real meat of this post, I’d like to thank GuildDarts on GitHub for creating the incredible Docker Folders plugin for Unraid (which greatly helped me clean up my Docker container list). I found this plugin after creating a new IPFS Docker container, which rounded out a cluttered ~30 containers running on my Dell R620. With it, I was able to make a new Web3 category to store my new related containers in....

December 11, 2021 · 6 min · michaelpeterswa