Select Page

Introspective DevOps

...sharing is caring... Resume Contact

How to create an Alexa Skills App

I finally had time to dig into the Alexa API and setup some custom skills. Below I will detail a basic skill I wrote in the last day and a half over Christmas vacation. App Functionality: Integrate Navy Federal Credit Union with Alexa. Note: Yep I know this App is...

Docker Cron Jobs with Supervisord

Yeah, this is the post you just spent hours looking for. I know this because I just did the same thing. So I run production kubernetes clusters with docker and had a use case for a cron job but could not get it to work for anything.  Anyways heres the gist: The...

Automating Amazon Giveaways

Sadly Amazon's website is riddled with inline css and inline jquery. Which allows those with a given skillset to take advantage of certain automation techniques. After reading the terms and conditions for Amazon Giveaways I determined it was not against the rules to...

Deploying Jenkins in a Kubernetes Cluster

If you have attempted to deploy Jenkins into k8s you have likely come across the following issue when using the official Jenkins image on docker hub. Your persistent volume storage cannot be written to by the Jenkins container. kubectl describe pod [pod] FirstSeen...

Kong with Kubernetes

Update #1 Updated: November 2nd, 2016 Thanks to Derek Perkins, who was having issues with getting this setup on minikube I found that since July 30th some changes have been made in regards to kong on docker hub so please use the following yaml files instead: Kong-App...

Why you should design for HA in the Cloud

I awoke this morning at 5am to this lovely mess: First, JetPack, a service provided by Wordpress that does monitoring and statistics on Wordpress blogs has said that my blog was not reachable. Typically this is something that easily resolves itself with monit and...

Dockerize a Flask app w/ nginx and uwsgi

Searching google gives you plenty of tutorials for setting up a Flask application behind nginx with uwsgi; however it has been my experience over the past two days that almost none of those tutorials work or are severely outdated. So this weekend while updating my...

Upgrading OMD 1.20 to 1.30

There is nothing like upgrading minor versions of software to find they don't work as expected. But nonetheless this is the typical case; especially when you start fiddling with core code without submitting PR's. Today to improve some of my code base I upgraded OMD...

Dockerizing a Symfony Application

I've been working on getting a Symfony API Dockerized for what seems like entirely too long. Some of the issues I came across were with PHP 7.0 not being fully supported with Symfony so I had to fall back to PHP 5.6; however I am proud to say I have completed this...

Building a simple JSON API with GoLang

I want to write more Golang; In order to do this I need a reason to write Golang. And the truth is I could use the performance gains of Go to resolve some of the performance issues I have been experiencing with a large Flask restful application. So today just to force...

OCR Basics – Reading a Business Card

OCR, Optical character recognition, is being used widely now a days for everything from spamming people via text on twitter to actual business needs. Amazingly enough Python and Tesseract make this a extremely trivial task. Below we will take a business card from...

The return of the default variable, Golang!

I started my development career writing A LOT of Perl, which means I am familiar with what is called "the default variable". Something in most situations looked down upon and advised against using; even though it is obviously a huge part of how Perl works and what Mr....

Auto populate location data based on Zipcode

Today I had to build a simple registration form, to make things a bit faster for the end user I went with the basic you provide me with your ZipCode and I'll fill out the City and State that you see most places. In order to do this we use the Google Geocode API which...