Dr. Functionallove or: How I Learned to Stop Worrying and Love Immutability

How the real world taught me to embrace immutable data structures

So I’m working on this Time Tracker Android App that among other things displays a list of so-called Categories. I’m using the typical tools for that: a RecyclerView with a ListAdapter that takes its list from a LiveData provided by the Room database library. The following image shows what’s happening: The database (Room) issues a list of Categories (-2) which is given to the Display (-1) (aka ListAdapter as part of Recyclerview). [Read More]

Human Limitations: Mental Bandwidth / Capacity

Since I started considering myself a professional software engineer, I started asking different questions while coding. For example: Does this class really need to know the internals of that other class/module? How can I make this class dumber, i.e. make it know less about other modules? Should this method/functionality really be in that class, or would it make more sense to move it into another class? Those kinds of questions have one common goal: To reduce the amount of details that I have to keep in mind while coding, and the same for the next person that has to maintain/extend this module. [Read More]

The Real Intent of Code Katas

When I first heard about code katas, I was intrigued. The name sounds cool and promises to make me better at coding. But until recently I had the wrong picture of code katas in my mind. I thought it’s solving a problem over and over so that in each iteration I would write down a better solution than before. In other words: the previous runs of this kata inform the next one. [Read More]

So, I've started the 100 days of code challenge with PyBites

So, I’ve started the 100 days of code challenge with PyBites. I really enjoy doing PyBites and this challenge is a nice push towards doing it regularly. You can see my progress here: https://codechalleng.es/100days/eucalypto/4862 Right now I’m at day 27. Which is quite impressive for me but if you are reading this in the future, you can see if I managed to keep up until the 100 days! This is also a good reason to use Twitter! [Read More]

Welcome to Jekyll! -- Again!

Over the last several years I’ve not updated my blog because I starded using Dynalist. Its capable list creation and navigation made it feel natural to organize my thoughts and knowledge in a deep tree structure. This blog overlaps with this use-case because I started it to take notes for my future self. Now I’m re-activating this blog to show the world what I’m up to. To give back at least some knowledge and insight that I gained by reading the wonderful blogs and tutorials of today. [Read More]

Command Line Goodies

Watch Logfiles

Watch a text file as it grows:

tail -f logfile.txt

Print out iso date format

date --iso-8601=minutes

produces for example 2016-10-21T19:53+02:00

SSH Tips

Run ssh-agent in remote login

When you log into a machine with SSH and want to use a SSH key to do further stuff, like managing a remote git repository, you may have to

eval $(ssh-agent -s)
ssh-add ~/.ssh/your_ssh_id

according to this site. Then the shell remembers your SSH key as long as it is open.

CentOS 7 Tips

Manage additional Repositories For CentOS 7 there exist additional repositories; for additional codecs for example. This website lists the most useful ones. I use the Nux-Dextop repository but I don’t want to have it turned on the whole time. So I use sudo yum-config-manager --enable nux-dextop to enable this repo. And when I’m done installing or updating with yum, I use sudo yum-config-manager --disable nux-dextop to disable this repo again. [Read More]

Dropbox in CentOs 7

Install Dropbox in CentOS 7 This website has a nice overview over the installation process. First, you need to sudo yum install libgnome and then download the Dropbox Fedora (.rpm) package from Dropbox and install it with sudo rpm -ivh nautilus-dropbox[...].rpm Then you can start Dropbox and log in with your accound details. Repair package manager yum If you use yum (e.g yum update) after Dropbox installation, you will probably encounter an error that a certain . [Read More]

Bash Aliases

Aliases for command line in .bashrc In ubuntu the .bashrc file has a command that looks for ~/.bash_aliases and includes it. Here you find my .bash_aliases file with useful aliases. This is the code in the .bashrc file: # Alias definitions. # You may want to put all your additions into a separate file like # ~/.bash_aliases, instead of adding them here directly. # See /usr/share/doc/bash-doc/examples in the bash-doc package. if [ -f ~/. [Read More]
linux  bash