Error Handling in Python: Result Class

Error Handling in Python: Result Class

Feb 06 2019 — In a previous post, I explained how concepts from functional programming can be incorporated with object-oriented code to improve the tedious and mandatory task of error handling and input validation through the use of the Result class. That post explained how to implement the Result class in C#. Since I have been writing mostly Python code lately, I created a new implementation and documented its use. Due to Python’s duck-typing, this implementation is (IMO) more natural and makes reasoning about the code it supports much easier.

How to Continuously Deploy a Heroku App with Azure DevOps

How to Continuously Deploy a Heroku App with Azure DevOps

Jan 20 2019 — If you create Heroku apps, you know that the only built-in options for deployment are 1) the Heroku CLI or 2) integration with a github repo. If you don’t want your application’s code to be publicly accessible, this results in a tedious routine of manually pushing your changes to Heroku. With Azure DevOps, you can create flexible build pipelines to automate various tasks: running tests, creating binaries, publishing artifacts, etc. In this post, I will go through the steps to create a simple build pipeline that automatically pushes the latest code to Heroku when changes are committed to a Azure DevOps repo.

Packer Template: Amazon EC2 Ubuntu AMI with Latest NGINX

Packer Template: Amazon EC2 Ubuntu AMI with Latest NGINX

Mar 30 2018 — Packer is an open source tool for creating identical machine images for multiple platforms from a single source configuration. Packer is lightweight, runs on every major operating system, and is highly performant, creating machine images for multiple platforms in parallel. In this post, I will demonstrate how to create a packer template for AWS that automatically installs and configures NGINX on the most recent Ubuntu OS.