GET /api/v2/video/1393
HTTP 200 OK Vary: Accept Content-Type: text/html; charset=utf-8 Allow: GET, PUT, PATCH, HEAD, OPTIONS
{ "category": "DjangoCon 2012", "language": "English", "slug": "django-on-gevent", "speakers": [ "Cody Soyland" ], "tags": [ "django", "gevent" ], "id": 1393, "state": 1, "title": "Django on Gevent", "summary": "This is an introduction to using the Gevent networking library to empower your\nDjango application with realtime features and resource-efficient cooperative\nconcurrency. Django's synchronous APIs make it impractical to use in a\ncallback-based networking library, but fast single-threaded concurrency is\nstill possible using the mind-blowing capabilities of coroutines.\n\n", "description": "Gevent is an ultra-fast networking library built on top of the greenlet\nmodule. Greenlets are the ideal solution to making Django's synchronous API\ncalls possible in a cooperative concurrency environment.\n\nI'll begin with an overview of the models of network programming, including\nthreading, callbacks, and coroutines. I'll explain how greenlets (coroutines)\nwork in harmony to provide simple blocking network APIs while not blocking\nexecution of the entire thread. I'll show how easy it is to integrate other\nnetwork services into your app.\n\nAs an exploration into using realtime features in Django, I'll demonstrate a\nsimple realtime collaboration app that uses websockets for communication. I\nwill show how to integrate ZeroMQ to allow the app to scale beyond a single\nserver. I will also show how to attach to and monitor your web app using\ngevent.backdoor.\n\n", "quality_notes": "", "copyright_text": "Creative Commons Attribution license (reuse allowed", "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": "needs editing", "recorded": "2012-09-04", "added": "2012-10-08T17:39:50", "updated": "2014-04-08T20:28:27.004" }