The Report Of Twisted’s Death

Video in TIB AV-Portal: The Report Of Twisted’s Death

Formal Metadata

The Report Of Twisted’s Death
Title of Series
Part Number
Number of Parts
CC Attribution - NonCommercial - ShareAlike 3.0 Unported:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal and non-commercial purpose as long as the work is attributed to the author in the manner specified by the author or licensor and the work or content is shared also in adapted form only under the conditions of this license.
Release Date

Content Metadata

Subject Area
Amber Brown - The Report Of Twisted’s Death This talk will teach you how Twisted or Tornado supplement asyncio, how asyncio can/is integrated with these frameworks, and makes a case for the continued development of new and existing selector-loop based frameworks. It will also paint a picture of the future direction of Twisted, why the original plan of asyncio as a standard API has not come to complete fruition, and what can be done about it. ----- Historically, there has been no “standard way” of doing asynchronous I/O in Python. A variety of solutions, from using threads (WSGI), processes (multiprocessing), green threads (gevent), or selector loops (Tornado, Twisted) have all been used to similar degrees, but apart from the (now deprecated) standard library asyncore/asynchat, Python itself did not have a blessed option. PEP 3156, or “the asyncio PEP”, introduced in Python 3.4, provides this blessed option, choosing a standard selector loop approach (or “reactor”, in Twisted parlance). The role of asyncio may seem muddled in the eyes of developers new to asynchronous programming, or those that may not understand the technical details of asyncio nor the political environment in which it was created. This talk will teach you how Twisted or Tornado supplement asyncio, how asyncio can/is integrated with these frameworks, and makes a case for the continued development of new and existing selector-loop based frameworks. It will also paint a picture of the future direction of Twisted, why the original plan of asyncio as a standard API has not come to complete fruition, and what can be done about it.
Software developer Code Weight Website Core dump Right angle Line (geometry) Web browser Grass (card game) Local ring Twitter
INTEGRAL Multiplication sign Disintegration Binary code Projective plane Bit Binary file Mereology System call Perspective (visual) Web 2.0 Data management Data management Explosion Software Different (Kate Ryan album) Blog Core dump Cuboid Form (programming) World Wide Web Consortium
Multiplication Thread (computing) Multiplication sign 1 (number) Thread (computing) Connected space Web 2.0 Frequency Goodness of fit Process (computing) Personal digital assistant Computer cluster Software framework Software framework Process (computing) Quicksort Family World Wide Web Consortium
Point (geometry) Programming language Default (computer science) Overhead (computing) Thread (computing) Overhead (computing) Code Server (computing) Event horizon Perspective (visual) Thread (computing) Connected space Mathematics Read-only memory Semiconductor memory Condition number Condition number
NP-hard Thread (computing) Multiplication sign Parallel computing Disk read-and-write head Event horizon Universal product code Semiconductor memory Interpreter (computing) Software framework Extension (kinesiology) Condition number Overhead (computing) Parallel computing Physical law Stress (mechanics) Bit Database transaction Cartesian coordinate system Thread (computing) Type theory Explosion Process (computing) Software Logic Personal digital assistant Green's function Interpreter (computing)
Socket-Schnittstelle Functional (mathematics) Computer file Multiplication sign 1 (number) Electronic mailing list Open set Disk read-and-write head Event horizon Writing Operator (mathematics) Core dump Socket-Schnittstelle Block (periodic table) Computer file Electronic mailing list Core dump Bit Open set Entire function Vector potential Uniform resource locator Software Function (mathematics) Buffer solution Quicksort Physical system Writing Reading (process)
Laptop Addition Implementation Mapping Computer file Execution unit Content (media) Sampling (statistics) Control flow Bit Connected space Particle system Word Transportprotokoll Computer hardware Formal grammar Software framework Selectivity (electronic) Endliche Modelltheorie Series (mathematics) Implementation
Functional (mathematics) Implementation Thread (computing) Multiplication sign Control flow Database Parallel computing Client (computing) Event horizon Power (physics) Twitter Population density Befehlsprozessor Pattern language Cuboid Process (computing) Task (computing) Physical system Multiplication Demo (music) Information Block (periodic table) Concurrency (computer science) Parallel computing Computer network Core dump Client (computing) Database Control flow Cartesian coordinate system System call Thread (computing) Connected space Web application Population density Word Data management Befehlsprozessor Process (computing) Software Personal digital assistant Quicksort Block (periodic table) Resolvent formalism
Object (grammar) Object (grammar) Flow separation System call Resultant
Scripting language Point (geometry) Domain name Covering space Scheduling (computing) Weight Real number 1 (number) Bit Control flow Cartesian coordinate system Event horizon Event horizon Computer configuration Personal digital assistant Order (biology) Synchronization Uniqueness quantification Pattern language Quicksort
Suspension (chemistry) Functional (mathematics) Implementation Electric generator Weight Multiplication sign Physical law Control flow Coroutine Control flow Protein 2 (number) Curvature Personal digital assistant Synchronization Software framework Quicksort
Frequency Weight Single-precision floating-point format View (database) Synchronization 1 (number) Planning Line (geometry) Quicksort Control flow Event horizon Resultant
Proxy server Mathematical analysis Control flow Event horizon Medical imaging Event horizon Term (mathematics) Different (Kate Ryan album) Software framework Software framework Quicksort Implementation Library (computing) Library (computing) Default (computer science)
Implementation Event horizon Direction (geometry) Blog 1 (number) Software framework Software framework Control flow Implementation System call Software bug Default (computer science)
Multiplication sign Source code Similarity (geometry) Primitive (album) Parallel computing Protein Event horizon Architecture Computer multitasking Communications protocol Proxy server Exception handling Computer architecture Physical system Multiplication Coroutine Instance (computer science) Line (geometry) Computer programming Inclusion map Particle system Process (computing) Network topology Quicksort Communications protocol Window
Implementation Information Line (geometry) Multiplication sign Code Data dictionary Direct numerical simulation Core dump Synchronization Queue (abstract data type) Square number Software testing Software testing Abelian category
Installation art Distribution (mathematics) Code Line (geometry) Multiplication sign Code System call Equivalence relation Particle system Analogy Core dump Synchronization Website Cuboid Software testing Utility software Communications protocol
Email Slide rule Code Line (geometry) Gender Code Bit Line (geometry) Parity (mathematics) Thread (computing) Equivalence relation Word Internetworking Synchronization Software testing Quicksort Figurate number Communications protocol World Wide Web Consortium
Email Implementation Arm Code Line (geometry) Code Similarity (geometry) Streaming media Parity (mathematics) Thread (computing) Similarity (geometry) Word Facebook Internetworking Facebook Software framework Energy level Software testing Communications protocol Extension (kinesiology) World Wide Web Consortium
Point (geometry) Focus (optics) Matching (graph theory) Weight Disintegration Bit Coroutine Control flow Focus (optics) System call Military operation Pauli exclusion principle Synchronization Quicksort Physical system
Functional (mathematics) Electric generator Dependent and independent variables Code Code Bit Coroutine Event horizon Celestial sphere Synchronization Codierung <Programmierung> Quicksort Resultant Sinc function
Web page Email Application service provider Functional (mathematics) Overhead (computing) Computer file Code Dot product Control flow Event horizon 2 (number) Web 2.0 Revision control Moving average Theory of everything Information security Dialect Patch (Unix) Block (periodic table) Weight Web page Physicalism Bit 3 (number) Coroutine Grand Unified Theory Particle system Arithmetic mean Voting Synchronization Interrupt <Informatik> Quicksort Form (programming) Abstraction Spacetime Booting
Multiplication sign Multiplication sign Set (mathematics) Branch (computer science) Branch (computer science) Quicksort
Web page Inheritance (object-oriented programming) Line (geometry) 1 (number) Incidence algebra File Transfer Protocol Particle system Telnet Factory (trading post) Cuboid Social class Pattern language Communications protocol Cuboid Physical system
Installation art Server (computing) Poisson-Klammer Multiplication sign Density of states Web browser Client (computing) Revision control Square number Library (computing) Freezing Writing Library (computing)
Inheritance (object-oriented programming) Public key certificate Single-precision floating-point format Uniform boundedness principle Physical system World Wide Web Consortium Socket-Schnittstelle Dependent and independent variables Arm Public key certificate Interface (computing) Projective plane Shared memory Code Basis <Mathematik> Compiler Particle system Angle Personal digital assistant Interface (computing) Software framework Website Encryption Quicksort Communications protocol Library (computing) Renewal theory
Ocean current Socket-Schnittstelle Implementation Inheritance (object-oriented programming) Code Server (computing) Projective plane Binary code Code Staff (military) Revision control Mathematics Revision control Software framework Speech synthesis Automation Software testing Software testing Right angle Quicksort Uniform boundedness principle World Wide Web Consortium
Just-in-Time-Compiler Machine code Multiplication sign Control flow Product (business) Connected space Direct numerical simulation Particle system Personal digital assistant Computing platform Speicherbereinigung Video game Software testing Quicksort
Estimator Windows Server Revision control Computing platform Video game Software testing Software testing Right angle Mereology Computing platform
Computer file Code Internet service provider Pattern language Software framework Data structure Curve fitting Window Product (business)
Building Context awareness Group action Code Correspondence (mathematics) Multiplication sign Execution unit 1 (number) Sheaf (mathematics) Mereology Food energy Computer programming Heegaard splitting Coefficient of determination Semiconductor memory Different (Kate Ryan album) Mehrprozessorsystem Network socket Core dump Software framework Series (mathematics) Extension (kinesiology) Descriptive statistics Area Email Arm Constraint (mathematics) Mapping Optimization problem Electronic mailing list Bit Database transaction Benchmark Sequence Entire function Type theory Data mining Wave Process (computing) Interrupt <Informatik> Right angle Pattern language Quicksort Writing Web page Ramification Trail Functional (mathematics) Divisor Cone penetration test Variety (linguistics) Real number Parallel computing Field (computer science) Revision control Frequency Workload Goodness of fit Crash (computing) Latent heat Term (mathematics) Utility software Integer Data structure Computer-assisted translation Mathematical optimization Condition number Multiplication Dependent and independent variables Interface (computing) Weight Content (media) Variance Basis <Mathematik> Cartesian coordinate system Limit (category theory) System call Particle system Software Integrated development environment Personal digital assistant Network topology Statement (computer science) Interpreter (computing) Speech synthesis Finite-state machine Natural language Communications protocol Family Library (computing)
so however I and and Brown found commonly known as local amusement and here's my twitter and my website so I have quality would oppose that full amino that I'm running 100 so wouldn't of Perth was this earlier on if you're wondering where
that is in the world right that comes from like letting housing almost like regulating you know it's been it's a lot I I mainly
work on the twisted apart from In my sorry I'm a co-developer
and released Monday and by the way that would cause the was close to 1 3 on few so that obviously had a hand putting about 40 thousand lines of code which is about 20 25 per cent of this is of the based on as well as sorry things and some things that he's twisted so this is pretty much you know how how it is when working so area and and his day because of my i watch which is covered by we I do weights of the grasses and WebSocket obviously and some stuff all your browser is all of that so
I also you due on things release management there's well binary release management and stumbled things by the 3 calls as well as on Web API and REST integration into the of so
the original idea for this talk comes from Sivic Russell capability and with political so Ross asking the question why is twisted relevant when there's a Sinclair now we know is the reason why it's relevant but he likes to play devil's advocate so but I think it is you know kind of work answering for those that aren't as ingrained into it as as I may be or as he may be from the writing about that like endlessly whenever this part published a blog post about and it goes into all of the same things I going to go into the box you know it's it's good I I recommend checking out and he talks about it from a more alone also the perspective of the being part of a project for a very long time and I've been on a fall of 3 or 4 years so it's a bit of different perspectives as far as the time now 1 of the core problems you have when you're writing any software pretty much ever is that you want to do some form of ion now I mainly do web
sorry you have web frameworks and there'll different goods except the problem with the from this hilarious stroke is
that the more conventional ones like January period fast all about only really serve 1 request at any 1 time now way get around that is you deploying using run and that these runners have multiple copies of and they put these multiple copies and French process so you you are effectively still processing 1 request at a time but you're requesting a dual family requested parallel so it sort of gets around in in a case of now in Python specifically threads or processes 1 really help you be what's called the text OK which is 10 thousand car connection now when he tried you know it's sort of ends up looking at it like
this are mainly because in
Python ends in programming languages it in our in general threads of very hard to you safely where the race conditions and it's really hard to reason about your code from a purely like reading the current perspective because the relevance of the threads decide whether they want change between each other or not you don't get control of that you can try to control over a reducing on explicit your point but this doesn't always like for example the event but this doesn't always work there are also the scale within Python-specific because if you have 1 friend connection you would have fared memory overhead now that's like the stock soared by default it's like 8 megabytes all on Python that's memory now even if it doesn't use all of our 2nd step up pretty quickly if you
just using 128 kilobytes how are you afraid for the stack and some various other things if you have 10 thousand those friends you gonna have like 1 . 3 gigabyte hard head without doing any processing all and none of your business logic none of you will like fancy application stuff just 3 and until the Joint-ME to me happens or until software transactional memory of type becomes a feeling that you can use without downsides you don't end up with parallelism evil because the glottal interpreter law means that only 1 of these threads may be running Python at any 1 time you can get around which the extensions so you can be heavily heavily thing in world but if you write in Python that you're probably going to have at least in the early stages everything advise you you you can't afford to put everything in C is C extensions siphon makes it a bit easier but you know you give it's still something that you have to special case the easiest way of maintaining it and the fastest of production code which is not good because you want them to be kind of 1 and the same you also want the stress properly pretty much no 1 in this room can different probably even if you've reasons trained using coded there's probably some social thing where it's going wrong and you won't know until it's really really it's obviously is a fun thing is when people say that you can do refer properly especially like when they like saying 13 and that works you know applications you if you look at the CD dollar-based and such for race conditions and look at women's threads race condition is being untold amounts all the damage from not handling effort directly from a small race condition microthreads like g events in village and that not really better they still have some of the similar problems and it talks about them much better than I could go on and check now always like to be of aligned to the 4 it's getting this even short and are now something that
twisted users as well as tornado erasing all those frameworks is not of asynchronous I O so we'll use it it's the
common approach on compared to for example amendments and you G events which use green interested was 1 of the 1st hour and it's been around head for knowing history at least since 2001 as bits of CDs before it all about is lost a tough and a list of potential something about on wrestling with to get they catching up on the 21st century and the amazing this entire is a bit so it's it's it's been around since 2012 was 1 of of 2 in the very core of when they both use the identical systems for and they're called selective function now they're like selects all the ball and what happens is you give them a list of out of those for example sockets open
files of a network of 3 Unix expired schools sorts of things that really anything that has evolved and will tell you what is race have operations Donald the most common ones the use of reading and writing because you have for example you would go read anything of the kind of thing what think you would be all right anything if the repetitive send buffers completely so if the selective functions so you when you can do these things without block it so that you can tell it to do it a location that it would take an instant amount time that's what
loops can quite easily handle thousands of how the hell out of models of that and that's the set so for example here this does just all my map it can support seating on my Mac with just making you limit so it can accept 10 thousand connections and works fine with not really that much the few words that is something that you can do on commodity hardware you can do it on you know a standard laptop you might want to have a bit more Bayesian machine if you're serving actually 10 thousand concurrent real people all doing really well but it's not that cold it's not a problem to handle that many connection you can have with the select loops and he's like frameworks like I think I twisted you can just do it you you don't need to worry about having things in sealed that to handle me connection during what happens is that channeled through transport so for example a TCP connection UDP . grammar units suffered of a file or anything to a particle implementation so vertical implementation is the theme that actually takes the bytes and transforms back into something useful for example he she it goes from a series of red and white someone of we've whatever the tolerant content might be there and in addition the particle once we call them into something can interact and these frameworks
sending daddy's cute until now what was ready because if you try to send 1 megabyte file and you and other 512 K in dumplings it's gonna be quite a few samples until you can send all of the all of that other dominant and nothing
blocks because it waits until things can be done and then it just says you know what I'm waiting for this you can serve all these upper connection unaffected so is the thing
that uses the selectively all the things that uses select the function of the cold was opponents reactive named after the reactor has because started coming in these events and the reactive the great thing about it is that
you end up with a much higher density per call now that's acceding K demo being that screenshot of that was only using 1 call that wasn't using multiple threads of multiple calls those was just a single thing you you also we don't need to have friends around so it works on things that don't support friends and it also works on our local also means that you don't have to furnish you still end up with binary parallelism because you still only 1 CPU thread but you end up with concurrent you can handle multiple requests of 1 because when you come continue serving 1 request you don't and let the loop handle the next the best case for our resolve applications that all us right instead so they do a lot of i for example are sending stuff down network your for example on Twitter you you don't really do a lot of CPU intensive of you may be sensing pictures and send some text and mainly wait for the daughter base to come back with that all the clients and some information or what all that sort of thing so because you're not using a lot of CPU power connection you can hold 10 thousand 20 thousand times as many as you want bring as much as you have read as much as you do you dial out can handle that it also works really well when you highlighted because clients might take spending into some amount of time to respond now if you have 1 if you have 10 friends and each 1 is serving a client that is offered picture and the clients suddenly decides to not saying you when he died of a 500 ms that's straight is being occupied with 500 ms doing nothing but is still locked and still waiting for doubt copper and nowadays it probably waiting only the clients and you information all the database to give you information generally most web applications nowadays are thin layers on top of databases and on top of sort of task management systems like celery that actually going to the Hon processing all specialized like farms on novel boxes not new words some of the implementations come we have nice structure sorry that you don't have to handle all its like directed at the most common 1 is
that they provide an objects and that object is a standard for some results in the future on and a way of telling you when that result
now feature in its entirety is 1 of twisted uses they very much the same if did slightly different ways of operating but they both have the coal concept at the composite around we don't actually have a result for example a deferred if you want to you you have a deferred which is an empty thing it it does not have a result yet you tell us that you want to print when you when it calls the calls back result and the whole back with results so now the firm has a value that works through the call back features work very much the same have future which is empty your article back to it and any set results now that 2 different ways of saying you know you have collect the union of several they're they're pretty much identical identical apart from 1 little thing
differs from callbacks as soon as there is that little run synchronously and when yields the Ireland but features we all schedule of back to happen on the next trial which is a bit fairer and bring much whole different this script so if we got twisted but what we need a new solution might we need anything
only 2012 was kind of a bit of a man on as far as president comes events
Finland when ported yet so that only happens this year I'm only so it's been quite welcoming not much into a establish order so you can really build any real application loan to some pattern for Western tornado have been called so you could write it if you were using that tornado use so our slightly less used to them like events interests and all that so if 1 of the 1 of the major ones was supported by doesn't cover everything elsewhere OJS was completely exploding popularity using like people out of the but for everything to to everything was sort of happening very fast and sink awaits us when domain for point 5 so it was sort of a nicer way of doing this sort of asynchronous no no is quite similar to this inquiry was still has the same event we for users of would you which is a layer on top of all of our selective options but also it's very much the same and it did sort of give credence to the idea of this being a workable solution for pretty much everyone that it was no longer something that was kind kind of Nietzsche that you could just put things and for example that there was a real use cases hi this real option was kind of giving you know it's it's always going to it's always taken evolves full Python 3 to get massive adoption but there wasn't really anything that was sort of Python 3 is cool thing over anything that you could really look at because they were talking at only a single Europe was not as clean up the knowledge about so why
isn't specific it was
designed around now covered things in Python are a special kind of generate on so generator is a function that it's sort of suspense so it it might not have a value yet so it suspends until about the kind of similar to the trouble that of Python 3 . 5 especially contains syntax that makes features act like proteins encouraging the like features and various other things so that makes them so if you want to get on the for example the the this for
example the other it's just the loop that pretty of time for 5 seconds every 2nd for 5 seconds and using a special thing then for the so the special thing here is case in there now that is what defines the curvature you also have a special keyword here called the weights now always is very much like yield is entitled to and so I accepts good it doesn't actually talk to the generator itself the delegates to subject of because it's a little weird strange how this works but it does mean that the implementation of a law cleaner and those being that if it works a lot nicer especially when you basic definitions like for all these sorts of things reducing 3 . 5 main working with retains motivating herself so much easier because all you need to do to white is just time and then if you can wait on it it will
so it is entirely don't sleep 1 return the future now in this 1st thing you can wait on a future and then I will wait for the results so if for example
plane is so what happens is this view that this line here and suspends until the future returned by a single period of sleep actually has a result so it doesn't just people would think if weights the ones that now because it uses the event would kill it doesn't actually mean that these weights 1 2nd all of these told the reactor in 1 2nd stop suspending this feature like tell this feature that it has a resulting 1 step so that it will continue with with so you don't have to worry about coal you have to worry about all axes structuring of because because it just acts kind of like the role 500 which is very sort of fun another thing that
entirely is really needs to was prepared library fragmentation because you've got
twisted you've got tornado you've got imaging event for example all have a different way of doing things they shouldn't really be so many different ways of doing the same task and if you look at the then the kind of should be 1 and and probably of and should only be 1 way of doing so this sort of virtually was like he is the 1 that is how you do it and all these frameworks and you can implement endured Stewart 3 or 4 different ways you just to avoid course we all know that xk CD comments about how esthetic standards we should define 1 analysis 31 and the things that but you know this this term is kind of difference is that we talked it also prevents
reduce duplication
because they think I would implement the the same thing that always react all these selective frameworks has in turn which was selectively facing brontosaurus then that means that all these other frameworks don't have to have what is essentially the same call that can be 1 of 1 central 1 centrally maintained all the bug fixes happened there all of the knowledge can be pulled into the 1 implementation you don't end up with several ones that have several small blogs all works slightly differently all halves downsides you have 1 and then it can hopefully be the best so it doesn't tell you were
placed to well not they
were doing the same sort thing they have cooperative single-threaded multi tasking primitives for supporting asynchronous programming like features like for instance proteins like in 1 back into a of these the same
system maybe you select all the that you might windows and it is single kind of took the particles and transport substructures for President which separates the thing that is the wild and think that processes and the actual bytes of while as 2 separate concepts on which is really handy if you got things like and TCP except it's actually TCP or go some of the protocol which happens for example and I think it's like TCP socks or whatever the old proxies so thing it it works a lot better if separated them out so that the individual particles don't have to care about what the principle is so that it has the same sort of benefits of trees in that regard also Avery Architectural similar in time if you really interested reactor source code you read the inquire event source code you can see the same things being done slightly from lines but they're essentially doing the same thing and as a new 1 and standard ACI in it's just there the 1st of all you have to pick install anything you don't have to worry about any of and you just importance in my own off you go no where this
fall down is that twist and is amazing by placing prior itself so Mexico and the same kind of thing and surely you only need 1 of the the so twisted just used to replace it with a new stage with a thing work because this
information is like an apple and twisted is a fruit salad
twisted is for example much bigger and as for example here if you look at the amount of 1 square we have it's a lot more than a half wheels and a lot of comments which on this so if you if you remove the test and then you just do the queue implementation it's like 10 times bigger that's not because twisted is 10 times larger or does the same thing in 10 times the core it does a lot more than it's not only the core reactor is also a for example here I map of pop 3 DNS SSH all these different things and because all those this in 1 package because when twisted was 1st made for nothing else really kind of do in the same way and it was a where a lot of things that have that twisted does that Clinton didn't have yet for example the dictionaries we have we had our own I think we just recently raised that when we drop to see to seek support we had separated the dictionary lying on because it wasn't in Python tools to automatically
and 1 big package was very much easier to distribute in the early days what you don't have to it then apply the idea that works as well as the the and even if you did have party I was down every 20 minutes and what it wasn't a good time so if you have 1 package you have a lot easier to use analog easy-to-install is not 1 thing and also same with basically everything you need batteries included if we pull this
down to what twisted out what they facing kind of any equivalent twisted code the very much the site the calls are essentially equivalent and this equivalent
core basically those present in the core a Sinclair to or a couple of Python utilities that was the has that impacted 3 now and a couple of particles that uses all the boxes and quite basic for and all right and the
wrong like this slides showing that only Python code for example Figure 1 . 9 is very much the same society which so it was is being the gender of the this is the sort of has lots
of practice and so on so as you can see that roughly about the same size are in line with you a little bit bigger but you but if you
actually look at what twisted does internally and what he needs a goes to do you to do the equivalent of being it is very much so all of the same you going to end up with a lot of courage so some people say that in I'm using various employed to twist is avoided the covering it is
like good old with all the code very big employed both of
which states we also have some
vertical implementations that I'm quite amazing likely to be to all the the that's in they are hit him to yeah there might be 1 or 2 but to establish like nearly responsible for it but enough about
let's talk about 20 to 0 30 years is 1 so tornado you
another asynchronous frame of of its as specifically asynchronous with different it's made by 4 in the the arm which was labeled by Facebook and then was torn apart and you know those old because what happens if you all Facebook then it's sort of similar in some ways the transport is very similar to the irish strain but they're particles the beam extent they don't have to worry about the general general generality the 1st level of generality that twisted anything higher it'll
implemented select fully armored does actually interesting facing bio-integrated seeking yield above the annual features and they
might actually remove very badly than just replace it with a single so as you can see that there nearly got a bit further into using the standard sort of thing and really great example of interoperation and if kind of the future of twisted now
interoperation costs has anyone has ever had to work a system that similar but not quite the same you know it's
a kind of has it's difficult my focus has been liaising quaking work on this was introduced and they're like you get that is there a full 9 and I believe was mostly written by conference it was interesting that the point 5 so it's in fact and you can use right now and it's pretty cool I give a a good example of how earlier makes things a lot easier to read and looks a lot like you recall I think of you know where the call worry recollect held it out and lenders for all sorts of things just to added value together and possible matching because the weights and then you just do it alone a so late as
identified I as I explained that the result of protection so works you have occurred seen anyway John encouraging which is sort of like a feature now in its encoded bits of act like each other and they are as a special kind of general
celestial from delegates to a sub generative and it lets you have the synchronous code in asynchronous stuff which is that the main brought twisted had
as sort of the same sort of thing since around 2006 called like callbacks you use the old the old function which is very much similar hound you event that you use your walls and then you right so that the standard Python code in you don't worry about that but I am working on the
interrupt and coming soon is a little thing called in front of the and what that does is it takes security and so it turns it into a deferred and then in itself can wait on the phone so if if you were right
twisted occurred on 3 . 5 you can just the way things you don't have to worry about the whole actually think that if returned deferred just way and then if a then because they think that it is actually made unlike
kerosene yes I said the 12 seconds ago to about on its security so you just go down here and show two-thirds of a function that takes the pro retain and that returns of so that means that you can write this code and if it's like user I I accepted the fair you can be a lot on the sperm right this facing that function and yet it doesn't not because the return the new feds also coming is facing criteria reactor we choose a basing a twisted reactor of on top of zinc ion sorry sort of replacing voters twisted internal makes inquiry in this sort of regional durable was about half of its optimizing code so that means that you can share the different things so you can have a twisted particle all in this example for example this is a a overhead should be page http so using the loop which is the like 5 high-performance on I think I've read so is trick here is that was the thing and I hate nation's by thinking we just get the reactor and interstellar yeah we're running and this year is just currency in which is an AI overhasty pertains prevent Helen web request and we're doing some twisted as interest from some stuff in their respective that feature and then the covered just believes that space and higher quality weights and wait for the Fed file and because they're running on the same reactor underneath they will sort of they want block the other so we have to have some amazing stuff some twists stuff and went really they get his physical of is deferred or the 3rd picture so I've Linux version of his so come with on this entire you don't need to catch 1 the little things on mean something with them that I can't US war on a bit more but you know it is there very is very close to having that sort of thing we can have tornado twisted amazing higher all using the same event live and you can sort of bring urine and bring the different abstractions from the different frameworks and use whatever your most comfortable but why is itself apart from a coyotes to what you really
stop and we have read plus
Our time the other we have releases 26 things that have find releases which is called the quite often enough so best size of twisted sort of forget that means that when going to be able to get features out a lot quicker than for example a Sinclair because they think it has to wait even for you get released on which I'm not sure when they do it all always for the Python that something's releases taken off from branch that we just say Get will release here so you don't end up with a big features that so half merged because of strong stohastic he was so you can get the cutting edge pretty safely we don't lot
vertical on a box so is
just a small list of like to some of the random ones I think need not thing about much but you know announced on so all of them and some of them applauded Python 3 some of the wants it just comes down to someone saying of we use that particle we won't be on pattern 3 and then I set up at 3 AM audience and that's called basically and simple easy actually
make your own particles so if you need to talk to some custom system we feel like writing your own particles for whatever reason you can just do it in 2 incidents synchronizing kind our it's very quite easy so that there is just the example of something that just out of 1 of these into atomic manner this page
3 2 which is really cool because this is pure Python HDP to you so this is a balanced next without actually all about pure Python so you can just give install twisted square brackets had 3 to and in the set up your DOS it's good because that's how it negotiates that your browser says I want to speak to you in the TLS request and then you just like you have had to be to and the freezing with have also pushed off in the client support and is kind of cool that you can do this in Python and this also means that when we get to that future future of working that you can write anything approach that uses a P 2 it's a duet
established library support would been around for a very long time and we do have a lot of any little thing 1 of my favorite
library system exactly and which is a python interface selecting credit and was you do automatic subjectivity so if for example you my website which is that we will now don't have you get gets are that he she you go response to cases yes now I don't actually choose provisions that gets anything like that I just turn on the except exactly algorithm automatically gets it gets this is the and does the chance to handle that and that's about so I have like a straight a SSL rest without ever actually having to look at a certificate this Hendrix which is like that was the runner arm which is a twisted with the WebSockets and the lessons decoding sidelobe blocking angle flask whatever so it's a it's a pretty cool project what around
which is 1 of things I work on which for example because twisted and Eysenck share the same sort particle and transport it's the of the library that that has a single protocol and solutions for twisted sorry you have the same sort of dependable basis all WebSockets and work the same all nice quiet and twisted arms and it works pretty well on the pipeline the optimizing magic compiler which is also very good and also the hate to stop he also worked very well on
the 5 prime and is actually probably 1 of the faster the speech to implementation that were
so a very dependable base because we try not to
break a code now as some people that have been on the receiving end of my releases binary or we don't always do this which was is a very big project and trying not and that's kind of you know at least half like not breaking we reinterpretation like so we don't have . 1 2 . 0 we have 3 . 0 we say that we want to get rid of the usage of this so we're gonna have a new version that does things right and wouldn't deprecate feels 1 and immediate will endurable sometimes depends largely just remember so when you operate from for example 16 . 3 something not been deprecated see the deprecation warning if it's and income by like 17 . 3 it's got so it means that we constantly getting the new staff and update the staff and it's a lot more fluid than if you have for example that the 2 . 0 release the brakes everything and then you end up never ported gives these to make sure you're latest version is that which is pretty easy because the releases of every couple months so they're not huge changes are small I did not bring we basically impunity you can just see that there's deprecation warnings and you run your tests against them because you have test don't you yes you run your tests and then you can go OK everything is fine and then when something does break you just fixing 1 little thing not the entire body this a review of current review sort of the thing that was that this and now everyone else is doing it so it because this great how we have lots of automated test like thousands and thousands and thousands texts so we try to make sure that everything in our current based we work because we have a test to prove about 90 cents so you could only right like if using the 10th which is actually probably stuff like what was that if you use the MSN support which I removed the stock initially using of terrible under you can also add typewriter with because most about has passed when working on
getting the last 10 or 15 tests the roles the Python assumptions like that just in time the garbage collector sorry this seems like when goes that's going to be immediately garbage-collected not not the case of life I mean need to alter a test where we had a lot of people running in production we're running in production of self and the performance of this speed that is absolutely amazing even can handle like twice as they TCP connections just by switching and I think what you can do so the Gillian more DNS requests and you can do so much templating a 2nd because it's a just-in-time compiler so those cool enough you know loops world sponsored machine code and then they go we thought we support amongst
particle sort that means that
test positive I form and we use data in emerges that in these parts so we end
up with a huge bunch so pretty much only anything you run your work there's even a couple of other platforms unofficially supported that work pretty well armed we have people running like about the future P of A UX like that that you next being and it works and I don't know how old but you know we support pleasant with of platforms despite frequent on the on Python 3 . 3 as well but I don't think there's any current platforms that on end of life as we don't estimate anymore but as close the
test right and have 3 which
is actually frequent frequent fighting on that means that you be have the Python 3 code and also a file structure rather than picking clean patterns recode all fast and suppose going to Windows involvement history of 3 perform the 3 providers cleaning up the last little most of all the reason why I think twisted and tornadoes and all those other frameworks omics and have real about is the competition is really good we fit in this ecosystem if only as competitors because we can have some things that are good and enhancing product can go to things that are and that means that we have to go do things better to complete so means that we just keep moving forward all together as a community as the interoperation gets better it means that we all benefits it way to
from here for facing all
interoperation is the big thing because then that means that you can use all of your old include anyone units encourage you to stick with all about 5 and 3 this succinct mailing list our driving the social structure but we are going to be talking a lot more in the coming weeks coming months and years especially on about interoperation between all framework making it so that everything so works together now if you wanna know some more about for example protocols I recommend Corrigan fields our he's was the request maintain a and B all the all of the trees in his speech support I think on US told told building particle libraries right alternately titled you do a wrong an old mining libraries except 1 to a variety of ways of working around as and thinking encouraging by because we're going to act on the left but also the thing about thinking and talking about how Cortines themselves work holiday specialist this context and how they watched intently which is a kind of good to know if you're running if you ever run into its initiative and questions so ask questions if you'd like to yell at me about how wrong please quintile afterward you can yell at me home wrong lot yes and you let the scriptwriters been only would say that there's probably not any value in an arm especially wants to be interoperation stuff comes into account on because so is spread by is I believe you right so it's like a whole bunch of tools and then you do Bryant asynchronous stuff fetching pages and process right so in that case it's like because it specifies large I don't think that something like scrape I could really survive a transition to wasting but without some major where you can't completely break all the existing code and that without some ramification now wave-like interoperation self and that means that sort of don't matter what's going by itself is written in because the work I think you're gonna factors using the other arms but as far as like description of a program it's it's kind of way of just keeping on what if you're wrong and waiting for everything to capture of talking with each other because it's you just can't work rewrite that amount of code without something on top and you know that the unfortunate is that kind of secondary this is that because all the existing code what work and that's really valuable to people of this is the not only thing the is 1 of the way I did so this is weight here and this will be on the exam so it's the reason is that these get here this is actually a bad thing about tracks of interface is that don't get will return when you have had this on and then the door content on the dog gets on the thing returned there we times when the entire bodies so that's that's just a particular thing for this API that you get a 0 response that so the entire body and and you ask at given resource body which might take hours minutes days depending on how big it is and how would connectionism that's just purely sort of thing that you can use as many white statements as you want arm and all that so I'm it's really just limited by your education but I guess this is sort of interesting example showing Interop like as you can see there's some really ugly terrible stuff here for how AI which is the HDP things had lot how interesting things that on because we think alice bob like this so yeah it's it's difficult but on average differ yes yeah the left to the right of the people in the year period that it all the way to the top of that you so that's actually up interim goal most often review right now is that so that's what this entries so enticing hierarchal which is always review is pretty much doing is that what it is is that so you have the entire readily and in all this year is just maps function calls to be a single function calls so you hold the yes so environment is the lack step and has just because on the the interface to the reactor is very similar but we use camelCase amazing writer uses of not from OK so think case and we use different names for things so it's just purely as a as a thing going up presently so that things could work on top this is pretty much up for review and the variance is something in that column by the i called fixed you of which is just actually this column and I've just improved a little bit to make it work on I think people that that are but it's been of course yes yes yeah I did say i've yes and that's when things corresponds to too many of their crossfire and only 2 minutes I wish they work on that's what we crossed by hand 0 sorry musical all along so the thing about fire is that because a lot of money work on Python 2 . 7 become really use the clarity in way intron which will be sadly Python 3 5 plus on because sort of give that little gap where we can do the compatibility so if if you need this support pattern to it takes I is sort of goods that had but the best way I will it it is sort of 2 things you don't use it too heavily because you want to do in the way of accord even being so areas where he's essentially got his particle which is the meat and potatoes all of like hate be to support and all that is synchronous it doesn't use features of on like a state machine and then you have a wraparound that that handles making the features making for now to say our is that whole energy useful some of program in I thought I would say that going forward for writing new code be curtains wave interrupt me better because it's you know it's a lot more Pythonic arm while tick size is sort of reduced to a common in the limit of our gear couple most common delivered out of what features and the 3rd spot due to make it work so you don't end up using like deferred how you would use deferred features how would you would use features because you sort of have to use them both at the same time so it's going to occurrence of but there will be more optimal solutions in the coming years and when we drop 5 and to support as like a community that you get that the the right of so the only competitor fact twisted columns pipeline has in the Sinclair world is you what so on where you because I'm jumping between these so much so that you believe none of you the this instability so utility of yeah yeah that is the only thing that can come anywhere close to twisted on now the problem with you view it is that you really is the core family is in C but if you look at series benchmarks it doesn't actually make us something like I I I had to be any faster because that's they a restricted by pythons interpretation so wild type II in that case even if I'm reactor is all reaction protocol quality is much much faster so I'd say that's windpipe 3 comes down and you feel it gets a call to see if if I still works but on pipeline hands all sorts of things and then you going to have the true and fast I'm facing Cairo but that's just like it's pointing foster already and you really makes a really good for what's being but you know twisted and type I still top patterns violent and just because the chip works on all of the particle could well which is you know when in real world applications that's the bulk of the processing is happening not only we I'm sure it you and so the the amount of and all yeah so yeah so the problem processing is that most of multiprocessing is great for multi as in Birmingham multiprocessors is great in the context we have CPU-bound work so she doing what smashed doing lots of things like that so in that case you're still going to me multiprocessing is still going to need I think I think prior has the thing in concurrent cold like process execute or something like that which is sort of you bronze encoding process and over time the future and that sort of thing is still going to be valuable going forward simply because until we have true fighting in 5 in which all Larry Hastings show it to me is coming up and I think going well with a lowly spy versions that we have at and mean it might not the landed Python because it might break the CAT item sorry of both yes it's good to say don't do blocking calls because blocking networking colds of the devil and should not be done but we also need to choose any single factor easier to run code in processes of really easily full the sort of thing where it's not know from where it is seen the workload for processing images or do we natural Language Processing a lot of things that the half and half is that you probably shouldn't use multiprocessing full of talking to their work but it'll still have a lot about and and we need to get better at supporting it going forward like that the sort of having 1 social way of doing it which this in turn has 1 but that's only to think the 1st thing you as if I I would say not on the eventual future is probably going to be that we did show about reactors and twisted becomes the particles and that's it rather than the other way around arm and it's more likely that we're going to see that splits out more more about Python utilities for example thirds which is duly justified utility arm and split all that into difference sort Python packages so could be more widely used so if that is the sort of the Chinese optimistically Einstein's wasn't going is that it is essentially just a bunch of particles for a single layer but that's not gonna happen until released when like that he started 20 23 because we are giving so we have the 2020 Python to dropped to its it's not subscribing to that because we could only stop forcing at 5 and 3 . 3 in the 1st version we could realistically current and we want to give our users the 5 years in death notice sorry you know once once series we dropped to 7 support which is most likely in 2023 maybe longer at the end of the show maybe everything is bolstered tomorrow and then we can just drop a tomorrow on I would say that that would be yet the eventual best case is that we don't have the reaction we don't have always utilities just for thank you right to the doesn't get get a little while that around the so you talking to Don basis for example 1 great thing is case of a lot of of a lot term once told to a socket sorry they would like as a stands there is a library for twisted cold she exposed prayers which wraps the native a parts of the post-processing library sorry it just uses that and the lower bound for the that you will ultimately need to write brainy document structures that are enabling asynchronous so it's yeah you're going to have to write a lot of courage so that on the usual way to do is just rapid thread and strong but that's not the optimum way of native ones will always work that will be more efficient and of the yet so it will require a lot of career writing which is found yes so a lot of people that can be 1 what do you think about all the things you actually the jewel is only true constraints when you were dealing with 6 with C extension so it the thing the pipeline has is this but this experiment something called the XTM which is software transactional memory now when that kind of gets forward a bit more of the crashes much help because STEM is a bit it's it's a wonderful technology basically what it means is that rather than having a global interpret a lot of a lot of final and you walk specific bits of memory now when 3 something like twisted or cone of all that we have the call reactor and then all the things that come down from the bees individual sort of handlers don't talk to each other so that means that in this sort of the jewels revolves you just say all of these have a software transactional memory their own sections and then they all run in parallel sorry the dual if you if you are in a world where there isn't 6 sections all this they're better C extensions and your writing twisted and a singer and all that dual is not required as such because it's just a thing that the CGI needs and also prevents race condition also the thing while software transactional memory also prevents race conditions by having final that if 1 tries to talk memory than of 1 is locked it will actually run in sequence stop or sorry the work of the deal is not part based but it's there because everything is horrible there are no more questions on you would like you wanna to ask questions all of all of you it's clear that something that I am I that again however this want coffee so thank you I will be lost walls look of integers 1 of the time it's great as


  510 ms - page object


AV-Portal 3.21.3 (19e43a18c8aa08bcbdf3e35b975c18acb737c630)