Cronohub: Archive from anywhere to anywhere

Intro Good afternoon folks. Today, I would like to talk a little bit about Cronohub. It’s a Python application which you can use to archive anything from anywhere to anywhere. It uses plugins to archive this versatility. Let me show you some of its features. Main Usage Cronohub is a python application which uses the power and ease of usage of Python to give the user a framework. This Framework can then be used to implement concrete functionality in the form of plugins. ...

March 19, 2019 · 4 min · hannibal

Deploy a Hugo Blog with Travis on Git Push

Intro Hi folks. I’ve been using the Hugo build for wercker for a long time now. Recent problems occurred though where I did not understand at first what the problem was. It was quite difficult to debug since I did not have too much insight on the wercker build itself. Turned out that I deleted the GITHUB token that the process was using. However, the error message was telling me that a function failed to load some other function. Which was totally unrelated. ...

March 18, 2019 · 4 min · hannibal

Go SSH with Host Key Verification

Hi folks. Following a long search and reading lots of debates and possibilities of doing SSH within Go, I was shocked to see that not a great many tools and people use SSH with host key verification. What I usually see is this: HostKeyCallback: ssh.InsecureIgnoreHostKey() This is terrible. Now, I realise that doing HostKeyVerification can be tedious, but don’t fear. It’s actually easy now that the Go team provided the knownhosts subpackage in their crypto SSH package located here: KnownHosts. ...

February 17, 2019 · 2 min · hannibal

Extensive tutorial on go-plugin.

Intro If you don’t know what go-plugin is, don’t worry, here is a small introduction on the subject matter: Back in the old days when Go didn’t have the plugin package, HashiCorp was desperately looking for a way to use plugins. In the old days, Lua plus Go wasn’t really a thing yet, and to be honest, nobody wants to write Lua ( joking!). And thus Mitchell had this brilliant idea of using RPC over the local network to serve a local interface as something that could easily be implemented with any other language that supported RPC. This sounds convoluted but has many benefits! For example, your code will never crash because of a plugin and the ability to use any language to implement a plugin. Not just Go. ...

October 29, 2018 · 17 min · hannibal

Furnace with a new Plugin System

Hi. A quick update, but a very important and interesting one hopefully. Furnace just got a massive boost to its plugin system. I’m using HashiCorp’s Go-Plugins system now to handle plugins. This means one of two things that are interesting to the plugin author. One, plugins can be written in any language which is supported by Furnace and supports GRPC. Currently this means that plugins can be written in the following languages: ...

September 17, 2018 · 1 min · hannibal

TOTP generator with account handling for multiple tokens

Hi. Today, I would like to write about a little tool I put together in Rust. It’s called gotp. I’m calling it gotp mainly because of crates.io. I published it there as well, you can find it under this link: crates.io/gotp. The purpose is clear. It’s a totp generator I wrote a while ago in C++ but now it’s in rust. It can generate a token and save it into an account file that is AES encrypted. The password is never saved, so it’s secure enough to use it. ...

September 13, 2018 · 2 min · hannibal

Keep your git forks updated all the time

Hi folks. Today’s is a quick tip for keeping your forks updated. If you are like me, and have at least a 100 forks in your repository because: * You would like to contribute at some point * Save it for yourself because you are afraid that it disappears * Would like to make modifications for your own benefit * Whatever the reason …then you probably have a lot of trouble keeping them updated and making sure you always see the latest change. ...

June 8, 2018 · 2 min · hannibal

Kubernetes distributed application deployment with sample Face Recognition App

Intro Alright folks. Settle in and get comfortable. This is going to be a long, but hopefully, fun ride. I’m going to deploy a distributed application with Kubernetes. I attempted to create an application that I thought resembled a real world app. Obviously I had to cut some corners due to time and energy constraints. My focus will be on Kubernetes and deployment. Shall we delve right in? The Application TL;DR ...

March 15, 2018 · 32 min · hannibal

Go Budapest Meetup

Intro So I was at Go Budapest Meetup yesterday, where the brilliant Johan Brandhorst gave a talk about his project based on gRPC using gRPC-web + GopherJS + protobuf. He also has some Go contributions and check out his project here: Protobuf. It’s GopherJS Bindings for ProtobufJS and gRPC-Web. It was interesting to see where these projects could lead and I see the potential in them. I liked the usage of Protobuf and gRPC, I don’t have THAT much experience with them. However after yesterday, I’m eager to find an excuse to do something with these libraries. I used gRPC indirectly, well, the result of it, when dealing with Google Cloud Platform’s API. Which is largely generated code through gRPC and protobuf. ...

February 6, 2018 · 2 min · hannibal

Ansible + Nginx + LetsEncrypt + Wiki + Nagios

Intro Hi folks. Today, I would like demonstrate how to use Ansible in order to construct a server hosting multiple HTTPS domains with Nginx and LetsEncrypt. Are you ready? Let’s dive in. TL;DR What you will need There is really only one thing you need in order for this to work and that is Ansible. If you would like to run local tests without a remote server, than you will need Vagrant and VirtualBox. But those two are optional. ...

January 23, 2018 · 11 min · hannibal