install Steam on elementary os (hera)

Juni 1, 2021

install 32-bit libraries

sudo apt-get -f install 

sudo apt-get update

sudo apt-get install libc6-i386 libgl1-mesa-dri:i386 libgl1:i386

install Steam

sudo apt-get install steam 

start Steam


Nginx proxy for your home network

Mai 18, 2021

How can you make your home network secure, easy accessible and host your own services?

How do you implement this structure in your own network?

Reverse geocoding UTM to Longitude and Latitude

Mai 18, 2021


  • pip3 install utm
  • pip3 install geopy


from geopy.geocoders import Nominatim

import utm

import getpass

from os import system, name

In which UTM zone do I live in?

Source code for reverse geocoding with nominatim

input_utm_zone = 

# input latitude (x) UTM33 (float)
input_x =

# input longtude (y) UTM33 (float)

input_y = 

# utm (UTM33) to DG

long_lat = utm.to_latlon(input_x, input_y, input_utm_zone, 'U')

# useragent is current username

username = getpass.getuser()

# reverse geo engineer with DG

geolocator = geolocator = Nominatim(user_agent=username)

location = geolocator.reverse(long_lat)

#print results



Deploy Office 365 AddIns on Linux

Mai 18, 2021

How to deploy your own JavaScript Office 365 AddInn Instance on Linux:

Development enviroment: 

  • Visual Studio Code:
  • Addons: ESLint, TSLint, HTML CSS Support
  • curl -sL | sudo -E bash -
    sudo apt install nodejs
  • npm install -g yo generator-office
  • yo office

Adjust ports for hosting (bash script)

# Assign the filename
# Take the search string
read -p "Port: " replace_port
# Take the replace string
read -p "<IP:Port>:" replace_ip
echo "Gibt es Port schon?"
netstat -ano | grep :$replace_port
if [[ $search_ip != "" && $replace_ip != "" ]]; then
sed -i "s/$search_ip/$replace_ip/" $filename_ip
if [[ $search_port != "" && $replace_port != "" ]]; then
sed -i "s/$search_port/$replace_port/" $filename_port

Deployment on Linux (Node)

IMPORTANT: the declared ports in package.json should be available

netstat -ano | grep :<port in package.json:12>

  • npm install office-addin-dev-certs
  • npm install
  • npm start

Port forwarding (get public access)

socat tcp-listen: "$port_extern"",reuseaddr,fork tcp:localhost:"$port_intern" 

port_intern: Port that you specified with the bash script (Port in package.json)

port_extern: Port over which public access should take place

View all node instances
ps -fC node
Kill all instances
killall node

Staking and Snarking Mina in Docker

Mai 15, 2021
Mina is the first cryptocurrency protocol with a succinct blockchain. Current cryptocurrencies like Bitcoin and Ethereum store hundreds of gigabytes of data, and as time goes on, their blockchains will only increase in size. With Mina however, no matter how much the usage grows, the blockchain always stays the same size - about 22kb. This means participants can quickly sync and verify the network. This breakthrough is made possible due to zk-SNARKs - a type of succinct cryptographic proof. Each time a Mina node produces a new block, it also generates a SNARK proof verifying that the block was valid. All nodes can then store the small proof, as opposed to the entire chain. By not having to worry about block size, the Mina protocol enables a blockchain that is decentralized at scale.
official documentation:

Generating a Keypair

Adding Mina Repo

echo "deb [trusted=yes] release main" | sudo tee /etc/apt/sources.list.d/mina.list 
sudo apt-get update
sudo apt-get install -y curl unzip mina-mainnet=1.1.5-a42bdee

Installing Mina

sudo apt-get install mina-generate-keypair=0.2.12-718eba4

Generating Keys

mkdir ~/keys && chmod 700 ~/keys
mina-generate-keypair -privkey-path ~/keys/my-wallet && chmod 600 ~/keys/my-wallet 
mina-validate-keypair -privkey-path ~/keys/my-wallet

Starting node in Docker Container

mkdir ~/.mina-config

docker run --name mina -d \

-p 8302:8302 \

--restart=always \

--mount "type=bind,source=`pwd`/keys,dst=/keys,readonly" \

--mount "type=bind,source=`pwd`/.mina-config,dst=/root/.mina-config" \


minaprotocol/mina-daemon-baked:1.1.5-a42bdee \

daemon \

--block-producer-key /keys/my-wallet \

--insecure-rest-server \

--file-log-level Debug \

--log-level Info \


Checking connectivity

docker exec -it mina mina client status

After a while, your node should connect to more peers and then should move into Sync Status: Catchup, which means we're gathering the most recent blocks and state trying to catch up the the highest block. When sync status reaches Synced and the node is connected to 1 or more peers, we will have successfully connected to the network. We will also see a corresponding daemon log once we've synced: [Info] Mina daemon is now synced.

Check your account

Import keys

docker exec -it mina mina accounts import -privkey-path ~/keys/my-wallet 

Check account balance

docker exec -it mina mina client get-balance -public-key PUBLIC_KEY

Mining (snarking)

mina client set-snark-work-fee 0.000001 

mina client set-snark-worker -address $MINA_PUBLIC_KEY

Snark-work-fee has to be adjusted supply and demand

Mina Coin is partnered with CoinList and will be available for sale on:

Balance Agile and Plan-Driven Methods: How agile or plan-driven should or can my project? (five critical factors)

April 28, 2021

five critical factors by Richard Turner and Barry Boehm 

Barry Boehm and Richard Turner offer a model, which with the help of critical factors, rates the degree of agility or degree of planning drift of a project. These factors are as follows:

  • Personnel: Personnel describes the development skills of teams. There the Cockburn scale is used, which in a simplified way represents the abilities the developer divides into level 1: junior to level 3: senior. An agile approach requires that at least 30 percent of developers have a level 2 or higher. A plan-driven approach comes with less experienced employees.
  • Dynamism: The dynamism factor describes the rate of change of Conditions. Agile developments make sense if at least 30 percent of the defined requirements change per month. If the value is less than 30 percent plan-driven methods are preferable.
  • Culture: describes the working culture of individuals. When employees are That is to feel at ease when they are given defined roles and tasks to prefer a plan-driven approach. However, people are used to one a high degree of freedom and decision-making power over their work area the agile approach is more advantageous.
  • Size (team size): The team size is a deciding factor when choosing the team Method. The bigger the team, the sooner a plan-driven one comes along Approach in question.
  • Criticality: This factor refers to the critical level of the Application and the associated risk in the event of an error. Bohm points out, that there is a very critical system when there is a life-threatening risk. In the case of critical systems, plan-driven procedures are more likely to be used.

Read more