<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>xkyle.com</title>
    <link>/</link>
    <description>Recent content on xkyle.com</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <lastBuildDate>Thu, 21 Mar 2024 00:00:00 +0000</lastBuildDate><atom:link href="/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>New Name, New Blog</title>
      <link>/New-Name-New-Blog/</link>
      <pubDate>Thu, 21 Mar 2024 00:00:00 +0000</pubDate>
      <guid>/New-Name-New-Blog/</guid>
      <description>I&amp;rsquo;m changing my name from &amp;ldquo;Kyle Anderson&amp;rdquo; to Kyle Cascade&amp;quot;. I&amp;rsquo;m changing it in anticipation of a new family member, and my wife and I figured it would be nice to all have the same last name together, without patriarchal traditions. And it sounds cool.
But seriously, it marks a new chapter in my life. We wanted to pick a new name that represented us. We wanted a nod to nature, but also nothing too far out there.</description>
    </item>
    
    <item>
      <title>Why I&#39;m Not an SRE</title>
      <link>/Why-Im-Not-an-SRE/</link>
      <pubDate>Thu, 18 Jan 2024 00:00:00 +0000</pubDate>
      <guid>/Why-Im-Not-an-SRE/</guid>
      <description>SRE (Site Reliability Engineer) as coined by Google in 2003, came into prominence in 2016 with the release of &amp;ldquo;The SRE Book&amp;rdquo;. It defines a particular job in an engineering org. This job is mostly focused on of course, reliability, but also performance, observability/monitoring, code deployment, capacity planning, and many other adjacent activities.
Some people say SRE is Google&amp;rsquo;s &amp;ldquo;version of DevOps&amp;rdquo; (aka a &amp;ldquo;DevOps implementation&amp;rdquo;). This is a little tricky to talk about, because DevOps, started as a rallying cry for shortening deployment times and adding more automation in the SDLC, has turned into a role itself.</description>
    </item>
    
    <item>
      <title>The Incidental Complexity of Kubernetes</title>
      <link>/The-Incidental-Complexity-of-Kubernetes/</link>
      <pubDate>Wed, 10 Jan 2024 00:00:00 +0000</pubDate>
      <guid>/The-Incidental-Complexity-of-Kubernetes/</guid>
      <description>Kubernetes is the quintessential source of incidental complexity for our age, and our industry has been duped into believing that it is &amp;ldquo;good&amp;rdquo;.
(50,000 people can&amp;rsquo;t be wrong!)
In the classic No Silver Bullet, Brooks (the author), carves out two different types of complexity:
Accidental complexity: the introduction of more code or moving parts &amp;ldquo;by accident&amp;rdquo;, and can be corrected. Essential complexity: inherit to the problem at hand, independent of the surrounding environment (environment, programming language, hardware constraints, etc).</description>
    </item>
    
    <item>
      <title>WLED on a Ustellar RGB Flood 6 Pack</title>
      <link>/WLED-on-a-Ustellar-RGB-Flood-6-Pack/</link>
      <pubDate>Thu, 21 Dec 2023 00:00:00 +0000</pubDate>
      <guid>/WLED-on-a-Ustellar-RGB-Flood-6-Pack/</guid>
      <description>Previously, I bought this 6-pack of Outdoor RGBW Flood lights and disassembled them.
These have the SEO words of:
Ustellar RGB Flood Light Outdoor, Smart WiFi RGBW Color Changing Landscape Lights+Warm White 2700K, 40W App Control Christmas Spotlight Works with Alexa, IP66 Waterproof Uplights, Plug &amp;amp; Play (6 Pack)
They have a part number of UT88865-RGBW-US-1. Fundamentally they are a string of 6 24v WS2814A RGBW flood lights with the first flood as the controller with a Tuya CBU module for wifi control.</description>
    </item>
    
    <item>
      <title>AWS re:Invent 2023 Talk: Iterating Faster on Stateful Services in the Cloud</title>
      <link>/AWS-reInvent-2023-Talk-Iterating-Faster-on-Stateful-Services-in-the-Cloud/</link>
      <pubDate>Sun, 10 Dec 2023 00:00:00 +0000</pubDate>
      <guid>/AWS-reInvent-2023-Talk-Iterating-Faster-on-Stateful-Services-in-the-Cloud/</guid>
      <description>This is a joint talk with one of my Netflix Coworkers JS Jeannotte.
In this talk we survey the different options for running stateful workloads on EC2.
We also present a hybrid method of using containers to run workloads using Kubelet in standalone mode, combined with the EC2 replace-root-volume API. This method enables us to iterate quickly through:
Loading new container images and restarting kubelet for workload software upgrades Rebooting the server into a new OS and kernel quickly for upgrading everything else All without losing the on-disk state.</description>
    </item>
    
    <item>
      <title>re:Invent 2023 Badge Teardown</title>
      <link>/reInvent-2023-Badge-Teardown/</link>
      <pubDate>Sat, 09 Dec 2023 00:00:00 +0000</pubDate>
      <guid>/reInvent-2023-Badge-Teardown/</guid>
      <description>NOTE: This blog post is just a physical teardown and documentation of the device&amp;rsquo;s advertised bluetooth capabilities. No reverse engineering was done (I&amp;rsquo;m not that good).
I recently attended AWS re:Invent 2023, and the badge had a curious circular object attached to it.
In extremely small print it had some sort of serial, 00234867 silk screened on the case.
Inside was a small circular PCB and a CR2016 battery:
(click for a larger image)</description>
    </item>
    
    <item>
      <title>Hosting an Apple Tasting Party</title>
      <link>/Hosting-an-Apple-Tasting-Party/</link>
      <pubDate>Sun, 05 Nov 2023 00:00:00 +0000</pubDate>
      <guid>/Hosting-an-Apple-Tasting-Party/</guid>
      <description>I recently hosted a &amp;ldquo;Great Apple Tasting Experiment&amp;rdquo;, where some friends and I blind tasted 27 different apple cultivars.
Luckily I live near Berkely Bowl, and incredible grocery story with even more than this number of unique apples. Special thanks to the cashier who checked us out.
Here is the list were were able to buy in this November of 2023:
Juici Braeburn Rave Ambrosia Beni Shogun Fugi Red Delicious Smitten Granny Smith Ambrosia Pink Lady Jazz Opal Autumn Glory Gala Lady Golden Delicious Sweetango Lady Alice Apple Jonagold Gold Rush Hunnyz Envy Rome Beauty Organic Sweetie Honey Crisp Sugarbee Crimson Gold We all tried and rated each of these apples, without knowing their name.</description>
    </item>
    
    <item>
      <title>Halloween Crafts 2023</title>
      <link>/Halloween-Crafts-2023/</link>
      <pubDate>Tue, 31 Oct 2023 00:00:00 +0000</pubDate>
      <guid>/Halloween-Crafts-2023/</guid>
      <description>Here is a sampling of craft projects for Halloween 2023 that I made with wife help. Click on a picture to see a full size image. Sorry for the terrible image quality.
Transmutation Circle Materials:
Charcoal chalk LED Candles Magnet Wire Wemos D1 controller running WLED Straight edge, vinyl stencils, wire/compass. It is kinda surreal to see this in real life. This thing is big enough to create a human from raw elements!</description>
    </item>
    
    <item>
      <title>Using Per-Instance-Type Kernels in a Single AWS EC2 AMI</title>
      <link>/Using-Per-Instance-Type-Kernels-in-a-Single-AWS-EC2-AMI/</link>
      <pubDate>Thu, 21 Sep 2023 00:00:00 +0000</pubDate>
      <guid>/Using-Per-Instance-Type-Kernels-in-a-Single-AWS-EC2-AMI/</guid>
      <description>Sometimes it is uself to have an EC2 Machine Image (AMI) change its behavior depending on its runtime environment. This adds complexity to the AMI, but reduces the complexity of having to maintain N AMIs with N behaviors.
One of the hardest things about an AMI to change at runtime is the Linux kernel. By the time you are acutally running, the Linux kernel is there, and it is too late to upgrade or change.</description>
    </item>
    
    <item>
      <title>Using golang&#39;s pprof over a Unix Socket</title>
      <link>/Using-golangs-pprof-over-a-Unix-Socket/</link>
      <pubDate>Fri, 21 Jul 2023 00:00:00 +0000</pubDate>
      <guid>/Using-golangs-pprof-over-a-Unix-Socket/</guid>
      <description>Python Manhole When working with a complex python daemon, I really appreciated the python-manhole library. This tool allows you to listen on a Unix domain socket, and serve a REPL, get stack traces, and more.
From the README, it is as simple as this:
Install it:
pip install manhole Add it to your python code somewhere in the start sequence:
import manhole ... def main(): manhole.install() # this will start the daemon thread .</description>
    </item>
    
    <item>
      <title>There Is No Such Thing As Stock Kubernetes</title>
      <link>/There-Is-No-Such-Thing-As-Stock-Kubernetes/</link>
      <pubDate>Thu, 15 Jun 2023 00:00:00 +0000</pubDate>
      <guid>/There-Is-No-Such-Thing-As-Stock-Kubernetes/</guid>
      <description>Sometimes I hear the phrase &amp;ldquo;Stock Kubernetes&amp;rdquo; and wonder exactly what one means when they say that. Often it is in contrast to a &amp;ldquo;Managed&amp;rdquo; kubernetes (k8s) offering, for example (just the big three):
Amazon EKS Google GKE Azure AKS But these are all on cloud providers. When someone says &amp;ldquo;Stock Kubernetes&amp;rdquo;, they may mean they want to run k8s on a cloud provider, but not use the cloud provider&amp;rsquo;s service.</description>
    </item>
    
    <item>
      <title>We (Software Engineers) Are All Already Prompt Engineers</title>
      <link>/We-Software-Engineers-Are-All-Already-Prompt-Engineers/</link>
      <pubDate>Wed, 12 Apr 2023 00:00:00 +0000</pubDate>
      <guid>/We-Software-Engineers-Are-All-Already-Prompt-Engineers/</guid>
      <description>Prompt engineering is an the emerging practice of talking to an AI to get a desired outcome.
As a software engineer, I would like to make the case that we were already doing this, just our &amp;ldquo;AIs&amp;rdquo; were extremely primitive and error-prone.
ChatGPT and Copilot are getting very close (in March 2023) to being less error-prone than I am.
I am a Natural Intelligence with a Finite Prompt I&amp;rsquo;m 39 and this is deep, but my &amp;ldquo;prompt&amp;rdquo; is all I can remember from the last couple of decades of my professional experience.</description>
    </item>
    
    <item>
      <title>Modern Text (Console) Browsers in 2023</title>
      <link>/Modern-Text-Console-Browsers-in-2023/</link>
      <pubDate>Tue, 14 Feb 2023 00:00:00 +0000</pubDate>
      <guid>/Modern-Text-Console-Browsers-in-2023/</guid>
      <description>Back in 2016 I did a comparison of text-based browser here.
Back then this was the state of the art (elinks):
This is speaking generously, with a particularly text-friendly example!
Now, in 2023, there are two new text-based browsers that are incredible. Because they are backed by normal browser engines, we no longer have to be impressed by features like &amp;ldquo;color support&amp;rdquo;!
Browsh Browsh is a modern text browser backed by the Firefox (gecko) rendering engine.</description>
    </item>
    
    <item>
      <title>Enabling USB Tethering on a Palm PVG100 Without Root</title>
      <link>/Enabling-USB-Tethering-on-a-Palm-PVG100-Without-Root/</link>
      <pubDate>Fri, 27 Jan 2023 00:00:00 +0000</pubDate>
      <guid>/Enabling-USB-Tethering-on-a-Palm-PVG100-Without-Root/</guid>
      <description>I&amp;rsquo;m trying out the 2018 Palm PVG100 as my daily driver cell phone.
Sure, it is ancient by smartphone standards, but it makes me feel like I&amp;rsquo;m in the future whenever I use it.
Plus it pairs well with my OneNetbook 4:
Reasons for using this:
It is cool It satisfies my &amp;ldquo;under $100 device on my person&amp;rdquo; constraint It discourages &amp;ldquo;bad scrolling habits&amp;rdquo; It fits in my wallet Why USB Tethering I think USB Tethering is underrated.</description>
    </item>
    
    <item>
      <title>Ustellar RGB Flood 6 Pack Teardown</title>
      <link>/Ustellar-RGB-Flood-6-Pack-Teardown/</link>
      <pubDate>Thu, 26 Jan 2023 00:00:00 +0000</pubDate>
      <guid>/Ustellar-RGB-Flood-6-Pack-Teardown/</guid>
      <description>I recently bought this 6-pack of Outdoor RGBW Flood lights with the intention of disassembling them.
These have the SEO words of:
Ustellar RGB Flood Light Outdoor, Smart WiFi RGBW Color Changing Landscape Lights+Warm White 2700K, 40W App Control Christmas Spotlight Works with Alexa, IP66 Waterproof Uplights, Plug &amp;amp; Play (6 Pack)
They have a part number of UT88865-RGBW-US-1. Fundamentally they are a string of 6 24v WS2814A RGBW flood lights with the first flood as the controller with a Tuya CBU module for wifi control.</description>
    </item>
    
    <item>
      <title>A Fundamental Theory of Platforms: Part 2</title>
      <link>/A-Fundamental-Theory-of-Platforms-Part-2/</link>
      <pubDate>Fri, 02 Dec 2022 00:00:00 +0000</pubDate>
      <guid>/A-Fundamental-Theory-of-Platforms-Part-2/</guid>
      <description>Note: This is Part 2 on Platform Engineering theory. Read Part 1 if you are more interested in the theory behind these recommendations.
Applying Theory As a recap from Part 1, the Fundamental Theory of (internal) Platforms is:
One should be build an internal platform to solve real business needs, starting with the following properties:
As high-level of an abstraction as possible, evolving to later provide lower-levels as well As opinionated as possible to start, evolving to more flexibility with other offerings As little self-service as possible, evolving to more self-service As multi-tenant as possible, evolving to (more expensive) isolated environments as the business requires it So sure, we have some general guidelines on how to build them, and some of the &amp;ldquo;why&amp;rdquo; from part 1.</description>
    </item>
    
    <item>
      <title>A Fundamental Theory of Platforms: Part 1</title>
      <link>/A-Fundamental-Theory-of-Platforms-Part-1/</link>
      <pubDate>Thu, 01 Dec 2022 00:00:00 +0000</pubDate>
      <guid>/A-Fundamental-Theory-of-Platforms-Part-1/</guid>
      <description>Note: This is Part 1 on Platform Engineering theory. Skip to Part 2 if you are more interested in the practical aspects.
Platform Engineering is the new hotness for 2022. I&amp;rsquo;ve been working with Aaron Blohowiak (Netflix) and Scott Triglia (Stripe) to think about platforms generally, trying to come up with a model to understand how their lifecycle, and what makes them good. We&amp;rsquo;ve tried to use our past industry experience (good and bad), combined with external examples of platforms, to come up with some general rules about how they evolve over time.</description>
    </item>
    
    <item>
      <title>A Detailed Comparison of YAML Formatters</title>
      <link>/A-Detailed-Comparison-of-YAML-Formatters/</link>
      <pubDate>Tue, 29 Nov 2022 00:00:00 +0000</pubDate>
      <guid>/A-Detailed-Comparison-of-YAML-Formatters/</guid>
      <description>This is a survey of the current state of YAML formatters. For this blog post, I&amp;rsquo;m comparing tools that take YAML files on disk and rewrite them to some standard. This is beyond the scope of a normal YAML linter.
