{"url":"https://api.github.com/gists/7881887","forks_url":"https://api.github.com/gists/7881887/forks","commits_url":"https://api.github.com/gists/7881887/commits","id":"7881887","node_id":"MDQ6R2lzdDc4ODE4ODc=","git_pull_url":"https://gist.github.com/7881887.git","git_push_url":"https://gist.github.com/7881887.git","html_url":"https://gist.github.com/mbostock/7881887","files":{".block":{"filename":".block","type":"text/plain","language":null,"raw_url":"https://gist.githubusercontent.com/mbostock/7881887/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/7881887/raw/c303f15e23d14c9dccc0c7e4d6915d3840aca257/README.md","size":2467,"truncated":false,"content":"This variation of a [clustered force layout](/mbostock/1747543) uses an entry transition and careful initialization to minimize distracting jitter as the force simulation converges on a stable layout.\n\nBy default, D3’s [force layout](https://github.com/mbostock/d3/wiki/Force-Layout) randomly initializes node positions. You can prevent this by setting each node’s *x* and *y* properties before starting the layout. In this example, because custom forces cluster nodes by color, most of the initial jitter is caused by the initial random placement overlapping clusters. We can reduce the jitter by initially placing nodes of the same color near other.\n\nThe number of clusters in this example is defined by the variable *m*; the local variable *i* is the node’s cluster number. To initialize clusters in a circle of radius 200px around the canvas center, we can define *x* and *y* like so:\n\n```js\nx: Math.cos(i / m * 2 * Math.PI) * 200 + width / 2 + Math.random(),\ny: Math.sin(i / m * 2 * Math.PI) * 200 + height / 2 + Math.random()\n```\n\nEach node is slightly offset from the corresponding cluster’s center using [Math.random](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/random). Without this offset, same-colored nodes would be coincident, which would cause divide-by-zero problems for our custom forces.\n\nThis initialization strategy is arbitrary but effective. Many other approaches would work, such as D3’s [circle-packing layout](/mbostock/7882658), so feel free to experiment! A good strategy is one that is simple to implement, accelerates convergence, and avoids undesirable artifacts on the final layout. For example, a slightly simpler strategy is to initialize each cluster’s *x*-position along a line. However, this causes striations in the final layout.\n\nAs the force layout converges, its internal temperature cools; nodes move more slowly as the layout stabilizes. We can further reduce jitter by delaying the second custom force — collision prevention. This is done using a simple transition:\n\n```js\nnode.transition()\n    .duration(750)\n    .delay(function(d, i) { return i * 5; })\n    .attrTween(\"r\", function(d) {\n      var i = d3.interpolate(0, d.radius);\n      return function(t) { return d.radius = i(t); };\n    });\n```\n\nAs the circles expand, the displayed radius (the `\"r\"` attribute) increases along with the internal `radius` data property that is used by the collision detection force.","encoding":"utf-8"},"index.html":{"filename":"index.html","type":"text/html","language":"HTML","raw_url":"https://gist.githubusercontent.com/mbostock/7881887/raw/73537435f7fc235d9235a00065244b1fbc8c8bd4/index.html","size":3117,"truncated":false,"content":"<!DOCTYPE html>\n<meta charset=\"utf-8\">\n<body>\n<script src=\"//d3js.org/d3.v3.min.js\"></script>\n<script>\n\nvar width = 960,\n    height = 500,\n    padding = 1.5, // separation between same-color nodes\n    clusterPadding = 6, // separation between different-color nodes\n    maxRadius = 12;\n\nvar n = 200, // total number of nodes\n    m = 10; // number of distinct clusters\n\nvar color = d3.scale.category10()\n    .domain(d3.range(m));\n\n// The largest node for each cluster.\nvar clusters = new Array(m);\n\nvar nodes = d3.range(n).map(function() {\n  var i = Math.floor(Math.random() * m),\n      r = Math.sqrt((i + 1) / m * -Math.log(Math.random())) * maxRadius,\n      d = {\n        cluster: i,\n        radius: r,\n        x: Math.cos(i / m * 2 * Math.PI) * 200 + width / 2 + Math.random(),\n        y: Math.sin(i / m * 2 * Math.PI) * 200 + height / 2 + Math.random()\n      };\n  if (!clusters[i] || (r > clusters[i].radius)) clusters[i] = d;\n  return d;\n});\n\nvar force = d3.layout.force()\n    .nodes(nodes)\n    .size([width, height])\n    .gravity(.02)\n    .charge(0)\n    .on(\"tick\", tick)\n    .start();\n\nvar svg = d3.select(\"body\").append(\"svg\")\n    .attr(\"width\", width)\n    .attr(\"height\", height);\n\nvar node = svg.selectAll(\"circle\")\n    .data(nodes)\n  .enter().append(\"circle\")\n    .style(\"fill\", function(d) { return color(d.cluster); })\n    .call(force.drag);\n\nnode.transition()\n    .duration(750)\n    .delay(function(d, i) { return i * 5; })\n    .attrTween(\"r\", function(d) {\n      var i = d3.interpolate(0, d.radius);\n      return function(t) { return d.radius = i(t); };\n    });\n\nfunction tick(e) {\n  node\n      .each(cluster(10 * e.alpha * e.alpha))\n      .each(collide(.5))\n      .attr(\"cx\", function(d) { return d.x; })\n      .attr(\"cy\", function(d) { return d.y; });\n}\n\n// Move d to be adjacent to the cluster node.\nfunction cluster(alpha) {\n  return function(d) {\n    var cluster = clusters[d.cluster];\n    if (cluster === d) return;\n    var x = d.x - cluster.x,\n        y = d.y - cluster.y,\n        l = Math.sqrt(x * x + y * y),\n        r = d.radius + cluster.radius;\n    if (l != r) {\n      l = (l - r) / l * alpha;\n      d.x -= x *= l;\n      d.y -= y *= l;\n      cluster.x += x;\n      cluster.y += y;\n    }\n  };\n}\n\n// Resolves collisions between d and all other circles.\nfunction collide(alpha) {\n  var quadtree = d3.geom.quadtree(nodes);\n  return function(d) {\n    var r = d.radius + maxRadius + Math.max(padding, clusterPadding),\n        nx1 = d.x - r,\n        nx2 = d.x + r,\n        ny1 = d.y - r,\n        ny2 = d.y + r;\n    quadtree.visit(function(quad, x1, y1, x2, y2) {\n      if (quad.point && (quad.point !== d)) {\n        var x = d.x - quad.point.x,\n            y = d.y - quad.point.y,\n            l = Math.sqrt(x * x + y * y),\n            r = d.radius + quad.point.radius + (d.cluster === quad.point.cluster ? padding : clusterPadding);\n        if (l < r) {\n          l = (l - r) / l * alpha;\n          d.x -= x *= l;\n          d.y -= y *= l;\n          quad.point.x += x;\n          quad.point.y += y;\n        }\n      }\n      return x1 > nx2 || x2 < nx1 || y1 > ny2 || y2 < ny1;\n    });\n  };\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/7881887/raw/9f28949647849078217206520f963f13a789866c/thumbnail.png","size":11028,"truncated":false,"content":"iVBORw0KGgoAAAANSUhEUgAAAOYAAAB4CAYAAADmBo6IAAAAGXRFWHRTb2Z0\nd2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAKrZJREFUeNrsfQecVeWZ/nN7\nv9N7bzCUoXcUBDSIBQx23V2T/Az2YNRk1003cbNmN9G0VZNsDCbYsCuooKhA\n6HVoM8P03mfuzO1t/u/73hmKgru//7rLYL7H3/GWc+65wz3nOc/zlu87mqGh\noWoAqbSEoKCgcL5hoKVTT/9LoMWhfg8FhVGDkFb9BgoKow+KmAoKipgKCgqK\nmAoKipgKCgqKmAoKipgKCgqKmAoKipgKCgqKmAoKCoqYCgqKmAoKCoqYCgqK\nmAoKCoqYCgqKmAoKCoqYCgoKipgKCoqYCgoKipgKCoqYCgoKipgKCoqYCgoK\nipgKCgqKmAoKipgKCgqKmAoKipgKFxiiQ1G4g24MDQ2pH0MRU2E0oMfXg/s/\nvB+Xv3o57t18L5oHm9WPcoFAr36C0YGIK4BA/QD0yRYYs+yfyz4f2fkIXq56\nGU6TE69Xvy7KuWbZGvVjK2IqnAuD21rgO9wN52W5REQHOp8uR6hpEBqLHslf\nmQDL+KT/9r48IQ8qeytRGF+IeFO8vOcKuLC3fa+Q0qA1IM4Uh6M9R9Hl7UKK\nNeWs+xkaCsPnaxQjZTZnQas1qAOliPm3g3CPD/2vVSPiDmEoFIVzSQ5CzW5o\nbQZEvWF4D3QSNzRCVNvcTOjshs8k5d3v342Pmj/ClJQp+P2Xfo9UayqcRidy\nHDloGmyCw+iAN+RFriMXGxs24p26d7AgewFWTVp1cj/9/XtxovpRDA4elddW\naxGKix5CcvKST6s7xasf9Q5ij8sDh16LS5OcGGuzqAOriHlhQ+cwwjIpGUGy\nrqbiOOgTLTBk2RBq80KXYILOaUT3H4+IvQ33+ZF4w9hPqxv9F4lGsKttFz5o\n/ADx5ngc6DyAvxz7C/oCfahz1SHdlo6FOQtR76rHvMx5mJMxB4/uelRIuqV5\nC7Id2bii4Ap0d3+AQ+V3IBwehE5nlf0PDBzAgYO3YcKEJ5CZcd3J7+0MhrD6\neCM2dLkQHOK/Akgy6LE6LxXfLshQB1clfy48RL0hiiNd0JDKJN0yDpbJKfAd\n6UH3n45Cn2pF/FUFsE5KgbGAyBpngtasl21d79Wj63flcG2sR9Qfln1x7Djn\n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\nQmCC\n","encoding":"base64"}},"public":true,"created_at":"2013-12-09T22:08:43Z","updated_at":"2023-04-24T22:16:59Z","description":"Clustered Force Layout III","comments":0,"user":null,"comments_enabled":true,"comments_url":"https://api.github.com/gists/7881887/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/1747543","forks_url":"https://api.github.com/gists/1747543/forks","commits_url":"https://api.github.com/gists/1747543/commits","id":"1747543","node_id":"MDQ6R2lzdDE3NDc1NDM=","git_pull_url":"https://gist.github.com/1747543.git","git_push_url":"https://gist.github.com/1747543.git","html_url":"https://gist.github.com/mbostock/1747543","files":{},"public":true,"created_at":"2012-02-05T19:24:46Z","updated_at":"2024-03-20T20:25:24Z","description":"Clustered Force Layout I","comments":0,"user":null,"comments_enabled":true,"comments_url":"https://api.github.com/gists/1747543/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/7882658","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,"name":"Mike Bostock","company":"@observablehq ","blog":"https://observablehq.com/@mbostock","location":"San Francisco, CA","email":"mike@ocks.org","hireable":null,"bio":"Building a better computational medium. Co-founder @observablehq. Creator @d3. Former @nytgraphics. Pronounced BOSS-tock.","twitter_username":"mbostock","public_repos":88,"public_gists":1043,"followers":23374,"following":0,"created_at":"2010-03-25T22:02:56Z","updated_at":"2026-04-10T07:01:19Z"},"id":"7882658","created_at":"2013-12-09T23:00:01Z","updated_at":"2023-05-27T17:42:45Z"},{"url":"https://api.github.com/gists/9594668","user":{"login":"el-ee","id":6833109,"node_id":"MDQ6VXNlcjY4MzMxMDk=","avatar_url":"https://avatars.githubusercontent.com/u/6833109?v=4","gravatar_id":"","url":"https://api.github.com/users/el-ee","html_url":"https://github.com/el-ee","followers_url":"https://api.github.com/users/el-ee/followers","following_url":"https://api.github.com/users/el-ee/following{/other_user}","gists_url":"https://api.github.com/users/el-ee/gists{/gist_id}","starred_url":"https://api.github.com/users/el-ee/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/el-ee/subscriptions","organizations_url":"https://api.github.com/users/el-ee/orgs","repos_url":"https://api.github.com/users/el-ee/repos","events_url":"https://api.github.com/users/el-ee/events{/privacy}","received_events_url":"https://api.github.com/users/el-ee/received_events","type":"User","user_view_type":"public","site_admin":false,"name":"ellie","company":null,"blog":"http://ellieharmon.com","location":"portland, or","email":null,"hireable":null,"bio":null,"twitter_username":null,"public_repos":10,"public_gists":1,"followers":2,"following":2,"created_at":"2014-03-02T19:34:00Z","updated_at":"2022-11-24T15:19:37Z"},"id":"9594668","created_at":"2014-03-17T06:06:58Z","updated_at":"2015-08-29T13:57:27Z"},{"url":"https://api.github.com/gists/10235910","user":{"login":"aficionado","id":547553,"node_id":"MDQ6VXNlcjU0NzU1Mw==","avatar_url":"https://avatars.githubusercontent.com/u/547553?v=4","gravatar_id":"","url":"https://api.github.com/users/aficionado","html_url":"https://github.com/aficionado","followers_url":"https://api.github.com/users/aficionado/followers","following_url":"https://api.github.com/users/aficionado/following{/other_user}","gists_url":"https://api.github.com/users/aficionado/gists{/gist_id}","starred_url":"https://api.github.com/users/aficionado/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aficionado/subscriptions","organizations_url":"https://api.github.com/users/aficionado/orgs","repos_url":"https://api.github.com/users/aficionado/repos","events_url":"https://api.github.com/users/aficionado/events{/privacy}","received_events_url":"https://api.github.com/users/aficionado/received_events","type":"User","user_view_type":"public","site_admin":false,"name":null,"company":null,"blog":"","location":null,"email":null,"hireable":null,"bio":null,"twitter_username":null,"public_repos":98,"public_gists":47,"followers":48,"following":9,"created_at":"2011-01-04T20:16:40Z","updated_at":"2026-03-27T01:44:31Z"},"id":"10235910","created_at":"2014-04-09T07:28:26Z","updated_at":"2015-08-29T13:58:34Z"},{"url":"https://api.github.com/gists/455b3525bcad75817707","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":"455b3525bcad75817707","created_at":"2014-07-07T22:33:31Z","updated_at":"2015-08-29T14:03:40Z"},{"url":"https://api.github.com/gists/059ccf7b632ed3c03fee","user":{"login":"miklobit","id":1035161,"node_id":"MDQ6VXNlcjEwMzUxNjE=","avatar_url":"https://avatars.githubusercontent.com/u/1035161?v=4","gravatar_id":"","url":"https://api.github.com/users/miklobit","html_url":"https://github.com/miklobit","followers_url":"https://api.github.com/users/miklobit/followers","following_url":"https://api.github.com/users/miklobit/following{/other_user}","gists_url":"https://api.github.com/users/miklobit/gists{/gist_id}","starred_url":"https://api.github.com/users/miklobit/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/miklobit/subscriptions","organizations_url":"https://api.github.com/users/miklobit/orgs","repos_url":"https://api.github.com/users/miklobit/repos","events_url":"https://api.github.com/users/miklobit/events{/privacy}","received_events_url":"https://api.github.com/users/miklobit/received_events","type":"User","user_view_type":"public","site_admin":false,"name":"MK","company":"miklobit","blog":"","location":"Poland","email":null,"hireable":true,"bio":"Open source developer","twitter_username":null,"public_repos":606,"public_gists":128,"followers":6,"following":4,"created_at":"2011-09-08T07:57:29Z","updated_at":"2025-03-16T14:19:38Z"},"id":"059ccf7b632ed3c03fee","created_at":"2014-09-23T14:25:17Z","updated_at":"2015-08-29T14:06:49Z"},{"url":"https://api.github.com/gists/677dfd90a95e2481368186d14dc8e7c9","user":{"login":"giorgi-ghviniashvili","id":6615532,"node_id":"MDQ6VXNlcjY2MTU1MzI=","avatar_url":"https://avatars.githubusercontent.com/u/6615532?v=4","gravatar_id":"","url":"https://api.github.com/users/giorgi-ghviniashvili","html_url":"https://github.com/giorgi-ghviniashvili","followers_url":"https://api.github.com/users/giorgi-ghviniashvili/followers","following_url":"https://api.github.com/users/giorgi-ghviniashvili/following{/other_user}","gists_url":"https://api.github.com/users/giorgi-ghviniashvili/gists{/gist_id}","starred_url":"https://api.github.com/users/giorgi-ghviniashvili/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/giorgi-ghviniashvili/subscriptions","organizations_url":"https://api.github.com/users/giorgi-ghviniashvili/orgs","repos_url":"https://api.github.com/users/giorgi-ghviniashvili/repos","events_url":"https://api.github.com/users/giorgi-ghviniashvili/events{/privacy}","received_events_url":"https://api.github.com/users/giorgi-ghviniashvili/received_events","type":"User","user_view_type":"public","site_admin":false,"name":"Giorgi Ghviniashvili","company":"Blackbird.ai","blog":"https://ghviniashvili.com","location":"Seattle, Washington","email":"mr.g.ghv@gmail.com","hireable":true,"bio":"Senior Software Engineer crafting scalable web platforms and immersive data visualizations that turn complex information into intuitive, interactive experiences","twitter_username":null,"public_repos":73,"public_gists":65,"followers":49,"following":41,"created_at":"2014-02-07T12:41:15Z","updated_at":"2026-03-20T19:05:11Z"},"id":"677dfd90a95e2481368186d14dc8e7c9","created_at":"2019-01-10T13:32:29Z","updated_at":"2019-01-10T13:40:57Z"}],"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":"c4cad93c5eaf159cccb8d6858d72894c45fbb6be","committed_at":"2016-02-09T01:59:18Z","change_status":{"total":1,"additions":1,"deletions":0},"url":"https://api.github.com/gists/7881887/c4cad93c5eaf159cccb8d6858d72894c45fbb6be"},{"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":"2a764d346ff3ea1be162fccb8981423f97184e0b","committed_at":"2015-10-31T02:04:13Z","change_status":{"total":2,"additions":1,"deletions":1},"url":"https://api.github.com/gists/7881887/2a764d346ff3ea1be162fccb8981423f97184e0b"},{"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":"9736a39d545b2f9ad226f88b86760d9e33bd4b43","committed_at":"2015-06-11T19:10:05Z","change_status":{"total":2,"additions":1,"deletions":1},"url":"https://api.github.com/gists/7881887/9736a39d545b2f9ad226f88b86760d9e33bd4b43"},{"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":"5aed704b23ad46f8748c07928f9d999070adbdf3","committed_at":"2013-12-09T23:19:54Z","change_status":{"total":2,"additions":1,"deletions":1},"url":"https://api.github.com/gists/7881887/5aed704b23ad46f8748c07928f9d999070adbdf3"},{"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":"d930d92d49687451eecfc0f97c4e68fd93d39398","committed_at":"2013-12-09T23:18:08Z","change_status":{"total":12,"additions":6,"deletions":6},"url":"https://api.github.com/gists/7881887/d930d92d49687451eecfc0f97c4e68fd93d39398"},{"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":"42b191ae271d3be0985770a32f4bb5d42ebeb490","committed_at":"2013-12-09T23:01:43Z","change_status":{"total":2,"additions":1,"deletions":1},"url":"https://api.github.com/gists/7881887/42b191ae271d3be0985770a32f4bb5d42ebeb490"},{"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":"63debf0e92aeb86a2c4837c3e52cc6105bdc96c7","committed_at":"2013-12-09T22:46:41Z","change_status":{"total":12,"additions":7,"deletions":5},"url":"https://api.github.com/gists/7881887/63debf0e92aeb86a2c4837c3e52cc6105bdc96c7"},{"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":"8cdf53ce26d990b767901d6ecbd4a4ab76b03127","committed_at":"2013-12-09T22:38:00Z","change_status":{"total":2,"additions":1,"deletions":1},"url":"https://api.github.com/gists/7881887/8cdf53ce26d990b767901d6ecbd4a4ab76b03127"},{"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":"8342c20ad1e6804bf3db9df859158cb9057010fa","committed_at":"2013-12-09T22:36:41Z","change_status":{"total":4,"additions":2,"deletions":2},"url":"https://api.github.com/gists/7881887/8342c20ad1e6804bf3db9df859158cb9057010fa"},{"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":"f363c8e54c431507866a423a25cf39b293cea50b","committed_at":"2013-12-09T22:36:13Z","change_status":{"total":2,"additions":1,"deletions":1},"url":"https://api.github.com/gists/7881887/f363c8e54c431507866a423a25cf39b293cea50b"},{"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":"b368802b5493dce24a43805ba5638edfd4361b08","committed_at":"2013-12-09T22:36:05Z","change_status":{},"url":"https://api.github.com/gists/7881887/b368802b5493dce24a43805ba5638edfd4361b08"},{"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":"13fc62ecfa36b17e589ce44d84f2c3b9716bb40d","committed_at":"2013-12-09T22:34:22Z","change_status":{},"url":"https://api.github.com/gists/7881887/13fc62ecfa36b17e589ce44d84f2c3b9716bb40d"},{"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":"93c77fddc36577e18b83a5d49e832d05d2fc7a76","committed_at":"2013-12-09T22:09:44Z","change_status":{},"url":"https://api.github.com/gists/7881887/93c77fddc36577e18b83a5d49e832d05d2fc7a76"},{"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":"6aff7c41225d783c7c1475efa54aad64ca952e52","committed_at":"2013-12-09T21:59:21Z","change_status":{},"url":"https://api.github.com/gists/7881887/6aff7c41225d783c7c1475efa54aad64ca952e52"},{"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":"26a9857a28b3b4d7c6f355fe78e206b30d621e1d","committed_at":"2013-12-09T21:53:12Z","change_status":{},"url":"https://api.github.com/gists/7881887/26a9857a28b3b4d7c6f355fe78e206b30d621e1d"},{"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":"13b83b29e90dcc1bdda72ade65398ff3c28f161b","committed_at":"2013-12-09T21:22:09Z","change_status":{},"url":"https://api.github.com/gists/7881887/13b83b29e90dcc1bdda72ade65398ff3c28f161b"},{"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":"f1553796eecb1c4b24e6e83b9d14e777ad814979","committed_at":"2013-12-09T20:47:56Z","change_status":{},"url":"https://api.github.com/gists/7881887/f1553796eecb1c4b24e6e83b9d14e777ad814979"},{"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":"7aea5f17f78c32850a13c7a2b379fd7fbe9b0a0b","committed_at":"2012-10-12T03:51:04Z","change_status":{},"url":"https://api.github.com/gists/7881887/7aea5f17f78c32850a13c7a2b379fd7fbe9b0a0b"},{"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":"bcbf82647f2b64f328b44556c1369f351f47aa36","committed_at":"2012-02-05T22:34:11Z","change_status":{},"url":"https://api.github.com/gists/7881887/bcbf82647f2b64f328b44556c1369f351f47aa36"},{"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":"1e81cf4a093cf86d76c829345ad1550ebbc0e1c2","committed_at":"2012-02-05T22:33:15Z","change_status":{},"url":"https://api.github.com/gists/7881887/1e81cf4a093cf86d76c829345ad1550ebbc0e1c2"},{"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":"2c405688fe99f14ef1eeeb807a8a0063e4e374b9","committed_at":"2012-02-05T22:30:47Z","change_status":{},"url":"https://api.github.com/gists/7881887/2c405688fe99f14ef1eeeb807a8a0063e4e374b9"},{"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":"99de33673de3439aa63fd216a343caea0af11cf8","committed_at":"2012-02-05T22:30:26Z","change_status":{},"url":"https://api.github.com/gists/7881887/99de33673de3439aa63fd216a343caea0af11cf8"},{"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":"ef812ebc9df9c880d0da2a4fd26901c5d7e591dd","committed_at":"2012-02-05T22:28:50Z","change_status":{},"url":"https://api.github.com/gists/7881887/ef812ebc9df9c880d0da2a4fd26901c5d7e591dd"},{"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":"20af13b439e037a377c5f0940b33cf98241ef876","committed_at":"2012-02-05T22:28:16Z","change_status":{},"url":"https://api.github.com/gists/7881887/20af13b439e037a377c5f0940b33cf98241ef876"},{"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":"c2154fbb23b8a31c28c770d06744117a3af8eaf6","committed_at":"2012-02-05T22:28:01Z","change_status":{},"url":"https://api.github.com/gists/7881887/c2154fbb23b8a31c28c770d06744117a3af8eaf6"},{"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":"45a11bd5057247384933640f0be89f2904249a9f","committed_at":"2012-02-05T22:26:49Z","change_status":{},"url":"https://api.github.com/gists/7881887/45a11bd5057247384933640f0be89f2904249a9f"},{"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":"6ce860a3ad7b575a46925885422b8638f95a5a85","committed_at":"2012-02-05T22:26:23Z","change_status":{},"url":"https://api.github.com/gists/7881887/6ce860a3ad7b575a46925885422b8638f95a5a85"},{"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":"ece1606fa6db71fb569288c01fce1a6b77a2147d","committed_at":"2012-02-05T19:44:40Z","change_status":{},"url":"https://api.github.com/gists/7881887/ece1606fa6db71fb569288c01fce1a6b77a2147d"},{"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":"3f402424adab6217c50680127529e26b1a064f3e","committed_at":"2012-02-05T19:32:43Z","change_status":{},"url":"https://api.github.com/gists/7881887/3f402424adab6217c50680127529e26b1a064f3e"},{"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":"0e600926d8f1c52cd91a1928185ee1c591a63892","committed_at":"2012-02-05T19:31:57Z","change_status":{},"url":"https://api.github.com/gists/7881887/0e600926d8f1c52cd91a1928185ee1c591a63892"}],"truncated":false}