ØMQ Blog

Not To Be Confused - 01 Sep 2010 11:25 - by pieterh - Comments: 2

The other day, I got this email:

From (***REDACTED***)
to moc.xitami|hp#moc.xitami|hp
date (***REDACTED***)
subject (***REDACTED***)

Dear iMatrix,

Recently I was sent a link to one of the blogs on your website, an article, which I found quite interesting.

However, to my dismay, I also realized that iMatrix had fallen into the trap of not doing their PR homework when choosing your company nomenclature.

In particular I am referring to the use of the unique Danish vowel 'Ø' as part of the abbreviation for your 0MQ messaging/parallelism library. To wit, the letter Ø is not just an extra element in the ASCII table that doubles for 0 (zero).

The Danish language has no less than three vowels, which are unique to it. They are Æ ('ae'), Ø ('oe') and Å ('aa'). The form of writing them with two letters is just a convenience for the benefit of non-Danes. The actual pronunciation is nothing like those vowels concatenated, that is why Danish has unique letters for those sounds.

Notice that these three letters are grouped in the extended ASCII table along with similar unique letters from other languages. Ie. 'Ö' is a very similar sounding letter, which is found in Swedish and German, among other languages.

Worse still, then these letters are extremely common in Danish, and your abbreviation ØMQ doesn't read anything like 'Zero somethingorother' in this language.

Here are some examples of Danish words using the letter Ø:

Ø : (Yes, the letter alone) Island.
Fanø : Name of a Danish Island. There are many more like this, as Denmark has hundreds of islands of varying sizes.
Sø : Lake.
Sønder : Southern.
Søndersø : Location name, 'The southern lake'.
Strøm : Flow or current, both of bodies of water and electricity.
Grøn : Green.
Sønderstrømfjord : Location name on Grønland (aka. Greenland to non-natives).
Sød : Sweet.
Dør : Door.
Øre : Ear.
Øje : Eye.
Køn : Pretty.
Kød : Meat.
Føre : To lead.
Køre : To drive.
Før : Before.
Købe : To buy.
København : Name of our capital, often translated into English as Copenhagen. 'Havn' means harbour, so København can be roughly translated as 'The trading harbour', which it is.
Grøft: Ditch (long depression in the soil for rainwater.)
Høj : Hill.
Grøfthøjparken : Name of the street, where I live. Means 'The park with the hill and the ditch'.
Rød : Red.
Fløde : Cream.
Grød : Porridge.
Rødgrød med fløde : Name of an old fashioned dessert, the name of which is completely impossible to pronounce correctly by anyone but native Danes. English and most other languages simply doesn't have the 'Ø' sound. This sentence is often used by Danish children to tease non-natives by trying to get them to say it. It is a red porridge (more like jello, actually) made from strawberries and served with chilled cream.

In other word: Ø is not a funny looking zero. It was included in the extended ASCII table because it is vital to writing Danish on a keyboard. I realize that historically the American IBM engineers used a shorthand with the slash over the zero to distinguish it from the letter 'O'. But the ASCII code for their slashed zero was the ASCII zero, not the Danish letter. They basically changed the optical image of zero for the convenience of humans and did not introducing a new character for the purpose.

So you guys are basically looking really strange to us over here. Do note that using ØMQ instead of 0MQ also ruins your ratings in the search engines. Only Danish keyboards will have the letter Ø directly available for typing, and we do not think of Ø when we hear the English word zero. So basically no-one, anywhere on the planet, will know how to correctly search for the name of your product.

Kind regards


The Danes, it seems, take their alphabet very seriøusly. The last thing we want is to annoy anyone, especially someone whose ancestors used to raid northern Scotland for grød and haggis. But the writer of this email, Mr (***REDACTED***), from (***REDACTED***) (if that is even his real name), shocks us with his lack of knowledge, not to mention his 'accidental' mispelling of iMatix. Ø and ∅ are two totally different letters. They don't even look remotely similar!

It's true that all of us have sometimes written ØMQ instead of ∅MQ by accident (the letters are like right next to each other), but I'm going to set the record straight. For all Danes, ∅MQ is pronounced "The-letter-not-to-be-confused-with-Ø-em-queue", or if you are a mathematician, "empty-set-times-M-times-Q". The rest of us can continue to say "zero-em-queue".

For the collectors of software trivia, ∅MQ is possibly the very first product ever to use a Unicode name. Where ∅MQ goes, Gøøgle cannot follow!

