{"url":"https://api.github.com/gists/4281513","forks_url":"https://api.github.com/gists/4281513/forks","commits_url":"https://api.github.com/gists/4281513/commits","id":"4281513","node_id":"MDQ6R2lzdDQyODE1MTM=","git_pull_url":"https://gist.github.com/4281513.git","git_push_url":"https://gist.github.com/4281513.git","html_url":"https://gist.github.com/mbostock/4281513","files":{".block":{"filename":".block","type":"text/plain","language":null,"raw_url":"https://gist.githubusercontent.com/mbostock/4281513/raw/703d310b399098a243a76a50bc209167e924cfd2/.block","size":17,"truncated":false,"content":"license: gpl-3.0\n","encoding":"utf-8"},"index.html":{"filename":"index.html","type":"text/html","language":"HTML","raw_url":"https://gist.githubusercontent.com/mbostock/4281513/raw/28d72020ed30ef965976addf30bfee06eb582c61/index.html","size":2172,"truncated":false,"content":"<!DOCTYPE html>\n<meta charset=\"utf-8\">\n<style>\n\n.circle {\n  fill: none;\n  stroke: red;\n  stroke-width: 2px;\n}\n\n.circle.intersects {\n  stroke: green;\n}\n\n.line {\n  stroke: #000;\n  stroke-dasharray: 3,3;\n}\n\n.segment {\n  stroke: #000;\n  stroke-width: 1.5px;\n}\n\ntext {\n  text-anchor: middle;\n}\n\n</style>\n<body>\n<script src=\"//d3js.org/d3.v3.min.js\"></script>\n<script>\n\nvar width = 960,\n    height = 500;\n\nvar svg = d3.select(\"body\").append(\"svg\")\n    .attr(\"width\", width)\n    .attr(\"height\", height)\n    .on(\"mousemove\", function() { move(d3.mouse(this)); });\n\nvar p0 = [width * .2, height * .8],\n    p1 = [width * .8, height * .2];\n\nsvg.append(\"path\")\n    .attr(\"class\", \"line\")\n    .attr(\"d\", \"M\" + [0, height] + \"L\" + [width, 0]);\n\nsvg.append(\"path\")\n    .attr(\"class\", \"segment\")\n    .attr(\"d\", \"M\" + p0 + \"L\" + p1);\n\nsvg.selectAll(\".endpoint\")\n    .data([p0, p1])\n  .enter().append(\"circle\")\n    .attr(\"class\", \"endpoint\")\n    .attr(\"transform\", function(d) { return \"translate(\" + d + \")\"; })\n    .attr(\"r\", 4.5);\n\nsvg.selectAll(\".tick\")\n    .data(d3.range(.1, 1, .1))\n  .enter().append(\"circle\")\n    .attr(\"class\", \"tick\")\n    .attr(\"transform\", function(d) { return \"translate(\" + d3.interpolate(p0, p1)(d) + \")\"; })\n    .attr(\"r\", 2.5);\n\nvar projection = svg.append(\"path\")\n    .attr(\"class\", \"line\");\n\nvar closest = svg.append(\"circle\")\n    .attr(\"class\", \"circle intersects\")\n    .attr(\"r\", 4.5);\n\nvar label = svg.append(\"text\")\n    .attr(\"y\", -6);\n\nmove([Math.random() * width, Math.random() * height]);\n\nfunction move(p2) {\n  var t = pointLineSegmentParameter(p2, p0, p1),\n      x10 = p1[0] - p0[0],\n      y10 = p1[1] - p0[1],\n      p3 = [p0[0] + t * x10, p0[1] + t * y10];\n\n  label.attr(\"transform\", \"translate(\" + p3 + \")rotate(\" + Math.atan2(y10, x10) / Math.PI * 180 + \")\").text(t.toFixed(3));\n  closest.attr(\"transform\", \"translate(\" + p3 + \")\").classed(\"intersects\", Math.abs(t - .5) < .5);\n  projection.attr(\"d\", \"M\" + p2 + \"L\" + p3);\n}\n\nfunction pointLineSegmentParameter(p2, p0, p1) {\n  var x10 = p1[0] - p0[0], y10 = p1[1] - p0[1],\n      x20 = p2[0] - p0[0], y20 = p2[1] - p0[1];\n  return (x20 * x10 + y20 * y10) / (x10 * x10 + y10 * y10);\n}\n\n</script>\n","encoding":"utf-8"},"thumbnail.png":{"filename":"thumbnail.png","type":"image/png","language":null,"raw_url":"https://gist.githubusercontent.com/mbostock/4281513/raw/e0f31bbe37af944ae2732eb5f5e0f6db35831fa4/thumbnail.png","size":5652,"truncated":false,"content":"iVBORw0KGgoAAAANSUhEUgAAAOYAAAB4CAIAAABpZBnfAAAKkWlDQ1BpY20A\nAEjHlZYHUJPZFsfv96U3WkIEpITekV6lhB6KdBBshCRAKCEGggjYkMUVWFFE\nRMCGLIoouCpFbIgF26JgwYJukEVAXcWCDZX3AY/w3rzZebMnc/L9cnLmn3Nv\n7p35A0CuZQuFKbAcAKmCDFGojztjcXQMA9cPiMiLBvDAgM1JFzKDgwPA38bH\n+wCaet4xndIC/yzkubx0DgBQMMJx3HROKsInkSzkCEUZAKDckLrOqgzhFHMR\npomQARHOmuKEGS6e4rgZ3jfdEx7qgTCigyez2aIEAEgdSJ2RyUlAdEgShM0F\nXL4AADKycuDCSWQj2uSpGUxSU9OmOBdhg7j/0En4L804qSabnSDlmbVMB96T\nny5MYa/+h9vx/yM1RTz7G+pIktOTw/yRpwKyZ1kctlfYLCfyWAGzLMxwD51l\nfgYrXNoj9o2YZXFyBHOWk9P8pf2CuEVBUv10j5hZzk4Mj5plLs/Ta5ZFaaHS\n/vTMMK+5fo9Fs5zE9gueZbZoei3TzEvxCZ2bOVg6pyBlkXQt8SJvaQ8vfW69\nGYnhvlJGDoC0n+/Nkq5X5DunnxIs1RSJQ6X7wBNESDW5bE/p3gIPwAcCwAOp\ngA0YwBd4ApDBy8qYGt4jTbhaxE9IzGAwkRvAM2GwBBwzE4aluYUlmLpPM3/X\n+wfT9wSi4+dqOWcBYOYAAPvP1SKNAKi/jRzjFXM1nTfI52YAzuRxxKLMmRp6\n6g2D3FNZ5KYqI6dBGxgAU2AJbIETcANewA8EgXAQDZYDDkhE5haBVSAXbAAF\noAhsBTtAJdgLDoBD4Cg4DlrBGXABXAE3wG1wDzwGEjAEXoIx8BFMQBCEgygQ\nFVKGNCBdyBiyhOwhF8gLCoBCoWgoFkqABJAYyoU2QkVQKVQJ7Yfqod+gU9AF\n6BrUAz2EBqBR6B30FUbBZJgGq8F68ALYHmbC/nA4vAxOgFfC2XA+vAWugGvg\nI3ALfAG+Ad+DJfBLeBwFUCQUHaWJMkXZozxQQagYVDxKhFqLKkSVo2pQjah2\nVBfqDkqCeoX6gsaiqWgG2hTthPZFR6A56JXotehidCX6ELoFfQl9Bz2AHkP/\nwFAwqhhjjCOGhVmMScCswhRgyjF1mGbMZcw9zBDmIxaLpWP1sXZYX2w0Ngmb\ngy3G7sY2YTuwPdhB7DgOh1PGGeOccUE4Ni4DV4DbhTuCO4/rxQ3hPuNJeA28\nJd4bH4MX4PPw5fjD+HP4XvwwfoIgR9AlOBKCCFzCakIJoZbQTrhFGCJMEOWJ\n+kRnYjgxibiBWEFsJF4m9hPfk0gkLZIDKYTEJ60nVZCOka6SBkhfyApkI7IH\neSlZTN5CPkjuID8kv6dQKHoUN0oMJYOyhVJPuUh5SvksQ5Uxk2HJcGXWyVTJ\ntMj0yryWJcjqyjJll8tmy5bLnpC9JftKjiCnJ+chx5ZbK1cld0quT25cnipv\nIR8knypfLH9Y/pr8iAJOQU/BS4GrkK9wQOGiwiAVRdWmelA51I3UWupl6hAN\nS9OnsWhJtCLaUVo3bUxRQdFaMVIxS7FK8ayihI6i69FZ9BR6Cf04/T796zy1\necx5vHmb5zXO6533SWm+kpsST6lQqUnpntJXZYayl3Ky8jblVuUnKmgVI5UQ\nlVUqe1Quq7yaT5vvNJ8zv3D+8fmPVGFVI9VQ1RzVA6o3VcfV1NV81IRqu9Qu\nqr1Sp6u7qSepl6mfUx/VoGq4aPA1yjTOa7xgKDKYjBRGBeMSY0xTVdNXU6y5\nX7Nbc0JLXytCK0+rSeuJNlHbXjteu0y7U3tMR0MnUCdXp0HnkS5B1143UXen\nbpfuJz19vSi9TXqteiP6Svos/Wz9Bv1+A4qBq8FKgxqDu4ZYQ3vDZMPdhreN\nYCMbo0SjKqNbxrCxrTHfeLdxjwnGxMFEYFJj0mdKNmWaZpo2mA6Y0c0CzPLM\nWs1eL9BZELNg24KuBT/MbcxTzGvNH1soWPhZ5Fm0W7yzNLLkWFZZ3rWiWHlb\nrbNqs3prbWzNs95j/cCGahNos8mm0+a7rZ2tyLbRdtROxy7Wrtquz55mH2xf\nbH/VAePg7rDO4YzDF0dbxwzH445vnEydkp0OO40s1F/IW1i7cNBZy5ntvN9Z\n4sJwiXXZ5yJx1XRlu9a4PnPTduO61bkNMw2ZScwjzNfu5u4i92b3Tx6OHms8\nOjxRnj6ehZ7dXgpeEV6VXk+9tbwTvBu8x3xsfHJ8Onwxvv6+23z7WGosDque\nNeZn57fG75I/2T/Mv9L/WYBRgCigPRAO9AvcHti/SHeRYFFrEAhiBW0PehKs\nH7wy+HQINiQ4pCrkeahFaG5oVxg1bEXY4bCP4e7hJeGPIwwixBGdkbKRSyPr\nIz9FeUaVRkkWL1i8ZvGNaJVofnRbDC4mMqYuZnyJ15IdS4aW2iwtWHp/mf6y\nrGXXlqssT1l+doXsCvaKE7GY2KjYw7Hf2EHsGvZ4HCuuOm6M48HZyXnJdeOW\ncUd5zrxS3nC8c3xp/EiCc8L2hNFE18TyxFd8D34l/22Sb9LepE/JQckHkydT\nolKaUvGpsamnBAqCZMGlNPW0rLQeobGwQChZ6bhyx8oxkb+oLh1KX5belkFD\njMtNsYH4J/FApktmVebnVZGrTmTJZwmybq42Wr159XC2d/avOegcTk5nrmbu\nhtyBNcw1+9dCa+PWdq7TXpe/bmi9z/pDG4gbkjf8nmeeV5r3YWPUxvZ8tfz1\n+YM/+fzUUCBTICro2+S0ae/P6J/5P3dvttq8a/OPQm7h9SLzovKib8Wc4uu/\nWPxS8cvklvgt3SW2JXu2YrcKtt7f5rrtUKl8aXbp4PbA7S1ljLLCsg87Vuy4\nVm5dvncncad4p6QioKJtl86urbu+VSZW3qtyr2qqVq3eXP1pN3d37x63PY17\n1fYW7f26j7/vwX6f/S01ejXlB7AHMg88r42s7frV/tf6OpW6orrvBwUHJYdC\nD12qt6uvP6x6uKQBbhA3jB5ZeuT2Uc+jbY2mjfub6E1Fx8Ax8bEXv8X+dv+4\n//HOE/YnGk/qnqxupjYXtkAtq1vGWhNbJW3RbT2n/E51tju1N582O33wjOaZ\nqrOKZ0vOEc/ln5s8n31+vEPY8epCwoXBzhWdjy8uvnj3Usil7sv+l69e8b5y\nsYvZdf6q89Uz1xyvnbpuf731hu2Nlps2N5t/t/m9udu2u+WW3a222w6323sW\n9pzrde29cMfzzpW7rLs37i2613M/4v6DvqV9kgfcByMPUx6+fZT5aOLx+n5M\nf+ETuSflT1Wf1vxh+EeTxFZydsBz4OazsGePBzmDL/9M//PbUP5zyvPyYY3h\n+hHLkTOj3qO3Xyx5MfRS+HLiVcFf8n9VvzZ4ffKN25ubY4vHht6K3k6+K36v\n/P7gB+sPnePB408/pn6c+FT4WfnzoS/2X7q+Rn0dnlj1Dfet4rvh9/Yf/j/6\nJ1MnJ4VsEXvaCqCQhOPjAXh3EABKNABUxD8QZWb87nRAMx59msDf8Ywnng5b\nAA4gnjYKST8k9yA+XBdJKvJVMPIMdwOwlZU0/x3p8VaWM1qkVsSalE9Ovkc8\n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\nCsYDgCX8Dw2I8d33i+t6AAAAAElFTkSuQmCC\n","encoding":"base64"}},"public":true,"created_at":"2012-12-14T00:46:52Z","updated_at":"2016-02-09T02:12:58Z","description":"Closest Point to Segment","comments":0,"user":null,"comments_enabled":true,"comments_url":"https://api.github.com/gists/4281513/comments","owner":{"login":"mbostock","id":230541,"node_id":"MDQ6VXNlcjIzMDU0MQ==","avatar_url":"https://avatars.githubusercontent.com/u/230541?v=4","gravatar_id":"","url":"https://api.github.com/users/mbostock","html_url":"https://github.com/mbostock","followers_url":"https://api.github.com/users/mbostock/followers","following_url":"https://api.github.com/users/mbostock/following{/other_user}","gists_url":"https://api.github.com/users/mbostock/gists{/gist_id}","starred_url":"https://api.github.com/users/mbostock/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mbostock/subscriptions","organizations_url":"https://api.github.com/users/mbostock/orgs","repos_url":"https://api.github.com/users/mbostock/repos","events_url":"https://api.github.com/users/mbostock/events{/privacy}","received_events_url":"https://api.github.com/users/mbostock/received_events","type":"User","user_view_type":"public","site_admin":false},"forks":[{"url":"https://api.github.com/gists/6323526","user":{"login":"enjoylife","id":877194,"node_id":"MDQ6VXNlcjg3NzE5NA==","avatar_url":"https://avatars.githubusercontent.com/u/877194?v=4","gravatar_id":"","url":"https://api.github.com/users/enjoylife","html_url":"https://github.com/enjoylife","followers_url":"https://api.github.com/users/enjoylife/followers","following_url":"https://api.github.com/users/enjoylife/following{/other_user}","gists_url":"https://api.github.com/users/enjoylife/gists{/gist_id}","starred_url":"https://api.github.com/users/enjoylife/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/enjoylife/subscriptions","organizations_url":"https://api.github.com/users/enjoylife/orgs","repos_url":"https://api.github.com/users/enjoylife/repos","events_url":"https://api.github.com/users/enjoylife/events{/privacy}","received_events_url":"https://api.github.com/users/enjoylife/received_events","type":"User","user_view_type":"public","site_admin":false,"name":"Matthew Clemens","company":"Uber","blog":"mdc.life","location":"Berkeley, CA","email":"matt.d.clemens@gmail.com","hireable":null,"bio":"Try, fail, learn, improve.","twitter_username":null,"public_repos":142,"public_gists":238,"followers":26,"following":17,"created_at":"2011-06-26T19:09:45Z","updated_at":"2026-04-07T20:42:13Z"},"id":"6323526","created_at":"2013-08-23T20:13:56Z","updated_at":"2015-12-21T14:59:08Z"}],"history":[{"user":{"login":"mbostock","id":230541,"node_id":"MDQ6VXNlcjIzMDU0MQ==","avatar_url":"https://avatars.githubusercontent.com/u/230541?v=4","gravatar_id":"","url":"https://api.github.com/users/mbostock","html_url":"https://github.com/mbostock","followers_url":"https://api.github.com/users/mbostock/followers","following_url":"https://api.github.com/users/mbostock/following{/other_user}","gists_url":"https://api.github.com/users/mbostock/gists{/gist_id}","starred_url":"https://api.github.com/users/mbostock/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mbostock/subscriptions","organizations_url":"https://api.github.com/users/mbostock/orgs","repos_url":"https://api.github.com/users/mbostock/repos","events_url":"https://api.github.com/users/mbostock/events{/privacy}","received_events_url":"https://api.github.com/users/mbostock/received_events","type":"User","user_view_type":"public","site_admin":false},"version":"4c04fa84235e900bd7dad3be14c84c850673be97","committed_at":"2016-02-09T02:12:56Z","change_status":{"total":1,"additions":1,"deletions":0},"url":"https://api.github.com/gists/4281513/4c04fa84235e900bd7dad3be14c84c850673be97"},{"user":{"login":"mbostock","id":230541,"node_id":"MDQ6VXNlcjIzMDU0MQ==","avatar_url":"https://avatars.githubusercontent.com/u/230541?v=4","gravatar_id":"","url":"https://api.github.com/users/mbostock","html_url":"https://github.com/mbostock","followers_url":"https://api.github.com/users/mbostock/followers","following_url":"https://api.github.com/users/mbostock/following{/other_user}","gists_url":"https://api.github.com/users/mbostock/gists{/gist_id}","starred_url":"https://api.github.com/users/mbostock/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mbostock/subscriptions","organizations_url":"https://api.github.com/users/mbostock/orgs","repos_url":"https://api.github.com/users/mbostock/repos","events_url":"https://api.github.com/users/mbostock/events{/privacy}","received_events_url":"https://api.github.com/users/mbostock/received_events","type":"User","user_view_type":"public","site_admin":false},"version":"d141244c268c545fde81e68da9735f2fc6df2148","committed_at":"2015-10-31T01:21:17Z","change_status":{"total":2,"additions":1,"deletions":1},"url":"https://api.github.com/gists/4281513/d141244c268c545fde81e68da9735f2fc6df2148"},{"user":{"login":"mbostock","id":230541,"node_id":"MDQ6VXNlcjIzMDU0MQ==","avatar_url":"https://avatars.githubusercontent.com/u/230541?v=4","gravatar_id":"","url":"https://api.github.com/users/mbostock","html_url":"https://github.com/mbostock","followers_url":"https://api.github.com/users/mbostock/followers","following_url":"https://api.github.com/users/mbostock/following{/other_user}","gists_url":"https://api.github.com/users/mbostock/gists{/gist_id}","starred_url":"https://api.github.com/users/mbostock/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mbostock/subscriptions","organizations_url":"https://api.github.com/users/mbostock/orgs","repos_url":"https://api.github.com/users/mbostock/repos","events_url":"https://api.github.com/users/mbostock/events{/privacy}","received_events_url":"https://api.github.com/users/mbostock/received_events","type":"User","user_view_type":"public","site_admin":false},"version":"3e7d99c5244b42c6f4c66803553c243279bfd114","committed_at":"2015-06-11T19:30:05Z","change_status":{"total":2,"additions":1,"deletions":1},"url":"https://api.github.com/gists/4281513/3e7d99c5244b42c6f4c66803553c243279bfd114"},{"user":{"login":"mbostock","id":230541,"node_id":"MDQ6VXNlcjIzMDU0MQ==","avatar_url":"https://avatars.githubusercontent.com/u/230541?v=4","gravatar_id":"","url":"https://api.github.com/users/mbostock","html_url":"https://github.com/mbostock","followers_url":"https://api.github.com/users/mbostock/followers","following_url":"https://api.github.com/users/mbostock/following{/other_user}","gists_url":"https://api.github.com/users/mbostock/gists{/gist_id}","starred_url":"https://api.github.com/users/mbostock/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mbostock/subscriptions","organizations_url":"https://api.github.com/users/mbostock/orgs","repos_url":"https://api.github.com/users/mbostock/repos","events_url":"https://api.github.com/users/mbostock/events{/privacy}","received_events_url":"https://api.github.com/users/mbostock/received_events","type":"User","user_view_type":"public","site_admin":false},"version":"07c385fdaefdc5e13e5cc9ae61879dfb5bac9aec","committed_at":"2012-12-14T22:53:58Z","change_status":{"total":0,"additions":0,"deletions":0},"url":"https://api.github.com/gists/4281513/07c385fdaefdc5e13e5cc9ae61879dfb5bac9aec"},{"user":{"login":"mbostock","id":230541,"node_id":"MDQ6VXNlcjIzMDU0MQ==","avatar_url":"https://avatars.githubusercontent.com/u/230541?v=4","gravatar_id":"","url":"https://api.github.com/users/mbostock","html_url":"https://github.com/mbostock","followers_url":"https://api.github.com/users/mbostock/followers","following_url":"https://api.github.com/users/mbostock/following{/other_user}","gists_url":"https://api.github.com/users/mbostock/gists{/gist_id}","starred_url":"https://api.github.com/users/mbostock/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mbostock/subscriptions","organizations_url":"https://api.github.com/users/mbostock/orgs","repos_url":"https://api.github.com/users/mbostock/repos","events_url":"https://api.github.com/users/mbostock/events{/privacy}","received_events_url":"https://api.github.com/users/mbostock/received_events","type":"User","user_view_type":"public","site_admin":false},"version":"d0c4a13b49e15a7e726be33aa5af69e4428622a0","committed_at":"2012-12-14T22:53:09Z","change_status":{"total":0,"additions":0,"deletions":0},"url":"https://api.github.com/gists/4281513/d0c4a13b49e15a7e726be33aa5af69e4428622a0"},{"user":{"login":"mbostock","id":230541,"node_id":"MDQ6VXNlcjIzMDU0MQ==","avatar_url":"https://avatars.githubusercontent.com/u/230541?v=4","gravatar_id":"","url":"https://api.github.com/users/mbostock","html_url":"https://github.com/mbostock","followers_url":"https://api.github.com/users/mbostock/followers","following_url":"https://api.github.com/users/mbostock/following{/other_user}","gists_url":"https://api.github.com/users/mbostock/gists{/gist_id}","starred_url":"https://api.github.com/users/mbostock/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mbostock/subscriptions","organizations_url":"https://api.github.com/users/mbostock/orgs","repos_url":"https://api.github.com/users/mbostock/repos","events_url":"https://api.github.com/users/mbostock/events{/privacy}","received_events_url":"https://api.github.com/users/mbostock/received_events","type":"User","user_view_type":"public","site_admin":false},"version":"6c8ee463a17558ce03f1aef9beccb7437fea27ba","committed_at":"2012-12-14T19:41:03Z","change_status":{"total":0,"additions":0,"deletions":0},"url":"https://api.github.com/gists/4281513/6c8ee463a17558ce03f1aef9beccb7437fea27ba"},{"user":{"login":"mbostock","id":230541,"node_id":"MDQ6VXNlcjIzMDU0MQ==","avatar_url":"https://avatars.githubusercontent.com/u/230541?v=4","gravatar_id":"","url":"https://api.github.com/users/mbostock","html_url":"https://github.com/mbostock","followers_url":"https://api.github.com/users/mbostock/followers","following_url":"https://api.github.com/users/mbostock/following{/other_user}","gists_url":"https://api.github.com/users/mbostock/gists{/gist_id}","starred_url":"https://api.github.com/users/mbostock/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mbostock/subscriptions","organizations_url":"https://api.github.com/users/mbostock/orgs","repos_url":"https://api.github.com/users/mbostock/repos","events_url":"https://api.github.com/users/mbostock/events{/privacy}","received_events_url":"https://api.github.com/users/mbostock/received_events","type":"User","user_view_type":"public","site_admin":false},"version":"08c74cd47158405b3d10c91e792de1b998efa9ff","committed_at":"2012-12-14T19:38:32Z","change_status":{"total":12,"additions":7,"deletions":5},"url":"https://api.github.com/gists/4281513/08c74cd47158405b3d10c91e792de1b998efa9ff"},{"user":{"login":"mbostock","id":230541,"node_id":"MDQ6VXNlcjIzMDU0MQ==","avatar_url":"https://avatars.githubusercontent.com/u/230541?v=4","gravatar_id":"","url":"https://api.github.com/users/mbostock","html_url":"https://github.com/mbostock","followers_url":"https://api.github.com/users/mbostock/followers","following_url":"https://api.github.com/users/mbostock/following{/other_user}","gists_url":"https://api.github.com/users/mbostock/gists{/gist_id}","starred_url":"https://api.github.com/users/mbostock/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mbostock/subscriptions","organizations_url":"https://api.github.com/users/mbostock/orgs","repos_url":"https://api.github.com/users/mbostock/repos","events_url":"https://api.github.com/users/mbostock/events{/privacy}","received_events_url":"https://api.github.com/users/mbostock/received_events","type":"User","user_view_type":"public","site_admin":false},"version":"8813cccb691779791fac0f110426da8337e87061","committed_at":"2012-12-14T00:46:52Z","change_status":{"total":94,"additions":94,"deletions":0},"url":"https://api.github.com/gists/4281513/8813cccb691779791fac0f110426da8337e87061"}],"truncated":false}