Wednesday August 4, 2010

[Time] NameMessage
[02:02] ateTate From experiementing w/ zeromq today, it seems like if a request socket does not successfully recieve after sending, the message is not sent. Why is that?
[12:45] CIA-19 zeromq2: 03Pieter Hintjens 07master * r11a410b 10/ (11 files in 2 dirs):
[12:45] CIA-19 zeromq2: Renamed ZMQ_UPSTREAM to ZMQ_PULL, and ZMQ_DOWNSTREAM to ZMQ_PUSH. Left the old
[12:45] CIA-19 zeromq2: definitions as aliases, to be removed in release 3.0. Also renamed the source
[12:45] CIA-19 zeromq2: files implementing these two socket types. This change does not break existing
[12:45] CIA-19 zeromq2: applications nor bindings, but allows us to fix the documentation and user guide
[12:45] CIA-19 zeromq2: now, rather than keeping the old (confusing) names. -
[12:45] CIA-19 zeromq2: 03Pieter Hintjens 07master * rf575f25 10/ doc/zmq_device.txt : Added man page for the zmq_device method -
[12:45] CIA-19 zeromq2: 03Pieter Hintjens 07master * r6cd9030 10/ doc/ : Added clean target that deletes generated man pages -
[12:45] CIA-19 zeromq2: 03Pieter Hintjens 07master * r77a3c36 10/ (33 files):
[12:45] CIA-19 zeromq2: Various changes to documentation project:
[12:45] CIA-19 zeromq2: * Added documentation for zmq_deviced, which we're developing
[12:45] CIA-19 zeromq2: * Created consistent page footer in documentation template
[12:45] CIA-19 zeromq2: * Page footer notes doc authors and copyright statement -
[12:57] CIA-19 zeromq2: 03Pieter Hintjens 07master * rc51de31 10/ doc/ : Reverting 'clean' change to Makefile -
[13:07] CIA-19 zeromq2: 03Pieter Hintjens 07master * r6ff1939 10/ (4 files): Removed empty man pages for old standalone devices -
[13:27] mato pieterh: ok, i'm here now
[13:28] pieterh mato: any particular advantage in breaking manual text into lines?
[13:28] mato pieterh: manual line breaks mean that a) the doc text can be meaningfully read with less in a terminal b) i can edit it with vim/emacs/other standard unixy editor
[13:28] mato pieterh: also, the long lines don't show up on github nicely
[13:28] pieterh ok, i
[13:28] mato see e.g.
[13:29] pieterh i'll buy the github argument
[13:29] mato hey, it's a .txt file... 80 columns is your friend :)
[13:29] pieterh perhaps in 1992, yes
[13:29] pieterh it's been a long long time since 80 columns had any mystical value
[13:29] guido_g no, noone knows how wide you editor windows was
[13:29] pieterh everyone knows today the magic number is 140
[13:30] mato well, please just use 80 column text, thanks
[13:30] mato how about an old one? vim? emacs? :)
[13:31] guido_g :)
[13:31] mato i'm sure even gedit or whatever it's called can format text :)
[13:35] pieterh mato: would you review zmq_device(3) in trunk and confirm it makes sense?
[13:35] mato pieterh: ok, but i'll have to reformat it :)
[13:36] pieterh i'll do that, mato
[13:36] mato pieterh: also, it's 'master' not trunk :)
[13:36] pieterh am in process of doing so
[13:36] mato thx
[13:36] pieterh and yes, it's master, not trunk, my bad
[13:44] pieterh uhm, mato
[13:44] mato yes?
[13:44] pieterh there are quite a few instances of lines longer than 80 chars in the text files
[13:44] pieterh i'll fix them all up
[13:44] mato there are places where due to syntax limitations in asciidoc you can't wrap lines properly
[13:44] mato please wrap "normal text body" properly
[13:44] mato thx
[13:45] pieterh ? asciidoc lets you do it properly
[13:45] pieterh also its "its" not "it's" when you use the possessive
[13:45] pieterh grammarnazi is on the loose
[13:45] mato i think you are referring mainly to the SYNOPSIS section?
[13:45] pieterh nope, random text
[13:46] mato and unfortunately those don't render properly when wrapped
[13:46] pieterh egrep ".{80,}" *.txt is your friend
[13:46] pieterh i'll fix it all up and double check it renders properly when wrapped
[13:47] mato what i see are mostly SYNOPSIS sections and definition lists
[13:47] mato if you can get them to format properly when wrapped (check manpage result *and* HTML) then by all means fix them
[13:48] pieterh let's give it a shot :-)
[13:48] pieterh how do I generate the html?
[13:48] mato make dist will do it
[13:49] pieterh "no rule to make target dist" when I run that in /doc
[13:49] pieterh np
[13:49] mato make dist at toplevel
[13:49] pieterh ack
[13:49] pieterh man pages format correctly, will now check html
[13:50] pieterh seems fine
[13:50] mato hmm, can you commit it, i'll double-check here (since i build releases on this machine)
[13:50] mato that's if you're done...
[13:51] pieterh tried on some docs, am now doing rest and checking individually
[13:51] mato also i assume you're not going to reformat *everything* just the wrong bits?
[13:51] pieterh only the lines that are more than 80 chars, mato
[13:51] mato thx
[13:51] pieterh also some spelling mistakes as i find them
[13:52] pieterh minor stuff
[13:52] mato (a UK spell checker, to be precise)
[13:52] pieterh its/it's in a few places
[13:53] mato ah, sorry, i have a problem with that one for some reason
[13:53] pieterh me too, i get it right but always think i got it wrong
[13:53] pieterh just remember, his, hers, its
[13:53] pieterh not hi's her's it's
[13:54] pieterh and it's, they're, we're, you're
[13:54] pieterh not its, theyre, were, youre
[13:54] pieterh :-)
[13:54] pieterh english can be remarkably consistent
[14:07] CIA-19 zeromq2: 03Pieter Hintjens 07master * r13f3481 10/ (10 files):
[14:07] CIA-19 zeromq2: Further cleanups on reference manual
[14:07] CIA-19 zeromq2: - fixed unwrapped text in new man pages
[14:07] CIA-19 zeromq2: - fixed over-long lines in older pages, where possible
[14:07] CIA-19 zeromq2: - removed reference to old standalong devices from index page
[14:07] CIA-19 zeromq2: - added refernce to new zmq_device[3] documented from index page
[14:07] CIA-19 zeromq2: - some minor spelling corrections -
[14:07] pieterh mato: ok, done, double-checked, and committed
[14:07] pieterh wow, CIA-19 got there before me :-)
[14:07] mato :-)
[14:09] mato -.Polling indefinitely for input events on both a 0MQ socket and a standard socket.
[14:09] mato 103
[14:09] mato +.Polling indefinitely for input events on both a 0MQ socket and a TCP socket.
[14:09] mato pieterh: perhaps pedantic, but 'socket' can be any old socket :)
[14:09] mato no big deal
[14:09] mato anyhow, thx
[14:10] mato pieterh: which did you want reviewed? zmq_device?
[14:16] mato pieterh: re zmq_device:
[14:17] mato pieterh: you talk about "proxy" and "broker", but only provide examples for the 2nd one
[14:19] mato pieterh: also, not sure a :: list is the best way to format the model list. I would have probably used either subsections, or *XXX model*. ...Body text...
[14:19] mato pieterh: mostly I just don't just the lowercase "proxy" and "broker" :)
[14:20] mato pieterh: also the references to "downstream" are a bit confusing, but i don't have a better idea
[14:20] mato pieterh: that's all, thx
[14:55] pieterh mato: re
[14:55] pieterh zmq_device(3) covers the core of how devices work
[14:55] pieterh zmq_deviced(1) covers the api for the command line tool
[14:57] pieterh thanks for the review, i'll fix the text
[15:07] CIA-19 zeromq2: 03Pieter Hintjens 07master * r96bcc9e 10/ doc/zmq_device.txt :
[15:07] CIA-19 zeromq2: Small improvements to zmq_device(3) page
[15:07] CIA-19 zeromq2: * Clarified broker model and proxy model
[15:07] CIA-19 zeromq2: * Added example of proxy model -
[16:58] cremes fyi,
[18:02] erickt good morning! would it be possible to get dates displayed on the documents? I've found myself looking at the old 1.0 era docs and getting confused :)
[18:09] sustrik erickt: please do complain on the mailing list, someone has to go through all the content and remove out-of-date pieces
[18:10] sustrik cremes: yes, that's 0MQ/AMQP bridge project
[18:10] sustrik see its wiki for design diagrams
[18:10] sustrik however, implementation is still missing :)
[18:10] cremes yes, i just wanted to highlight it for folks lurking in channel
[18:23] erickt sustrik: sure
[18:24] erickt i was just hoping that the wiki software had an option to turn on the dates :)
[18:35] pieterh erickt: it does
[18:36] pieterh i will need to modify some templates
[18:36] pieterh give me a minute, I'll try this on the whitepapers section...
[18:37] erickt pieterh: thank you so much
[18:45] pieterh erickt: small catch
[18:45] pieterh it works, see
[18:46] pieterh however for the whitepapers it'll mean editing every single whitepaper to remove cruft
[18:46] pieterh hmm...
[18:46] erickt thanks pieterh
[18:47] erickt i'm used to the docs enough that I'm not running into too many problems, I just figured any newbies would run into the same trouble
[18:48] pieterh it'd be better to delete old stuff and move speculation to a separate category, don't you think?
[18:48] pieterh i'll add the date/time to the category templates now
[18:48] pieterh and then clean up the entire wiki later
[18:49] pieterh there's no reason for 1.0 docs to still be there IMO
[18:51] erickt sure that seems reasonable
[19:09] pieterh sustrik: i've started a page to capture ideas for 0MQ/3.0
[19:10] pieterh i assume API changes as you proposed for simpler message passing will require a major version
[19:10] sustrik do we have a versioning policy?
[19:10] pieterh
[19:11] pieterh i think there was consensus on versioning, yes
[19:11] sustrik is it written down somewher
[19:11] pieterh it's in the mailing list :-)
[19:11] sustrik i, for example, have no idea what the outcome was
[19:11] sustrik which email?
[19:11] pieterh i was being somewhat facetious
[19:12] sustrik i know
[19:12] pieterh it *is* the list but that is not a database
[19:12] pieterh i will write a versioning policy strawman, beat up as desired
[19:12] sustrik ok
[19:12] pieterh to cover the product version and API, not library versioning
[19:12] sustrik yes, sure
[19:13] sustrik library versioning is a different kind of beast
[19:13] sustrik as for 3.0 i would like to have sockets to be represented as 'int' instead of 'void*'
[19:13] sustrik not a pleasant change for users...
[19:15] sustrik btw
[19:15] sustrik
[19:15] sustrik seems to have two tocs
[19:23] pieterh all the whitepapers have two tocs until i get around to editing them all
[19:24] pieterh i've started the policy page:
[19:24] pieterh sockets as ints is a great idea and necessary for kernelization
[19:24] pieterh would you add that to the 3.0 page?
[19:54] pieterh sustrik: i'm cleaning up all the whitepapers
[20:04] sustrik ok, will have a look
[20:05] sustrik btw, mentioning author in the date header is confusing
[20:05] sustrik erlag binding:
[20:05] sustrik Written: 2010.05.15 by pieterh
[20:05] sustrik Revised: 2010.08.4 by pieterh
[20:05] sustrik date would do imo
[20:08] pieterh ok, now i've gone through all the whitepapers
[20:08] pieterh deleted (moved to deleted:whatever) the old binding descriptions
[20:08] pieterh other historical ones are clearly marked
[20:08] pieterh
[20:08] pieterh gives you a navigator
[20:08] pieterh i'll remove the 'by' info from the templates
[20:09] pieterh but the advantage is to know who to blame
[20:09] pieterh please confirm you want that gone
[20:11] sustrik well, you'll remove it yourself once people start spamming you about erlang binding
[20:12] pieterh well, it's gone now
[20:13] pieterh it is nicer to not have names overtly visible on every piece IMO
[20:13] pieterh there is the history
[20:14] sustrik my point was that creator & last editor != author
[20:14] sustrik we may add author to the heading of each document
[20:14] pieterh in most normal cases, last author and creator do represent the people to contact
[20:14] pieterh this kind of mass update is very rare
[20:15] pieterh it's only because we did not template the pages originally
[20:15] pieterh templates allow a clean split between structure and content
[20:15] pieterh the whole site is now properly templated i think
[20:15] sustrik so why are you creator of erlang binding?
[20:15] pieterh because i created that page :-)
[20:15] pieterh obviously
[20:15] sustrik you see
[20:16] sustrik my point
[20:16] pieterh no, normally it would show, accurately, person A creating, and person B maintaining
[20:16] pieterh and you could ask person A, "why did you create the page HERE"
[20:16] pieterh and person B, "why does it say XYZ?"
[20:16] sustrik that's not the state of afairs now
[20:17] pieterh indeed, because exceptionally, i had to restructure 50+ pages
[20:17] sustrik it'll just mention either you or me
[20:17] sustrik no much point
[20:17] pieterh do you understand how the templates work?
[20:17] sustrik yes, but look at the outcome
[20:17] pieterh sigh
[20:17] sustrik right now, those two fields are just garbage
[20:18] pieterh this is a one off that will be fixed as soon as people start to edit their pages again
[20:18] pieterh anyhow, it's moot
[20:18] pieterh the names are gone
[20:18] sustrik ok, let's add the two fields back once that happens
[20:18] pieterh i'm only explaining their value in normal circumstances
[20:18] sustrik sure, i understand
[20:19] pieterh it's like saying "the knife cut me" and then arguing with the person telling you to not hold the sharp end
[20:19] pieterh wikidot has powerful tools for doing this right
[20:19] pieterh my fault for not doing this reorganization earlier
[20:20] sustrik the point is that right now the normal circumstances are the norm
[20:20] sustrik not the norm
[20:20] sustrik so what you see is garbage
[20:20] sustrik when normal circumstances become normal
[20:20] sustrik it would be easy to modify the templete
[20:20] pieterh indeed
[20:20] pieterh templates are excellent
[20:20] pieterh i strongly advise to never create wikidot pages without templates
[20:21] pieterh its like trying to do everything using ZMQ_PAIR
[20:21] pieterh mixed with semaphores
[20:22] pieterh there is a long and somewhat painful discussion on HyBi
[20:22] pieterh (IETF list discussing WebSockets)
[20:22] pieterh including framing and multiplexing
[20:22] pieterh i am trying to suggest 0MQ-style framing and delegating multiplexing to SCTP
[20:24] pieterh i mention this because at some point 0MQ is going to bump gently against WebSockets
[20:27] Utopiah the future of the intarwebs
[20:28] Utopiah
[20:28] Nwallins they make webserver-initiated conversations (as opposed to client-initiated with HTTP req/resp) easier
[20:28] pieterh it would be worth understanding websockets briefly, or at least the goals behind it
[20:28] pieterh it is supposed to provide something as close as possible to TCP (async streaming) to browsers talking to servers
[20:29] sustrik once i have some time free i'll have a look
[20:29] pieterh its is pushed by WHATWG, representing browser builders, esp. Google
[20:29] pieterh s/its/it's/
[20:29] pieterh s/is//
[20:29] pieterh i'll explain over our next beer
[20:29] sustrik is there any one-to-many concept involved?
[20:30] pieterh no
[20:30] pieterh tcp
[20:30] pieterh no patterns except peer
[20:30] sustrik then it shouldn't be hard to layer 0mq semantics on top of it
[20:30] sustrik the actual wire format doesn't matter that much
[20:30] pieterh yes, that's for sure
[20:30] pieterh but websockets risks being too close to the application
[20:41] sjampoo Mixing websockets and zeromq is like a baileys cola. I don't think they go well together.
[20:42] sjampoo Also, i'm not sure if there is much to be gained as it needs to be transported over HTTP anyway. The connection is always initiated from the client as a regular HTTP connection and can then be upgraded to allow streaming of data frames both ways.
[20:44] sjampoo A ZeroMQ client implemented in JS would be cute, but you would end up needing a central (proxy) server anyway.
[20:46] sjampoo Actually, If I had to pick I would say ZeroMQ is more like a Vodka, transparent, mixes well with everything and no bad hangovers.
[20:47] Nwallins well, vodka cola sounds pretty bad ;)
[20:48] sjampoo It is not that bad really ;)
[20:49] Nwallins plus, martinis are high-powered, sophisticated tools that promote communication
[20:49] Nwallins though I must admit a gin preference, there
[20:50] sjampoo with tonic?
[20:50] Nwallins just olives :)
[20:52] sjampoo Hmmm, did you know that they say that Gin Tonic was the reason the british where able to invade Africa?
[20:52] Nwallins the quinine, I heard
[20:52] sjampoo Yes, it worked well against Malaria and the Gin made it drinkable.
[20:53] Nwallins usually it's the other way around. mixer makes the drink palatable, and then you get sick ;)
[22:26] ateTate I want to establish communication between two public webservers. What's a good way to ensure that messages recieved by my REP handler are from one of my servers and not someone else?
[22:28] Nwallins