ØMQ for Clojure - 27 Aug 2010 05:39 - by martin_sustrik - Comments: 0

Jeff Tucker blogs about setting up ØMQ for Clojure:


Subsequent blog explores Clojure/Ruby interop via ØMQ:


ZeroMQ: What You Need to Know Braindump - 17 Aug 2010 07:20 - by martin_sustrik - Comments: 0

Andrew Cholakian writes, on his blog:

The more time I spend with ZeroMQ, the less I can think of a reason I'd ever have to open up a raw TCP or UDP socket, except in extraordinary circumstances, again. I think of ZMQ as common IPC and network communication patterns abstracted into messages and sockets that don't require a broker infrastructure. The whole message queue aspect of it is great, but ZMQ is really designed for a whole range of situations you'd never use AMQP for, and IMHO, that's the truly interesting thing about it. You don't really run ZMQ brokers (mostly), you communicate socket to socket using queue semantics.

RFC: ØMQ Contributions, Copyrights and Control - 03 Aug 2010 10:46 - by pieterh - Comments: 1

We started ØMQ almost three years ago with the goal of building an open source low-latency fabric. At the time we chose a policy of centralized copyrights. We asked contributors to sign over their copyrights via a CLA. Later we switched to accepting contributions under the MIT/X11 license, which allows sublicensing.

Today, I want to change that policy. ØMQ is a great product for several reasons but to me, the work of volunteers is key. And today's policy is unfair to those contributing to ØMQ. Which means that over time, it's bad for ØMQ. We want ØMQ to become a standard part of every programmer's toolbox, a standard component on every connected box. That won't happen so long as the source code insists on being the property of one business.

We as a community are building an open ecosystem for scalable distributed services. We share the belief that such an ecosystem is worth orders of magnitude more than the sum of what any of us can make alone. We therefore work together, as peers, profiting from the new solutions that the ecosystem makes possible, rather than exploiting and ultimately draining the ecosystem itself.

So here's my plan. We like the LGPL and will stick to that. All source code will use the standard text:

ØMQ is free software; you can redistribute it and/or modify it under the terms of the Lesser GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.

Which lets us upgrade to future versions of the LGPL when they emerge in 10 or 20 years' time. And the copyright statement on existing and derived source files will say:

Copyright (c) 2007-2010 iMatix Corporation and contributors

Which seems accurate and fair, while new source files may use whatever copyright statement is suitable. For contributors, things now become really simple: publish your new work under the LGPL, publish derived works under LGPL, publish patches under LGPL. It allows free remixability in directions under a single mutual contract, the LGPL.

By creating shared ownership of the full work, we also safeguard against any future relicense switch that could hurt our users. It's appropriate that a distributed decentralized technology with no single point of failure have a distributed, decentralized ownership with no single point of failure.

Finally, write access to the git repository. Unclear copyright provenance has been the main reason to keep this limited and to not expand the git repository to include satellite projects. But if all contributors own their work, anyone with credentials can become a committer and the git repository can grow.

We do need strict quality control on commits to the git repository. So I'd like to expand the current set of committers. You might be looking after some specific parts of the git, or helping with overall organization. The set of committers would be self-selected from known and trusted ØMQ contributors.

The committers will also have authority on releases, API changes, and the other contracts that bind us together as a community. There is no reason for iMatix to have a point of view on this except as one voice within a group of peers.

With these changes, which we'll introduce carefully once we've all discussed this, I hope that ØMQ will continue to grow healthily, and fairly to all of us who love this product and want to see it in widespread use.

New - ØMQ Labs! - 02 Aug 2010 19:54 - by pieterh - Comments: 0

The sign of a healthy open source project is an active community, and the ZeroMQ community is one of the most creative and active around. We're still small, only a few hundred people on the zeromq-dev list, but there is something magical about this software. As we unpack, build, and start to use it, it opens doors that we never even knew existed. The impossible becomes feasible, then obvious. Pure scalability is an exciting catalyst and even the most jaded developer, watching Oliver Smith's video intro, starts to wonder, "what could I make with this…?

We've started to document open source projects that use ZeroMQ. But most projects start as ideas or prototypes, and so we're collecting ideas and works in progress from the mailing list, so that people exploring ZeroMQ can see what others are working on.

This is ØMQ Labs. It's nothing complex, just a list of stuff that people are thinking about, or working on. There are projects like Matt Weinstein's Reactor Pattern, and Oliver Smith's research into parallel sorts running over ZeroMQ. Feel free to add your ideas and projects.

