<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Zietlow</title><link>https://zietlow.io/</link><description>Recent content on Zietlow</description><generator>Hugo</generator><language>en</language><copyright>Copyright © 2008–2026, Chris Zietlow</copyright><atom:link href="https://zietlow.io/index.xml" rel="self" type="application/rss+xml"/><item><title>Go JSON Unmarshaling</title><link>https://zietlow.io/posts/2026/go-json-unmarshaling/</link><pubDate>Sun, 08 Feb 2026 11:38:28 -0500</pubDate><guid>https://zietlow.io/posts/2026/go-json-unmarshaling/</guid><description>&lt;h2 id="tldr"&gt;TL;DR&lt;/h2&gt;
&lt;p&gt;When working with an API that returned json with inconsistent types, json.Unmarshal would fail because it was mapped to a matching Go type via tags in the struct. The solution was to create a new type to support any permutation of data the API might return, and have that type implement &lt;code&gt;Unmarshaler&lt;/code&gt; or &lt;code&gt;UnmarshalerFrom&lt;/code&gt; interfaces to add the logic to decode this correctly.&lt;/p&gt;
&lt;h2 id="problem"&gt;Problem&lt;/h2&gt;
&lt;p&gt;When working writing an API client, I was relying on Go's standard library &lt;code&gt;encoding/json&lt;/code&gt; in order to decode JSON object to a Go struct. This works wonderfully, as by default &lt;code&gt;json.Unmarshal()&lt;/code&gt; will decode the json data; mapping the json type to Go type. e.g. &lt;code&gt;string &amp;lt;&amp;gt; string&lt;/code&gt;, &lt;code&gt;int &amp;lt;&amp;gt; int&lt;/code&gt;, &lt;code&gt;object &amp;lt;&amp;gt; struct&lt;/code&gt;. I'm working with book data from the API.&lt;/p&gt;</description></item><item><title>Time of Contempt</title><link>https://zietlow.io/books/time-of-contempt/</link><pubDate>Wed, 04 Feb 2026 17:10:52 -0500</pubDate><guid>https://zietlow.io/books/time-of-contempt/</guid><description/></item><item><title>Blood of Elves</title><link>https://zietlow.io/books/blood-of-elves/</link><pubDate>Wed, 04 Feb 2026 17:10:27 -0500</pubDate><guid>https://zietlow.io/books/blood-of-elves/</guid><description/></item><item><title>Sword of Destiny</title><link>https://zietlow.io/books/sword-of-destiny/</link><pubDate>Wed, 04 Feb 2026 16:16:52 -0500</pubDate><guid>https://zietlow.io/books/sword-of-destiny/</guid><description/></item><item><title>The Last Wish</title><link>https://zietlow.io/books/the-last-wish/</link><pubDate>Wed, 04 Feb 2026 16:08:24 -0500</pubDate><guid>https://zietlow.io/books/the-last-wish/</guid><description/></item><item><title>Learning Systems Thinking</title><link>https://zietlow.io/books/learning-systems-thinking/</link><pubDate>Fri, 02 Jan 2026 07:19:44 -0400</pubDate><guid>https://zietlow.io/books/learning-systems-thinking/</guid><description/></item><item><title>Systems Thinking</title><link>https://zietlow.io/posts/2025/systems-thinking/</link><pubDate>Thu, 04 Sep 2025 17:51:48 -0500</pubDate><guid>https://zietlow.io/posts/2025/systems-thinking/</guid><description>&lt;h2 id="systems-thinking"&gt;Systems Thinking&lt;/h2&gt;
&lt;p&gt;More than ever software cannot be thought of in a linear, one-off environment way. It really never could, and continues to become more clear as software continues to grow in complexity, interconnectivity, and functionality. Systems thinking offers an school of thinking to model these systems in a way that captures how different parts interact and influence one another with the system as a whole. It shifts focus deeper behind how they work in isolation, and focuses on the relationships and interdepencies among components. It reminds me of why I appreciate the studying the field of marco economics. Where the outcome on a macro scale is so far beyond a simple relationship of supply and demand. Something like inflation is the result of thousans of inputs, outcomes of hundres of components of an economy, and millions of mirco decisions that all have an impact on the system as a whole.&lt;/p&gt;</description></item><item><title>Tmux</title><link>https://zietlow.io/posts/2025/tmux/</link><pubDate>Sun, 29 Jun 2025 17:42:18 -0400</pubDate><guid>https://zietlow.io/posts/2025/tmux/</guid><description>&lt;p&gt;Working from neovim and writing go code I find myself often cycling through multiple terminal windows while working on projects. This cycles between iterm and ghostty terminal and splits within neovim itself depending on my environment. Often resulting in a cacophony of windows, panes, and red yarn connecting the dots... There has to be a better way. Or moreover I'm tired of relying on a different set of application keybindings, alt-tab, and my mouse. The overall design of my workflow is to keep laser focus by keeping everything within a single window, and reducing the amount of time switching between different programs or reaching for the mouse. &lt;a href="https://github.com/tmux/tmux"&gt;Tmux&lt;/a&gt; has always been the obvious answer for improvement.&lt;/p&gt;</description></item><item><title>Week 23</title><link>https://zietlow.io/notes/2025/week-23/</link><pubDate>Sun, 08 Jun 2025 00:00:00 +0000</pubDate><guid>https://zietlow.io/notes/2025/week-23/</guid><description>Working on more R&amp;amp;D time as well as self-improvement</description></item><item><title>The Dark Forest</title><link>https://zietlow.io/books/the-dark-forest/</link><pubDate>Mon, 02 Jun 2025 07:21:32 -0400</pubDate><guid>https://zietlow.io/books/the-dark-forest/</guid><description/></item><item><title>The Three Body Problem</title><link>https://zietlow.io/books/the-three-body-problem/</link><pubDate>Mon, 02 Jun 2025 07:21:23 -0400</pubDate><guid>https://zietlow.io/books/the-three-body-problem/</guid><description/></item><item><title>The Anxious Generation</title><link>https://zietlow.io/books/the-anxious-generation/</link><pubDate>Mon, 02 Jun 2025 07:20:24 -0400</pubDate><guid>https://zietlow.io/books/the-anxious-generation/</guid><description/></item><item><title>The Book of Why</title><link>https://zietlow.io/books/the-book-of-why/</link><pubDate>Mon, 02 Jun 2025 07:19:44 -0400</pubDate><guid>https://zietlow.io/books/the-book-of-why/</guid><description/></item><item><title>Week 22</title><link>https://zietlow.io/notes/2025/week-22/</link><pubDate>Sun, 01 Jun 2025 14:24:53 -0400</pubDate><guid>https://zietlow.io/notes/2025/week-22/</guid><description>Continuing to explore experimentation and learning as life rapidly changes</description></item><item><title>Week 17</title><link>https://zietlow.io/notes/2025/week-17/</link><pubDate>Thu, 24 Apr 2025 07:20:48 -0400</pubDate><guid>https://zietlow.io/notes/2025/week-17/</guid><description>Sadly my paternal grandfather passed</description></item><item><title>Week 9</title><link>https://zietlow.io/notes/2025/week-9/</link><pubDate>Sat, 01 Mar 2025 06:09:57 -0500</pubDate><guid>https://zietlow.io/notes/2025/week-9/</guid><description>Spent more time writing code, found joy in this</description></item><item><title>DOE Simplified</title><link>https://zietlow.io/library/doe-simplified/</link><pubDate>Wed, 26 Feb 2025 19:37:34 -0500</pubDate><guid>https://zietlow.io/library/doe-simplified/</guid><description>The book explains simple methods for collecting and displaying data and presents comparative experiments for testing hypotheses. Discussing how to block the sources of variation from your analysis, it looks at two-level factorial designs and covers analysis of variance. It also details a four-step planning process for designing and executing experiments that takes statistical power into consideration.</description></item><item><title>Supercommunicators</title><link>https://zietlow.io/books/supercommunicators/</link><pubDate>Wed, 26 Feb 2025 08:36:01 -0500</pubDate><guid>https://zietlow.io/books/supercommunicators/</guid><description/></item><item><title>Team Topologies</title><link>https://zietlow.io/books/team-topologies/</link><pubDate>Sun, 23 Feb 2025 15:46:52 -0500</pubDate><guid>https://zietlow.io/books/team-topologies/</guid><description>&lt;h2 id="why"&gt;Why&lt;/h2&gt;
&lt;p&gt;This was added to my list by my lead software architect. It was to better understand a more modern and efficient team organization based on the reverse Conway maneuver&lt;/p&gt;</description></item><item><title>Week 8</title><link>https://zietlow.io/notes/2025/week-8/</link><pubDate>Sun, 23 Feb 2025 06:04:57 -0500</pubDate><guid>https://zietlow.io/notes/2025/week-8/</guid><description>Fairly low energy week</description></item><item><title>Go Http</title><link>https://zietlow.io/cheatsheets/go-http/</link><pubDate>Fri, 21 Feb 2025 15:04:20 -0500</pubDate><guid>https://zietlow.io/cheatsheets/go-http/</guid><description>Some handy small snippets for when working with go's net/http</description></item><item><title>Leadership That Gets Results</title><link>https://zietlow.io/library/leadership-that-gets-results/</link><pubDate>Mon, 17 Feb 2025 00:00:00 +0000</pubDate><guid>https://zietlow.io/library/leadership-that-gets-results/</guid><description>&lt;p&gt;This HBR article attempts to categorize leadership into 6 distinct styles, and aggregate quantitative data on the effectiveness of each. In doing so the Author Daniel Goleman also overlaps each style with various aspects of emotional intelligence - which to me seems like a logical conclusion. Not all individuals would be suited for all leadership styles. Additionally each leadership style would have different levels of impact based on the landscape, environment, and goals.&lt;/p&gt;</description></item><item><title>What Makes a Leader</title><link>https://zietlow.io/library/what-makes-a-leader/</link><pubDate>Mon, 17 Feb 2025 00:00:00 +0000</pubDate><guid>https://zietlow.io/library/what-makes-a-leader/</guid><description/></item><item><title>Week 7</title><link>https://zietlow.io/notes/2025/week-7/</link><pubDate>Sun, 16 Feb 2025 18:18:20 -0500</pubDate><guid>https://zietlow.io/notes/2025/week-7/</guid><description>First week timeshifting to have greater overlap with IST and EU timezones</description></item><item><title>Add IndieAuth to Your Website</title><link>https://zietlow.io/posts/2025/add-indieauth-to-your-blog/</link><pubDate>Wed, 12 Feb 2025 17:51:48 -0500</pubDate><guid>https://zietlow.io/posts/2025/add-indieauth-to-your-blog/</guid><description>&lt;h2 id="indieauth"&gt;IndieAuth&lt;/h2&gt;
&lt;p&gt;IndieAuth is built upon OAuth 2.0 and OpenID. Authenticating via the IndieWeb requires your &lt;strong&gt;website&lt;/strong&gt; URL as your Id. To obtain authorization you will be directed to your chosen IndieAuth server (OAuth provider). The IndieAuth Server can be self hosted, or rely on a hosted option such as &lt;a href="https://indieauth.com"&gt;indieauth.com&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Why not use not just use OIDC? In short b/c it relies on more centralized solutions such as social login providers or managed IDP services by companies like Okta&lt;/p&gt;</description></item><item><title>Week 6</title><link>https://zietlow.io/notes/2025/week-6/</link><pubDate>Fri, 07 Feb 2025 16:00:03 -0500</pubDate><guid>https://zietlow.io/notes/2025/week-6/</guid><description>Week 1 of digital detox</description></item><item><title>Week 5</title><link>https://zietlow.io/notes/2025/week-5/</link><pubDate>Sat, 01 Feb 2025 15:45:57 -0500</pubDate><guid>https://zietlow.io/notes/2025/week-5/</guid><description>Week of new experiments</description></item><item><title>Go Handy Snippets</title><link>https://zietlow.io/cheatsheets/go-handy-snippets/</link><pubDate>Thu, 30 Jan 2025 19:21:15 -0500</pubDate><guid>https://zietlow.io/cheatsheets/go-handy-snippets/</guid><description>&lt;h2 id="useful-go-isms"&gt;Useful Go-isms&lt;/h2&gt;
&lt;div class="two-column"&gt;
 &lt;div class="column__section"&gt;
 &lt;h3 id="popping-an-element-from-a-slice-via-cutting"&gt;Popping an element from a slice via cutting&lt;/h3&gt;
&lt;div class="highlight_wrap"&gt;
 &lt;div class="highlight_meta"&gt;
 &lt;div class="highlight_copy"&gt;
 &lt;svg class="icon"&gt;
 &lt;use xlink:href="#copy"&gt;&lt;/use&gt;
&lt;/svg&gt;
&lt;pre&gt;&lt;code&gt; &amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
 &lt;/div&gt;
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-go" data-lang="go"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kd"&gt;func&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;arrayPop&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;list&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;index&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;	&lt;/span&gt;&lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;list&lt;/span&gt;&lt;span class="p"&gt;[:&lt;/span&gt;&lt;span class="nx"&gt;index&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;list&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;index&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;:]&lt;/span&gt;&lt;span class="o"&gt;...&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;evenNumbers&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;:=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;6&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;9&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;evenNumbers&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;arrayPop&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;evenNumbers&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="column__section"&gt;
 &lt;h3 id="combining-3-slices"&gt;Combining 3 slices&lt;/h3&gt;
&lt;div class="highlight_wrap"&gt;
 &lt;div class="highlight_meta"&gt;
 &lt;div class="highlight_copy"&gt;
 &lt;svg class="icon"&gt;
 &lt;use xlink:href="#copy"&gt;&lt;/use&gt;
&lt;/svg&gt;
&lt;pre&gt;&lt;code&gt; &amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
 &lt;/div&gt;
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-go" data-lang="go"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;list1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;:=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;list2&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;:=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;6&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;list3&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;:=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="mi"&gt;7&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;9&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;megaList&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;:=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;list1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;list2&lt;/span&gt;&lt;span class="o"&gt;...&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;list3&lt;/span&gt;&lt;span class="o"&gt;...&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// [1 2 3 4 5 6 7 8 9]&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="column__section"&gt;
 &lt;h3 id="single-line-array-swaps"&gt;Single line array swaps&lt;/h3&gt;
&lt;div class="highlight_wrap"&gt;
 &lt;div class="highlight_meta"&gt;
 &lt;div class="highlight_copy"&gt;
 &lt;svg class="icon"&gt;
 &lt;use xlink:href="#copy"&gt;&lt;/use&gt;
&lt;/svg&gt;
&lt;pre&gt;&lt;code&gt; &amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
 &lt;/div&gt;
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-go" data-lang="go"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// Traditional swap&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;temp&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;:=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;list&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;list&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;list&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;list&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;temp&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// Single line swap&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;list&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;list&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;list&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;list&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="column__section"&gt;
 &lt;h3 id="maps-must-be-initialized"&gt;Maps must be initialized&lt;/h3&gt;
&lt;p&gt;Map types are reference types, like pointers or slices, and so the value of m above is nil; it doesn’t point to an initialized map. A nil map behaves like an empty map when reading, but attempts to write to a nil map will cause a runtime panic; don’t do that. To initialize a map, use the built in make function&lt;/p&gt;</description></item><item><title>Data Structures and Algorithms Go</title><link>https://zietlow.io/posts/2025/data-structures-and-algorithms-go/</link><pubDate>Wed, 29 Jan 2025 00:00:00 +0000</pubDate><guid>https://zietlow.io/posts/2025/data-structures-and-algorithms-go/</guid><description>&lt;h2 id="algorithm"&gt;Algorithm&lt;/h2&gt;
&lt;h3 id="simple-sorts"&gt;Simple Sorts&lt;/h3&gt;
&lt;h4 id="selection-sort"&gt;Selection Sort&lt;/h4&gt;
&lt;p&gt;Sort a list of []Type by searching for the smallest (or largest) element of the array, removing the found element from the list, and copying it to a new list.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Time Complexity:&lt;/strong&gt;
$O(n^2)$&lt;/p&gt;
&lt;h5 id="example"&gt;Example&lt;/h5&gt;




&lt;div class="highlight_wrap"&gt;
 &lt;div class="highlight_meta"&gt;
 &lt;div class="highlight_copy"&gt;
 &lt;svg class="icon"&gt;
 &lt;use xlink:href="#copy"&gt;&lt;/use&gt;
&lt;/svg&gt;

 &lt;/div&gt;
 &lt;/div&gt;

 
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-go" data-lang="go"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kd"&gt;func&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;selectionSort&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;list&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;	&lt;/span&gt;&lt;span class="nx"&gt;newList&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;:=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="p"&gt;{}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;	&lt;/span&gt;&lt;span class="k"&gt;for&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;range&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;list&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;		&lt;/span&gt;&lt;span class="nx"&gt;smallest&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;smallestIndex&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;:=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;findSmallest&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;list&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;		&lt;/span&gt;&lt;span class="nx"&gt;list&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;list&lt;/span&gt;&lt;span class="p"&gt;[:&lt;/span&gt;&lt;span class="nx"&gt;smallestIndex&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;list&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;smallestIndex&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;:]&lt;/span&gt;&lt;span class="o"&gt;...&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;		&lt;/span&gt;&lt;span class="nx"&gt;newList&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;newList&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;smallest&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;	&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;	&lt;/span&gt;&lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;newList&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kd"&gt;func&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;findSmallest&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;list&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;	&lt;/span&gt;&lt;span class="kd"&gt;var&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;smallest&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;smallestIndex&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;list&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;	&lt;/span&gt;&lt;span class="k"&gt;for&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;number&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;:=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;range&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;list&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;		&lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;number&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;smallest&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;			&lt;/span&gt;&lt;span class="nx"&gt;smallest&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;number&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;			&lt;/span&gt;&lt;span class="nx"&gt;smallestIndex&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;		&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;	&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;	&lt;/span&gt;&lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;smallest&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;smallestIndex&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h4 id="bubble-sort"&gt;Bubble Sort&lt;/h4&gt;
&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=koMpGeZpu4Q"&gt;Thanks Obama&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Email Authentication Policies</title><link>https://zietlow.io/posts/2025/email-authentication-protocols/</link><pubDate>Wed, 29 Jan 2025 00:00:00 +0000</pubDate><guid>https://zietlow.io/posts/2025/email-authentication-protocols/</guid><description>&lt;h2 id="problem"&gt;Problem&lt;/h2&gt;
&lt;p&gt;I'm a manager of a team that maintains a large scale CIAM solution. One of the many things that the platform does is allow users to preform account actions via email, such as reseting password, or performing email verification. We received a heads up from our infosec team that there would be changes to our company's DMARC policy, and that we should ensure that our emails are able to pass before those chagnes go live. To translate that into impact of our users, if we failed to pass DMARC checks once the changes were live, there was a risk that our users would be unable to receive official emails from us.&lt;/p&gt;</description></item><item><title>Flow</title><link>https://zietlow.io/books/flow/</link><pubDate>Tue, 28 Jan 2025 08:44:14 -0500</pubDate><guid>https://zietlow.io/books/flow/</guid><description>&lt;p&gt;I picked this book up, intending to better understand how I could optimize my day as a people leader to achieve flow state, and thus maximize my output and productivity. What followed was the discovery how much challenge and focus can impact not just productivity, but also happiness, and fulfillment in life.&lt;/p&gt;</description></item><item><title>Never Split the Difference</title><link>https://zietlow.io/books/never-split-the-difference/</link><pubDate>Tue, 28 Jan 2025 08:36:01 -0500</pubDate><guid>https://zietlow.io/books/never-split-the-difference/</guid><description>&lt;p&gt;Advice on how to negotiate from a former hostage negotiator.&lt;/p&gt;</description></item><item><title>Week 4</title><link>https://zietlow.io/notes/2025/week-4/</link><pubDate>Sun, 26 Jan 2025 07:50:25 -0500</pubDate><guid>https://zietlow.io/notes/2025/week-4/</guid><description>The week of Gumma's funeral</description></item><item><title>Experimenting With Digital Minimalism</title><link>https://zietlow.io/posts/2025/experimenting-with-digital-minimalism/</link><pubDate>Thu, 23 Jan 2025 18:34:10 -0500</pubDate><guid>https://zietlow.io/posts/2025/experimenting-with-digital-minimalism/</guid><description>&lt;h3 id="abstract"&gt;Abstract&lt;/h3&gt;
&lt;p&gt;I invest too much of my time into low value, low reward activities. This can be doom scrolling Twitter, reading the latest drama on reddit, or getting sucked into a rabbit hole on Youtube. Sometimes this takes the form of playing a mindless game, or getting sucked into binge watching something on Netflix. I've become addicted to technology. In order to optimize my life for satisfaction, joy, and virtue I need to find a more rigid role for media and technology. To start I'll establish a new baseline, or foundation upon which to build upon.&lt;/p&gt;</description></item><item><title>Vim Motions</title><link>https://zietlow.io/cheatsheets/vim-motions/</link><pubDate>Wed, 22 Jan 2025 10:45:51 -0500</pubDate><guid>https://zietlow.io/cheatsheets/vim-motions/</guid><description>&lt;h2 id="vim-basics"&gt;VIM Basics&lt;/h2&gt;
&lt;div class="two-column"&gt;
 &lt;div class="column__section"&gt;
 &lt;h3 id="movement"&gt;Movement&lt;/h3&gt;
&lt;div class="highlight_wrap"&gt;
 &lt;div class="highlight_meta"&gt;
 &lt;div class="highlight_copy"&gt;
 &lt;svg class="icon"&gt;
 &lt;use xlink:href="#copy"&gt;&lt;/use&gt;
&lt;/svg&gt;
&lt;pre&gt;&lt;code&gt; &amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
 &lt;/div&gt;
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;↑ - k
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;← - h
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;→ - l
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;↓ - j&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="column__section"&gt;
 &lt;h3 id="words"&gt;Words&lt;/h3&gt;
&lt;div class="highlight_wrap"&gt;
 &lt;div class="highlight_meta"&gt;
 &lt;div class="highlight_copy"&gt;
 &lt;svg class="icon"&gt;
 &lt;use xlink:href="#copy"&gt;&lt;/use&gt;
&lt;/svg&gt;
&lt;pre&gt;&lt;code&gt; &amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
 &lt;/div&gt;
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;w - next word
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;b - previous word
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;e - end of next word&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="column__section"&gt;
 &lt;h3 id="exit"&gt;Exit&lt;/h3&gt;
&lt;div class="highlight_wrap"&gt;
 &lt;div class="highlight_meta"&gt;
 &lt;div class="highlight_copy"&gt;
 &lt;svg class="icon"&gt;
 &lt;use xlink:href="#copy"&gt;&lt;/use&gt;
&lt;/svg&gt;
&lt;pre&gt;&lt;code&gt; &amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
 &lt;/div&gt;
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;:q - quit 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;:qw - save &amp;amp; quit
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;:w - save
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;:q! - quit without saving&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="column__section"&gt;
 &lt;h3 id="screen-navigation"&gt;Screen Navigation&lt;/h3&gt;
&lt;div class="highlight_wrap"&gt;
 &lt;div class="highlight_meta"&gt;
 &lt;div class="highlight_copy"&gt;
 &lt;svg class="icon"&gt;
 &lt;use xlink:href="#copy"&gt;&lt;/use&gt;
