GET /api/v2/video/1163
HTTP 200 OK Vary: Accept Content-Type: text/html; charset=utf-8 Allow: GET, PUT, PATCH, HEAD, OPTIONS
{ "category": "EuroPython 2011", "language": "English", "slug": "beyond-python-enhanced-generators-0", "speakers": [ "Erik Groeneveld" ], "tags": [ "generators", "search" ], "id": 1163, "state": 1, "title": "Beyond Python Enhanced Generators", "summary": "[EuroPython 2011] Erik Groeneveld - 23 June 2011 in \"Track Spaghetti\"\n\n", "description": "Right after the introduction of PEP342 (Enhanced Generators) we started to\ndecompose programs into generators. It was soon discovered that for real-life\nproblems one would need something like \"yield from\", as is described in\nPEP380. At that time, we already had a similar solution called\n'[compose](', which we adapted to PEP380.\n\nAfter 5 years working with 'compose', we found a small set of other features\nthat are essential if you want to use Enhanced Generators not only as a way of\nlightweight command scheduling, but also a a pipe-line, or parser. Indeed, the\nlatter concepts are what real co-routines are about.\n\nThis talk introduces what is needed on top of PEPs 342 and 380 based on\nexperience with decomposing big enterprise search engines into co-routines.\nParts of it have been presented on SPA (2008) and EuroPython (2010).\nUnderstanding of Enhanced Generators is a prerequisite.\n\nExperience has shown that the topic is subtle enough to require quite some\ntime for full understanding, hence the suggestion for a 90 min slot.\n\n", "quality_notes": "", "copyright_text": "Standard YouTube License", "embed": "<object width=\"640\" height=\"390\"><param name=\"movie\" value=\";hl=en_US\"></param><param name=\"allowFullScreen\" value=\"true\"></param><param name=\"allowscriptaccess\" value=\"always\"></param><embed src=\";hl=en_US\" type=\"application/x-shockwave-flash\" width=\"640\" height=\"390\" allowscriptaccess=\"always\" allowfullscreen=\"true\"></embed></object>", "thumbnail_url": "", "duration": null, "video_ogv_length": null, "video_ogv_url": null, "video_ogv_download_only": false, "video_mp4_length": null, "video_mp4_url": null, "video_mp4_download_only": false, "video_webm_length": null, "video_webm_url": null, "video_webm_download_only": false, "video_flv_length": null, "video_flv_url": null, "video_flv_download_only": false, "source_url": "", "whiteboard": "", "recorded": "2011-07-07", "added": "2012-08-30T21:02:48", "updated": "2014-04-08T20:28:27.923" }