If you ask me, all file formats deserve a fmt tool. YAML is not exception, especially as it is not the best. In fact there is even StrictYAML with features removed.</description>
    </item>
    
    <item>
      <title>An AQI LED Jar</title>
      <link>/An-AQI-LED-Jar/</link>
      <pubDate>Fri, 23 Sep 2022 00:00:00 +0000</pubDate>
      <guid>/An-AQI-LED-Jar/</guid>
      <description>In California we have wildfire season in the summer. Sometimes the air can be bad enough that it is unhealthy to breath for an extended period of time. This problem of course is not specific to California.
One of my favorite tools for visualizing air quality is Purple Air:
Using crowd-sourced sensors, you can get hyper-local readings of your surrounding air quality. Try finding the closest sensor available to you on the map.</description>
    </item>
    
    <item>
      <title>Configuring 6LoWPAN on Linux in 2022</title>
      <link>/Configuring-6LoWPAN-on-Linux-in-2022/</link>
      <pubDate>Tue, 17 May 2022 00:00:00 +0000</pubDate>
      <guid>/Configuring-6LoWPAN-on-Linux-in-2022/</guid>
      <description>6LoWPAN is a networking protocol that enabled IPv6 connectivity over IEEE 802.15.4 instead of 802.11.
This low energy network spec shoves IPv6 + Link layer encryption on top of Bluetooth low energy.
But wait, there are actually two types of connections here, and the landscape is confusing due to the different options.
RFC7668 is IPv6 over Bluetooth LE RFC4944 is IPv6 over 802.15.14 6LoWPAN seems to encompass any type of IPv6 over low energy network setup.</description>
    </item>
    
    <item>
      <title>Advancing the State of The Art of Container Storage With Titus, Part 1</title>
      <link>/Advancing-the-State-of-The-Art-of-Container-Storage-With-Titus-Part-1/</link>
      <pubDate>Sun, 01 May 2022 00:00:00 +0000</pubDate>
      <guid>/Advancing-the-State-of-The-Art-of-Container-Storage-With-Titus-Part-1/</guid>
      <description>Disclaimer: This blog post is a deep dive in to the topic of Linux container storage, specifically looking at Netflix&amp;rsquo;s Open Source Titus container platform. Netflix happens to be my employer, but nothing in this blog post is secret or talk about anything that isn&amp;rsquo;t already open source.
Intro (The Problem) Container storage is a complex subject. Getting a hook into the right place to be able to do storage syscalls in Linux for a container requires orchestration help between the storage driver and the container orchestrator.</description>
    </item>
    
    <item>
      <title>Advancing the State of The Art of Container Storage With Titus, Part 2</title>
      <link>/Advancing-the-State-of-The-Art-of-Container-Storage-With-Titus-Part-2/</link>
      <pubDate>Sun, 01 May 2022 00:00:00 +0000</pubDate>
      <guid>/Advancing-the-State-of-The-Art-of-Container-Storage-With-Titus-Part-2/</guid>
      <description>Disclaimer: This blog post is a deep dive in to the topic of Linux container storage, specifically looking at Netflix&amp;rsquo;s Open Source Titus container platform. Netflix happens to be my employer, but nothing in this blog post is secret or talk about anything that isn&amp;rsquo;t already open source.
In Part 1, I discussed the current state of the art of container storage with the CSI+kubernetes, and its limitations.
In this Part 2, I&amp;rsquo;ll discuss why mounting storage is difficult in containers, especially in user namespaces are in use.</description>
    </item>
    
    <item>
      <title>Advancing the State of The Art of Container Storage With Titus, Part 3</title>
      <link>/Advancing-the-State-of-The-Art-of-Container-Storage-With-Titus-Part-3/</link>
      <pubDate>Sun, 01 May 2022 00:00:00 +0000</pubDate>
      <guid>/Advancing-the-State-of-The-Art-of-Container-Storage-With-Titus-Part-3/</guid>
      <description>Disclaimer: This blog post is a deep dive in to the topic of Linux container storage, specifically looking at Netflix&amp;rsquo;s Open Source Titus container platform. Netflix happens to be my employer, but nothing in this blog post is secret or talk about anything that isn&amp;rsquo;t already open source.
In Part 1, I discussed the current state of the art of container storage with the CSI+kubernetes, and its limitations.
In Part 2, I discuss the problem of mounting storage inside running containers, especially using user namespaces.</description>
    </item>
    
    <item>
      <title>Advancing the State of The Art of Container Storage With Titus, Part 4</title>
      <link>/Advancing-the-State-of-The-Art-of-Container-Storage-With-Titus-Part-4/</link>
      <pubDate>Sun, 01 May 2022 00:00:00 +0000</pubDate>
      <guid>/Advancing-the-State-of-The-Art-of-Container-Storage-With-Titus-Part-4/</guid>
      <description>Disclaimer: This blog post is a deep dive in to the topic of Linux container storage, specifically looking at Netflix&amp;rsquo;s Open Source Titus container platform. Netflix happens to be my employer, but nothing in this blog post is secret or talk about anything that isn&amp;rsquo;t already open source.
In Part 1, I discussed the current state of the art of container storage with the CSI+kubernetes, and its limitations.
In Part 2, I the problem of mounting storage inside running containers, especially using user namespaces.</description>
    </item>
    
    <item>
      <title>Jellyfish Art</title>
      <link>/Jellyfish-Art/</link>
      <pubDate>Sat, 02 Apr 2022 00:00:00 +0000</pubDate>
      <guid>/Jellyfish-Art/</guid>
      <description>Today I created some art:
They are made of black construction paper cut with a hobby craft cutter, mounted in floating frames.</description>
    </item>
    
    <item>
      <title>WLED on a Novostella Flood Lamp</title>
      <link>/WLED-on-a-Novostella-Flood-Lamp/</link>
      <pubDate>Sun, 13 Mar 2022 00:00:00 +0000</pubDate>
      <guid>/WLED-on-a-Novostella-Flood-Lamp/</guid>
      <description>I recently bought a pair of Novostella 20W Smart LED Flood Lights. These lights are RGBCW (Red/Blue/Green/Cold/Warm) and use the ubiquitous ESP8266 controller on the Tuya TYLC4-IPEX.
From the previous blog post we learned that the ESP8266 is connected to the LED controller in the following way:
GPIO 04: PWM Channel 1 (Red) GPIO 05: PWM Channel 5 (Color Temp) GPIO 12: PWM Channel 2 (Green) GPIO 13: PWM Channel 4 (White) GPIO 14: PWM Channel 3 (Blue) GPIO 0-3,6,7,11,1: Not used My particular version of this Novostella Flood Light had the latest version of their software, which means I did have to break the glass and solder up a programmer to flash WLED on it.</description>
    </item>
    
    <item>
      <title>Tasmota on a Novostella Flood Lamp</title>
      <link>/Tasmota-on-a-Novostella-Flood-Lamp/</link>
      <pubDate>Wed, 09 Mar 2022 00:00:00 +0000</pubDate>
      <guid>/Tasmota-on-a-Novostella-Flood-Lamp/</guid>
      <description>I recently bought a pair of Novostella 20W Smart LED Flood Lights. These lights are RGBCW (Red/Blue/Green/Cold/Warm) and use the ubiquitous ESP8266 controller on the Tuya TYLC4-IPEX.
Based on other guides thought that I could use the tuya-convert tool to flash them with my own software OTA (over the air). Unfortunately the latest revision of these lights uses a patched firmware that tuya-convert does not understand. This means that these Flood Lamps cannot be re-flashed without being taken apart.</description>
    </item>
    
    <item>
      <title>Sutro Cat Tower</title>
      <link>/Sutro-Cat-Tower/</link>
      <pubDate>Thu, 28 Jan 2021 00:00:00 +0000</pubDate>
      <guid>/Sutro-Cat-Tower/</guid>
      <description>This is my &amp;ldquo;Sutro Cat Tower&amp;rdquo;, modeled after the real Sutro Tower in San Francisco CA.
It features:
7&amp;rsquo; 3&amp;quot; (221cm) Tall 369 Individually addressable RGB LEDs ESP8266 programming (timers, dimming, &amp;ldquo;smart&amp;rdquo; features), code Fleece-lined platforms for the cats Modular wood construction Honestly it is too tall, I&amp;rsquo;ll have to come up with something to make it easier for the cats to jump up into the upper platforms.
The woodwork was difficult, requiring lots of angled cuts with the table saw.</description>
    </item>
    
    <item>
      <title>My MegaDesk Build</title>
      <link>/My-MegaDesk-Build/</link>
      <pubDate>Fri, 13 Nov 2020 00:00:00 +0000</pubDate>
      <guid>/My-MegaDesk-Build/</guid>
      <description>I recently finished my MegaDesk project. Here are the specs:
11 feet wide x 39 inches deep finished butcher block top leg-less design with lots of wood infrastructure underneath to support it Supports that are anchored to the 2x6 studs Horizontal support anchored to studs More outlets (there was only 1 lone outlet in this office originally) Cat6 and Coax in keystone jacks Cable pass-through tubes for clean cable management Insulation!</description>
    </item>
    
    <item>
      <title>A Survey of Golang &#39;plugins&#39; in 2020</title>
      <link>/A-Survey-of-Golang-plugins-in-2020/</link>
      <pubDate>Sat, 01 Aug 2020 00:00:00 +0000</pubDate>
      <guid>/A-Survey-of-Golang-plugins-in-2020/</guid>
      <description>For the purpose of this blog post, my definition of plugin is:
A method of extending the functionality of program without forking it
In particular, I&amp;rsquo;ll be looking at methods of extending Golang (go) programs.
Official Golang Plugins Official Golang Plugins are a native way of extending go codebases without forking them.
How They Work Official Golang Plugins work by compiling your plugin in a special way:
go build -buildmode=plugin This build mode can output a .</description>
    </item>
    
    <item>
      <title>Securing Your Own Privately-Hosted Internal Web Services</title>
      <link>/Securing-Your-Own-Privately-Hosted-Internal-Web-Services/</link>
      <pubDate>Sat, 11 Jul 2020 00:00:00 +0000</pubDate>
      <guid>/Securing-Your-Own-Privately-Hosted-Internal-Web-Services/</guid>
      <description>Like any self-respecting nerd, I have a colletion of internal web services running in my home network.
Even though these are not exposed to the internet, I think they still deserve encryption and authentication. Inspired by this blog post, I decided to do this for myself.
Here are were my requirements:
Google auth Not on the internet Easy to remember domain names Encryption Installing Caddy Note: At the time of this writing I used Caddy version 1, which is now replaced with v2.</description>
    </item>
    
    <item>
      <title>Time Capsule</title>
      <link>/Time-Capsule/</link>
      <pubDate>Sun, 26 Apr 2020 00:00:00 +0000</pubDate>
      <guid>/Time-Capsule/</guid>
      <description>I&amp;rsquo;ve held onto this Time Capsule for 29 years. I believe I made it in first grade, at seven years old, at Cypress Woods Elementary in &amp;ldquo;Gifted Class&amp;rdquo;.
Certainly some things have fallen out of the manila folders. The things that I drew are a kind of snapshot of my life at the time?
Bart Simpson Bill - Bill Clinton? Self-Portrait Nintendo - NES Orbiter - The Space Shuttle Orbiter Wcheis (sic) - Watches?</description>
    </item>
    
    <item>
      <title>Measuring AWS Region and AZ Latency</title>
      <link>/Measuring-AWS-Region-and-AZ-Latency/</link>
      <pubDate>Mon, 20 Apr 2020 12:54:42 -0700</pubDate>
      <guid>/Measuring-AWS-Region-and-AZ-Latency/</guid>
      <description>Lots of people are aware of the different AWS regions that are available for use.
But let&amp;rsquo;s say you wanted to know about the network topology between regions, specifically how &amp;ldquo;close&amp;rdquo; they are to each other, from a network-perspective.
Using data from cloudping.io and some graphviz code, I created this latency map (click for the pdf):
How About AWS Availability Zones? Not Availability Zones (AZs) are the same. Due to geography, there will be some AZs with lower latency to other AZs.</description>
    </item>
    
    <item>
      <title>An ePaper Clock</title>
      <link>/An-ePaper-Clock/</link>
      <pubDate>Sun, 29 Mar 2020 12:54:42 -0700</pubDate>
      <guid>/An-ePaper-Clock/</guid>
      <description>I&amp;rsquo;m calling my ePaper (eInk) watch &amp;ldquo;done&amp;rdquo; (click on the image for a full resolution): It uses a database of literary quotes to display what time it is, highlighting the quote in red.
This project originally started as a wrist watch with battery management and a custom PCB:
The wrist watch version was too ambitious and too distracting, so I gave up and just left it as a wall-clock. Originally I took inspiration from this clock that used a kindle, but wanted more control over the hardware.</description>
    </item>
    
    <item>
      <title>My Sunjar - An esp8266-Powered Light Alarm Clock</title>
      <link>/My-Sunjar-An-esp8266-Powered-Light-Alarm-Clock/</link>
      <pubDate>Thu, 26 Mar 2020 12:54:42 -0700</pubDate>
      <guid>/My-Sunjar-An-esp8266-Powered-Light-Alarm-Clock/</guid>
      <description>This is my Sunjar (code). Inspired by those (expensive) light alarm clocks, my Sunjar gently wakes me up in the morning to this (click to see a youtube version):
And then fall asleep to flames: Features This is my alarm clock, so I can put in the features that I want:
NTP-synced time. Never forget about DST again. Always accurate. Wakeup by ocean light, with a 1-hour brightness ramp-up. Capacitive touch-sensitive override - snooze if I want to, just touch the jar 1-hour red-light sleep timer for going to bed Cool patterns during the day Over the air (OTA) firmware updates Hardware An esp8266 (Wemos W1 Clone) 5 WS2812 LEDs 1 50M ohm resistor Wakeup / Sleep Time Algorithm I decided I only needed two different wakeup times, one for weekedays, one for weekends.</description>
    </item>
    
    <item>
      <title>The Case Against Kubernetes Sidecars</title>
      <link>/The-Case-Against-Kubernetes-Sidecars/</link>
      <pubDate>Thu, 27 Feb 2020 00:00:00 +0000</pubDate>
      <guid>/The-Case-Against-Kubernetes-Sidecars/</guid>
      <description>Intro The Kubernetes (k8s) ecosystem has gone crazy for sidecar containers.
Sidecar containers (sidecars) are auxiliary containers, not part of your application, that provide additional support to make it work. Along with your application, sidecars can be used to inject secrets, ship logs, or power a service mesh.
Although there are some advantages to Sidecars over traditional daemons, I would like to make the case that they are actually and inferior solution for a company that has the resources to provide a platform to its developers.</description>
    </item>
    
    <item>
      <title>Etched Team Straws</title>
      <link>/Etched-Team-Straws/</link>
      <pubDate>Tue, 24 Dec 2019 00:00:00 +0000</pubDate>
      <guid>/Etched-Team-Straws/</guid>
      <description>I recently etched reusable metal straws for my team at work.