&lt;/svg&gt;
&lt;pre&gt;&lt;code&gt; &amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
 &lt;/div&gt;
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;G - end of file
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;gg || :0 - beginning of the file
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;% - jump to matching &amp;#39;()&amp;#39;, &amp;#39;{}&amp;#39;, &amp;#39;[]&amp;#39;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&amp;lt;c-b&amp;gt; - page up
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&amp;lt;c-f&amp;gt; - page down&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="column__section"&gt;
 &lt;h3 id="line-navigation"&gt;Line Navigation&lt;/h3&gt;
&lt;div class="highlight_wrap"&gt;
 &lt;div class="highlight_meta"&gt;
 &lt;div class="highlight_copy"&gt;
 &lt;svg class="icon"&gt;
 &lt;use xlink:href="#copy"&gt;&lt;/use&gt;
&lt;/svg&gt;
&lt;pre&gt;&lt;code&gt; &amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
 &lt;/div&gt;
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;0 - Move to beginning of line
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;^ - First non-blank char of line
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ - End of the line&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="column__section"&gt;
 &lt;h3 id="word-navigation"&gt;Word Navigation&lt;/h3&gt;
&lt;div class="highlight_wrap"&gt;
 &lt;div class="highlight_meta"&gt;
 &lt;div class="highlight_copy"&gt;
 &lt;svg class="icon"&gt;
 &lt;use xlink:href="#copy"&gt;&lt;/use&gt;
&lt;/svg&gt;
&lt;pre&gt;&lt;code&gt; &amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
 &lt;/div&gt;
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;w - next word
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;b - prev word
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;0 - start of line
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;^ - first non-blank char of line
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ - end of line&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="column__section"&gt;
 &lt;h3 id="text-editing"&gt;Text Editing&lt;/h3&gt;
&lt;div class="highlight_wrap"&gt;
 &lt;div class="highlight_meta"&gt;
 &lt;div class="highlight_copy"&gt;
 &lt;svg class="icon"&gt;
 &lt;use xlink:href="#copy"&gt;&lt;/use&gt;
&lt;/svg&gt;
&lt;pre&gt;&lt;code&gt; &amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
 &lt;/div&gt;
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;a - append
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;A - append from the end of the line
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;I - insert at the beginning of line
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;o - insert from new line
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;O - insert from prev line
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;x - delete char under cursor
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;s - delete character &amp;amp; insert
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;S - Delete line and insert
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;C - delete to the end of line and insert
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;r - replace single character
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;R - Enter Replace mode&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="column__section"&gt;
 &lt;h3 id="clipboard"&gt;Clipboard&lt;/h3&gt;
&lt;div class="highlight_wrap"&gt;
 &lt;div class="highlight_meta"&gt;
 &lt;div class="highlight_copy"&gt;
 &lt;svg class="icon"&gt;
 &lt;use xlink:href="#copy"&gt;&lt;/use&gt;
&lt;/svg&gt;
&lt;pre&gt;&lt;code&gt; &amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
 &lt;/div&gt;
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;u - undo
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&amp;lt;c-r&amp;gt; - redo&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;

&lt;h2 id="more-vim"&gt;More Vim&lt;/h2&gt;
&lt;div class="two-column"&gt;
 &lt;div class="column__section"&gt;
 &lt;h3 id="select-within--"&gt;Select within (), {}&lt;/h3&gt;
&lt;div class="highlight_wrap"&gt;
 &lt;div class="highlight_meta"&gt;
 &lt;div class="highlight_copy"&gt;
 &lt;svg class="icon"&gt;
 &lt;use xlink:href="#copy"&gt;&lt;/use&gt;
