IRC Log


Thursday May 12, 2011

[Time] NameMessage
[06:05] mikko good morning
[06:15] guido_g morning all
[10:24] pieterh a dealer socket (xreq) is exactly like a push socket merged with a pull socket
[10:25] pieterh a router socket basically has a weird API for send/recv that includes an address
[10:25] pieterh currently the address is passed as a fake message frame
[10:26] cods I think I undestand for router (<ID> + nul frame + <payload> -possible made of several frames itself-)
[10:26] cods I need to think again about dealer
[10:26] pieterh nope, that's a different aspect
[10:26] cods ah
[10:26] pieterh rourter doesn't use an envelope at all
[10:26] pieterh that's what REQ and REP sockets do to talk to each other
[10:27] cods hmm, I thought it was just just renaming of XREQ/XREP.
[10:27] pieterh it is
[10:27] pieterh router === xrep, dealer === xreq
[10:28] pieterh your confusion is a frequently-seen consequence of the poor names and strange asymmetric behaviour
[10:28] pieterh the behaviour actually makes sense, but only if you use different names
[10:28] cods ah :)
[10:28] pieterh a REQ socket creates an empty envelope (1 null part) + content
[10:29] pieterh a REP socket takes an envelope + content, saves the envelope, gives the content to the application
[10:29] pieterh and on sending, does the reverse: takes a content, re-wraps it, and sends it back
[10:29] pieterh a DEALER socket (aka XREQ) just forwards messages in and out, period
[10:30] pieterh a ROUTER socket (aka XREP) passes entire messages (envelope + content) to/from an app, with the virtual address frame prepended
[10:30] pieterh any envelope construction is done by an app
[10:30] pieterh which reads from a ROUTER and writes to a DEALER
[10:30] cods that's interesting. I was confused from the beginning then. Good summary!
[10:31] pieterh the design actually works really nicely except for the names
[10:32] ASY pieterh, you missed earlier, I was crying about the fact that if network connection breaks during REQ/REP exchange the requester hangs permanently.
[10:32] pieterh yup
[10:32] pieterh ASY: if you read the Guide, ch4, there's a pattern to handle this
[10:32] pieterh the lazy pirate
[10:33] pieterh Rrr = reliable request reply
[10:35] mikko http://repo.zero.mq/rpm/
[10:35] mikko rpm repository is up
[10:35] mikko and 2.1.7 packaged
[10:35] ASY pieterh: don't think so. or am I missing something? https://github.com/zeromq/libzmq/issues/215
[10:36] pieterh ASY: have you read that part of the Guide?
[10:36] pieterh the REP disconnecting is a classic failure
[10:36] pieterh it's precisely what LP is meant to handle
[10:36] pieterh mikko: nice!
[10:37] pieterh ASY: I'm not disagreeing that it'd be nice to have the REQ socket do this automatically
[10:37] ASY not when you already sent the message. if you sent the message already and REP disconnects it results in the REQ permanently hanging. unless you implement a manual timeout, which is unacceptable in my situation.
[10:40] ASY anyhow.
[10:41] pieterh As implemented today, REQ sockets are not robust against typical failures in distributed apps
[10:42] pieterh I'd not do a blocking recv on a REQ socket unless it was between threads
[10:42] pieterh between peers, where one can crash, I'd always use a Lazy Pirate pattern
[10:45] pieterh ok, 2.1.7 released
[10:45] ASY i will get around it, but this is not how it should be.
[11:05] pieterh ASY: you may want to look at the code and send a patch for this
[11:27] ASY pieterh: i don't want to volounteer because it is 7:26 am again and I haven't slept again :( and I expect it to be like this for at least 2-3 months, but if no one will get to it by then, I definately will.
[11:28] pieterh ASY: yeah, I know how it goes...
[11:33] pieterh sustrik: ping?
[11:36] truemped mikko: Hi! Are you also working on the deb repository?
[12:16] cods Would it make sense to use PUSH/SUB ? (I mean technically, not necessary from a semantic point of view)
[12:17] mato hi all
[12:21] mile short question on PUB/SUB
[12:21] mile are the messages filtered on the publisher side, or when they reach the subscriber?
[12:21] cods it's filtered on the reader side
[12:22] mile so they get over the line anyway?
[12:22] cods indeed
[12:22] mile kind'a sucks, but at least it's straightforward :)
[12:46] ianbarber mile: there is publisher side filtering on a branch in the github. it's pretty complex :)
[12:47] mile well, I thought about it a bit before asking, it is indeed a non-trivial thong
[12:47] mile thing
[12:47] mile I assume having a broker to do the filtering should be the way to go
[12:50] ianbarber yeah, that works well
[12:50] ianbarber having intermediate devices composing new variations of feeds is pretty common afaik
[14:14] lestrrat so are you guys going to dictate how bindings should be named? that's silly.
[14:14] sustrik lestrrat: nope
[14:14] sustrik note the "discuss" part
[14:14] lestrrat the wording on the trademark page looks extremely hostile
[14:15] sustrik pieterh: summon
[14:15] lestrrat and a sudden issue-filing on github.
[14:15] sustrik sorry?
[14:16] lestrrat could've at least given me a friendly poke.
[14:16] sustrik what happened?
[14:17] lestrrat I had a issue filed against ZeroMQ.pm just a couple of hours ago. (granted, I know it wasn't meant to be mean or hostile)
[14:17] lestrrat but I thought I was doing a service to the product by working hard to make it work on another language,
[14:18] sustrik yuck, this should have been discussed first
[14:18] mato pieterh: oi! wake up!
[14:18] mato indeed
[14:18] mato lestrrat: link please?
[14:18] lestrrat but it was so sudden and so ... I dunnowhat the wording is, but ugh.
[14:19] mato lestrrat: for the record, can you please reply to pieter's email on the list asking for discussion on the policy?
[14:19] mato lestrrat: IRC is all very transient
[14:19] lestrrat again: the github issue itself isn't mean/hostile. https://github.com/lestrrat/ZeroMQ-Perl/issues/13
[14:19] lestrrat but it was so sudden, you know?
[14:19] sustrik the problem is that the trademark stuff has to be sorted out
[14:20] sustrik otherwise it will bite us in the future
[14:20] sustrik you can imagine different catastrophic scenarios
[14:20] mato lestrrat: ah, yes, pieter specifically brought up the Perl binding at the unconf
[14:20] mato lestrrat: with the complaint that he put in the issue
[14:20] lestrrat it's the perl traditional way of naming things.
[14:21] mato yes, i pointed that out
[14:21] lestrrat no module is ever named Perl::Foobar
[14:21] mato please just tell pieter so and close the issue with "won't fix"
[14:21] mato as for the trademark policy itself, that does need to be discussed in depth
[14:22] sustrik yup, let's discuss it on the list
[14:24] lestrrat okay, I get the sense it's not like everybody's all worked up to change the name :/
[14:24] mato not really
[14:24] lestrrat it was just like "WTF?" you know.
[14:24] lestrrat wll reply...
[14:25] sustrik there are two aspects to it IMO
[14:25] sustrik either the trademarks are to be used as a protection against hostile takeover of the name
[14:26] sustrik in which case the bindings *should* be named zeromq
[14:26] sustrik to give them trademark protection
[14:26] sustrik or it is meant to protect imatix' bundling of the stuff as opposed to packages made by anyone else
[14:27] sustrik in which case binding should not be called zeromq
[14:27] mato I understand the intent to be the former
[14:27] mato if it's the latter, then it's all wrong...
[14:27] sustrik the page seems to mix the two
[14:29] lestrrat Either way, I understand that this type of protection needs to be set. I guess I'm more pissed the fact that 1. I feel like our (perl) culture is being raped, and 2. I feel like I'm being told by some sort of gov't agency to cease-or-desist
[14:29] lestrrat sorry, in a pissy mood today.
[14:30] sustrik np
[14:31] sustrik the only real solution would be to have a foundation-owned trademarks
[14:31] sustrik but noone feels like setting a foundation so fat i would guess :)
[14:31] sustrik far
[14:31] mato well, the policy is separate from who "owns" it
[14:31] mato it's a matter of trust
[14:32] sustrik yep
[14:32] mato see for example the Debian trademark policy here: http://www.debian.org/trademark
[14:32] mato simple and straightforward
[14:33] sustrik aha
[14:33] sustrik looks to be an easy solution
[15:12] lestrrat all lowercase module names are by tradition reserved for pragmas, so perlzmq is not a valid option https://github.com/lestrrat/ZeroMQ-Perl/issues/13#issuecomment-1147039
[15:13] lestrrat ... which, I forgot to mention in my email. oh well.
[15:13] lestrrat I'm open to a rename given enough prodding, but dictating how things should be name in a different culture is silly.
[15:14] guido_g what about naming things like another thing in the same problem domain?
[15:15] lestrrat I believe my predecessor named it ZeroMQ because ZeroMQ is a unique domain. At least that's how I perceived it tobe.
[15:16] lestrrat I really don't have a better alternative.
[15:18] lestrrat gosh, I think I'm more pissed than I thought I was.
[15:18] lestrrat cause I know this problem in itself is silly.
[15:19] lestrrat but just.. argh.
[15:20] lestrrat damnit, somebody just come up with a different name that matches the perl way.
[15:21] lestrrat I don't want to deal with this.
[15:21] guido_g just change the repo name
[15:21] lestrrat that's now what I'm being told.
[15:21] lestrrat I mean
[15:21] lestrrat that's NOT what I'm being told.
[15:22] guido_g ok, maybe should figure out what you've been told first
[15:22] lestrrat to change the name completely
[15:22] mikko ZMQ ?
[15:23] guido_g the repo name, so this is consistent with the other reqpos and can live in the same github org
[15:23] mikko the library is libzmq
[15:23] guido_g most users do have a problem finding out what is what
[15:23] guido_g the pyhton-bindings are pyzmq but the python module to import is named zmq
[15:24] mikko php module is called 'zmq'
[15:24] guido_g but noone cares, except the python users and so far no complaints
[15:24] guido_g id do have the impression that its more about the repo name
[15:25] guido_g but w/o pieterh explaining his intentions it's all guessing
[15:25] lestrrat no, I think it's the module name. he explicitly cited an automated tweet that said something along the lines of "ZeroMQ X.XX uploaded to CPAN"
[15:26] lestrrat and I understand the concerns.
[15:26] lestrrat I'm more pissed that there was no discussion with me before hand.
[15:27] pieterh lestrrat: hi
[15:27] guido_g ahhh... enlightment ahead :)
[15:27] lestrrat waiting.
[15:27] pieterh sorry, I was away picking up the kids at school
[15:28] pieterh so, sustrik asked me, on Tuesday, for a written policy on the trademarks
[15:28] pieterh this was at the conference, guido_g, mato, etc. were present
[15:28] pieterh apparently, the text on the footer of every page wasn't sufficient
[15:28] pieterh so, I wrote a policy for trademarks
[15:29] pieterh there was also some mention of the perl binding calling itself 'zeromq'
[15:29] pieterh and so I raised an issue... sorry for not emailing you privately but I didn't realize an issue would be taken so... seriously
[15:30] sustrik well, it's a naming issue so it's going to be taken seriously
[15:30] pieterh well, indeed, there is no gentle way to discuss this, in fact
[15:30] sustrik that's why i asked about the trademarks in the first place
[15:30] pieterh indeed
[15:30] sustrik yep, better now than later
[15:30] pieterh we do need a policy
[15:30] guido_g ack
[15:30] pieterh even if it's "do whatever you like, we're not going to enforce anything"
[15:31] pieterh well, there is technically a default policy
[15:31] pieterh if you say "XYZ is my trademark" then that's normally like saying "(C) me"
[15:31] pieterh there are default laws on these things
[15:31] sustrik right
[15:31] pieterh normally a policy is needed only to grant additional rights
[15:32] pieterh which is what I tried to write, but briefly, on that page
[15:32] sustrik the question is whether you want to use the trademarks yourself or whether you want to make them community owned
[15:32] pieterh lestrrat: I'm really sorry to have spoilt your evening
[15:32] sustrik the page was a bit ambiguous about the goal
[15:32] pieterh sustrik: that's not a real question
[15:32] sustrik in the first place all the bindings should be names zmq-something
[15:32] pieterh you cannot own things collectively, in modern law
[15:33] pieterh only individuals and legal entities can own things
[15:33] lestrrat Let me just clarify a couple of things: How urgent/serious is the naming issue? is somebody going to be after my ass if I don't change it anytime soon ?
[15:33] pieterh lestrrat: it's not urgent, really
[15:33] sustrik nope
[15:33] sustrik it's just about making the naming thing clear
[15:33] lestrrat k. that gives me a deprecation cycle. I feel better already.
[15:33] pieterh lestrrat: I guess you always treat issues as urgent... this is not, it's just my naive way of trying to reach you transparently
[15:34] pieterh lestrrat: note that I did NOT invoke the trademark policy on my issue report
[15:34] sustrik i mean, the thing is that if we want to use the trademarks as a defensive tool against hostile takeover, the bindings *should* be named zeromq
[15:35] lestrrat well it was at the same time, you know.
[15:35] sustrik or else we can extend the trademarks to cover zmq as well
[15:35] pieterh sustrik: was just going to say that...
[15:35] pieterh lestrrat: yes, sorry for that
[15:35] sustrik unfortunately, there's a company called zmq iirc
[15:36] pieterh so the trademarks have to be owned by _someone_ and that entity has to express a policy if it's not the default "don't touch"
[15:36] lestrrat one more thing: guido suggested "zmq" -- which very closely resembles "zeromq" -- but is it an accepted standard naming in this community?
[15:36] guido_g http://www.zmqsoft.com/
[15:36] pieterh I've been thinking of handing the trademarks over to some foundation but that's not always simple
[15:36] pieterh lestrrat: yes, zmq is the real name of the project in many ways
[15:36] pieterh libzmq, xxxzmq for bindings, etc.
[15:37] sustrik what about the one that owns debian trademark?
[15:37] pieterh debian foundation
[15:37] lestrrat well, so what stops somebody else to come up with another trademark and tell me to change my module name again then?
[15:37] lestrrat (suppose I renamed it to ZMQ.pm, that is)
[15:37] pieterh lestrrat: ok, here's the deal
[15:37] sustrik lestrrat: the trademark should
[15:38] pieterh in fact we ... the community ... control the trademarks
[15:38] sustrik that's why we are discussing it
[15:38] pieterh I'm just trying to express the rules we all want to enforce
[15:38] lestrrat right right, I think I wasn't clear.
[15:38] pieterh if you can convince the community that 'zeromq' is the name you want to use
[15:38] pieterh then we will find the right text that makes this possible
[15:38] lestrrat I mean, if ZMQ is an acceptable binding name, then please note that somewhere, and make that the guideline for bindings.
[15:39] pieterh yes, that's been done
[15:39] pieterh "Guidelines for bindings authors"
[15:39] lestrrat I don't want to have some other next generation zmq guy to tell me to change the name because it's confusing.
[15:39] pieterh sorry, "Writing a Binding", http://www.zeromq.org/docs:bindings
[15:39] lestrrat ah
[15:39] lestrrat well, then I blame my predecessor.
[15:39] lestrrat when I got it handed down to me, it was already ZeroMQ
[15:39] pieterh no, because I only added that relevant text this morning...
[15:39] lestrrat :/
[15:40] lestrrat makes sense ;)
[15:40] lestrrat ok.
[15:40] pieterh no blame here, just a growing community that needs consistent names to avoid confusion
[15:40] pieterh this is also why we renamed the zeromq core project to libzmq
[15:40] lestrrat ok. I have enough information then.
[15:41] lestrrat the distribution name will be changed to ZMQ (so tweets will show up as "new ZMQ uploaded to CPAN"),
[15:41] lestrrat the module will be ZMQ.pm, but there will be an alias module named ZeroMQ.pm for a while.
[15:41] sustrik wait a sec
[15:41] pieterh this would be cool, and I'd add "Perl" in there somewhere, for others, and #zeromq for those searching on that tag
[15:41] pieterh maybe
[15:41] sustrik let's sort out the extent of the trademark first
[15:41] lestrrat and after a while I'll deprecated ZeroMQ.pm
[15:41] pieterh sustrik: it's kind of orthogonal
[15:42] sustrik if ZMQ is a trademark of zmqsoft
[15:42] sustrik it can become a problem
[15:42] pieterh only if there's risk of confusion
[15:42] pieterh plus the trademark holder does actually have to police it to some extent
[15:42] sustrik right
[15:43] pieterh plus there is no mention of trademarks on the ZMQsoft.com site
[15:43] sustrik but still, don't rename anything till the discussion is sorted out
[15:43] lestrrat the repo name can have the word perl, but the module nor the distribution will *never* have the word perl on it. is that an issue?
[15:43] lestrrat sustrik: right.
[15:43] pieterh lestrrat: that's normal and fine, of course
[15:44] pieterh people can refer to the "Perl zmq module" which is very close to perfect
[15:44] pieterh but before you make this change, please do ask zeromq-dev for feedback, others may have better suggestions
[15:46] sustrik here's the Debian thing mato pointed out:
[15:46] sustrik http://www.spi-inc.org/
[15:46] lestrrat I'll let it sit while you guys decide on the trademark stuff ;)
[15:46] sustrik projects:
[15:46] sustrik http://www.spi-inc.org/projects/
[15:47] pieterh sustrik: I'm happy to accept patches, obviously
[15:47] pieterh anyone who accuses me of hidden intentions can go jump in a deep lake :)
[15:48] pieterh lestrrat: the naming conventions for bindings does not depend on the trademark policy but rather drives it
[15:49] sustrik it looks like an good option; the presence of projects that were bitten by trademark stuff should suggest that the policies there are sound
[15:49] sustrik LibreOffice, Jenkins
[15:49] pieterh sustrik: since zmqsoft doesn't claim zmq
[15:49] sustrik goodo
[15:49] pieterh we can add that to the list
[15:49] sustrik ok
[15:49] pieterh the problems with Jenkins is a good example why clear policy is valuable
[15:50] pieterh however a real policy has to grant rights forever, at no cost, and globally, etc.
[15:50] mato back...
[15:50] sustrik which allows for hostile takeover, obviously
[15:50] sustrik investigating further...
[15:53] pieterh no, doesn't allow for hostile takeover
[15:53] sustrik hm, if you grant rights for the name to everyone
[15:53] pieterh I'll make this clearer in a real text, I have the templates but they're even more unfriendly
[15:53] sustrik what prevents microsoft to just use the name?
[15:53] pieterh you grant rights to specific uses
[15:53] pieterh did you read what I wrote?
[15:53] sustrik i did
[15:53] pieterh I tried to define what those uses were
[15:54] lestrrat well, it's your software, so from my perspective you guys can do what you wish wrt trademarks and stuff, and I'll comply to my best of abilities. the only thing I really care are my users -- if you tell me to do something that pisses my users off, I'll have the same reaction again, that's all.
[15:54] lestrrat sorry, slow typing.
[15:54] pieterh lestrrat: the reason for getting you into this thread is that your case is one that helps us define a workable policy
[15:54] pieterh so I'm really happy you responded
[15:55] pieterh sustrik: so once rights are granted they can't be removed
[15:55] sustrik reading it again... yes, it seems that 2 and 3 are not in conflict
[15:56] pieterh indeed, but (2) needs to be worldwide, transferable, fully-paid up, and irrevocable
[15:56] sustrik kind of
[15:56] pieterh literally, that's the terminology
[15:56] pieterh I tried to reduce the word count for this draft because it's hard enough already
[15:56] sustrik so if your project is hosted under zeromq organisation at github
[15:57] sustrik it has right to use zeromq name
[15:57] pieterh meaning, if the community accepts it as a "zeromq" project
[15:57] sustrik yeah
[15:57] pieterh yes, it can make a website using the zeromq logo, and call itself "zeromq something"
[15:57] pieterh which is precisely what we do
[15:57] sustrik then 3 states that imatix has to approve that
[15:57] pieterh no, iMatix has to approve other uses
[15:58] pieterh ah, 3 is confusing, I'll have to fix that
[15:58] sustrik yes, please
[15:58] pieterh in fact I don't want any software product calling itself "zeromq" except packages of projects from the community
[15:58] pieterh not imatix packages, note, anyone's packages
[15:58] pieterh I have to go, bbl
[15:59] sustrik see you
[15:59] pieterh please email the list, I won't be back on irc for 3-4 hours
[16:01] lestrrat I read (3) as "you need to ask iMatix to use zeromq-related name (anywhere)" (and went WTF?!) of course, I was skimming
[16:01] sustrik the wording should much more clear
[16:02] sustrik also, it transfers the governance of the trademarks to the zeromq github organisation admins
[16:02] lestrrat it would be nice if that whole trademark thing had a layman's version along with the actual legal mumbo-jumbo
[16:02] sustrik (of which you are one of iirc)
[16:03] sustrik which in turn would mean making the zeromq github organisation process much more trasparent
[16:03] sustrik yuck
[16:04] sustrik also, tying the legal stuff (trademarks) to 3rd party (github) doesn't seem to be a good idea
[16:05] lestrrat looks like zmq is in need of a real foundation/neutral org?
[16:06] sustrik maybe
[16:06] sustrik the problem is that whoever you pass the trademarks to
[16:06] sustrik you still have to have a process to manage them
[16:09] lestrrat just as a reference: the perl trademark stuff http://www.perlfoundation.org/perl_trademark
[16:10] lestrrat and as a trivia, some random asshole filed to have the Perl trademark in Japan last year, and my organization (JPA) and Perl Foundation are jointly filing to get it repealed.
[16:11] sustrik nice
[16:11] lestrrat so again, I understand the need for trademarks and stuff ;)
[16:12] sustrik yep, but as you see it's complex :)
[16:13] lestrrat actually, come to think of it, have you guys already filed for the trademark yet? if so, where?
[16:13] lestrrat where, as in what country?
[16:14] sustrik nope, it's just trademark by acclamation
[16:15] sustrik which, afaiu, means that you say "i own this trademark"
[16:15] sustrik meaning that you claim the name
[16:15] lestrrat but does that actually have an actual effect?
[16:15] sustrik yes
[16:15] sustrik but obviously, others may claim the same name
[16:16] sustrik that's why you have *registered* trademarks
[16:16] lestrrat I mean, can you go to court with it?
[16:16] lestrrat aaah
[16:16] sustrik i am not a lawyer though
[16:18] lestrrat well, when/if you're going to register it in Japan, call me up. I should be able to help
[16:18] sustrik ok
[16:19] lestrrat on that note. bed &. thanks for putting up with my general pissiness
[16:20] sustrik :)
[16:20] sustrik good night
[17:58] jond sustrik: you there
[19:25] michelp finally getting to hack on some zmq! This is so awesome
[20:02] joelr sustrik: did you say high water marking was a bad idea but you can't remove it for compatibility with prior versions?
[20:03] joelr or was that pieterh
[20:17] joelr hmm
[21:24] kdj michelp: What are you doing with zmq?
[21:24] michelp kdj, supercomputing :)
[21:25] michelp working on a pythonic version of the 'xector' concept from The Connection Machine http://books.google.com/books?id=xg_yaoC6CNEC&lpg=PA33&ots=t_WvQyivrL&dq=xector%20connection%20machine&pg=PA34#v=onepage&q=xector%20connection%20machine&f=false
[21:27] michelp although what i'm doing is more like a distributed hash table that looks like a dict or a set, than what the book there is talking about, but the differences are pretty minor
[21:31] kdj Awesome
[21:37] michelp the zmq code is like 10 lines tops, and i have a fully distributed data set, i didn't think it would be *that* easy
[21:43] Guthur michelp, you should do it in a Lisp
[21:43] Guthur just to be closer to spirit of CM
[21:43] Guthur though also because Lisp is cool
[21:44] michelp Guthur, it crossed my mind. I have been dipping into the lisp more lately
[21:44] michelp it's been a while, i'm rusty :)
[21:44] Guthur michelp, Scheme or Common Lisp
[21:46] michelp lisp would definitely make it easier to ship s-expressions to worker nodes to crunch in parallel, data and programs being the same thing in lisp
[21:46] michelp right now i'm shipping literal python code strings and eval'ing them :(
[21:47] Guthur michelp, I implement something like this quite recently
[21:47] Guthur to parallel a CL based testing framework
[21:47] michelp it's pretty amazing to think that all this map and reduce hotness everyone is abuzz about now was a core part of this architecture in 1984
[21:48] Guthur I defined a small DSL for my test cases, then send them to workers to process
[21:48] Guthur the test cases were reasonable long running as they involved a number HTTP request/responses to a server, and taking ~25 secs each
[21:49] michelp whoa nice. our functional tests take pretty long to
[21:49] michelp too
[21:49] michelp using that approach would probably save us some serious sitting around time
[21:50] Guthur CL is brilliant for makings DSLs, and ZeroMQ is great for 'divide and conqueror'
[21:51] michelp well after a little more spiking i might go that route
[21:52] michelp the api for this thing will eventually just be REST, so the language it's implemented in is irrelevant, and I might was well pick the one most suited for the job
[22:17] Seta00 who's the maintainer of the C++ wrapper?
[22:21] Gambit-- hello people
[22:22] Gambit-- I'm testing out some pub/sub behaviors, and I noted that using the stock test cases in python - and also in my C code - if a tcp socket gets closed between a publisher and a subscriber (that is, the subscribers connection gets reset), and the subscriber reconnects, then the subscriber at that point forward receives two copies of every message.
[22:23] Gambit-- http://pastebin.com/JJ80vaUU has the sample code I'm working from.
[22:24] Gambit-- I've also validated this behavior in both 2.0, and also 2.1.7
[22:24] Gambit-- My question is - is this expected and what can I do to prevent this from occurring?
[22:29] Seta00 pieterh, the description of libzfl on github links to http://libzfun.zeromq.org, which doesn't exist.
[22:29] Seta00 pieterh, same with http://libzfl.zeromq.org/manual:libzfl#toc7 linking to http://libzap.zeromq.org/
[22:38] sustrik joelr: nodoby said that as far as i am aware
[22:39] sustrik maybe you've meant explicit identities?
[22:39] joelr sustrik: so there's no conceptual problem with queuing up messages on the sending or receiving side?
[22:39] joelr sustrik: yes, maybe that was it. explicit identities. the two things are very closely related, though, no?
[22:39] sustrik nope
[22:39] sustrik they get queued on both sides
[22:39] sustrik depending on the capacity of link in between
[22:40] joelr so what is the problem with explicit identities then?
[22:41] sustrik it kind of introduces "persistent" messaging into fully transient system
[22:41] sustrik it does so lousily of course
[22:41] joelr hmm... i see
[22:42] joelr sustrik: so how would you queue up messages for a particular disconnected subscriber without explicit identity?
[22:42] sustrik you won't
[22:42] sustrik that's why people don't want to have it dropped
[22:42] sustrik and that's why it's staying
[22:43] sustrik but in general, it's a bad idea
[22:43] joelr sustrik: i don't understand why
[22:43] sustrik you are going to loose messages anyway
[22:44] sustrik and you put a burden on the peer to handle your resources forever
[22:44] joelr sustrik: so are you are suggesting to fetch old messages using a timestamp or similar means, without relying on the system not to lose messages
[22:45] sustrik the reasoning is going like this:
[22:46] sustrik if you don't want the peer to fail bacause of OOM you have to set HWM
[22:46] sustrik when you disconnect, the messages currently on fly are dropped
[22:46] sustrik when the HWM is reached on the peer the messages are dropped as well
[22:47] sustrik so, when you reconnect, you'll get a random sequence of messages
[22:47] joelr I see now
[22:47] joelr sustrik: thanks for the explanation!
[22:47] sustrik np
[22:49] sustrik in short, explicit identities are not honest
[22:49] sustrik as they kind of offer guaranteed messaging
[22:49] sustrik but in fact they don't
[22:50] sustrik bye
[22:50] Seta00 .br :)
[23:40] Gambit-- I have a pub/sub question.
[23:41] Gambit-- If the publisher hasn't sent anything, the subscriber doesn't send anything either, correct?
[23:46] Toba subscribers don't send.
[23:47] Gambit-- They send tcp acknowledgements.
[23:47] Gambit-- but I'm guessing no 0mq frames acknowledging receipt?
[23:48] Gambit-- there's an interesting side effect of this - the subscriber has no way of knowing if the other box just goes away.
[23:58] ncadou regarding the pyzmq vs buildout and continuous integration problem of yesterday, i figured it out: http://nicolascadou.com/blog/2011/05/continuous-integration-on-a-zc-buildout-managed-project-with-pyzmq/