GET /api/v2/video/1338
HTTP 200 OK Vary: Accept Content-Type: text/html; charset=utf-8 Allow: GET, PUT, PATCH, HEAD, OPTIONS
{ "category": "EuroPython 2012", "language": null, "slug": "permission-or-forgiveness-0", "speakers": [ "Alex Martelli" ], "tags": [], "id": 1338, "state": 1, "title": "Permission or forgiveness?", "summary": "[EuroPython 2012 ] Alex Martelli - 2 JULY 2012 in \"Track Spaghetti\"\n\n", "description": "Grace Murray Hopper\u2019s famous motto, \u201cIt\u2019s easier to ask forgiveness than\npermission\u201d, has many useful applications \u2013 in Python, in concurrency, in\nnetworking, as well of course as in real life. However, it\u2019s not universally\nvalid. This talk explores both useful and damaging applications of this\nprinciple. I start by introducing the motto \u201cIt\u2019s easier to ask forgiveness\nthan permission\u201d and the woman who used it, Rear Admiral Grace Murray Hopper,\nalso known as the \u201cmother of Cobol\u201d and the author of the first ever\nprogramming-language compiler. I then move on to the Python context, where the\nmotto supports the proper usage of exception-catching rather than preliminary\nchecks; and the \u201crule that proves the exception\u201d introduced by abstract base\nclasses. Expanding the subject, I show how \u201coptimistic concurrency\u201d applies\nthat motto (while locking would \u201cask permission\u201d, in essence, STM \u201casks\nforgiveness\"), and how collision-detection focused networking protocols have\nsimilarly triumphed over more highly structured, \u201cask permission\u201d ones like\ntoken-ring. Moving to the fuzzier context of real life, I then show how this\ndaring approach does not work quite as well as in the technical realm \u2013 except\nwhen applied correctly, in the right circumstances\u2026 and I try to evince a\ngeneral law describing what the right circumstances for its application are,\ncomparing and contrasting with the similar issue of \u201cdo it right the first\ntime\u201d versus \u201claunch and iterate\u201d (and the latter\u2019s cognate \u201cfail, but fail\nfast\u201d principle).\n\n", "quality_notes": "", "copyright_text": "Standard YouTube License", "embed": "<object width=\"640\" height=\"390\"><param name=\"movie\" value=\"http://youtube.com/v/9gbUFyPltDs?version=3&amp;hl=en_US\"></param><param name=\"allowFullScreen\" value=\"true\"></param><param name=\"allowscriptaccess\" value=\"always\"></param><embed src=\"http://youtube.com/v/9gbUFyPltDs?version=3&amp;hl=en_US\" type=\"application/x-shockwave-flash\" width=\"640\" height=\"390\" allowscriptaccess=\"always\" allowfullscreen=\"true\"></embed></object>", "thumbnail_url": "http://i.ytimg.com/vi/9gbUFyPltDs/hqdefault.jpg", "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": "http://www.youtube.com/watch?v=9gbUFyPltDs", "whiteboard": "", "recorded": "2012-07-04", "added": "2012-09-06T22:33:27", "updated": "2014-04-08T20:28:27.288" }