I used a low-tech procedure to etch the metal using electricity after applying a vinyl mask made with a hobby vinyl cutter.
The glass straws used food-safe ceramic paint baked in an oven, also using the same vinyl stencil.
The results are great. Click on any of the images below for a larger version. The last few are videos.</description>
    </item>
    
    <item>
      <title>What Kubernetes Got Right, and Mesos Got Wrong</title>
      <link>/What-Kubernetes-Got-Right-and-Mesos-Got-Wrong/</link>
      <pubDate>Wed, 04 Dec 2019 00:00:00 +0000</pubDate>
      <guid>/What-Kubernetes-Got-Right-and-Mesos-Got-Wrong/</guid>
      <description>I&amp;rsquo;ve worked at Yelp for about six years, working with our container platform in production for about four of those years. The plaform is called &amp;ldquo;PaaSTA&amp;rdquo; and there are a number of public talks about it. It is also open source. When we started PaaSTA, it ran on Mesos, and now we are most of the way through our migration to use Kubernetes (k8s). I&amp;rsquo;m in a relatively unique position to have production experience with both technologies.</description>
    </item>
    
    <item>
      <title>Can Infrastructure Teams Do Better Than AWS? Yes, Sometimes.</title>
      <link>/Can-Infrastructure-Teams-Do-Better-Than-AWS-Yes-Sometimes./</link>
      <pubDate>Sat, 30 Nov 2019 00:00:00 +0000</pubDate>
      <guid>/Can-Infrastructure-Teams-Do-Better-Than-AWS-Yes-Sometimes./</guid>
      <description>AWS likes to use the pharse &amp;ldquo;undifferentiated heavy lifting&amp;rdquo; to describe what AWS does best: all the things that everyone hast to do anyway with computers. Commonly these are things like running servers for you, hosting files, and managing a network. Let AWS handle the boring things so that you can focus on what matters most for your business. Sounds great! I certainly do not want a job that could otherwise be commonditized and turned into an API.</description>
    </item>
    
    <item>
      <title>Kubernetes as a Universal Infrastructure API</title>
      <link>/Kubernetes-as-a-Universal-Infrastructure-API/</link>
      <pubDate>Sun, 02 Jun 2019 00:00:00 +0000</pubDate>
      <guid>/Kubernetes-as-a-Universal-Infrastructure-API/</guid>
      <description>Recently the Kubernetes (k8s) Cluster Lifecycle Special Interest Group (SIG) release their first Alpha of their Cluster API.
What does this thing do? It is kinda like a k8s operator (it&amp;rsquo;s a controller) that has custom resource definitions for things to launch another k8s cluster, with a bunch of cloud providers. It is kinda like if Terraform was re-imagined as a k8s operator, but only for launching other k8s clusters, and not general purpose.</description>
    </item>
    
    <item>
      <title>epaper-watch: Cleaning the Literary Quotes Database</title>
      <link>/epaper-watch-Cleaning-the-Literary-Quotes-Database/</link>
      <pubDate>Mon, 27 May 2019 00:00:00 +0000</pubDate>
      <guid>/epaper-watch-Cleaning-the-Literary-Quotes-Database/</guid>
      <description>paper-watch intro My epaper-watch is an attempt to build a watch with an epaper display.
It tells time by displaying a quote from a book:
(don&amp;rsquo;t mind the graphical glitches)
The dataset with all the quotes needs some data cleaning love though.
Cleaning The Dataset The CSV has over 1,400 quotes in it. For every minute, there may be multiple quotes (&amp;ldquo;Midnight&amp;rdquo; has 26 unique quotes). Some minutes of the day do not have any quotes.</description>
    </item>
    
    <item>
      <title>Build Versus Buy: You Are Always Building, Always Buying</title>
      <link>/Build-Versus-Buy-You-Are-Always-Building-Always-Buying/</link>
      <pubDate>Sat, 25 May 2019 19:35:56 +0000</pubDate>
      <guid>/Build-Versus-Buy-You-Are-Always-Building-Always-Buying/</guid>
      <description>TL;DR: &amp;ldquo;Build-vs-Buy&amp;rdquo; is a false dichotomy, you are always building, always buying &amp;ldquo;This is not your &amp;lsquo;Core Competency&amp;rsquo;&amp;rdquo; is a faux trump-card, everything is a spectrum Past experience is overrated, what matters for hiring is your ability to learn Understanding The Trade-Off Fully understanding the build-versus-buy trade-off requires a bunch of different context to really get right. At first glance you might think that you only need to really understand:</description>
    </item>
    
    <item>
      <title>Configuration as Code - Is It That Good of an Idea?</title>
      <link>/Configuration-as-Code-Is-It-That-Good-of-an-Idea/</link>
      <pubDate>Tue, 23 Apr 2019 19:35:56 +0000</pubDate>
      <guid>/Configuration-as-Code-Is-It-That-Good-of-an-Idea/</guid>
      <description>Kyle&amp;rsquo;s Conclusions: If possible, make your users not care about the intermediate form &amp;ldquo;Code as Configuration&amp;rdquo; is not worth it YAML isn&amp;rsquo;t so bad if you can be strict A Brief History of Configuration as Code Configuration as Code is not new. There are a few subtle distinctions that are worth pointing out:
