GET /api/v2/video/215
HTTP 200 OK Vary: Accept Content-Type: text/html; charset=utf-8 Allow: GET, PUT, PATCH, HEAD, OPTIONS
{ "category": "PyCon US 2009", "language": "English", "slug": "pycon-2009--a-curious-course-on-coroutines-and-c1", "speakers": [], "tags": [ "concurrency", "coroutines", "generator", "pycon", "pycon2009", "python-advanced" ], "id": 215, "state": 1, "title": "PyCon 2009: A Curious Course on Coroutines and Concurrency (Part 2 of 3)", "summary": "", "description": "A Curious Course on Coroutines and Concurrency (part 2 of 3)\n\n \nPresented at PyCon 2009 by David Beazley\n\n \nIf you are a programmer who cares about Python and concurrency, then you\nshould also care about Python coroutines. Although they were first introduced\nin Python 2.5, coroutines remain one of Python's most overlooked features---\noften vaguely described as a curious \"extension\" of generator functions with\nlittle insight as to how they might be applied to real-world problems. This\ntutorial examines coroutines in a more practical light by showing how they are\nactually a very elegant way to implement a processing \"task.\" Using this task\nabstraction, it is possible to use coroutines to implement processing\npipelines, event handling systems, and programs based on cooperative\nmultitasking. Moreover, if you define tasks using coroutines, they can be\neasily incorporated into more traditional concurrent programs that utilize\nthreads or message passing.\n\n \n[VIDEO HAS ISSUES: bit of clipping start to finish.]\n\n", "quality_notes": "", "copyright_text": "Creative Commons Attribution-NonCommercial-ShareAlike 3.0", "embed": "", "thumbnail_url": "", "duration": null, "video_ogv_length": null, "video_ogv_url": null, "video_ogv_download_only": false, "video_mp4_length": 1043871584, "video_mp4_url": "", "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": null, "added": "2012-02-23T04:20:00", "updated": "2014-04-08T20:28:25.619" }