Friday September 3, 2010

[Time] NameMessage
[00:07] bgranger sustrik: Just played with the EINTR logic.
[01:46] halfie hi, does zeromq supports building of read-only queues with one writer and multiple readers?
[02:14] halfie ls
[05:54] guido_g g'mornin' (or whatever :)
[05:57] guido_g sustrik: while not rocket science i think still something for the 250bpm page:
[06:20] sustrik guido_g: thanks, i'll have a look
[06:20] sustrik morning
[06:21] sjampoo I am kinda sad to see that with each update I find it more difficult to navigate around zeromq.??? :(
[06:22] sustrik sjampoo: i thought pieter reverted it to the original state
[06:22] sustrik let me see
[06:22] sustrik you mean the news should be in the right pane?
[06:22] sjampoo yes, at the least
[06:22] sustrik if you have any idea what to do further, just shoot
[06:24] sjampoo first thing would be not to change it every month ;) and I send an email about it months ago to the list. I also do not really like the .com / .org split
[06:24] sjampoo If the .org site is difficult to understand for new users, just make it more easy to understand
[06:25] sustrik where would you put the community stuff?
[06:25] sjampoo I would hide that on a separate but consistent page
[06:25] sustrik say?
[06:25] sjampoo Yes, something like that.
[06:26] sjampoo I mean only 0.005% is interested what the actual last edited page is.
[06:26] sjampoo Most people interested in the community, will most likely just want to see GITHUB or the IssueList
[06:26] sustrik no mailing list?
[06:26] sjampoo and the mailinglist
[06:27] sjampoo But I don't think that should be on the frontpage
[06:27] sustrik wouldn't you mind clicking through a simple page each time to the dev page?
[06:28] sjampoo No, not if it is at a consistent location
[06:28] sjampoo I could bookmark it
[06:28] sustrik right
[06:28] sustrik in summary:
[06:28] sustrik 1. move to
[06:28] sustrik 2. move to
[06:29] sustrik 3. move the news to the right pane
[06:29] sustrik 4. get rid of recent site changes
[06:29] sustrik that's it?
[06:30] sjampoo I am not completely sure what you mean with moving .com to .org.
[06:30] sjampoo I am not a big fan of the .com design
[06:30] sustrik that's because you are part of community
[06:30] sjampoo No, no
[06:31] sjampoo I just don't think that people landing on that site will get a good idea about what 0mq is
[06:31] sustrik ok, here's the use case:
[06:31] sjampoo It needs a little more meat
[06:31] sustrik you have a problem and someone advises you 0mq may help to solve it
[06:31] sustrik you type zeromq into goodle
[06:31] sustrik google
[06:32] sustrik which, ideally, would bring you to what's now
[06:32] sustrik you are under time stress
[06:32] sustrik so you cannot browse around much
[06:32] sustrik what you need to know:
[06:32] sustrik 1. what is it about (very roughly)
[06:33] sustrik 2. does it run on my OS
[06:33] sustrik 3. does it work with my language
[06:33] sustrik 4. i want to see a simple code example just to make sure it's not a utter shit
[06:33] sustrik after that i want a one click download
[06:34] sjampoo All that is true, but you are missing the biggest yet.
[06:34] sustrik yes?
[06:34] sjampoo "Why should I care"
[06:34] sustrik because i have a problem to solve
[06:34] sustrik i have to deliver tomorrow
[06:34] sustrik network part is still missing :(
[06:34] sustrik etc.
[06:35] sjampoo Yes, but that isn't explained currently on
[06:35] sustrik it can be improved obviously
[06:35] sustrik but the main point is that most people are not browsing for fun
[06:35] sustrik they are looking for solution
[06:36] sustrik so what they ask is "would this solve my problem" rather then "what it is good for"
[06:36] sjampoo Absolutetely. Ok, I would really add a link sidebar on the left side of
[06:36] sustrik what links?
[06:38] sjampoo all the 'content' links on, links to Github, Blog and Mailinglist
[06:38] sustrik too confusing imo
[06:39] sustrik that's good once you are using the thing
[06:39] sustrik the is there just to streamline the process up to the dowload phase
[06:40] sustrik once you're developing with 0mq you would naturally switch to the community site
[06:41] sustrik it's new
[06:42] sustrik created day before yesterdat
[06:43] sustrik sjampoo: i think you are right about .org, it's less readable now
[06:43] sustrik but .com (or however it is called) has it meaning
[06:43] sustrik althought the user it is aimed at are invisible to you -- visible through google analytics though
[06:44] sjampoo sustrik: I can see what it tries to do, but I am afraid that in its current state will not leave the user with a 'WOW' feeling.
[06:44] sustrik that's not it goal i think
[06:44] sjampoo Atleast get some sort of 'Who is already using zeromq'
[06:45] sustrik hm
[06:45] sustrik do you look at that kind of think when inspecting unknown projects?
[06:45] sjampoo sustrik: absolutely
[06:45] sjampoo Is it *worth* my time to investigate
[06:45] sjampoo will it gain me anything?
[06:45] sjampoo Or is it something flunky and experimental
[06:46] sustrik it may be part of "making sure it's not a shit" step
[06:46] sjampoo exactly
[06:47] sustrik
[06:47] sustrik what about the "introductions"?
[06:47] sustrik not good enough?
[06:47] sjampoo well, I was more thinking about some company profiles that are currently using zeromq
[06:48] sjampoo And it really should be put on the front page, especially if you take the (no doubt high) bounce rate into account.
[06:49] sustrik does reading a list of company names you never heard about before make you more happy then quotes?
[06:49] sjampoo hehe
[06:49] sustrik (i'm not trolling, i'm really interested)
[06:49] sjampoo sustrik: interesting question
[06:49] sjampoo no, I think both are well
[06:49] sjampoo uh i mean will do
[06:49] sjampoo And I am pretty sure that it doesn't really matter who says what
[06:50] sjampoo that's why astroturfing is so succesful.
[06:50] sjampoo We people are so sensitive to what others think
[06:50] sustrik yeah, but its unlikely to get madonna say anything about 0mq
[06:50] sustrik so you are still stuck with quotes from people you don't know
[06:51] sjampoo exactly, and that doesn't matter
[06:51] sustrik yes, quote just sounds well
[06:51] sustrik because someone invested 10 seconds to write it
[06:52] sustrik company name is less personal
[06:53] sustrik now, as for moving it to front page
[06:53] sustrik do you read endorsements first?
[06:53] sustrik even before what the project is and whether it will run with your OS/language
[06:56] sjampoo I usually read from top top bottom, but sometime I get distracted by bigger and bolder fonts.
[06:56] sjampoo and when your lucky I actually click on a link instead of back
[06:56] sustrik hm
[06:56] sustrik what i do is a type keywords into google bar
[06:57] sustrik i get a list of more or less matching projects
[06:57] guido_g re
[06:57] sustrik then i look at each one discarding those that won't fit
[06:57] sjampoo sustrik: yes, exactly
[06:57] guido_g ahhh web site issues :)
[06:57] sustrik i spend say 30 seconds on each page
[06:57] guido_g could one please reconsider the size of the logo?
[06:57] sustrik do you want it bigger?
[06:57] sustrik :)
[06:57] guido_g when viewed on small screen its taking too much space
[06:58] guido_g sustrik: bad boy! :)
[06:58] guido_g it's more than 1/3 of vertical screen space
[06:58] sjampoo For a page to appear in Google it needs to be indexed with the right terms.
[06:58] sustrik what's you screen size?
[06:58] sustrik just for reference
[06:58] guido_g and this color makes one aggressive...
[06:59] guido_g 13.6''
[06:59] sustrik i meant in pixels
[06:59] sjampoo guido_g: ah yes colors
[06:59] sjampoo lets discuss that next
[06:59] sjampoo I actually like the red big logo
[06:59] sustrik yes, i thought of red logo + shades of grey underneath
[07:00] guido_g 1280x800
[07:00] sjampoo it would make a nice tattoo
[07:00] sustrik it's kind of dull, but maybe hurts eyes less
[07:00] sustrik guido_g: thanks
[07:01] sustrik let's finish the content thing:
[07:01] guido_g it's not that bad when using 1920x1200 on a 27'' display
[07:01] sustrik so the front page at is meant to convey, in 30 secs
[07:01] guido_g but still, takes to much space that could've been used for better things
[07:01] sustrik whether the project is usable in your particular case or not
[07:01] sustrik guido_g: yes, we can do some experimenting with it
[07:02] guido_g if it should be for new users, why *must* i have cookies allowed then?
[07:02] sustrik what does it do if you don't?
[07:03] guido_g it shows a message to activate cookies
[07:03] sustrik yuck
[07:03] guido_g Can't proceed, you should accept cookies for this domain.
[07:03] guido_g Then you can go back to
[07:03] guido_g url:
[07:04] guido_g i mean, i know ømq, so i'll activate cookies
[07:04] guido_g but if this would have been the first impression, i'd closed the tab
[07:05] sustrik right, i am not sure what may be the case. if it's wikidot requiring the cookies we can move the page elsewhere
[07:05] guido_g i think it's wikidot
[07:05] sustrik it doesn't have to be a wiki after all
[07:05] guido_g because you need to allow cross-domain cookies (or how they're called)
[07:06] sustrik does that happen with .org as well?
[07:06] guido_g a community site should be accessible even for users taking their privacy serious
[07:06] guido_g i'll take a look
[07:06] guido_g yes
[07:08] guido_g btw, wikidot cookies
[07:09] sustrik hm, i switched off cookies and it still works for me
[07:09] sustrik what browser are you using?
[07:10] guido_g btw, i think for the community site we don't need a large funny picture at the top of the entry page
[07:10] guido_g opera 10.60
[07:11] sustrik hm
[07:12] guido_g i don't like the sound of "hm" :)
[07:12] sustrik i was just wondering if i should install opera :)
[07:13] guido_g hehe
[07:13] sustrik but let's rather ask at wikidot
[07:13] guido_g ok, thx for listening
[07:13] sustrik thanks for the feedback
[07:14] guido_g no problem
[07:47] guido_g re
[08:13] sustrik guido_g: the article at acm queue is good
[08:13] sustrik i wanted to write something like this for a long time
[08:13] sustrik but never had enough time to actually do it
[08:14] guido_g oh, so another dream died :)
[08:14] halfie hi, can I modify the publish-subscribe model so that the "queue" is read-only?
[08:14] halfie I don
[08:14] guido_g huh?
[08:14] guido_g what does that mean?
[08:15] guido_g SUB sockets are read only...
[08:15] halfie guido_g, I mean that the subscriber shouldn't remove the message
[08:15] sustrik you need a database, not a messaging system
[08:16] sustrik publisher -> INSERT
[08:16] guido_g ack
[08:16] sustrik subscriber -> SELECT
[08:17] halfie I see, makes sense.
[08:17] halfie some kind of in-memory database with "queue" semantics would solve the problem
[08:18] guido_g berkeley db
[08:18] guido_g
[08:19] mato 'morning
[08:19] halfie guido_g, thanks, I will give it a shot. sustrik: thanks for clearing the situation :)
[08:20] sustrik :)
[08:20] sustrik mato: morning
[08:20] sustrik a question
[08:20] mato yup?
[08:20] sustrik a signal question!
[08:20] guido_g hi mato
[08:20] mato hi guido
[08:20] sustrik imagine this:
[08:21] sustrik binding calls 0mq's blocking function
[08:21] sustrik 99% of the time is spent in OS's blocking call
[08:21] sustrik 1% of time some 0mq processing is being done
[08:21] sustrik what if user Ctrl+C's during the 1%?
[08:21] mato too bad
[08:21] sustrik :)
[08:22] mato it'll get delivered late
[08:22] mato nothing you can do about that
[08:22] mato well, there are various weird hacks you can do about that, but believe me, you don't want to go there
[08:22] sustrik it won't be delivered at all no?
[08:22] sustrik the handler runs, sets a bit
[08:23] sustrik there's no blocking call for OS to interrupt
[08:23] sustrik so nothing happens
[08:23] mato hmm
[08:23] sustrik 0mq then calls a blocking call
[08:23] sustrik and freezes
[08:23] mato oh dear
[08:23] mato yes, you may be right
[08:24] sustrik the whole EINTR thing seems broken
[08:24] mato i have always said signal handling is broken
[08:24] mato to put it very politely
[08:24] sustrik is there *any* way to make it work?
[08:24] mato hmm, well, maybe
[08:24] sustrik imagine you are omnipotent
[08:24] mato but it's so horribly racy i wouldn't want to go there
[08:24] mato oh, if i'm omnipotent then 0mq is in kernel space, problem goes away
[08:24] sustrik you can change the language runtimes etc.
[08:25] mato ah, less than god (linus), ok...
[08:25] mato just a sub-god :)
[08:25] sustrik what i'm asking: is there a canonical way to use EINTR
[08:25] sustrik something that works?
[08:25] mato well, there is a canonical way i would do it
[08:25] mato this is one of the ideas i had yesterday
[08:25] mato it might not be right
[08:25] mato but assuming you can hack the language runtime
[08:26] mato then what you need to do is chuck a call to a thread-safe "zmq_interrupt()" into the low-level signal handler in the runtime
[08:26] mato i.e. the bit that "sets a flag"
[08:26] mato this zmq_interrupt() would cause all application API calls to immediately return with EINTR
[08:27] mato it's ugly, but it should work
[08:27] sustrik tweaking it a bit you end up with chained signal handlers
[08:27] mato yes, except there's no API for that
[08:27] sustrik exactly
[08:27] mato so you don't want to go there :)
[08:28] mato trying to emulate chained signal handlers is madness
[08:28] sustrik so the whole system is really broken
[08:28] mato yes
[08:28] sustrik ok, what i do is froward the EINTR to the binding
[08:28] mato it doesn't account for the fact that more than one "entity" inside the application might want to know if a signal arrived
[08:28] sustrik that would work in99% of cases
[08:29] sustrik the rest...
[08:29] mato "forward the EINTR to the binding"? how?
[08:29] sustrik shrug
[08:29] sustrik if (errno == EINTR) return -1;
[08:29] mato oh, that, yes...
[08:29] mato hmm
[08:29] mato let me check something
[08:44] mato sustrik: ok, so, yes, forwarding EINTR is the only way at the moment
[08:44] sustrik ack
[08:44] sustrik well, there's another wat
[08:44] sustrik way
[08:44] mato yes?
[08:45] sustrik on each entry to potentially blocking 0mq function
[08:45] sustrik store the old signal handler
[08:45] sustrik install your own
[08:45] sustrik etc.
[08:45] sustrik then on exit return it to the original state
[08:45] mato that's the naive way, yes
[08:45] mato except
[08:45] mato IT WILL NEVER WORK :)
[08:45] sustrik why so?
[08:46] mato because, and this is what i just double-checked, all the POSIX docs explicitly say "never, ever, ever, try to mix different signal handling mechanisms and threads"
[08:46] mato phone, hang on
[08:46] sustrik not sure what that means, but ok, i don't want to implement that kind of hack anyway
[08:48] mato let me explain
[08:48] mato the problem is it only works if you have 1 thread
[08:48] mato 1 OS thread
[08:48] mato and no more
[08:49] mato if you start doing that kind of stuff it will break any application that might actually trying to be do things the right way in a MT envinronment, which is using a sigwait() thread
[08:49] mato you have no way of knowing what the application is doing...
[08:49] mato does that make sense?
[08:50] sustrik i have no idea how sigwait style interacts with the classic style
[08:50] mato badly
[08:50] mato i.e. never do that
[08:50] sustrik but i don't really care
[08:50] sustrik so for now i'll return EINTR
[08:50] mato yeah, but if you start mucking with signal handlers then you start caring :)
[08:50] sustrik when available
[08:50] mato yes
[08:50] mato returning EINTR will solve the problem "most of the time"
[08:50] sustrik so sometimes Ctrl+C won't work
[08:50] mato but you can still get signal loss someimes
[08:51] sustrik however, user can press Ctrl+C again
[08:51] mato this just needs to be documented, that's all
[08:52] sustrik yeah
[08:52] mato sustrik: anyway, can i suggest the following process for this:
[08:52] mato sustrik: 1. Test the solution, as discussed yesterday.
[08:52] mato sustrik: 2. Post a patch for review, along with your "I'm (almost) an idiot, sorry"
[08:53] mato sustrik: 3. I will reply to that describing all I know about the problem so that the binding people can understand what's going on (since they're the most affected)
[08:53] mato sustrik: 4. Some consensus will be reached on whether or not this goes into 2.0.x (I'm not opposed either way, it's a fix for breakage on our part)
[08:54] mato sustrik: 5. We may learn something useful from the discussion, and I can also bring up the zmq_interrupt() idea which might give a solution for those language runtimes that want to solve this 100%...
[08:54] mato sustrik: what do you think?
[08:56] mato phone call, back in 20mins
[08:56] pieterh re
[08:56] pieterh i lost my phone and have been offline
[08:56] pieterh :-(
[08:58] pieterh sjampoo: i read your remarks about the website
[08:58] pieterh they make sense and we'll evolve this over time
[09:54] mato sustrik: re
[09:54] mato sustrik: are you happy with what i propose?
[09:55] mato sustrik: it seems like the best way to move forward on the signal handling issues
[11:00] sustrik mato: yes
[11:01] sustrik re
[11:01] mato sustrik: see my long email
[11:01] mato sustrik: i've tried to explain the issue, complex as it is
[11:01] sustrik ok, i'm on it
[11:30] mato ok, another big long email sent re the Python GIL stuff
[11:30] mato somewhat braindump format, hopefully it's clear enough
[12:12] arnorhs yo
[12:12] arnorhs Which programming language has the best zero mq bindings?
[12:12] arnorhs Which one is the most used / most stable?
[12:15] guido_g ømq itself is programmin in c++, so this should work
[12:16] guido_g c is delivered with the core, so does work too
[12:16] sustrik yes, all the bindings use C API underneath
[12:17] guido_g the other bindings are quite stable, if you don't insinst on using bleeding edge versions
[12:26] arnorhs ok, thanks
[12:27] arnorhs I will go for fortran then
[12:27] arnorhs :)
[12:27] arnorhs I'm guessing the python bindings are fine?
[12:30] sustrik yes, i think they are most stable among the whole bunch
[12:51] arnorhs ok, thanks
[12:53] gebi are there any plans to add {active, once} mode to the erlang bindings?
[12:58] sustrik gebi: what's once?
[13:30] gebi sustrik: only deliver ONE message
[13:31] gebi with active,true is unuseable because it will fill up your process message queue and make it unusable
[13:31] gebi active,false is also not ideal because processes block and do not process other messages
[14:31] sustrik gebi: how does that work
[14:31] sustrik ok, it delivers one message
[14:31] sustrik when then?
[14:32] sustrik you still have to have a way to get next message
[14:32] sustrik mato: are you here?
[14:35] sustrik gebi: does it mean there's at most one message in erlang queue?
[14:35] sustrik if so, how do you tell erlang to behave that way?
[14:59] gebi sustrik: it should be a property of the erlang 0mq binding
[15:00] sustrik :)
[15:00] sustrik i know, i was just interested whether erlnag as such has such feature
[15:00] gebi with active, once it just sends delivers a single received datagram into the message queue and stops then
[15:00] sustrik erlang*
[15:01] sustrik that's erlang's native networking API?
[15:01] gebi yea it's a property of gen_tcp
[15:03] gebi you just call inet:setopts(S,[{active,once}]) when you want to get another datagram delivered into your messagequeue
[15:04] sustrik aha
[15:04] sustrik how is that different from passive?
[15:04] gebi what do you mean with passive?
[15:05] sustrik active=false
[15:06] gebi with active false you have an effectively dead process (all your receiving processes hang on erlzmq:receive)
[15:07] gebi with all the bad sideeffects
[15:08] sustrik ah, it blocks threads in erlnag thread pool?
[15:08] sustrik erlnag*
[15:08] sustrik erlang*
[15:08] gebi no erlang processes
[15:09] sustrik does it matter? if process is up to receiving a message am there's no message available it hangs anyway
[15:09] gebi if it "hangs" on receiving a erlang message it is alive, if it hangs on receiving a message from the 0mq binding it is dead
[15:10] sustrik does "dead" mean that it is ubable to process erlang messages?
[15:10] gebi meaning it wont process erlang messages till at least _one_ 0mq message gets delivered (and erlzmq:recv returns)
[15:10] sustrik ok, got it
[15:10] sustrik makes sense
[15:10] gebi this _is_ the fastest mode, though most of the time not desireable
[15:11] sustrik good, i'll probably have a look at it next week
[15:11] gebi same with active,true, processing the message-queue in erlang is NOT O(1)
[15:11] sustrik ack
[15:11] gebi so it's kinda ugly to have a big messagequeue, thus active,true is not possibel without another protocol above for flowcontrole
[15:12] gebi thx :)
[15:12] sustrik i was actually wondering how the flow control thing can be handled in erlang
[15:12] sustrik you've gave me the answer for free :)
[15:12] gebi heh, np :)
[15:31] CIA-20 zeromq2: 03Martin Sustrik 07eintr * r9e7a9d1 10/ src/zmq.cpp : zmq_poll returns EINTR if signal interrupts it -
[15:31] CIA-20 zeromq2: 03Martin Sustrik 07eintr * rb059116 10/ (9 files): EINTR is propogated from signaler_t::recv all the way up to the 0MQ API -
[15:32] CIA-20 zeromq2: 03Martin Sustrik 07eintr * r63706a9 10/ (doc/zmq_poll.txt doc/zmq_recv.txt doc/zmq_send.txt): documentation modified to reflect the EINTR change -
[15:51] cremes sustrik: i get an assertion failure when running the EINTR branch
[15:51] cremes
[15:55] sustrik cremes: let me see
[16:07] sustrik cremes: try now
[16:08] CIA-20 zeromq2: 03Martin Sustrik 07eintr * r1bc4e9e 10/ src/app_thread.cpp : one more EINTR fix -
[16:10] cremes sustrik: works
[16:11] sustrik you mean Ctrl+C stops the app?
[16:11] cremes yessir
[16:11] sustrik woo-hoo!
[16:11] cremes indeed!
[16:11] sustrik that's a bug ~2 years old
[16:11] sustrik maybe 2 1/2
[16:11] sustrik until now nobody had any clue how to solve ti
[16:12] cremes wow, good catch
[16:12] sustrik great!
[16:12] cremes is this going into 2.0.9 or 2.1?
[16:12] sustrik let's wait for bgranger and lestrrat to confirm it's working first
[16:12] cremes sure thing
[16:12] sustrik i am afraid of pushing it to a stable version
[16:12] cremes i'll drop a note to the ML to make my report "official"
[16:13] sustrik yes, good idea
[16:13] cremes yeah, i wrote to the ML with my reasoning for this change to go into 2.1 but *not* 2.0.x
[16:13] sustrik +1
[16:13] sustrik at least it's a motivation for migration to 2.1 :)
[16:16] cremes oh yeah, i'm looking forward to the thread migration changes too
[16:16] cremes and the new FD_EVENT stuff
[16:18] sustrik it's there to test already
[16:19] sustrik it may be a bit buggy
[16:19] sustrik but still...
[16:19] cremes sustrik: i'm pretty busy building out a production app using 0mq 2.0.x so i haven't had any time to test 2.1.x
[16:20] cremes when you get closer to a release, you should ping the bindings authors and ask us to test
[16:20] sustrik sure, just updating you on the status
[16:20] cremes cool, i appreciate it
[16:20] sustrik we'll do some testing ourselves
[16:20] sustrik in the next few weeks
[16:20] sustrik then it's binding autohr's turn
[16:20] cremes do you have a time frame for the 2.1 release? 2-4 weeks? 4-6 weeks?
[16:22] sustrik hm, it's up to mato, he's going to do the testing
[16:22] sustrik bet yeah, something between 2 ans 6 weeks i would say
[16:27] cremes ok
[17:20] sustrik 0MQ now being followed by google trends:
[17:31] ModusPwnens So, I updated to 2.0.8 and I still have the problem of the benchmarking programs spitting out errors if you enter in very large parameters
[17:32] ModusPwnens i'm using windows 7 on both operating systems, but the system running the remote end is 64-bit
[17:32] ModusPwnens and here is the pastebin with the error emssage and input
[17:32] ModusPwnens
[17:40] sustrik ModusPwnens: throughput test?
[17:40] sustrik try increasing the sleep period in remote_the
[17:41] sustrik otherwise it doesn't have enough time to send all the messages
[17:41] cremes fyi,
[17:41] ModusPwnens Ok, I will try that sustrik
[17:42] sustrik cremes: nice!
[17:42] sustrik ha, that's the guy complaining about the website!
[17:42] sustrik :)
[17:42] cremes it's always good to see people writing articles on our favorite networking library
[17:43] sustrik yes, given how dull topic the networking is, it's interesting that people even bother
[17:43] cremes heh
[17:43] sustrik btw, the site is back to normal
[17:45] cremes i see that; btw, i do like the new *.com site
[17:45] cremes nice and simple
[17:46] sustrik few minor things to fix still...
[17:46] sustrik the link in the bottom look like there were 6 of them
[17:46] sustrik while there are only 3
[17:48] sustrik etc.
[18:06] ModusPwnens sustrik: I tried your suggestion and received a different error message
[18:07] sustrik what error message?
[18:07] ModusPwnens
[18:07] ModusPwnens I just added it to the bottom
[18:08] sustrik well, not enough memory
[18:08] ModusPwnens so is that expected then?
[18:08] sustrik messages are held in memory
[18:09] sustrik so if you create more than your memory can hold, it's expected
[18:09] sustrik what you can do though
[18:09] ModusPwnens Hmm, that makes sense.
[18:09] sustrik is to use ZMQ_SWAP socket option
[18:09] sustrik to offload excessive messages to the disk
[18:10] ModusPwnens Ok. I will try that.
[18:52] lvh hey
[18:53] lvh is there any progress or change regarding the zeromq-exposing-a-fd idea?
[18:53] lvh AFAIK this is what gevent and twisted are waiting for so we can integrate zeromq.
[18:53] lvh (I want to try zeromq, but if it won't work with all of my existing event loop-based stuff, like twisted, well, I basically can't use it.)
[18:54] sustrik lvh: it's in trunk
[18:55] sustrik it's a development version so it can be a bit unstable still
[18:55] lvh sustrik: oh cool, that's interesting
[18:55] sustrik but it has ZMQ_FD socket option to get an underlying file descriptor from a 0MQ socket
[18:55] sustrik and ZMQ_EVENTS option that allows you to check whether socket is ready for readin and/or writing
[18:55] lvh git:// ?
[18:56] sustrik yes
[18:56] sustrik "master"
[18:56] lvh Wait, why do people need to know the underlying fd
[18:56] sustrik to poll on it
[18:56] lvh I thought a zmq socket abstracted away from that and not necessarily have an fd, or not necessarily have exactly one
[18:57] lvh I'm not sure I understand. Isn't that zmq's job still?
[18:57] sustrik how would you poll on something that's not a fd?
[18:57] lvh Is the idea to *not* use the IO parts in ZMQ?
[18:57] lvh sustrik: Oh, wait, sorry, I misunderstood what it does.
[18:57] sustrik the underlying fd is not the networking fd
[18:57] lvh Right.
[18:57] sustrik it's 0MQ's internal fd
[18:58] lvh Right, yes, that makes a lot more sense.
[18:58] sustrik used to communicate with I/O threads
[19:00] lvh sustrik: have fun
[19:20] bgranger foo = Float(0.00001, config=True)
[21:51] troutwine Does anyone have examples of Google's Protocol Buffers being used as a serialization format with zeromq? I've seen it referenced but cannot find any examples.
[22:14] erickt anyone who works on pyzmq online today? I'm having trouble trying to make a fedora rpm for the head of the tree
[22:15] erickt the commit 2a192b9 seems to have caused fedora 13's rpmbuild to error out
[22:43] bgranger erickt: Hi I have a few minutes...
[22:44] erickt I think I found the problem, the enums for the devices is wrong
[22:44] erickt if I understand cython
[22:44] bgranger Possibly...
[22:45] bgranger What do you think the issue it.
[22:45] erickt ZMQ_QUEUE is defined to 1 in 2.0.8, ZMQ_FORWARDER 2, ZMQ_STREAMER to 3
[22:45] erickt well i haven't completely confirmed it, but it seems to cause rpmbuild to fail on f13 I think
[22:45] bgranger Is that different than 2.0.7?
[22:46] bgranger Do you have an error msg or traceback?
[22:46] Tasser what's a context exaclty?
[22:46] erickt bgranger: no, that's part of the problem
[22:47] erickt it's dying somewhere deep in a redhat command that doesn't say really what's going on
[22:47] bgranger Ahh. It is possible that the _zmq.c needs to be re-created for 2.0.8, but I would be a bit surprised.
[22:47] bgranger Can you build by hand?
[22:47] erickt i just know that in 1770dbb I can build an rpm, but with 2a192b96 i cannot
[22:47] bgranger That should show any issues outright
[22:47] erickt yeah it builds fine, and seems to be usable
[22:48] bgranger Are you buildling against 2.0.8 of zeromq
[22:48] erickt which is why I'm confused
[22:48] erickt yeah
[22:48] bgranger Hmmm, that is odd then. Do you have the script that rpmbuild is using?
[22:48] erickt Tasser: it's an object to hold all the threads and underlying bits that zmq needs
[22:48] ModusPwnens troutwine, are you still here? I can help you!
[22:48] bgranger I do have to leave in a few minutes, so maybe post to the list if you can't figure it out.
[22:49] ModusPwnens Also, I am receiving more errors with the benchmarking utility
[22:49] ModusPwnens this time not associated with large parameters
[22:49] Tasser erickt, can you have more than once context? not likely?
[22:49] bgranger Tasser: multiple contexts are just fine.
[22:49] Tasser hmm
[22:49] erickt bgranger:
[22:49] bgranger Tasser: the general guideline is 1 per library. You can use it to isolate your own zmq stuff from that of other libs.
[22:50] Tasser I'll have to play around a bit
[22:50] erickt that's the rpm spec and a driver script
[22:51] bgranger Do you know how far it gets?
[22:52] erickt it compiles and it's just determining metadata for the rpm
[22:52] bgranger erickt: sorry I need to run now, can you email the list. Also, have you talked to T. Spura about this?
[22:52] erickt nope, just found this