Thing Historic Example Modern Example Config as Config Apache2 (.conf) Sensu (.json) Config as Code Sendmail (.cf) Skycfg (.</description>
    </item>
    
    <item>
      <title>Layers</title>
      <link>/Layers/</link>
      <pubDate>Fri, 08 Mar 2019 19:35:56 +0000</pubDate>
      <guid>/Layers/</guid>
      <description>I recently gave a talk called &amp;ldquo;Layers&amp;rdquo; (~35min).
Warning: The audio and video quality are horrendous:</description>
    </item>
    
    <item>
      <title>Being a Great Engineering Mentor</title>
      <link>/Being-a-Great-Engineering-Mentor/</link>
      <pubDate>Sat, 12 Jan 2019 19:35:56 +0000</pubDate>
      <guid>/Being-a-Great-Engineering-Mentor/</guid>
      <description>Here are some thoughts how I think about being a great engineering mentor. To me the most important thing is remembering &amp;ldquo;who to be&amp;rdquo;, and not as much as &amp;ldquo;how to act&amp;rdquo;. You won&amp;rsquo;t remember how to act. You can look up all the listicles you want on tips on what to do as a mentor, but if you can just &amp;ldquo;be&amp;rdquo; the right person, the choices you make and the things you say might just come naturally.</description>
    </item>
    
    <item>
      <title>Sutro Tower Vinyl Art</title>
      <link>/Sutro-Tower-Vinyl-Art/</link>
      <pubDate>Fri, 05 Oct 2018 19:35:56 +0000</pubDate>
      <guid>/Sutro-Tower-Vinyl-Art/</guid>
      <description>I recently finished a project to make a vinyl mural of Sutro tower:
The &amp;ldquo;source code&amp;rdquo; of this project is on github and is in the public domain.</description>
    </item>
    
    <item>
      <title>Cross-Country Motorcycle Road Trip 2018</title>
      <link>/Cross-Country-Motorcycle-Road-Trip-2018/</link>
      <pubDate>Mon, 18 Jun 2018 07:48:18 +0000</pubDate>
      <guid>/Cross-Country-Motorcycle-Road-Trip-2018/</guid>
      <description>I have finished a month long road trip totaling 8741 miles: I rode a 2014 Kawasaki Ninja 300</description>
    </item>
    
    <item>
      <title>The Evolution of Distributed Systems Management</title>
      <link>/The-Evolution-of-Distributed-Systems-Management/</link>
      <pubDate>Fri, 23 Feb 2018 07:48:18 +0000</pubDate>
      <guid>/The-Evolution-of-Distributed-Systems-Management/</guid>
      <description>Let&amp;rsquo;s survey the past and present of how we manage distributed systems, and then maybe try to predict the future.
For this survey I&amp;rsquo;ll look at a few open-source technologies to give concrete examples (in Kardashev style.
Type 0: Manually Deployed and Configured Type 1: Host-Centric Configuration Management Type 2A: Infrastructure-scoped Orchestration Tooling Type 2B: Application-specific Orchestration Tooling Type 3: Compute-Platform-Native Application-Specific Frameworks Type 3A: Mesos Frameworks Type 3B: Kubernetes (k8s) Operators Type 4: Hybrid?</description>
    </item>
    
    <item>
      <title>Adding Electric Motors to a Gemini 105m</title>
      <link>/Adding-Electric-Motors-to-a-Gemini-105m/</link>
      <pubDate>Sat, 10 Feb 2018 14:27:46 +0000</pubDate>
      <guid>/Adding-Electric-Motors-to-a-Gemini-105m/</guid>
      <description>I recently added a pair of electric motors to my Gemini 105m catamaran.
Haul out Although I don&amp;rsquo;t have any photos of the actual installation, here is what they look like:
motors wake These are a pair of Caroutte S400&amp;rsquo;s.
In theory they have a thrust of 180lbs each and a peak power consumption of 2.7kw each. Although it cannot be directly compared, the onboard diesel is a 20kw (27 Horsepower) engine.</description>
    </item>
    
    <item>
      <title>Another Comparison of Image to ASCII Conversion Tools (2017)</title>
      <link>/Another-Comparison-of-Image-to-ASCII-Conversion-Tools-2017/</link>
      <pubDate>Sat, 25 Nov 2017 19:35:56 +0000</pubDate>
      <guid>/Another-Comparison-of-Image-to-ASCII-Conversion-Tools-2017/</guid>
      <description>Time for another round of terminal-based ascii/ansi art image conversion tools. Check out my last post from 2015 with more comparisons of more tools.
This year I compare the best tool from 2015, img2xterm, against a new set of tools that I&amp;rsquo;ve stumbled across. email me with other tools if you would like to be included in the next round.
Methodology For these tests I used an image with a 160px width, twice that of a standard terminal.</description>
    </item>
    
    <item>
      <title>Cruising from Port San Luis to San Francisco in a Gemini 105m</title>
      <link>/Cruising-from-Port-San-Luis-to-San-Francisco-in-a-Gemini-105m/</link>
      <pubDate>Sun, 09 Jul 2017 18:55:14 +0000</pubDate>
      <guid>/Cruising-from-Port-San-Luis-to-San-Francisco-in-a-Gemini-105m/</guid>
      <description>Over the last 5 days my wife and I cruised from Port San Luis to San Francisco. The total distance was 228 Nautical Miles (nm). We recently purchased the boat and decided to relocate it to a Marina closer to where we live. We knew the trip would relatively difficult. The majority of the journey would be against the wind and waves. For this reason we decided to motor the entire distance up North.</description>
    </item>
    
    <item>
      <title>Home Made Lichtenberg Figures</title>
      <link>/Home-Made-Lichtenberg-Figures/</link>
      <pubDate>Sun, 01 Jan 2017 17:39:13 +0000</pubDate>
      <guid>/Home-Made-Lichtenberg-Figures/</guid>
      <description>For winter 2016 I made Lichenberg Figures. I used a 5kV 10mA (50W) neon light transformer. I also experimented with a 2kW microwave oven transformer, but found that the lower powered neon transformer produced finer, better, and safer results.
To produce the figures, I would first apply the electricity to the wood, often at the corners. Initially the resistance of the wood is not sufficient to allow any burning. Then I would use a spray bottle full of water/baking soda to moisten the surface of the wood until the electricity could find the path of least resistance and start the burning reaction.</description>
    </item>
    
    <item>
      <title>A Comparison of Text-Based Web Browsers</title>
      <link>/A-Comparison-of-Text-Based-Web-Browsers/</link>
      <pubDate>Sun, 22 May 2016 12:04:09 +0000</pubDate>
      <guid>/A-Comparison-of-Text-Based-Web-Browsers/</guid>
      <description>Intro Who browses on the terminal now-a-days? However you are, you are crazy, but you might appreciate this comparison of text-based web browsers, with screenshots of a few different popular sites.
I wanted to test these browsers with more than just simple pages, so where possible I actually logged into places and took screenshots of the actual webpage in a realistic state.
Methodology All browsers were set to use xterm with TERM=xterm-256color.</description>
    </item>
    
    <item>
      <title>Kyle&#39;s (Fashion) Style Guide</title>
      <link>/Kyles-Fashion-Style-Guide/</link>
      <pubDate>Sat, 23 Jan 2016 16:24:01 +0000</pubDate>
      <guid>/Kyles-Fashion-Style-Guide/</guid>
      <description>I recently read &amp;ldquo;Why Are SO Many Millennials SO Uncool?&amp;rdquo;. Let&amp;rsquo;s start with a quote:
*For the purpose of this writing, I’m defining “cool” as those who don’t conform, who don’t always fit in nor do they try to, and who follow their own path; and “uncool” as those who dress, act, and have the same tastes as the masses and are vulnerable to corporate influences.
Now, I&amp;rsquo;m by no means some sort of authority on coolness.</description>
    </item>
    
    <item>
      <title>A Configuration Management Rosetta Stone: Configuring Sensu with Puppet, Chef, Ansible and Salt</title>
      <link>/configuration-management-rosetta-stone-configuring-sensu-with-puppet-chef-ansible-and-salt/</link>
      <pubDate>Sun, 11 Oct 2015 18:21:14 +0000</pubDate>
      <guid>/configuration-management-rosetta-stone-configuring-sensu-with-puppet-chef-ansible-and-salt/</guid>
      <description>I recently finished my Intermediate Sensu Training on Udemy. It was a ton of work but I&amp;rsquo;m glad I got it all together. Part of that training includes how to deploy and configure Sensu with four of the most popular open-source configuration management tools: Puppet, Chef, Ansible, and Salt.
TOC {:toc} The Sensu Decree In order to do the training I had to learn each of these tools enough so I could install a baseline Sensu installation.</description>
    </item>
    
    <item>
      <title>A Comparison of Image to ASCII Conversion Tools</title>
      <link>/A-Comparison-of-Image-to-ASCII-Conversion-Tools/</link>
      <pubDate>Sat, 26 Sep 2015 19:35:56 +0000</pubDate>
      <guid>/A-Comparison-of-Image-to-ASCII-Conversion-Tools/</guid>
      <description>Inspired by ponysay, I think wicked ascii/ansi artwork on the terminal is great.
I decided to survey all the tools I could find that aid in this conversion to see if there were any dramatic differences in results.
Methodology For these tests I used an image with a 160px width, twice that of a standard terminal. Then I cat&amp;rsquo;d the image in plain xterm and took a screenshot of the results.</description>
    </item>
    
    <item>
      <title>Playing with IPv6 Over Bluetooth Low Energy (6LoWPAN)</title>
      <link>/Playing-with-IPv6-Over-Bluetooth-Low-Energy-6LoWPAN/</link>
      <pubDate>Sun, 14 Jun 2015 18:18:03 +0000</pubDate>
      <guid>/Playing-with-IPv6-Over-Bluetooth-Low-Energy-6LoWPAN/</guid>
      <description>I like Bluetooth Low Energy (BTLE). I also like IPv6. Did you know you could but both together?
Technically 6LoWPAN
Requirements modprobe bluetooth_6lowpan echo &#39;bluetooth_6lowpan&#39; &amp;gt;&amp;gt; /etc/modules Establishing the Connection Set the Bluetooth L2CAP PSM First you need to set the Protocol/Service Multiplexer value on both sides to &amp;ldquo;62&amp;rdquo; (0x3E) on both sides:
echo 62 &amp;gt; /sys/kernel/debug/bluetooth/6lowpan_psm This PSM value lets the driver know that you are going to multiplex this special new protocol on top of whatever your bluetooth device mith also be doing.</description>
    </item>
    
    <item>
      <title>Etherhouse Part 2 - Software</title>
      <link>/Etherhouse-Part-2-Software/</link>
      <pubDate>Sun, 16 Nov 2014 16:28:24 +0000</pubDate>
      <guid>/Etherhouse-Part-2-Software/</guid>
      <description>The software that powers the Etherhouse project is open source. This blog post describes that software and how it interacts with all the pieces.
Client You can see the Client software that runs on the Arduino. This uses one external library and is in the native Arduino C++.
The Arduino runs a limited TCP/IP stack and interacts with the http api.
The code plenty of defensive code in place to ensure the client continues to run without interruption or interaction.</description>
    </item>
    
    <item>
      <title>Etherhouse Part 1 - Hardware</title>
      <link>/Etherhouse-Part-1-Hardware/</link>
      <pubDate>Sun, 16 Nov 2014 15:59:56 +0000</pubDate>
      <guid>/Etherhouse-Part-1-Hardware/</guid>
      <description>Etherhouse a project of mine involving eight Christmas gifts. Each gift involved a display of some model houses made from folded paper, each representing the home of a friend or family member.
The houses light up, depending on whether that family member is home or not. Their presence is detected based on if their smartphone is on the same network the etherhouse is on.
See the GitHub page for more details.</description>
    </item>
    
    <item>
      <title>Getting Started Puppet Acceptance Tests With Beaker</title>
      <link>/Getting-Started-Puppet-Acceptance-Tests-With-Beaker/</link>
      <pubDate>Sun, 11 May 2014 10:18:56 +0000</pubDate>
      <guid>/Getting-Started-Puppet-Acceptance-Tests-With-Beaker/</guid>
      <description>Beaker is a test framework created by Puppetlabs to run tests against puppet modules on real servers (vm, containers whatever) and test that they do what they say they should do.
This is a quick tutorial on how to use this framework. At the time of this writing, Beaker is under heavy development, so this could all change.
The Gem The first thing you need to do is install beaker. Usually this is as simple as adding it to your Gemfile and running bundle install.</description>
    </item>
    
    <item>
      <title>Managing Ssh Known Hosts With-Serf</title>
      <link>/Managing-Ssh-Known-Hosts-With-Serf/</link>
      <pubDate>Sun, 06 Apr 2014 05:33:58 +0000</pubDate>
      <guid>/Managing-Ssh-Known-Hosts-With-Serf/</guid>
      <description>Serf is a very interesting service discovery mechanism. Its dynamic membership and tags capability make it very flexible. Can we use it to generate a centralized ssh_known_hosts file?
Installing and Configuring Serf I like to use configuration management to manage servers. Here I use a Puppet module to install and configure Serf:
class { &amp;#39;serf&amp;#39;: config_hash =&amp;gt; { &amp;#39;node_name&amp;#39; =&amp;gt; $::fqdn, &amp;#39;tags&amp;#39; =&amp;gt; { &amp;#39;sshrsakey&amp;#39; =&amp;gt; $::sshrsakey }, &amp;#39;discover&amp;#39; =&amp;gt; &amp;#39;cluster&amp;#39;, } } This particular module uses a hash to translate directly into the config.</description>
    </item>
    
    <item>
      <title>What Happens When You Run Puppet Tests</title>
      <link>/What-Happens-When-You-Run-Puppet-Tests/</link>
      <pubDate>Mon, 31 Mar 2014 05:33:58 +0000</pubDate>
      <guid>/What-Happens-When-You-Run-Puppet-Tests/</guid>
      <description>Breaking down bundle exec rake spec What is happening when you run:
bundle exec rake spec Bundle The first command you are running is bundle. Bundle is kinda like virtualenv for Ruby. It makes sure that you use the same ruby libraries that you, everyone, and puppetmasters use.
Bundle uses a Gemfile, and searches downwards. As long as you have the Gemfile in the puppet repo, it will work.
Exec The second part is exec.</description>
    </item>
    
    <item>
      <title>Writing Purgable Puppet Code</title>
      <link>/Writing-Purgable-Puppet-Code/</link>
      <pubDate>Wed, 29 Jan 2014 05:33:58 +0000</pubDate>
      <guid>/Writing-Purgable-Puppet-Code/</guid>
      <description>Whenever possible, I try to write Puppet code that is purgable and &amp;ldquo;Comment Safe&amp;rdquo;. That is not a very good description. What I mean is, Puppet code that removes resources from a system when the corresponding Puppet code is &amp;ldquo;Commented&amp;rdquo; out of a manifest. Lets look at a few examples.
Example: Managed Sudo Lets say you used this popular sudo module with the following params:
class { &amp;#39;sudo&amp;#39;: purge =&amp;gt; true, } Great start.</description>
    </item>
    
    <item>
      <title>Introducing sensu-shell-helper!</title>
      <link>/Introducing-sensu-shell-helper/</link>
      <pubDate>Sun, 15 Dec 2013 09:12:26 +0000</pubDate>
      <guid>/Introducing-sensu-shell-helper/</guid>
      <description>The Problem The barrier to writing Nagios checks is high. I dare say very high. You have to think about check intervals, host groups, service groups, config files, etc.
But, I know my servers are not behaving, if only there was a way to check them! They run commands for me all the time. In the worst case they fail and no one knows. The best case is that they end up in my cron spam folder&amp;hellip;.</description>
    </item>
    
    <item>
      <title>Saying Goodbye to Wordpress</title>
      <link>/Saying-Goodbye-to-Wordpress/</link>
      <pubDate>Sun, 01 Dec 2013 21:40:42 +0000</pubDate>
      <guid>/Saying-Goodbye-to-Wordpress/</guid>
      <description>It&amp;rsquo;s Been a Great Ride There is no doubt that Wordpress is a great piece of software. As much as people love to hate on PHP, it runs a lot of the internet.
I&amp;rsquo;ve been running Wordpress personally and professionally for years. It only gets better. I was only hacked once :)
Rethinking What I Need Since moving to a Low End Box, my resources have been tight. Even on a tuned system, I can&amp;rsquo;t run much more interesting things than my Nginx+PHPfpm+MySQL.</description>
    </item>
    
    <item>
      <title>Sensu Reports in your Motd with Puppet!</title>
      <link>/sensu-reports-in-your-motd-with-puppet/</link>
      <pubDate>Sat, 30 Nov 2013 00:19:24 +0000</pubDate>
      <guid>/sensu-reports-in-your-motd-with-puppet/</guid>
      <description>Intro Sensu is a pretty cool monitoring framework. The authors designed it to be configured by a configuration management system from the beginning. Check out how easily I can make it put a report in my motd with a little bit of python and puppet.
The Report Script Sensu&amp;rsquo;s API is super easy to work with. For this I will be using the Events endpoint. Here is a quick script to get the events for a host (gist):</description>
    </item>
    
    <item>
      <title>Managing DNS Automatically with Puppet</title>
      <link>/managing-dns-automatically-with-puppet/</link>
      <pubDate>Sat, 19 Oct 2013 23:05:02 +0000</pubDate>
      <guid>/managing-dns-automatically-with-puppet/</guid>
      <description>Why So you have a decent amount of things configured in Puppet. Great!
Are you finding that you have to manually update your DNS entries when things change, like when new hosts or added, or additional services are created?
Why? Your DNS zone files will forever be out of date, waiting for humans to update them. Just say no. Puppet already knows what the ip addresses and hostnames of your servers, why not take advantage of that existing data?</description>
    </item>
    
    <item>
      <title>Getting Started With Sensu Using Puppet. For Real. </title>
      <link>/getting-started-with-sensu-using-puppet-for-real/</link>
      <pubDate>Sun, 13 Oct 2013 01:55:41 +0000</pubDate>
      <guid>/getting-started-with-sensu-using-puppet-for-real/</guid>
      <description>Nagios. So familiar. I feel like I&amp;rsquo;ve run Nagios at every job I have ever had.
Talk to most ops people, even at really big places, and they will probably admit to using it.
Puppet&amp;rsquo;s exported resources takes away some of the pain, but sometimes I think to myself, there must be a better way to do this. Sensu might be that better way.
Let&amp;rsquo;s try it out, but gosh, I am SO lazy.</description>
    </item>
    
    <item>
      <title>Dropbear with Mosh on a Low End Server</title>
      <link>/dropbear-with-mosh-on-a-low-end-server/</link>
      <pubDate>Thu, 03 Oct 2013 05:07:55 +0000</pubDate>
      <guid>/dropbear-with-mosh-on-a-low-end-server/</guid>
      <description>I love my low end boxes. I also love mosh.
Low end boxes usually are tight on resources, so Dropbear is often used as a lightweight ssh server. Mosh is mostly tested with openssh-client/server, so I think there are some bugs.
But it can work, just make sure:
You are using the same version of mosh on the server as you are on your client. (otherwise they may not support the same command line options)</description>
    </item>
    
    <item>
      <title>Goodbye Intel - My Favorite Commands</title>
      <link>/goodbye-intel-my-favorite-commands/</link>
      <pubDate>Wed, 26 Jun 2013 02:34:43 +0000</pubDate>
      <guid>/goodbye-intel-my-favorite-commands/</guid>
      <description>Working at Intel has been a great experience. I wish I could have stayed longer, but in the end we decided to part ways.
During my stay I learned lots of stuff. I would like to boil my experience down to my top Linux commands.
The List git: Lots of git. syscfg: Managing bios settings from within Linux. Nice. (Intel platforms) setupbios: More bios settings from within Linux. (Dell platforms) puppet: I actually enjoy manually running puppet.</description>
    </item>
    
    <item>
      <title>Rebuilding Packages for ARM (or any other arch)</title>
      <link>/rebuilding-packages-for-arm-or-any-other-arch/</link>
      <pubDate>Fri, 21 Jun 2013 04:46:58 +0000</pubDate>
      <guid>/rebuilding-packages-for-arm-or-any-other-arch/</guid>
      <description>Sometimes there are packages out there that don&amp;rsquo;t come in your cool new Architecture. In my case it is ARM, and the package I wanted was Puppet. Here is how to rebuild source packages the cool way.
Add the Puppet repo so you can get fresh source packages cd /tmp # Add the repo, even though it may not have arm binaries... wget http://apt.puppetlabs.com/puppetlabs-release-precise.deb dpkg -i puppetlabs-release-precise.deb # Get dependencies... apt-get update apt-get build-dep puppet facter Build / Install # Get sources.</description>
    </item>
    
    <item>
      <title>An Overdrive Pro Connecting on OpenWrt</title>
      <link>/an-overdrive-pro-connecting-on-openwrt/</link>
      <pubDate>Fri, 31 May 2013 01:45:13 +0000</pubDate>
      <guid>/an-overdrive-pro-connecting-on-openwrt/</guid>
      <description>Have a fancy FreedomPop Overdrive Pro? Want to hook it up to your OpenWrt based router to use as a backup (or primary?) internet connection? Lets do it.
Plug it into your router via USB. Then run:
opkg install kmod-usb-net-cdc-ether Run dmesg and it will report which eth device came up. Mine shows up as &amp;ldquo;eth1&amp;rdquo;. Now make eth1 your &amp;ldquo;wan&amp;rdquo; interface:
uci set network.wan.ifname=eth1 uci commit reboot Whoa.
Or, set it up as a second wan interface and use Multiwan:</description>
    </item>
    
    <item>
      <title>A Team Fortress 2 See &#39;n Say!</title>
      <link>/a-team-fortress-2-see-n-say/</link>
      <pubDate>Sat, 18 May 2013 21:12:21 +0000</pubDate>
      <guid>/a-team-fortress-2-see-n-say/</guid>
      <description>Hopefully Valve will offer me a job instead of suing me? :)
Teardown Parts Many See N&amp;rsquo; Says to destroy (I burned through 3)
An Arduino (yes, because I&amp;rsquo;m a lazy noob)
Wave shield
Some sort of ISP programmer
Speaker / Switch / Hot-glue / Resistors / etc
How It Works A user pulls the handle, activating the normally-open switch and powering the arduino
When the handle is released and the spinner starts spinning, a resistor sensor detects at least two succsessive reistor changes, indicating that the spinner is in motion and noting the first value of the resistor for the next step</description>
    </item>
    
    <item>
      <title>Getting Started With SPDY on Nginx</title>
      <link>/getting-started-with-spdy-on-nginx/</link>
      <pubDate>Sun, 12 May 2013 21:29:09 +0000</pubDate>
      <guid>/getting-started-with-spdy-on-nginx/</guid>
      <description>SPDY is a fancy new way to do HTTP, pioneered by Google. Pretty much all modern browsers support it now, except for of course, IE.
If you have SSL enabled and are using nginx, they you are pretty close to running your sites with SPDY. What how easy it is!
Step 1: Get a version of nginx with spdy enabled. Ubuntu Get some packages. The Ubuntu packages have &amp;ldquo;&amp;ndash;with-http_spdy_module&amp;rdquo; compiled, so you can install them with no problem:</description>
    </item>
    
    <item>
      <title>Disabling Microphone Auto-Gain (Sensitivity) For Google Plus Hangouts</title>
      <link>/disabling-microphone-auto-gain-sensitivity-for-google-plus-hangouts/</link>
      <pubDate>Wed, 17 Apr 2013 01:14:56 +0000</pubDate>
      <guid>/disabling-microphone-auto-gain-sensitivity-for-google-plus-hangouts/</guid>
      <description>Google&amp;rsquo;s Google Plus Hangout / Gtalk plugin automatically adjust your volume to account for varying noise conditions by default. Sometimes this is an undesired behavior, but there is no button to turn it off. Here is how you do it:
Linux: Run this in a terminal:
echo &amp;quot;audio-flags=1&amp;quot; &amp;gt; ~/.config/google-googletalkplugin/options Windows: Set the registry Key:
HKEY_CURRENT_USER\&amp;lt;wbr&amp;gt;&amp;lt;/wbr&amp;gt;Software\Google\Google Talk Plugin\options\audio-flags = 1 Mac OSX: Edit the plist:
~/Library/Preferences/com.&amp;lt;wbr&amp;gt;&amp;lt;/wbr&amp;gt;google.GoogleTalkPluginD.plist and set &amp;ldquo;Audio Flags&amp;rdquo; = 1</description>
    </item>
    
    <item>
      <title>My First Published Puppet Module: bios</title>
      <link>/my-first-published-puppet-module-bios/</link>
      <pubDate>Mon, 15 Apr 2013 21:06:09 +0000</pubDate>
      <guid>/my-first-published-puppet-module-bios/</guid>
      <description>What? I&amp;rsquo;ve written lots of crappy Puppet modules. Here is a slightly less crappy module that can help you configure BIOS settings on your servers for you.
It works on Dell C class servers and Intel platforms. Please pull request or email me if you want to have it work on something else too!
Why? BIOS settings should be considered configuration just like any other configuration, and hence managed by your configuration management tool, if possible.</description>
    </item>
    
    <item>
      <title>Puppet on OpenWrt!</title>
      <link>/puppet-on-openwrt/</link>
      <pubDate>Sun, 31 Mar 2013 19:38:28 +0000</pubDate>
      <guid>/puppet-on-openwrt/</guid>
      <description>Status: Github Repo is here: https://github.com/solarkennedy/puppet-on-openwrt/
OpenWrt package files are submitted for inclusion
Puppet/facter patches have been included in Trunk for inclusion in puppet 3.2
Binary packages have been made for early adopters (and me)
Why? To scratch my own itch, and for Fun!
How? Downloads are here: http://download.xkyle.com/openwrt/
Because of the dependencies, it is probably easier to add the repo:
. /etc/openwrt_release VERSION=`echo $DISTRIB_RELEASE | cut -f 1 -d -` TARGET=`echo $DISTRIB_TARGET | cut -f 1 -d /` LINE=&amp;quot;src/gz puppet-packages http://download.</description>
    </item>
    
    <item>
      <title>Picking Server Hostnames: Worstest, Worser, Worst... Better, Betterer, Bestest</title>
      <link>/picking-server-hostnames-worstest-worser-worst-better-betterer-bestest/</link>
      <pubDate>Wed, 27 Mar 2013 23:58:32 +0000</pubDate>
      <guid>/picking-server-hostnames-worstest-worser-worst-better-betterer-bestest/</guid>
      <description>Picking a server hostname is a big deal. I&amp;rsquo;ve seen quite a few, lets traverse the hostname-awesomeness-continuum and see if we can learn something.
Worsest morpheous trinity alf Why do these suck? These names have no information what-so-ever. If you see a server alert, you have no clue what services are actually down. It might as well be a random string. IT is a random string.
Pro Tip: Don&amp;rsquo;t give make server hostnames random strings.</description>
    </item>
    
    <item>
      <title>Decoding Balanced Payments Puzzle 1</title>
      <link>/decoding-balanced-payments-puzzle-1/</link>
      <pubDate>Thu, 21 Mar 2013 02:04:43 +0000</pubDate>
      <guid>/decoding-balanced-payments-puzzle-1/</guid>
      <description>A strange string appeared at the bottom of a Balanced Payments blog post:
NmQ2ZjYzMmU3Mzc0NmU2NTZkNzk2MTcwNjQ2NTYzNm U2MTZjNjE2MjQwNjU2MzZlNjU3MjY1NjY2NjY5NjQ2MTY1N mI2MTZkNmY3NDc0NmU2MTc3Njk=
One of those puzzles to attract coders I guess. The guys at Hacker News spilled the beans, so lets spill them some more.
First though,** Mad Props** to the Balanced team for thinking &amp;ldquo;outside&amp;rdquo; the unit-test-box. Plus Jenkins rocks. The world needs more Jenkins. Bash? I&amp;rsquo;m not a developer, so my first instinct was to use the existing set of tools that people have already written to solve this puzzle:</description>
    </item>
    
    <item>
      <title>Hacking a Hallmark Text Band: First Attempt</title>
      <link>/hacking-a-hallmark-text-band-first-attempt/</link>
      <pubDate>Thu, 14 Mar 2013 04:08:20 +0000</pubDate>
      <guid>/hacking-a-hallmark-text-band-first-attempt/</guid>
      <description>The Hallmark Text Band is a strange thing:
Doesn&amp;rsquo;t Hallmark know kids have cell phones now? Anyway, it is an extremely simple micro-controller driving a led matrix and a C-Max CMM-9201. You get 10 characters, and a small reed-switch? triggers a hardware interrupt, and broadcasts your 10 characters to a friend, and you swap messages. The devices holds 24 messages, FIFO. Memory is volatile. Profanity filter included.
Oh well. Lets hack it.</description>
    </item>
    
    <item>
      <title>Validating Graphite Metrics With Bash!</title>
      <link>/validating-graphite-metrics-with-bash/</link>
      <pubDate>Thu, 07 Mar 2013 05:35:49 +0000</pubDate>
      <guid>/validating-graphite-metrics-with-bash/</guid>
      <description>At my dayjob I get to work with Graphite and power meters. It is cool:
To make it easy for my clients to get power information, I&amp;rsquo;ve written a command line tool called &amp;ldquo;power&amp;rdquo; that they can run to get the power usage for a server when running their program. Here is an example:
power METER-NAME sleep 10s Pretty handy. The &amp;ldquo;METER-NAME&amp;rdquo; is pretty important, as it lets the script know which system&amp;rsquo;s power you are interested in.</description>
    </item>
    
    <item>
      <title>An IPMI SEL Viewing Shootout!</title>
      <link>/an-ipmi-sel-viewing-shootout/</link>
      <pubDate>Wed, 13 Feb 2013 06:08:18 +0000</pubDate>
      <guid>/an-ipmi-sel-viewing-shootout/</guid>
      <description>UPDATE (2015-02-18) Albert Chu from FreeIPMI commented that FreeIPMI does NOT attempt to decode OEM events by default. These are events that are OEM specific, so each motherboard may require a different interpretation.
FreeIPMI has a --interpret-oem-data option and possibly in conjunction with the -W assumesystemevent option, to attempt to decode these.
Unfortunately I no longer have the motherboard I originally ran these on. I might do a followup post with a new motherboard with similar &amp;ldquo;issues&amp;rdquo; and see how FreeIPMI compares to the other tools with these options.</description>
    </item>
    
    <item>
      <title>Configuring BIOS Settings With Puppet!</title>
      <link>/configuring-bios-settings-with-puppet/</link>
      <pubDate>Tue, 12 Feb 2013 03:35:01 +0000</pubDate>
      <guid>/configuring-bios-settings-with-puppet/</guid>
      <description>You know what it is like to spend time configuring the BIOS on a a server. You reboot the server, and wait for it to take its sweet time to come back up, frantically push its button, hope that you didn&amp;rsquo;t miss your chance. Then spend some one-on-one alone time with the interface, making sure you do all the right keystrokes to get the settings you want. Sounds like a bad date.</description>
    </item>
    
    <item>
      <title>Building Linux Packages For Kernel Drivers! (dkms howto)</title>
      <link>/building-linux-packages-for-kernel-drivers/</link>
      <pubDate>Sun, 20 Jan 2013 03:39:48 +0000</pubDate>
      <guid>/building-linux-packages-for-kernel-drivers/</guid>
      <description>Background Most of the time the Linux kernel does a great job of having drivers you need, but sometimes you need to install a special driver or update an existing module.
Running make; make install is all fine and dandy for testing, but for production you want a repeatable process. For me, this means OS packages. (deb/rpms)
So, how do you go from kernel module source code =&amp;gt; Debian package? DKMS.</description>
    </item>
    
    <item>
      <title>Cool Things to Do After Installing OpenWrt</title>
      <link>/cool-things-to-do-after-installing-openwrt/</link>
      <pubDate>Sun, 06 Jan 2013 23:16:33 +0000</pubDate>
      <guid>/cool-things-to-do-after-installing-openwrt/</guid>
      <description>OpenWrt is the bomb. Think all the power of a full Linux distro on your tiny home router or plug computer.
Install an External Root Overlay What the heck does that mean? OpenWrt uses an ingenious system were the root filesystem is a super compressed squashfs, merged with a read/write jffs2 filesystem called the overlay. This maximizes your available space on the device. Instead of using part of your remaining flash for read/write, you can use a larger, external device for the overlay.</description>
    </item>
    
    <item>
      <title>7 Underused IPMItool Commands</title>
      <link>/7-underused-ipmitool-commands/</link>
      <pubDate>Thu, 20 Dec 2012 03:55:02 +0000</pubDate>
      <guid>/7-underused-ipmitool-commands/</guid>
      <description>IPMI is Awesome. But, it is underused. Most sysadmins don&amp;rsquo;t even enable it. If they do enable it, they probably enable it by manually going into the BIOS, and then probably only using the Web interface. LAME.
There is no need to go to the BIOS to configure ipmi. You can use IPMItool to configure it in-band. This is my first underused command:
(disclaimer: not all IPMI interfaces / bios versions / hardware platforms are equal.</description>
    </item>
    
    <item>
      <title>Carbon Fiber Table</title>
      <link>/carbon-fiber-table/</link>
      <pubDate>Sat, 15 Dec 2012 21:17:29 +0000</pubDate>
      <guid>/carbon-fiber-table/</guid>
      <description>It kinda sucks. No matter how much sanding and polish I do, I can&amp;rsquo;t get it to look great. It is smooth, however. Corners are hard. Just posting these pics for archival purposes, not to show off here.</description>
    </item>
    
    <item>
      <title>Carbon Fiber / Copper Solar Light</title>
      <link>/carbon-fiber-copper-solar-light/</link>
      <pubDate>Sun, 02 Dec 2012 18:39:02 +0000</pubDate>
      <guid>/carbon-fiber-copper-solar-light/</guid>
      <description>A copper tube sculptural with carbon fiber leaves. One of the carbon fiber leaves is a solar panel from a deconstructed solar lamp. The tips of the small copper tubes have the white LEDs. The larger copper tube stores the battery and charge circuitry. I would show pictures of them at night but the sun doesn&amp;rsquo;t shine much here anymore&amp;hellip;</description>
    </item>
    
    <item>
      <title>Configuring Nagios Like a Boss!</title>
      <link>/configuring-nagios-like-a-boss/</link>
      <pubDate>Mon, 19 Nov 2012 05:41:17 +0000</pubDate>
      <guid>/configuring-nagios-like-a-boss/</guid>
      <description>I&amp;rsquo;m tired of configuring Nagios by hand. Just tired. I always forget to do stuff. I&amp;rsquo;ll add a new host, or stick in a raid card, add a new website, whatever, and forget to add a nagios check for it.
So it happened. You setup a server, put critical infrastructure on it, but forgot to monitor it. It goes down, bad stuff happens. Your boss asks, why weren&amp;rsquo;t we monitoring this?</description>
    </item>
    
    <item>
      <title>Carbon Fiber Glasses</title>
      <link>/carbon-fiber-glasses/</link>
      <pubDate>Sat, 03 Nov 2012 22:07:27 +0000</pubDate>
      <guid>/carbon-fiber-glasses/</guid>
      <description></description>
    </item>
    
    <item>
      <title>Build Systems out of Poured Concrete, not Bricks</title>
      <link>/build-systems-out-of-poured-concrete-not-bricks/</link>
      <pubDate>Sun, 24 Jun 2012 17:05:04 +0000</pubDate>
      <guid>/build-systems-out-of-poured-concrete-not-bricks/</guid>
      <description>Personally, I don&amp;rsquo;t have any kind of battle-hardened wisdom. Most of what I know comes from the wisdom of others. In particular I would like to acknowledge the real geniuses up front:
My First Petabyte: Now What? (Jacob Farmer from Cambridge Computer)
Google Platforms Rant (Steve Yegge of Google)
http://perspectives.mvdirona.com/ (James Hamilton of Amazon)
Ted Dzuiba
Tons of blogs posts, LISA talks, that I can&amp;rsquo;t site specifically.
Seriously, we are all a product of the RSS feeds we read?</description>
    </item>
    
    <item>
      <title>Graph EVERYTHING with Graphite!</title>
      <link>/graph-everything-with-graphite/</link>
      <pubDate>Sun, 29 Apr 2012 19:46:17 +0000</pubDate>
      <guid>/graph-everything-with-graphite/</guid>
      <description>I believe that a graphing tool should be flexible enough for the user to decide what metrics are important to their environment, and it should be able to accept metric data from any source.
There are pretty good graphing tools out there for the Linux engineer: Munin, Ganglia, Cacti, Zabbix, Collectd, etc.
I call these &amp;ldquo;graphing&amp;rdquo; tools, because I don&amp;rsquo;t consider them &amp;ldquo;monitoring&amp;rdquo; tools, like Nagios, WhatsUp, or Zabbix. Here is are my thoughts on graphing/monitoring:</description>
    </item>
    
    <item>
      <title>Lose the Metawork and Get on with Your Life!</title>
      <link>/lose-the-metawork-and-get-on-with-your-life/</link>
      <pubDate>Mon, 16 Apr 2012 02:25:27 +0000</pubDate>
      <guid>/lose-the-metawork-and-get-on-with-your-life/</guid>
      <description>Every job has metawork. Sometimes it becomes so commonplace that we just forget about it. We should never forget about it. I hope this blog post reminds you of what your metawork is. For the purposes of this blog post it will focus on code-centric stuff, but could apply to anything.
Different jobs have different types of metawork. Sometimes it is just paperwork. Other times it is called &amp;ldquo;overhead&amp;rdquo;. Commonly it is referred to as &amp;ldquo;Process&amp;rdquo;.</description>
    </item>
    
    <item>
      <title>Puppet versus CFEngine 2: Editing Files</title>
      <link>/puppet-versus-cfengine-editing-files/</link>
      <pubDate>Thu, 26 Jan 2012 01:46:30 +0000</pubDate>
      <guid>/puppet-versus-cfengine-editing-files/</guid>
      <description>Update: I wrote this article when I was young and stupid. It is obsolete. Puppet wins, just use Augeas. Both Puppet and CFEngine are formidable configuration management systems. Let&amp;rsquo;s compare the two to see how the match up on the common task of editing files. Feel free to jump straight to the conclusion if you are impatient.
Why would you need this? What is the use-case here? These are some common tasks I do that involve editing files:</description>
    </item>
    
    <item>
      <title>Achieving Awesome Single-Stream Performance Over Bonded Ethernet</title>
      <link>/achieving-awesome-single-stream-performance-over-bonded-ethernet/</link>
      <pubDate>Wed, 04 Jan 2012 14:19:10 +0000</pubDate>
      <guid>/achieving-awesome-single-stream-performance-over-bonded-ethernet/</guid>
      <description>Ethernet Link Aggregation (aka PortChannel, Etherchannel, ethernet bonding, NIC teaming, trunking, link bundling, Smartgroup, Ethertrunk, etc) is a way to combine multiple Ethernet links to a single logical link. This improves redundancy and increases aggregate performance. It is good stuff, especially if you are into High Availability.
Here is a typical setup: A good start. If you can spare the ports and cables to make this work, you should do it.</description>
    </item>
    
    <item>
      <title>4 Philosophies For Building Systems To Be Proud Of</title>
      <link>/4-philosophies-for-building-systems-to-be-proud-of/</link>
      <pubDate>Mon, 08 Aug 2011 02:21:32 +0000</pubDate>
      <guid>/4-philosophies-for-building-systems-to-be-proud-of/</guid>
      <description>Below are a few philosophical guidelines that I use when thinking about systems. Everyone has systems that they are not proud of, even me. But I hope to someday say that I am proud of all of my systems, and I believe that these philosophies will get me there.
1. Try to endeavor to build systems with as few dependencies as possible. Sometimes systems can sprawl and get out of hand.</description>
    </item>
    
    <item>
      <title>A DRBD Configuration Options Shootout!</title>
      <link>/a-drbd-configuration-options-shootout/</link>
      <pubDate>Sun, 24 Jul 2011 20:41:55 +0000</pubDate>
      <guid>/a-drbd-configuration-options-shootout/</guid>
      <description>DRBD is the bomb. Think Raid 1 over the network between two servers. It enables sysadmins (in combination with heartbeat) to increase service uptime, while enabling server downtime. This means you can do kernel updates, do hardware maintenance, upgrade ram, move the server to another rack, etc, all while keeping the service up.
Because DRBD is often used in high availability scenario, there isn&amp;rsquo;t much room for experimentation with in-production systems.</description>
    </item>
    
    <item>
      <title>Solving the NFS 16-Group Limit Problem</title>
      <link>/solving-the-nfs-16-group-limit-problem/</link>
      <pubDate>Sun, 10 Jul 2011 22:28:22 +0000</pubDate>
      <guid>/solving-the-nfs-16-group-limit-problem/</guid>
      <description>I apologize for the verbose post. This is a complicated problem and it merits full explanation. If you are experiencing this problem I advise you to avoid skimming and read it very carefully :)
Sometimes you come across a problem that is a little more complex than average. Sometimes it is problem that is rare enough that there isn&amp;rsquo;t an obvious answer in the first google hint. Sometimes a problem may seem unavoidable, which leads to work-arounds, and before you know it you have a mess.</description>
    </item>
    
    <item>
      <title>How to Benchmark Harddrives in Linux</title>
      <link>/how-to-benchmark-harddrives-in-linux/</link>
      <pubDate>Sat, 21 May 2011 03:02:47 +0000</pubDate>
      <guid>/how-to-benchmark-harddrives-in-linux/</guid>
      <description>So you have some new harddrives. Maybe you are thinking about building a DIY storage server? Maybe some Raid? Maybe you just want to know if your drives are performing as well as when you bought them? How can you know? Measurement is Knowing.
The thing about benchmarks is that you always must be skeptical. Each system&amp;rsquo;s particular disks, controller, raid level and settings, cpu, ram, filesystem, operating system, etc can GREATLY affect the performance of a system.</description>
    </item>
    
    <item>
      <title>New Technologies for a New Year</title>
      <link>/new-technologies-for-a-new-year/</link>
      <pubDate>Mon, 10 Jan 2011 02:33:49 +0000</pubDate>
      <guid>/new-technologies-for-a-new-year/</guid>
      <description>Starting with the new year, I decided to move my xkyle.com domain and related stuff away from my account at Dreamhost, a shared hosting server, to my virtual machine at Tummy.com. I have nothing but good things to say about Dreamhost though, they are excellent at what they do. However, I wanted to do more than what a shared hosting provider could do for me, I needed Root!
Moving my websites and dns to a dedicated server grants me the ability to implement a few technologies to usher in the new year.</description>
    </item>
    
    <item>
      <title>Adding a Built-in Sensor Bar to a TV</title>
      <link>/adding-a-built-in-sensor-bar-to-a-tv/</link>
      <pubDate>Thu, 07 Oct 2010 01:21:22 +0000</pubDate>
      <guid>/adding-a-built-in-sensor-bar-to-a-tv/</guid>
      <description>I was thinking about moving my Wii, and relocating it to a more conspicuous place. I was annoyed at my sensor bar getting in the way:
I knew that the sensor bar was just 2 IR LEDs. So why not just build those LEDs right into the TV? One less cord to lay around. Lets open it up!
I used the given board that had 2 White LEDs that lit up the Westinghouse Logo.</description>
    </item>
    
    <item>
      <title>Solving &#34;Role Playing 4&#34;</title>
      <link>/solving-role-playing-4/</link>
      <pubDate>Tue, 05 Oct 2010 20:25:06 +0000</pubDate>
      <guid>/solving-role-playing-4/</guid>
      <description>Last month Games Magazine published their Online Contest 29 - Role Playing 4. Here is the puzzle:
The circles represent actors, the diamonds represent movies they have been in. Pink is for actresses and blue is for actors. The numbers represent the numbers in their name: First, Last. Question marks indicate the number in their name is 3,4,6, or 9 letters. The center actress is what we are after. Note there are no clues for her name, but she has been in 13 movies.</description>
    </item>
    
    <item>
      <title>Plug Computers!</title>
      <link>/plug-computers/</link>
      <pubDate>Wed, 15 Sep 2010 22:27:30 +0000</pubDate>
      <guid>/plug-computers/</guid>
      <description>Recently I gave a presentation on Plug Computers at the local NCLUG. Plug computers are inexpensive, small, and low power computers, about the size of a wall wart.
They make great home servers, appropriate for file sharing, exporting media files for your devices (DLNA), making backups (backuppc), etc.
If you would like to check out the slides for my presentation: Plug Computers Presentation
If you would like to see my wiki notes on plug computers: http://wiki.</description>
    </item>
    
    <item>
      <title>Bash Boggle - A Boggle Solver Written in Bash!</title>
      <link>/bash-boggle-a-boggle-solver-written-in-bash/</link>
      <pubDate>Sun, 22 Aug 2010 07:24:10 +0000</pubDate>
      <guid>/bash-boggle-a-boggle-solver-written-in-bash/</guid>
      <description>Bash is my favorite computer language. I also love writing programs to help human problems.
Inspired by this online Boggle solver, I decided to write my own solver while my friends were too busy playing the game and having fun :)
If you would like to test my work, here is the code:
https://dev.xkyle.com/bashboggle/
You will need the linux &amp;ldquo;words&amp;rdquo; dictionary, which is installable on Ubuntu by running &amp;ldquo;sudo apt-get install wamerican&amp;rdquo;</description>
    </item>
    
    <item>
      <title>Computer Assisted Jenga with the Wii Balance Board and Linux</title>
      <link>/computer-assisted-jenga-with-the-wii-balance-board-and-linux/</link>
      <pubDate>Sun, 01 Aug 2010 05:07:57 +0000</pubDate>
      <guid>/computer-assisted-jenga-with-the-wii-balance-board-and-linux/</guid>
      <description>I like to think about how games work, in the case of Jenga, it is just physics!
But don&amp;rsquo;t you wish you could peel back reality and see what is happening with the physics from the inside? Well now you can, with the help of a Wii Balance Board.
For the setup you need these ingredients:
Wii Balance Board
Computer with Bluetooth
Linux, preferably Ubuntu
Jenga Set, alternatively &amp;ldquo;Tension Tower&amp;rdquo;</description>
    </item>
    
    <item>
      <title>The Seagate Dockstar: A Very Cool Linux Device</title>
      <link>/the-seagate-dockstar-a-very-cool-linux-device/</link>
      <pubDate>Tue, 20 Jul 2010 05:35:25 +0000</pubDate>
      <guid>/the-seagate-dockstar-a-very-cool-linux-device/</guid>
      <description>What if I told you there was a computer out there, a small one, with gigabit ethernet, 4 USB 2.0 ports, runs on 5 watts, and serves as a great NAS (network attached storage) for your home. It can share files, serve media, be a router, make backups for you, host a lamp stack, be a mail server, etc. It can do whatever you can think up.
How much would you pay for such a neat little device?</description>
    </item>
    
    <item>
      <title>Setting Up Your Very Own PXE Server!</title>
      <link>/setting-up-your-very-own-pxe-server/</link>
      <pubDate>Fri, 16 Jul 2010 22:42:46 +0000</pubDate>
      <guid>/setting-up-your-very-own-pxe-server/</guid>
      <description>Ever fumbled around your house looking for a Linux CD, but you can&amp;rsquo;t find it? Ever suspected that your ram was going bad, but you didn&amp;rsquo;t have a way to test it? Ever needed to backup files on a computer that had a dead and broken operating system? A solution to all these problems is a super cool tool called PXE booting. PXE booting allows you to load alternative operating systems over the network, without the need for cds, cdroms, etc!</description>
    </item>
    
    <item>
      <title>ISPs Should Capitalize on their Reverse DNS!</title>
      <link>/isps-should-capitalize-on-their-reverse-dns/</link>
      <pubDate>Wed, 19 May 2010 01:20:39 +0000</pubDate>
      <guid>/isps-should-capitalize-on-their-reverse-dns/</guid>
      <description>Actually&amp;hellip; no they shouldn&amp;rsquo;t. Here is what it would look like:
My traceroute [v0.75] kyle (0.0.0.0) Tue May 18 15:14:52 2010 Keys: Help Display mode Restart statistics Order of fields quit Host Loss% Snt Last Avg Best Wrst StDev 1. 192.168.0.1 0.0% 10 12.0 15.6 11.3 33.6 6.7 2 UPGRADE-YOUR-CONNECTION-1800-COMCAST.res.comcast.net 0.0% 10 13.1 15.8 11.5 31.1 5.9 3. TURBOBOOST-UP-TO-50MBS.car1.Den.core.comcast.net 44.4% 10 15.3 17.7 11.8 23.1 4.5 4. LIKE-WHAT-YOU-SEE?-GET-WITH-LEVEL3!.Level3.net 0.0% 10 27.</description>
    </item>
    
    <item>
      <title>Stream of Conciousness Youtube Videos on Linux</title>
      <link>/stream-of-conciousness-youtube-videos-on-linux/</link>
      <pubDate>Mon, 17 May 2010 03:20:20 +0000</pubDate>
      <guid>/stream-of-conciousness-youtube-videos-on-linux/</guid>
      <description>While sitting watching TV I yearned for a more stream-of-consciousness experience. Youtube was the answer.
However, Youtube requires too much interaction. I wanted to vege out and let it just feed me the stream of random images and sound. Selecting purely random youtube videos sounded like a bad idea though&amp;hellip;
I decided to do a twitter search for anything with a youtube link, and then let a script just enqueue them into totem, ad-infinitum.</description>
    </item>
    
    <item>
      <title>Sparkfun&#39;s Autonomous Vehicle Competition</title>
      <link>/sparkfuns-autonomous-vehicle-competition/</link>
      <pubDate>Sun, 18 Apr 2010 03:50:33 +0000</pubDate>
      <guid>/sparkfuns-autonomous-vehicle-competition/</guid>
      <description>The Sparkfun Autonomous Vehicle Competition (AVC) was a smash! You can watch some footage of the event at Sparkfun&amp;rsquo;s Ustream page.
Here is what the starting / finishing line looked like:
And some judges on the roof watching to make sure the Flying robots do not cut corners.
I was very impressed by the UAVs (unmanned aerial vehicles). Most of them were able to complete the course in record time. Some were even able to land autonomosouly!</description>
    </item>
    
    <item>
      <title>Yes yes... very professional...</title>
      <link>/yes-yes-very-professional/</link>
      <pubDate>Sun, 11 Apr 2010 00:42:25 +0000</pubDate>
      <guid>/yes-yes-very-professional/</guid>
      <description>I&amp;rsquo;m not saying that all OS&amp;rsquo;s don&amp;rsquo;t have problems, but it would be nice if you didn&amp;rsquo;t plaster the problems all over the store :)</description>
    </item>
    
    <item>
      <title>How to Fix a Power Plug with Sugru!</title>
      <link>/how-to-fix-a-power-plug-with-sugru/</link>
      <pubDate>Thu, 08 Apr 2010 02:52:53 +0000</pubDate>
      <guid>/how-to-fix-a-power-plug-with-sugru/</guid>
      <description>I have a first generation Asus Eeepc, but the power plug is failing. All plugs do this eventually. Lots of tiny wires, bending back and forth all the time&amp;hellip; It just happens.
