1. Lazy Fibonacci numbers

    A function which lazily produce fibonacci numbers implemented in some popular languages.

    alghorithm, clojure, fibonacci, functional, haskell, lazy, numbers, scala

  2. Streaming of data using http4s and scalaz-stream

    Http4s and scalaz-stream are good alternatives for akka-http and akka-stream. In this post, I show how easy it is to stream data over HTTP using them. Streaming allows to operate on heavy data without the necessity to store it in the memory. With http4s, it is just a few lines of code.

    http4s, idiomatic, non-blocking, scala, scalaz-stream

  3. Terminal multiplexer with status line

    Recently I started using tmux and powerline again. I needed a way to split terminal windows into panes and monitor cpu, memory and network at the same time. Here I show how to install it.

    console, multiplexer, powerline, shell, status line, terminal, tmux, zsh

  4. Building Docker images using Chef

    Chef is a great configuration management tool. It allows managing environments, supports multiple platforms, handles updates, but takes a lot of time to deploy software from scratch. Chef is not like Docker, which allows spinning up containers in seconds. If you are already using Chef, then you might not have time to rewrite all the Cookbooks into Dockerfiles. In this post, I’m showing how to build Docker images quickly using existing Chef Cookbooks.

    automation, chef, container, cookbook, deployment, docker, kitchen

  5. Importing SSL cert into java keystore

    Bash snippet to quickly import ssl certificate when you need to call https services in jvm.

    https, jvm, security, ssl

  6. Resolving dependency conflicts in maven

    Sometimes it is necessary to use the same library in two different versions in one application. This is when dependency hell arises. This post describes how to quickly resolve it in maven.

    dependency conflicts, java, maven shade plugin

  7. Blocking and non-blocking frameworks

    In my master thesis I evaluated performance of blocking and non-blocking web frameworks in the context of distributed RESTful micro services. Non-blocking frameworks tend to have higher scalability as the processor is not wasted on context switching between threads. This post summarizes my findings.

    blocking, future, java, jvm, microservices, non-blocking, scala, web framework

  8. HMAC Authentication

    Recently I was working on yet another startup project (mobile app with backend). The goal was to make the backend stateless and highly scalable. I did not want to maintain sessions. So I was looking for authentication and authorization mechanism for RESTful APIs which is scalable, secure and appropriate for mobile. The solution was HMAC. This post describes how to handle it using spray.io.

    angularjs, authentication, hmac, js, scala, security, spray