IMPLEMENTING AN HTTP SERVER WITH SCALA & JAVA NIO

These days I find myself working with Scala & the JVM more and more. The ecosystem is very rich, and there are a lot of tools & libraries to help you get things done. Coming from a language like Go that has a strong networking library that allows you to go as detailed in managing connections as you want, I couldn’t help myself but start digging into how networking & I/O are done in the JVM world.

HANDLING POSIX SIGNALS WITH THE AIRFLOW PYTHON OPERATOR

Recently, I have been using Airflow’s PythonOperator, to interact with various AWS services. It has been great for the most part, but gracefully handling these interactions is something we have to manage ourselves. I am specifically talking about a scenario, where the Airflow task receives a termination signal, and puts the running task into an error state. In these situations the external service doesn’t get notified about the state change.

PARSE STRINGS INTO GO STRUCTS

I will take the opportunity to use this blog post to describe how I parse strings into GO structs. For demonstration purposes I will use the common log format found in Apache web servers. We start off by creating a regex for parsing each log entry (line). The regex will include multiple named regex groups. This is important because we will utilize struct tags and match them against the name of regex groups in order to identify which part of the string belongs to which struct field.

GRAYSCALE COMICS

I picked up drawing as a hobby during the COVID-19 pandemic, and in order to learn from the all time greats I started doing master studies. To be able to concentrate purely on form & lighting I started to convert images into grayscale. I’ve primarily been doing studies from comic books, and decided to automate the process of turning images into grayscale. The goal of this post is to show how I automated this process via GO.

REPORTING SLA IN PROMETHEUS

I had a client requirement recently for creating good old SLA reports out of the monitoring metrics we’re receiving from Prometheus. I’m going to show you how I’ve done that. Bear in mind this post assumes you have a certain level of familiarity with Prometheus, however I’m going to do my best to link you to the right resources. The idea behind our implementation is to have a way we can tell the state of our resources, and if they are under maintenance.