*** tpb has joined #pyconau | 00:00 | |
*** dpn` has joined #pyconau | 02:09 | |
dpn` | ohai | 02:09 |
---|---|---|
lifeless | hai | 02:17 |
chrisjrn | dpn`: heya | 04:07 |
chrisjrn | dpn`: asking about the e-mail address, right? | 04:07 |
dpn` | chrisjrn, yeah mate cheers! | 05:40 |
dpn` | but just idling here :) | 05:40 |
hawkowl | w00t pycon au | 06:12 |
praetorian | pyc0n | 06:23 |
praetorian | do we know the dates yet? | 06:23 |
praetorian | July is soon. | 06:23 |
praetorian | and i need to schedule a holiday around it =) | 06:24 |
hawkowl | praetorian: yes | 06:36 |
hawkowl | i think | 06:36 |
hawkowl | praetorian: july 31 to aug 4 | 06:36 |
hawkowl | chrisjrn: idk if you know anything about this, but the "sponsor pycon au" link 404s | 06:37 |
praetorian | hrm. but i wanted to have a holiday on aug 3. can we move it | 06:39 |
praetorian | xD ;) | 06:39 |
dpn` | so... need to submit something | 09:07 |
dpn` | microservices in twisted? | 09:07 |
dpn` | the inflight entertainment system | 09: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` | hrmm | 09:26 |
hawkowl | dpn`: woot twisted | 09: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 web | 09:28 |
hawkowl | i'm going to submit something about using crossbar.io from django | 09:28 |
hawkowl | since people have asked me about that | 09:28 |
dpn` | ah nice.. we're using crossbar too | 09:29 |
hawkowl | oh nice :D | 09:29 |
hawkowl | dpn`: btw i am RM+dev for crossbar now | 09:29 |
dpn` | oh! nice | 09:29 |
dpn` | so um... cookie auth ? :D | 09:29 |
hawkowl | dpn`: (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 |
hawkowl | like .debs with latest PyPy bundled :) | 09:30 |
hawkowl | dpn`: heh cool :) | 09:30 |
hawkowl | dpn`: define cookie auth | 09:30 |
hawkowl | dpn`: cookie auth to websockets, or to the REST bridge? | 09:31 |
dpn` | hawkowl, let me find you a big comment | 09:31 |
dpn` | oh it might be in autobahn | 09:31 |
dpn` | yeah WS | 09:31 |
hawkowl | okay that's slightly hard, i think | 09:31 |
dpn` | I'm intrigued | 09:31 |
hawkowl | since it means that crossbar/whatever has to know about your auth system | 09:31 |
dpn` | it has/had a "this is how we do it" impl | 09:32 |
hawkowl | oh? | 09:32 |
hawkowl | dpn`: it's something i can certainly see the use in, don't get me wrong | 09:32 |
hawkowl | dpn`: 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 done | 09:33 |
dpn` | https://github.com/crossbario/crossbar/blob/ab4ce4459d85db70a5ef6707adbf0df91c587b46/crossbar/router/session.py#L764 | 09:33 |
tpb | Title: crossbar/session.py at ab4ce4459d85db70a5ef6707adbf0df91c587b46 · crossbario/crossbar · GitHub (at github.com) | 09:33 |
dpn` | tbh we were going to ad it ourselves | 09:33 |
dpn` | in the end we decided to use the canonical way as suggested in the docs | 09:33 |
hawkowl | dpn`: is there a ticket on crossbar? | 09:34 |
dpn` | token passing etc, easy enough | 09:34 |
dpn` | been a while.. let me see | 09:34 |
dpn` | it seems not | 09:35 |
dpn` | we implemented this is the end: http://crossbar.io/docs/WAMP-CRA-Authentication/ | 09:35 |
tpb | Title: 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 priority | 09:36 |
hawkowl | dpn`: right | 09:36 |
hawkowl | dpn`: okay yeah i would recommend wamp-cra | 09:37 |
hawkowl | dpn`: since it works with things that arent browsers | 09:37 |
dpn` | hawkowl, in that case.. huzzah :D | 09:37 |
dpn` | yeah we've of the view wamp is not the ideal backend choice for us | 09:37 |
dpn` | (OTOH we're using json RPC + rabbitmq atm ahha) | 09:38 |
dpn` | not going to rush into something yet | 09:38 |
hawkowl | dpn`: i think i have an idea for it though | 09:39 |
dpn` | hawkowl, yeah? | 09:39 |
hawkowl | dpn`: because the ideal for crossbar is a black box, and everything is loosely coupled | 09:39 |
dpn` | right | 09:39 |
hawkowl | dpn`: it should be simple-ish to make cookies act like a wamp-cra ticket | 09:39 |
hawkowl | in that it calls a wamp procedure with the cookie | 09:39 |
hawkowl | and goes "hey tell me if this is legit" | 09:39 |
dpn` | yeah, that would be nice | 09:40 |
dpn` | the handy thing about cookies is the whole httponly thing | 09:40 |
hawkowl | dpn`: if that sounds like a solution, i can try whipping something up | 09:41 |
hawkowl | dpn`: since even though it's browser-only, that doesn't make it any less useful | 09:41 |
hawkowl | maybe 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 happening | 09: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/help | 09:42 |
hawkowl | dpn`: 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 weird | 09:43 |
hawkowl | dpn`: thanks :) | 09:43 |
hawkowl | yeah | 09:43 |
hawkowl | a lot of crossbar is server to server and device to server | 09:44 |
hawkowl | the 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 :P | 09:44 |
hawkowl | dpn`: also did you see the REST bridge stuff I did? | 09:44 |
dpn` | hawkowl, no - keen to check it out though | 09:45 |
hawkowl | dpn`: http://crossbar.io/docs/HTTP-Bridge-Services/ | 09:45 |
tpb | Title: Crossbar.io Unified Application Router (at crossbar.io) | 09:45 |
dpn` | ta | 09:45 |
hawkowl | dpn`: the last two roles i havent finished the docs for | 09:45 |
hawkowl | but all four roles are in 0.10.3 | 09:45 |
dpn` | this is cool | 09:46 |
hawkowl | publishing to pubsub, calling a wamp procedure | 09:46 |
hawkowl | the new ones are also doing a web request on a pubsub thingy | 09:46 |
dpn` | one of the lovely things about twisted top to bottom in our stack is long connections aren't an issue :D | 09:46 |
hawkowl | and doing web requests from wamp procedures | 09:46 |
hawkowl | so you can "subscribe" a django service to a pubsub channel | 09:47 |
dpn` | yeah very handy | 09:47 |
hawkowl | one of my talk proposals is on using this stuff | 09:47 |
dpn` | yeah nice | 09:47 |
hawkowl | one 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 |
tpb | Title: 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 stuff | 09:48 |
hawkowl | and the least intrusive way is crossbar to hold the connections, and use the http bridge to talk to things over it | 09:49 |
hawkowl | then it's purely additive | 09:49 |
hawkowl | so like, if you had a facebook-alike | 09:50 |
hawkowl | you'd get the existing posts from the original get, set up a websocket connection, listen on a channel | 09:50 |
hawkowl | new posts, on creation/whatever get pushed through that channel | 09:50 |
hawkowl | the browser adds them inline | 09:50 |
hawkowl | or rather, the browser gets the message and updates the page | 09:51 |
dpn` | yeah.. handy | 09:52 |
dpn` | sorry on an acceptance call for work :D | 09:54 |
hawkowl | hehe | 09:54 |
hawkowl | i do need to write the proposal though | 09:54 |
hawkowl | the other one is about composition based APIs because it needs to be said | 09:55 |
dpn` | ooo! | 09:56 |
dpn` | yes, nice | 09:56 |
hawkowl | if i ever see a mixin again, it'll be too soon | 09:56 |
dpn` | heh | 09:56 |
praetorian | crossbar looks intresting | 10:31 |
praetorian | thanks for that | 10:31 |
hawkowl | :) | 10:50 |
*** cam_stitt has quit IRC | 11:32 | |
*** cam_stitt has joined #pyconau | 11:35 | |
*** cam_stitt is now known as Guest59178 | 11:35 | |
hawkowl | dpn`: so talking to tobias | 12:20 |
hawkowl | dpn`: it appears that wamp-cra can access the cookie? | 12:20 |
dpn` | hawkowl, yeah? | 12:20 |
dpn` | hawkowl, ah - clearly i didnt dig far enough | 12:20 |
hawkowl | dpn`: 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 finished | 12:21 |
dpn` | hawkowl, gotcha... good to know! | 12:21 |
hawkowl | dpn`: crossbar has its own cookie stuff | 12:21 |
hawkowl | dpn`: like where crossbar sets the cookies | 12:21 |
dpn` | hawkowl, yeah I saw that... serialised dict iirc | 12:21 |
hawkowl | dpn`: so yeah, you just write a wamp-cra authenticator that looks inside the details argument for the cookies | 12:21 |
hawkowl | a bit non-obvious sadly | 12: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 there | 12:23 |
hawkowl | dpn`: noted | 12:23 |
dpn` | hawkowl, thanks for following up.. appreciated | 12:23 |
hawkowl | dpn`: no problem, happy to help where i can :) | 12:24 |
dpn` | :D | 12:24 |
hawkowl | dpn`: btw, the details dict has a bunch of other stuff | 12:27 |
hawkowl | dpn`: like IPs and HTTP headers and things | 12:27 |
dpn` | hawkowl, oooer.. yay X-Clacks-Overhead can be passed into our backend services | 12:28 |
hawkowl | i think it's a dict anyway | 12:29 |
hawkowl | dpn`: that sounds like a completely legitimate use, yes :) | 12:29 |
dpn` | hawkowl, I'm glad you approve, we would have had problems otherwise :P | 12:31 |
hawkowl | dpn`: 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 |
hawkowl | jingo is next, i think | 12:33 |
dpn` | I've read all of them I think, but i'm never 100% sure because of the kinda-discworld books that also exist | 12:36 |
dpn` | you've read all night watch ones... the witches ones are awesome | 12:36 |
dpn` | hawkowl, but the night watch ones are good.. he gets into a groove with the crime solving thing | 12:37 |
hawkowl | dpn`: 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 climate | 12:37 |
hawkowl | i like vetinari | 12:38 |
hawkowl | is he in more books than just the night watch? | 12:38 |
dpn` | from memory it features vetinari more than any of the others | 12:38 |
dpn` | yeah, but doesn't feature so much... his relationship with vimes is part of what makes him special | 12:38 |
dpn` | ah he's in the going postal/making money series too | 12:38 |
MarkusH | Hey 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 |
MarkusH | Can you send one to info+pyconau AT markusholtermann DOT eu | 12:39 |
hawkowl | my favourite character is Vetinari, then Angua, then Cheri, then Vimes, then the rest of em | 12:41 |
dpn` | I would have a hard time picking a fave :) | 12:43 |
dpn` | MarkusH, FWIW chrisjrn is who you should nudge | 12:44 |
MarkusH | dpn`: 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 irc | 12:45 |
dpn` | I'm not any help I'm sorry | 12:45 |
MarkusH | dpn`: no problem | 12:47 |
chrisjrn | MarkusH: *sigh*, I'll get that chased up | 18:27 |
MarkusH | chrisjrn: Thanks | 18:27 |
chrisjrn | hawkowl: thanks :) | 18:28 |
*** croy_ has joined #pyconau | 23:32 | |
*** croy_ has joined #pyconau | 23:33 |
Generated by irclog2html.py 2.13.1 by Marius Gedminas - find it at mg.pov.lt!