yield from "is" amazing. But I think Professor Beasley is more amazed by simplicity of the syntax. Powerful yet simple syntax. Always in need. And must add, Thank you Prof David, for being exactly who you are and influencing generations.
@@cheaterman49 Wow I'm fairly new to programming and I'm having fun with python ! Although recursive approaches usually run into some error for larger test cases ( competitive programming) , I'm still gonna continue with this language till I become really good.
I like how David recreates the asyncio module from scratch using threads just to wrapper our head around what this things is doing and how generators (in the 3.4) are the key for this. I don't think this is madness, it's very elegant code.
How does the thread pool work around the GIL exactly? It seems like he found interesting parallelization model for threads but didn't full explain why it works.
Async "I/O". There's an important part in there. You want async because you're waiting for things. If you're waiting for things, they're not doing work in the Python runtime. If they're not doing work in the Python runtime, they're not holding the GIL.
Pythons recursion limit really does seem awful, why 10-ish bits? Ironic for a language where all ints by default are bigInts. Else 64bit perhaps would be good.
@@AsdayasmanOnly in python, recursive algorithms in general are a branch of computer science and work perfectly well, they can produce some extremely tidy and perfectly performant code.
@@alan2here Which come about by forcing the language implementors to do things like TCO and unrolling because the programmers are too stupid to do it iteratively, or alternatively the programmers need to use trampolines to get around stack limits for similar reasons. Recursion has its place. Deep recursion doesn't.
yield from "is" amazing. But I think Professor Beasley is more amazed by simplicity of the syntax. Powerful yet simple syntax. Always in need. And must add, Thank you Prof David, for being exactly who you are and influencing generations.
He is not just typing, he is coding while he talks and jokes about the subject. That is fascinaring!
The more I learn about Python the more this language simply amazes me!
Hell Yeah :)
@@alan2here Oh man have I grown since that comment :-) now doing it full time and I love it!
@@cheaterman49 That's cool bro.
@@cheaterman49 bro that is epic)
@@cheaterman49 Wow I'm fairly new to programming and I'm having fun with python ! Although recursive approaches usually run into some error for larger test cases ( competitive programming) , I'm still gonna continue with this language till I become really good.
Mindbogglingly informative, as per usual
Always best speaker -- by far, no matter the subject. Keeps it moving and audience on the edge of their seats!
veryxcit m8 RaymondH
@@Asdayasman . N b I no
Bn mn j bm k ubhar
@@akhtaransari8899 What the fuck did you just say to me?
I like how David recreates the asyncio module from scratch using threads just to wrapper our head around what this things is doing and how generators (in the 3.4) are the key for this. I don't think this is madness, it's very elegant code.
1 2
221 2
This has been incredibly useful for helping me to understand asyncio. Thank you.
I do wonder what will be Davids' gravestone inscription. Perhaps Here lies David my head finally exploded !
Two speakers I like most for pycon : David and Jessica :)
Since I liked this presentation so much, just want to look up the other speaker you mention. Is it Jessica McKellar?
anybody has a link to the 1st part of the trilogy "Generator Tricks for Systems Programmers", please?
Yield and pools/futures seem really useful. :)
I wonder if Numpy is already recurrent.
Your concurrency example prevents timing attacks.
End of the break: 1:37:45.
37:57, why for inlined fuctions we don't need to use a next() mathod to start the generator like the claissic way described at 07:57?
I use Python 3, but then again relative to this talk, I live in the future.
Great talk! It indeed blown my mind :)
"Whenever we are supposed to come back from the break"❌ yield from break✅
How does the thread pool work around the GIL exactly? It seems like he found interesting parallelization model for threads but didn't full explain why it works.
Async "I/O". There's an important part in there.
You want async because you're waiting for things. If you're waiting for things, they're not doing work in the Python runtime. If they're not doing work in the Python runtime, they're not holding the GIL.
You're very brave to do it all on the fly, you must've felt half asleep by the end.
is there a video for the other two parts?
The second part on coroutines is here: ua-cam.com/video/Z_OAlIhXziw/v-deo.html
I guess you could submit the clever code along with a more conventional implementation of the same thing.
I would have supposed (yield 42; return "monty") was equivalent to (yield 42; yield "monty"; end_function)
Hi, are you never closing the files please?
Pythons recursion limit really does seem awful, why 10-ish bits? Ironic for a language where all ints by default are bigInts. Else 64bit perhaps would be good.
If you need to recurse more than a THOUSAND times, you're doing it wrong. Iterate.
@@AsdayasmanOnly in python, recursive algorithms in general are a branch of computer science and work perfectly well, they can produce some extremely tidy and perfectly performant code.
@@alan2here Which come about by forcing the language implementors to do things like TCO and unrolling because the programmers are too stupid to do it iteratively, or alternatively the programmers need to use trampolines to get around stack limits for similar reasons.
Recursion has its place. Deep recursion doesn't.
crazy stuff
Doesn't this just highlight that Python has a ridiculously wimpy recursion limit?
This presentation should be called generators from hell.
nice one
1:12:40 Aysncio
Master R…
…egex
Phew :)
arent you something...