Friday March 25, 2011

[Time] NameMessage
[01:24] Seta00 where is that 'c' tool available?
[02:29] dku Is it incorrect to call recv() twice consequitively on a ZMQ_REQ socket?
[02:29] dku (without a send() in between, i mean)
[02:30] lowenhart hey guys
[02:32] lowenhart anyone know of a good decorator for zeromq + django?
[08:06] pieterh Seta00: on the C binding page
[08:06] pieterh dku: nope
[08:25] pieterh sustrik: I've sent an email to zeromq-dev regarding the repository rename
[08:25] pieterh it'd be interesting to see what the response is, if any
[09:27] private_meta pieterh: btw, if you really want to push something like zmsg into zapi, it'd require a redesign imho
[09:41] private_meta pieterh: for C++ it would be interesting to work with templates, just as an idea
[09:44] guido_g reminds me why i left c++
[10:01] private_meta I don't see generic programming as that bad of an idea
[10:02] private_meta If it's used in places where it can be an advantage
[10:44] Seta00 pieterh: the zip archive on that page is missing the MSVS project/solution files, btw
[10:45] Seta00 they are on the repo but not on the archive for some reason
[11:13] private_meta pieterh: btw, what was the reason to use the 0-byte in the messages?
[11:21] Guthur private_meta: you mean a message with no contents?
[11:21] private_meta no, 0-bytes in non-empty messages
[11:22] Guthur is this in a guide example?
[11:22] private_meta uuid encoding in multipart messages
[11:23] Guthur 0MQ uuid will start with a byte of 0, iirc
[11:24] Guthur and that would have to be added back when encoding the string presentation back to binary
[11:25] private_meta I know, I want to know the reason for this decision
[11:27] Guthur it's not a valid UUID for 0MQ without the 0
[11:27] Guthur maybe I am misunderstanding your question
[11:27] private_meta Yes, you are...
[11:28] private_meta I want to know the reason why they used the 0-byte in the uuid in the first place
[11:28] private_meta It's a design-question
[11:29] Guthur yeah I'd imagine so
[11:29] private_meta ...
[11:29] Guthur possibly to make it more identifiable as a UUID
[11:29] Guthur at a guess
[11:29] Guthur sustrik: ?
[11:40] Seta00 OpenPGM is the only implementation of PGM on 0MQ, right?
[11:41] Seta00 as in, I can't use PGM on normal builds
[11:51] private_meta pieterh: finally fixed it
[12:28] so_solid_moo hi peeps. is the freelance pattern stuff built into a library at all, like zfl or something?
[12:40] iphony Has anyone successfully compiled the zmq c library for the iphone?
[13:51] private_meta pieterh: are you here?
[15:38] nikolay hi
[15:38] cremes hi
[15:38] nikolay I am trying following
[15:38] nikolay star a server,
[15:38] nikolay then do curl localhost:5555
[15:39] nikolay request is invalid of cource, and server do "Assertion failed: fetched (rep.cpp:232)"
[15:39] nikolay the server app is in PHP
[15:39] nikolay how I can do so PHP not to crash?
[15:40] cremes nikolay: you can't connect a non-0mq socket to a 0mq socket unless you conform to the 0mq wire protocol
[15:40] cremes otherwise you'll get assertions
[15:40] nikolay yes, but generally how i can "catch" the assert() call ?
[15:40] cremes you can't
[15:41] cremes you should open a bug issue on github; 0mq asserts on a lot of 'invalid' data when it probably shouldn't
[15:41] cremes it should probably just disconnect the socket that sent the invalid data
[15:41] nikolay hmm this is kind of stupid , isn't it ? then server will crash, instead to close the conn
[15:41] cremes instead of asserting
[15:41] cremes nikolay: yes, it's stupid; open a 0mq bug
[15:42] nikolay good idea , thank you
[15:42] cremes nikolay: make sure you include some code that can reproduce the *entire* problem (client and server)
[15:42] cremes along with the steps to reproduce the crash
[15:42] nikolay is not a problem , but it may happen if the client app is killed
[15:43] nikolay thanks
[15:43] nikolay bye
[15:51] Guthur cremes: it same strange there hasn't been more effort to remove asserts
[15:52] Guthur same/seems
[15:52] cremes Guthur: 2.1 is way better than 2.0; sustrik removed quite a few asserts but there are still a bunch left
[15:52] cremes that's why i think writing unit tests for the internal classes is a good idea
[15:53] cremes it will help reign in the use of asserts and it will encourage writing code to actually handle those error conditions instead
[15:53] cremes of just aborting
[15:54] Guthur yep, is there a strategy in place yet for refactoring the current code base to facilitate unit testing
[15:56] cremes Guthur: nope, no strategy yet
[15:56] cremes i'm going to do a quick spike this weekend using cxxtest on yqueue.cpp
[15:56] Seta00 the documentation for zmg_msg_init_data says "If provided, the deallocation function ffn shall be called...", but the parameter isn't optional. should I just pass NULL?
[15:56] cremes the way i like to do unit testing is going to require *most* of these classes to become a lot smaller than they are
[15:56] cremes so that they can be thoroughly tested
[15:56] cremes Seta00: yes
[15:57] Seta00 cremes: thanks
[15:59] Guthur cremes: ack
[16:00] cremes i don't know if all of that refactoring would/will fit with sustrik's style
[16:00] cremes the classes look big to me; but then again, c++ is so verbose even simple classes look pretty large
[16:20] Guthur I think sustrik would buy if it could deliver better test coverage
[16:24] Guthur buy in*
[16:57] anddam hello
[16:58] cremes hi
[17:01] anddam I've built mongrel2 using zeromq from macports, when I try to kill the test server it get stucks with (after ^C at line :49)
[17:01] anddam can it be possibly related to this zmq's test error ?
[17:03] anddam nice mailbox.cpp:191 " This should never happen as we've already checked that command size less than PIPE_BUF."
[17:03] anddam seems it's happening
[17:05] klestes Thats the beauty of ZeroMQ: It makes the impossible possible !
[17:07] anddam "the possimpible"
[17:08] cremes anddam: check the tuning guide:
[17:08] cremes usually mailbox errors in 0mq are due to the tiny default buffer sizes on osx
[17:08] klestes anddam: Nice word !
[17:08] anddam this happens on OS X, anyone confirming he's got zmq working on osx?
[17:08] anddam klestes: that's from that tv show
[17:08] klestes there's a tv show of that name ?
[17:09] cremes anddam: i use 0mq on osx every day; works fine after doing a little kernel tuning
[17:09] klestes OS X seems to be a bitch to program on, from what I've seen hereabouts.
[17:09] cremes no harder than linux
[17:09] cremes same apis
[17:09] anddam cremes: I understand system tuning but how can test reach linux?
[17:10] cremes anddam: i don't understand your question, please rephrase
[17:10] anddam klestes: I think it depends on your targets, if you're going to do iOS development it's not a bitch
[17:10] anddam cremes: of course you don't understand it, I mixed two phrases
[17:10] klestes good to know.
[17:11] anddam cremes: my hardlimit for files is unlimited
[17:11] anddam how could that affect tests?
[17:12] cremes anddam: did you modify your sendspace/recvspace kernel params?
[17:13] cremes and to answer your first question, it can affect your tests if the soft limit (ulimit -a) is lower than the number of sockets created
[17:13] anddam no, I'm checking sysctl syntax to avoid rebooting
[17:16] anddam cremes: not that hard sysctl -w
[17:19] anddam cremes: you were damn right
[17:19] cremes :)
[17:19] anddam
[17:19] anddam so my issue is only mongrel2
[17:19] anddam I had no issues with a debian
[17:29] anddam cremes: seems this is it
[17:29] anddam in fact, zmq @2.1.3_0 (active)
[17:30] cremes yes, the termination semantics changed from 2.0.10 to 2.1.0
[17:31] anddam I'll checkout from repo, but I'm packaging for macports a stable tarball would be better
[17:31] anddam thanks, bye
[17:48] mih hello. One question about new 2.1.3 version. It is build only .la static lib (even with --enable-shared option). Is it bug or feature?
[17:55] cremes mih: by default it should produce a shared library
[20:30] traviscline I want running web server processes to on certain events share internal state information. Just to clarify i'll likely want a pub socket in each process and (at least one) corresponding sub sockets elsewhere for each of them. A friend suggested using req/rep on startup for the procs to know where to bind, sound reasonable?
[22:13] mikko evenin'
[22:20] Seta00 hey I want a dot on that community map too :3