So should I throw it away and buy a new one? No! It can be easily fixed. Here is what you need:
Soldering Iron + Solder Flux helps if you have it (If you have not soldered with flux, you are missing out big time) Heat shrink or electrical tape Sugru can add a nice touch Start by using a sharp blade to cut off the plastic molding around the connector to expose the raw barrel connector and wires:</description>
    </item>
    
    <item>
      <title>Help Wanted: What is the pattern in these new WEP Keys?</title>
      <link>/help-wanted-what-is-the-pattern-in-these-new-wep-keys/</link>
      <pubDate>Fri, 02 Apr 2010 18:40:56 +0000</pubDate>
      <guid>/help-wanted-what-is-the-pattern-in-these-new-wep-keys/</guid>
      <description>Can you see the pattern?
ESSID ESSID in Hex BSSID KEY MCFVC 23CB158 0021636A7177 F8AA1AABA2 H47MD 1B6B095 001D19E2A557 BFD896F9D4 Q36G7 29C9D67 0021632D31E3 BCD77B3755 UX78G 31880E0 0024d2682944 18DD3AB249 These key pairs were graciously provided by Eric Betts. They do not conform to my existing WEP key calculator.
Maybe Verizon wised up and made them random? The previous correlation was dead obvious, but this one I can&amp;rsquo;t see.
Of course, I am only a wannabe cryptologist :)</description>
    </item>
    
    <item>
      <title>Status.net - The future (hopefully) of microblogging!</title>
      <link>/status-net-the-future-hopefully-of-microblogging/</link>
      <pubDate>Thu, 18 Mar 2010 01:25:37 +0000</pubDate>
      <guid>/status-net-the-future-hopefully-of-microblogging/</guid>
      <description>First, if you think Twitter / Google Buzz / Petstatus.com are silly and just fads, you can go ahead and navigate away from this page.
