Friday March 4, 2011

[Time] NameMessage
[01:42] yrashk looks like ezmq got much more stable now
[01:43] yrashk and thanks to evaxsoftware it doesn't have a thread per socket design anymore
[01:43] yrashk we're multiplexing now :)
[02:16] catlee hello
[02:16] catlee how does zeromq compare to something like rabbitmq?
[03:05] datuanmac hi
[03:06] datuanmac I'm trying integrate zmq to my project in Visual c++ version 6 but it's conflic version winsock2 ?
[03:16] datuanmac What solution for visual 6 ?
[04:43] ctrlc-root hello, im trying to run the hello world client/server example from the website on windows with vs2010 and the server isnt running right
[04:43] ctrlc-root it starts but then it fails with an unhandled exception, error number 156384763
[04:44] ctrlc-root "The operation cannot be completed because the socket is not in the right state"
[04:44] ctrlc-root this is on the socket.recv() call in teh c++ api
[04:44] ctrlc-root anyone know what could be going wrong?
[06:34] guido_g morning all
[06:45] eyecue tgif
[07:03] guido_g hehehe
[07:07] guido_g <- see what bad naming can do
[07:07] guido_g and now up for mor mdp fun
[07:09] eyecue that looks like its from the brisbane flood in australia
[07:10] eyecue guido_g; there was also this one during the same event :)
[07:11] guido_g hehe
[07:11] guido_g this is the humor one would expect
[07:11] eyecue :]
[07:11] eyecue from aussies? yeh :)
[07:12] guido_g must be hard
[07:13] guido_g living close to water for the larger part of my life, but luckily never got flooded
[07:14] jsimmons i live on a hill, handy.
[07:14] guido_g once i saw a flood mark 1m above a telephoneboth in a small coastal town i lived
[07:14] guido_g coward! :)
[07:15] jsimmons im not going to slum it with the plebs down near the waterline :D
[07:17] eyecue guido_g; :)
[07:17] eyecue we do everything bigger and better in .au
[07:17] guido_g seems so
[07:18] eyecue <-- shopping centre :)
[07:18] eyecue i think they got upwards of 15m in some parts there
[07:34] jsimmons
[07:34] jsimmons weirdo queenslanders
[08:14] eyecue :]
[09:13] mikko good morning
[09:18] Steve-o top of the morning to you mikko
[09:20] mikko i don't fully understand this mingw32 vs mingw64 business
[09:20] Steve-o mingw64 is just an updated fork of mingw32
[09:21] Steve-o with 32-bit and 64-bit compilers
[09:21] Steve-o some rfit causing the split
[09:21] Steve-o rfit
[09:21] Steve-o rift
[09:21] Steve-o third time lucky
[09:22] mikko can i cross-compile 64bit binaries on 32bit machine with it?
[09:22] mikko looks like my own win7 build machine is offline
[09:22] Steve-o I guess you should be able to
[09:22] mikko probably installed updates again *sigh*
[09:22] Steve-o SP1
[09:23] Steve-o haven't installed it myself,
[09:23] Steve-o looking for api changes, cannot find any docs but just found some notes on getaddrinfo() today
[09:24] Steve-o you can tag interfaces to be excluded from the results using netsh
[09:24] mikko confusing situation
[09:25] mikko are mingw32 dlls compatible with mingw64 binaries?
[09:25] Steve-o are 32-bit and 64-dlls interchangable, no
[09:25] mikko whats about 32bit ones?
[09:26] Steve-o via wow64 you can run 32-bit windows winsock apps on 64-bit windows
[09:26] Steve-o there are api changes that hide the details
[09:26] Steve-o and new apis like getnativesysteminfo() just for wow64
[09:27] Steve-o wow = windows on windows
[09:34] Steve-o but it's all transparent to the user
[09:36] mikko so building 32bit target with mingw64 doesn't really provide value over 32bit mingw32?
[09:36] mikko from user's point of view
[09:44] Steve-o weeee, Google Chrome's hardware acceleration is definitely not stable yet :/
[09:55] Steve-o downside with mingw is that it brings in a lot of compiler dependencies and debugging is ass
[09:56] mikko one of the downsides*
[10:03] Steve-o more annoying is that it is slower than msvc
[10:05] Steve-o I guess mingw-w64 is more updated and closer to gcc trunk and should be faster
[10:09] Steve-o Should try ICC on Windows, haven't done that yet
[10:10] Steve-o any numbers for 0mq and tcp?
[10:10] mikko 5 - 6.5 million 1 byte messages over localhost
[10:10] mikko per sec
[10:10] mikko but it's questionable how accurate that is
[10:11] Steve-o that was msvc on numa?
[10:12] mikko oh you mean windows
[10:12] mikko no numbers on windows
[10:14] Steve-o ah ok
[10:16] Steve-o was thinking of testing windows IPC after this release
[10:17] Steve-o be easy to get something working and then see how the numbers get worse or better
[10:18] Steve-o I sent an idea for broadcast IPC to sustrik before as an expansion on the idea, but I don't have numa boxes to performance test
[10:20] mikko i think Guthur is working for named pipes for windows
[10:20] mikko to get ipc:// working
[11:24] Guthur mikko: 'working' is a little strong at the moment
[11:24] Guthur Initial research completed at the moment
[11:25] Guthur need to develop a strategy for integration
[11:26] Guthur On my agenda is talk to sustrik more about what an abstraction of the name pipes using IOCP would need to emulate the current functionality provided and required by the polling methods on POSIX
[11:27] Guthur the problem is that plain IOCP is only a completion notification system
[11:27] Guthur and polling on POSIX provides more than that
[11:41] yrashk hey
[11:41] yrashk any idea on how we can check whether there are any unclosed sockets prior to zmq_term?
[11:42] yrashk we need to avoid blocking Erlang's VM in all possible situations
[11:42] yrashk so we'd rather not call zmq_term if we know that it will block
[12:10] guido_g no, that i know of
[12:10] guido_g this kind of information is not ment for us mere mortals
[12:49] private_meta Isn't there a way to tell zmq_term to terminate all sockets without waiting for finished messages? I thought I read something about it
[12:50] guido_g per socket
[12:50] guido_g via LINGER option
[12:50] guido_g but the sockets still have to be closed first
[12:50] yrashk well, we've got around this
[12:51] yrashk we now terminate context in a separate thread that we have anyway
[14:32] sejo hey all what are the pitfals for speed? what is the n* of messages i can send/receive with zeromq?
[14:35] guido_g depends on hardware and message size, so the question is futile
[14:35] guido_g btw, there are benchmarks in the ømq git, use them
[14:36] sejo ach I will thx!
[14:38] sejo hmm with my code I only get 1/sec
[14:38] sejo that is way to few :p
[14:39] sejo but I use it from python
[14:39] guido_g even w/ serialization i get ~4k messages per second using python
[14:41] sejo please accept my apologies... still had time.sleep(1) in my code :/
[14:41] sejo I'm a moron
[14:41] guido_g ok, we'll take that for granted
[14:42] guido_g :)
[15:02] sejo guido_g: apparently you should :p
[15:02] sejo now get approx 30/s (with saving to chouchdb)
[15:02] sejo so not that bad
[15:03] guido_g slow db?
[15:13] sejo guido_g: no slow way of doing it, I save document after document and not bulk save... that would improve a lot. Also python is owesome to write in but not _the_ fastest language there is
[15:14] sejo if we get funding and have more time I might redo in C, right now... python it is :p
[15:14] guido_g depends on how you do things
[15:14] guido_g usually python is fast enough
[15:16] guido_g ok, time for a break
[15:16] guido_g laters!
[16:57] lt_schmidt_jr A couple of quesitons for the experts
[16:58] lt_schmidt_jr If a receiving socket goes unpolled can I detect if HWM has overflowed?
[17:03] mikko lt_schmidt_jr: yes
[17:03] mikko lt_schmidt_jr: non-blocking send should return EAGAIN assuming it's a socket that would block
[17:05] lt_schmidt_jr mikko: I am using pub sub, are you saying the pub socket will return eagain if a subscriber goes unpolled?
[17:05] mikko no, it would drop the message
[17:05] mikko you can't really detect HWM overflow with pub socket
[17:05] mikko as the messages are simply dropped
[17:06] mikko unless you poll
[17:06] mikko i am not sure whether poll indicates that it's writable
[17:06] lt_schmidt_jr interesting
[17:07] lt_schmidt_jr I thought I could have a sub-socket queue
[17:07] lt_schmidt_jr build up and it could overflow there
[17:07] lt_schmidt_jr as opposed on the publisher
[17:07] mikko i'm not really 100% how hwm interacts with pub-sub
[17:08] mikko let me check
[17:08] lt_schmidt_jr I am using inproc btw
[17:08] mikko
[17:09] mikko if you look at the ZMQ_HWM option action under SUB
[17:09] mikko not applicable
[17:10] lt_schmidt_jr I see
[17:10] lt_schmidt_jr darn
[17:14] lt_schmidt_jr I wanted to pause socket polling on behalf of disconnected clients, but I guess I will have to build my own queue
[17:14] lt_schmidt_jr instead of relying on socket to queue
[17:21] lt_schmidt_jr mikko: thanks for the RTFM :) I forgot about that part of the doc having been studying the Guide
[17:22] mikko no problem
[18:37] Phantom hello all
[18:37] Phantom has anyone got the perl binding to work ? it seems...nonfunctional.
[18:41] Phantom 'ello. Is anyone out there ?
[18:45] andrewvc cremes: wish I had a better answer re: ffi as a dependency
[18:45] andrewvc the alternate gems thing doesn't really solve it
[18:45] cremes andrewvc: yeah, i hate that solution
[18:46] cremes i'm going to open up a feature request with the rubygems project
[18:46] andrewvc I was thinking actually, it'd be best if maybe the FFI project just did nothing if it was required in a non MRI ruby
[18:46] andrewvc yeah, that's the right long term solution
[18:46] cremes it's not the 'require' step that breaks things
[18:46] cremes it's the installation of the gem
[18:46] cremes it tries to install the 'ffi' gem and blows up
[18:46] andrewvc oh, what happens if you try and install in on rbx or jruby
[18:47] cremes kaboom
[18:47] andrewvc oh, because it tries to compile the ext
[18:47] andrewvc damn
[18:47] cremes right
[18:48] andrewvc yeah, RUBY_PLATFORM isn't enough, rubygems needs RUBY_ENGINE
[18:48] andrewvc is I'm guessing what you're going to request
[18:48] andrewvc it's funny, because the alternate gem thing works fine for jruby, just not rbx
[18:53] mikko pieter_hintjens: there?
[19:47] mathijs Hi all, is zmq_poll edge-triggered? in other words: if I poll on 10 items, and 3 of them have events waiting, but I only handle 1 and poll again, will the second poll call still return the other 2, or those be forgotten, letting poll wait for new events?
[20:11] mikko mathijs: it is
[20:12] Guthur
[20:12] Guthur oh mikko beat me to it
[20:12] mathijs mikko: so I should take care to handle all events that occured before re-polling?
[20:12] mikko yes
[20:12] Guthur it says level triggered there
[20:12] mikko that sounds wrong
[20:13] mathijs ah, I was reading that page for some minutes but couldn't find it :P
[20:13] mikko i'm almost certain that the manual page there is wrong
[20:14] mathijs level triggered is wrong I think. level triggered normally means that the trigger keeps popping up as long as the "level"/state is positive
[20:15] mikko see this one from el sustrik:
[20:15] mikko "Say there are two messages available. You read one of them. If you wait
[20:15] mikko for the fd at this point it may never unblock, because there's still one
[20:15] mikko message to read. Command saying "there are new messages available" is
[20:15] mikko sent to your thread only if you've read all the messages before. You can
[20:15] mikko think of it as edge-triggered polling"
[20:15] mikko longer paste than i expected
[20:15] Guthur is that maybe specific to FD though?
[20:16] Guthur i.e. not a zmq socket
[20:16] mikko it's possible
[20:16] mikko i was always under the impression that zmq socket is edge-triggered as well
[20:16] mathijs yeah, I knew that behavior is like that for FD, it was stated that was truely edge-triggered.
[20:17] mikko double check with sustrik or pieter_hintjens when either one of them is back
[20:17] mathijs well I'll do some quick tests, not too hard to find out
[20:18] Guthur my quick test seems to confirm its level
[20:18] mikko i guess if you need edge triggered you can always get the ZMQ_FD and poll on that
[20:20] mathijs no, I don't really need either of them, just want to make sure my expectations are right and I don't accidentally abuse some loophole
[20:20] mikko level triggered certainly makes it easier
[20:21] mathijs indeed, but not as die-hard :P
[22:30] lt_schmidt_jr What happens when a HWM is reached by a publisher in pub/sub?
[22:30] lt_schmidt_jr are the new messages dropped or the old ones are dequeud?
[22:33] Guthur new messages dropped
[22:33] lt_schmidt_jr Guthur: thanks
[22:33] Guthur you're welcome
[22:42] yrashk so, what would be the best way to add a library to ?
[22:55] Guthur yrashk, you mean add another erlang binding?
[22:56] yrashk yep
[23:00] Guthur is it publicly available
[23:00] Guthur tbh I'm not sure if there is a procedure
[23:00] Guthur pieter_hintjens, ping
[23:08] kdj I am having some trouble getting pyzmq installed on Ubuntu...
[23:12] kdj I follow the steps in the docs, and it works fine, but if I log out and back in, I seem to lose some env variable
[23:20] yrashk Guthur: new binding? yes, it is
[23:23] Guthur yrashk, I'm not sure if there is a process, best to mention it on the mailing list then pieter or martin can see it
[23:23] Guthur I'd imagine you just add a description and links to that page
[23:24] yrashk well they are aware of it
[23:24] yrashk anyway, will take care of this later