&lt;/svg&gt;
&lt;pre&gt;&lt;code&gt; &amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
 &lt;/div&gt;
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;:vi( - select text within ()
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;:vib - select text within ()
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;:vi{ - select text within {}
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;:viB - select text within {}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="column__section"&gt;
 &lt;h3 id="visual-modes"&gt;Visual Modes&lt;/h3&gt;
&lt;div class="highlight_wrap"&gt;
 &lt;div class="highlight_meta"&gt;
 &lt;div class="highlight_copy"&gt;
 &lt;svg class="icon"&gt;
 &lt;use xlink:href="#copy"&gt;&lt;/use&gt;
&lt;/svg&gt;
&lt;pre&gt;&lt;code&gt; &amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
 &lt;/div&gt;
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;v - visual mode
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;V - line visual mode
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&amp;lt;c-v&amp;gt; - visual block mode&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;</description></item><item><title>Week 3</title><link>https://zietlow.io/notes/2025/week-3/</link><pubDate>Sat, 18 Jan 2025 17:31:44 -0500</pubDate><guid>https://zietlow.io/notes/2025/week-3/</guid><description>The Rubber meets the road</description></item><item><title>Digital Minimalism</title><link>https://zietlow.io/books/digital-minimalism/</link><pubDate>Thu, 16 Jan 2025 19:37:34 -0500</pubDate><guid>https://zietlow.io/books/digital-minimalism/</guid><description>&lt;h3 id="recap"&gt;Recap&lt;/h3&gt;
&lt;p&gt;Digital Minimalism, by Cal Newport, focused on applying the ideals of the minimalism moment to a chaotic, digital world. I picked this up as a continuation of my interest and focus on achieving a happier life. Cal would use the phrase &amp;quot;deep life.&amp;quot; Digital minimalism isn't about technological luddite, so much as it is about spending our limited time on higher areas of return. This really further highlights that our time on this Earth and specifically our time is a zero sum game.&lt;/p&gt;</description></item><item><title>Tackling Social Medias Hidden Dangers</title><link>https://zietlow.io/library/tackling-social-medias-hidden-dangers/</link><pubDate>Wed, 15 Jan 2025 00:00:00 +0000</pubDate><guid>https://zietlow.io/library/tackling-social-medias-hidden-dangers/</guid><description>&lt;h3 id="recap"&gt;Recap&lt;/h3&gt;
&lt;p&gt;Cal discusses the impact of the youth ban on social media in Australia, and really dives into the big picture of the motivation behind such a new regulation. Discusses downsides of social media, such as the faux-social connections it triggers in our brains, and how this further ties into the loneliness epidemic experienced in America.&lt;/p&gt;
&lt;h3 id="my-notes"&gt;My Notes&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;with social media comes a lot of inherent risk
&lt;ul&gt;
&lt;li&gt;It's like a digital slot machine
&lt;ul&gt;
&lt;li&gt;This is why all social media companies are utilizing algorithmic feeds.&lt;/li&gt;
&lt;li&gt;It's not about serving you something you want to see; it's about pulling the slot machine lever (swiping down) and finding that nugget that feels like the jackpot&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;This is especially a risk for the youth without fully developed frontal cortices&lt;/li&gt;
&lt;li&gt;Uses the phrase &lt;strong&gt;digital fentanyl&lt;/strong&gt; when describing social media use&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;folks taking the other of the argument that social media is a town square
&lt;ul&gt;
&lt;li&gt;social media is not the Internet&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Week 2</title><link>https://zietlow.io/notes/2025/week-2/</link><pubDate>Sun, 12 Jan 2025 08:22:59 -0500</pubDate><guid>https://zietlow.io/notes/2025/week-2/</guid><description>New Year; New Routines</description></item><item><title>Week 1</title><link>https://zietlow.io/notes/2025/week-1/</link><pubDate>Sun, 05 Jan 2025 21:23:16 -0500</pubDate><guid>https://zietlow.io/notes/2025/week-1/</guid><description>Rolling into 2025</description></item><item><title>Week 51</title><link>https://zietlow.io/notes/2024/week-51/</link><pubDate>Fri, 20 Dec 2024 00:00:00 +0000</pubDate><guid>https://zietlow.io/notes/2024/week-51/</guid><description>Keep on keeping on</description></item><item><title>Week 50</title><link>https://zietlow.io/notes/2024/week-50/</link><pubDate>Sun, 15 Dec 2024 00:00:00 +0000</pubDate><guid>https://zietlow.io/notes/2024/week-50/</guid><description>Life happens, working through the advent of code</description></item><item><title>Uses</title><link>https://zietlow.io/uses/</link><pubDate>Wed, 11 Dec 2024 00:00:00 +0000</pubDate><guid>https://zietlow.io/uses/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Inspired by the community posts at &lt;a href="https://uses.tech"&gt;uses.tech&lt;/a&gt;, here's my list of regular tools.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="hardware"&gt;Hardware&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Personal: Lenovo Thinkpad P1 Gen 5
&lt;ul&gt;
&lt;li&gt;OS: Fedora 40&lt;/li&gt;
&lt;li&gt;CPU: Intel i7-12700H&lt;/li&gt;
&lt;li&gt;GPU: Nvidia RTX A1000&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Keyboard: ZSA Moonlander mk1 - Cherry MX Brown&lt;/li&gt;
&lt;li&gt;Alt Keyboard: Keychron v1 75% - Cherry MX Brown&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="software"&gt;Software&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;My most accurate config can be found in my &lt;a href="https://github.com/aczietlow/nix-dev-configuration"&gt;dotfiles repo&lt;/a&gt; and &lt;a href="https://github.com/aczietlow/nvimrc"&gt;neovimrc repo&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;Coding: Neovim and Jetbrains&lt;/li&gt;
&lt;li&gt;Whiteboarding: &lt;a href="https://excalidraw.com/"&gt;excalidraw&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Browser: Brave Browser&lt;/li&gt;
&lt;li&gt;Notes: Obsidian&lt;/li&gt;
&lt;li&gt;NAS: TrueNas&lt;/li&gt;
&lt;li&gt;Tabular Data: Google Sheets&lt;/li&gt;
&lt;li&gt;Passwords: 1Password&lt;/li&gt;
&lt;li&gt;Keyboard Layout: &lt;a href="https://configure.zsa.io/moonlander/layouts/xPpM5/latest/0"&gt;oryx config&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="desk-setup"&gt;Desk Setup&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Veri Desk Electric Standing Desk&lt;/li&gt;
&lt;li&gt;Main Monitor: Samsung 49&amp;quot; G9 VA LCD 5120x1440&lt;/li&gt;
&lt;li&gt;2nd Monitor: LG 35&amp;quot; VA LCD 3440x1440&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="homelab"&gt;Homelab&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Dell PowerEdge R720 - Currently running TrueNas&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Local Dev with NeoVim</title><link>https://zietlow.io/cheatsheets/local-dev/</link><pubDate>Fri, 04 Oct 2024 00:00:00 +0000</pubDate><guid>https://zietlow.io/cheatsheets/local-dev/</guid><description>&lt;h2 id="neovim-basics"&gt;Neovim Basics&lt;/h2&gt;
&lt;div class="three-column"&gt;
 &lt;div class="column__section"&gt;
 &lt;h3 id="open-new-pane"&gt;Open New Pane&lt;/h3&gt;
&lt;p&gt;opens a in-memory file (buffer) and creates a viewport of that buffer (window)&lt;/p&gt;
&lt;div class="highlight_wrap"&gt;
 &lt;div class="highlight_meta"&gt;
 &lt;div class="highlight_copy"&gt;
 &lt;svg class="icon"&gt;
 &lt;use xlink:href="#copy"&gt;&lt;/use&gt;
&lt;/svg&gt;
&lt;pre&gt;&lt;code&gt; &amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
 &lt;/div&gt;
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&amp;lt;c-w&amp;gt; v - split window vertically
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;:vsplit :vs - alais for above
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&amp;lt;c-w&amp;gt;&amp;lt;c-s&amp;gt; - split window in 2 horizontally
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;:split :sp - alais for above 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;:sp +term - opens window and creates new terminal session&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="column__section"&gt;
 &lt;h3 id="navigate-between-nvim-panes"&gt;Navigate between nvim panes&lt;/h3&gt;
&lt;div class="highlight_wrap"&gt;
 &lt;div class="highlight_meta"&gt;
 &lt;div class="highlight_copy"&gt;
 &lt;svg class="icon"&gt;
 &lt;use xlink:href="#copy"&gt;&lt;/use&gt;
&lt;/svg&gt;
&lt;pre&gt;&lt;code&gt; &amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
 &lt;/div&gt;
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&amp;lt;c-w-h&amp;gt; - Moves the cursor to the left pane.
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&amp;lt;c-w-j&amp;gt; - Moves the cursor to the lower pane.
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&amp;lt;c-w-k&amp;gt; - Moves the cursor to the upper pane.
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&amp;lt;c-w-l&amp;gt; - Moves the cursor to the right pane.&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="column__section"&gt;
 &lt;h3 id="fuzzy-finder-telescope"&gt;Fuzzy Finder (Telescope)&lt;/h3&gt;
&lt;div class="highlight_wrap"&gt;
 &lt;div class="highlight_meta"&gt;
 &lt;div class="highlight_copy"&gt;
 &lt;svg class="icon"&gt;
 &lt;use xlink:href="#copy"&gt;&lt;/use&gt;
&lt;/svg&gt;
&lt;pre&gt;&lt;code&gt; &amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
 &lt;/div&gt;
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;:Telescope - to launch
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&amp;lt;c-/&amp;gt; - insert mode while in Telescope
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;? - normal mode while in Telescope
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&amp;lt;c-c&amp;gt; - close telescope&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="column__section"&gt;
 &lt;h3 id="keymaps-for-telescope"&gt;Keymaps for Telescope&lt;/h3&gt;
&lt;div class="highlight_wrap"&gt;
 &lt;div class="highlight_meta"&gt;
 &lt;div class="highlight_copy"&gt;
 &lt;svg class="icon"&gt;
 &lt;use xlink:href="#copy"&gt;&lt;/use&gt;
&lt;/svg&gt;
&lt;pre&gt;&lt;code&gt; &amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
 &lt;/div&gt;
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;space-sh - search help
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;space-sk - search keymaps&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="column__section"&gt;
 &lt;h3 id="harpoon"&gt;Harpoon&lt;/h3&gt;
&lt;div class="highlight_wrap"&gt;
 &lt;div class="highlight_meta"&gt;
 &lt;div class="highlight_copy"&gt;
 &lt;svg class="icon"&gt;
 &lt;use xlink:href="#copy"&gt;&lt;/use&gt;
&lt;/svg&gt;
&lt;pre&gt;&lt;code&gt; &amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
 &lt;/div&gt;
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;space-a - add to list
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&amp;lt;c-e&amp;gt; - show list
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&amp;lt;c-1&amp;gt; - Select 1 from list
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&amp;lt;c-2&amp;gt; - Select 2 from list
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&amp;lt;c-3&amp;gt; - Select 3 from list
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&amp;lt;c-4&amp;gt; - Select 4 from list&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="column__section"&gt;
 &lt;h3 id="todo"&gt;Todo&lt;/h3&gt;
&lt;div class="highlight_wrap"&gt;
 &lt;div class="highlight_meta"&gt;
 &lt;div class="highlight_copy"&gt;
 &lt;svg class="icon"&gt;
 &lt;use xlink:href="#copy"&gt;&lt;/use&gt;
&lt;/svg&gt;
&lt;pre&gt;&lt;code&gt; &amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
 &lt;/div&gt;
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;:TodoQuickFix - list all todos in project
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;:TodoTelescope - list all todos in telescope&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="column__section"&gt;
 &lt;h3 id="coding"&gt;Coding&lt;/h3&gt;
&lt;div class="highlight_wrap"&gt;
 &lt;div class="highlight_meta"&gt;
 &lt;div class="highlight_copy"&gt;
 &lt;svg class="icon"&gt;
 &lt;use xlink:href="#copy"&gt;&lt;/use&gt;
&lt;/svg&gt;
&lt;pre&gt;&lt;code&gt; &amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
 &lt;/div&gt;
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&amp;lt;shift-k&amp;gt; - show function definiton in tooltip&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="column__section"&gt;
 &lt;h3 id="diagnostic"&gt;Diagnostic&lt;/h3&gt;
&lt;div class="highlight_wrap"&gt;
 &lt;div class="highlight_meta"&gt;
 &lt;div class="highlight_copy"&gt;
 &lt;svg class="icon"&gt;
 &lt;use xlink:href="#copy"&gt;&lt;/use&gt;
&lt;/svg&gt;
&lt;pre&gt;&lt;code&gt; &amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
 &lt;/div&gt;
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;space-q - show all diagnostic messages
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;space-sd - search diagnostics
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&amp;lt;c-W&amp;gt;d - show diagnostic under cursor&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="coding"&gt;Coding&lt;/h3&gt;




&lt;div class="highlight_wrap"&gt;
 &lt;div class="highlight_meta"&gt;
 &lt;div class="highlight_copy"&gt;
 &lt;svg class="icon"&gt;
 &lt;use xlink:href="#copy"&gt;&lt;/use&gt;
&lt;/svg&gt;

 &lt;/div&gt;
 &lt;/div&gt;

 
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&amp;lt;shift-k&amp;gt; - show function definiton in tooltip&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="column__section"&gt;
 &lt;h3 id="coding"&gt;Coding&lt;/h3&gt;
&lt;div class="highlight_wrap"&gt;
 &lt;div class="highlight_meta"&gt;
 &lt;div class="highlight_copy"&gt;
 &lt;svg class="icon"&gt;
 &lt;use xlink:href="#copy"&gt;&lt;/use&gt;
&lt;/svg&gt;
&lt;pre&gt;&lt;code&gt; &amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
 &lt;/div&gt;
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&amp;lt;shift-k&amp;gt; - show function definiton in tooltip&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;h2 id="local-dev-tools"&gt;Local Dev Tools&lt;/h2&gt;
&lt;div class="three-column"&gt;
 &lt;div class="column__section"&gt;
 &lt;h3 id="kitty-terminal"&gt;Kitty Terminal&lt;/h3&gt;
&lt;div class="highlight_wrap"&gt;
 &lt;div class="highlight_meta"&gt;
 &lt;div class="highlight_copy"&gt;
 &lt;svg class="icon"&gt;
 &lt;use xlink:href="#copy"&gt;&lt;/use&gt;
&lt;/svg&gt;
&lt;pre&gt;&lt;code&gt; &amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
 &lt;/div&gt;
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&amp;lt;c-shift-t&amp;gt; - new tab
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&amp;lt;c-shift-q&amp;gt; - close tab
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&amp;lt;c-shift-right&amp;gt; - next tab
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&amp;lt;c-shift-left&amp;gt; - previous tab
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&amp;lt;c-shift-enter&amp;gt; - new window
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&amp;lt;c-shift-n&amp;gt; - new os window&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="column__section"&gt;
 &lt;h3 id="tmux"&gt;Tmux&lt;/h3&gt;
&lt;div class="highlight_wrap"&gt;
 &lt;div class="highlight_meta"&gt;
 &lt;div class="highlight_copy"&gt;
 &lt;svg class="icon"&gt;
 &lt;use xlink:href="#copy"&gt;&lt;/use&gt;
&lt;/svg&gt;
&lt;pre&gt;&lt;code&gt; &amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
 &lt;/div&gt;
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;tmux new -s sessionName - Start a new session with name
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;tmux a -t sessionName - Attach to session with given name
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;tmux ls - list all sessions
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;tmux kill-session -t sessionName
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&amp;lt;c-b&amp;gt; + d - detact from session&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;</description></item><item><title>Go Indieauth Client</title><link>https://zietlow.io/projects/go-indieauth-client/</link><pubDate>Wed, 04 Sep 2024 19:17:53 -0400</pubDate><guid>https://zietlow.io/projects/go-indieauth-client/</guid><description>&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;What started as small bug when attempting a Web Sign-In, quickly rabbit holed into attempting to craft an IndieAuth playground for testing Web Sign-In.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://indie-auth.zietlow.cloud"&gt;Demo&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="about-the-project"&gt;About the Project&lt;/h2&gt;
&lt;p&gt;After spending some time on the forums and reading through the documentation, I remained somewhat lost. I identify as someone that learns best by throwing things against a wall to see what will stick. What I found missing was something akin to &lt;a href="https://developers.google.com/oauthplayground/"&gt;Google's OAuth Playground&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Week 26</title><link>https://zietlow.io/notes/2024/week-26/</link><pubDate>Mon, 01 Jul 2024 16:08:35 -0400</pubDate><guid>https://zietlow.io/notes/2024/week-26/</guid><description>Reorganizing after a chaotic June</description></item><item><title>Week 25</title><link>https://zietlow.io/notes/2024/week-25/</link><pubDate>Wed, 26 Jun 2024 18:03:34 -0400</pubDate><guid>https://zietlow.io/notes/2024/week-25/</guid><description>Taking some time away</description></item><item><title>Week 23</title><link>https://zietlow.io/notes/2024/week-23/</link><pubDate>Sun, 09 Jun 2024 18:03:40 -0400</pubDate><guid>https://zietlow.io/notes/2024/week-23/</guid><description>Recharging and finding a center at a tech conference</description></item><item><title>Week 22</title><link>https://zietlow.io/notes/2024/week-22/</link><pubDate>Sun, 02 Jun 2024 05:54:25 -0400</pubDate><guid>https://zietlow.io/notes/2024/week-22/</guid><description>Striking work/life balance</description></item><item><title>Week 21</title><link>https://zietlow.io/notes/2024/week-21/</link><pubDate>Sun, 26 May 2024 21:34:14 -0400</pubDate><guid>https://zietlow.io/notes/2024/week-21/</guid><description>Taking some recharge time</description></item><item><title>Week 20</title><link>https://zietlow.io/notes/2024/week-20/</link><pubDate>Sun, 19 May 2024 06:11:01 -0400</pubDate><guid>https://zietlow.io/notes/2024/week-20/</guid><description>Adjusting work/life balance</description></item><item><title>Add Gift Card to Play Store Account</title><link>https://zietlow.io/posts/2024/add-giftcard-to-play-store-account/</link><pubDate>Mon, 13 May 2024 22:01:51 -0400</pubDate><guid>https://zietlow.io/posts/2024/add-giftcard-to-play-store-account/</guid><description>Step by steps instructions on how to add Google Play gift cards to a google account.</description></item><item><title>Week 19</title><link>https://zietlow.io/notes/2024/week-19/</link><pubDate>Sun, 12 May 2024 00:00:00 +0000</pubDate><guid>https://zietlow.io/notes/2024/week-19/</guid><description>It's been a while since I've been this invested an animals bladder schedule.</description></item><item><title>Week 18</title><link>https://zietlow.io/notes/2024/week-18/</link><pubDate>Sun, 05 May 2024 00:00:00 +0000</pubDate><guid>https://zietlow.io/notes/2024/week-18/</guid><description>Eureka! Sleep deprivation isn't productive</description></item><item><title>Keycloak With Docker Compose</title><link>https://zietlow.io/posts/2024/keycloak-with-docker-compose/</link><pubDate>Sun, 28 Apr 2024 17:33:28 -0400</pubDate><guid>https://zietlow.io/posts/2024/keycloak-with-docker-compose/</guid><description>&lt;p&gt;Keycloak is an open sourced project for identity and access management developed by Red Hat. It is designed to be a versatile and robust IAM solution for both authentication and authorization for apps and services. What follows is a brief guide on how to run Keycloak locally using docker compose.&lt;/p&gt;
&lt;h2 id="docker-compose"&gt;Docker Compose&lt;/h2&gt;
&lt;p&gt;By default, Keycloak will use a dev-file for storage, but for our use case we will be using Postgres. Keycloak does &lt;a href="https://www.keycloak.org/server/db"&gt;support&lt;/a&gt; other databases as well.&lt;/p&gt;</description></item><item><title>Week 17</title><link>https://zietlow.io/notes/2024/week-17/</link><pubDate>Sun, 28 Apr 2024 00:00:00 +0000</pubDate><guid>https://zietlow.io/notes/2024/week-17/</guid><description>Adjusting to a busy schedule with multifaceted challenges</description></item><item><title>Hugo</title><link>https://zietlow.io/cheatsheets/hugo/</link><pubDate>Sat, 27 Apr 2024 16:14:11 -0400</pubDate><guid>https://zietlow.io/cheatsheets/hugo/</guid><description>&lt;div class="three-column"&gt;
 &lt;div class="column__section"&gt;
 &lt;h3 id="compiling-website"&gt;Compiling website&lt;/h3&gt;
&lt;div class="highlight_wrap"&gt;
 &lt;div class="highlight_meta"&gt;
 &lt;div class="highlight_copy"&gt;
 &lt;svg class="icon"&gt;
 &lt;use xlink:href="#copy"&gt;&lt;/use&gt;
&lt;/svg&gt;
&lt;pre&gt;&lt;code&gt; &amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
 &lt;/div&gt;
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Recompile&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;hugo --gc&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="highlight_wrap"&gt;
 &lt;div class="highlight_meta"&gt;
 &lt;div class="highlight_copy"&gt;
 &lt;svg class="icon"&gt;
 &lt;use xlink:href="#copy"&gt;&lt;/use&gt;
&lt;/svg&gt;
&lt;pre&gt;&lt;code&gt; &amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
 &lt;/div&gt;
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Recompile in developer friendly mode&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# -D Enabled compiling drafts&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# -F content with future post dates&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# - ignore cache&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;hugo -D -F --ignoreCache&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="highlight_wrap"&gt;
 &lt;div class="highlight_meta"&gt;
 &lt;div class="highlight_copy"&gt;
 &lt;svg class="icon"&gt;
 &lt;use xlink:href="#copy"&gt;&lt;/use&gt;
&lt;/svg&gt;
&lt;pre&gt;&lt;code&gt; &amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
 &lt;/div&gt;
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Recompile assets for production&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# - remove unused cache after build&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# - minify supported output&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;hugo --gc --minify&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="column__section"&gt;
 &lt;h3 id="working-locally"&gt;Working locally&lt;/h3&gt;
&lt;div class="highlight_wrap"&gt;
 &lt;div class="highlight_meta"&gt;
 &lt;div class="highlight_copy"&gt;
 &lt;svg class="icon"&gt;
 &lt;use xlink:href="#copy"&gt;&lt;/use&gt;
&lt;/svg&gt;
&lt;pre&gt;&lt;code&gt; &amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
 &lt;/div&gt;
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Run server locally with live reloading&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# e.g. http://localhost:1313&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;hugo server&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="highlight_wrap"&gt;
 &lt;div class="highlight_meta"&gt;
 &lt;div class="highlight_copy"&gt;
 &lt;svg class="icon"&gt;
 &lt;use xlink:href="#copy"&gt;&lt;/use&gt;
&lt;/svg&gt;
&lt;pre&gt;&lt;code&gt; &amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
 &lt;/div&gt;
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Select non-default theme&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# matches directory within /themes&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;hugo server -t hugo-clarity&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="highlight_wrap"&gt;
 &lt;div class="highlight_meta"&gt;
 &lt;div class="highlight_copy"&gt;
 &lt;svg class="icon"&gt;
 &lt;use xlink:href="#copy"&gt;&lt;/use&gt;
&lt;/svg&gt;
&lt;pre&gt;&lt;code&gt; &amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
 &lt;/div&gt;
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Work via local webserver&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# - enables drafts&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# - enables future dated content&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;hugo server -D -F&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="column__section"&gt;
 &lt;h3 id="letting-hugo-scaffold-new-content"&gt;Letting Hugo Scaffold New Content&lt;/h3&gt;
&lt;div class="highlight_wrap"&gt;
 &lt;div class="highlight_meta"&gt;
 &lt;div class="highlight_copy"&gt;
 &lt;svg class="icon"&gt;
 &lt;use xlink:href="#copy"&gt;&lt;/use&gt;
&lt;/svg&gt;
&lt;pre&gt;&lt;code&gt; &amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
 &lt;/div&gt;
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Generate new content&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# - automatically sets the date&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Selects the kind of post based on path&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Attempts to find &amp;amp; use archetype&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="sb"&gt;`&lt;/span&gt;hugo new projects/some-new-project.md&lt;span class="sb"&gt;`&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="highlight_wrap"&gt;
 &lt;div class="highlight_meta"&gt;
 &lt;div class="highlight_copy"&gt;
 &lt;svg class="icon"&gt;
 &lt;use xlink:href="#copy"&gt;&lt;/use&gt;
&lt;/svg&gt;
&lt;pre&gt;&lt;code&gt; &amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
 &lt;/div&gt;
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# A kind of post can be specific with -k&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="sb"&gt;`&lt;/span&gt;hugo new -k gallery blog/photo-gallery.md&lt;span class="sb"&gt;`&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;

&lt;h2 id="theming"&gt;Theming&lt;/h2&gt;
&lt;div class="three-column"&gt;
 &lt;div class="column__section"&gt;
 &lt;h3 id="dumping-variable-in-theme"&gt;Dumping variable in theme&lt;/h3&gt;
&lt;div class="highlight_wrap"&gt;
 &lt;div class="highlight_meta"&gt;
 &lt;div class="highlight_copy"&gt;
 &lt;svg class="icon"&gt;
 &lt;use xlink:href="#copy"&gt;&lt;/use&gt;
&lt;/svg&gt;
&lt;pre&gt;&lt;code&gt; &amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
 &lt;/div&gt;
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-go-html-template" data-lang="go-html-template"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;&amp;lt;!--Display variable debug info--&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;pre&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;&lt;span class="cp"&gt;{{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;debug&lt;/span&gt;&lt;span class="na"&gt;.Dump&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="na"&gt;.Params&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="cp"&gt;}}&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;pre&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="column__section"&gt;
 &lt;h3 id="conditional-check-for-homepage"&gt;Conditional check for homepage&lt;/h3&gt;
&lt;div class="highlight_wrap"&gt;
 &lt;div class="highlight_meta"&gt;
 &lt;div class="highlight_copy"&gt;
 &lt;svg class="icon"&gt;
 &lt;use xlink:href="#copy"&gt;&lt;/use&gt;
&lt;/svg&gt;
&lt;pre&gt;&lt;code&gt; &amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
 &lt;/div&gt;
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-go-html-template" data-lang="go-html-template"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;&amp;lt;!--Available within Page Object --&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cp"&gt;{{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="na"&gt;.IsHome&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="cp"&gt;}}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;h1&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;Homepage!&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;h1&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cp"&gt;{{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;end&lt;/span&gt;&lt;span class="err"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="trim-whtie-space"&gt;Trim whtie space&lt;/h3&gt;
&lt;div class="column__section"&gt;
&lt;div class="highlight_wrap"&gt;
 &lt;div class="highlight_meta"&gt;
 &lt;div class="highlight_copy"&gt;
 &lt;svg class="icon"&gt;
 &lt;use xlink:href="#copy"&gt;&lt;/use&gt;
&lt;/svg&gt;
&lt;pre&gt;&lt;code&gt; &amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
 &lt;/div&gt;
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;{{ Prints &amp;#34;as-is&amp;#34; }}
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;{{- Trims white space before }}
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;{{ Trims white space after -}}
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;{{- Trims white space before and after -}}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;</description></item><item><title>IT Doesn't Matter</title><link>https://zietlow.io/library/it-doesnt-matter/</link><pubDate>Mon, 22 Apr 2024 00:00:00 +0000</pubDate><guid>https://zietlow.io/library/it-doesnt-matter/</guid><description>&lt;p&gt;Spoiler, it turns our IT does indeed matter, and really isn't a cost center. At least that's true of large scalable organizations.&lt;/p&gt;</description></item><item><title>Week 16</title><link>https://zietlow.io/notes/2024/week-16/</link><pubDate>Sun, 21 Apr 2024 18:15:51 -0400</pubDate><guid>https://zietlow.io/notes/2024/week-16/</guid><description>Weekly blogging</description></item><item><title>It's not always DNS</title><link>https://zietlow.io/library/not-always-dns/</link><pubDate>Sun, 21 Apr 2024 00:00:00 +0000</pubDate><guid>https://zietlow.io/library/not-always-dns/</guid><description>&lt;p&gt;It's been 0 days since it was DNS.&lt;/p&gt;</description></item><item><title>Team of Teams</title><link>https://zietlow.io/books/team-of-teams/</link><pubDate>Sun, 21 Apr 2024 00:00:00 +0000</pubDate><guid>https://zietlow.io/books/team-of-teams/</guid><description/></item><item><title>The Narrow Road Between Desires</title><link>https://zietlow.io/books/the-narrow-road/</link><pubDate>Sun, 21 Apr 2024 00:00:00 +0000</pubDate><guid>https://zietlow.io/books/the-narrow-road/</guid><description/></item><item><title>Scrivener</title><link>https://zietlow.io/projects/scrivener/</link><pubDate>Fri, 19 Apr 2024 00:00:00 +0000</pubDate><guid>https://zietlow.io/projects/scrivener/</guid><description>&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;A utility to transcode ripped DVD and Blu-ray media MKV into MP4 containers. This would be useful for converting physical DVDs into stream ready media for Jellyfin or Plex&lt;/p&gt;
&lt;p&gt;&lt;img src="https://raw.githubusercontent.com/aczietlow/scrivener/main/MKV%20conversion.jpg" alt="Flow chart of logic for transcoding physical media"&gt;&lt;/p&gt;
&lt;h3 id="why"&gt;Why&lt;/h3&gt;
&lt;p&gt;I was struggling with getting &lt;a href="https://github.com/automatic-ripping-machine/automatic-ripping-machine"&gt;automatic-ripping-machine&lt;/a&gt; to work for my use case, and I wanted to learn more about video and audio codecs as well as tools like ffmpeg.&lt;/p&gt;</description></item><item><title>Cynefin Is A GAMECHANGER For Software Developers</title><link>https://zietlow.io/library/cynefine-a-game-changer/</link><pubDate>Wed, 17 Apr 2024 00:00:00 +0000</pubDate><guid>https://zietlow.io/library/cynefine-a-game-changer/</guid><description>&lt;p&gt;This is interesting marking the difference between complication and complexity.&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
 &lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="lazy" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/MRwZQGdllDY?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
 &lt;/div&gt;</description></item><item><title>Go Fix Social Links</title><link>https://zietlow.io/projects/gofixsocial/</link><pubDate>Thu, 04 Apr 2024 00:00:00 +0000</pubDate><guid>https://zietlow.io/projects/gofixsocial/</guid><description>&lt;p&gt;While I don't really use social media much these days, my friends and co-workers are constantly sharing links from Twitter, Instagram, Tiktok, and more via Discord. The challenge for me, and all of us really is that Discord doesn't handle the oembed from social media sites well in the app. More likely the cause is that they don't provide accurate omebed data. After all if you watch an embedded short, or view a spicy meme without going to these sites, how can they collect your data, or possible serve any adds?&lt;/p&gt;</description></item><item><title>Charleston Foodie List</title><link>https://zietlow.io/posts/2024/charleston-food/</link><pubDate>Sat, 23 Mar 2024 00:00:00 +0000</pubDate><guid>https://zietlow.io/posts/2024/charleston-food/</guid><description>&lt;p&gt;It's a Thursday night, and I'm looking for a great dining experience with my wife. A colleague is in town and wants to sample &amp;quot;a unique Charleston experience.&amp;quot; Most common yet, friends are coming in from up north and are asking for a recommendation. What follows is my personal list of food recommendations for the Charleston area.&lt;/p&gt;
&lt;p&gt;&lt;img src="../../../images/blogs/pop-tart.jpg" alt="Gourmet Pop-tart"&gt;&lt;/p&gt;
&lt;h3 id="seafood"&gt;Seafood&lt;/h3&gt;
&lt;dl&gt;
&lt;dt&gt;Fleet Landing $$ &lt;a href="https://g.co/kgs/DNCkcya"&gt;reviews&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;on the water, fresh off the boat&lt;/dd&gt;
&lt;dt&gt;167 RAW $$$ &lt;a href="https://g.co/kgs/AAAhFhx"&gt;reviews&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;northern east coast seafood (lobster rolls) pretty good po boys&lt;/dd&gt;
&lt;dt&gt;Cod Father $ &lt;a href="https://g.co/kgs/bPt85V8"&gt;reviews&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;top rate British fish and chips&lt;/dd&gt;
&lt;dt&gt;The Ordinary $$$ &lt;a href="https://g.co/kgs/BNw3Qk2"&gt;reviews&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;IDK it's on my list per a recommendation&lt;/dd&gt;
&lt;/dl&gt;
&lt;h3 id="fun--experience"&gt;Fun / Experience&lt;/h3&gt;
&lt;dl&gt;
&lt;dt&gt;EO (Edmunds Oast) $$$ &lt;a href="https://g.co/kgs/C1Ps6B2"&gt;reviews&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;upscale food + brewery&lt;/dd&gt;
&lt;dt&gt;FIG $$$$ &lt;a href="https://g.co/kgs/mVRKwP6"&gt;reviews&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;local farm to table type place, menu rotates out A LOT, but food is super good and fresh&lt;/dd&gt;
&lt;dt&gt;Church and Union $$$ &lt;a href="https://g.co/kgs/gq7Mgse"&gt;reviews&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;american and breakfast food, served from inside an old church&lt;/dd&gt;
&lt;dt&gt;R Kitchen $$$ &lt;a href="https://g.co/kgs/RnFqW1g"&gt;reviews&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;New menu’s nightly&lt;/dd&gt;
&lt;dt&gt;Circa 1886 $$$$ &lt;a href="https://g.co/kgs/sPdG2Ek"&gt;reviews&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;Low country seafood (Fancy AF)&lt;/dd&gt;
&lt;dt&gt;The Obstinate Daughter $$ &lt;a href="https://g.co/kgs/HfE2bzP"&gt;reviews&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;Low Country comfort food&lt;/dd&gt;
&lt;dd&gt;Great atmosphere, great location&lt;/dd&gt;
&lt;dd&gt;Interrior feels a little cramped&lt;/dd&gt;
&lt;dd&gt;sells ice cream downstairs&lt;/dd&gt;
&lt;dt&gt;Tattooed Moose $$ &lt;a href="https://g.co/kgs/gXHDcxr"&gt;reviews&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;American Food&lt;/dd&gt;
&lt;dd&gt;Recommendation based on duck sandwhich and duck fat fries&lt;/dd&gt;
&lt;/dl&gt;
&lt;h3 id="french"&gt;French&lt;/h3&gt;
&lt;dl&gt;
&lt;dt&gt;Maison $$$ &lt;a href="https://g.co/kgs/i5nkhQC"&gt;reviews&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;recommended to me multiple times&lt;/dd&gt;
&lt;dt&gt;Chez Nous $$$ &lt;a href="https://g.co/kgs/6fY4qEo"&gt;reviews&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;French&lt;/dd&gt;
&lt;dt&gt;Vern’s $$$ &lt;a href="https://g.co/kgs/AarLV9E"&gt;reviews&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;French/ European&lt;/dd&gt;
&lt;/dl&gt;
&lt;h3 id="italian"&gt;Italian&lt;/h3&gt;
&lt;dl&gt;
&lt;dt&gt;Wild Olive $$$ &lt;a href="https://g.co/kgs/v3UntU5"&gt;reviews&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;Rustic-Chic Italian&lt;/dd&gt;
&lt;dt&gt;Le Larfalle $$$ &lt;a href="https://g.co/kgs/KqkNegB"&gt;reviews&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;Regional Italian, cool vibes&lt;/dd&gt;
&lt;dt&gt;Fannie &amp;amp; the Fox $$$ &lt;a href="https://g.co/kgs/LMzX98D"&gt;reviews&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;breakfast and dinner, wood fire pizza and hideaway bar&lt;/dd&gt;
&lt;/dl&gt;
&lt;h3 id="steak"&gt;Steak&lt;/h3&gt;
&lt;dl&gt;
&lt;dt&gt;Halls Chop House $$$$ &lt;a href="https://g.co/kgs/RBZEXTf"&gt;reviews&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;it's a steakhouse, not much to say&lt;/dd&gt;
&lt;dt&gt;Oak Steakhouse $$$$ &lt;a href="https://g.co/kgs/FEuxXSP"&gt;reviews&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;it's a steakhouse, not much to say&lt;/dd&gt;
&lt;/dl&gt;
&lt;h3 id="burgers"&gt;Burgers&lt;/h3&gt;
&lt;dl&gt;
&lt;dt&gt;Matt's Burgers $ &lt;a href="https://g.co/kgs/iH2LeH2"&gt;reviews&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;No frills, nothing fancy, just a classic, delicious burger&lt;/dd&gt;
&lt;dt&gt;Little Jacks Tavern $$ &lt;a href="https://g.co/kgs/JM56ENi"&gt;reviews&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;Comfort food and good burgers&lt;/dd&gt;
&lt;/dl&gt;
&lt;h3 id="tapas"&gt;Tapas&lt;/h3&gt;
&lt;dl&gt;
&lt;dt&gt;Malagón $$$ &lt;a href="https://g.co/kgs/cRKzASJ"&gt;reviews&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;haven't gone but heard good things&lt;/dd&gt;
&lt;/dl&gt;
&lt;h3 id="bbq"&gt;BBQ&lt;/h3&gt;
&lt;dl&gt;
&lt;dt&gt;Lewis Barbeque $$ &lt;a href="https://g.co/kgs/pdmjsRY"&gt;reviews&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;The definitive local best bbq in downtown&lt;/dd&gt;
&lt;dd&gt;Proper Texas Style BBQ&lt;/dd&gt;
&lt;dd&gt;Expect a wait in line&lt;/dd&gt;
&lt;dt&gt;HomeTeam $$ &lt;a href="https://g.co/kgs/7Fq4crt"&gt;reviews&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;haven't been (yet), but on the top of our list&lt;/dd&gt;
&lt;/dl&gt;
&lt;h3 id="soul-food"&gt;Soul Food&lt;/h3&gt;
&lt;dl&gt;
&lt;dt&gt;Nigel's Good Food $$ &lt;a href="https://g.co/kgs/JuXCteJ"&gt;reviews&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;Classic southern soul food&lt;/dd&gt;
&lt;dd&gt;Meat n 3 kind of place&lt;/dd&gt;
&lt;/dl&gt;
&lt;h3 id="bars"&gt;Bars&lt;/h3&gt;
&lt;dl&gt;
&lt;dt&gt;Recovery Room &lt;a href="https://g.co/kgs/PuA9kJD"&gt;reviews&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;dive bar. cool place, weirdly into PBRs, has foosball and pool&lt;/dd&gt;
&lt;dt&gt;The Alley &lt;a href="https://g.co/kgs/fZ7dyUC"&gt;reviews&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;bar + okay food. Has bowling, classic arcade cabinets, Skee-Ball, pinball ping pong tables, and lots of space (covid may have changed somethings)&lt;/dd&gt;
&lt;dt&gt;Rusty Bull &lt;a href="https://g.co/kgs/V5PVHa1"&gt;reviews&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;fun bar, good beer&lt;/dd&gt;
&lt;dt&gt;The Whale &lt;a href="https://g.co/kgs/ZHkpi6T"&gt;reviews&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;craft beer collective&lt;/dd&gt;
&lt;dt&gt;Paddock &amp;amp; Whiskey &lt;a href="https://g.co/kgs/Sooigzh"&gt;reviews&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;Wide whiskey &amp;amp; bourbon selection&lt;/dd&gt;
&lt;/dl&gt;
&lt;h3 id="brunch"&gt;Brunch&lt;/h3&gt;
&lt;p&gt;&lt;em&gt;If it doesn't include mimosa's it's just a late breakfast&lt;/em&gt;&lt;/p&gt;</description></item><item><title>PhishSlapped</title><link>https://zietlow.io/projects/phishslapped/</link><pubDate>Sat, 03 Feb 2024 00:00:00 +0000</pubDate><guid>https://zietlow.io/projects/phishslapped/</guid><description>&lt;p&gt;A repo I use for testing sending of phishing emails via gophish, and mailhog.&lt;/p&gt;</description></item><item><title>Filtering (Fake) Phishing Emails</title><link>https://zietlow.io/posts/2024/filtering-phishing-emails/</link><pubDate>Wed, 31 Jan 2024 00:00:00 +0000</pubDate><guid>https://zietlow.io/posts/2024/filtering-phishing-emails/</guid><description>&lt;p&gt;There are times throughout the year at work when I will unknowingly be subjected to &lt;a href="https://en.wikipedia.org/wiki/Red_team"&gt;red team&lt;/a&gt; testing in the form of phishing email attempts. These are vital in validating an organization's ability to detect and respond to unfriendly actors attempting to gain access to unauthorized data. While keeping these detection skills sharp is critical, what follows is how I've mostly automated the detection of these red team phishing campaigns.&lt;/p&gt;
&lt;p&gt;Consider the following email:&lt;/p&gt;</description></item><item><title>Jellyfin Joy: How to Turn Old DVDs into Your Personal Streaming Library</title><link>https://zietlow.io/posts/jellyfin/</link><pubDate>Fri, 29 Sep 2023 00:00:00 +0000</pubDate><guid>https://zietlow.io/posts/jellyfin/</guid><description>&lt;p&gt;With streaming services like Netflix clamping down on password sharing, I've been reevaluating the number of subscriptions I maintain. This is less about being stingy and more about making TV time something that is more intentional. I want to avoid the &amp;quot;are you still watching&amp;quot; effect of solving boredom by mindlessly rabbit-holing through a binge fest on Netflix. I much more enjoy explicitly sitting down to watch a specific &amp;quot;thing&amp;quot; and move on with my life.&lt;/p&gt;</description></item><item><title>2023 South East Linux Fest</title><link>https://zietlow.io/posts/2023-self/</link><pubDate>Fri, 09 Jun 2023 00:00:00 +0000</pubDate><guid>https://zietlow.io/posts/2023-self/</guid><description>&lt;p&gt;Because I can't help myself, I've created a schedule for SELF 2023. I've also included a PDF version of the schedule for those who want to print it out.&lt;/p&gt;
&lt;script type="text/javascript" src= '/js/pdf-js/build/pdf.js'&gt;&lt;/script&gt;

&lt;style&gt;
 #embed-pdf-container {
 position: relative;
 width: 100%;
 height: auto;
 min-height: 20vh;
 
 }

 .pdf-canvas {
 border: 1px solid black;
 direction: ltr;
 width: 100%;
 height: auto;
 display: none;
 }

 #the-canvas {
 border: 1px solid black;
 direction: ltr;
 width: 100%;
 height: auto;
 display: none;
 }


 .pdf-loadingWrapper {
 display: none;
 justify-content: center;
 align-items: center;
 width: 100%;
 height: 350px;
 }

 .pdf-loading {
 display: inline-block;
 width: 50px;
 height: 50px;
 border: 3px solid #d2d0d0;;
 border-radius: 50%;
 border-top-color: #383838;
 animation: spin 1s ease-in-out infinite;
 -webkit-animation: spin 1s ease-in-out infinite;
 }

 



 #overlayText {
 word-wrap: break-word;
 display: grid;
 justify-content: end;
 }

 #overlayText a {
 position: relative;
 top: 10px;
 right: 4px;
 color: #000;
 margin: auto;
 background-color: #eeeeee;
 padding: 0.3em 1em;
 border: solid 2px;
 border-radius: 12px;
 border-color: #00000030;
 text-decoration: none;
 }

 #overlayText svg {
 height: clamp(1em, 2vw, 1.4em);
 width: clamp(1em, 2vw, 1.4em);
 }



 @keyframes spin {
 to { -webkit-transform: rotate(360deg); }
 }
 @-webkit-keyframes spin {
 to { -webkit-transform: rotate(360deg); }
 }
