Category Archives: Programming

Libraries #golang : Inter Planetary File System client

By | October 29, 2019

In all this talk of distributed systems the Interplanetary File System is a fun practical subject. Obviously golang should be part of that. According to Wikipedia: The InterPlanetary File System (IPFS) is a protocol and peer-to-peer network for storing and sharing data in a distributed file system. IPFS uses content-addressing to uniquely identify each file… Read More »

Connect to github with ssh key

By | October 28, 2019

This is a straight forward list of steps to connect to github with a ssh key instead of user/password. I am using Linux on my development machine so things are quite easy with ssh. STEP 1: Create a ssh key # ssh-keygen -t rsa -b 4096 -C “” STEP2: Add the key to the authentication… Read More »

#Healthcheck for #golang #microservices

By | July 14, 2019

One of the important paradigm change in moving away from monolith application to a cloud of micro-services is how to keep all that interconnected could functioning. A monolith enterprise application usually runs in an application container so a lot of time you are using the container monitoring features to make assumptions about the heath of… Read More »

Libraries #golang : A PDF document generator with high level support for text, drawing and images

By | July 14, 2019

The best golang library for generating pdfs. It has so many features and you can control so well the layout of the pdf that I can compare it to LateX level. Package gofpdf implements a PDF document generator with high level support for text, drawing and images. You can find the library at And… Read More »

Libraries #golang : Callgraph analysis and visualization for Go

By | July 14, 2019

This is a wonderful small library that lets you do an analysis and visualization for Go packages. It may be very useful to detect unwanted code and is a very good tool to run on your code base before and after doing a refactoring. I wish I have something this simple for Java 🙂 See… Read More »

Convert text label files to UTF-8 encoding

By | March 28, 2019

In a lot of multi-language enterprise applications where you have to support labels in different languages the text files with the different labels for each language are scattered across your source code. In my case I all the labels are kept in Java property files with “.properties” file extension. Then for each language I have… Read More »

Allow the use of a transacted session in a #Servlet with #JMS broker #Artemis

By | March 21, 2019

The open-source application server WildFly from which the RedHat owned JBoss application server is derived is one of the most used Java application server lately. This is caused by the strong market consolidation that is happening that caused the Java application server environment to become very restricted. Basically the only open-source enterprise grade Java application… Read More »

Short thoughts on Code #Refactoring

By | December 15, 2018

You know when your code turns into spaghetti and you start wondering what you were eating or smoking when you wrote that code. Usually nobody is such a bad programmer that writes spaghetti code, spaghetti code is something that builds in time when features are added at big pace or when you implement fixes or… Read More »

Learning GO: Limit #concurrency in #golang

By | August 26, 2018

Concurrency is easy to implement and fun in go, but as we know all things that are easy and fun can end up doing a lot of dammage if we are not careful. The way the concurrency was implemented in my previous post is prone to abuse. What if the for loop iterates over a… Read More »

Learning GO: Concurrently execute expensive validations on several items and return the list of validation errors with #golang

By | May 24, 2018

Most of the time software for real use cases from financial industry is just validating inputs. When I say validating inputs I refer to business validation that actually checks against standard formats or generates complex validation against business rule sets. Usually this step is very important because it is the step that gets hammered with… Read More »