Re: [zeromq-dev] SPLASH 2020 keynote talk about ZeroMQ
Thanks Arnaud! ___ zeromq-dev mailing list zeromq-dev@lists.zeromq.org https://lists.zeromq.org/mailman/listinfo/zeromq-dev
Re: [zeromq-dev] restms.org
I thought RestMS was a nice idea, but never did any real work with it, so am not dependent on it sticking around. -- Gregg ___ zeromq-dev mailing list zeromq-dev@lists.zeromq.org https://lists.zeromq.org/mailman/listinfo/zeromq-dev
Re: [zeromq-dev] If we compile ZeroMQ sources without modifying them, and link the resulting DLL to an executable that is part of our commercial product , does this make our whole product become a sof
The 0MQ license makes this pretty easy, but there is also the option for the company to sponsor an FOSS build which is separate. Since Windows has come up a few times recently, this may encourage others to join the effort, so there's a standard, up-to-date Windows build available, and everyone who uses it can work together. -- Gregg ___ zeromq-dev mailing list zeromq-dev@lists.zeromq.org https://lists.zeromq.org/mailman/listinfo/zeromq-dev
Re: [zeromq-dev] zeromq-dev Digest, Vol 15, Issue 10
p2wd> So whats the best solution if so to combine those two worlds, p2wd> docker swarm and zeromq? Load balancing and persistent connections may be at odds with each other, so it really depends on the design. -- Gregg ___ zeromq-dev mailing list zeromq-dev@lists.zeromq.org https://lists.zeromq.org/mailman/listinfo/zeromq-dev
Re: [zeromq-dev] Canonical language for the Guide
Hi Pieter, PH> What's the best canonical language? PH> My personal preference is C/CZMQ, which is high level and clean. PH> My second choice would be a high level modeling language. +1 While my only daily C is the vitamin, I think C is the best choice. As you say, you will never please everyone. Of course, I'm also a huge fan of DSLs and code generators. The issue I see in this context is that the bindings, and 0MQ itself, are moving targets. The upside is that the old generators are still valid even as you create new templates when change comes. If you can keep the DSL/MOP simple enough, it could be a win even if only used for the C examples. The more general it needs to be, the more gratification may be delayed. Do you have thoughts or examples on the language or output side already gestating? -- Gregg ___ zeromq-dev mailing list zeromq-dev@lists.zeromq.org http://lists.zeromq.org/mailman/listinfo/zeromq-dev
Re: [zeromq-dev] REST over ZeroMQ
DS> When something is a pure resource I try to design a RESTful DS> service but with something like position I prefer to have commands DS> like ClosePositionCommand, UpdateStopLossCommand, etc... AFAIK, nobody has solved the REST+actions dilemma. There is no consensus. REST is about pure resources. You can add path elements that are actions, have a generic /action segment and use the body to pass data, or use query strings. To be truly RESTful, clients need to manipulate resources. -- Gregg ___ zeromq-dev mailing list zeromq-dev@lists.zeromq.org http://lists.zeromq.org/mailman/listinfo/zeromq-dev
Re: [zeromq-dev] Fwd: Inverted PUB-SUB doesn't work
Hi Rajalakshmi, RI> I have only just subscribed to the zeromq-dev mailing list. :) I mean in your code. You need to set the socket option with a filter for what messages you want it to subscribe to. From http://api.zeromq.org/4-1:zmq-socket: > Initially a ZMQ_SUB socket is not subscribed to any messages, use > the ZMQ_SUBSCRIBE option of zmq_setsockopt(3) to specify which > messages to subscribe to. -- Gregg ___ zeromq-dev mailing list zeromq-dev@lists.zeromq.org http://lists.zeromq.org/mailman/listinfo/zeromq-dev
Re: [zeromq-dev] Fwd: Inverted PUB-SUB doesn't work
Hi Rajalakshmi, I don't see where you're subscribing to any messages. -- Gregg ___ zeromq-dev mailing list zeromq-dev@lists.zeromq.org http://lists.zeromq.org/mailman/listinfo/zeromq-dev
Re: [zeromq-dev] Notes from a hackathon
Hi Ed, EG> 1) language independance... This was another thing that made 0MQ very attractive to me when I found it. Multipart framing aids in this, as your point #4 makes. Zproto as a replacement will define protocols more exactly, which is a good thing, but it's also something new to add to your mix. -- Gregg ___ zeromq-dev mailing list zeromq-dev@lists.zeromq.org http://lists.zeromq.org/mailman/listinfo/zeromq-dev
Re: [zeromq-dev] Notes from a hackathon
M> Perhaps it is because I spend my days in a higher level language M> like Python, but zproto is not an attractive option. Same here. I will read in detail about it shortly, but it may not make it into my toolbox as a multipart replacement. Multipart looked very cool when I found 0MQ, but I've ended up not using it much. I'm not doing high performance stuff though. Simplicity and ease of use are tops on my list. -- Gregg ___ zeromq-dev mailing list zeromq-dev@lists.zeromq.org http://lists.zeromq.org/mailman/listinfo/zeromq-dev
Re: [zeromq-dev] Notes from a hackathon
AK> So *maybe* a documentation effort is what is needed to better AK> explain those thing. The guide explains things in great detail, and an engaging manner. How do you improve on it, aside from removing the things that need explaining? -- Gregg ___ zeromq-dev mailing list zeromq-dev@lists.zeromq.org http://lists.zeromq.org/mailman/listinfo/zeromq-dev
Re: [zeromq-dev] zmq_msg_recv flags
BC> It looks like the documentation for the flags has been left out BC> of the documentation at api.zeromq.org, for 3.2 and newer. All I BC> see is "The flags argument is a combination of the flags defined BC> below:", followed by blank space. Same for zmq_recv. Good catch. -- Gregg ___ zeromq-dev mailing list zeromq-dev@lists.zeromq.org http://lists.zeromq.org/mailman/listinfo/zeromq-dev
Re: [zeromq-dev] ZeroMQ multiple sockets connection in Java
CP> Yes I have read the guide and in my case I have multiple ports CP> opened on a socket and I need send the data on all those four ports. CP> Can we not do this? If not then why we cannot do this? sorry for CP> my ignorance I don't use Jero, but you should just be able to call connect multiple times for your socket, once for each endpoint. -- Gregg ___ zeromq-dev mailing list zeromq-dev@lists.zeromq.org http://lists.zeromq.org/mailman/listinfo/zeromq-dev
Re: [zeromq-dev] ZeroMQ multiple sockets connection in Java
CP> But how do I send to multiple socket ports? I need to connect to CP> below multiple ports and send the data as well - Question 1: Have you read The Guide? If not, that's a great place to start. It may be that your need to write to multiple ports would map well to the socket being a publisher and having the others subscribe to it. -- Gregg ___ zeromq-dev mailing list zeromq-dev@lists.zeromq.org http://lists.zeromq.org/mailman/listinfo/zeromq-dev
Re: [zeromq-dev] socket buffer overflow when sending large data?
Hi Li Ma, LM> What I don't understand is that in the application I use LM> send_multipart and recv_multipart. AFAIK, these two function will LM> split the data into frames and then reconstruct the data and don't LM> care much about the original data size. I don't use Python, but it looks like you have to split the message up into frames yourself. send_multipart doesn't do that for you. If you need to transfer really large messages, there are examples you can learn from, like filemq. -- Gregg ___ zeromq-dev mailing list zeromq-dev@lists.zeromq.org http://lists.zeromq.org/mailman/listinfo/zeromq-dev
Re: [zeromq-dev] Persistence with ZeroMQ
Hi Mohit, MA> Are there any standard projects that users of ZeroMQ use today MA> that provides persistence functionality as well? I am looking for MA> a scalable ZeroMQ persistence layer that is able to provide MA> pub/sub and is tunable to be non-persistent for async request/response. https://github.com/miniway/zper was mentioned on the list recently. -- Gregg ___ zeromq-dev mailing list zeromq-dev@lists.zeromq.org http://lists.zeromq.org/mailman/listinfo/zeromq-dev
Re: [zeromq-dev] zero-mq: socket.recv() call is blocking
Hi Karthik, KS> `string = socket.recv()` KS> blocks till I recieve a message.I don't want this to happen.I KS> want the messages to be queued up on the recieve side so that I KS> can get it out of the queue (or something similar to this) KS> Is there some model in zero-mq that allows this? Yes. You can tell a socket not to wait (the ZMQ_DONTWAIT flag) or use the zmq_poll function. -- Gregg ___ zeromq-dev mailing list zeromq-dev@lists.zeromq.org http://lists.zeromq.org/mailman/listinfo/zeromq-dev
Re: [zeromq-dev] not binging to all LISTEN port
RS> Is there anyone putting this kind of reusable performance testing RS> system into ZeroMQ or maybe into czmq? I was going to ask the same thing. Or if CR has suggestions and guidelines for others who think it's a good idea. -- Gregg ___ zeromq-dev mailing list zeromq-dev@lists.zeromq.org http://lists.zeromq.org/mailman/listinfo/zeromq-dev
Re: [zeromq-dev] not binging to all LISTEN port
Hi Mohit, MA> I was more of referring to debugging overload issues in prod. MA> that we might not have been able to catch in performance MA> environment. How can I tell that router/dealer is overloaded and MA> need more router/dealers? While it's always good to test, if you provide a rough hardware outline, and the number and size of messages you need to support, you may get one of three answers borne of experience by users here. 1) No problem. You are well within a single socket's capabilities. 2) One socket will not support that load. You might need N sockets. 3) It could be close. You should test in your environment. -- Gregg ___ zeromq-dev mailing list zeromq-dev@lists.zeromq.org http://lists.zeromq.org/mailman/listinfo/zeromq-dev
Re: [zeromq-dev] newbie question about zeromq use for a peer to peer messaging program
Hi Johnny, JL> This is a general and broad question. I am not a developer but JL> know enough to be dangerous. It would be worth your time to look at The Guide. It's well written and you can just skip the code and read the concepts and patterns. http://zeromq.org/intro:read-the-manual 0MQ can do a lot. Way more than you need, but it is also very easy to use. JL> Can it send to multiple receivers (how many, >100 receivers)? Yes. You can do fan-in and fan-out connections easily. Pub-sub is a common pattern here. JL> Would it be asynchronous or multi-threaded? That's up to you. Keep it simple to start. Async is easy, so no worries there. JL> And how quickly? Would that depend on the capacity/horsepower of JL> the sending machine? Very. The machine matters, but 0MQ is very fast. http://zeromq.org/area:faq#toc6 JL> Could the receiver send a simple message back (pre-configured)? Yes. Very easy. JL> Can a signal be sent to a server in the cloud? Yes. Reading the guide should get you very excited about the possibilities. Good luck! -- Gregg ___ zeromq-dev mailing list zeromq-dev@lists.zeromq.org http://lists.zeromq.org/mailman/listinfo/zeromq-dev
Re: [zeromq-dev] why do czmq methods take a char* parameter and not const char*?
Hi Laurent, LA> Software is not about what's one likes or not, but about standards, LA> state of the art, rigorousness, and quality. Some software may be, and standards and conventions are an important aspect of communication, but software, until it's all written by robots, *is* about what one likes or not. You even use the term "state of the ART". :) -- Gregg ___ zeromq-dev mailing list zeromq-dev@lists.zeromq.org http://lists.zeromq.org/mailman/listinfo/zeromq-dev
Re: [zeromq-dev] Reading queued messages after disconnect
PH> The behavior should be fixed at the libzmq level IMO, and documented. PH> I'd suggest that reading from a socket that was neither bound nor PH> connected is an error, and should perhaps even assert. Or at least PH> return an ENOTCONN error. Including the case where there are unreceived messages pending? -- Gregg ___ zeromq-dev mailing list zeromq-dev@lists.zeromq.org http://lists.zeromq.org/mailman/listinfo/zeromq-dev
Re: [zeromq-dev] Can we customize a behaviour for in-mem queued messages after reconnect?
az> As for >>> This sounds like an application problem, not a 0MQ problem az> [0MQ] It's more designed to support some az> kind of historical data flow, where you don't want to lose even one az> message. What it can be? E.g. wheather data from sensors, e.g. quotes az> from stock exchange.But it is not very much suitable when you deal az> with something like: "place a bet" , "create a purchase order", "book hotel az> room".Agree? 0MQ has different sockets, with different semantics, so you can decide whether it's important not to lose messages, when to block, etc. There are also (an ever-growing set of) socket options and features like zmq_socket_monitor to track and control things. Is 0MQ suitable for your examples? Yes, I think it absolutely is. In your case, when you hit your timeout, why not close the socket (setting LINGER to 0) and connect again? -- Gregg ___ zeromq-dev mailing list zeromq-dev@lists.zeromq.org http://lists.zeromq.org/mailman/listinfo/zeromq-dev
Re: [zeromq-dev] Can we customize a behaviour for in-mem queued messages after reconnect?
Hi Artem, az> Real example from gambling. az> We have thousands users betting from their phones. For end user a bet is az> just a click in UI, but for backend it's a bunch of remote calls to az> services. If service is not available, then bet message will stuck az> in 0mq in-mem message queue (up to hwm). The game UI can wait up to az> certain timeout and then render something akin to "We have communication az> problem with our backend. Try again later." So at this point user believes az> that bet wasn't succeeded (.. this is important).What happens then -- az> ITOps get their pager rings, and then during 1hr they do their best to az> restart a failed service. Ok? az> After 1hr or so service restarts and now what? Now queued bet will be az> delivered to restarted service. And this is not goood, because 1hr earlier az> we ensured user that "we had a backend issue" and his bet wasn't suceeded. az> So the question arised -- how to not redeliver messages upon reconnect? This sounds like an application problem, not a 0MQ problem. A request to place the bet can be received, which doesn't guarantee that the bet has been placed (if other work needs to be done). To know that the bet was place, you need an ack. You can also ack that the *request* was received. In your scenario above, timestamping the messages and giving them a TTL lets you handle cases where requests could not be processed in a timely manner, and possibly ask the user what they want to do. -- Gregg ___ zeromq-dev mailing list zeromq-dev@lists.zeromq.org http://lists.zeromq.org/mailman/listinfo/zeromq-dev
Re: [zeromq-dev] Poll on sockets OR child process
GW> http://gerg.ca/blog/post/2013/zmq-child-process/ Nice article Greg. I'm not sure about "the main mechanism for blocking until stuff is ready is zmq_poll()" though. Maybe steal directly from the zmq-poll docs? e.g., "the main mechanism for multiplexing input/output events is zmq_poll()". Thanks for writing up your R&D work. -- Gregg ___ zeromq-dev mailing list zeromq-dev@lists.zeromq.org http://lists.zeromq.org/mailman/listinfo/zeromq-dev
Re: [zeromq-dev] What exact networking problems ZMQ does solve?
az> Can you please itemize what exact networking issues ZMQ does solve? az> I have count 1 -- reconnection. Ok. But can you please provide more? Have you read the bullet points at http://zeromq.org/, or skimmed http://zeromq.org/intro:read-the-manual or the preface in the guide (http://zguide.zeromq.org/page:all)? -- Gregg ___ zeromq-dev mailing list zeromq-dev@lists.zeromq.org http://lists.zeromq.org/mailman/listinfo/zeromq-dev
Re: [zeromq-dev] How to open zero mq
Hi vikas, vr> I installed zeromq, in ubuntu command prompt but i don't know "how to open vr> zero mq" vr> what commands i have to type for open zermq or is there any local host vr> address is there to open zero mq. Start by reading the guide. There is no 0MQ server daemon that you just open. You need to write a program or script that opens sockets yourself. -- Gregg ___ zeromq-dev mailing list zeromq-dev@lists.zeromq.org http://lists.zeromq.org/mailman/listinfo/zeromq-dev
Re: [zeromq-dev] Zero mq
Hi vikas, vr> Can you please provide me the some information about Zero mq. Start at http://www.zeromq.org/ and read the guide. vr> 1.Is there any plugin for connecting Zero mq to NoSql databases like vr> couchbase, mongo DB. I don't know of any generic tools, but it would be a good, simple thing to do yourself, once you work through some of the examples in the guide. vr> 2.Which programming libraries , Zero MQ ll support..?... http://www.zeromq.org/bindings:_start has a list of language bindings. -- Gregg ___ zeromq-dev mailing list zeromq-dev@lists.zeromq.org http://lists.zeromq.org/mailman/listinfo/zeromq-dev
Re: [zeromq-dev] Statistics protocol v0.1
Hi Paul, PC> I don't know what you mean by "model". For rrd "counter" type is PC> basically a growing counter sent each time (e.g. messages passed PC> through a gateway). rrdtool subtracts previous value from the current PC> value to know rate (messages per second), and stores that rate. Its PC> very convenient way to count several kinds of statistics. Right, that's what I meant by coupling and model, rather than having the protocol simply define the exchange format, it also covers semantics. PC> No, segments can't contain spaces. The colon is there to have a way to PC> subscribe to whole value. E.g. subscribing to "example.org:cpu" will PC> also hit "example.org:cpu0", which isn't what intended. Your comments on the fields would be great to include in the docs. PC> Having to subscribe to space-terminated topic is ugly. And there PC> is a tab that is also a whitespace. Allow any whitespace separator then. >> HOST is there for ... PC> It's nice to know what host this statistics is for. Having monotonic PC> sequence of dot-separated items, like in graphite/carbon PC> "example.org.cpu" means we don't know where hostname ends. The host PC> name is essential parameter to group data in a GUI. OK. So this is another coupling, but could also be handled by convention. I understand the reason, though, in your target context. PC> I want to be able to have a path as a component in the name. e.g.: PC> ESTP:example.org:disk:system/root:bytes_written: PC> Where the "system/root" is lvm partition (/dev/system/root aka PC> /dev/mapper/system-root). PC> This is also the reason I've not used dot, like in graphite, as dot is PC> used in hostnames. Would a URI syntax work? -- Gregg ___ zeromq-dev mailing list zeromq-dev@lists.zeromq.org http://lists.zeromq.org/mailman/listinfo/zeromq-dev
Re: [zeromq-dev] Statistics protocol v0.1
How tightly do you want to couple sources and sinks? e.g., do you need type1 and type2 as part of the protocol? I haven't used RRD, but that's the model, correct? Starting from a minimum spec, I sometimes write a statement answering the WHY question for things included beyond the minimum. For example: Given a minimum of [name timestamp value]: NAME has a trailing delimiter (colon) because name segments can contain spaces. HOST is there for ... TYPE1 is needed because ... and values must be one of ... TYPE2 is used to ... must be ... and indicates ... I like ISO8601 timestamps, and path syntax (slash as separator) for names. -- Gregg ___ zeromq-dev mailing list zeromq-dev@lists.zeromq.org http://lists.zeromq.org/mailman/listinfo/zeromq-dev
Re: [zeromq-dev] Statistics reporting using zeromq/crossroads
Hi Paul, PC> I think the community would benefit from having common format for PC> reporting statistics... Sounds great. From a non-zmq perspective, are you thinking along the lines of something very simple, like Graphite or RRD, and [name value timestamp] tuples? I favor simple, text-oriented solutions. The only thing I've done roughly along these lines was small. Subscribers containing DTrace-like aggregator funcs parsed messages for keys (e.g. location, device, timestamp) and, in turn, published aggregated values like the tuples above. It wasn't designed to be generic, though, as it was an early foray into zmq for me. Not sure how much help I would be, but I'd like to at least listen in on the conversation. -- Gregg ___ zeromq-dev mailing list zeromq-dev@lists.zeromq.org http://lists.zeromq.org/mailman/listinfo/zeromq-dev
Re: [zeromq-dev] 0mq conference idea, Feb 2012, Portland, Oregon?
Michel, I'm in Southwest Idaho, and a relative noob to zmq. Not sure I can make a trip in Feb, as I have a commitment that may conflict depending on the exact dates. -- Gregg ___ zeromq-dev mailing list zeromq-dev@lists.zeromq.org http://lists.zeromq.org/mailman/listinfo/zeromq-dev
Re: [zeromq-dev] Long-term plan for ZeroMQ
PH> http://www.zeromq.org/topics:planning Great summary Pieter. Thanks for that, it is most helpful. -- Gregg ___ zeromq-dev mailing list zeromq-dev@lists.zeromq.org http://lists.zeromq.org/mailman/listinfo/zeromq-dev
Re: [zeromq-dev] Question: release policies and v3.x
PH> Does people (and especially binding authors) prefer: PH> (a) starting a 4.0 version for this work (which means that 3.x will PH> stop when 3.0.x is mature) PH> (b) doing this work in 3.1, and changing the release policies to allow this. I don't have a strong investment in IDENTITY, but this has been planned and input solicited for some time. Policy is helpful for planning but, ignorant of the exact policy, I wouldn't have a problem with bending the rules here and putting the change in 3.1. -- Gregg ___ zeromq-dev mailing list zeromq-dev@lists.zeromq.org http://lists.zeromq.org/mailman/listinfo/zeromq-dev
Re: [zeromq-dev] Theoretical whitepaper on 0MQ
MS> For those interested in theoretical foundation of 0MQ, I've put down my MS> thoughts here: Great stuff Martin! § Subscription Aggregation "...the server would *spent* all its time processing subscriptions..." § Plugging into the Subscription Mechanism "...(The?) Other way *round* it can read the subscriptions from the socket and *send send* them as queue.bind commands..." "...(The?) Same way, bridges can be *build* to interface with other messaging systems..." -- Gregg ___ zeromq-dev mailing list zeromq-dev@lists.zeromq.org http://lists.zeromq.org/mailman/listinfo/zeromq-dev
Re: [zeromq-dev] Thinking out loud ...
MS> I would say the usage of term "queue" originates from the olden days MS> when 0MQ was still thought to be some kind of equivalent to enterprise MS> queueing products. The "queues" are more like network buffers today. Buff Sockets? SoS (Sockets on Steroids)? SSS (Simply Smarter Sockets)? :) -- Gregg ___ zeromq-dev mailing list zeromq-dev@lists.zeromq.org http://lists.zeromq.org/mailman/listinfo/zeromq-dev
Re: [zeromq-dev] MOPED - a Message-Oriented Pattern for Elastic Design
Great stuff Pieter. How much I like 0MQ is directly affected by how much I like the supporting docs, advice, and sharing of hard-won experience. Typo: "Wort with a few people" -- Gregg ___ zeromq-dev mailing list zeromq-dev@lists.zeromq.org http://lists.zeromq.org/mailman/listinfo/zeromq-dev
Re: [zeromq-dev] Ten minute talk on #zeromq - tips
Hi Pieter, Thanks for the 10-minute-talk notes. Third paragraph, odd phrase: "you can say exactly thing" When explaining any tech product in summary, I tend to split my comments into facts and opinions; facts being bullet points, not always provable, and targeted at techs. I lump those together either at the beginning or end, depending on the audience. For example: * It's free and open source. The license is LGPL. * It grew out of lessons learned from AMQP and OpenAMQ; the brains at iMatix being at the core of both. * There are language bindings for about 20 languages, including C/C++, Java, Python, Ruby, .NET, Javascript, and more. (include languages you know they may care about in this list) * It's a library not a daemon. If AMQP is Oracle, 0MQ is SQLite. * It's small (one 150K DLL on Windows), simple (only about 20 API calls), and designed for robustness and performance. * Imagine smart sockets that support pub-sub, pipeline, and request-reply messaging patterns, and atomic multipart message delivery. That part generally takes about 30 seconds. Then I do the narrative part, explaining the operations and business case, and how it compares to alternatives. If I'm talking just to techs, we stick with the details and I show examples. So far, I've only had to explain 0MQ once and my demos were pretty much right out of the guide, with pub-sub+proxy, req-rep+broker, and parallel pipeline, showing what happens when one component stops or restarts. -- Gregg ___ zeromq-dev mailing list zeromq-dev@lists.zeromq.org http://lists.zeromq.org/mailman/listinfo/zeromq-dev
Re: [zeromq-dev] Guide now in PDF
PH> I've finally managed to produce a nice version of the Guide (with PH> index, page headers/footers etc.) as PDF, for those with e-readers and PH> others who want this text to go. Very nice! If the chapter names were larger in the TOC, they would stand out more; I think that would be nice. -- Gregg ___ zeromq-dev mailing list zeromq-dev@lists.zeromq.org http://lists.zeromq.org/mailman/listinfo/zeromq-dev
Re: [zeromq-dev] Trademark policy for 0MQ
MS> 3. Naming bindings using "zmq" postfix is for consistency's sake MS> and has nothing to do with trademarks. Trademark protection is for product/marketing names, correct? It doesn't mean you have to use zmq for the name used to reference the binding programmatically. Is "There can be only one" the goal for each language with a binding? -- Gregg ___ zeromq-dev mailing list zeromq-dev@lists.zeromq.org http://lists.zeromq.org/mailman/listinfo/zeromq-dev
Re: [zeromq-dev] Broadcasting Requests
FN> CARRIER or a DISTRIBUTOR may be ? DISTRIBUTOR came to my mind as well, as did HUB. --Gregg ___ zeromq-dev mailing list zeromq-dev@lists.zeromq.org http://lists.zeromq.org/mailman/listinfo/zeromq-dev
[zeromq-dev] Broken link to issue tracker
http://www.zeromq.org/intro:ask-for-help has a link to "public issue tracker" which goes to https://github.com/zeromq/zeromq2/issues, but 404s. -- Gregg ___ zeromq-dev mailing list zeromq-dev@lists.zeromq.org http://lists.zeromq.org/mailman/listinfo/zeromq-dev
Re: [zeromq-dev] Renaming ZMQ_RECONNECT_IVL_MAX in 3.0
>> Hmm, industry practice is short option names ("SNDBUF"), so >> ZMQ_RECONNECT and ZMQ_RECONNECT_MAX would work better. MS> What do others think? Is shortening the option names worth of it? There MS> are couple of other long names out there, e.g. ZMQ_RECOVERY_IVL. Or even MS> ZMQ_SUBSCRIBE and ZMQ_UNSUBSCRIBE... If it's not used often, longer and more descriptive is better. I don't think adding a few letters makes it too long, and they do add some meaning. I think TIME might be more meaningful than IVL. I know what IVL means now, but it didn't have instant meaning to me when I first saw it. -- Gregg ___ zeromq-dev mailing list zeromq-dev@lists.zeromq.org http://lists.zeromq.org/mailman/listinfo/zeromq-dev
Re: [zeromq-dev] Removal of zmq_device[3] from 3.0
PH> So my vote is to continue this process of breaking into layers, but PH> with the condition that the packaging makes it all look like one PH> deliverable again. Good points Pieter, and making a single deliverable is my preference in most cases. I also like having a minimum reference standard, so you know what you can depend on as always being available. -- Gregg ___ zeromq-dev mailing list zeromq-dev@lists.zeromq.org http://lists.zeromq.org/mailman/listinfo/zeromq-dev
Re: [zeromq-dev] Assertion failed: msg_->flags & ZMQ_MSG_MORE
>> Assertion failed: msg_->flags& ZMQ_MSG_MORE (..\..\..\src\req.cpp:87) MS> Can you create an issue in the bug tracker for the problem? Done. On a lighter note, after finding the silly, subtle, and stupid mistakes in my peering2 port, I have it working and I am even more enamored of 0MQ than before. Yes, I have a lot of details yet to learn, and language/binding mappings to clean up and normalize, but this is really fun stuff. 0MQ is a breath of fresh air and has me energized and motivated to see what I can make it do. Thanks so much, to you, Peiter, and everyone who has gotten 0MQ to this point. -- Gregg ___ zeromq-dev mailing list zeromq-dev@lists.zeromq.org http://lists.zeromq.org/mailman/listinfo/zeromq-dev
Re: [zeromq-dev] Assertion failed: msg_->flags & ZMQ_MSG_MORE
I just saw this as well. under 2.1.3 Assertion failed: msg_->flags & ZMQ_MSG_MORE (..\..\..\src\req.cpp:87) Coming from a REQ socket doing a recv, when I break out differently after a POLL in the process with the ROUTER socket connected to it. Not sure what info will help, but will check with the REBOL extension author once I know it's not something stupid on my part. --Gregg ___ zeromq-dev mailing list zeromq-dev@lists.zeromq.org http://lists.zeromq.org/mailman/listinfo/zeromq-dev
Re: [zeromq-dev] Moving to 0MQ/3.0, yes or no?
Thanks for all your thoughts Martin. I agree that breaking things hard, one time, is better than small breaks between every version. And these are really design breaks you're talking about, with good reasons for making those breaks, correct? It's not arbitrary, building some level of consensus seems possible, and it seems much better to break things now, making life better for everyone (you included) in the long term. I don't know how many people use 0MQ in production today, or how many will be adversely affected by the breaks, but the number is probably small compared to when 0MQ reaches critical mass and change is *really* painful, and for a *lot* of people. -- Gregg (whose pain will be small right now) ___ zeromq-dev mailing list zeromq-dev@lists.zeromq.org http://lists.zeromq.org/mailman/listinfo/zeromq-dev
Re: [zeromq-dev] devices
MS> However, they are _applications_ as opposed to 0MQ core which is a MS> _network stack_. Thus I believe the two should not be mixed in a single MS> project. My question, when I face issues like this, is whether the benefit outweighs the design purity, or if including the outside elements starts me on a slippery slope that I can see derailing a clean design. The functionality is useful, so it will appear somewhere. MS> Packaging devices with core library kind of suggest that those are some MS> kind of "official" devices and discourages the innovation in the area. That certainly can happen, but if you make it clear that they are minimal, intended as a starting point, and provide ideas for how other devices could add value, you can "solve it with language" to some extent. Where people get discouraged is if your devices are built with special knowledge they don't have easy access to, or if yours are so good, and provide enough functionality, that others don't see a need to do more. If devices are removed from the core, where do we begin on the device ecosystem to replace them? -- Gregg ___ zeromq-dev mailing list zeromq-dev@lists.zeromq.org http://lists.zeromq.org/mailman/listinfo/zeromq-dev
Re: [zeromq-dev] Moving to 0MQ/3.0, yes or no?
What is the migration model for 0MQ apps? If users can continue to use the 2.x branch, use 3.x side-by-side, and still get critical fixes for 2.x, how painful will breaking changes be in 3.x? I'm too new to 0MQ to offer any useful advice on specific changes, but, for me, knowing what changes are coming, giving me the option of moving forward or sticking with what works, and cleaning house are all important. I don't expect things to be perfect in early designs, and learning from the past will make things better in the future. I greatly value stability, but gladly accept change if it's not arbitrary. -- Gregg ___ zeromq-dev mailing list zeromq-dev@lists.zeromq.org http://lists.zeromq.org/mailman/listinfo/zeromq-dev
Re: [zeromq-dev] Peering2 port - no threads, no IPC
PH> Then, you want to make sure the address matches the worker's PH> address, hasn't been mangled in some form. Aha! That, indeed, appears to be the case. My multipart message receiver was being called in from my zmsg helper in string mode. Onward! Thanks so much Pieter. Hints help. -- Gregg ___ zeromq-dev mailing list zeromq-dev@lists.zeromq.org http://lists.zeromq.org/mailman/listinfo/zeromq-dev
Re: [zeromq-dev] Peering2 port - no threads, no IPC
Hi Pieter, >> ...I've made the client and worker threads into processes PH> Nice. Is there a way to start the multiple processes from a single PH> source file? That will make the REBOL examples compatible with the PH> Guide. Yes. I have a launcher script that does that. PH> When I get frustrated at router sockets silently dropping messages I PH> go into the 0MQ code and add a printf. That is around xrep.cpp:197. The comments about when it silently ignores messages are helpful. Getting ahead of myself, I'm thinking about how I'll debug things like this for real, where I very likely won't want to add probes to zmq. PH> This will at least tell you whether or not there's a problem with the PH> identity/address frame. I imagine that's what it is. I just wasn't sure if there was a good way to trace things outside of zmq itself (i.e. not adding probes in the source). In the broker I can see that the address in the worker queue matches the worker its sending to, but there's no way to know the uuid of the worker in the worker itself, correct? That is, a socket can't get its own dynamic identity via getsockopt. PH> Then, you want to make sure the address matches the worker's address, PH> hasn't been mangled in some form, and that you're using a router PH> socket and not a dealer by mistake. Checked that it's a router, but I've done that before. I need to start a checklist for myself. :) PH> If all that fails, do a sanity check with a minimal case just to prove PH> router sockets work for you. Since I'm updating helpers and things as I go, I did go back and check that the msgqueue+taskwork2+tasksink2 and rrbroker examples still worked, which they do, multipart and all. Thanks! -- Gregg ___ zeromq-dev mailing list zeromq-dev@lists.zeromq.org http://lists.zeromq.org/mailman/listinfo/zeromq-dev
[zeromq-dev] Peering2 port - no threads, no IPC
I'm still working through the guide, and have peering2 almost working. My language (REBOL) doesn't support threads, and I'm on Windows so no 0MQ IPC scheme either; hence I've made the client and worker threads into processes, and am using tcp instead of ipc. I've successfully done lruqueue and peering1 this way already. Being new to 0MQ, I don't know if I just have a simple bug or if it's something I don't know about 0MQ that's confusing me. What happens is that the brokers get the READY messages from workers, and the IDs look like they're correct in the worker-queue. The client HELLO messages also come into the broker fine. The broker then sends the message to a worker, but the worker never seems to get it. i.e. the worker sends READY, then blocks on recv. If I dump the message that's going to the worker, the correct worker ID is there, then an empty string, then the client ID, an empty string, and finally the body. Using 0MQ 2.1.3. Working through the examples is very helpful, but it will be a while before I start thinking fluently in messaging patterns. :) For those in the know, how do you approach debugging on 0MQ, e.g., in situations like this? Cheers, -- Gregg ___ zeromq-dev mailing list zeromq-dev@lists.zeromq.org http://lists.zeromq.org/mailman/listinfo/zeromq-dev
Re: [zeromq-dev] 0MQ protocol stack
MS> 1. Identity. I believe identity is an hack, but one we cannot get MS> rid of because of backward compatibility. Identities will always be around then, but for new applications they should be avoided? -- Gregg ___ zeromq-dev mailing list zeromq-dev@lists.zeromq.org http://lists.zeromq.org/mailman/listinfo/zeromq-dev
Re: [zeromq-dev] Messaging patterns background
Great post Martin. Very helpful, at least from a newcomers perspective. It should definitely go in a doc somewhere. This sentence, in particular, is a very nice summary for how to think about socket types; though the X- names are being deprecated, aren't they? MS> In 0MQ the layer equivalent to IP is represented by X- sockets MS> while end-to-end layer is represented by non-X sockets. -- Gregg ___ zeromq-dev mailing list zeromq-dev@lists.zeromq.org http://lists.zeromq.org/mailman/listinfo/zeromq-dev
Re: [zeromq-dev] Introducing Caravan: Simple, Faithful ZMQ-Bindings for Objective Caml (Pedro Borges)
PH> * It's profitable to map libzmq's API closely (including to keep PH> zero-copy functionality) but it's also profitable to build PH> abstractions on top. This is what I'm doing. My first pass has been to normalize two divergent REBOL bindings for discussion in the REBOL community, with the goal of keeping the bindings close to the API. Then we'll add layers (protocol scheme and dialect) over that. I'm glad to hear that's in line with your thinking. -- Gregg ___ zeromq-dev mailing list zeromq-dev@lists.zeromq.org http://lists.zeromq.org/mailman/listinfo/zeromq-dev
Re: [zeromq-dev] Zero-copy message API
MS> As for renaming zmq_msg_data to zmq_msg_zerocopy, I would say that the MS> actual semantics of the command is not "zero copy" but "user defined MS> allocator". This has to do with the custom allocation on recv() side (as MS> discussed recently on the list) as well. Let's see where the discussion MS> will head. "User defined allocator" seems much more meaningful to me. -- Gregg ___ zeromq-dev mailing list zeromq-dev@lists.zeromq.org http://lists.zeromq.org/mailman/listinfo/zeromq-dev
Re: [zeromq-dev] Data and clients distribution among multiple servers.
S> So, must I read the whole zmq's documentation (it's pretty big...) S> or it will be enaugh to obsorve just some pieces? I'm new to 0MQ as well, and I'm going through the entire guide. Yes, it's big, but there is a lot of hard-won information in it, gained from actual experience. Learning from their mistakes, and taking their advice may save you a lot of time and aggravation later. They also did a really nice job with it, so it's not painful; and you can certainly skip sections that don't apply. I suggest skimming it at the very least. -- Gregg ___ zeromq-dev mailing list zeromq-dev@lists.zeromq.org http://lists.zeromq.org/mailman/listinfo/zeromq-dev
[zeromq-dev] Should durasub.c in guide close sync socket?
I'm new to 0MQ, working through the guide porting examples to a REBOL binding. I noticed the durasub.c example in the guide doesn't close the sync socket at the end. As thorough as the rest of the notes are, I expect it would have been explained if done intentionally. Still, I'm new and may have missed an obvious reason. Loving 0MQ so far. -- Gregg Irwin ___ zeromq-dev mailing list zeromq-dev@lists.zeromq.org http://lists.zeromq.org/mailman/listinfo/zeromq-dev