Tuesday, 2015-04-07

*** tpb has joined #pyconau00:00
*** dpn` has joined #pyconau02:09
dpn`ohai02:09
lifelesshai02:17
chrisjrndpn`: heya04:07
chrisjrndpn`: asking about the e-mail address, right?04:07
dpn`chrisjrn, yeah mate cheers!05:40
dpn`but just idling here :)05:40
hawkowlw00t pycon au06:12
praetorianpyc0n06:23
praetoriando we know the dates yet?06:23
praetorianJuly is soon.06:23
praetorianand i need to schedule a holiday around it =)06:24
hawkowlpraetorian: yes06:36
hawkowli think06:36
hawkowlpraetorian: july 31 to aug 406:36
hawkowlchrisjrn: idk if you know anything about this, but the "sponsor pycon au" link 404s06:37
praetorianhrm. but i wanted to have a holiday on aug 3. can we move it06:39
praetorianxD ;)06:39
dpn`so... need to submit something09:07
dpn`microservices in twisted?09:07
dpn`the inflight entertainment system09:07
dpn`hmm... hbase and twisted?09:08
dpn`something more high level probably I guess...09:08
dpn`best practices twisted project development?09:26
dpn`hrmm09:26
hawkowldpn`: woot twisted09:27
dpn`i reckon a "build an application from scratch" type thing might be interesting to some people?09:28
dpn`i suspect lots of people get lost once they try to move past twistd -n web09:28
hawkowli'm going to submit something about using crossbar.io from django09:28
hawkowlsince people have asked me about that09:28
dpn`ah nice.. we're using crossbar too09:29
hawkowloh nice :D09:29
hawkowldpn`: btw i am RM+dev for crossbar now09:29
dpn`oh! nice09:29
dpn`so um... cookie auth ? :D09:29
hawkowldpn`: (there's official ubuntu/centos packages i made too, if you're interested)09:29
dpn`all our salt stuff is already done ;)09:30
hawkowllike .debs with latest PyPy bundled :)09:30
hawkowldpn`: heh cool :)09:30
hawkowldpn`: define cookie auth09:30
hawkowldpn`: cookie auth to websockets, or to the REST bridge?09:31
dpn`hawkowl, let me find you a big comment09:31
dpn`oh it might be in autobahn09:31
dpn`yeah WS09:31
hawkowlokay that's slightly hard, i think09:31
dpn`I'm intrigued09:31
hawkowlsince it means that crossbar/whatever has to know about your auth system09:31
dpn`it has/had a "this is how we do it" impl09:32
hawkowloh?09:32
hawkowldpn`: it's something i can certainly see the use in, don't get me wrong09:32
hawkowldpn`: and if there's a way that means it's able to be loosely coupled, i'll put the leg work in to get it done09:33
dpn`https://github.com/crossbario/crossbar/blob/ab4ce4459d85db70a5ef6707adbf0df91c587b46/crossbar/router/session.py#L76409:33
tpbTitle: crossbar/session.py at ab4ce4459d85db70a5ef6707adbf0df91c587b46 · crossbario/crossbar · GitHub (at github.com)09:33
dpn`tbh we were going to ad it ourselves09:33
dpn`in the end we decided to use the canonical way as suggested in the docs09:33
hawkowldpn`: is there a ticket on crossbar?09:34
dpn`token passing etc, easy enough09:34
dpn`been a while.. let me see09:34
dpn`it seems not09:35
dpn`we implemented this is the end: http://crossbar.io/docs/WAMP-CRA-Authentication/09:35
tpbTitle: Crossbar.io Unified Application Router (at crossbar.io)09:35
dpn`i think with the move to WAMP for all the things an almost pure web feature may have not been a high priority09:36
hawkowldpn`: right09:36
hawkowldpn`: okay yeah i would recommend wamp-cra09:37
hawkowldpn`: since it works with things that arent browsers09:37
dpn`hawkowl, in that case.. huzzah :D09:37
dpn`yeah we've of the view wamp is not the ideal backend choice for us09:37
dpn`(OTOH we're using json RPC + rabbitmq atm ahha)09:38
dpn`not going to rush into something yet09:38
hawkowldpn`: i think i have an idea for it though09:39
dpn`hawkowl, yeah?09:39
hawkowldpn`: because the ideal for crossbar is a black box, and everything is loosely coupled09:39
dpn`right09:39
hawkowldpn`: it should be simple-ish to make cookies act like a wamp-cra ticket09:39
hawkowlin that it calls a wamp procedure with the cookie09:39
hawkowland goes "hey tell me if this is legit"09:39
dpn`yeah, that would be nice09:40
dpn`the handy thing about cookies is the whole httponly thing09:40
hawkowldpn`: if that sounds like a solution, i can try whipping something up09:41
hawkowldpn`: since even though it's browser-only, that doesn't make it any less useful09:41
hawkowlmaybe not ideal, because then for non-browsers you have to emulate cookies, or have another auth system, which increases the surface area of potential bad things happening09:42
dpn`hawkowl, we're commited to the cra thing now - so it wont make a huge difference. Since I'm at least familiar with that area of the code I'd be happy to review + test/help09:42
hawkowldpn`: cool :)09:43
dpn`well I guess you don't need to emulate cookies, but at least implement them in a s2s request which is a bit weird09:43
hawkowldpn`: thanks :)09:43
hawkowlyeah09:43
hawkowla lot of crossbar is server to server and device to server09:44
hawkowlthe browser to server needs a bit more work but that's why i'm here :)09:44
dpn`we were borderline with going straight autobahn.... but knew we'd end up implementing some approximation of crossbar in the end anyway :P09:44
hawkowldpn`: also did you see the REST bridge stuff I did?09:44
dpn`hawkowl, no - keen to check it out though09:45
hawkowldpn`: http://crossbar.io/docs/HTTP-Bridge-Services/09:45
tpbTitle: Crossbar.io Unified Application Router (at crossbar.io)09:45
dpn`ta09:45
hawkowldpn`: the last two roles i havent finished the docs for09:45
hawkowlbut all four roles are in 0.10.309:45
dpn`this is cool09:46
hawkowlpublishing to pubsub, calling a wamp procedure09:46
hawkowlthe new ones are also doing a web request on a pubsub thingy09:46
dpn`one of the lovely things about twisted top to bottom in our stack is long connections aren't an issue :D09:46
hawkowland doing web requests from wamp procedures09:46
hawkowlso you can "subscribe" a django service to a pubsub channel09:47
dpn`yeah very handy09:47
hawkowlone of my talk proposals is on using this stuff09:47
dpn`yeah nice09:47
hawkowlone of the applciations is "I have a django application and i want to add some realtime"09:47
dpn`btw hawkowl have you checked out captnproto? Would love to get it working with twisted... conversation so far hasn't been promising though :/09:48
dpn`https://capnproto.org/09:48
tpbTitle: Cap'n Proto: Introduction (at capnproto.org)09:48
dpn`yeah, that's a common issue with django.. especially semi-new people looking at add realtime stuff09:48
hawkowland the least intrusive way is crossbar to hold the connections, and use the http bridge to talk to things over it09:49
hawkowlthen it's purely additive09:49
hawkowlso like, if you had a facebook-alike09:50
hawkowlyou'd get the existing posts from the original get, set up a websocket connection, listen on a channel09:50
hawkowlnew posts, on creation/whatever get pushed through that channel09:50
hawkowlthe browser adds them inline09:50
hawkowlor rather, the browser gets the message and updates the page09:51
dpn`yeah.. handy09:52
dpn`sorry on an acceptance call for work :D09:54
hawkowlhehe09:54
hawkowli do need to write the proposal though09:54
hawkowlthe other one is about composition based APIs because it needs to be said09:55
dpn`ooo!09:56
dpn`yes, nice09:56
hawkowlif i ever see a mixin again, it'll be too soon09:56
dpn`heh09:56
praetoriancrossbar looks intresting10:31
praetorianthanks for that10:31
hawkowl:)10:50
*** cam_stitt has quit IRC11:32
*** cam_stitt has joined #pyconau11:35
*** cam_stitt is now known as Guest5917811:35
hawkowldpn`: so talking to tobias12:20
hawkowldpn`: it appears that wamp-cra can access the cookie?12:20
dpn`hawkowl, yeah?12:20
dpn`hawkowl, ah - clearly i didnt dig far enough12:20
hawkowldpn`: it's in the "details" argument given to authenticate()12:20
dpn`hawkowl, I saw big ole comment block and went... hmm that looks like something that could be finished12:21
dpn`hawkowl, gotcha... good to know!12:21
hawkowldpn`: crossbar has its own cookie stuff12:21
hawkowldpn`: like where crossbar sets the cookies12:21
dpn`hawkowl, yeah I saw that... serialised dict iirc12:21
hawkowldpn`: so yeah, you just write a wamp-cra authenticator that looks inside the details argument for the cookies12:21
hawkowla bit non-obvious sadly12:22
dpn`hawkowl, yeah - even a comment in that section of the code in session.py would probably help anyone like me who is looking for answers there12:23
hawkowldpn`: noted12:23
dpn`hawkowl, thanks for following up.. appreciated12:23
hawkowldpn`: no problem, happy to help where i can :)12:24
dpn`:D12:24
hawkowldpn`: btw, the details dict has a bunch of other stuff12:27
hawkowldpn`: like IPs and HTTP headers and things12:27
dpn`hawkowl, oooer.. yay X-Clacks-Overhead can be passed into our backend services12:28
hawkowli think it's a dict anyway12:29
hawkowldpn`: that sounds like a completely legitimate use, yes :)12:29
dpn`hawkowl, I'm glad you approve, we would have had problems otherwise :P12:31
hawkowldpn`: i feel like a fake pratchett mourner though, ive only managed to read three books so far :(12:32
hawkowl(guards, guards!, men at arms, feet of clay)12:32
hawkowljingo is next, i think12:33
dpn`I've read all of them I think, but i'm never 100% sure because of the kinda-discworld books that also exist12:36
dpn`you've read all night watch ones... the witches ones are awesome12:36
dpn`hawkowl, but the night watch ones are good.. he gets into a groove with the crime solving thing12:37
hawkowldpn`: isn't jingo a nightwatch one?12:37
dpn`hawkowl, yeah, but there's a lot of vetinari in it too... jingo will be slightly amusing given the current political climate12:37
hawkowli like vetinari12:38
hawkowlis he in more books than just the night watch?12:38
dpn`from memory it features vetinari more than any of the others12:38
dpn`yeah, but doesn't feature so much... his relationship with vimes is part of what makes him special12:38
dpn`ah he's in the going postal/making money series too12:38
MarkusHHey folks. I don't want to be impatient. Chris told me a couple of days before Easter that you fixed the reverse DNS lookup when sending emails and it now needs somebody who can send me my activation link (again).12:39
MarkusHCan you send one to info+pyconau AT markusholtermann DOT eu12:39
hawkowlmy favourite character is Vetinari, then Angua, then Cheri, then Vimes, then the rest of em12:41
dpn`I would have a hard time picking a fave :)12:43
dpn`MarkusH, FWIW chrisjrn is who you should nudge12:44
MarkusHdpn`: he said he doesn't have access to the site (yet)12:44
dpn`MarkusH, ok fair enough, wasn't sure if you knew it was him here on irc12:45
dpn`I'm not any help I'm sorry12:45
MarkusHdpn`: no problem12:47
chrisjrnMarkusH: *sigh*, I'll get that chased up18:27
MarkusHchrisjrn: Thanks18:27
chrisjrnhawkowl: thanks :)18:28
*** croy_ has joined #pyconau23:32
*** croy_ has joined #pyconau23:33

Generated by irclog2html.py 2.13.1 by Marius Gedminas - find it at mg.pov.lt!