18.05.2017 / By 

What's wrong with Interface Builder?

Interface Builder (IB for short) was announced as a part of Xcode 4 in June 2010, at the WWDC. Since that moment, Apple has been promoting and improving it with each significant Xcode update. At the moment IB is a well-established solution which comes with every new iOS project created in Xcode. However… recently articles […]

25.04.2017 / By 

Custom GraphStage in Akka Streams

In this post I will try to present what is GraphStage in Akka Streams. My goal is to describe when it’s useful and how to use it correctly. I will start with outlining key terminology, then proceed with simple example and after that the main use case will be covered. For the latter the most upvoted issue of akka-http […]

19.04.2017 / By 

Type classes in Scala

Type classes in Scala Type classes are a powerful and flexible concept that adds ad-hoc polymorphism to Scala. They are not a first-class citizen in the language, but other built-in mechanisms allow to write them in Scala. This is the reason why they are not so obvious to spot in code and one can have […]

18.04.2017 / By 

Introduction to Streams in Akka

A very common scenario in many kinds of software is when the input data is potentially unlimited and it can appear at arbitrary intervals. The common way of handling such cases is using the Observer pattern in its imperative form – callbacks. But this approach creates what’s commonly called “Callback Hell”. It’s a concept basically […]

01.12.2016 / By 

Extending Spark pipeline

For some time now Spark has been offering a Pipeline API (available in MLlib module) which facilitates building sequences of transformers and estimators in order to process the data and build a model. Moreover, Spark MLlib module ships with a plethora of custom transformers that make the process of data transformation easy and painless. But […]

03.11.2016 / By 

ConductR - One tool to rule them all

Part of the success of modern application is targeting it globally – all over the world. It isn’t possible to run such application on a single machine, even with most powerful hardware. Definitions like Distributed computing or Reactive applications were born in the process of IT globalization. Nowadays, applications run on multiple virtual machines distributed over multiple physical machines […]

27.10.2016 / By 

Setting up Mattermost

When you live far away from some of your best friends, you want to find some reasonable ways to stay in touch. After a while, we found out that social media and instant messaging apps are not really an answer to our needs, so we decided to give a chance to something that easily engages […]

13.10.2016 / By 

Handling Split Brain scenarios with Akka

When operating an Akka cluster the developer must consider how to handle network partitions (Split Brain scenarios) and machine crashes. There are multiple strategies to handle such erratic behavior and, after a deeper explanation of the problem we are facing, I will try to present them along with their pros and cons using the Split […]

21.07.2016 / By 

Compile-time Queries with Quill

Scala is all about type-safety and making the compiler work for you. But what if we need to use SQL which is not a part of Scala? The compiler is not able to validate and type check raw queries. The solution for that problem is Domain Specific Language (DSL). We already have Slick that provides DSL for […]

14.07.2016 / By 

Your first microservices using Scala and Lagom

Back in the day, business used to be much simpler. The only requirements were all-in-one straightforward solutions which usually ended up as monoliths. And because of that, supporting systems used to be much simpler too. However, over time the risk of ending up with a clumsy, too tightly-coupled system became greater and greater. These days, […]