GET /api/v2/video/1308
HTTP 200 OK Vary: Accept Content-Type: text/html; charset=utf-8 Allow: GET, PUT, PATCH, HEAD, OPTIONS
{ "category": "EuroPython 2012", "language": null, "slug": "clone-detection-in-python", "speakers": [ "V Maggio" ], "tags": [], "id": 1308, "state": 1, "title": "Clone detection in python", "summary": "[EuroPython 2012] V Maggio - 4 JULY 2012 in \"Track Spaghetti\"\n\n", "description": "The clone detection is a longstanding and very active research area in the\nfield of Software Maintenance aimed at identifying duplications in source\ncode. The presence of clones may affect maintenance activities. For example,\nerrors in the \u201coriginal\u201d fragment of code have to be fixed in every clone. To\nmake things worse, code clones are usually not documented and so their\nlocation in the source code is not known. In case of small-size software\nsystems the clone detection may be manually performed, but on large software\nsystems it can be accomplished only by means of automatic techniques. In this\ntalk an approach that exploits structural (i.e., AST) and lexical information\nof the code (e.g., name of methods, variables) for the identification of\nclones will be presented. The main innovation of such approach is represented\nby the adoption of a Machine Learning technique based on (Tree) Kernel\nfunctions. Some insights on mathematical properties of these Kernel-based\nmethod along with its corresponding (efficient) Python implementation (Numpy,\nScipy) will be presented. Afterwards the talk will be focused on the\nexplanation of some detection results gathered on well-known Python systems\n(Eric, Plone, networkx, Zope), compared with other non-Python ones (Eclipse-\nJdtcore, JHotDraw). The aim of this part will be to analyze what are the\nPython features that could possibly avoid (or allow) duplications w.r.t. other\nOO languages. Some snippets for analyzing the Python code \u201cby itself\u201d will be\nalso presented, emphasizing the powerful Python built-in reflection\ncapabilities, extremely useful in this specific code analysis task. Basic\nmaths skill and basic knowledge of the Python language are the only suggested\nprerequisites for the talk.\n\n", "quality_notes": "", "copyright_text": "Standard YouTube License", "embed": "<object width=\"640\" height=\"390\"><param name=\"movie\" value=\"http://youtube.com/v/xmsK1geCDq4?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/xmsK1geCDq4?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/xmsK1geCDq4/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=xmsK1geCDq4", "whiteboard": "", "recorded": "2012-07-05", "added": "2012-09-06T22:33:20", "updated": "2014-04-08T20:28:27.236" }