{"url":"https://api.github.com/gists/3681006","forks_url":"https://api.github.com/gists/3681006/forks","commits_url":"https://api.github.com/gists/3681006/commits","id":"3681006","node_id":"MDQ6R2lzdDM2ODEwMDY=","git_pull_url":"https://gist.github.com/3681006.git","git_push_url":"https://gist.github.com/3681006.git","html_url":"https://gist.github.com/mbostock/3681006","files":{".block":{"filename":".block","type":"text/plain","language":null,"raw_url":"https://gist.githubusercontent.com/mbostock/3681006/raw/703d310b399098a243a76a50bc209167e924cfd2/.block","size":17,"truncated":false,"content":"license: gpl-3.0\n","encoding":"utf-8"},"README.md":{"filename":"README.md","type":"text/markdown","language":"Markdown","raw_url":"https://gist.githubusercontent.com/mbostock/3681006/raw/916b50b2e86033747e5d0954726ab633488c6020/README.md","size":255,"truncated":false,"content":"A series of related examples:\n\n* [Canvas geometric zooming](https://bl.ocks.org/mbostock/3680958)\n* **Canvas semantic zooming**\n* [SVG geometric zooming](https://bl.ocks.org/mbostock/3680999)\n* [SVG semantic zooming](https://bl.ocks.org/mbostock/3680957)\n","encoding":"utf-8"},"index.html":{"filename":"index.html","type":"text/html","language":"HTML","raw_url":"https://gist.githubusercontent.com/mbostock/3681006/raw/091dd9ea50bace6e862fa239258f33f8e2b8ef4f/index.html","size":900,"truncated":false,"content":"<!DOCTYPE html>\n<meta charset=\"utf-8\">\n<canvas width=\"960\" height=\"500\"></canvas>\n<script src=\"https://d3js.org/d3.v4.min.js\"></script>\n<script>\n\nvar canvas = d3.select(\"canvas\").call(d3.zoom().scaleExtent([1, 8]).on(\"zoom\", zoom)),\n    context = canvas.node().getContext(\"2d\"),\n    width = canvas.property(\"width\"),\n    height = canvas.property(\"height\");\n\nvar randomX = d3.randomNormal(width / 2, 80),\n    randomY = d3.randomNormal(height / 2, 80),\n    data = d3.range(2000).map(function() { return [randomX(), randomY()]; });\n\ndraw(d3.zoomIdentity);\n\nfunction zoom() {\n  context.clearRect(0, 0, width, height);\n  draw(d3.event.transform);\n}\n\nfunction draw(transform) {\n  var i = -1, n = data.length, d;\n  context.beginPath();\n  while (++i < n) {\n    d = transform.apply(data[i]);\n    context.moveTo(d[0], d[1]);\n    context.arc(d[0], d[1], 2.5, 0, 2 * Math.PI);\n  }\n  context.fill();\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/3681006/raw/4268b140b53e675622cffc3a7d961b10b885f189/thumbnail.png","size":12898,"truncated":false,"content":"iVBORw0KGgoAAAANSUhEUgAAAOYAAAB4CAYAAADmBo6IAAAAGXRFWHRTb2Z0\nd2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAMgRJREFUeNrs3Qm8bWP5B/B1\nb5pHNEqimYQQFalQphKZUuZUyBCigQqhlFlSV4ZMlQYJKdIgEUmGUkpkLGOZ\nZWj93+9bz/6vu87a++xzz7mDe9/f53PuOXvvtddae9/1rOd5fs/ved5JdV1f\nXVXVc9PPw1XBHI8//elP1Sc+8YnqxBNPrJ7ylKdUt99+e7XvvvtW++yzT/Xk\nJz+5fEHTH49PP7fOlf6ZO/08vXwfw+HHP/5xddFFF1Wf+tSnJnzfjzzySPW4\nxz2umjRp0oTt89FHH837HBbzzjtvteaaa1aPf/zj/3uVpN8veclLqsmTJ5f/\n/BmHh8u3PUbwGs985jOny77XX3/96nvf+96E7e+WW26p3v/+91cPPfTQ0O95\nznOeU22++eY9w/RZt9122+qJT3xi+c+fgZiUQtk70u95ylcx83HeeedVCy20\nUPXCF75wQvb373//u7r88surpZdeesxe+IEHHqg++tGPVrvssku14IILlv+c\nGYs75yrfwayD5ZdffkL3x8u97nWvm6b3Cl2f97zn9TxnQfGYBUMi/d9VBx10\nUDXPPPPkEHuDDTYYNYf97W9/Wy222GJDEznIoOuuu65aZZVVyhc+Az1myTEf\ny3fVFJ4iZni1O+64Y9Tt77vvvmq33XarbrjhhqGP8Yc//CETXgXFYxa0cP/9\n9+ffyhfjwV133ZXLIJttttm491VQPOYcj7333rv65Cc/Oe798JRnnXVWJoWa\nuOCCC6prrrmmfNGzEAr58xjANttsU/3nP/+ZKiTl8YSy8sx+jOs999yTw9wn\nPelJebvtt9++2n333au55557qu2OOOKI6s1vfnMOiwtmHQLhjrpgpuG2226r\n77zzzqG3v/fee+u3v/3t9Y033pgfr7766vWvf/3rzm033njj+oADDug9vvLK\nK+u77757xHaPPPJI/eijj454/pZbbqm//vWv59cLZijuKKHsDMDDDz9cpQu8\nSkY44rUpU6aMSVSATT3wwAOr5z73ufnxDjvsMMLTyUmxqXvssUe10UYb9Z5f\neOGFq6c/faTIizKoS9mjlinExeYWFPJntiRvNtxww2q//farXvWqV031Gsmc\nUHQ8kjc5IyN61rOelR9ffPHFOfz9+c9/3knyCGsdd665SiYzq5I/xTBnA5x8\n8snV8ccfX5122mk9Y5eHPuMZz+jc/pJLLqmOPPLInFsWFMMsaOBHP/pRZkiF\npeOFMog65rDkDVIIQ7vIIouU/4hZ1DBLLDOTQCw+UYZBaD4WYb08sxjlrI1C\n/swkLLXUUtVaa62V8075YT/84x//qH7zm98MtU8llQcffLDv6+eff351/fXX\nD7UvhI/2thA3FBTDnGOADX32s589kPX885//XJ155pnZSI4++uiB+2N4733v\ne6eqeTYhr/zOd74z1LkxcIzxnXfeWf6jZgJKjjmTgSHV/6i0Mai96vvf/34W\noH/2s5/tPfe73/2uetnLXtYrgTDIk046KW9H3N7veBPZiF0wfXLMOc5jqikO\nCvdm+J0xGQljm2+++Ua8RjxOreN8hb1No/Q5dtxxx+rKK6/8//Bn8uRqiSWW\nGGjgjoe1beNb3/pWtdNOOxWTKKHszIFwbosttphlzieamdtejDEecMABudZI\nUieMPeaYY3qvk9oJcZdZZpmp3rfoootm0UE/yDFXXHHF6tZbb53qeb2bQuEZ\nLSbgwc0U+uMf/1issYE5jpVde+21q7e+9a0z9RyM/KDgQexoRv7JT35SveUt\nb5mqKZkxnn766dUTnvCE3uP27B77YNQ84Gtf+9rOY33uc5/LXnS11VbLj+W0\n5hW1Wdx3vetd1eqrrz5TRAcUUW1hfclxilZ2huKhhx6q11133fq4446r3/nO\nd9Z33XVXft7vvffeu/7nP/859L7uu++++uUvf3mdQtwRxzj44IPr22+/vb7g\nggvqq6++esznmfLV/DNROO+88/pqegtGamUL+TOdcPfdd2dG1bydNu69995e\nx0d4SUqdb3/721Uy2uppT3tab1tkjn1ttdVWI/Yj7Lzsssuq17zmNdmzKqvY\nnxyTl/zhD384zfXKD3zgA3ksyQc/+MEJ+T60lvHG0zrqpJA/BWMCxQ0ipg2d\n/x/5yEc6J9QxPBdpM3R96lOfmhuYm0YJwtT2c6DhWWlEKLz//vtXH/7wh6tf\n/OIX1a677lr97W9/y4O0DPYS6mJ0x4qNN964etOb3jRh39Mb3vCGYpQllJ1x\nWGONNeopU6ZM9VzK4epLL700/73jjjvWhx122ND7S0ZVb7755rnV6sILL8xt\nXcJbLVxnn312/cADD9QpN62TN67XX3/9ervttqvPOeecevHFF6+33nrretKk\nSXXKN+t0s8j7S0ZZJ6Ov3/jGN+b2spnRwqW1LeWQ5WIpbV8zDrximxl96Utf\n2uv0OOOMM/IQ5UFAAl177bW5LvnFL34xM6tqkjwMsma55Zarrrjiivx8ytOq\nLbfcskq5ZfaalENY1p/+9Kc5RFZiccwgcZzHe97znrxfzKdz/de//jXV8Wlt\n//rXv475s9P7YrkHQbiNWML4FhSPOUsAeZLyvh7B8+CDD9bJkOtkBL1teDEe\nLoWedTKu+kUvelF9//33915P4Wl91lln9RqZNTonw6+TkdXf/OY36y222CI/\nf8QRR9TrrLNOfe6552YP7riQwt36kEMOyX8jiXjZNlJuW6+66qr5uPfcc89U\nr11yySV5n11wvhqxd9999zqF9H2/B58XUTUI6aZUpzC8XDT/85iP22OPPT6G\neS+3qOGApJFTRhmjnQ/+7Gc/yx4SuaM2STgQU8y9TpWz5JJL5nIFUoeX8/fH\nPvaxPPJDXsgzRmnkxS9+cfbAUee0r7e97W1VMuDq5ptvzqMokUxGTHqP3zyw\n5x17/vnnz57YOSGXvvrVr44YXfmKV7yi2mSTTbJc7+qrr87Hb3pFTdddM2+d\nq+Oom3oPLx61WR7YMZ23zzXafFq5utzYcYoyqXqgeMwxIhlQvcsuu/QtXySj\nyWWB0XKqFFrWySDriy66aKrneaxkPFN5rmQc9TbbbNPzwrDBBhvUkydPrj/z\nmc/UJ5xwQp1uCPl5nu/kk0/Of8tDgcf75S9/WX/hC1+oU1g7wrvxwj6T3BVu\nuumm+qCDDspll2Gg9NMshcivl1pqqRHet6DkmNMN2E/TAbpgWoAeS/miskc7\nl/M4WFpM6+GHH569Z7vMcvbZZ2d5XQpVc/OzFjElEExpHDsZWWZj5aDve9/7\n8jYrr7xyzi15L9sRDJDa+U3ps8Yaa+RcVEH/1FNPrbbeeuvc2eI53jY8O493\nzjnnVL/61a+mvo2nbbvm1zqvZZddtvfY8eW6XWxyQckxx4wjjzyyPvbYYwdu\nYzjVRhttNGJoFdYU+wjywdVWWy17sgAvtPDCC2dP8vvf/36q93tNjtWE3PFD\nH/pQZmLTRV5vttlm+X3LLLNMzvt4uRRi5m2/8Y1v1P4rF1hggSwo4LGwxeut\n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\n2OI//0+AAQDnSR2fwgOQDwAAAABJRU5ErkJggg==\n","encoding":"base64"}},"public":true,"created_at":"2012-09-08T23:27:12Z","updated_at":"2017-08-30T13:26:15Z","description":"Canvas Semantic Zooming","comments":0,"user":null,"comments_enabled":true,"comments_url":"https://api.github.com/gists/3681006/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},"fork_of":{"url":"https://api.github.com/gists/3680958","forks_url":"https://api.github.com/gists/3680958/forks","commits_url":"https://api.github.com/gists/3680958/commits","id":"3680958","node_id":"MDQ6R2lzdDM2ODA5NTg=","git_pull_url":"https://gist.github.com/3680958.git","git_push_url":"https://gist.github.com/3680958.git","html_url":"https://gist.github.com/mbostock/3680958","files":{},"public":true,"created_at":"2012-09-08T23:22:57Z","updated_at":"2022-10-20T11:58:30Z","description":"Canvas Geometric Zooming","comments":0,"user":null,"comments_enabled":true,"comments_url":"https://api.github.com/gists/3680958/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/6938973","user":{"login":"eweitnauer","id":53043,"node_id":"MDQ6VXNlcjUzMDQz","avatar_url":"https://avatars.githubusercontent.com/u/53043?v=4","gravatar_id":"","url":"https://api.github.com/users/eweitnauer","html_url":"https://github.com/eweitnauer","followers_url":"https://api.github.com/users/eweitnauer/followers","following_url":"https://api.github.com/users/eweitnauer/following{/other_user}","gists_url":"https://api.github.com/users/eweitnauer/gists{/gist_id}","starred_url":"https://api.github.com/users/eweitnauer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/eweitnauer/subscriptions","organizations_url":"https://api.github.com/users/eweitnauer/orgs","repos_url":"https://api.github.com/users/eweitnauer/repos","events_url":"https://api.github.com/users/eweitnauer/events{/privacy}","received_events_url":"https://api.github.com/users/eweitnauer/received_events","type":"User","user_view_type":"public","site_admin":false,"name":"Erik Weitnauer","company":null,"blog":"","location":"Bielefeld, Germany","email":"username at gmail dot com","hireable":null,"bio":null,"twitter_username":null,"public_repos":42,"public_gists":25,"followers":93,"following":5,"created_at":"2009-02-09T15:48:03Z","updated_at":"2026-03-06T20:10:38Z"},"id":"6938973","created_at":"2013-10-11T17:43:18Z","updated_at":"2015-12-25T07:19:20Z"},{"url":"https://api.github.com/gists/a12725a0524b2118e109","user":{"login":"rtsao","id":780408,"node_id":"MDQ6VXNlcjc4MDQwOA==","avatar_url":"https://avatars.githubusercontent.com/u/780408?v=4","gravatar_id":"","url":"https://api.github.com/users/rtsao","html_url":"https://github.com/rtsao","followers_url":"https://api.github.com/users/rtsao/followers","following_url":"https://api.github.com/users/rtsao/following{/other_user}","gists_url":"https://api.github.com/users/rtsao/gists{/gist_id}","starred_url":"https://api.github.com/users/rtsao/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rtsao/subscriptions","organizations_url":"https://api.github.com/users/rtsao/orgs","repos_url":"https://api.github.com/users/rtsao/repos","events_url":"https://api.github.com/users/rtsao/events{/privacy}","received_events_url":"https://api.github.com/users/rtsao/received_events","type":"User","user_view_type":"public","site_admin":false,"name":"Ryan Tsao","company":null,"blog":"ryantsao.com","location":"San Francisco, USA","email":null,"hireable":null,"bio":"\r\n    Software engineer building web/JS things\r\n","twitter_username":"rtsao","public_repos":230,"public_gists":11,"followers":452,"following":43,"created_at":"2011-05-11T00:39:22Z","updated_at":"2026-04-02T00:51:59Z"},"id":"a12725a0524b2118e109","created_at":"2014-10-27T22:16:21Z","updated_at":"2015-08-29T14:08:15Z"}],"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":"5e4b72a18b3e7dd75f811f00d049128536c36fa3","committed_at":"2017-08-30T13:26:13Z","change_status":{"total":6,"additions":3,"deletions":3},"url":"https://api.github.com/gists/3681006/5e4b72a18b3e7dd75f811f00d049128536c36fa3"},{"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":"94b49d8487fe96b3ed07d2cecbe3e436908df8a9","committed_at":"2017-08-30T13:21:01Z","change_status":{"total":67,"additions":19,"deletions":48},"url":"https://api.github.com/gists/3681006/94b49d8487fe96b3ed07d2cecbe3e436908df8a9"},{"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":"15d735568fb3e00b732b1a32c82726808a683e38","committed_at":"2016-02-09T01:33:52Z","change_status":{"total":1,"additions":1,"deletions":0},"url":"https://api.github.com/gists/3681006/15d735568fb3e00b732b1a32c82726808a683e38"},{"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":"cc25e79d924d3d8336d6f3f4064c36c9870ecf10","committed_at":"2015-10-31T00:59:39Z","change_status":{"total":2,"additions":1,"deletions":1},"url":"https://api.github.com/gists/3681006/cc25e79d924d3d8336d6f3f4064c36c9870ecf10"},{"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":"39a10556497603cec4b90afc73354fd72b18fd9f","committed_at":"2015-06-11T19:36:12Z","change_status":{"total":2,"additions":1,"deletions":1},"url":"https://api.github.com/gists/3681006/39a10556497603cec4b90afc73354fd72b18fd9f"},{"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":"79f49ccae195667c19a1abefd238417b34ff69fe","committed_at":"2013-02-01T16:24:07Z","change_status":{"total":2,"additions":1,"deletions":1},"url":"https://api.github.com/gists/3681006/79f49ccae195667c19a1abefd238417b34ff69fe"},{"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":"704c4c04e723b22c04639f55818272859ea65e2b","committed_at":"2012-10-12T03:57:22Z","change_status":{"total":0,"additions":0,"deletions":0},"url":"https://api.github.com/gists/3681006/704c4c04e723b22c04639f55818272859ea65e2b"},{"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":"8e720ae0723159b95f1d176400506d8ca97f6a80","committed_at":"2012-09-08T23:30:39Z","change_status":{"total":6,"additions":6,"deletions":0},"url":"https://api.github.com/gists/3681006/8e720ae0723159b95f1d176400506d8ca97f6a80"},{"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":"62796d3ae3df0a5dc732cde253f78e8060354100","committed_at":"2012-09-08T23:28:54Z","change_status":{"total":22,"additions":14,"deletions":8},"url":"https://api.github.com/gists/3681006/62796d3ae3df0a5dc732cde253f78e8060354100"},{"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":"a752f4382ca424956a412040dd0c937ce3d360c9","committed_at":"2012-09-08T23:23:13Z","change_status":{"total":34,"additions":20,"deletions":14},"url":"https://api.github.com/gists/3681006/a752f4382ca424956a412040dd0c937ce3d360c9"},{"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":"b0fef3e32b3e4bb40d80d9e7263e0306e40f952e","committed_at":"2012-09-08T23:22:52Z","change_status":{},"url":"https://api.github.com/gists/3681006/b0fef3e32b3e4bb40d80d9e7263e0306e40f952e"}],"truncated":false}