ZeroMQ is the Redis of Distribution

Lately I’ve been toying around with ZeroMQ a lot more (or ØMQ). A couple of years ago I thought it was definitely interesting since it was optimized for speed, and handled a few patterns. It wasn’t until recently though it clicked for me and it all made sense.

ZeroMQ is the Redis of Distributing Work.

Redis is a great database but more especially for being something that exposes an API around common data structures. For instance, if you want a Set, Hash, List, SortedSet or much much more you just have a simple command to either create, read, update, or delete them. See http://redis.io/commands for more.

ZeroMQ on the other hand is an exceptionally simple message queueing library. It allows you to send data between endpoints with ease. But what truly intrigues me is the ability to easily set up Pub/Sub, Request / Reply, Push / Pull, or Pipelining of data using a simple Socket API.

What a joy! What this means is I can focus on sending the data and not how to send it.

Why did I write a Machine Learning Book in Ruby?

When I tell developers that I wrote a Machine Learning book in Ruby usually I get blank stares. After the initial shock they ask “why not python?” “or R?” “or even LISP??”.

There seems to be a long stigma as to what sort of language you use for what. Python is used in academia for machine learning, statistics, and general proofs of concepts. Ruby is really just a dialect of Rails and similar to javascript gets classified as only valuable in websites.

This blog post will outline the reasons why I decided to write an entire book about Machine Learning in Ruby. Not Python, R, Julia, or Matlab.

[Read more...]