Category: Level: Intermediate

Sane Single Page Apps: Easy Data Handling with DTOs

When a software collapses, it’s usually due to it being no longer maintainable because of complexity. Brian Kernighan, the creator of AWK programming language, puts it quite explicitly: “Controlling complexity is the essence of computer programming”.

Read more...

Spot Performance Issues Before They Arise: Effective Performance Monitoring with Gatling and ELK

Performance is a complicated beast. Each step in the problem solving chain of performance issues – identification, diagnosis, rectification and verification, pose unique challenges. This post will deal with themes from the first two steps, and is aimed at teams who are already conducting some form of performance testing1. Even if you do have tests […]

Read more...

Simple NLP Search in Your Application – Step-by-Step Guide in Scala

Full text search is easy to use. But the inherent ambiguity of natural languages causes search results to be biased with false positives. To obtain more accurate results, we need to change the approach and provide more domain specific data to the search engine. The most common and easiest to improve search results is to […]

Read more...

Practical Intro to Monads in JavaScript: Validation

Few weeks ago I published a practical Intro to Monads in JavaScript where I covered basics of Identity and Maybe monads. Some time later I added a tutorial on Either monad and fails-fast error handling. This time I will show you error accumulation in a simple Validation use case.

Read more...

Tackling a 1 Billion Member Social Network – Fast Search on a Large Graph

At Evojam we always seize opportunities for R&D. So when a former client asked us for cooperation on an existing project, which involved a 1 billion member social network, we jumped at the opportunity. We joined the team and did our best to fix bugs and solve data consistency, performance and reliability issues. Additionally, we […]

Read more...

Practical Intro to Monads in JavaScript: Either

My simple and practical Intro to Monads in JS, where I covered basics of Identity and Maybe monads, seemed to be helpful for a lot of folks, so I’ve decide to continue the topic. Now it’s time for Either – a tool for fast-failing, synchronous computation chains. A tool that may increase readability and quality of code while reducing error proneness. The best part is that we can still ignore the category theory!

Read more...

Presentation: Awesomely descriptive JavaScript with monads

Can unfamiliar pattern from world of statically typed functional languages improve JavaScript world? For sure YES! The elastic nature of JavaScript can handle great ideas from many alien worlds. With a little help of modern tools like ​monet.js​ and ​TypeScript​ we can achieve awesomely descriptive aesthetics of our code and drop some imperative bloat.

Read more...

Keep Your Library Simple: Scala API Design Case Study

We’ve been using Play Framework with Elasticsearch and elastic4s for a while. Getting it all to work together requires some boilerplate code, though. We decided to create a small library that would make things easier in future projects. We learned some lessons about building Scala libraries along the way.

Read more...

Practical Intro to Monads in JavaScript

If you’ve heard about Monads but never had time learn them, here’s a simple explanation. Not a theoretical nonsense. It’s a simple, practical tutorial for JavaScript developers showing how some monads can be used. It’s for engineers, not scientists.

Read more...

Static Typing in JavaScript & Best Tools to Do It

There are three popular possibilities – jsDoc (with e.g. Google Closure Compiler), Facebook Flow and Microsoft TypeScript. First one uses comment like annotations – does not corrupt pure JS – while next two extend JS so they have to be transpiled. I will compare them briefly in a moment.

Read more...