IRC Log


Monday May 23, 2011

[Time] NameMessage
[03:59] CIA-31 pyzmq: 03MinRK 07gh-pages * r82d0345 10/ (39 files in 4 dirs): 2.1.7 - http://bit.ly/kJKlaz
[06:33] michelp sneak, according to the guide, the subscriber does the flitering
[06:33] michelp filtering
[06:34] michelp so all messages go to all subscribers and then they get filtered
[07:47] sneak :(
[10:12] asmodai Opening the zeromq 2.1.7 solution file with VC++ 2008 gives me errors for not being able to load inproc_lat\inproc_lat.vcproj and inproc_thr\inproc_htr.vcproj - I see that there are still files in perf that correspond to these. Did the vcproj files get omitted from the .zip or?
[10:15] pieterh asmodai: could be
[10:16] asmodai The 2.0.11 zip has the files.
[10:16] asmodai inproc is still needed in 2.1 I assume?
[10:16] pieterh yes, sure
[10:16] pieterh asmodai: if you find the cause, let me know and I'll fix the distro
[10:22] asmodai looks like they got (re)added beginning of April
[10:23] asmodai so if 2.1.7 was cut before that time, it makes sense they were cut from the release.
[10:23] asmodai They're in git now at least.
[10:23] asmodai Oh, but 2.1.7 is from May, curious why they wouldn't be copied along.
[10:24] asmodai pieterh: How does the release procedure work, you use configure to cut tarballs and zipballs?
[10:25] pieterh asmodai: yes, make dist
[10:31] pieterh asmodai: I need to ask Mikko how configure decides what files to include... it's not all obvious to me
[10:33] pieterh asmodai: would you create an issue for this?
[10:33] asmodai Been a while for me since I last messed with autoconf and its ilk.
[10:33] asmodai pieterh: Sure, geen probleem.
[10:34] pieterh geen probleem :-)
[10:34] pieterh if you have any idea whatsoever what the cause is, we can fix it
[10:34] asmodai https://github.com/zeromq/zeromq2-1/issues I take it?
[10:35] pieterh asmodai: that should be disabled, we moved to Jira
[10:35] pieterh http://zeromq.jira.com
[10:35] asmodai I can create a new issue there, so doesn't seem to be disabled :S
[10:36] pieterh ah, hang on, yes, you can create it there if you like
[10:36] asmodai Which do you prefer? :)
[10:36] asmodai ah
[10:36] pieterh in the jira we still need to create a component for 2.1 so we can put issues into uit
[10:36] pieterh *it
[10:36] pieterh i don't mind where issues go so long as we have them somewhere
[10:36] mikko and get atlassian to fix issues ordering
[10:37] asmodai Well, centralised helps (also for the reporters). :)
[10:37] pieterh yes
[10:37] mikko i noticed that in the data the top-down order was not followed
[10:37] pieterh mikko!
[10:37] pieterh hi
[10:37] mikko even though it's supposed to
[10:37] mikko not sure if they want to reimport
[10:37] asmodai Giving the nickname, I guess I should be saying "terve mikko"
[10:38] pieterh mikko: so what do we do with the corrupted issues?
[10:38] mikko pieterh: waiting for atlassian to respond
[10:38] pieterh hmm, ok
[10:38] mikko the comments are under right issues
[10:38] mikko but the issues themselves are numbered wrong
[10:38] mikko the issues are a CSV import
[10:38] pieterh mikko: any idea why specific files would be included / excluded from the configure 'make dist'?
[10:38] mikko and i double and triple checked the data
[10:39] mikko pieterh: they are not listed in DIST_FILES or includes or similar
[10:39] mikko pieterh: what kind of files?
[10:39] pieterh vcproj files in builds/msvc
[10:39] mikko they need to be added manually as dist files
[10:41] pieterh mysterious why some would get added, and others not, in the same tree
[10:41] asmodai https://github.com/zeromq/zeromq2-1/issues/21 ^^
[10:41] pieterh asmodai: bedankt
[10:41] asmodai Graag gedaan ^^
[10:42] asmodai Registering issues is always good to keep track of stuff. Less clutter on your mind.
[10:42] pieterh asmodai: yes... you are welcome to track this issue and make sure we solve it, and test the fix when it's done
[10:42] asmodai Am trying to see if ZeroMQ might be applicable for an app I am working on at work.
[10:42] asmodai Oh, I might even be able to toss you a patch. Just been a while since I touched autoconf and friends.
[10:42] pieterh :-)
[10:43] asmodai Seriously? Mmm, that sucks.
[10:44] pieterh github do not 'like email'... idiots
[10:44] asmodai So the only way is the notification thinghy at the top of the website to inform you?
[10:44] pieterh yes
[10:44] asmodai Ughn, that's bad.
[10:44] pieterh or, RSS and then some crappy rss-to-email gateway
[10:45] pieterh this is the main reason for switching to jira
[10:45] asmodai I never use RSS, still haven't found a decent client to manage RSS in a way that works for me.
[10:45] asmodai Yeah, we use Jira at work. Well, my colleagues do. For my own stuff and other department projects I put up Trac.
[10:47] asmodai pieterh: Were you the one doing the ZMQ talk at the PHP conf last weekend btw?
[10:47] mikko asmodai: ian barber
[10:47] pieterh asmodai: that was Ian
[10:47] mikko pieterh: hopefully atlassian will get back soonish regarding the issues
[10:47] mikko are issues going into jira atm?
[10:47] asmodai Ah ok, my colleague attended, he's a PHP coder (I'm the Python guy), and he was quite impressed.
[10:47] pieterh mikko: what's the fallback plan?
[10:47] mikko or is it still private?
[10:47] pieterh could we try to re-import the issues?
[10:48] pieterh the Jira is open, public, already
[10:48] mikko hmm, maybe we should set to private
[10:48] pieterh I'm assuming people are still putting stuff in the github tracker, but haven't checked...
[10:49] mikko github tracker is closed atm
[10:49] pieterh ah, great
[10:49] pieterh it's closed
[10:49] pieterh goodo
[10:49] mikko setting jira to private for now as well
[10:49] pieterh hang on.. that won't work... where will people log issues?
[10:49] mikko well, if we keep jira open we just need to remember which issues are from github
[10:49] pieterh tbh I don't really care if a couple of old issues are corrupted, so long as it's not general
[10:49] mikko i think 216 is last one from github
[10:50] mikko let me see what atlassian responds
[10:50] pieterh ok
[10:50] pieterh if we decide to abandon jira, I can create an issue tracker built-in to the zeromq wiki
[10:51] mikko it should be fine
[10:51] mikko LIBZMQ-1 - LIBZMQ-215 are the ones that need rearranging
[10:51] pieterh hmm
[10:52] pieterh we can't leave it locked too long, people will get confused
[10:53] mikko https://support.atlassian.com/browse/JST-19476
[10:53] mikko this is the issue with atlassian
[10:58] s0undt3ch hello ppl, is thatch the nick of the creator of salt?
[10:58] s0undt3ch *irc nick
[10:58] asmodai Hey there s0undt3ch :)
[10:59] s0undt3ch asmodai: hello there!
[10:59] asmodai s0undt3ch: I meet you in the strangest of places ;)
[10:59] s0undt3ch asmodai: yeah! Life evolves :)
[11:00] s0undt3ch comon interests....
[11:00] s0undt3ch asmodai: what are you using zmq for?
[11:01] asmodai Well, came across it a little while, looked at it, but thought it might not be appropriate for the research project I am working on.
[11:01] asmodai Colleague went to a talk last weekend, mentioned some things and now I am testing it out.
[11:01] s0undt3ch asmodai: have I ever talked to you about an audio monitoring tool?
[11:02] asmodai I think I have caught flards of it over on the other channel(s)
[11:02] s0undt3ch asmodai: it's a project initially started with twisted. Now beeing stuck at the start of it since it'll be a re-write and it should be better
[11:03] s0undt3ch zmq will most surely be used to talk between processes.
[11:03] asmodai Funny that, my project had Twisted as middleware as well until I tore it out because the code readability went down the hill fast.
[11:03] asmodai Then started writing my own threaded-networking stack and protocol.
[11:03] s0undt3ch recently saw a thread about message encription, salt project, that might also be used
[11:03] asmodai Now seeing if maybe zmq can replace that. :)
[11:03] s0undt3ch asmodai: gevent?
[11:04] s0undt3ch ie, why not
[11:04] asmodai Mmm, gevent might even work as well.
[11:04] s0undt3ch my new approach started using eventlet but then switched to gevent
[11:04] asmodai Problem with Twisted dominating python networking is that it's hard to find alternatives, examples and such with Google searches. :(
[11:05] s0undt3ch indeed
[11:05] asmodai Apparently I am one of the few who thinks Twisted's API is ugly.
[11:05] s0undt3ch you're not alone
[11:05] asmodai yay! :D
[11:06] asmodai s0undt3ch: odd that I missed gevent
[11:06] s0undt3ch asmodai: though sometimes one seems forced to use it since it covers many aspects of networking stuff
[11:06] s0undt3ch web, ssh, ....
[11:07] s0undt3ch asmodai: I've becode acostumed working with twisted becase of my contributions to deluge, still hate it though
[11:07] asmodai In my case I have a 1 server, multiple client setup with TCP that has the server send a message to all, clients all start doing stuff, one client sends something back to the server, server sends a stop to all clients. And then a new round starts. Timing is critical (as much as a network allows).
[11:08] asmodai s0undt3ch: The deferreds have scarred me :(
[11:09] s0undt3ch asmodai: although you keep not liking it. You get acostumed to it. I found myself looking to try and do some deferred stuff with gevent. go figure
[11:09] asmodai heh
[11:11] asmodai woot
[11:11] asmodai 337.226 pyzmq-2.1.7.win32.zip
[11:11] asmodai there we go
[11:12] s0undt3ch asmodai: https://github.com/thatch45/salt, http://blip.tv/thomas-s-hatch/salt-0-8-7-presentation-5180182 ineteresting project
[11:12] s0undt3ch errr
[11:12] s0undt3ch *interesting
[11:13] asmodai Sort of rsh, but way more advanced and uptodate with today's internet/systems?
[12:08] s0undt3ch asmodai: the encription part is what interests me ;)
[12:09] s0undt3ch th: are you thatch, Tomas S Hatch?
[12:09] asmodai His whois says Tobias Hintze
[12:10] s0undt3ch asmodai: yeah, forgot whois :)
[12:10] s0undt3ch I'll idle
[12:13] th s0undt3ch: sorry, i'm not. asmodai is right.
[12:14] pieterh s0undt3ch: the encryption part is neat
[12:14] pieterh key distribution over req-rep, then block encryption over pub-sub
[13:31] mato pieterh: hi
[13:32] pieterh hi mato
[13:32] pieterh how's up?
[13:32] mato pieterh: i'm working with atlassian on setting up the email notifications
[13:32] pieterh ah, nice
[13:32] pieterh ok, what can I do to help?
[13:32] mato pieterh: is it ok if i set up the necessary mailbox on zeromq.org?
[13:32] pieterh sure, of course
[13:32] pieterh you know your way
[13:33] mato pieterh: i think i have all the bits i need, yes
[13:33] pieterh i'm actually halfway across the atlantic with superfast free internet...
[13:33] mato am still waiting to see what happens with the import data though...
[13:33] mato pieterh: seriously?
[13:33] pieterh nah, in fact I missed my flight... :-(
[13:33] asmodai Ouch :(
[13:33] mato ouch
[13:33] pieterh some story about expired esta applications...
[13:33] asmodai Be glad that Iceland eruption is not as bad as it could've been.
[13:33] mato oh, that crap
[13:34] asmodai Grimsvotn could've been worse for air traffic.
[13:34] mato the "it's not a visa, honest"
[13:34] pieterh yeah, exactly
[13:34] mato is sustrik around?
[13:34] pieterh he was on email earlier
[13:34] pieterh disappeared, mysteriously, around 9am... strange stuff
[13:34] mato ok, maybe he's lost his phone or something
[13:35] mato been trying to get hold of him since the weekend, no signal
[13:35] pieterh hmm, he's been online randomly
[13:35] mato ok. i'll catch him when he shows up
[13:35] mato pieterh: interesting issue you asked some guy to report, fork() with libzmq
[13:36] pieterh mato: yeah, kind of a strange one
[13:36] mato i never even thought of it, anyway i think i know what needs to be done
[13:36] pieterh I think I figured out a way
[13:36] mato it's nastly because fork() and threads and sockets is just bad
[13:36] pieterh yes
[13:36] mato there is a way, check out my comment on the issue
[13:36] mato https://zeromq.jira.com/browse/LIBZMQ-218
[13:37] mato just not entirely straightforward to do portably
[13:37] asmodai Heh, I remember the look on someone's face here when I mentioned that Windows has no native fork()-like semantics available.
[13:37] mato actually that's good in this case since it means windows developers won't run into this particular problem :-)
[13:38] pieterh mato: what does CLOEXEC do?
[13:38] mato pieterh: what it says, kernel makes socket go away on exec()
[13:38] asmodai mato: yeah, everything's a thread, definitely helps on some accounts.
[13:39] pieterh ok... I was going to suggest to Jiri to use an external process monitor in bash
[13:39] pieterh his problem is, afaics, that workers tend to crash randomly
[13:39] mato pieterh: :-) well, yeah, you could do that too, but this is a problem for anyone who wants to fork()/exec() anything out of a zmq process
[13:40] pieterh well, process management was on my list of things to forward port from SFL into librandom
[13:40] pieterh it's extremely useful if done properly
[13:40] mato yes, but the problem is at the moment it just won't work
[13:40] pieterh indeed
[13:40] asmodai But wait, the semantics for fork() and exec() are quite different. Fork() duplicates whereas exec() replaces the executable with another one. Can't expect sockets to stay open in the latter case.
[13:41] asmodai Or am I missing something obvious here?
[13:41] mato asmodai: 'cept that they do, thems the original UNIX semantics
[13:41] pieterh asmodai: yeah, but in POSIX you always fork and then exec, but handles aren't closed by default by the exec
[13:41] asmodai Ah
[13:41] asmodai Right, ok
[13:41] asmodai Forgot that typical use case
[13:41] pieterh it'd be possible to fork/exec before opening any 0MQ sockets
[13:42] pieterh but in this case the process creating child processes needs 0MQ communication to the outside world
[13:42] mato yes, but in Jiri's case he wants to spawn the process after receiving some external command
[13:42] mato yes
[13:42] pieterh yeah
[13:42] mato anyway, it's a common use case, worth fixing
[13:42] pieterh mos def
[13:42] mato at least for those platforms that have CLOEXEC
[13:42] mikko mato: https://support.atlassian.com/browse/JST-19476
[13:42] mikko i think you can access that
[13:42] mikko if not, let me know
[13:43] mato mikko: can't, i think you have to add me in as collaborator or something
[13:43] asmodai Well, FreeBSD (and I guess the other BSDs and Mac OS X) all have FD_CLOEXEC in fcntl.h at least
[13:44] pieterh mato: the look & feel for the zeromq jira is really nice
[13:44] mato yeah, so an autoconf test needs to check for it and then libzmq needs to use it for all sockets
[13:44] mato pieterh: thx, it's just the default but i mucked with the colors
[13:44] mikko mato: have you got login to atlassian jira?
[13:44] mato mikko: yes, mato@kotelna.sk
[13:45] mikko Security Level: Reporter and Developers (Only the reporter of the issue and Atlassian can see it.)
[13:45] mikko i see that
[13:45] mikko i can't change security level there
[13:46] mikko i can add you as cc from my inboc
[13:46] mikko inbox*
[13:47] mikko can you verify forwarding?
[13:47] mato aha, yeah, hang on
[13:48] mato done
[13:48] mikko do you want the previous ones as well or only new ones?
[13:49] mato all of them i guess, though i'd much rather just have access to that issue :-)
[13:49] mato actually, no
[13:49] mato just the new ones
[13:49] mato all i need to know is when it gets fixed :-)
[13:51] mikko did you get email?
[13:52] mikko i found the cc field
[13:52] fredix hi
[13:53] pieterh mato: do you have a moment? random architecture question
[13:53] mato pieterh: yes?
[13:53] pieterh so, I'm making a virtual transport later, vtx
[13:53] pieterh it kind of works with udp, no difficulties
[13:53] fredix is there a example to show how a client can save on disc a message to keep a persistance ? maybe through your Paranoid Pirate Protocol ?
[13:53] pieterh now the idea is to allow pluggable drivers for random transports
[13:53] pieterh fredix_: look at Ch4, specifically Titanic
[13:54] pieterh so, the model is an inproc bridge
[13:54] pieterh application gets a pair inproc socket, the other end connects to the driver
[13:54] mato mikko: got it, thx
[13:54] mikko mato: you should now get updates
[13:54] mato mikko: great, thanks
[13:55] bram hey everyone, very silly and short question: I have zmq on windows running just fine doing what it's supposed to do, but... I can't terminate none of the while True: loops with ctrl-c...
[13:55] pieterh I have two options... either restrict bind/connect to one transport, and so driver can recv/send to pipe directly
[13:55] fredix pieterh, is there an example code ?
[13:55] pieterh or else, allow multiple connects/binds but then have to redistribute via an intermediary layer
[13:55] mikko im going to san diego on thursday so if they cant resolve it before that ill give someone my atlassian account
[13:55] pieterh fredix_: yes, lots of it, please read the Guide text...
[13:55] bram i.e. each time I have to go into the process manager to kill the process
[13:55] mikko bram__: python?
[13:55] fredix pieterh, ok thanks
[13:55] bram mikko: um, yes, sorry :)
[13:55] mikko bram__: i think python is eating your signal
[13:56] asmodai try:
[13:56] mikko i think there was an issue regarding this in pyzmq
[13:56] asmodai while True:
[13:56] asmodai except KeyboardInterrupt:
[13:56] asmodai Ought to work, no?
[13:56] bram I tried adding a try/catch KeyboardException
[13:56] bram no such luck
[13:56] asmodai ah yea
[13:56] pieterh hmm, even in C I need to do my own Ctrl-C handling
[13:56] bram something inside the recieve is eatng the ctrl-c
[13:56] mikko bram__: have you set ZMQ_LINGER value?
[13:56] asmodai Could be a overly generic except catching all raises.
[13:57] mikko there are two places where things can hang
[13:57] mato pieterh: well, i have no opinion really i think. for a pluggable transport layer i would look at formalising the interface inside libzmq.
[13:57] mikko socket trying to send messages but can't (LINGER = 0)
[13:57] bram mikko: I'm a real beginner... :) let me look up where/how to set that
[13:57] mikko context waiting for sockets to be closed
[13:57] pieterh mato: I'd like to do this inside libzmq but want to kind of develop a model sustrik can look at
[13:58] mato pieterh: if you do it inside libzmq then there's no forwarding to speak of
[13:58] pieterh mikko: it's unlikely to be the linger...
[13:58] mato pieterh: you should just be able to create a plugin interface for transports. quite a bit of work but definitely possible.
[13:58] pieterh mato: yeah but C++ is not my thing
[13:58] mato pieterh: too bad :-)
[13:58] mikko yet :)
[13:58] pieterh well, not really, it works fine externally
[13:59] asmodai No sane person should be allowed to do C++ :P
[13:59] mato pieterh: anyway, what's the motivation for this? there aren't that many transports which are actually missing...
[13:59] pieterh mato: two or three motivations
[13:59] pieterh a. I need udp broadcast / unicast for the name service
[13:59] pieterh b. I want a space to explore with other transports, e.g. http, tls, etc.
[13:59] bram mikko: setting linger to zero, no luck...
[13:59] mikko i think UDT makes more sense in the context of zeromq, no?
[13:59] pieterh c. I want to demo the concept of pluggable transports for sustrik
[13:59] pieterh UDT?
[14:00] pieterh not for a name service...
[14:00] pieterh for any kind of req-rep, yes
[14:00] mikko http://udt.sourceforge.net/
[14:00] mikko reliable udp
[14:00] pieterh sure, e.g.
[14:00] pieterh there are lots of interesting transports to play with
[14:00] mato pieterh: well, personally i would start with creating a patch for a UDP transport to libzmq. then, take that are try and formalise the internal interfaces
[14:00] pieterh mato: I tried that, failed
[14:00] mato pieterh: :-)
[14:00] pieterh also, the problem is defining sane patterns for each protocol
[14:00] pieterh this needs experimental space
[14:01] mato pieterh: hire someone with more C++-fu :-)
[14:01] pieterh not 'patch the core lib'
[14:01] pieterh no, that's not an answer
[14:01] pieterh ok, np, I'll continue my merry way :-)
[14:01] mato pieterh: no, but if you create a plugin interface for the core lib then you could do things like dynamically load transports, etc.
[14:01] pieterh yes, I know
[14:01] pieterh but it's really difficult semantically
[14:01] mato anyhow, just do whatever you like :-)
[14:02] bram any other people have some ideas about stopping 0mq from eatin' my ctrl-C's ?
[14:02] pieterh :-) vote: performance or elegance?
[14:02] pieterh bram__: can you catch signals in Python?
[14:03] bram pieterh: I tried surrounding the send with a try / catch KeyboardInterrupt (which is a ctrl-C) but I think it's cought somewhere deeper inside 0mq and ignored
[14:03] mato pieterh: either is fine for a PoC , i just think the right thing to do is have it in-core
[14:03] bram s/cought/caught
[14:03] pieterh bram__: well, you can check the Python code and ask the authors
[14:03] mato bram__: what's your libzmq version?
[14:04] pieterh what I know from the C API is if I don't explicitly trap sigint and check for it in my loops, I can't kill my programs
[14:04] bram mato: latest msi from https://github.com/zeromq/pyzmq/downloads
[14:04] bram so, ... 2.7.1
[14:04] mato bram__: hmm, guess you'll have to ask the python people...
[14:05] bram there wouldn't happen to be a pyzeromq channel now would there? :)
[14:06] mato :-)
[14:06] pieterh bram__: they usually hang out here, but mostly live on the USA west coast
[14:06] bram aw chucks
[14:06] bram oh well
[14:06] bram meanwhile I'll just kill them in my trusty process explorer
[14:06] pieterh I did a quick scan of the pyzmq code and didn't see any signal handling
[14:07] bram thx for the help offered guys
[14:08] bram btw... https://github.com/zeromq/pyzmq/issues/100
[14:09] bram (just found that, I'll add my voice to that issue! bye!)
[14:13] pieterh bram__: ah, I remember something about Windows
[14:13] pieterh Ctrl-C handling is weird
[14:13] pieterh I'll post a reply to that issue, if I can find the right answer
[14:35] pieterh mato: sustrik is online, fwiw
[14:36] sustrik pieterh: hi
[14:36] pieterh hi sustrik :)
[14:36] sustrik mato wants to move the servers in BTS on monday
[14:36] sustrik can you let the guys know?
[14:36] pieterh ok, I'll let the guys know
[14:36] sustrik thanks
[14:36] mato pieterh: yes, i know
[14:37] mato pieterh: put me in Cc: so that i know who to talk to
[14:37] pieterh mato: they're usually there around 10am, I'll cc you of course
[16:03] benoitc ?
[16:03] benoitc err
[16:04] pieterh benoitc: yeah, it happens...
[16:04] benoitc :)
[17:37] sustrik pieterh: there?
[18:07] sakella hi, i have a q. Is there a way to specify the folder for swap files?
[18:32] CIA-31 libzmq: 03Martin Sustrik 07bidi-pipes * r0f6f727 10/ (29 files in 2 dirs): Move the pipe termination code to socket_base_t ...
[18:58] pieterh sustrik: re
[18:58] pieterh I fixed it
[19:36] CIA-31 libzmq: 03Fabien Ninoles 07bidi-pipes * r71ac91b 10/ (src/array.hpp src/pipe.hpp src/socket_base.hpp): Add multi-array support to array_item_t. ...
[19:38] CIA-31 libzmq: 03Martin Sustrik 07bidi-pipes * r3d4203d 10/ AUTHORS : Fabien Ninoles added to the AUTHORS file ...
[19:40] michelp arrays? that sound interesting...
[20:01] pieterh sustrik: ping?
[20:54] sustrik pieterh: pong
[20:54] pieterh np, found the answer
[20:54] sustrik :)
[20:55] pieterh was wondering how openpgm integrated into zmq's epoll/select
[20:55] pieterh I saw that it provides fds to work with
[20:56] pieterh hmm, I think I've cracked 0MQ sockets over UDP
[20:57] sustrik yes, it exposes it's internal fds
[20:58] sustrik similar to ZMQ_FD
[20:58] sustrik udp: how does it work finally?
[20:58] pieterh hmm, pretty nice in fact
[20:58] pieterh kind of like an assembler version of 0MQ in some ways
[20:59] pieterh same relaxed attitude to connections for instance
[20:59] pieterh anyhow, it seems possible to recreate pub/sub/rep/req/push/pull semantics on top of UDP
[20:59] pieterh needs a micro protocol on top
[20:59] sustrik without initial handshake?
[20:59] pieterh needs an initial handshake, yes
[21:00] pieterh to set-up addressing
[21:00] sustrik ack
[21:00] pieterh e.g. subscriber has to tell publisher its address
[21:00] pieterh nice thing, it works like zmq, i.e. retry until publisher acks
[21:00] pieterh dropped packets is just the same as publisher absent
[21:00] sustrik so, what you have is connection based unreliable transport, right?
[21:00] pieterh :-) yes
[21:01] pieterh what I will have, don't have it yet
[21:01] sustrik have a look at DCCP
[21:01] sustrik it's exactly that
[21:01] sustrik and it's in linux kernel
[21:01] pieterh problem with UDT for instance is that it doesn't expose FDs
[21:01] pieterh you miss the point, it's about 10 lines of code to make this connection layer
[21:01] pieterh but I will look at DCCP, yes
[21:02] sustrik DCCP is real protocol
[21:02] sustrik you don't have things like path MTU discovery or congestion control with raw UDP
[21:02] pieterh for many apps, you don't need that
[21:03] pieterh but sure, the point here is to create space for experimenting with other protocols
[21:03] sustrik sure
[21:03] pieterh the thing that is hardest is mapping 0MQ socket semantics
[21:03] pieterh that is, I think, now solved
[21:03] pieterh 'hardest' is very relative here :-)
[21:04] sustrik well, the patterns were deliberately designed to allow this kind of thing
[21:04] sustrik ie. interjecting intermediate nodes
[21:04] pieterh ok, I'll take DCCP as a second transport use case
[21:04] sustrik so it should not be hard
[21:05] sustrik SCTP is an option as well
[21:06] pieterh yes
[21:06] pieterh I'm not sure what value SCTP can add, yet
[21:06] sustrik heartbeats?
[21:06] pieterh well...
[21:07] pieterh actually HTTP is the one I'm really after
[21:07] pieterh and HTTPS
[21:07] sustrik then go for it
[21:07] sustrik more usefult than either DCCP or SCTP
[21:08] pieterh yeah, I have all the code for a web server somewhere here... :)
[21:12] johnm1234 HTTP/HTTPS and SSL/TLS would be Very Nice to Have(™). :-)
[21:15] mikko http is kinda possible with mongrel2
[21:21] johnm1234 In my case, it's as much about securing outgoing connections as much as incoming.
[21:21] pieterh mikko: yeah, I know
[21:22] pieterh but I think I want more control over how the patterns map to HTTP
[21:22] mikko maybe you can rip some code from httpush
[21:22] mikko it's a small http/zeromq bridge i wrote some time ago
[21:22] mikko uses libevent
[21:23] mikko https://github.com/mkoppanen/httpush
[21:23] pieterh mikko: I actually have all the code for a web server somewhere... spent several years of my life writing them
[21:23] pieterh but I think I'd take mongrel2's parser
[21:24] mikko yeah, i've heard the mongrel parser is pretty decent
[21:25] pieterh g'nite all
[21:25] johnm1234 You might also want to check out Ryan Dahl's as it's built to be bidirectional and interruptible: https://github.com/ry/http-parser
[21:26] pieterh johnm1234: nice... is it fast?
[21:26] johnm1234 It's pretty fast and works really well with event loop based apps.
[21:27] pieterh it looks nice, yes, I'll give it a whirl
[21:27] johnm1234 You control all of the allocation yourself, too.
[23:31] CIA-31 pyzmq: 03MinRK 07v2.1.7.1 * r695316b 10/ setup.py : comply with MSI restricted version number (+6 more commits...) - http://bit.ly/iLMPAS
[23:32] CIA-31 pyzmq: 03MinRK 07master * re68c5f6 10/ (zmq/core/constants.pyx zmq/utils/zmq_compat.h): set constants base to 2.1.0, up from 2.0.10 - http://bit.ly/kbiTTf
[23:32] CIA-31 pyzmq: 03MinRK 07master * r65d07f3 10/ (4 files in 2 dirs): match getsockopt(ZMQ_FD) type to fd_t ...
[23:32] CIA-31 pyzmq: 03MinRK 07master * r5f2784a 10/ zmq/tests/test_socket.py : more informative errors in test_int_sockopts - http://bit.ly/mnjBOD
[23:32] CIA-31 pyzmq: 03MinRK 07master * r3f0a7e3 10/ (5 files in 3 dirs): Merge branch 'win64' - http://bit.ly/lAdKMF
[23:32] CIA-31 pyzmq: 03MinRK 07master * rd504e6d 10/ README.rst : update readme for 2.1.7.1 / win64 - http://bit.ly/k7g6U9
[23:32] CIA-31 pyzmq: 03MinRK 072.1.7.1 * r1fc9447 10/ zmq/core/version.pyx : version 2.1.7.1 - http://bit.ly/k4TmMW
[23:32] CIA-31 pyzmq: 03MinRK 072.1.7.1 * r7d653b1 10/ setup.py : comply with MSI restricted version number - http://bit.ly/iLMPAS
[23:43] veritos Holy lots-of-checkins, Batman!