For those of you who believe that &amp;ldquo;microblogging&amp;rdquo; is a new form of communication between people, then listen up. If you have an account on twitter, why do I have to have an account on twitter as well to subscribe to your updates? What about facebook?</description>
    </item>
    
    <item>
      <title>XKCD&#39;s Collatz Conjecture</title>
      <link>/xkcds-collatz-conjecture/</link>
      <pubDate>Fri, 05 Mar 2010 05:44:25 +0000</pubDate>
      <guid>/xkcds-collatz-conjecture/</guid>
      <description>In the XKCD comic dated 3/4/2010, the Collatz Conjecture presents the following scenario: Well I don&amp;rsquo;t know if your friends will stop calling your or not, but I was curious about what the graph would actually look like. The graph in the comic looks like it was created with Graphviz, one of my favorite programs!
So I wrote a quick bash script to generate the approrpiate links for graphviz to interpret:</description>
    </item>
    
    <item>
      <title>Sugru Covered Joysticks</title>
      <link>/sugru-covered-joystick/</link>
      <pubDate>Thu, 25 Feb 2010 03:30:06 +0000</pubDate>
      <guid>/sugru-covered-joystick/</guid>
      <description>A shout out and big thanks to my friend DangerJim who gave me some sugru to help coat the joysticks of my RC trainsmitter so they don&amp;rsquo;t hurt my thumbs. The results look pretty nice:</description>
    </item>
    
    <item>
      <title>Super Paper Mario - Chapter 2 Graph</title>
      <link>/super-paper-mario-graph/</link>
      <pubDate>Sun, 24 Jan 2010 19:15:09 +0000</pubDate>
      <guid>/super-paper-mario-graph/</guid>
      <description>My girlfriend plays an interesting Wii game called Super Paper Mario where Mario can shift between a 2-dimensional and a 3-dimensional world. Pretty interesting. In chapter 2 section 4 there is a maze of rooms where one must find the last room, room 10. Of course there are walk-throughs all over the internet, but I had her read to me what room she was in, which door she walked through, and what in what room she emerged.</description>
    </item>
    
    <item>
      <title>DIYDrone: IMU First steps</title>
      <link>/diydrone-imu-first-steps/</link>
      <pubDate>Fri, 15 Jan 2010 16:45:54 +0000</pubDate>
      <guid>/diydrone-imu-first-steps/</guid>
      <description>This is my first step towards building a UAV, it is a Inertial Measurement Unit.</description>
    </item>
    
    <item>
      <title>Automated Aftershock Playing Bot</title>
      <link>/automated-aftershock-playing-bot/</link>
      <pubDate>Mon, 30 Nov 2009 02:18:16 +0000</pubDate>
      <guid>/automated-aftershock-playing-bot/</guid>
      <description>This is a bot I wrote to play Aftershock games for me. Aftershock produces these 5 games that are all basically the same, but with different themes:
Engines of War - 138071613 Undead Live - 175496321 Mark of Mafia - 833613775 Gunshock Racing - 124286853 Dragon Masters - 304299067
If you play any of these games, feel free to ally with me :) If aftershock bans me, no big deal :)</description>
    </item>
    
    <item>
      <title>A Car Wreck</title>
      <link>/a-car-wreck/</link>
      <pubDate>Wed, 25 Nov 2009 01:33:01 +0000</pubDate>
      <guid>/a-car-wreck/</guid>
      <description>This is mostly for my archival purposes.</description>
    </item>
    
    <item>
      <title>My Jar of Fireflies</title>
      <link>/my-jar-of-fireflies/</link>
      <pubDate>Wed, 30 Sep 2009 20:12:35 +0000</pubDate>
      <guid>/my-jar-of-fireflies/</guid>
      <description>I&amp;rsquo;ve seen a lot of electronic fireflies on the internet. Here, here, and probably others. The theory is simple, just small LED&amp;rsquo;s charlieplexed with a microcontroller. I wanted to take it a step futher, with a light sensor, solar panel, and more complex firmware.
This is my first microcontroller project from scratch, and I got to learn all sorts of interesting things like SPI programming, Watchdog Timers, Sleep states, and many other things&amp;hellip;</description>
    </item>
    
    <item>
      <title>Final Clock Post</title>
      <link>/final-clock-post/</link>
      <pubDate>Wed, 16 Sep 2009 01:43:46 +0000</pubDate>
      <guid>/final-clock-post/</guid>
      <description>I&amp;rsquo;ve finally moved to Colorado, and I had to leave the big clock behind, and luckily I had finished it:
I finilized the code, installed the clock in my church, and programmed it for there needs. The code is stored here if someone want to see it. If you want to check it out run:
git clone https://github.com/solarkennedy/clock.git I have a little more technical info on my wiki, but it basically goes like this:</description>
    </item>
    
    <item>
      <title>Finishing Clock Teaser</title>
      <link>/finishing-clock-teaser/</link>
      <pubDate>Thu, 30 Jul 2009 00:09:55 +0000</pubDate>
      <guid>/finishing-clock-teaser/</guid>
      <description>The clock is almost finished, I&amp;rsquo;m just sanding the rough edges and putting on the final coat of paint. All schematics and code will be on my wiki when I&amp;rsquo;m finished.</description>
    </item>
    
    <item>
      <title>Toorcamp: Day 2</title>
      <link>/toorcamp-day-2/</link>
      <pubDate>Sun, 05 Jul 2009 02:14:13 +0000</pubDate>
      <guid>/toorcamp-day-2/</guid>
      <description>After this second day of talks and no missle silo, there was this strange influx of women as the sunset approached. Turns out they were not for the camp, they were for the band:
