Archive for the ‘Uncategorized’ Category

Introduction to NOSQL and cassandra, part 2

In part 1 of this talk I presented few of the theoretical concepts behind nosql and cassandra. In this talk we deep dive into the Cassandra API and implementation. The video is again in Hebrew, but the slides are multilingual ;-) Started with a short recap of some of RDBMS and SQL properties, such as ADIC, why [...]

Maven Code Quality Dashboard and TeamCity

I’ve recently implemented a code-quality dashboard at outbrain for maven java projects and hooked it into the our TeamCity continuous integration server. I was very pleased with the result, but the process had a few hickups, so I thought I’d mention them here for future generations. A code quality dashboard includes the following components: Tests [...]

Moved hosting away from #godaddy #sucks

This blog has moved away from GoDaddy hosting to bluehost. I don’t know how good bluehost is (so far it’s been OK) but I know for sure that GoDaddy is pretty darn awful. Awful as in So slow that it’s a nightmare to be editing posts online. I had to do them offline and then [...]

Introduction to NOSQL and cassandra, part 1

I recently gave a talk at outbrain, where I work, about an introduction to no-sql and Cassandra as we’re looking for alternatives of scaling out our database solution to match our incredible growth rate. NOSQL is a general name for many non relational databases and Cassandra is one of them. This was the first session [...]

StringTemplate – a step forward to a better web MVC

MVC, Model View Controller is a well known design patten from the field of UI frameworks. It advocates the separation of a Model, an application specific data and business logic, Controller, which takes user input, consults the model and determines the correct view to present a user based on its result and a View, the [...]

The joy of deleting code

What could be more fun than writing a new shiny super-functional, super-tested piece of code? Deleting it! When deleting code you know that You have not introduced new bugs. Perhaps you deleted some potential bugs from the old code but chances are you did not introduce new ones. You don’t have to maintain it. It’s [...]

Mavenizing our code base

Maven is a build tool for Java. It’s more than that actually, but let’s just call it a build tool. In outbrain we decided we want to replace good old ant with maven. Changing the company wide used build tool is not a decision taken lightly and may have consequences on product release cycle, but [...]

Experimenting with Seam Carving

Seam Carving is a technique for smart image resizing developed by Shai Avidan and Ariel Shamir. It’s cool. It’s really cool actually! It let’s you resize an image without having to lose important information, so for example, if there’s a face in the photo and a background, the background will shrink while the face will [...]

Why functional languages rock with multi-core

Cores are cheaper nowadays. Almost all new computers are shipped with 2 or more cores. Datacenter computers usually ship with more – 4, 8, 32… Again the hardware industry has left the software industry behind; if only Moore’s law would work the same way for software… But there is hope! Functional programming languages used to [...]

Beware of the Singleton

The Singleton design pattern is well known and used among programmers. It is so easy to use that unfortunately it often gets misused. In Java a singleton usually looks like this: public class Singleton { private static final Singleton INSTANCE = new Singleton(); // Private constructor prevents instantiation from other classes private Singleton() {} public [...]