KHIA's personal Blog

Consistency management in distributed settings

Consistency management in distributed settings Disclaimer I just participate in numerous design discussions related to genomu development. However all ideas and 99% of the implementation due to @yrashk. I decided to write this post to document the design of genomu inspite the fact that this great development didn’t take off. Introduction Being a consultancy agency we had a client who have ordered a development of a backend for a system for doing sport events betting.

Generating random looking IDs

Generating random looking IDs Introduction Quite often I find myself in a situation where I need a unique random looking IDs. The naive solution to this problem is to generate random IDs and memoize already issued ones to prevent duplicates. The question is can we do better? Solution The soltution I am going to explore today is based on the use of block ciphers. Since their output is bijective (given same input IV and KEY) you will not have any collisions, unlike hashes.

Protecting in-memory crypto material

Protecting in-memory crypto material Introduction Let’s say you operate a service which need to sign clients’ requests. You would have to have a private key (signing key) on your server. Having keys on the server is ok as long as you fully control the server. You cannot trust the cloud provider if you use one. Even if a company you use doesn’t practice illegal access to information of their customers.

Skype in docker

Skype in docker Introduction If you want to separate your personal life from work you would end up with two Skype accounts. However there is a problem. You cannot run multiple instances of Skype on a single computer (as single user). Here comes an idea to run Skype in the docker. Running Skype in docker is also useful for privacy sensitive individuals like myself. Since the Skype application is closed source and sends data in encrypted form.

Elixir binding for lager

ExLager Embeds logging calls to ExLager into a module if currently configured logging level is less or equal than severity of a call. Otherwise no code is emmited. Therefore it doesn’t have any negative impact on performance of a production system when you configure error level even if you have tons of debug messages.

Code Complete


by Steve McConnell, O'Reilly Media, Inc., 2004

I have a privelege to read it in 2008

Why Programs Fail: A Guide to Systematic Debugging


by Andreas Zeller, Morgan Kaufmann Publishers Inc., 2006

I have a privelege to read it in 2012