{"url":"https://api.github.com/gists/1642989","forks_url":"https://api.github.com/gists/1642989/forks","commits_url":"https://api.github.com/gists/1642989/commits","id":"1642989","node_id":"MDQ6R2lzdDE2NDI5ODk=","git_pull_url":"https://gist.github.com/1642989.git","git_push_url":"https://gist.github.com/1642989.git","html_url":"https://gist.github.com/mbostock/1642989","files":{".block":{"filename":".block","type":"text/plain","language":null,"raw_url":"https://gist.githubusercontent.com/mbostock/1642989/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/1642989/raw/c4040cc9ed686ddee7b86716efd1d0303f2260ae/README.md","size":361,"truncated":false,"content":"This example is the third of three in the [Path Transitions tutorial](http://bost.ocks.org/mike/path/); see the [previous example](/mbostock/1642874) for context.\n\nWhen transitioning a transform on a path using basis interpolation, you must clip the path by two additional control points so that the change in tangent is not visible while the path slides left.\n","encoding":"utf-8"},"index.html":{"filename":"index.html","type":"text/html","language":"HTML","raw_url":"https://gist.githubusercontent.com/mbostock/1642989/raw/6e033a3fc04c6bc6db40e2fd828582f7b708c529/index.html","size":1821,"truncated":false,"content":"<!DOCTYPE html>\n<meta charset=\"utf-8\">\n<style>\n\n.line {\n  fill: none;\n  stroke: #000;\n  stroke-width: 1.5px;\n}\n\n</style>\n<svg width=\"960\" height=\"500\"></svg>\n<script src=\"//d3js.org/d3.v4.min.js\"></script>\n<script>\n\nvar n = 40,\n    random = d3.randomNormal(0, .2),\n    data = d3.range(n).map(random);\n\nvar svg = d3.select(\"svg\"),\n    margin = {top: 20, right: 20, bottom: 20, left: 40},\n    width = +svg.attr(\"width\") - margin.left - margin.right,\n    height = +svg.attr(\"height\") - margin.top - margin.bottom,\n    g = svg.append(\"g\").attr(\"transform\", \"translate(\" + margin.left + \",\" + margin.top + \")\");\n\nvar x = d3.scaleLinear()\n    .domain([1, n - 2])\n    .range([0, width]);\n\nvar y = d3.scaleLinear()\n    .domain([-1, 1])\n    .range([height, 0]);\n\nvar line = d3.line()\n    .curve(d3.curveBasis)\n    .x(function(d, i) { return x(i); })\n    .y(function(d, i) { return y(d); });\n\ng.append(\"defs\").append(\"clipPath\")\n    .attr(\"id\", \"clip\")\n  .append(\"rect\")\n    .attr(\"width\", width)\n    .attr(\"height\", height);\n\ng.append(\"g\")\n    .attr(\"class\", \"axis axis--x\")\n    .attr(\"transform\", \"translate(0,\" + y(0) + \")\")\n    .call(d3.axisBottom(x));\n\ng.append(\"g\")\n    .attr(\"class\", \"axis axis--y\")\n    .call(d3.axisLeft(y));\n\ng.append(\"g\")\n    .attr(\"clip-path\", \"url(#clip)\")\n  .append(\"path\")\n    .datum(data)\n    .attr(\"class\", \"line\")\n  .transition()\n    .duration(500)\n    .ease(d3.easeLinear)\n    .on(\"start\", tick);\n\nfunction tick() {\n\n  // Push a new data point onto the back.\n  data.push(random());\n\n  // Redraw the line.\n  d3.select(this)\n      .attr(\"d\", line)\n      .attr(\"transform\", null);\n\n  // Slide it to the left.\n  d3.active(this)\n      .attr(\"transform\", \"translate(\" + x(0) + \",0)\")\n    .transition()\n      .on(\"start\", tick);\n\n  // Pop the old data point off the front.\n  data.shift();\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/1642989/raw/589a1e75cb3be94a1e016b93dfa2e458c379b2ff/thumbnail.png","size":4959,"truncated":false,"content":"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\nUg2yx1gR9ZozMIZIpiXaKZXWODv0idJen1eyLFaxyBSicCXIaE+UxqDAKkTq\nbMGV4EjNv/HGG1fLE/guFK+xvBN9kJlE2SAdsdFsAqs+aouhN7MCaBYJvpPf\nLMIZFmParDbJwiPes7J028hC4yK9z6HehEGBi4u4FG4FfkbqGyUhFlMbU4oy\nNlj19fqmES7F6knNVFLeK4uBQVobLgcKrug/nGmRnJAAaCZBWSXSnfmwCEQq\nucwGTLn1NArajz76KGcRSQnopkHmOjj7Cu8MlYF4erCvqRWTkFSDft7A4xoC\nIFubzBIThUlIAqAnNfDsFNxWEl5aMto9/9OuLCGpBje2Quvbe++9p+JO1Npn\nMxQm+c+AS9lwQYHlnzLfbCbMlfV6JzPymfSEGJrQBst8s0qYw65e2btjh3Re\n6pPqPduvPlE6WXfwJoQkIEyX8+/2u/7eAek43yKjI8PS0tKsCrh8ojQh5hHW\nkgdx5todkmezarKFr54VtSWPEJJ0nGHJn6J5JRwWQjLJlSWEUJiEEAqTEAqT\nEEJhEkJhEkIoTEKucWH6veNy4thR6enpk/2H9kvPgJsjREi6hdneVC8NdQ1y\noalNjtUck8tdPeoCVDyzhC15hJjHtM6f5Ws2iN+aL8ULKqSsap4UlVTIXEe+\nukN3rBs4E0JSJEwRi6xY9fddxUqK/33cnpFH0hFCUuTKEkIoTEIIhUkIhUkI\noTAJoTAJIRQmIde8MP3S398n4xMT0qf9HB3n3fEISQfTGgzaztXKidPnZNXy\nVbKnerfc/cDzsqh0jnqeZVlZGUeLkHQIs3LJSrnc7RJHSYlsXr9BKkqLxOHI\nVc+B4E2gCTGPsNtXRoK3ryTEVJxM/hCSgVCYhFCYhBAKkxAKkxBCYRJCYRJC\n0irMQCOBz+cT9hQQkh6mdf4MuVzScLFZFlcskrazZ6ViyVoprSiSnp4eJVSb\nzSZerzf51iEry/SbfWGbMEJmdjThEeR4peNYzd4mjzU+MA9xb63S0lL1XdOE\nmWW1iqOgQLyTfnE6r0jZsixxua6ou+Thwzk5OUqgycTj8UhdXZ1s2rQpJaKP\nBI4DT8lGq2F5eXnSjykSVm1su7q61XiuW7dOHbcpllczpjU1NWqbOdqJN8MM\nWbVtdnd1qaeTp+tYzbqBHLbZlYRjxf42NjbK1q1bZeHChfoteRAJJhME2d3d\nLfn5+VJYWJj0A8N2Ojo6ZenSJaZaua7uHrHnz0nJMenhdrtlZGRUG/hyU4+1\n/cJFqaqsUJPov36sFy5eksoKHKvV3GMd1Y61fGbHCoHb7XbMSf2WPJxEiBJg\nVUnVBO5oOS91Dc2mnryWhibpuNArdX+dlAmfSa6s3yOnjzbK4QNHpa2zx7Rj\nbaw9LbWad3CwulomTTrW/q5OOfD7QTl04Ii0m3asPvlj7y6pr6/TxviYmHVa\nezubZd/+w3LoyHHp6BmY0XdhpQzoLO1ZWfjWzu6L4vGZF+vl5RfI2OiEjGhu\npWkxZlaOZuiyZWJkUK7095p2rE6XUzx+r6nHOtCnuXYjw2L1j4vTrGP1+8Q9\nNCR93ZdlyD1iWuJyfNwjzoFeGXY7xdk3kLTvtUxOTmK5KtVepl8VjRXZMz4q\nIxOTUjx3rmkTx++fEq/PKxMTHil0FJi2XcSyQ+5ByXfMldxsW8q3i/F1u11i\n0f7zTVmkqEgb4xQnRrDNkZEhGdfG1qr9eU5BoSnHqpl4lReZk5urGXmfFBcV\npTwJZLFkyeiIWzyT2namfGJ3FEq25kLP8FARHPf+X4ABAIfEvT5En7yJAAAA\nAElFTkSuQmCC\n","encoding":"base64"}},"public":true,"created_at":"2012-01-19T21:45:20Z","updated_at":"2022-01-26T14:32:36Z","description":"Spline Transition","comments":1,"user":null,"comments_enabled":true,"comments_url":"https://api.github.com/gists/1642989/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/1642874","forks_url":"https://api.github.com/gists/1642874/forks","commits_url":"https://api.github.com/gists/1642874/commits","id":"1642874","node_id":"MDQ6R2lzdDE2NDI4NzQ=","git_pull_url":"https://gist.github.com/1642874.git","git_push_url":"https://gist.github.com/1642874.git","html_url":"https://gist.github.com/mbostock/1642874","files":{},"public":true,"created_at":"2012-01-19T21:33:21Z","updated_at":"2026-01-28T16:56:56Z","description":"Line Transition","comments":25,"user":null,"comments_enabled":true,"comments_url":"https://api.github.com/gists/1642874/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/1871195","user":{"login":"bstaats","id":48583,"node_id":"MDQ6VXNlcjQ4NTgz","avatar_url":"https://avatars.githubusercontent.com/u/48583?v=4","gravatar_id":"","url":"https://api.github.com/users/bstaats","html_url":"https://github.com/bstaats","followers_url":"https://api.github.com/users/bstaats/followers","following_url":"https://api.github.com/users/bstaats/following{/other_user}","gists_url":"https://api.github.com/users/bstaats/gists{/gist_id}","starred_url":"https://api.github.com/users/bstaats/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bstaats/subscriptions","organizations_url":"https://api.github.com/users/bstaats/orgs","repos_url":"https://api.github.com/users/bstaats/repos","events_url":"https://api.github.com/users/bstaats/events{/privacy}","received_events_url":"https://api.github.com/users/bstaats/received_events","type":"User","user_view_type":"public","site_admin":false,"name":"Brian Staats","company":null,"blog":"brianstaats.com","location":"Redmond, WA","email":"brian.staats@gmail.com","hireable":true,"bio":null,"twitter_username":null,"public_repos":18,"public_gists":7,"followers":34,"following":10,"created_at":"2009-01-22T19:33:32Z","updated_at":"2026-02-17T17:41:57Z"},"id":"1871195","created_at":"2012-02-20T20:24:17Z","updated_at":"2015-09-30T22:18:05Z"},{"url":"https://api.github.com/gists/6236871","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":"6236871","created_at":"2013-08-14T23:33:20Z","updated_at":"2015-12-21T02:39:12Z"},{"url":"https://api.github.com/gists/224e2288c0f893efd144a4241147f67d","user":{"login":"rlugojr","id":7250897,"node_id":"MDQ6VXNlcjcyNTA4OTc=","avatar_url":"https://avatars.githubusercontent.com/u/7250897?v=4","gravatar_id":"","url":"https://api.github.com/users/rlugojr","html_url":"https://github.com/rlugojr","followers_url":"https://api.github.com/users/rlugojr/followers","following_url":"https://api.github.com/users/rlugojr/following{/other_user}","gists_url":"https://api.github.com/users/rlugojr/gists{/gist_id}","starred_url":"https://api.github.com/users/rlugojr/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rlugojr/subscriptions","organizations_url":"https://api.github.com/users/rlugojr/orgs","repos_url":"https://api.github.com/users/rlugojr/repos","events_url":"https://api.github.com/users/rlugojr/events{/privacy}","received_events_url":"https://api.github.com/users/rlugojr/received_events","type":"User","user_view_type":"public","site_admin":false,"name":"Ray Lugo, Jr.","company":null,"blog":"https://rlugojr.github.io","location":"New York, NY","email":null,"hireable":null,"bio":"Technology fascinates me and thankfully we live in a time of great innovations.  I love coding, forking and learning from fellow GitHubbers.","twitter_username":null,"public_repos":20,"public_gists":51,"followers":36,"following":125,"created_at":"2014-04-10T12:41:55Z","updated_at":"2024-08-23T14:53:21Z"},"id":"224e2288c0f893efd144a4241147f67d","created_at":"2016-06-29T05:39:49Z","updated_at":"2016-06-29T05:39:49Z"},{"url":"https://api.github.com/gists/90d08f13d61493f659edb7dd3807972e","user":{"login":"cognitivebreeze","id":48847738,"node_id":"MDQ6VXNlcjQ4ODQ3NzM4","avatar_url":"https://avatars.githubusercontent.com/u/48847738?v=4","gravatar_id":"","url":"https://api.github.com/users/cognitivebreeze","html_url":"https://github.com/cognitivebreeze","followers_url":"https://api.github.com/users/cognitivebreeze/followers","following_url":"https://api.github.com/users/cognitivebreeze/following{/other_user}","gists_url":"https://api.github.com/users/cognitivebreeze/gists{/gist_id}","starred_url":"https://api.github.com/users/cognitivebreeze/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cognitivebreeze/subscriptions","organizations_url":"https://api.github.com/users/cognitivebreeze/orgs","repos_url":"https://api.github.com/users/cognitivebreeze/repos","events_url":"https://api.github.com/users/cognitivebreeze/events{/privacy}","received_events_url":"https://api.github.com/users/cognitivebreeze/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":0,"public_gists":1,"followers":0,"following":0,"created_at":"2019-03-23T02:32:45Z","updated_at":"2020-03-10T22:17:56Z"},"id":"90d08f13d61493f659edb7dd3807972e","created_at":"2019-04-30T00:23:48Z","updated_at":"2019-04-30T00:23:48Z"},{"url":"https://api.github.com/gists/06ef98871cf5b0bd015eb8748ae2dd23","user":{"login":"ix4","id":38112035,"node_id":"MDQ6VXNlcjM4MTEyMDM1","avatar_url":"https://avatars.githubusercontent.com/u/38112035?v=4","gravatar_id":"","url":"https://api.github.com/users/ix4","html_url":"https://github.com/ix4","followers_url":"https://api.github.com/users/ix4/followers","following_url":"https://api.github.com/users/ix4/following{/other_user}","gists_url":"https://api.github.com/users/ix4/gists{/gist_id}","starred_url":"https://api.github.com/users/ix4/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ix4/subscriptions","organizations_url":"https://api.github.com/users/ix4/orgs","repos_url":"https://api.github.com/users/ix4/repos","events_url":"https://api.github.com/users/ix4/events{/privacy}","received_events_url":"https://api.github.com/users/ix4/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":12,"public_gists":1448,"followers":67,"following":94,"created_at":"2018-04-05T17:37:06Z","updated_at":"2025-12-05T15:42:55Z"},"id":"06ef98871cf5b0bd015eb8748ae2dd23","created_at":"2019-10-23T20:09:07Z","updated_at":"2019-10-23T20:09:07Z"}],"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":"8fb0a52bcd05b1749fc6bda7350bfdb9ca35e50e","committed_at":"2016-07-06T17:58:29Z","change_status":{"total":6,"additions":3,"deletions":3},"url":"https://api.github.com/gists/1642989/8fb0a52bcd05b1749fc6bda7350bfdb9ca35e50e"},{"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":"952e58eab51c9683f217c210bb5043c657573702","committed_at":"2016-07-06T17:51:23Z","change_status":{"total":83,"additions":35,"deletions":48},"url":"https://api.github.com/gists/1642989/952e58eab51c9683f217c210bb5043c657573702"},{"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":"0d85474ea36947c27b37fa8db11df2e6d759a1e7","committed_at":"2016-02-09T01:07:44Z","change_status":{"total":1,"additions":1,"deletions":0},"url":"https://api.github.com/gists/1642989/0d85474ea36947c27b37fa8db11df2e6d759a1e7"},{"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":"0cdea3aa793297ce60ddeec36006957de728da22","committed_at":"2015-10-30T21:37:20Z","change_status":{"total":2,"additions":1,"deletions":1},"url":"https://api.github.com/gists/1642989/0cdea3aa793297ce60ddeec36006957de728da22"},{"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":"610a97a25b25d80825efdcb9a221ad6c3f249d94","committed_at":"2015-06-11T19:40:45Z","change_status":{"total":2,"additions":1,"deletions":1},"url":"https://api.github.com/gists/1642989/610a97a25b25d80825efdcb9a221ad6c3f249d94"},{"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":"c7dc20631da3d0486a1933e023e5c381fa0c6bf8","committed_at":"2013-08-08T04:24:38Z","change_status":{"total":7,"additions":4,"deletions":3},"url":"https://api.github.com/gists/1642989/c7dc20631da3d0486a1933e023e5c381fa0c6bf8"},{"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":"60cbfc4b8837619cac3ffde59bc53d7581a5e92b","committed_at":"2013-08-08T04:23:49Z","change_status":{"total":36,"additions":5,"deletions":31},"url":"https://api.github.com/gists/1642989/60cbfc4b8837619cac3ffde59bc53d7581a5e92b"},{"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":"c4898a3b68e1a26eb398d3db92106ef6de8f43f6","committed_at":"2012-10-12T03:50:30Z","change_status":{"total":0,"additions":0,"deletions":0},"url":"https://api.github.com/gists/1642989/c4898a3b68e1a26eb398d3db92106ef6de8f43f6"},{"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":"4fcc7467a0ef1409906161fa4483f60d069ca1f7","committed_at":"2012-01-19T21:46:04Z","change_status":{"total":2,"additions":1,"deletions":1},"url":"https://api.github.com/gists/1642989/4fcc7467a0ef1409906161fa4483f60d069ca1f7"},{"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":"9f1dbdc82af63f03f71ad22bfb2468d85b511cf3","committed_at":"2012-01-19T21:45:35Z","change_status":{"total":5,"additions":3,"deletions":2},"url":"https://api.github.com/gists/1642989/9f1dbdc82af63f03f71ad22bfb2468d85b511cf3"},{"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":"485107b3c26f41583ee4eb4e306526a1a7d8234d","committed_at":"2012-01-19T21:44:54Z","change_status":{},"url":"https://api.github.com/gists/1642989/485107b3c26f41583ee4eb4e306526a1a7d8234d"},{"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":"73ed8a0899ae25d6e4b7ac5baab649214e3d43e1","committed_at":"2012-01-19T21:40:17Z","change_status":{},"url":"https://api.github.com/gists/1642989/73ed8a0899ae25d6e4b7ac5baab649214e3d43e1"},{"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":"5a771b79862bab91e4e26dbc4e20a07a1252ee4d","committed_at":"2012-01-19T21:36:24Z","change_status":{},"url":"https://api.github.com/gists/1642989/5a771b79862bab91e4e26dbc4e20a07a1252ee4d"},{"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":"34065583641e011966525532348f633e1a045a94","committed_at":"2012-01-19T21:36:04Z","change_status":{},"url":"https://api.github.com/gists/1642989/34065583641e011966525532348f633e1a045a94"},{"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":"1a86d938a5d53778166822c3e97e1ba1abb38a6c","committed_at":"2012-01-19T21:33:21Z","change_status":{},"url":"https://api.github.com/gists/1642989/1a86d938a5d53778166822c3e97e1ba1abb38a6c"}],"truncated":false}