Friday July 8, 2011

[Time] NameMessage
[06:42] the_hulk hi
[06:43] the_hulk if i want to poll a data (lets say publish subscribe), what is better timer(if available) or while(1){ recv(); sleep(1)}
[07:24] MerlinBrasil Hi all. Wish I could help, Hulk, but I'm too new at this to venture advice
[07:25] MerlinBrasil I'm having problems myself with error msgs when I try to compile the 0mq package in VS 2010 on a 64 Bit w7 Ultimate.
[07:26] MerlinBrasil Says it can't find some files and I can't find those files manually either
[07:30] the_hulk which files
[07:39] MerlinBrasil inproc_lat.vcproj
[07:39] sustrik why sleep at all? why not simply recv()?
[07:40] MerlinBrasil and \inproc_thr.vcproj
[07:40] sustrik MerlinBrasil: yes, those files are missing in 2.1.7 distibution
[07:40] sustrik you can simply ignore the projects for now
[07:41] sustrik or you can build from git, if you want those tests
[07:41] sustrik the issue should be fixed in next release
[07:41] MerlinBrasil Ok, tks. Any idea when that will be released? No rush. I've got a ton to learn in the meantime
[07:49] sustrik no idea
[07:50] sustrik feel free to ask on the list
[07:50] MerlinBrasil thanks, sustrik, appreciate the help
[07:50] sustrik you are welcome
[07:55] the_hulk sustrik, wont that kill the machine?
[07:57] the_hulk i am trying something on ipone with zmq, when asked on iphondev they gave advice use timers instead of while(1), which i normally use
[08:02] the_hulk i am confused, as far as i know timers are interrupts(correct me!!), then whats better timer or while(1)
[08:02] whack the_hulk: asking "timers or a while loop" provides not nearly enough data to answer your question
[08:02] whack if you can block the current thread's execution, then a while loop is fine. If you cannot, a timer is fine.
[08:03] the_hulk and then what about another thread
[08:04] the_hulk ok lemme re frame, timer (same thread) or while(1)(sep thread)..
[08:06] sustrik i would go for separate thread + recv()
[08:07] sustrik you shouldn't worry, recv() sleeps rather than busy-loop
[08:08] the_hulk ok, but ll it be safe on ios?
[08:08] sustrik what's the problem with ios?
[08:13] the_hulk ll, UIKit you can not modify UI other than main thread, so each time when i recv values from server, i have to call something like performselectoronmainthread, which kind of sends the message, and then that message is processed by run loop of main thread.. i dont think it should create any problem.. but cause guys on irc iphonedev suggested a timer
[08:15] the_hulk thats why little confused, and i was also keen to know, timer will be heavier (cause its kind of interrupts) than simple while(1) in sep thread
[08:17] sustrik well, there's a gui thread, right
[08:17] sustrik i suppose the gui thread is driven be events
[08:17] sustrik so why not send an event to the gui thread once you get a message in a worker thread
[08:17] sustrik ?
[08:18] sustrik the only other option, afaict, would be to hook on directly into ios event loop
[08:18] sustrik which can be complex
[08:19] the_hulk hmm, and steve jobs may not allow my app :p
[08:31] whack the_hulk: the right way to do it is indeed sending an event
[08:50] the_hulk hmm
[09:15] sustrik i mean, that's the right way to do it as it forwards the events as soon as they arrive
[09:15] sustrik if you don't need you application to be snappy
[09:16] sustrik timers would do
[09:16] sustrik sleep(1) can't be done in GUI thread anyway
[09:33] the_hulk yeah
[11:24] anubhaw whats the default zeromq buffer size ? is there a way to configure it ?
[11:25] sustrik you mean the messages stored in the user space?
[11:25] sustrik or rather underlying TCP buffers?
[11:28] anubhaw sustrik: basically , I was trying push pull socket .. I stopped pull endpoint but push server kept buffering the packet. I am now not sure how long will it buffer .
[11:29] sustrik default is infinite
[11:29] sustrik set ZMQ_HWM option to limit the number of messages queued
[11:30] anubhaw cool, thanks :)
[11:39] anubhaw what happens when we set ZMQ::SWAP to non zero value ? does it recover the offloaded messages ?
[11:39] anubhaw after a crash
[11:47] sustrik nope
[11:48] sustrik it's just a swap
[11:49] anubhaw what is the best practice for handling failures when sending data to a remote server?
[11:49] anubhaw I want reliability throughout the push
[11:49] anubhaw in our cases the servers are bounced for regular code pushes
[11:50] anubhaw and clients need to hold data for a finite amount of time and notify us of such push failures
[12:05] taotetek anubhaw: if you need absolute reliability you might want to look into some of the various request / reply patterns possible rather than push / pull in my experience
[12:07] taotetek anubhaw: the problem you will run into currently is that even if you set a high water mark, you'll end up with messages buffered in both the pull socket and push socket before the high water mark is hit and enforced
[19:46] nishttal2 how do i have 2 publishers on the same socket?
[19:49] nishttal2 anyone here?
[20:09] sustrik bind the consumer
[20:09] sustrik connect the publishers
[20:10] nishttal2 sustrik, sorry i was just trying make it a simple example by focussing on the publishers.. ideally i would want multiple consumers as well
[20:11] sustrik then place a device into the middle
[20:12] nishttal2 to copy msgs from one port to another?
[20:12] sustrik yes
[20:12] nishttal2 would that not become a bottleneck (in a large system)
[20:12] sustrik sure
[20:12] sustrik if you want to avoid the bottleneck
[20:13] sustrik you can connect each consumer to each publisher
[20:13] sustrik still, if it's on LAN, the switch will become the bottleneck sooner or later
[20:14] nishttal2 i see
[20:14] nishttal2 thanks for the insight.
[20:14] sustrik you are welcome
[20:27] dale Hi. Is there a recommended way to do RPC over zeromq? I'm looking at using protocol buffers to format the message and either use its RPC style or simply have a field for the function and another for the parameters (encoded using json). Any thoughts?
[20:44] whack dale: I use msgpack, but protobufs would work fine, too
[20:45] whack dale: a protobuf with a request field and a union for the request object would work
[20:46] whack I use a 'map' in msgpack (similar to json but packs better) with "request" field and the rest of the object given to the handler for that request
[20:46] dale whack: Ok. Haven't seen msgpack, will have a look at it.
[20:47] dale whack: Sounds like a simple yet effective method
[21:51] hbnguy hi
[21:52] hbnguy was wondering if somebody could help me with something
[22:02] Guest59853 anyone here use zmq on windows and multiplex stdin with zmq sockets in zmq_poll?