&lt;/style&gt;&lt;div class="embed-pdf-container" id="embed-pdf-container-6c9932af"&gt;
&lt;div class="pdf-loadingWrapper" id="pdf-loadingWrapper-6c9932af"&gt;
&lt;div class="pdf-loading" id="pdf-loading-6c9932af"&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div id="overlayText"&gt;
 &lt;a href="../../pdfs/SELF-2023-Schedule.pdf" aria-label="Download" download&gt;
 &lt;svg aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18"&gt;
 &lt;path d="M9 13c.3 0 .5-.1.7-.3L15.4 7 14 5.6l-4 4V1H8v8.6l-4-4L2.6 7l5.7 5.7c.2.2.4.3.7.3zm-7 2h14v2H2z" /&gt;
 &lt;/svg&gt;
 &lt;/a&gt;
&lt;/div&gt;
&lt;canvas class="pdf-canvas" id="pdf-canvas-6c9932af"&gt;&lt;/canvas&gt;
&lt;/div&gt;

&lt;div class="pdf-paginator" id="pdf-paginator-6c9932af"&gt;
&lt;button id="pdf-prev-6c9932af"&gt;Previous&lt;/button&gt;
&lt;button id="pdf-next-6c9932af"&gt;Next&lt;/button&gt; &amp;nbsp; &amp;nbsp;
&lt;span&gt;
 &lt;span class="pdf-pagenum" id="pdf-pagenum-6c9932af"&gt;&lt;/span&gt; / &lt;span class="pdf-pagecount" id="pdf-pagecount-6c9932af"&gt;&lt;/span&gt;
