• New Blog

    The time between posts seems to be continually growing. Thankfully my web development business and my newer ecommerce business are keeping me incredibly busy. However, I've also started a new blog dedicated to entrepreneurship. You can check it out at

  • Amazon and Gumroad

    Man, it's been 4 months since my last blog post. Time flies. I've been busy with the usual development projects and I've also been keeping myself even busier with this new thing called "FBA" that I've been doing. Basically it's the E-Bay selling of 2016.

  • Releasing Apps

    I don't ordinarily do app development, but I recently had a project working with a long-time client that involved creating an Ad-Hoc App so that he could showcase some of his video files on his iPad. There were a lot of tears and headaches involved in figuring out how Apple's certificates and mobile provisioning files work, and it took a ridiculous amount of trial and error, however, I was able to do it the exact way he wanted and BEFORE THE DEADLINE.

  • Trello

    For this article we’ll take a break from the more technical things and instead focus on the wonderful organizational tool Trello. You can create a Trello account for free at This article will serve as a brief introduction and showcase the main features, if after reading you’re intrigued I recommend signing up for an account and familiarizing yourself with it. I may write another article on some more advanced features. I've been working with this incredible tool for a couple months now and it has made my busy life that much more manageable.

  • New Ebook

    I'm excited to announce I've launched an e-book! It's available for purchase on Amazon at this link.

  • PDF Shenanigans

    It's been several months since my last post. I figured it was about time to take a breather and get some words out there.

  • SecureWV 2015

    This weekend I attended SecureWV (previously Hackercon) for the first time. It was very informative. Though I missed the first day, there was an excellent presentation on Physical Security and a Python workshop. I look forward to going next year.

  • Ohio Linux Fest 2015

    This weekend I attended Ohio Linux Fest. This was my second year attending, but my first year presenting. It was awesome. A lot of fun was had. Here are some pictures.

  • PHPUnit and Travis

    I've been getting more and more interested in unit testing lately, especially continuous integration to help spot bugs immediately while the errant code is fresh in your mind. Unit testing is a way of testing particular chunks of your code to make sure they're behaving in a way that you expect. PHPUnit is a unit testing framework for PHP. Continuous integration is a method of automatically testing your code whenever a new commit is made to your repository (normally the master branch). The idea behind continuous integration is that it's easier to fix bugs while they're fresh in our mind, so every commit is tested and if a test fails you know exactly which commit introduced the problem.

  • My Docker Info Is Antiquated

    I've received a decent amount of traffic on an article I wrote earlier about docker here which is now pretty much completely useless. This article was written shortly after Ohio Linux Fest and I was super stoked to mess around with these sweet new tools.

  • Now Using Jekyll

    Inspired by the latest WordPress XSS forced patch, I've migrated over to Jekyll for my personal blog. I had mentioned possibly using something other than Jekyll in my related blog post here. Originally I was concerned about moving WordPress content to Jekyll but I found this blog post to be very helpful.

  • Jekyll and Git Hooks

    I've been using WordPress for a while now and I've always enjoyed how easy it is to develop custom themes and plugins for it.  Recently a couple of colleagues expressed concerns with using WordPress for some projects that I'm involved with.  WordPress is quick and easy to get up and running and if you need some modifications it's easy to edit themes and create plugins, however, I've recently been introduced to Jekyll and with the help of git hooks I would argue that it's even easier to add and manage content with Jekyll and Git Hooks than with WordPress AND it has the added benefit of not requiring a database or even PHP.

  • Arduino Weather Display

    Keeping with the tradition of doing temperature related things with the Arduino, I decided that I was going to finally get my LCD display working and make it extra fancy by hooking it up to the internet.

  • Bash Scraping

    Recently I wanted to scrape a dictionary list for import to this name directory plugin. Ordinarily I use PHP for scraping web pages (possibly covered in a future blog entry), but this time the task was relatively easy and the page had dictionary list tags (<dl><dt>...</dt><dd>...</dd></dl>) so I thought it would be easier to use already available text manipulation tools to build the CSV file for import.

  • Using AWS To Test Upgrades

    The most unnerving task that I have to perform on at least a weekly basis is pushing updates and changes to production servers.  With a great deal of preparation and planning the amount of headaches involved with this task can be almost eliminated and downtime can be avoided, but every so often issues spring up where differences between the development environment and the production environment can cause issues or some hiccup in the change process itself could cause downtime.  There are several good methods and tools for covering your bases and avoiding this, but recently I was able to perform a major server upgrade for a client that was using an ec2 server that was so painless I was inspired to write about the process.  This will not be a highly technical article, but will showcase how to use elastic IP addresses and AMIs to perform seamless upgrades and testing.

  • OpenVPN Adventures

    I recently had the pleasure of configuring a VPN between a data center in Virginia, one in California, and an Amazon VPC.  The fun part was that we had to do this with no physical access to the machines and without having admin access to the switches that the servers in the data centers were behind.  With the limitations we had, we decided to use OpenVPN.  OpenVPN is open source and uses a custom protocol that uses SSL to share keys and is actually pretty easy to work with.  This article will focus on setting up a VPC and a VPN server that will allow you to connect to that VPC.

  • Useless Arduino Hacking

    I recently bought an Arduino Uno kit with an Ethernet shield and a LCD output. So far it has been a lot of fun tinkering around with. My first 'useful' project was to take the example system they gave to display a temperature reading from a thermal transistor and hook it up to the internet so that I could call in and check the temperature remotely.

  • Ansible

    Ansible is a tool designed to automate tasks on several machines at once and define their role within a network.  It is well documented here and there is even a video here.  There is already a wealth of information about Ansible out there, so this guide will just aim to get you started quickly.

  • Up And Running With Vagrant And Docker

    Check out my later blog post for more accurate and up-to-date information on docker

  • Simplify Your Life With Git Hub Feature Branching

    Recently I started working on a fairly complicated, high-volume Magento website.  This website had a development and a production server and the client was juggling several different modifications at once in an effort to boost their sales and improve the customer experience.  The problem was, that there was only one development server and they would often like to go back and forth between edits to test functionality out and the experience would come out to something like: