July 22, 2019

Install Python 3.7.4 in pyenv on Ubuntu 18.04

I was testing a Python application that was written in Python 3.3 and pyenv seemed like a good solution for having multiple versions of Python at the same time. I could have gone with official Debian based Python Docker image but I am running Ubuntu on Windows Linux Subsystem (WSL) and it wasn’t a big deal. In this runbook, I list the steps required to install Python 3.7.4 in pyenv, you can install any other version as you please. Read more

May 31, 2019

Strangling Legacy Workflows Using Airflow

Strangler pattern is a design pattern attributed1 to the prominent writer and software engineer, Martin Fowler. This approach was put into practice and was described in a paper by Chris Stevenson and Any Pols2. The main goal of this design pattern is to help with migration of a legacy system that is in major need of house cleaning or decommissioning but is difficult to do so. These days, this design pattern is mostly talked about in the context of migration from a monolithic architecture to microservices. Read more

May 29, 2019

SOLID Principles and Apache Airflow

The powerful thing about Apache Airflow is its versatility. The core funtionalities are abstracted away and based on my understanding, loosely follow some of principles of SOLID. Two examples of SOLID prinples that is followed are Open-closed principle and Liskov substitution principle. Airflow comes with several Operators out of the box, however, they are all open to extention and replacement. Many of the classic code examples you may come across when reading about SOLID principles are usually about shapes or some other non-real-world subject but I thought since I am spending most of my time on Airflow lately I might as well use it as my main subject. Read more

March 18, 2019

Google Chrome Kerberos Authentication

Kerberos is a network authentication protocol that supports Single Sign-On (SSO). For HTTP requests, support for Kerberos is provided by the SPNEGO authentication mechanism (Simple and Protected GSS-API Negotiation), also known as integration authentication or negotiate authentication. Chromium supports SPNEGO but it is disabled by default for security reasons. Read more

© Mike Hosseini 2019