&lt;/span&gt;
&lt;a class="pdf-source" id="pdf-source-6c9932af" href="../../pdfs/SELF-2023-Schedule.pdf"&gt;[pdf]&lt;/a&gt;
&lt;/div&gt;

&lt;noscript&gt;
 View the PDF file &lt;a class="pdf-source" id="pdf-source-noscript-6c9932af" href="../../pdfs/SELF-2023-Schedule.pdf"&gt;here&lt;/a&gt;.
&lt;/noscript&gt;

&lt;script type="text/javascript"&gt;
 (function(){
 var url = '..\/..\/pdfs\/SELF-2023-Schedule.pdf';

 var hidePaginator = "true" === "true";
 var hideLoader = "" === "true";
 var selectedPageNum = parseInt("") || 1;

 
 var pdfjsLib = window['pdfjs-dist/build/pdf'];

 
 if (pdfjsLib.GlobalWorkerOptions.workerSrc == '')
 pdfjsLib.GlobalWorkerOptions.workerSrc = "https:\/\/zietlow.io\/" + 'js/pdf-js/build/pdf.worker.js';

 
 var pdfDoc = null,
 pageNum = selectedPageNum,
 pageRendering = false,
 pageNumPending = null,
 scale = 3,
 canvas = document.getElementById('pdf-canvas-6c9932af'),
 ctx = canvas.getContext('2d'),
 paginator = document.getElementById("pdf-paginator-6c9932af"),
 loadingWrapper = document.getElementById('pdf-loadingWrapper-6c9932af');


 
 showPaginator();
 showLoader();

 

 function renderPage(num) {
 pageRendering = true;
 
 pdfDoc.getPage(num).then(function(page) {
 var viewport = page.getViewport({scale: scale});
 canvas.height = viewport.height;
 canvas.width = viewport.width;

 
 var renderContext = {
 canvasContext: ctx,
 viewport: viewport
 };
 var renderTask = page.render(renderContext);

 
 renderTask.promise.then(function() {
 pageRendering = false;
 showContent();

 if (pageNumPending !== null) {
 
 renderPage(pageNumPending);
 pageNumPending = null;
 }
 });
 });

 
 document.getElementById('pdf-pagenum-6c9932af').textContent = num;
 }

 

 function showContent() {
 loadingWrapper.style.display = 'none';
 canvas.style.display = 'block';
 }

 

 function showLoader() {
 if(hideLoader) return
 loadingWrapper.style.display = 'flex';
 canvas.style.display = 'none';
 }

 

 function showPaginator() {
 if(hidePaginator) return
 paginator.style.display = 'block';
 }

 

 function queueRenderPage(num) {
 if (pageRendering) {
 pageNumPending = num;
 } else {
 renderPage(num);
 }
 }

 

 function onPrevPage() {
 if (pageNum &lt;= 1) {
 return;
 }
 pageNum--;
 queueRenderPage(pageNum);
 }
 document.getElementById('pdf-prev-6c9932af').addEventListener('click', onPrevPage);

 

 function onNextPage() {
 if (pageNum &gt;= pdfDoc.numPages) {
 return;
 }
 pageNum++;
 queueRenderPage(pageNum);
 }
 document.getElementById('pdf-next-6c9932af').addEventListener('click', onNextPage);

 

 pdfjsLib.getDocument(url).promise.then(function(pdfDoc_) {
 pdfDoc = pdfDoc_;
 var numPages = pdfDoc.numPages;
 document.getElementById('pdf-pagecount-6c9932af').textContent = numPages;

 
 if(pageNum &gt; numPages) {
 pageNum = numPages
 }

 
 renderPage(pageNum);
 });
 })();
