I really enjoyed this talk. You have a very easy going speaking style that put me at ease with this new-to-me subject right away.
I would have loved to have spent more time on the code examples so that I could better understand the differences between them. The slides could use a little more polish and the transitions between slide, code example, and running the example could be smoother. Impressive, nonetheless!
Seeing the memory vs speed differences between traditional loops and generators was pretty impressive. I wish that I had seen this talk before working on my last project!
I hope that you shop this talk around. This needs to be seen.
Eric always speaks enthusiastically when summarizing the important happenings in the PHP world over the last month. He comes across accessible and approachable. His calm and collected demeanor somehow hides his giddiness for the subject which is obviously a labor of love. I look forward to this presentation each month! I'm even more impressed with this month's delivery as I learned later Eric was not feeling well. I never would have guessed from his passionate delivery!
This was an excellent topic for user-group discussion and presentation! The code examples were really, really good to illustrate the concepts and I came away better knowing what generators are and how I might use them.
Your example showing the CPU/memory usage differences really drove home for me that generators are a good solution if I have a large results set and am willing to trade memory footprint for CPU time. I liked seeing the output from the command-line and feeling the pain of waiting a long time for the 1,000,000 iteration count to process, but seeing the low memory footprint somehow felt like we won a game of code golf. If you gave this talk again to a wider audience, I would've liked a graphic at the end of that CPU/memory segment that plots the CPU and memory usage with each iteration. It would give a more visual sense how much the CPU/memory changed with each iteration.
You covered a lot of ground in a short amount of time... so short of time I had trouble wrapping my head around most of the code examples before you were breezing onto the next slide with even more code. Slow waaaaaay, way down when code is on the screen. This goes especially for the entire first part of your talk, even when talking about basic concepts like a for() loop. It was hard to pay attention to what you were saying and trying to comprehend what the code was doing. Perhaps pause for 15-30 seconds when new code comes on the screen, or speak really slowly about the idea you're conveying, so the audience has time to read it. This silence can feels awkward as a speaker but you'll keep your audience in the loop. The last thing you want is people mentally checking out because they couldn't see your point or worse end up feeling inadequate in their abilities when they can't keep up. Keep in mind you the speaker are very familiar with the code example because you wrote it. (I even know you wrote most of it last night so it's really fresh for you!) Your audience will almost always be less experienced than you in reading code. They will take longer to read and comprehend it. If you think you're moving too slow, you aren't. This is an advanced topic and needs easing into it no matter the experience level.
If you're looking to do more speaking I think with a bit more digging into details and slowing down you could turn this into a talk that could be accepted to some larger conferences! Thanks for all your time and effort!
Thank you for the effort that you put into putting the talk together. It was a great refresher as to how generators work. They certainly are powerful and seem especially nice for working with large datasets.
If I could offer a couple of thoughts; first, if possible, it would be nice to shrink down some of the code on the slides. Is there ways to remove error handling and other functions that might not be 100% necessary get the point across? It was a bit to process for me. That said, there was a good amount of time on the more involved slides.
Second, I wonder if there would be a better example than fizz-buzz? It demonstrated the point, but as was mentioned tonight, a simple for-loop could also fill that gap? Just musing out loud, and not sure if there would be one that could be succinctly presented instead.
Classic layout for first few slides of the talk, but done very well. Certainly good that you are covering what is coming in your talk upfront.
Fizz-buzz example was Excellent at demonstrating memory usage vs performance! Also great to hear you are using this at work for real memory-intensive things!
Thanks for putting this together. Yikes, that ImageMagick vulnerability sounds bad. Looking forward to those new PHP 7.1 features.
Great stuff! Certainly things I needed to know! ImageMagik for sure, but great review on new RFCs for PHP 7.1.
great use of code examples with supporting info on the side, etc.