GET /api/v2/video/1280
HTTP 200 OK Vary: Accept Content-Type: text/html; charset=utf-8 Allow: GET, PUT, PATCH, HEAD, OPTIONS
{ "category": "EuroPython 2012", "language": null, "slug": "concurrentfutures-is-here", "speakers": [ "Andrew Dalke" ], "tags": [], "id": 1280, "state": 1, "title": "concurrent.futures is here", "summary": "[EuroPython 2012] Andrew Dalke - 5 JULY 2012 in \"Track Spaghetti\"\n\n", "description": "The future is here! Or rather, concurrent.futures became part of the Python\nstandard library with 3.2. This style of asynchronous programming, also known\nas promises, has been around for decades but is only recently becoming popular\nin a number of languages and libraries. My presentation is meant for a Python\nprogrammer who knows nothing about futures. I\u2019ll structure it around\nprocessing web server logs, and show several ways to Python code can make more\neffective use of a multi-core machine. In some cases the multi-threaded\nexecutor is good enough, but in others the right solution is the multi-process\nexecutor. Because of the unified API, it\u2019s a one line change to switch from\none to the other. It isn\u2019t hard to write your own executor for different\ncompute models. I\u2019ll show that by developing a new one which works on top of\nthe PiCloud API. At the end I\u2019ll describe some of the more experimental work\nI\u2019m doing to use promises in a dependency graph, where certain computed\nproperties are dependent on others. Even though concurrent.futures came in\n3.2, Python 2.x users can use the API through Alex Gr\u00f6nholm\u2019s \u2018futures\u2019\nbackport.\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": "2012-07-06", "added": "2012-09-06T22:33:13", "updated": "2014-04-08T20:28:27.189" }