What I’ve Learned from Maintaining a Web App in Production for Over a Year
It has been more than a year now since I originally deployed my COVID-19 Tracker to a live environment. In the time that it has been in production, I have learned a whole lot, both in terms of maintaining an app in production, and in watching the progression of the pandemic.
At the very least, I have definitely come to truly appreciate how essential having something deployed to a live environment is to the learning process of being a good developer.
Unlocking the Power of Apache Airflow
After multiple previous failed attempts, I am finally starting to get the hang of Apache Airflow and, even with a relatively basic mastery, I have been able to do some pretty interesting things with it.
What is Airflow? Apache Airflow is a Python-based tool for scheduling and automating various workflows. It was originally created at AirBnB as an internal tool, and later open-sourced, under the Apache license. It has since become a top-level project at the Apache Foundation.
Visualizing COVID-19 Data
Recently, I have been on-and-off trying to create some data visualizations for global COVID-19 data, as well as integrate it into my existing COVID tracker. I eventually settled on using Plotly, after a colleague showed me how easy it would be to integrate it into my existing Flask application.
The Data Naturally, you can’t create data visualizations without data. For this example, we will be getting our data from the following API endpoint:
Generating Mock Data with Faker
Very frequently in software development, we find ourselves in a situation where we need to test the functionality and/or performance of a program with random data. This data needs to be: a) seemingly realistic, b) of arbitrary volume, and c) conformant to the logic of our program. How do we solve this problem? While there are a variety of services that do exactly that, those almost always cost money, and if they do have a free version, that comes with some considerable limitations.
A Primer on DataFrames
Today, we will be going over what Pandas DataFrames are, as well as how to use them to manipulate and dump data. They are something that I, and many others, have come to rely heavily on in variety of contexts. So, without further ado, time to get started.
What Are DataFrames? A DataFrame is a type of data structure. That is, a way of storing values in memory. They are designed to store and organize potentially large volumes of data in a rows-and-columns format.
Tracking COVID19
In light of the recent pandemic (and partially as a result of being laid off recently, due to said pandemic), I recently took it upon myself to build a reporting service of sorts for the COVID-19 pandemic. After all, got to have something to work on during quarantine. The project consisted of the following core steps: 1) Find a REST API with comprehensive and reliable data, 2) Clean the data, and calculate aggregates, 3) Render the data into HTML templates, 4) Deploy the client to a production environment.
Integrating JSONB Data into Django Projects
This post follows up on my earlier post about storing json data in Postgres. In this article, I will be going over how to integrate the same JSONB data I used in that post with a Django web application.
Modeling the Data Modeling JSONB data with Django’s ORM tool is rather easy, as the framework has built in support for this in the django.contrib module. Therefore, we would model our data like this in our models.
Fun with Gravitational Physics and Python
While reading about how my favorite programing language (Python) was used to develop the first ever image of a black hole, I felt inspired to use the language to do some gravitational physics of my own. Mind you, I am not a physicist, nor do I have an extensive mathematical background, so I certainly was not using Python to do anything that was terribly complicated. Instead, I was using it to do more simple, but still productive (not to mention fun) calculations.
Migrating Data to the Cloud with Python
In the past year, or so, I have been experimenting with writing my own custom ETL programs in Python. Among the functionality that I included was extracting data from a local Postgres database, and migrating to a Postgres database in the cloud.
The Reasoning While I’m aware that platforms-as-a service (PaaS) like AWS, and Azure provide their own services for this. Nevertheless, I opted to implement my own solution for data migration(s).