#twisted

/

      • jordanl has quit
      • licensed joined the channel
      • samskiter joined the channel
      • jordanl joined the channel
      • jordanl has quit
      • daniele_athome has quit
      • samskiter has quit
      • licensed has quit
      • mesozoic joined the channel
      • kenaan
        Tickets pending review: https://tm.tl/#8082, #8203, #8191, #8244, #8256
      • licensed joined the channel
      • itamarst joined the channel
      • aenglander has quit
      • lifeless joined the channel
      • kevinconway has quit
      • dpn`-
        anyone have any ideas about this? https://gist.github.com/dpnova/4fb69bd0561736a3...
      • meejah
        is it ... an exception in a Failure __init__ or something? (don't really know what __instancecheck__ does though)
      • tonythomas joined the channel
      • dpn`-
        meejah, yeah it must be something about stack parsing
      • maybe a circular ref in repr's or something..
      • teratorn
        anyone using AMP on top of ZeroMQ? e.g. on top of txZMQ?
      • in theory you could use use the AMP encoding for zmq messages. but zmq already implements message framing for you, so you have two redundant layers of framing...
      • dpn`-
        are they really redundant?
      • or maybe amp could support zmq framing
      • hawkowl, https://github.com/twisted/twisted/commit/ac9c5... this change is making things quite unhappy
      • looks like all urls are being encoded to ascii?
      • hawkowl
        dpn`-: yes
      • because a url should be ascii
      • dpn`-
        this is news to me
      • hawkowl
        glyph: ^
      • we had this whole discussion when URI came about
      • dpn`-
        hosts should be ascii (idna)
      • but afaik the path and query etc have no such restrictions
      • hawkowl
        they should be url escaped
      • teratorn
        dpn`-: I think they would be redundant... zmq is message-based hence it must implement a framing protocol on top of whichever byte-stream transport you utilize. AMP implements it's own message (box) framing...
      • dpn`-
        that could well be true - i'd have to look at rfc's to verify
      • teratorn
        dpn`-: not that it would actually matter at all in practice, but im considering doing a version of AMP specifically for use on top of an already-framed "transport" like zmq, or perhaps something very very similiar to AMP but done with msgpack (MAMP?)
      • (MPAMP?)
      • i've seen zerorpc and it's basically a stupid version of AMP
      • kenaan
        03hawkowl 10r4709914 trunk 05A(8253.removal) 06D(msn_example.py msn.py test_msn.py) 07M(index.rst __init__.py README): Merge rip-in-pepperoni-msn-8253: Remove MSN (twisted.words.protocols.msn) ...
      • hawkowl closed <https://tm.tl/#8253>; - Remove twisted.words.protocols.msn
      • teratorn
        exactly how stupid (or how awesome in for certain uses) I'm not sure yet...
      • I need an RPC thing on top of zmq that has AS3, JS and Python clients...
      • I know AMP already has AS3 and JS implementations of various quality and level of completeness... zerorpc lacks any existing AS3 code afaik, not sure about JS yet.
      • dpn`-
        yeah I'd end up doing whatever each native queue engine uses for RPC tbh
      • surely AS3 could just use json?
      • hawkowl
        teratorn: you could use wamp :D
      • teratorn
        that's the problem.. zmq doesn't provide any RPC
      • it's just framed sockets of various shapes/sizes
      • hawkowl
        (wamp over raw sockets is a thing too)
      • teratorn
        supporting various topologies and messaging patterns
      • I would prefer something with an efficient binary encoding...
      • hawkowl
        wamp has msgpack :D
      • teratorn
        I don't know much about WAMP at this point in time.
      • dpn`-
        to me it sounds like the redundancy is actually something you could easily wear until performance becomes an issue?
      • hawkowl
        disclosure: i kinda work on it
      • but it's kinda cool
      • dpn`-
        then you would have justification for digging further
      • hawkowl
        and it supports js and twisted and asyncio and cpp and there's .net clients and stuff
      • teratorn
        dpn`-: well performance *is* an issue which is why I'm replacing our really crapping ad-hoc AMF-based remoting stuff.
      • but yes, double framing is probably the least of my performance concerns.
      • dpn`-
        so hawkowl as a matter of interest pre #7407 was everything forced to ascii?
      • hawkowl
        dpn`-: i think fromBytes throws a fit if its not ascii
      • URI.fromBytes
      • dpn`-
        teratorn, we use rabbit over zmq because of stuff like this :P
      • hawkowl
        dpn`-: pre-that it wasnt forced but it shouldnt have worked
      • dpn`-
        teratorn, but we care about validity more than performance
      • hawkowl, ok noted. these _are_ scraped urls, so we should probably stop being so lazy
      • hawkowl
        dpn`-: i can give you a thingy
      • hang on
      • dpn`-
        thingy's are shiny
      • thingies?
      • gah.
      • hawkowl
      • dpn`-: if you can make it unicode, then URL will encode it to bytes for you
      • otherwise you will have to use urlescape or something
      • from the stdlib
      • dpn`-: " The other is the older, US-ASCII-only representation, which is necessary for most contexts where you would need to put a URI."
      • teratorn
        dpn`-: rabbit is kind of shitty
      • hawkowl
        so yes, any random-ass bytes (or random ass-bytes for that matter) do not belong in a URI
      • teratorn
        like, there is zero doc or support for actually running it standalone/portable as a non-root user
      • it really really wan't to be installed system-wide as root
      • i wanted to use celery with rabbitmq but it turned in to a huge pain
      • dpn`-
        teratorn, yeah it's certainly not the happiest place it could be
      • teratorn
        hawkowl: does wamp have an AS3 client?
      • dpn`-
        hawkowl, legend, thanks
      • teratorn
        plus we have to ship a bundled pre-built erlang on every platform we ever support, currenlty the big 3
      • hawkowl
        teratorn: as3 being... actionscript?
      • teratorn
        hawkowl: correct
      • hawkowl
        teratorn: does... does as3 even support the network
      • i am now scared
      • teratorn
        but linux is like one million platforms when you start talking about shipping pre-built binaries
      • it's flash, sure
      • hawkowl
        teratorn: if it's sufficiently ecma-y, then, i guess autobahnjs will work
      • teratorn
        flex/flash
      • hawkowl
        right?
      • or am i underestimating it
      • teratorn
        it's a decent enough language for what it is
      • dpn`-
        hawkowl, wow this literally just allowed us to scratch a few tickets (mostly related to idna and other fun topics)
      • teratorn
        hawkowl: I'm not sure how anything JS works on AS3...
      • hawkowl
        teratorn: :(
      • teratorn
        but uh, I guess we *can* use JS in the browser alongside our AS/Flex application
      • hawkowl
        teratorn: http://wamp-proto.org/implementations/ doesn't list it
      • teratorn
        im not sure how you talk from AS to JS
      • hawkowl
        oh huh. there's an erlang wamp client now
      • teratorn
        i'm not sure the pointy-haired boss would approve
      • or if I would even want it... these protocols are not so complicated that I can't implement them in under a day in AS3
      • hawkowl
        teratorn: tell him there's an RFC
      • :P
      • teratorn
        (approve of having AS3 call our network code in JS, when our network code is already in AS3)
      • hawkowl
        teratorn: well the only benefit you get for picking up something like wamp is that then you get crossbar.io or something as your router which sits there and routes your crap to whatever you want
      • teratorn: wamp is mostly some dicts serialised down to json or msgpack
      • w/ well defined rpc and pubsub
      • teratorn
        plz tell me you're not trying to sell me cloud
      • hawkowl
        teratorn: DID YOU KNOW WE HAVE A CLOUD TOO
      • teratorn: lol no
      • teratorn: cb is FOSS
      • teratorn
        this is a desktop app
      • hawkowl
        wait what's it connecting to
      • teratorn
        that just happens to use web crap
      • and is distributed in nature
      • hawkowl
        teratorn: oh obviously you need a blockchain
      • teratorn
        ie certain processing happens in different processes, perhaps on the same computer, perhaps not
      • hawkowl
        teratorn: ah yeah, just json some things down a wire then
      • or msgpack if msgpack has an es3 impl?
      • msgpack is really nice
      • teratorn
        it does, AS3
      • hawkowl
        as3, right
      • yeah, msgpack is great
      • teratorn
        well msgpack isn't an RPC and neither is JSON
      • i need a protocol for RPC on top of the encoding
      • hawkowl
        oh well. hm
      • hawkowl sips tea
      • glyph
        yeah we should do a JSON encoding of AMP
      • an official one
      • teratorn
        hence the debate over AMP vs zerorpc vs whatever you guys tell me about in the next 5 minutes before I start thor dropping noobs
      • hawkowl
        glyph: did you know
      • teratorn
        glyph: and a msgpack one!
      • glyph
        teratorn: I think lvh might have odne one
      • hawkowl
        glyph: msgpack on cpython is slower than json on pypy
      • teratorn
        glyph: good to know if true!
      • glyph
        hawkowl: not surprising
      • hawkowl
        so if you're cpu bound (which in our testing, crossbar is, because it's routing stuff and doing checks and things), makes a difference
      • pypy is hilariously fast
      • teratorn
        we're mostly cpu bound I believe.
      • any heavy data can go in files on a shared filesystem.
      • hawkowl
        teratorn: call up alex_gaynor, get pypy targeting as3
      • #speed
      • dpn`-
        haha