Composition vs Inheritance

The internet is so full of discussions concerning this point. It was first presented to me in Effective Java and while I think one should always take suggested good practices…

Bloom Filter for Dummies

Someone once told me that when it comes to Computer Science white papers, don’t bother with reading the whole thing. According to him as long as he understands the intuition behind it,…

Services and modules

There has been some debate in my team about how to define and differentiate between a “service” and a “module”. Here is my proposal: A module exists to fulfill some…

A study of cache sizing

Recently I’ve been hard at work building a distributed in-memory cache for our runtime systems. One of the most important decisions that I’ve had to make in this project is…

Gorilla

This post is to write down my first impressions after reading Facebook’s Gorilla which is their in-house TSDB. Long story short, Facebook designed their own time-series database (TSDB) to collect…

Java Weak References

This is just a note about an (in my opinion at least) interesting use case for Java weak references. Weak References Java helps the developer take care of tracking objects…

Alias Method

This post is about a brilliant algorithm called the Alias Method. This method allows you to generate samples according to a discrete probability distribution in constant time. In other words, it allows…

Redis and Memcache

I’m launching into a project to implement a distribute cache in front of our bidding and impression layer. Part of the project is to evaluate caching technologies and the most…