Dockerfile for a Crystal application

Dockerfile for a Crystal application Build a space-effective docker image for a Crystal application TL;DR: Build an application with static linking and use Alpine base image to reduce the size...

Medup backups articles

Medup backups articles TL;DR Explain features of medup client tool to export Medium and Dev.to posts I am glad to present you my little project Medup to export Medium and...

Build and Read Crystal

Build and Read Crystal TL;DR Notes how to build crystal programming language from sources Prologue I work on a small client tool written in Crystal. It calls “Medup”. As usual,...

Convert laptop to a router for Telekom.de network

Convert laptop to a router for Telekom.de network Set up a Linux machine as a WiFi router in a few steps. No luck with Mac OS devices. TL;DR I spent...

How to automate building local virtual machines with Packer

How to automate building local virtual machines with Packer We will learn how to create a disk image base on a remote iso disk image. Auto install packages and configure...

Convert Github Issue to Pull request

Convert GitHub Issue to Pull request The typical difficulty for most GitHub users is to manage 2 cards per task (an Issue and a connected Pull request). It consumes a...

Listen to localhost

Listen to localhost How many processes can ‘listen to’ the same port of localhost? I know the answer, and it is ONE port. TL;DR Depends on OS configuration and socket...

Modify binary files with VIM

Modify binary files with VIM TL;DR xxd ./bin/app | vim — and :%!xxd -r > ./bin/new_app When I was a student, I used a lot Windows. It was hard times...

Debug Crystal TCP server

Debug Crystal TCP server Learn how to debug TCP communications with Wireshark In my journey of learning Crystal language, I want to record notes and left guide on how to...

Rotate Kubernetes certificates with Kubeadm v1.11

Rotate Kubernetes certificates with Kubeadm v1.11 After building my first successful immutable cluster, I faced the problem of expired masters’ certificates. I have already mentioned how to generate new certificates...

Visualize Go app benchmarking

Visualize Go app benchmarking It is interesting to analyze how a data structure has a different performance based on number of items or the way of implementation. Benchmark metrics simplify...

Kubernetes v1.11 requires CRI

Kubernetes v1.11 requires CRI Today I upgraded my kubernetes cluster from v1.11-beta.2 to v1.11-rc.1, discovered that a general warning message now becomes ERROR: $ kubeadm init --config /etc/kubernetes/kubeadm.yml I0623 08:00:06.826671...

Rails Assets Host Trick

Rails Assets Host Trick When we use simple assets server, such as ActionController::Base.asset_host = "http://assets.example.com" we have a problem with pages which use SSL and some browsers alert users that...

Generate Kubernetes client certificates

Generate Kubernetes client certificates TL;DR Use kubeadm tool on your local machine to generate certificates Security is the most important part of any Kubernetes cluster. In our days all my...

REsize Amazon EBS volumes without a reboot

REsize Amazon EBS volumes without a reboot In rare cases, it happens that disk is full, and usually, it happens not in right time. No worries, AWS supports hot expanding...

Setup Terraform with Google Provider

Setup Terraform with Google Provider This is article focused on routine steps how to start working with terraform and google cloud provider. For new clients/projects, we do the same steps...

Minikube 1.7.0 with OpenID and RBAC

Minikube 1.7.0 with OpenID and RBAC In the article Kubernetes 1.6.1 Authentication via Google I explained how to create Google Application and generate kubernetes token. I found that people have...

Pitfalls of using metaprogramming in Ruby on Rails application

Pitfalls of using metaprogramming in Ruby on Rails application Do you know that metaprogramming is easy to add but hard to support? Developers underestimated risks related to using metaprogramming in...

Ubuntu Server 16.04 on Raspberry Pi 3 via Terraform

Ubuntu Server 16.04 on Raspberry Pi 3 via Terraform In this tutorial you will find how to setup latest Ubuntu Classic server 16.04 and automate process as much as possible....

Remove the First Lines from Stream

Remove the First Lines from Stream I am not a linux hacker, so I wasted a lot of time trying to find a solution to strip first lines from output...

Netcat with SSH Port Forwarding

Netcat with SSH Port Forwarding I have encountered a problem with getting access to the private local service which available from the local machine. And I need to write application...

Visualization of Your Code

Visualization of Your Code Working at long and big projects, it is fun to see on a release date how this project was built: who worked at a particular part;...

Simple Dynamic Template

Simple Dynamic Template Sometimes we need to define a dynamic template before defining variables used in the template. Let me show a few examples how to solve this problem in...

Show Not Valid CSV Lines with Sed

Show Not Valid CSV Lines with Sed I have an issue with invalid formatted CSV file. First step show lines with invalid lines. $ sed -n '/"[^",]*"[^",]*"[^",]*",/,1p' <fileName> Then I...

Redis Store to Store Session

Redis Store to Store Session I use Redis to store session and cache. And when I try to cache some session values, I get an exception “TypeError (can’t dump TCPSocket)”....