Video Introduction to ØMQ - 26 Jul 2010 14:02 - by pieterh - Comments: 3

Oliver Smith has produced this lovely video explaining ØMQ and showing off its main features, live:

ØMQ available at CPAN - 13 Jul 2010 20:19 - by martin_sustrik - Comments: 1

Thanks to Steffen Müller Perl binding for ØMQ released on CPAN:



Welcome, Objective-C :-) - 12 Jul 2010 12:22 - by pieterh - Comments: 0

OS/X developers welcome to the ZeroMQ community! The growing list of bindings on that left hand menu has a 17th entry, Jeremy W. Sherman's Objective-C binding. This gives Objective-C developers an easy way to build scalable multithreaded applications, and talk to other apps in any language, over ZeroMQ.

Few Blogposts on ØMQ - 10 Jul 2010 13:42 - by martin_sustrik - Comments: 2

Ruby Gem for ØMQ/2.0.7 available! - 29 Jun 2010 08:19 - by martin_sustrik - Comments: 0

Brian Buchanan announces:

The ØMQ Ruby bindings are now published as the "zmq" gem. The current gem supports libzmq 2.0.7 for Ruby 1.8 and Ruby 1.9. Threads are supported for Ruby 1.9 only. Install with "gem install zmq" or see the wiki for more detailed instructions.


If you want to become a ØMQ blogger, contact us.

All posts

07 Feb 2011 10:21: Installing ZeroMQ and Java bindings on Ubunu 10.10 comments.png 0
03 Feb 2011 09:11: Python Multiprocessing With ØMQ comments.png 1
01 Feb 2011 21:29: ØMQ And QuickFIX comments.png 3
23 Dec 2010 09:33: Message Oriented Network Programming comments.png 0
19 Dec 2010 13:03: ØMQ/2.1.0 available on OpenVMS comments.png 0
13 Dec 2010 12:46: Load Balancing In Java comments.png 1
10 Nov 2010 10:01: Building a GeoIP server with ZeroMQ comments.png 0
31 Oct 2010 11:44: ØMQ blog by Gerard Toonstra comments.png 0
13 Oct 2010 10:47: ØMQ - The Game comments.png 0
09 Sep 2010 07:45: ZeroMQ and Clojure, a brief introduction comments.png 0
03 Sep 2010 18:07: ZeroMQ: Modern & Fast Networking Stack comments.png 0
02 Sep 2010 13:30: September Meetups comments.png 0
01 Sep 2010 16:05: Multithreading Magic comments.png 0
01 Sep 2010 11:25: Not To Be Confused comments.png 2
27 Aug 2010 05:39: ØMQ for Clojure comments.png 0
17 Aug 2010 07:20: ZeroMQ: What You Need to Know Braindump comments.png 0
03 Aug 2010 10:46: RFC: ØMQ Contributions, Copyrights and Control comments.png 1
02 Aug 2010 19:54: New - ØMQ Labs! comments.png 0
26 Jul 2010 14:02: Video Introduction to ØMQ comments.png 3
13 Jul 2010 20:19: ØMQ available at CPAN comments.png 1
12 Jul 2010 12:22: Welcome, Objective-C :-) comments.png 0
10 Jul 2010 13:42: Few Blogposts on ØMQ comments.png 2
29 Jun 2010 08:19: Ruby Gem for ØMQ/2.0.7 available! comments.png 0
23 Jun 2010 09:27: ZeroMQ an introduction comments.png 1
18 Jun 2010 10:15: Mongrel2 Is "Self-Hosting" comments.png 0
08 Jun 2010 21:25: Internet Worldview in Messaging World comments.png 0
07 Jun 2010 16:13: Berlin Buzzwords 2010 comments.png 1
05 Jun 2010 10:24: Loggly Switches to ØMQ comments.png 4
04 Jun 2010 18:05: ØMQ/2.0.7 (beta) released comments.png 12
24 May 2010 09:37: Building ØMQ and pyzmq on Red Hat comments.png 2
18 May 2010 06:30: To Trie or not to Trie comments.png 0
12 May 2010 13:02: ØMQ/2.0.6 on OpenVMS comments.png 3
08 May 2010 09:58: Zero-copy and Multi-part Messages comments.png 17
07 Apr 2010 10:23: The Long and Winding Road Behind comments.png 2
06 Apr 2010 16:41: Historical Highlights comments.png 0

Posts by date