Wednesday March 9, 2011

[Time] NameMessage
[03:49] yrashk what's the purpose for zeromq2-1 repo?
[07:00] suzan_shakya hi all, can anyone explain me what is zmq Context ?
[07:01] suzan_shakya and why 1 zmq Context should be used in 1 process
[07:02] guido_g it's the data structure holding the memory and other stuff needed to make the sockets work
[07:05] suzan_shakya and can multiple threads use multiple contexts ?
[07:06] guido_g why should they?
[07:40] suzan_shakya because i dont want to pass the context to all the threads
[07:42] guido_g it's hard to talk to someone who has half an hour delays in his answers
[07:43] guido_g use one context per process, as described in the guide
[07:43] guido_g otherwise you're not able to use inproc sockets
[07:44] guido_g i'm off, getting some breakfast
[08:02] suzan_shakya ok. thanks guido_g. I was also away for some breakfast :)
[08:14] mikko suzan_shakya: threads can use inproc:// transport within the same context
[08:15] mikko suzan_shakya: that is probably the most important thing you lose if you setup context per thread
[08:18] suzan_shakya mikey_w: oh. thanks mikko
[08:18] suzan_shakya mikko: i got it now. thanks for the answer
[08:27] sejo hey all I'm trying to use multiple workers (with zmq.PULL) but when i send a document to the socket, I never neem to receive it?
[08:32] guido_g re
[08:48] guido_g sejo: first and before all, show the code you run, otherwise everything else would be guessing
[08:49] guido_g sejo: use a pste-bin like
[08:52] Guthur pieterh: I tried a C version of that code last night
[08:52] Guthur no errno 4, unfortunately
[09:16] mikko what is errno 4 on your platform?
[09:19] Guthur mikko: Interrupted System Call
[09:19] Guthur Ubuntu 10.04
[09:20] mikko EINTR, hmm
[09:20] Guthur I'm a little stumped as to what to do about it
[09:20] mikko there are a couple of situations where you see EINTR
[09:20] mikko one is that the context is being terminated
[09:21] Guthur I think it's something to do with Mono
[09:21] mikko can it be mono gcing the context?
[09:22] Guthur I don't think so, I can actually catch the exception and try again and it works
[09:22] Guthur its on Recv that I get it
[09:22] Guthur no sorry Poll
[09:23] Guthur Actually it would be interesting to see if I can get it on Recv as well
[09:23] mikko if context is being terminated each blocking socket call should exit with EINTR
[09:27] Guthur mikko: But if that was the case surely subsequent Polls on the same socket wouldn't work
[09:29] Guthur is there a way of checking the source of the signal
[10:10] private_meta pieterh: I thought I read that for every thread used in a program you should use your own zmq context, or was I mistaken?
[10:11] guido_g no, that's not the case
[10:11] guido_g as said, one process should use one context
[10:11] private_meta hmm
[10:12] private_meta Well, the problem is, if a context is used by more than one thread, apparently, the read throws an exception in the thread if one of the threads terminates the context
[10:13] private_meta I'm just curious as in none of the C++ examples this behavior is treated
[10:13] guido_g there is no problem at all
[10:13] guido_g just don't do it
[10:13] private_meta don't do what?
[10:13] guido_g what did you say?
[10:14] private_meta Well, did you mean "Don't use the same context"?
[10:14] guido_g <private_meta> Well, the problem is, if a context is used by more than one thread, apparently, the read throws an exception in the thread if one of the threads terminates the context
[10:14] mikko dont terminate the context
[10:14] private_meta Well, someone HAS to terminate the context in the end
[10:15] mikko private_meta: yes
[10:15] private_meta yeah
[10:15] mikko but dont terminate it before the threads are done with it
[10:15] private_meta and if the main thread does, exceptions fly wild in the threads
[10:15] private_meta At least in the guide examples
[10:19] private_meta Parts of the C examples use a separte context in each thread, the others use the same context as the main thread. Yet, in none of the examples the threads EVER terminate
[10:19] private_meta so, in case of C++ the worker threads naturally will have exceptions
[11:18] Guthur private_meta: In the examples pieter is often illustrating multiple processes in a single process
[11:18] Guthur eg. the clienttasks and servertasks
[11:18] private_meta multiple threads, yes
[11:18] private_meta but he is not consistent with his use of context
[11:18] Guthur no multiple process
[11:18] Guthur that's why he uses multiple contexts
[11:19] Guthur they are of course only on threads
[11:19] private_meta He is using pthread, and for some he uses a new context, for others he doesn't
[11:19] private_meta Sometimes he uses the same context for all threads, in others he doesn't
[11:20] guido_g read -> Guthur> private_meta: In the examples pieter is often illustrating multiple processes in a single process
[11:20] Guthur yeah, though he does often comment saying which ones would likely be a separate process
[11:20] private_meta still doesn't change what I said
[11:21] Guthur check rtdealer it has a comment like so...
[11:21] Guthur We have two workers, here we copy the code, normally these would
[11:21] private_meta Yes
[11:21] Guthur run on different boxes...
[11:21] private_meta And he uses a copied context there
[11:22] private_meta Of course it's just for illustration
[11:22] private_meta but, for example, the lruqueue, the c++ version, uses the same context for each thread as well, and it leads to errors
[11:22] private_meta Because termination of the context leads to an exception that is not treated
[11:23] private_meta It's not that big of a deal, but in my opinion, it's a bit of a problem
[11:24] Guthur but in the original lruqueue it is not sharing contexts
[11:24] private_meta No it isn't
[11:24] Guthur so it's a problem with the c++ translation not the guide
[11:24] private_meta It's a general issue with copying contexts in the guide, imho
[11:49] sejo is there a workin twisted reactor for zmq?
[11:50] mikko sejo: does twisted allow you to poll normal filehandle?
[11:50] sejo mikko: I don't know
[11:50] guido_g mikko: sure
[11:51] guido_g sejo: why not try the provided tornado event loop?
[11:51] sejo guido?
[11:51] mikko i don't really know much about python
[11:51] sejo the what?
[11:52] guido_g sejo:
[11:52] sejo aha!
[11:53] mikko hmm
[11:53] Guthur I was about to do lmgtfy
[11:53] sejo but I'm calling smq from a twisted app, so need to test whether that will work
[11:53] mikko maybe python would be worth learning
[11:53] Guthur but it's blocked at work, boohoo
[12:32] sejo ok writing a reactor is a bit too highlevel for me
[12:32] sejo perhaps i should just write a small socket receiver and send from there my smq messages
[12:32] sejo zmq
[12:34] Guthur sejo: what's your aim?
[12:36] sejo Guthur: I use scrapy to craml websites (twisted based) and want to process the pages distributed, so send the results to a workergroup
[12:49] Guthur well I've found that Mono on windows doesn't throw that exception, from earlier
[12:49] Guthur it seems to be specific to linux
[13:31] mikko Steve-o: new issue!
[13:31] mikko exclamation mark added for emphasis
[13:37] private_meta How do I add multiline commit comments in git?
[13:38] mikko private_meta: probably the easiest way is to type the message on multiple lines using $EDITOR
[13:39] private_meta mikko: how?
[13:39] mikko git commit
[13:39] mikko then type your message
[13:40] private_meta ah thanks
[13:47] private_meta pieterh: I hope the patch works like that
[13:51] pieterh private_meta: I'm back online... just reading my emails, seen your patch, looks perfect
[13:51] private_meta ok
[13:52] yrashk pieterh: can you please create zeromq/erlzmq2 repo with me 'yrashk' and 'evax' added as collaborators?
[13:52] pieterh yrashk: will do asap
[13:53] yrashk thx
[13:53] yrashk once it'll be there I'll do the renamings and push it
[14:03] pieterh yrashk: since dhammika and saleyn are already admins of erlzmq, I'll make all four of you admins of erlzmq2, that ok?
[14:04] yrashk pieterh: sure
[14:07] pieterh yrashk: just to confirm, you're happy with a new empty repository?
[14:07] pieterh rather than a fork of some existing one...
[14:07] yrashk pieterh: yes, I will do renames and push it to the new repo
[14:07] pieterh ok, you're good to go:
[14:07] pieterh :-)
[14:08] yrashk thanks!
[14:09] private_meta pieterh: about git, now that I made the patch. should I wait until it's commited to make a reset and work from there?
[14:10] pieterh probably best, I'll do that now
[14:14] yrashk pieterh: how should we address v2 introduction at the 0mq website?
[14:14] yrashk right now the erlang binding page is solely dedicated to v1
[14:16] pieterh yrashk: we had this issue with Lua
[14:16] pieterh there are in fact several bindings with two or more versions
[14:16] pieterh I solved it for Lua by just documenting both bindings on the same page, see
[14:17] pieterh In the case of erlzmq, document v2 at the top, and v1 below
[14:17] yrashk ok
[14:17] Steve-o mikko: oh!
[14:24] pieterh private_meta: ok, patch applied... for some reason it complained on lpclient/lpserver but I fixed that up
[14:25] pieterh if you reset and 'git pull origin master' you should get a clean state with your changes
[14:25] private_meta pieterh: so the patch there was broken?
[14:25] pieterh I don't think it was broken, no
[14:25] yrashk pieterh: pushed
[14:25] pieterh yrashk: nice!
[14:26] private_meta mhm
[14:26] private_meta CONFLICT (content): Merge conflict in examples/C++/lpclient.cpp
[14:26] pieterh private_meta: yeah, something like that
[14:26] private_meta pieterh: wouldn't a reset be beter there?
[14:26] pieterh private_meta: did you not do a reset?
[14:27] private_meta uhm not after the commit
[14:28] pieterh so, do 'git log' to see the last commit before yours, then do 'git reset --hard committag'
[14:28] pieterh committag is the UUID (or first 6 chars thereof)
[14:28] pieterh then pull the master branch again, it'll fetch &merge everything that changed since
[14:29] pieterh these are the joys of distributed vcs, it remains a lot easier than handling merges in svn
[14:30] private_meta why reset to the one before mine?
[14:31] pieterh you changed file X, I changed file X
[14:31] pieterh we changed the same lines
[14:31] pieterh (obviously, I used your patch)
[14:31] pieterh well, you can resolve the conflicts by hand if you prefer
[14:32] pieterh actually, simplest is just delete your repository entirely and re-clone from github...
[14:32] pieterh you don't want to have commits on your history that don't exist anywhere else
[14:33] private_meta k, I went with the latter choice
[14:33] private_meta Is there a way to only clone the examples folder?
[14:33] pieterh nope
[14:33] pieterh we could eventually make the examples into a separate project
[14:34] pieterh or even lots of projects, 1 per language
[14:34] pieterh then you can become committer on the C++ project and it's much much simpler
[14:34] private_meta Well, I don't think it's necessary
[14:34] pieterh kind of overkill at the moment
[14:34] private_meta ah, so you can't allow someone commits to only one subtree?
[14:34] pieterh nope
[14:35] private_meta too bad
[14:35] private_meta works quite well that way in svn :/
[14:35] pieterh yeah, but creating a single SVN repository is a serious task
[14:35] pieterh creating *lots* of git repositories is trivial
[14:35] private_meta a serious task?
[14:36] pieterh especially if you want it to be secure and maintained and backed up
[14:36] pieterh one does not create 1,000 svn repositories for fun
[14:37] pieterh whereas you can literally use git repositories as an organizational tool
[14:38] pieterh now I'm actually considering breaking the Guide into multiple repos... :-)
[14:40] yrashk :)
[14:40] pieterh yrashk: I already tweeted that :-)
[14:41] pieterh hang on... hey!
[14:41] pieterh nice
[14:42] yrashk pieterh: you used yrashk as a hashtag :D
[14:43] pieterh ah, yes, sorry
[14:43] pieterh fixed
[14:44] yrashk thx!
[14:51] yrashk pieterh: we'll most likely update the binding page today, I asked evax if he can do it (I am tired :)
[14:52] pieterh yrashk: no stress... note that the current page is mostly HTML copied/pasted from another site.
[14:53] yrashk yeah I can see that
[14:54] faha hello, provide zeromq some kind of message encryption or it's necessary secure transport between client and server using *vpn* solution ?
[14:55] Steve-o faha: or you can use tls above zeromq
[14:57] faha Steve-o: it sounds great thx
[14:58] pieterh faha:
[14:58] pieterh there is no great solution today
[14:58] mikko Steve-o: im getting unresolved symbols with zeromq/openpgm 5.1.113
[14:59] Steve-o which platform?
[14:59] mikko solaris / oracle solaris studio 12.2
[14:59] mikko sec
[14:59] mikko
[14:59] mikko pgm_build_revision etc are undefined
[15:00] mikko im wondering whether those are accepted by visibility flags on the compiler?
[15:00] mikko and oddly enough I wasn't seeing these with 5.1.110
[15:01] Steve-o missing the two dynamic generated files
[15:02] Steve-o but I see the GEN lines
[15:03] Steve-o but, line 1: warning: empty translation unit ?
[15:03] Steve-o the GEN failed?
[15:03] Steve-o no perl, python?
[15:03] mikko possible
[15:04] mikko i seem to have both
[15:04] Steve-o checking for perl... /usr/bin/perl
[15:04] Steve-o checking for python... /opt/csw/bin/python
[15:04] Steve-o check the content of the files?
[15:05] mikko This is perl, v5.10.1 (csw-5.10.1*) built for i86pc-solaris-thread-multi
[15:05] mikko Python 2.6.6 (r266:84292, Oct 12 2010, 15:43:32) [C] on sunos5
[15:07] faha Steve-o: TLS/SSL seems to be a clean solutions ( not support multicast is not problem for me), what doest it mean "notion of hops over devices", it's something like retranslate message or "ICMP redirect"?
[15:08] mikko faha: if you for example have a forwarder or similar device running
[15:08] mikko your tls/ssl would be between the client and the forwarder
[15:08] Steve-o actually I think that refers to zeromq over TLS, not TLS over zeromq
[15:09] Steve-o faha: read this
[15:09] Steve-o mikko: GEN is building fine on Linux, check out version.c and galois_tables.c to see what the scripts produced
[15:11] mikko Steve-o: ok, sec
[15:11] mikko Steve-o: version.c is empty
[15:12] mikko galois_tables.c is empty as well
[15:13] Steve-o try a configure --disable-silent-rules --with-pgm to see the command line used for the GEN steps
[15:16] Steve-o or just trying running perl and python for valid output
[15:17] pieterh mikko, Steve-o, you're doing these tests against the 2.2 git master?
[15:19] Steve-o I tested Windows with the rc2 and Linux with mikko's autoconf branch
[15:19] mikko pieterh: roughly
[15:20] Steve-o mikko: is Solaris x86 make going to break on $< or something stupid?
[15:21] mikko Steve-o: i wonder if that is an issue with dmake vs gmake or ksh vs bash
[15:22] Steve-o I've seen warnings that it shouldn't be used, but I've never encountered a platform that doesn't like it
[15:22] Steve-o but then I'm using scons on Solaris
[15:23] mikko
[15:23] mikko builds now
[15:23] mikko it's fairly slow, solaris in vm
[15:24] Steve-o lol at the long command lines
[15:25] Steve-o yup, /opt/csw/bin/python > version.c
[15:26] evaxsoftware hi. thanks for the erlzmq2 inclusion
[15:26] Steve-o lmao
[15:26] mikko /usr/bin/perl > galois_tables.c
[15:26] mikko same with perl
[15:26] Steve-o use gmake or replace $< with the source file name
[15:26] mikko trying the same thing with gmake now
[15:26] mikko sec
[15:31] mikko
[15:31] mikko gmake building now
[15:34] pieterh evaxsoftware: np
[15:34] pieterh mikko: Steve-o: when you guys have this working I want to fold it into 2.1.x and make a new stable release for that
[15:34] pieterh everyone is impatient to play with the new OpenPGM! :-)
[15:35] pieterh you will get multiple opportunities to improve things afterwards, not an issue
[15:35] Steve-o don't forget the other patch on the ML
[15:35] Steve-o someone removed rate limiting by mistake
[15:35] evaxsoftware pieterh: i'm about to edit the bindings:erlang page, is it ok if I remove the old autogenerated doc copy and paste, and rely on links to the gh-pages instead ?
[15:35] pieterh Steve-o: ah, by default all patches on the ML go to sustrik, 2.2, not to me
[15:36] Steve-o mikko: looks good: /opt/csw/bin/python > version.c
[15:36] pieterh evaxsoftware: make any changes you like but remember there are people using erlzmq1 in production, they need docs or links to docs
[15:36] pieterh Steve-o: shall I apply that patch to 2.1.x?
[15:36] evaxsoftware pieterh: thanks, np
[15:37] CIA-103 zeromq2: 03Martin Sustrik 07master * r7b95c59 10/ src/ip.cpp :
[15:37] CIA-103 zeromq2: Windows build fixed
[15:37] CIA-103 zeromq2: Compilation of ip.cpp have failed because EPROTONOSUPPORT
[15:37] Steve-o pieterh: I think sustrik must have removed it between rc1 and rc2? I have looked back at the commit log to find out
[15:37] yrashk pieterh: well there will be a link to github pages published docs for erlzmqv1
[15:37] yrashk so I think we're fine then
[15:38] pieterh Sustrik isn't touching 2.1.x
[15:38] Steve-o well at least it helped to find a bug on windows
[15:38] pieterh but there was a patch to OpenPGM for rc2, let me check what that changed...
[15:40] pieterh commit f4c1040ddcb579ca53fb34ef0ef83b130424070d
[15:41] pieterh 'Incorrect PGM sender/receiver creation fixed'
[15:41] Steve-o mistake in commit fcfad5682ed7a7f51088
[15:42] Steve-o oops, that was december
[15:43] Steve-o fixing the windows size
[15:44] Steve-o transmit window size,
[15:46] Steve-o Windows performs really badly on RX without rate limit, TX is a lot better today
[15:46] Steve-o anyway this is the new patch for 2.1:
[15:46] Steve-o alongside merging 5.1.113 and mikko's autoconf changes
[15:47] mikko Steve-o: gmake works
[15:47] Steve-o todo for mikko: add silent rules to zeromq autoconf
[15:47] Steve-o mikko: yup, good, I think I can live with gmake only
[15:51] mikko Steve-o: cool
[15:55] pieterh Steve-o: congrats, your patch made it into 2.1 stable :-)
[15:58] Steve-o pieterh: then someone needs to push 5.1.113 and then mikko can push the autoconf changes
[15:58] mikko the autoconf stuff feels pretty solid to me
[15:58] pieterh what's involved in pushing 5.1.113 and who can do that?
[15:58] mikko pieterh: el sustrik
[15:58] pieterh you mean into 2.1?
[15:58] pieterh or into 2.2?
[15:58] mikko first to master
[15:58] pieterh that is the large patch you sent a few days ago?
[15:59] mikko did i send a large patch?
[15:59] pieterh I meant Steve-o
[15:59] mikko oh
[15:59] Steve-o i posted 5.1.110 first
[16:00] Steve-o then mikko found a Solaris x86 bug, I found a few win64 bugs, and then a significant win32 compiler 'feature'
[16:00] pieterh oookay
[16:00] mikko and i've been sending incomprehensible midnight mails to steven
[16:00] Steve-o all small one liner changes, but bumped upto 113
[16:00] mikko and he incorporated the solaris changes
[16:00] pieterh so let's think how to get this into 2.1 rather than bottlenecking el sustrik on it
[16:01] mikko it needs to go to master first i think
[16:01] pieterh there is no master
[16:01] pieterh there is a 2.2 source git, a 2.1 release git
[16:01] pieterh they all have master branches
[16:01] pieterh sorry
[16:01] mikko 2.2 source git in that case
[16:01] pieterh 2.1 and 2.2 are very very close internally
[16:01] pieterh so it's possible, still to upstream or downstream patches with minimum effort
[16:01] Steve-o is "zeromq2" 2.2?
[16:02] pieterh zeromq2 is "latest development version of 0MQ/2.x.x"
[16:02] pieterh currently at 2.2
[16:02] Steve-o so effectively trunk
[16:02] pieterh svn terminology? hey, it's 2011, c'mon...!
[16:03] Steve-o I'm on SVN and not moving in a hurry
[16:04] pieterh can we prepare a patch that feeds *all* these changes into 2.1?
[16:04] Steve-o I don't know if googlecode even supports GIT, they have some other distributed repo
[16:04] pieterh I will test the patch, we can then upstream it to sustrik
[16:04] pieterh I'll provide you with test packages for sanity checking
[16:05] pieterh sustrik: if you're around, does this sound sane?
[16:05] Steve-o googlecode has Mercurial, I'll pass on that
[16:06] pieterh mikko: how are you and Steve-o exchanging versions now?
[16:07] pieterh you have an autoconf branch on what repository?
[16:07] Steve-o here:
[16:08] pieterh ok, and does that contain OpenPGM 5.1.113 as well?
[16:08] Steve-o looks like it
[16:08] pieterh mikko: confirm?
[16:09] Steve-o I can see it here:
[16:15] mikko pieterh: sorry, slightly tied up
[16:15] mikko will be back in 10 mins
[16:15] pieterh mikko: np, I'm checking the changes you guys made so far
[16:16] mikko pieterh: majority of the changes are in
[16:17] mikko pieterh: there might be some unrelated changes in that branch as well
[16:17] pieterh so it's,, and a new OpenPGM package in foreign
[16:17] mikko yes, roughly that
[16:17] pieterh this is going into the stable 2.1 release :-)
[16:17] pieterh no hurry...
[16:17] mikko pieterh: i can create a pull request?
[16:17] mikko with the exact changes
[16:17] pieterh hmm, yes, that would be perfect
[16:18] pieterh i've cloned your repo, refreshed both master and openpgm-autoconf branches from the source master
[16:18] pieterh no conflicts, all clean
[16:19] pieterh mikko: to here, please:
[16:19] mikko does it build --with-pgm for you?
[16:19] mikko pieterh: sure
[16:19] pieterh mikko: let me assert that, 30 seconds...
[16:21] pieterh mikko: that seems to work, one or two warnings/errors
[16:21] pieterh installing `./missing'
[16:21] pieterh installing `./depcomp'
[16:21] pieterh mkdir: cannot create directory `foreign/openpgm/build-staging/config': No such file or directory
[16:21] pieterh however it completes
[16:21] pieterh and it builds... :-)
[16:22] pieterh I'm on Ubuntu 10.10 fwiw
[16:22] mikko pieterh: might be some of the changes i was trying out
[16:22] mikko pieterh: will clean up and send pull request against zeromq2-1
[16:22] pieterh ack
[16:22] pieterh afaics this is the last piece for 2.1 stable
[16:23] mikko this is a major improvement
[16:23] mikko i think
[16:23] Steve-o the autoconf in 2.1rc2 is terrible
[16:23] mikko also --with-pgm=libpgm-5.1.113~dfsg works
[16:23] mikko Steve-o: zeromq?
[16:24] Steve-o mikko: before your autoconf changes
[16:24] mikko oh, i thought that after them :D
[16:25] pieterh I'm going to rapidly double-check that 2.2 source builds on win32
[16:25] Steve-o and win64
[16:25] pieterh don't have win64... :-/
[16:25] pieterh actually, :-)
[16:26] Steve-o ok, was wondering if you can get away with just installing sdk 7.1 for the 64-bit compiler
[16:27] mikko pieterh: amazon!
[16:27] mikko ec2 has windows
[16:27] pieterh oh, I just want to see if 7b95c5920c3318935b8cd8f3591cd5c65509f819 worked
[16:30] Steve-o ok, catch you all tomorrow
[16:32] mikko see you tomorrow
[16:34] pieterh bye Steve-o
[16:45] pieterh mikko, I'll just double-check that all your changes so far work on 2.1
[16:51] private_meta pieterh: What's "EFSM" an abbreviation for?
[17:02] private_meta pieterh: second point in the first list, typo, "if no reply arrived"
[17:03] guido_g req sockets are state-bound
[17:04] guido_g so if try to recv before a send, you get this error
[17:04] guido_g *if you
[17:05] private_meta ah ok, but what does EFSM actually stand for, as an abbreviation?
[17:06] guido_g FSM := finite state machine
[17:06] guido_g E stands for error
[17:06] jfkw New to zeromq, mq's in general, planning to use zeromq for remote-sites to home office replicator/aggregator.
[17:07] jfkw Got a question about integrating pgmq (AQMP, STOMP, OpenWire) as one of the endpoints.
[17:07] jfkw "PGMQ embeds messaging directly into PostgreSQL so that committed tuples can be published to message queues via various popular messaging protocols (AMQP, STOMP, OpenWire). Supports ActiveMQ (STOMP, OpenWire) and any transport supporting AMQP."
[17:08] private_meta guido_g: so, the behavior of REQ Sockets can be viewed as a finite state machine where a reply can only come after a request, that is why it's called that?
[17:09] guido_g ZMQ_REQ
[17:09] jfkw Would the application here be to read from zeromq, and have pgmq report on successful commits, removing messages as committed?
[17:11] private_meta ah, i knew that, i was only curious about the naming
[17:11] pieterh re
[17:11] guido_g wb
[17:11] pieterh private_meta: I'll clarify what EFSM means
[17:12] pieterh jfkw: sound fine, bridging is classic way to mix different messaging technologies
[17:14] pieterh hi guido_g :-)
[17:15] guido_g pieterh: i've nothing to complain about today ,)
[17:15] pieterh me neither... weird...
[17:17] private_meta pieterh: should I tell you C guide typos (e.g. in commentaries) here or should I add that to the next patch?
[17:17] pieterh typos in the C code?
[17:18] pieterh either make an issue, or a patch, as you prefer
[17:19] private_meta It's just a typo in the commentary, no need to make an issue... and I will have another patch soon I guess, I'll just add it
[17:19] pieterh or just tell me now by irc
[17:20] private_meta lpclient.c, in the header commentary you say to start piserver, but there's no piserver, shouldn't it be lpserver?
[17:20] pieterh indeed, I renamed pi* to lp* at some point, thanks
[17:20] pieterh will fix it now
[17:22] private_meta pieterh: in the C++ folder, there still is a file called "piclient.cpp"
[17:22] pieterh mikko: fyi I've patched 0MQ/2.1 with diffs from master..openpgm-autoconf, it builds nicely
[17:22] private_meta and piqueue
[17:22] pieterh private_meta: hmm, probably in all the example folders, let me remove all those then
[17:22] pieterh thanks
[17:23] private_meta yes, they are in least one other example folder as well
[17:23] pieterh these stubs get generated automatically
[17:23] private_meta They weren't deleted at rename properlyß
[17:23] private_meta ?
[17:23] private_meta Well, not important
[17:24] pieterh private_meta: when someone builds a tool that lets me build the Guide, I'll use it... :-)
[17:24] pieterh until then, it's an artistic process...
[17:24] private_meta pieterh: I wasn't complaining ;)
[17:25] pieterh nah, I know, I meant some things just require manual work
[17:25] pieterh they're gone now...
[17:25] pieterh the hard thing isn't doing the work, it's just realizing it needs done
[17:25] pieterh so thanks :-)
[17:26] mikko pieterh: nice!
[17:26] mikko pieterh: i will try to make sure that the changes are correct
[17:26] pieterh mikko: I'll reset it all now and wait for your pull request
[17:26] mikko i'll try today
[17:26] pieterh after that I'll post a test .tar.gz so we can double-check it *really* works
[17:26] mikko been a crazy day
[17:26] pieterh :-)
[17:27] private_meta pieterh: do you use Wikidot as is?
[17:27] pieterh private_meta: I spent several years making Wikidot a lot nicer to use
[17:27] pieterh most of that work is on
[17:27] jfkw Is there an overview of zeromq built-in support for communicating with any of (AMQP, STOMP, OpenWire)? Most search results discuss 'vs.' not 'with'.
[17:27] pieterh jfkw: there is no such support
[17:28] pieterh "feel free to submit a patch" is the motto of this community
[17:28] private_meta pieterh: just thought it might be nice if you could switch to a different language viewing of a guide example IN the example page without github redirect
[17:28] private_meta but I don't know if that's hard to do
[17:28] pieterh private_meta: ... it can be done
[17:28] private_meta like, click on C++ and the example viewed in there is C++ instead of C
[17:29] pieterh but it needs translation of the examples to be more complete
[17:29] pieterh there are some tricks that can be used...
[17:29] private_meta hmm... You already mark the examples translated by printing the language binding name in bold, so only allowing the bold ones to be selected might be a solution there
[17:29] private_meta but, it's just a nice to have
[17:29] pieterh it's not that simple...
[17:30] pieterh first problem is that currently the C code is included inline in the page
[17:30] pieterh including every language would make the pages (much) too large
[17:30] pieterh so it means moving examples to their own page
[17:31] private_meta Not necessarily
[17:31] pieterh that could be nice anyhow, it would avoid githubbing
[17:31] pieterh yes, necessarily
[17:31] private_meta Using Javascript you could replace text in certain places
[17:31] pieterh I'm not even going to think about writing Javascript
[17:32] private_meta Well, the Page is already using Javascript in the Language hide/show button
[17:33] private_meta The advantage of using js there I guess would be to avoid having to reload the page
[17:33] pieterh Just because you cross a river on a bridge that someone built does not mean you want to build bridges
[17:33] private_meta haha
[17:33] pieterh one of the *great* benefits of Wikidot is precisely that I do not write HTML or JS
[17:33] pieterh I write text, which magically appears
[17:34] pieterh second problem is just visualization, Wikidot has a limited set of options
[17:34] pieterh collapse/hide, hyperlink
[17:34] private_meta So it would be changing a core feature
[17:36] lt_schmidt_jr Should I expect to need a separate zmq libary compilation for AMD x64 as opposed to intel?
[17:36] pieterh private_meta: if it takes more than 1 hour, it's out of scope
[17:36] pieterh lt_schmidt_jr: don't think so, depends on the compiler
[17:37] lt_schmidt_jr pieterh: thank you, I will give it a whirl
[17:38] pieterh private_meta: what I'll think about is publishing the code examples on their own pages, so they are easier to look at
[17:38] pieterh and then at least showing those in new tabs when you click on them
[17:38] pieterh then it's possible to do collapsible blocks that include each language
[17:42] private_meta hmm
[17:42] private_meta I removed the git repo and made a new clone and the new updates weren't in there :/
[17:44] private_meta pieterh: so WHAT of my changes did you put into the repository?
[17:45] pieterh private_meta: all of them, maybe I forgot to push, let me check
[17:45] pieterh private_meta:
[17:46] pieterh all done, 3 hours ago
[17:46] pieterh I'll make a fresh clone to double-check
[17:46] private_meta pieterh: according to my patch file: 20 files changed, 217 insertions(+), 166 deletions(-)
[17:47] private_meta According to your commit, Showing 2 changed files with 8 additions and 10 deletions.
[17:47] pieterh ah, indeed... :-(
[17:48] pieterh <insert expletive>
[17:48] pieterh give me 4 minutes...
[17:48] private_meta sure, take your time
[17:50] pieterh private_meta: for some reason the patches to lpclient.c and lpserver.c came with ^M line endings
[17:51] pieterh you edited those two files on Windows and then copied them to your virtual machine?
[17:51] private_meta hmm...
[17:51] pieterh I just see that now, in vim
[17:51] pieterh so your patch failed on those two files, I fixed them, committed them, and the rest were lost
[17:51] private_meta I don't know
[17:51] private_meta might be possible
[17:52] pieterh probably some feature of your Eclipse gui :-)
[17:52] pieterh anyhow, that's the autopsy
[17:52] private_meta shouldn't have happenend
[17:52] private_meta happened
[17:52] pieterh Windows should never have happened, indeed
[17:52] pieterh we live with the consequences...
[17:53] pieterh the illegitimate child of CP/M and too much weed
[17:54] pieterh private_meta: ok, re-clone now, it'll be good
[17:55] private_meta k
[17:55] private_meta good
[18:37] Eruquen how would I translate socklisten; while (1) { sockaccept; fork, work and communicate with client; } to zmq? further communication between clients and workers could consist of a single reply or a stream of multiple replies, sometimes requiring input from clients. clients could disconnect along the way and reconnect later. no data should be lost.
[18:39] pieterh Eruquen: have you read the Guide yet?
[18:42] Eruquen not completely.. I'm working through the patterns right now. it all makes sense but it also makes my head explode
[18:43] pieterh take your time
[19:07] Guthur would polling on an inproc socket use similar mechanisms in the 0MQ engine?
[19:15] Guthur ah ha
[19:15] Guthur I think I may have isolated the problem with clrzmq2 on Mono on linux
[19:16] Guthur it would appear to be something to do with Mono's implementation of threads
[19:16] Guthur remove the threading stuff and there is no exceptions
[19:23] devinus can somebody explain to me the difference between zeromq and rabbitmq?
[19:25] cremes pieterh: just saw your note on the ML about critical issues for the next release
[19:25] cremes
[19:26] cremes looks like another user was able to confirm on a different linux (ubuntu)
[19:26] cremes i'll do what i can to help get this fixed
[20:01] Guthur devinus,
[20:02] devinus Guthur: thanks
[21:33] Guthur binding authors, any recommendation on dealing with EINTR...
[21:34] Guthur add logic to the binding code, or leave it to the user to catch and deal with
[22:15] lt_schmidt_jr Hi, what version of Visual Studio is expected to work for ZMQ compilation?
[22:15] lt_schmidt_jr Should Visual Studio 2008 suffice?
[22:17] Guthur lt_schmidt_jr, I think it should be
[22:17] lt_schmidt_jr thank you
[22:17] Guthur the solution file says version 10
[22:17] Guthur with is 2008
[22:17] lt_schmidt_jr ah, great
[22:17] Guthur I think it was created by visual studio 2008 express
[22:18] Guthur studio/c++
[22:18] lt_schmidt_jr ah, so it should work with the express version, excellent