&lt;/script&gt;</description></item><item><title>Go Basics</title><link>https://zietlow.io/cheatsheets/go-basics/</link><pubDate>Sun, 12 Sep 2021 00:00:00 +0000</pubDate><guid>https://zietlow.io/cheatsheets/go-basics/</guid><description>&lt;div class="three-column"&gt;
 &lt;div class="column__section"&gt;
 &lt;h3 id="variables"&gt;Variables&lt;/h3&gt;
&lt;p&gt;Strictly Typed and Compiled&lt;/p&gt;
&lt;div class="highlight_wrap"&gt;
 &lt;div class="highlight_meta"&gt;
 &lt;div class="highlight_copy"&gt;
 &lt;svg class="icon"&gt;
 &lt;use xlink:href="#copy"&gt;&lt;/use&gt;
&lt;/svg&gt;
&lt;pre&gt;&lt;code&gt; &amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
 &lt;/div&gt;
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-go" data-lang="go"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kd"&gt;var&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;a&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kt"&gt;bool&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;a&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;:=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;fmt&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;#34;and&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c1"&gt;// false and true&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="highlight_wrap"&gt;
 &lt;div class="highlight_meta"&gt;
 &lt;div class="highlight_copy"&gt;
 &lt;svg class="icon"&gt;
 &lt;use xlink:href="#copy"&gt;&lt;/use&gt;
&lt;/svg&gt;
&lt;pre&gt;&lt;code&gt; &amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
 &lt;/div&gt;
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-go" data-lang="go"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kd"&gt;type&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;banana&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kd"&gt;var&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;banana&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;fmt&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// 0&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;fmt&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Printf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;%T\n&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// main.banana&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="column__section"&gt;
 &lt;h3 id="functions"&gt;Functions&lt;/h3&gt;
