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...

Take The Best From Both Worlds: Functional AND Object-Oriented Programming

Wondering what are the benefits of functional and object-oriented programming and how to combine them? Look no further: this slide deck highlights key features of both approaches in a structured manner.

Read more...

Gerrit based Workflow – Complete Developer’s Walkthrough

We have successfully adopted the Gerrit workflow for pre-commit code review in Evojam. We believe that this a foundation of high quality of our solutions. After two years we have worked out a complete approach for the pre-commit review with Gerrit, branching model and application provisioning. Now I have realized the there is no definite […]

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...

React vs Angular2: The fight rages on

Google’s Angular and Facebook’s React are now most popular tools for building browser (and not only) applications. Both are great solutions. While Angular2 is still in beta it has been already tested by few Google developer teams – AdWords, GreenTea and Fiber. List of applications built with React is really long and you can find there names like Instagram, Netflix, PayPal and many more.

Brutal war is coming.

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...
« Older posts