They thought it was cool I guess. Somehow the owner of the silo booked these two events to have them intersect. Why else would 3 bands play in the middle of nowhere?
Afterwards there was free beer, and let me tell you, geeks can party hardy all night long:</description>
    </item>
    
    <item>
      <title>ToorCamp: Day 1</title>
      <link>/toorcamp-day-1/</link>
      <pubDate>Fri, 03 Jul 2009 17:37:32 +0000</pubDate>
      <guid>/toorcamp-day-1/</guid>
      <description>When I first arrived at toor camp, I was issued a Hardhat and a kit of electronics to construct my own badge:
[](/uploads/DCAM0007-toorcamp.jpg)
What a cool start! Combined with the already cool scenery:
Only one problem: no silo access. We&amp;rsquo;ll see if that changes for day two&amp;hellip;</description>
    </item>
    
    <item>
      <title>Decrypting an eBook to make it Searchable</title>
      <link>/decrypting-an-ebook-to-make-it-searchable/</link>
      <pubDate>Thu, 11 Jun 2009 20:23:43 +0000</pubDate>
      <guid>/decrypting-an-ebook-to-make-it-searchable/</guid>
      <description>So I spent $22 on an ebook for school.
It has this crappy DRM that only lets me view the pdf on one computer using only &amp;ldquo;Adobe Digital Editions&amp;rdquo;.
If that wasn&amp;rsquo;t so bad, only a small subset of the text is OCR&amp;rsquo;d, so most of it isn&amp;rsquo;t even searchable!
Now I&amp;rsquo;m pissed, but wait, what do you say? These files are just RSA encrypted, and I have the key?</description>
    </item>
    
    <item>
      <title>My Wireless Cracking Tool</title>
      <link>/my-wireless-cracking-tool/</link>
      <pubDate>Mon, 01 Jun 2009 08:00:51 +0000</pubDate>
      <guid>/my-wireless-cracking-tool/</guid>
      <description>I&amp;rsquo;ve become a semi-expert on wireless networking and their security features.. and how to get around them. Before I continue I want to emphasize:
The act of cracking encryption is not illegal just like picking a lock is not illegal. It is the unauthorized access of that network which is illegal, just like breaking and entering is illegal.
So. To sum it up, there are two types of encryption. There is the weak kind (wep) and the strong kind (wpa).</description>
    </item>
    
    <item>
      <title>Discrete Wavelets Final Project - Decaptcha,</title>
      <link>/discrete-wavelets-final-project-decaptcha/</link>
      <pubDate>Fri, 01 May 2009 17:17:02 +0000</pubDate>
      <guid>/discrete-wavelets-final-project-decaptcha/</guid>
      <description>This semester I took a class on Discrete Wavelets. It was awesome. The coolest part was our group final project. My group had the best topic by far: Decoding a Captcha! (Click on any of the following images to view them full size)
We&amp;rsquo;ve all seen Captchas before. They are used on websites to make sure that the person on the website is a real human, not a computer program. Why do we want to break them?</description>
    </item>
    
    <item>
      <title>Camping at Rocky Bayou State Park</title>
      <link>/camping-at-rocky-bayou-state-park/</link>
      <pubDate>Sat, 21 Mar 2009 22:49:40 +0000</pubDate>
      <guid>/camping-at-rocky-bayou-state-park/</guid>
      <description>Cody and I camped two nights at Rocky Bayou State Park!
Yea she doesn&amp;rsquo;t look very happy. Yes, we are camping on concrete&amp;hellip;.
Day 2. That&amp;rsquo;s better!
NEXT: Our previous vacation was a Cruise!</description>
    </item>
    
    <item>
      <title>Verizon FiOS Wireless Key Calculator!</title>
      <link>/verizon-fios-wireless-key-calculator/</link>
      <pubDate>Tue, 03 Mar 2009 18:58:33 +0000</pubDate>
      <guid>/verizon-fios-wireless-key-calculator/</guid>
      <description>More Update: There are new AP&amp;rsquo;s that don&amp;rsquo;t conform to this pattern. If the calculator doesn&amp;rsquo;t work on yours, maybe it is like these non-conforming-wep keys
Update: A cool cool guy named Dylan Taylor wrote a java implementation of this script: http://www.fwc.dylanmtaylor.com/ if you need an offline version
Update: I wrote a bash implementation to make it easy to script, and for offline usage
In my previous post I showed a correlation between the WEP key of a Verizon FiOS install and the MAC address of the access point.</description>
    </item>
    
    <item>
      <title>My Desktop</title>
      <link>/my-desktop/</link>
      <pubDate>Fri, 20 Feb 2009 23:06:21 +0000</pubDate>
      <guid>/my-desktop/</guid>
      <description>Posting a screenshot of your desktop is the cool thing for geeks to do apparently.
It&amp;rsquo;s Ubuntu 8.10, no big surprise there. I&amp;rsquo;m using the &amp;ldquo;Dusk&amp;rdquo; theme with the proposed background for the next Ubuntu. I really like it.</description>
    </item>
    
    <item>
      <title>Couples Kayak at Anclote Key</title>
      <link>/couples-kayak-at-anclote-key/</link>
      <pubDate>Sun, 15 Feb 2009 22:17:09 +0000</pubDate>
      <guid>/couples-kayak-at-anclote-key/</guid>
      <description>The weekend I Kayaked to Anclote Key. Here is a picture of us unloading our Kayaks! (Not me in the picture)
We Kayaked 4 hours to the north end of Anclote Key. Here the the google maps link.
We camped overnight on the night of Valentines day. How romantic right?
And here is Cody inside the tent looking cutsy:
And if you have Google Earth, here is a link to a path I made of the trip: anclote-key-trip And if you want to use Google Maps, here is a link to the arial photo.</description>
    </item>
    
    <item>
      <title>My Dad&#39;s Terminal Patent</title>
      <link>/my-dads-terminal-patent/</link>
      <pubDate>Thu, 12 Feb 2009 19:40:06 +0000</pubDate>
      <guid>/my-dads-terminal-patent/</guid>
      <description>I suppose I come from a&amp;hellip; short line of engineers. My father used to work for Paradyne which was gobbled up by At&amp;amp;t, and is now owned by Zhone.
But back in the day they worked on &amp;ldquo;Terminals&amp;rdquo;. You know, back when &amp;ldquo;Computers&amp;rdquo; has a gazillion serial ports and the &amp;ldquo;Terminal&amp;rdquo; was the box that had a monitor and keyboard which parsed the 300baud green text? Yea neither do I&amp;hellip;</description>
    </item>
    
    <item>
      <title>Myspace Phishing Analysis</title>
      <link>/myspace-phishing-analysis/</link>
      <pubDate>Wed, 11 Feb 2009 22:40:10 +0000</pubDate>
      <guid>/myspace-phishing-analysis/</guid>
      <description>A couple of years ago, a large list of phished Myspace accounts was leaked on the internet. I stumpled upon them and ran a very simple analysis. Check it out:
root@a:/# cat myspace.hackedlist | cut -f 2 -d : | sort | uniq -c | sort -n | tail -n 20 14 qwerty1 15 123456a 15 babygirl1 15 blink182 16 123456 16 123abc 16 iloveyou2 17 football1 17 nicole1 18 number1 19 password 23 myspace1 24 fuckyou1 28 iloveyou1 28 monkey1 29 fuckyou 54 abc123 74 password1 The file was in the form of &amp;ldquo;Username:password&amp;rdquo;, so the first part of that command &amp;ldquo;cuts&amp;rdquo; the second column, with the colon as the delimiter.</description>
    </item>
    
    <item>
      <title>Verizon FiOS Wireless Security Analysis</title>
      <link>/verizon-fios-wireless-security-analysis/</link>
      <pubDate>Sat, 07 Feb 2009 18:29:04 +0000</pubDate>
      <guid>/verizon-fios-wireless-security-analysis/</guid>
      <description>Take a look at some wireless keys that I&amp;rsquo;ve collected from some Verizon FiOS installs around Tampa:
00-18-01-EA-3D-99,E3X12,6,WEP,1801349FCA 00-18-01-F0-6D-C4,NAMX2,1,WEP,18014B311F 00-18-01-F0-95-78,MWXV2,11,WEP,180149FF66 00-18-01-FD-4F-0E,R0LC7,1,WEP,1801BC5C6B 00-18-01-FE-15-46,JE2K7,1,WEP,1801C1B02B 00-18-01-FF-DF-DD,HH150,1,WEP,1F900396C5 00-1F-90-E0-B1-F8,3RA18,6,WEP,1801CDF4AF 00-1F-90-E0-B5-AC,OQ838,6,WEP,1801CF5700 00-1F-90-E2-7E-61,7WY20,6,WEP,1F90021D27 00-1F-90-E3-1E-90,C7WA0,6,WEP,1F9007C188 00-1F-90-E3-2E-07,DJP80,6,WEP,1F90063349 00-1F-90-E6-A7-D5,BJ2Z0,11,WEP,1F9018F797 00-1F-90-E6-D4-E3,RSHZ0,4,WEP,1F901944DB
What you are looking at here is MAC, SSID, Channel, Encryption, Key.
Notice that they are all WEP, 64bit, with 5 Alpha numeric SSID&amp;rsquo;s.
I want to emphasize that these are the defaults, and only geeks, nerds and the like change the defaults.</description>
    </item>
    
    <item>
      <title>Amazing Breakfasts with Cody!</title>
      <link>/amazing-breakfasts-with-cody/</link>
      <pubDate>Sat, 10 Jan 2009 15:31:52 +0000</pubDate>
      <guid>/amazing-breakfasts-with-cody/</guid>
      <description>Often I get to enjoy wonderful mornings with my girlfriend Cody. She is a great cook, and one of her best concoctions are these AMAZING breakfast burritos:
Sorry for the bad picture, I took it with the webcam on my eeepc. I don&amp;rsquo;t apologize for her cleavage. I did that intentionally without her knowing :)</description>
    </item>
    
    <item>
      <title>Cruise - Day 5</title>
      <link>/cruise-day-5/</link>
      <pubDate>Sat, 20 Dec 2008 23:05:19 +0000</pubDate>
      <guid>/cruise-day-5/</guid>
      <description>Today was our trip back to Tampa, so we saw a show:
Crowd Control?
I&amp;rsquo;m sure this family had fun. I wonder what the personality is like of whoever made the door decorations:</description>
    </item>
    
    <item>
      <title>Cruise - Day 4</title>
      <link>/cruise-day-4/</link>
      <pubDate>Sat, 20 Dec 2008 23:00:05 +0000</pubDate>
      <guid>/cruise-day-4/</guid>
      <description>Today we visited the ancient Mayan ruins of Tulum.
[gallery]</description>
    </item>
    
    <item>
      <title>Cruise - Day 3</title>
      <link>/cruise-day-3/</link>
      <pubDate>Sat, 20 Dec 2008 20:42:53 +0000</pubDate>
      <guid>/cruise-day-3/</guid>
      <description>Today Cody and I visited the beautiful Grand Cayman:
Myspace shot:
And for the geek in everyone, hacked someone&amp;rsquo;s WEP key and used their wireless while on the land. The ip I used was 63.136.113.229 which is hosted by Cable and Wireless. Here is an MTR to it:
Yea..maybe not so interesting to others. Our shore excursions to go snorkeling with sting rays got canceled because of the weather&amp;hellip;.</description>
    </item>
    
    <item>
      <title>Cruise - Day 1,2</title>
      <link>/cruise-day-12/</link>
      <pubDate>Sat, 20 Dec 2008 20:35:49 +0000</pubDate>
      <guid>/cruise-day-12/</guid>
      <description>Cody and I took started off our cruise in Tampa on Monday, Dec 15:
Beautiful! Here is look at the Bow (We were on the Carnival Inspiration):
And the cool Radars!</description>
    </item>
    
    <item>
      <title>Giving My WRT54GL a 2G Drive</title>
      <link>/giving-my-wrt54gl-a-2g-drive/</link>
      <pubDate>Sat, 06 Dec 2008 22:05:55 +0000</pubDate>
      <guid>/giving-my-wrt54gl-a-2g-drive/</guid>
      <description>The WRT54GL is a pretty cool little toy. Yes it is a router with a cheezy web interface for grandmas with ESSID&amp;rsquo;s named &amp;ldquo;linksys&amp;rdquo;. But you can flash it with your own linux and solder in your own SD card to turn it from a 4MB machine to a 2GB machine&amp;hellip; far out!
Above it the bare board that I&amp;rsquo;ve unscrewed out of the thing. Some solder + a card&amp;hellip;..</description>
    </item>
    
    <item>
      <title>My Home-Made Laptop Security Program </title>
      <link>/my-home-made-laptop-security-program/</link>
      <pubDate>Fri, 05 Dec 2008 17:17:50 +0000</pubDate>
      <guid>/my-home-made-laptop-security-program/</guid>
      <description>The NetworkManager program in linux has a create feature called a dispatcher, which can run arbitrary programs when certian things about the network change. For instance it can turn on a firewall or notify a user when the network comes up, or start up an arp alert program!
I wanted a program that would alert me of my laptop&amp;rsquo;s where-a-bouts, as well as use the webcam to take a picture, in order to aid me in tracking it down if it got stolen.</description>
    </item>
    
    <item>
      <title>Boom-Boom Classes?</title>
      <link>/boom-boom-classes/</link>
      <pubDate>Sat, 22 Nov 2008 19:19:26 +0000</pubDate>
      <guid>/boom-boom-classes/</guid>
      <description>I was talking with my girlfriend recently, and I told her that her &amp;ldquo;RA Class&amp;rdquo; (RA is short for resident assistant, someone who lives on campus to assist other residents) is a &amp;ldquo;Boom Boom&amp;rdquo; class. She is from Niceville and had never heard of the term. I knew it as a slang term for a low level class that required no effort, taken simply for credit.
In an effort to locate some sort of source for my definition besides anecdotes of the people I knew, I was only able to find other personal references (myspace, facebook) coincidentally from people in Tampa.</description>
    </item>
    
    <item>
      <title>VNC Surpirse!</title>
      <link>/vnc-surpirse/</link>
      <pubDate>Tue, 18 Nov 2008 03:01:04 +0000</pubDate>
      <guid>/vnc-surpirse/</guid>
      <description>Don&amp;rsquo;t you just love it when co-workers communicate with you in the most interesting ways???
Sorry it is so small. Click on it!</description>
    </item>
    
    <item>
      <title>New/Old Laptop: Ubuntu Montage </title>
      <link>/newold-laptop-ubuntu-montage/</link>
      <pubDate>Tue, 18 Nov 2008 01:20:49 +0000</pubDate>
      <guid>/newold-laptop-ubuntu-montage/</guid>
      <description>You may remember my old laptop from such posts as this.
Well it broke, so I bought another one!
It even has the original stickers. But.. Its slower than I remember. So I&amp;rsquo;m trying out different Ubuntu versions to see what boots the fastest. Here are my methodology and results.
Methodology: The first number is the ammount of seconds from the 0 in the grub countdown till the X in the initial X-server.</description>
    </item>
    
    <item>
      <title>Its a Wiki-Wiki-World</title>
      <link>/its-a-wiki-wiki-world/</link>
      <pubDate>Sun, 16 Nov 2008 18:51:02 +0000</pubDate>
      <guid>/its-a-wiki-wiki-world/</guid>
      <description>You may not know, but I used to work for Wikipedia! (here if you don&amp;rsquo;t believe me)