&lt;p&gt;function singature &lt;code&gt;func functionname(parametername type) returntype {&lt;/code&gt;&lt;/p&gt;
&lt;div class="highlight_wrap"&gt;
 &lt;div class="highlight_meta"&gt;
 &lt;div class="highlight_copy"&gt;
 &lt;svg class="icon"&gt;
 &lt;use xlink:href="#copy"&gt;&lt;/use&gt;
&lt;/svg&gt;
&lt;pre&gt;&lt;code&gt; &amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
 &lt;/div&gt;
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-go" data-lang="go"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kd"&gt;func&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;addNum&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;a&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kd"&gt;var&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;sum&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;a&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;sum&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="column__section"&gt;
 &lt;h3 id="hello-world"&gt;hello world&lt;/h3&gt;
&lt;div class="highlight_wrap"&gt;
 &lt;div class="highlight_meta"&gt;
 &lt;div class="highlight_copy"&gt;
 &lt;svg class="icon"&gt;
 &lt;use xlink:href="#copy"&gt;&lt;/use&gt;
&lt;/svg&gt;
&lt;pre&gt;&lt;code&gt; &amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
 &lt;/div&gt;
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-go" data-lang="go"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;package&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;main&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;#34;fmt&amp;#34;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kd"&gt;func&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;fmt&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Printf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;Hello, Chris.\n&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;

&lt;h2 id="composite-data-types"&gt;Composite Data Types&lt;/h2&gt;
&lt;div class="two-column"&gt;
 &lt;div class="column__section"&gt;
 &lt;h3 id="arrays"&gt;Arrays&lt;/h3&gt;
&lt;p&gt;Arrays are fixed length&lt;/p&gt;</description></item><item><title>GoGoPing</title><link>https://zietlow.io/projects/gogoping/</link><pubDate>Sat, 21 Aug 2021 00:00:00 +0000</pubDate><guid>https://zietlow.io/projects/gogoping/</guid><description>&lt;p&gt;A rewrite of the ping application from C to go. Create a tool that is useful in debugging connections to the Internet.&lt;/p&gt;
&lt;p&gt;At the time of writing this I had a specific use case that allowing ping to utilize concurrency for very specific testing (scaling network pings to multiple hosts in as efficient a way as possible). This later turned into nothing more than an opportunity for me to write more Go code and build a better understanding of berkley sockets and UDP.&lt;/p&gt;</description></item><item><title>Lightbox Gallery with Go Templates in Hugo</title><link>https://zietlow.io/posts/hugo-photo-gallery/</link><pubDate>Mon, 18 Jan 2021 00:00:00 +0000</pubDate><guid>https://zietlow.io/posts/hugo-photo-gallery/</guid><description>&lt;p&gt;I typically spend my weekends shooting landscape photography or hacking away my newest side project. Trying to start the new year off by killing two birds with one stone, I embarked to build a lightweight lightbox component into my fresh hugo blog.&lt;/p&gt;
&lt;p&gt;I want a reusable component, that once complete will allow me to quickly drop it into a future blog post in order to share a new series of photos. Given that I chose Hugo based on the ease of writing content in Markdown, I didn't want to deviate from that paradigm. Not wanting to add complex markup with my markdown content files, I quickly landed on implementing new &lt;em&gt;Shortcodes&lt;/em&gt;.&lt;/p&gt;</description></item><item><title>About</title><link>https://zietlow.io/about/</link><pubDate>Fri, 01 Jan 2021 00:00:00 +0000</pubDate><guid>https://zietlow.io/about/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Curious about the tech I use? Checkout my &lt;a href="https://zietlow.io/uses/"&gt;uses page&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I enjoy a good candlelit dinner, long walks on the beach, and diving head first into interesting code. I believe the oxford comma isn't optional and that there's a special place in hell for people that don't rinse ketchup off of their plates&lt;/p&gt;
&lt;p&gt;I use this blog to document interesting things I build, a form of &amp;quot;blogumentation&amp;quot;, chronicle my adventures, share cute puppy pictures, and occasionally share my opinions.&lt;/p&gt;</description></item><item><title/><link>https://zietlow.io/archives/</link><pubDate>Tue, 28 May 2019 00:00:00 +0000</pubDate><guid>https://zietlow.io/archives/</guid><description/></item><item><title>2019 East Coast Drupal Camp Guide</title><link>https://zietlow.io/posts/2019-drupal-camp-season/</link><pubDate>Fri, 01 Feb 2019 00:00:00 +0000</pubDate><guid>https://zietlow.io/posts/2019-drupal-camp-season/</guid><description>&lt;p&gt;East Coast Drupal's guide to camps.&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Event&lt;/th&gt;
 &lt;th&gt;Start Date&lt;/th&gt;
 &lt;th&gt;End Date&lt;/th&gt;
 &lt;th&gt;CFP Deadline&lt;/th&gt;
 &lt;th&gt;Locale&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;a href="https://www.drupalcampnj.org"&gt;Drupal Camp New Jersey&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;02/02/2019&lt;/td&gt;
 &lt;td&gt;02/02/2019&lt;/td&gt;
 &lt;td&gt;Closed&lt;/td&gt;
 &lt;td&gt;Princeton, NJ&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;a href="https://www.fldrupal.camp"&gt;Florida Drupal Camp&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;02/15/2019&lt;/td&gt;
 &lt;td&gt;02/17/2019&lt;/td&gt;
 &lt;td&gt;Closed&lt;/td&gt;
 &lt;td&gt;Orlando, FL&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;a href="https://events.drupal.org/drupalcon"&gt;Drupal Con&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;04/08/2019&lt;/td&gt;
 &lt;td&gt;04/12/2019&lt;/td&gt;
 &lt;td&gt;Closed&lt;/td&gt;
 &lt;td&gt;Seattle, WA&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;a href="https://www.drupaldelphia.org/"&gt;Drupaldelphia&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;05/10/2019&lt;/td&gt;
 &lt;td&gt;05/10/2019&lt;/td&gt;
 &lt;td&gt;Closed&lt;/td&gt;
 &lt;td&gt;Philadelphia, PA&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;a href="https://www.drupalcampchattanooga.com"&gt;Drupal Camp Chattanooga&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;06/08/2019&lt;/td&gt;
 &lt;td&gt;Closed&lt;/td&gt;
 &lt;td&gt;Closed&lt;/td&gt;
 &lt;td&gt;Chattanooga, TN&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;a href="https://www.drupalasheville.com"&gt;Drupal Camp Asheville&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;07/12/2019&lt;/td&gt;
 &lt;td&gt;07/14/2019&lt;/td&gt;
 &lt;td&gt;Closed&lt;/td&gt;
 &lt;td&gt;Asheville, NC&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;a href="https://www.drupalgovcon.org"&gt;Drupal Gov Con&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;07/24/2019&lt;/td&gt;
 &lt;td&gt;07/26/2019&lt;/td&gt;
 &lt;td&gt;Closed&lt;/td&gt;
 &lt;td&gt;Washington, D.C.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;a href="https://decoupleddays.com"&gt;Decoupled Drupal Days&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;~Aug *&lt;/td&gt;
 &lt;td&gt;~Aug *&lt;/td&gt;
 &lt;td&gt;Closed&lt;/td&gt;
 &lt;td&gt;NYC, NY&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;a href="https://www.bmoredrupal.com"&gt;Drupal Camp Baltimore&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;~Oct *&lt;/td&gt;
 &lt;td&gt;~Oct *&lt;/td&gt;
 &lt;td&gt;Closed&lt;/td&gt;
 &lt;td&gt;Baltimore, MD&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;a href="https://camp.drupal.cornell.edu"&gt;Drupal Camp Cornell&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;~Oct *&lt;/td&gt;
 &lt;td&gt;~Oct *&lt;/td&gt;
 &lt;td&gt;Closed&lt;/td&gt;
 &lt;td&gt;Ithaca, NY&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;a href="https://www.drupalcampatlanta.com"&gt;Drupal Camp Atlanta&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;~Nov *&lt;/td&gt;
 &lt;td&gt;~Nov *&lt;/td&gt;
 &lt;td&gt;Closed&lt;/td&gt;
 &lt;td&gt;Atlanta, GA&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;a href="https://nedcamp.org"&gt;New England Drupal Camp&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;~Nov *&lt;/td&gt;
 &lt;td&gt;~Nov *&lt;/td&gt;
 &lt;td&gt;Closed&lt;/td&gt;
 &lt;td&gt;Providence, RI&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;* Dates are based on camp dates from 2018.&lt;/p&gt;</description></item><item><title>Find mysql Table Size</title><link>https://zietlow.io/posts/mysql-large-table-size/</link><pubDate>Fri, 22 Sep 2017 00:00:00 +0000</pubDate><guid>https://zietlow.io/posts/mysql-large-table-size/</guid><description>&lt;h2 id="tldr"&gt;TL;DR&lt;/h2&gt;
&lt;p&gt;A sql query to list the size of database tables on a mysql server.&lt;/p&gt;




&lt;div class="highlight_wrap"&gt;
 &lt;div class="highlight_meta"&gt;
 &lt;div class="highlight_copy"&gt;
 &lt;svg class="icon"&gt;
 &lt;use xlink:href="#copy"&gt;&lt;/use&gt;
&lt;/svg&gt;

 &lt;/div&gt;
 &lt;/div&gt;

 
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-mysql" data-lang="mysql"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;concat&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;table_schema&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;.&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;table_name&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;table_name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;concat&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;round&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;data_length&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1024&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="mi"&gt;1024&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;M&amp;#39;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;data_length&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;concat&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;round&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;index_length&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1024&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="mi"&gt;1024&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;M&amp;#39;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;index_length&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;concat&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;round&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;round&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;data_length&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;index_length&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1024&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="mi"&gt;1024&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;M&amp;#39;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;total_size&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;FROM&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;information_schema&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="kp"&gt;TABLES&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;ORDER&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;BY&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;LENGTH&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;total_size&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;DESC&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;total_size&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;DESC&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;LIMIT&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="problem"&gt;Problem&lt;/h2&gt;
&lt;p&gt;I found myself working on a project that had been in active development for 5 years and had a 25 GB database. One of my tasks was to implement automated testing and build a CD/CI pipeline in an effort to decrease the amount of bugs we were shipping and decrease the feedback loop on newly implemented features. The largest challenge was the amount of time it took to build a fresh instance of the site. This was almost entirely due to the size of the database.&lt;/p&gt;</description></item><item><title>WTF is Sculpin</title><link>https://zietlow.io/posts/wtf-is-sculpin/</link><pubDate>Tue, 07 Mar 2017 00:00:00 +0000</pubDate><guid>https://zietlow.io/posts/wtf-is-sculpin/</guid><description>&lt;p&gt;Sculpin is a static site generator written in PHP. And WTF is a static site generator? It's a tool for generating html files using raw data like TWIG and markdown. It's great for a website that has content that doesn’t need to be updated by multiple users on a regular basis, authentication, search, or any logic that requires server side communications. It can remove much of the complexity that comes with a CMS or hefty framework, as well as the need for server side technologies like PHP or a database server. A Static site generator is great for my personal blog or the local astronomy group news site, but not ideal for a large news organization that has much more dynamic content. Sculpin has the advantage of being written in a language I’m already familiar with; PHP. Some of the standout features of Sculpin include:&lt;/p&gt;</description></item><item><title>An Impostor's Blog</title><link>https://zietlow.io/posts/imposters-blog/</link><pubDate>Thu, 02 Feb 2017 00:00:00 +0000</pubDate><guid>https://zietlow.io/posts/imposters-blog/</guid><description>&lt;p&gt;After a year and a half, I'm finally getting around to launching my new blog. That's a lot of time for a small static website. That should mean that this blog is packed full of innovative technologies, captivating designs, and polished features, right? It has to be perfect. Thankfully this is not perfect, or so I keep telling myself. Perfection is the number one reason I'm surrounded by half finished projects. Perfectionists often seem like super human people who strive for a higher quality than us mere mortals, but that's not the case. Perfection is a mask for fear, and an enemy to &amp;quot;done&amp;quot;. This blog is my acceptance that imperfect and done is ultimately better than perfect and incomplete.&lt;/p&gt;</description></item><item><title>Getting started with Upstart</title><link>https://zietlow.io/posts/upstart/</link><pubDate>Thu, 17 Oct 2013 00:00:00 +0000</pubDate><guid>https://zietlow.io/posts/upstart/</guid><description>&lt;p&gt;Upstart is an event based monitoring system for monitoring and controlling services and daemons. Upstart is meant to be a replacement for the older System V init.d start up scripts with better optimizations in parrelism and boot time. It can be used to run serveral one off tasks, like that of any shell script, or can monitor long running background services.&lt;/p&gt;
&lt;p&gt;To create an upstart script, create a job configuration file in the /etc/init directory. All job configuration files follow the convention of &lt;name&gt;.conf where &lt;name&gt; is the name of the boot script for upstart. Below is a base template of an example upstart script.&lt;/p&gt;</description></item><item><title>Fun linux Terminal Tools</title><link>https://zietlow.io/posts/fun-linux-tools/</link><pubDate>Thu, 31 May 2012 00:00:00 +0000</pubDate><guid>https://zietlow.io/posts/fun-linux-tools/</guid><description>&lt;p&gt;Anyone with a UNIX based machine (Linux or MAC) has access to a terminal. Anyone with a Linux computer has almost undoubtedly dabbled with command line utilities for some period of time. Here are a few little known terminal tools that I found interesting. I'll give examples of the tools, though it's worth noting that I'm on an Ubuntu Computer.&lt;/p&gt;




&lt;div class="highlight_wrap"&gt;
 &lt;div class="highlight_meta"&gt;
 &lt;div class="highlight_copy"&gt;
 &lt;svg class="icon"&gt;
 &lt;use xlink:href="#copy"&gt;&lt;/use&gt;
&lt;/svg&gt;

 &lt;/div&gt;
 &lt;/div&gt;

 
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;slurm: Displays network load using ascii art.
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;slurm -i eth0&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;




&lt;div class="highlight_wrap"&gt;
 &lt;div class="highlight_meta"&gt;
 &lt;div class="highlight_copy"&gt;
 &lt;svg class="icon"&gt;
 &lt;use xlink:href="#copy"&gt;&lt;/use&gt;
&lt;/svg&gt;

 &lt;/div&gt;
 &lt;/div&gt;

 
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;mtr: Traceroute on steroids. The kind the NCAA frowns on.
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;mtr www.google.com&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;




&lt;div class="highlight_wrap"&gt;
 &lt;div class="highlight_meta"&gt;
 &lt;div class="highlight_copy"&gt;
 &lt;svg class="icon"&gt;
 &lt;use xlink:href="#copy"&gt;&lt;/use&gt;
&lt;/svg&gt;

 &lt;/div&gt;
 &lt;/div&gt;

 
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;taskwarrior (package name: task): task add make todo list, task add relax feature rich console based todo list&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;




&lt;div class="highlight_wrap"&gt;
 &lt;div class="highlight_meta"&gt;
 &lt;div class="highlight_copy"&gt;
 &lt;svg class="icon"&gt;
 &lt;use xlink:href="#copy"&gt;&lt;/use&gt;
&lt;/svg&gt;

 &lt;/div&gt;
 &lt;/div&gt;

 
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;nethack (package name: nethack-console): nethack For you truly hard core gamers a ascii art text based dungeon explorer move with the (h,j,k,l) keys open doors with o “?” for much needed help&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;</description></item></channel></rss>