Showing posts with label aside. Show all posts
Showing posts with label aside. Show all posts

ZeroMQ and open source

Pieter Hintjens has uploaded on vimeo the talk on ZeroMQ and open source he gave at CERN on 27 June 2013. I warmly suggest you to watch it. It is longish, but it is worthy.

He says ZeroMQ is designed around a protocol, that originally was just about framing the message sent around, and then it expanded adding versioning information and security.

Than he says how important are patterns (Pub-Sub, Req-Rep, Pipeline ...) that are wrapped in sockets, giving an easy to use approach, and robustness, to the framework.

Bindings are important, because they make ZeroMq available on many different platforms, and they help building a strong programming community. As it helps the licensing policy, designed expressly to take advantage of the open source market.

The ZeroMQ's growth is based on contributions, anyone could contribute with its own code (through github pull request). But you should not break the API. The process is based on small changes, that should lead to a smooth migration to new versions.

A strong point is that people are more important than the code. The idea is that a project is a way of organizing people around a problem, so that they can interact to find solutions. Problems are important, because they lead to improvement.

Go to the full post

Reading about ZeroMQ

I have just got this book, ZeroMQ - Use ZeroMQ and learn how to apply different message patterns, written by Faruk Akgul for Packt Publishing, and I about to read it. Some more substantial feedback in the near future.

It is a bit under my level, since it is thought for C developers at their first experience with ZeroMQ, but it is a while I don't actually work with this fine framework, and I felt it would be nice to have a refresh of the basic concepts starting from a different perspective.

Browsing the index, you could see how the book is structured to provide an introduction to ZeroMQ, letting you know how to write a simple C client-server application, describing how it works. Chapter two is mainly dedicated to a couple of messaging patterns, pub-sub and pipeline, and there is also a section dedicated to Valgrind, and how to use it to detect memory leaks on 0MQ. Chapter three gives more details on what a ZeroMQ socket is, and how to use it. In its second part, an introduction to CZMQ, the high(er) level C wrapper to the standard ZeroMQ library, is given. Chapter four delves a bit more on some more advanced topics.

The code in the book has been written for ZMQ version 3.2, and CZMQ 1.3.1; for what I have seen, the building instruction are provided only for the GCC compiler (version 4.7.2 is cited, I quite confident the newest 4.8 would be alright).

On Windows, Visual C++ is the suggested compiler. I couldn't see any detail on how to set MSVC for ZeroMQ in the book, still I could assure you that it is very easy to build a ZMQ solution in that environment too. If you need an hint, have a look at this ancient post of mine, that should be still valid.

Go to the full post

CDS internal client error

A glitch in VMWare, running on Windows for a Linux guest. On my machine it was not possible to install the useful tools, and so I couldn't (among the other things) use the complete screen for Linux. A real pain.

This was caused by CDS internal client error (3033), issued when I tried to download VMWare Tools for Linux - version 8.8.4.

As one could expect, the solution is download the package by hand. Problem is that was not so immediate to find the right file on the net.

If you have the same issue, here is an hint:
This is the file I was looking for:
I un-tarred, and then executed it. And then I was able to continue the standard procedure from my Linux box.

Go to the full post

Boost 1.49 available

Release 1.49 of the Boost C++ Libraries is now available, yuppie!

Have a look at the specific release page on for details.

Download the zipped package from

I am currently in the process of generating the lib and dll for my (Windows) development environment, I had a yyacc error message (not such file) in the bootstrap phase, but I guess it is not an issue, b2 is running fine. If you don't get what I am talking about, you should probably have a look at the Boost Getting Started, or to my post written where I installed the beta version of this same Boost version.

Happy programming!

Go to the full post

Biting Code

I haven't done much in this blog in the past days because I have found out that I was polluting it too much with posts on Java stuff - it happened that I entered in a project where my C++ expertise is not useful, and I have to get focused on Java instead. I wondered if it wasn't the case of split the blog, keeping This Thread mainly for C++ (and something more) and moving all the Java related stuff somewhere else.

Well, I did it. And Biting code is its name.

Go to the full post

Moving a file around

In my current project I use subversion, and TortoiseSVN, as a versioning tool. It is not the first time I am using it, but I am not yet an expert SVN user. For instance, last day it was the first time I bumped in a file-moved issue.

A file, let's call it one.txt, was happily sitting in the doc folder for a while, when someone decided it had to move somewhere else, say in a subdirectory named sub.

Moving a file with tortoise is very easy. Right click on it from the explorer, go in the TortoiseSVN submenu, Rename it specifying the new path name, in this case "sub/one.txt", and finally commit the change to subversion. Notice that "sub" should be an already existing directory, both in the working area and in the repository.

A glitch could arise is another user is working on the same file, and try to save it to the old location after it has been moved to the new one.

User 'B' changes one.txt in doc, and then try to commit. To his surprise, he got an error and a suggestion to update his working files. But the update leads to another error: subversion detects a conflict between doc/one.txt in the working area and doc/sub/one.txt in the repository.

At this point, tortoise let us to decide what to do: do we want to override the decision of the first user and move back the file to the original position, or do we accept the move? Both alternatives are supported.

Go to the full post


Dramatic change in the blog. I restart from scratch, in English this time.

Be patient if I make mistakes, I am Italian, after all ;-)

Go to the full post