GET /api/v2/video/1244
HTTP 200 OK Vary: Accept Content-Type: text/html; charset=utf-8 Allow: GET, PUT, PATCH, HEAD, OPTIONS
{ "category": "EuroPython 2012", "language": null, "slug": "using-sockets-in-python", "speakers": [ "F Buynooghe" ], "tags": [], "id": 1244, "state": 1, "title": "Using sockets in Python", "summary": "[EuroPython 2012] F Buynooghe - 5 JULY 2012 in \"Track Ravioli\"\n\n", "description": "Sockets are a fundamental abstraction operating systems provide to expose\nnetworking operations. Initially they look like a fairly straight forward\ninterface but they hide a surprising amount of complexity. Many protocol\nlibraries hide sockets away from the developer but it can still be useful to\nknow the sockets themselves. Other times directly using sockets is just a\nbetter or simpler option. This talk will cover practical socket programming in\npython, concentrating on TCP and UDP over IP (v4 & v6) the basic APIs of\naddress resolution and using sockets will be covered. Common patterns and\npitfalls will be pointed out which should enable to you to write robust socket\ncode with the help of tools like StringIO and memoryview. After the basics\npython\u2019s higher level abstractions like create_connection(), .makefile() and\nthe io module are covered, explaining when and how these can make life easier.\nFinally a quick look at how non-blocking sockets can be used and how libraries\nlike asyncore/asynchat, twisted, eventlet and gevent all approach non-blocking\nI/O in their own way.\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:04", "updated": "2014-04-08T20:28:27.230" }