Making a simple HTTP webserver in C

In this article we will be implementing a simple HTTP webserver, we will using the C programming language for this so that in the process learn more about socket programming.

Securing Go HTTP webservers

In this post I will go over some common measures you can employ to make your Go HTTP webserver more secure.

Encrypt data with a password in Go

When we’re encrypting data, typically we will create a random key that is able to decrypt that data. In some specific cases one wants to use a user specified key to decrypt that data like a password. However, the key that is used for cryptographic algorithms typically needs to be at least 32 bytes. But, it is likely that our password won’t make that criteria, so we need to have a solution for that.

How to profile Python applications inside a docker container

In the following post I’ll explain how you can profile a running Python program in a Docker container using py-spy. py-spy is able to generate flame graphs, and it can give us profiling capabilities in order to debug our Python programs. Now, when your Python code is running in a Docker container it can be a bit more difficult to profile your code, and this post sets out to show you how this can be done with these tools. ...Read more

A minimal REST API Django setup as a microservices

In this post I will set out on how to set up a django project that can be used as a REST API microservice. To see the end result, you can investigate the code here. An important disclaimer: the code presented here is to be used in a development environment, review security practices for the framework(s) when you want to use it in production or expose it to the internet. ...Read more

How to profile Go applications inside a docker container

This article has been updated and you can view its updated version here In this post I’ll give a quick overview of several methods you can use for profiling/debugging Go applications that are running in a docker container. To get a more in-depth overview of the several methods, I’ve added the source links you can reference. pprof gcvis gotorch general sources Defer Panic - understanding golang memory usage - profiling go programs Jimmy-Xu - pprof in docker daemon pprof When you want to use pprof to profile your Go applications, that are running in a container, we need to make sure we turn on the internal pprof HTTP endpoints. ...Read more

How to restore a PostgreSQL database on Kubernetes

As I wanted to transfer the database from one kubernetes cluster to a new one, I had to find a way to do this. And with a bit of trial and error I succeeded. So for future reference, and the hope that this might help someone, I figured I would write it down.

Create command line applications with a config file

In this tutorial we’ll be using engage to create a cli application by only using a json config file. Enage was created because at FuelUp we have several bash scripts placed in different folders in the project. I wanted a way to bundle them so that I didn’t have to remember the location of these scripts. Additionally when developing it isn’t uncommon to have to type several commands after another, and it would be nice to have them easy accessible. ...Read more

How to enable true-color for neovim, tmux, and gnome-terminal

With the release of tmux version 2.2 we’re able to get true-color support inside of tmux. And because both neovim and gnome-terminal are also supporting this, we can have great looking interfaces and colorschemes inside of tmux. However, there are some steps we need to take in order to make this work. So I created this blog post for future reference, and hopefully you might find it useful too. gnome-terminal So lets start with gnome-terminal. ...Read more