You also may not know that all Wikimedia Foundation projects (like Wikipedia) run off of a opensource piece of software called Mediawiki.
The software is the bomb, and I&amp;rsquo;ve had my own for a number of years to keep track of my own project documentation (like a notebook.) But I&amp;rsquo;ve never made it public.</description>
    </item>
    
    <item>
      <title>n2n - Peer to peer VPN?</title>
      <link>/n2n-peer-to-peer-vpn/</link>
      <pubDate>Sat, 15 Nov 2008 02:17:33 +0000</pubDate>
      <guid>/n2n-peer-to-peer-vpn/</guid>
      <description>Most vpns&amp;hellip; in fact&amp;hellip; all of them, are based on a client/server model. This means that all vpn clients call home to one vpn server and connect. All traffic goes through that vpn server and then gets passed on to its original destination. But what if you could have the benefits of VPN, but be able to communicate directly to other VPN peers, so without the latency and bandwidth limitations?</description>
    </item>
    
    <item>
      <title>Ettercap&#39;s Author&#39;s Birthday!</title>
      <link>/ettercaps-authors-birthday/</link>
      <pubDate>Sat, 15 Nov 2008 02:04:41 +0000</pubDate>
      <guid>/ettercaps-authors-birthday/</guid>
      <description>Today is the Birthday of AloR, the author of the amazing tool, ettercap.
You can see that because it is his birthday, he asks that you email him. I happily obliged.
Ettercap is an amazing tool. Not only does it have a console, curses, and graphical versions, it can be scripted, hacked, used with plugins, and the list goes on. Here is a screen shot of it in progress:
Here is the everyday use senario:</description>
    </item>
    
    <item>
      <title>Operation LAN Party: Success </title>
      <link>/operation-lan-party-success/</link>
      <pubDate>Tue, 30 Sep 2008 03:11:20 +0000</pubDate>
      <guid>/operation-lan-party-success/</guid>
      <description>On Saturday we celebrated a my belated birthday by having a LAN party at my work Sago Networks.
Games we played:
Gate 88
Halo
Open Arena
Nexuiz</description>
    </item>
    
    <item>
      <title>PAP Solutions Hack</title>
      <link>/pap-solutions-hack/</link>
      <pubDate>Mon, 29 Sep 2008 17:19:35 +0000</pubDate>
      <guid>/pap-solutions-hack/</guid>
      <description>My girlfirend likes to do these puzzles called Pic-A-Pix from ConceptisPuzzles. They use a matrix of numbers to hint the puzzler to to filling in pixels to create pixel art. Sometimes there is color. Every week four new PAP&amp;rsquo;s are pushed out, and I&amp;rsquo;ve been told that the answers are somewhere on the website&amp;hellip;. but that would be cheating. :)
So I wrote my own program to decode these and make images using html tables.</description>
    </item>
    
    <item>
      <title>DNS Training At Sago</title>
      <link>/dns-training-at-sago/</link>
      <pubDate>Thu, 25 Sep 2008 02:14:57 +0000</pubDate>
      <guid>/dns-training-at-sago/</guid>
      <description>This past Tuesday I hosted a DNS training seminar for all the employees at Sago. It went over great! The curriculum involved:
The difference between Caching and Authoritative DNS All the different types of DNS Records How to use dig and how to interpret it How to troubleshoot dns problems Secret DNS Tricks! I recorded the AUDIO (sorry the audio sucks) and the BASH history for those poor souls who want to listen to me drone on for an hour about dns&amp;hellip;.</description>
    </item>
    
    <item>
      <title>Custom Arp Alerts II!</title>
      <link>/custom-arp-alerts-ii/</link>
      <pubDate>Thu, 21 Aug 2008 11:59:57 +0000</pubDate>
      <guid>/custom-arp-alerts-ii/</guid>
      <description>So I&amp;rsquo;ve found a better way to do what I did in the previous post. Instead of running a separate script to parse the arp alert logs, I have arp alert itself send the alerts! The key is this line in the arpalert.conf
action on detect = &amp;quot;/etc/scripts/arp-alert&amp;quot; Its so simple, it just runs that script sending the information about the alert as certain arguments. With this I have more control over the formatting of arpalert messages:</description>
    </item>
    
    <item>
      <title>Custom Arp-Alerts</title>
      <link>/custom-arp-alerts/</link>
      <pubDate>Wed, 20 Aug 2008 23:17:05 +0000</pubDate>
      <guid>/custom-arp-alerts/</guid>
      <description>So I was looking around, and I wanted some sort of tool to allow me to be more aware about what was happening in the lower &amp;ldquo;bowels&amp;rdquo; of the network that I&amp;rsquo;m on with my laptop. So what is it that I want&amp;hellip;
What I really want is some sort of mac-address based buddy list. One that would show my a list of the mac addresses talking on my network, and allow me to alias them.</description>
    </item>
    
    <item>
      <title>DNS Cache Poisoning </title>
      <link>/dns-cache-poisoning/</link>
      <pubDate>Thu, 31 Jul 2008 12:00:10 +0000</pubDate>
      <guid>/dns-cache-poisoning/</guid>
      <description>Recently a DNS expert found a flaw in the way that DNS servers talk to other DNS servers to get records that allows interested parties (hackers) to insert their own records. If you need a primer: the Wikipedia link.
Well&amp;hellip; a DNS flaw is no fun without a tool to use it. So this guy &amp;ldquo;HD Moore&amp;rdquo; wrote a program (script) that takes advantage of this and makes it relatively easy for someone to use something called Metasploit to tinker with it.</description>
    </item>
    
    <item>
      <title>Failing Hard Drives</title>
      <link>/failing-hard-drives/</link>
      <pubDate>Wed, 26 Mar 2008 14:14:12 +0000</pubDate>
      <guid>/failing-hard-drives/</guid>
      <description>So lots of people use computers, and lots of people have harddrives.
At my work I deal with lots and lots of computers and lots and lots of drives. So during a week I see plenty of failing drives, just because of the statistics.
So now-a-days I run a &amp;ldquo;smart test&amp;rdquo; on the drive to see how it is. Unfortunately most drive testers and smart tests are crap. So I made my own and I want to share it with you&amp;hellip;.</description>
    </item>
    
    <item>
      <title>Putting the Clock Together</title>
      <link>/putting-the-clock-together/</link>
      <pubDate>Fri, 14 Dec 2007 14:22:12 +0000</pubDate>
      <guid>/putting-the-clock-together/</guid>
      <description>We have finally built enough pieces of the clock together to get some digits! It basically comes down to a white wooden box, a piece of cardboard with the LEDs wired, running to a RJ45 jack. Then a stryofoam cutout painted black, with a white piece of paper and plexyglass on top for a face.
Here is the template with wired LEDS: A multitude of completed digits (still missing the blank faceplate).</description>
    </item>
    
    <item>
      <title>Great American Teach In - Wikipedia</title>
      <link>/great-american-teach-in-wikipedia/</link>
      <pubDate>Thu, 15 Nov 2007 22:07:44 +0000</pubDate>
      <guid>/great-american-teach-in-wikipedia/</guid>
      <description>This is a video that I made for some fourth graders in an attempt to explain what Wikipedia is, how it works, and why it is neat. We made a new article together, and they all went home with a piece of fiber optic to remind them of the event. This is the video I showed them for historical purposes:
Get the Flash Player to see this player.</description>
    </item>
    
    <item>
      <title>Blogging = Human Salvation</title>
      <link>/blogging-human-salvation/</link>
      <pubDate>Tue, 09 Oct 2007 19:27:24 +0000</pubDate>
      <guid>/blogging-human-salvation/</guid>
      <description>Now hear me out, I used to be a hater. It seems that the more people blog, the more the internet is loaded up with wasted bandwidth and ad space. The truth is that blogging has a very small marginal cost, and usually blogging occupies time that would not otherwise be spent doing &amp;ldquo;productive&amp;rdquo; things.
But! What if all of humanity blogged, and then we could aggregate all blogs on the internet.</description>
    </item>
    
    <item>
      <title>Clock Primer</title>
      <link>/clock-primer/</link>
      <pubDate>Wed, 02 May 2007 02:08:51 +0000</pubDate>
      <guid>/clock-primer/</guid>
      <description>Here is the intro to the clock project:
We start with a template made at a sign shop, and the cover the edges with aluminum tape to protect them from the heat from the hot wire.
I&amp;rsquo;ve pushed out holes with a strait wire and a blow torch to give my entry points for my hot wires. Its going to be a plunge and cut job.
The laserpointer helps guide the hot wire because it inevitably bends and makes crooked cuts.</description>
    </item>
    
    <item>
      <title>Whiteboard Whiteboard Interactions</title>
      <link>/whiteboard-whiteboard-interactions/</link>
      <pubDate>Sat, 27 Jan 2007 21:12:26 +0000</pubDate>
      <guid>/whiteboard-whiteboard-interactions/</guid>
      <description>Here are some of the messages that are passed back and forth between my roommate and I&amp;hellip;
Sometimes we make up silly things&amp;hellip; late at night&amp;hellip;
Sometimes we borrow each others things&amp;hellip;
And we get the better of each other with our antics&amp;hellip;
Our true feelings for each other?
To do list&amp;hellip;
Sometimes we DON&amp;rsquo;T let each other borrow things&amp;hellip;</description>
    </item>
    
    <item>
      <title>Compact Flash Replacement</title>
      <link>/compact-flash-replacement/</link>
      <pubDate>Sat, 20 Jan 2007 16:38:32 +0000</pubDate>
      <guid>/compact-flash-replacement/</guid>
      <description>My laptop is a Sharp MM20, which I knew I was going to spraypaint eventually, I just needed a reason to. After about a year of wear and scratches from abuse, it was time.
I&amp;rsquo;m replacing the harddrive in my laptop with a 4GB flash card. It should be faster:
/dev/sdb: Timing cached reads: 3532 MB in 2.00 seconds = 1766.79 MB/sec Timing buffered disk reads: 58 MB in 3.10 seconds = 18.</description>
    </item>
    
    <item>
      <title>Next Piece: Armband</title>
      <link>/next-piece-armband/</link>
      <pubDate>Wed, 10 Jan 2007 06:34:04 +0000</pubDate>
      <guid>/next-piece-armband/</guid>
      <description>We were thinking it would be cool to have the LCD display be on the arm, instead of the side of the gun.
So we have modified roller-blading wrist-guards for the purpose:
Watch Karl Show It Off!
Karl&amp;rsquo;s Mom helped with the sewing. Next we&amp;rsquo;ll add buttons for mode and backlight. I think they will be very thin and unobtrusive.</description>
    </item>
    
    <item>
      <title>Our First Real Gun</title>
      <link>/our-first-real-gun/</link>
      <pubDate>Sat, 06 Jan 2007 06:26:25 +0000</pubDate>
      <guid>/our-first-real-gun/</guid>
      <description>Here it is, the big milestone: our first real gun!
From this: To this!
You can see how we have gutted an air-soft gun, and inserted our led&amp;rsquo;s and switches to turn it into a lasertag gun. All of our guns will be interchangeable as they will all have the same Cat-5 Pinout. Eventually we will have an array of guns and we can change their properties in software. (Reload times, shots per clip, damage per shot, etc.</description>
    </item>
    
    <item>
      <title>Prototype #1</title>
      <link>/prototype-1/</link>
      <pubDate>Sun, 31 Dec 2006 15:33:53 +0000</pubDate>
      <guid>/prototype-1/</guid>
      <description>Here are some pictures and some short video of our first prototype gun!
A more or less finished backpack.
2x4 Gun and LCD wristband
I love having good tools, and this $40 soldering iron is the best $40 I ever spent.
Nicd battery pack! With velcro! And Kyle explains it all! Sort of&amp;hellip;</description>
    </item>
    
    <item>
      <title>Lasertag Camo</title>
      <link>/lasertag-camo/</link>
      <pubDate>Sat, 18 Nov 2006 23:10:34 +0000</pubDate>
      <guid>/lasertag-camo/</guid>
      <description>Karl and I have taken our backpacks and spraypainted them camo! And we have installed a few components for two test boxes. (Radio, Mainboard, and ISD) You can see me wiring the usb port for the usb key thing. (It stores your personal stats)
More to come as we prototype our first two boxes! </description>
    </item>
    
    <item>
      <title>Ahoy! Holes!</title>
      <link>/ahoy-holes/</link>
      <pubDate>Mon, 25 Sep 2006 01:52:41 +0000</pubDate>
      <guid>/ahoy-holes/</guid>
      <description>The next step in our Lasertag construction project is the preperation of the boxes for our components. We have decided to put all of the electronics in a backpack. But the backpack will need some I/O. We need a rj-45 for the gun, two for the arm-band, a usb for the key, and a hole for the power switch and power plug. How do we do it? We need square holes&amp;hellip; Well, the best and nicest way I can think to do it is to use a little thing called a roto-zip bit.</description>
    </item>
    
    <item>
      <title>Help Expose Scientology</title>
      <link>/help-expose-scientology/</link>
      <pubDate>Sat, 01 Jul 2006 17:56:59 +0000</pubDate>
      <guid>/help-expose-scientology/</guid>
      <description>One of my personally favorite websites is YoureTheManNowDog.com. (You may have noticed the cameo in episode 1.) Founded in 2001, an uncountable number of spoofs have been made, and are stored at the sister site, ytmnd.com. There you can setup your own account and create your own YoureTheManNowDog&amp;rsquo;s! I love it.
Also, being in Tampa, I live close to the Scientology headquarters in Clearwater. Recently a YoureTheManNowDog has been created that exposes some of the terrible things that the church of Scientology has done.</description>
    </item>
    
    <item>
      <title>Myspace Friend Maps</title>
      <link>/myspace-friend-maps/</link>
      <pubDate>Mon, 22 May 2006 21:54:02 +0000</pubDate>
      <guid>/myspace-friend-maps/</guid>
      <description>Ok, I have a seceret: I am a Myspace sellout. Everyone around me was like ooh yea, check out my myspace! Or Ooo, your myspace is sooo cool. Or, Wow, your myspace cures cancer. Well, so I made one, and added friends. I soon realized that Myspace.com is interesting. (Although it sucks too. Ads everywhere, people&amp;rsquo;s pages are often littered with cpu sucking garbage and animated gifs and crappy css.)</description>
    </item>
    
    <item>
      <title>LaserTag!</title>
      <link>/lasertag/</link>
      <pubDate>Mon, 22 May 2006 21:39:16 +0000</pubDate>
      <guid>/lasertag/</guid>
      <description>My friends and I are currently constructing our own lasertag guns using this as a base.
Here is our checklist:
Construct electronic components using the above milestag components.
Get and modify vests to hold components
Melt aluminum and pour guns into molds! Rock on!
Connect it all together and play!
We&amp;rsquo;ve go the electronics together. The vests are on their way via UPS, and my friend Karl and I have the furnace ready and we can melt aluminum!</description>
    </item>
    
    <item>
      <title></title>
      <link>/subscribe/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/subscribe/</guid>
      <description>You can subscribe to my blog in the following ways:
Good old RSS You can get email updates through MailChimp You can follow me on LinkedIn where I cross-post You can follow me on Twitter where I cross-post </description>
    </item>
    
    <item>
      <title>About</title>
      <link>/about/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/about/</guid>
      <description>Hi I&amp;rsquo;m Kyle. I&amp;rsquo;m an engineer who likes to build systems I can be proud of.
As a generalist, there is no problem that I see as beyond my scope.
If you would like to know more, check out my Github or my LinkedIn.
If you want to stay up to date with these posts, you can use the RSS fee or Subscribe via email</description>
    </item>
    
  </channel>
</rss>
