SQS, Simple Message Queue, is a message-queue-as-a-service offering from Amazon Web Services. It supports only a handful of messaging operations, far from the complexity of e.g. AMQP, but thanks to the easy to understand interfaces, and the as-a-service nature, it is very useful in a number of situations. But how…
Cluster-wide Java/Scala application deployments with Docker, Chef and Amazon OpsWorks
Docker is great for running isolated containers on a single node. However, most software systems run on multiple nodes, so in addition to Docker, we need some way of specifying which containers should run on which nodes. The specific problem that I want to solve is the following: I have…
Reactive Queue with Akka Reactive Streams
Update 15/09/2014: introduced API changes from akka-streams 0.7.Update 30/10/2014: introduced API changes from akka-streams 0.9.Update 15/12/2014: introduced API changes from akka-streams 1.0-M1. Reactive streams is a recently announced initiative to create a standard for asynchronous stream processing with built-in back-pressure, on the JVM. The working group is formed by companies…
Codebrag: why post- and per- commit?
We have recently released version 2.0 of Codebrag, our code-review tool. Why a new code-review tool in the first place? We are certainly not the first in the market. When working on projects, we prefer tools that are as light as possible, adding minimal overhead to the process. We usually…
Functional Discrete Optimization @ Coursera with Scala
Recently I took part in the Discrete Optimization class at Coursera. I must say that it was the best MOOC I have attended so far, because of two factors. First of all, there was a lot of coding, and as a programmer, I like coding. The final grade depended only…
Spray server in a Docker container
Docker is a pretty new, but very exciting project; with Docker you can create lightweight, self-sufficient containers with any application inside, and later run the containers on a variety of hosts. The same container can be run locally, as well as on production on a large scale. Moreover, running the…
Inverse beacon positioning
Indoor positioning is a very popular topic recently, mostly due to the iBeacon technology promoted by Apple, and adopted by other vendors. Most of the research on indoor location involves a set of fixed beacons on well-known positions, and a moving beacon signal receiver. What if the beacon was moving,…
Makerland, hackaton and turtles
The first Makerland is over – if you read only the first sentence of this blog, the conference was great, watch out for the second edition (hopefully there will be one)! What is Makerland? A hardware conference for non-specialists (not only developers, though they were the majority) – think Arduinos,…
Big data: when single node is better than clustered
There’s a lot of hype about “big data” and a general trend to try to apply Hadoop to almost every problem. However, sometimes it turns out that you can get much better results by writing an old-fashioned, but optimised, single-node version of your algorithm. The specific case I’m writing about…
Using Scala traits as modules, or the “Thin Cake” Pattern
I would like to describe a pure-Scala approach to modularity that we are successfully using in a couple of our Scala projects. But let’s start with how we do Dependency Injection (see also my other blogs). Each class can have dependencies in the form of constructor parameters, e.g.: 1 2…