Andreas' Blog

Adventures of a software engineer/architect

Hosting Gitea and Drone with Docker

2019-03-24 8 min read anoff

This post will walk you through setting up a self hosted git based continuous integration environment on a two machine setup - assuming you already have two virtual machines at your disposal. Using Gitea for git hosting and contribution management and Drone for docker-based build jobs, this will guide you through creating docker-compose files as well as configuring the individual services and getting SSL certificates via traefik. Docker and docker-compose knowledge is required for this tutorial. It mostly focuses on the correct configuration of all the services at play here and not explaining their basic functionality.

This tutorial uses Azure resources so some of the aspects might not be 100% applicable if you chose another infrastructure provider.

Continue reading

Get Hugo to render (nice) Asciidocs

2019-02-17 5 min read anoff
While migrating my blog from Jekyll to Hugo I went down quite a rabbit hole. While setup and migration to Hugo was a breeze, I spent a lot of time making my .adoc formatted post work with the new blog. After working through several GitHub issues I ended up manipulating the DOM with Javascript to get admonitions working. It still doesn’t feel right - but hey it works! πŸ€·β€β™‚οΈ This post will cover the steps I took in case I myself or anyone out there ever needs to do this again. Continue reading

Converting existing AsciiDoc into an Antora project

2019-02-15 7 min read anoff
After 2 years of working with the arc42 template in markdown, I spent the last few weeks learning about an asciidoc based site generator named Antora. The main reason for the interest in AsciiDoc was the fact that the limited feature set in markdown often impairs you while writing down complex things. But I had one problem; most of our documentation is scattered across multiple repositories as we try to keep the docs as close to the code as possible. Continue reading

What I learned about Management and Recruiting

2019-01-31 7 min read anoff

As promised my book series will start with two books out of the FAANG league. The book How Google works covers many aspects of the companies culture. The book has lots of management insights that - at the time of reading - were of little interest to me. Therefore I want to briefly highlight a few points about innovation that I find fascinating and then move to the human factors like recruiting and competence management that are also covered extensively in the book.

Continue reading

My year 2018 in books

2019-01-15 8 min read anoff
For the last ~15 months I spent a lot of wasted time (commuting to work, waiting at the doctors, sitting on planes) with audio books. I have never been a big reader and the entry barrier to start listening to a book instead of music is a lot lower than packing books, reading instead of listening etc. That’s why I became a really big fan of listening to various audiobooks. Continue reading

RBAC with Google Firestore

2018-08-12 7 min read anoff

This post will explain how to implement role based access control (RBAC) using the Google Firestore serverless database. Firebase and Firestore in particular with the concept presented in this post offers the most seamless integration of serverless infrastructure with a mobile client at this point. It has become my go to backend for all minor web apps I build.

Continue reading

Markdown native diagrams with PlantUML

2018-07-31 9 min read anoff
This post covers PlantUML basics and how it can be used in GitLab or GitHub projects as well as a seamless local development environment using Visual Studio Code. I have been wanting to write this post for months. Lately I have been using PlantUML extensively at work but also in my private projects. You can see it being used in my plantbuddy and techradar projects on GitHub. Using it in different places and for various purposes I came across a bunch of issues that I want to share in this post. Continue reading

Building realtime apps with Vue and nodeJS

2018-04-18 7 min read anoff
Wanting to build a simple SPA as a side project I struggled with things that might annoy a lot of newcomers that do not want to go full vanilla. Which web framework, which style library, which server framework - and more importantly how does it all work together? In this post we will put together a bunch of great tools out there to build a realtime web app with a few single lines of code. Continue reading

GitLab CI/CD for GitHub

2018-03-30 4 min read anoff

When creating a git project that you want to share with others you traditionally had the choice between GitHub with its huge community and tons of integrations, GitLab with a great overall dev experience from issues to one of the best CI/CD solutions out there and BitBucket being one of the friends you have since kindergarten. My personal decision was to host all my personal projects on πŸ¦‘ GitHub. For projects that need CI/CD I tinkered around with πŸ‘·β€ Travis CI and πŸ…ΎοΈ Circle CI on top of GitHub.

Continue reading

Automated dev workflow for using Data Science VM on Azure

2018-03-22 11 min read anoff
tl;dr; I put together a bunch of scripts on Github that let you deploy a VM from your command line as well as sync code from your local directory to the VM easily to be able to use local IDE and git but execute on the powerful remote machine. Perfect for Data Science applications based around jupyter notebook. In my previous blog post I explained how to do Terraform deployment of an Azure Data Science Virtual Machine. Continue reading

Deploy Datascience infrastructure on Azure using Terraform

2018-01-23 6 min read anoff
In this article I will talk about my experience building my first infrastructure deployment using Terraform that does (a little) more than combining off-the-shelf resources. The stack we will deploy πŸ“¦ Lately I’ve been looking at a lot of Microsoft Azure services in the big data area. I am looking for something to replace a Hadoop based 🐘 data analytics environment consisting mainly of HDFS, Spark & Jupyter. The most obvious solution is to use a HDInsight cluster which is basically a managed Hadoop that you can pick in different flavours. Continue reading
Newer posts