{"url":"https://api.github.com/gists/4341954","forks_url":"https://api.github.com/gists/4341954/forks","commits_url":"https://api.github.com/gists/4341954/commits","id":"4341954","node_id":"MDQ6R2lzdDQzNDE5NTQ=","git_pull_url":"https://gist.github.com/4341954.git","git_push_url":"https://gist.github.com/4341954.git","html_url":"https://gist.github.com/mbostock/4341954","files":{".block":{"filename":".block","type":"text/plain","language":null,"raw_url":"https://gist.githubusercontent.com/mbostock/4341954/raw/33436af8434588dd75e07cfb6e17fcfe48cec4fe/.block","size":82,"truncated":false,"content":"license: gpl-3.0\nredirect: https://observablehq.com/@d3/kernel-density-estimation\n","encoding":"utf-8"},"README.md":{"filename":"README.md","type":"text/markdown","language":"Markdown","raw_url":"https://gist.githubusercontent.com/mbostock/4341954/raw/1f6f54c0d794f3835d2857135b870209c29c484d/README.md","size":1450,"truncated":false,"content":"[Kernel density estimation](https://en.wikipedia.org/wiki/Kernel_density_estimation) is a method of estimating the probability distribution of a random variable based on a random sample. In contrast to a [histogram](/mbostock/3048450), kernel density estimation produces a smooth estimate. The smoothness can be tuned via the kernel’s _bandwidth_ parameter. With the correct choice of bandwidth, important features of the distribution can be seen, while an incorrect choice results in undersmoothing or oversmoothing and obscured features.\n\nThis example shows a histogram and a kernel density estimation for times between eruptions of [Old Faithful Geyser](https://en.wikipedia.org/wiki/Old_Faithful) in Yellowstone National Park, taken from R’s [`faithful`](https://stat.ethz.ch/R-manual/R-patched/library/datasets/html/faithful.html) dataset. The data follow a [bimodal distribution](https://en.wikipedia.org/wiki/Bimodal_distribution); short eruptions are followed by a wait time averaging about 55 minutes, and long eruptions by a wait time averaging about 80 minutes. In recent years, wait times have been increasing, possibly due to the effects of earthquakes on the geyser’s geohydrology.\n\nThis example is based on a Protovis version by [John Firebaugh](/jfirebaugh/900762). See also a [two-dimensional density estimation](/mbostock/e3f4376d54e02d5d43ae32a7cf0e6aa9) of this dataset using [d3-contour](https://github.com/d3/d3-contour).\n","encoding":"utf-8"},"faithful.json":{"filename":"faithful.json","type":"application/json","language":"JSON","raw_url":"https://gist.githubusercontent.com/mbostock/4341954/raw/c03602b70ea5241bafd034638055b9c0d48eac69/faithful.json","size":818,"truncated":false,"content":"[79,54,74,62,85,55,88,85,51,85,54,84,78,47,83,52,62,84,52,79,51,47,78,69,74,83,55,76,78,79,73,77,66,80,74,52,48,80,59,90,80,58,84,58,73,83,64,53,82,59,75,90,54,80,54,83,71,64,77,81,59,84,48,82,60,92,78,78,65,73,82,56,79,71,62,76,60,78,76,83,75,82,70,65,73,88,76,80,48,86,60,90,50,78,63,72,84,75,51,82,62,88,49,83,81,47,84,52,86,81,75,59,89,79,59,81,50,85,59,87,53,69,77,56,88,81,45,82,55,90,45,83,56,89,46,82,51,86,53,79,81,60,82,77,76,59,80,49,96,53,77,77,65,81,71,70,81,93,53,89,45,86,58,78,66,76,63,88,52,93,49,57,77,68,81,81,73,50,85,74,55,77,83,83,51,78,84,46,83,55,81,57,76,84,77,81,87,77,51,78,60,82,91,53,78,46,77,84,49,83,71,80,49,75,64,76,53,94,55,76,50,82,54,75,78,79,78,78,70,79,70,54,86,50,90,54,54,77,79,64,75,47,86,63,85,82,57,82,67,74,54,83,73,73,88,80,71,83,56,79,78,84,58,83,43,60,75,81,46,90,46,74]\n","encoding":"utf-8"},"index.html":{"filename":"index.html","type":"text/html","language":"HTML","raw_url":"https://gist.githubusercontent.com/mbostock/4341954/raw/359dbbeee68a5a5839a87283828c50e40d8cc32a/index.html","size":2329,"truncated":false,"content":"<!DOCTYPE html>\n<style>\n\n.axis--y .domain {\n  display: none;\n}\n\n</style>\n<svg width=\"960\" height=\"500\"></svg>\n<script src=\"https://d3js.org/d3.v4.min.js\"></script>\n<script>\n\nvar svg = d3.select(\"svg\"),\n    width = +svg.attr(\"width\"),\n    height = +svg.attr(\"height\"),\n    margin = {top: 20, right: 30, bottom: 30, left: 40};\n\nvar x = d3.scaleLinear()\n    .domain([30, 110])\n    .range([margin.left, width - margin.right]);\n\nvar y = d3.scaleLinear()\n    .domain([0, 0.1])\n    .range([height - margin.bottom, margin.top]);\n\nsvg.append(\"g\")\n    .attr(\"class\", \"axis axis--x\")\n    .attr(\"transform\", \"translate(0,\" + (height - margin.bottom) + \")\")\n    .call(d3.axisBottom(x))\n  .append(\"text\")\n    .attr(\"x\", width - margin.right)\n    .attr(\"y\", -6)\n    .attr(\"fill\", \"#000\")\n    .attr(\"text-anchor\", \"end\")\n    .attr(\"font-weight\", \"bold\")\n    .text(\"Time between eruptions (min.)\");\n\nsvg.append(\"g\")\n    .attr(\"class\", \"axis axis--y\")\n    .attr(\"transform\", \"translate(\" + margin.left + \",0)\")\n    .call(d3.axisLeft(y).ticks(null, \"%\"));\n\nd3.json(\"faithful.json\", function(error, faithful) {\n  if (error) throw error;\n\n  var n = faithful.length,\n      bins = d3.histogram().domain(x.domain()).thresholds(40)(faithful),\n      density = kernelDensityEstimator(kernelEpanechnikov(7), x.ticks(40))(faithful);\n\n  svg.insert(\"g\", \"*\")\n      .attr(\"fill\", \"#bbb\")\n    .selectAll(\"rect\")\n    .data(bins)\n    .enter().append(\"rect\")\n      .attr(\"x\", function(d) { return x(d.x0) + 1; })\n      .attr(\"y\", function(d) { return y(d.length / n); })\n      .attr(\"width\", function(d) { return x(d.x1) - x(d.x0) - 1; })\n      .attr(\"height\", function(d) { return y(0) - y(d.length / n); });\n\n  svg.append(\"path\")\n      .datum(density)\n      .attr(\"fill\", \"none\")\n      .attr(\"stroke\", \"#000\")\n      .attr(\"stroke-width\", 1.5)\n      .attr(\"stroke-linejoin\", \"round\")\n      .attr(\"d\",  d3.line()\n          .curve(d3.curveBasis)\n          .x(function(d) { return x(d[0]); })\n          .y(function(d) { return y(d[1]); }));\n});\n\nfunction kernelDensityEstimator(kernel, X) {\n  return function(V) {\n    return X.map(function(x) {\n      return [x, d3.mean(V, function(v) { return kernel(x - v); })];\n    });\n  };\n}\n\nfunction kernelEpanechnikov(k) {\n  return function(v) {\n    return Math.abs(v /= k) <= 1 ? 0.75 * (1 - v * v) / k : 0;\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/4341954/raw/992cc6995683e3f977d4f8383386961e3fdb230d/thumbnail.png","size":9875,"truncated":false,"content":"iVBORw0KGgoAAAANSUhEUgAAAOYAAAB4CAIAAABpZBnfAAAKn2lDQ1BpY20A\nAEjHlZYHUFPpFse/e9MbLRABKaH3Ll16DaAgVRCVkIQQSgiBICI2RFyBFUVE\nBGyIIKLgWmhrQUSxsAhYsKALsigo62IBCyrvAo/w3rzZebNn5uT75cyZ//3O\nd+838weA3MQUCBJgKQAS+anCQC9X+srwCDquH5AABRCBOjBkslIELgEBfuBv\nY/IhgGbWe0YzWuCfhTSbk8ICAApAOJqdwkpE+DySh1gCYSoAqGCkrrkuVTDD\n6QjLCpENIpw/w9w5PjLD0XN8frYnONAN4ZsA4MlMppALAOk+UqensbiIDukj\nwqZ8No8PAFkTYUdWLJONMJLAMDExaYZ3I6wb/R863P/SjBZrMplcMc/NMht4\nd16KIIG5/h8ex/+PxATR/DNUkCSnxAf5Iqs2cmbpLKZH0DzHchh+8yxIdQ2c\nZ14qI1jcI/IOmWdRfIjLPMcn+Yr7+dHL/cX6KW4R85wRGxw2z2yOu8c8C5MC\nxf0paUEeC/1uy+c5jukTMM9M4ewss8xJ8Apc2HOAeJ/8hOXiWWKEnuIeTsrC\nvKmxwd5iRj4AcT/PkyGeV+i9oJ8QINYUigLF58Dhh4g12Ux38dmCYBALRIAP\n2IADhCAaJIEEkArowB3wQAoQIP+YAHndqZz01JmB3JIE64U8bmwq3QW5FRxD\nOoPPMjakm5uamYOZOzb3Cj/QZu8ORLu9UEtuBcA2FylyF2pMDQCaXwJAnVyo\nabyf+04vdbNEwrS5GnrmB4PcXEkgCxSQL0QD6AIjYA6sgD1wBh7AB/gjk4SD\nNYCFzJOITLIOZIKtIAfkgd1gHygFh8ExcAKcBmdBI7gIroIb4A7oBg/AUzAA\nhsEbMA4mwRQEQTiIAlEhBUgV0oIMIHPIBnKEPCA/KBAKh6IgLsSHRFAmtA3K\ngwqhUugoVAP9AjVDV6FbUA/0GBqERqH30FcYBZNhWVgZ1oZNYBvYBfaFg+HV\nMBdOhjPgbHgXXAJXwKfgBvgqfAd+AA/Ab+AJFECRUDSUGsoIZYNyQ/mjIlAx\nKCFqEyoXVYyqQNWhWlAdqHuoAdQY6gsai6ai6WgjtD3aGx2CZqGT0ZvQ+ehS\n9Al0A7odfQ89iB5H/8BQMEoYA4wdhoFZieFi1mFyMMWYKswFzHXMA8wwZhKL\nxdKwOlhrrDc2HBuH3YDNxx7E1mNbsT3YIewEDodTwBngHHD+OCYuFZeDO4A7\nhbuC68UN4z7jSXhVvDneEx+B5+Oz8MX4k/jL+F78K/wUQYqgRbAj+BPYhPWE\nAkIloYVwlzBMmCJKE3WIDsRgYhxxK7GEWEe8TuwnfiCRSOokW9IKEo+0hVRC\nOkO6SRokfSHLkPXJbuRIsoi8i1xNbiU/Jn+gUCjaFGdKBCWVsotSQ7lGeU75\nLEGVMJZgSLAlNkuUSTRI9Eq8lSRIakm6SK6RzJAsljwneVdyTIogpS3lJsWU\n2iRVJtUs1Sc1IU2VNpP2l06Uzpc+KX1LekQGJ6Mt4yHDlsmWOSZzTWaIiqJq\nUN2oLOo2aiX1OnVYFiurI8uQjZPNkz0t2yU7Licjt0QuVC5drkzuktwADUXT\npjFoCbQC2lnaQ9rXRcqLXBZxFu1cVLeod9En+cXyzvIc+Vz5evkH8l8V6Aoe\nCvEKexQaFZ4pohX1FVcorlM8pHhdcWyx7GL7xazFuYvPLn6iBCvpKwUqbVA6\nptSpNKGsouylLFA+oHxNeUyFpuKsEqdSpHJZZVSVquqoylMtUr2i+pouR3eh\nJ9BL6O30cTUlNW81kdpRtS61KXUd9RD1LPV69WcaRA0bjRiNIo02jXFNVc1l\nmpmatZpPtAhaNlqxWvu1OrQ+aetoh2nv0G7UHtGR12HoZOjU6vTrUnSddJN1\nK3Tv62H1bPTi9Q7qdevD+pb6sfpl+ncNYAMrA57BQYMeQ4yhrSHfsMKwz4hs\n5GKUZlRrNGhMM/YzzjJuNH5romkSYbLHpMPkh6mlaYJppelTMxkzH7Mssxaz\n9+b65izzMvP7FhQLT4vNFk0W75YYLOEsObTkkSXVcpnlDss2y+9W1lZCqzqr\nUWtN6yjrcus+G1mbAJt8m5u2GFtX2822F22/2FnZpdqdtfvL3sg+3v6k/chS\nnaWcpZVLhxzUHZgORx0GHOmOUY5HHAec1JyYThVOL5w1nNnOVc6vXPRc4lxO\nubx1NXUVul5w/eRm57bRrdUd5e7lnuve5SHjEeJR6vHcU92T61nrOe5l6bXB\nq9Ub4+3rvce7j6HMYDFqGOM+1j4bfdp9yb5BvqW+L/z0/YR+LcvgZT7L9i7r\nX661nL+80R/4M/z3+j8L0AlIDvh1BXZFwIqyFS8DzQIzAzuCqEFrg04GTQa7\nBhcEPw3RDRGFtIVKhkaG1oR+CnMPKwwbWGmycuPKO+GK4bzwpghcRGhEVcTE\nKo9V+1YNR1pG5kQ+XK2zOn31rTWKaxLWXForuZa59lwUJios6mTUN6Y/s4I5\nEc2ILo8eZ7mx9rPesJ3ZRexRjgOnkPMqxiGmMGaE68Ddyx2NdYotjh3jufFK\nee/ivOMOx32K94+vjp9OCEuoT8QnRiU282X48fz2JJWk9KQegYEgRzCQbJe8\nL3lc6CusSoFSVqc0pcoiZqZTpCvaLhpMc0wrS/u8LnTduXTpdH5653r99TvX\nv8rwzDi+Ab2BtaEtUy1za+bgRpeNRzdBm6I3tW3W2Jy9eXiL15YTW4lb47f+\nlmWaVZj1cVvYtpZs5ewt2UPbvbbX5kjkCHP6dtjvOPwT+ifeT107LXYe2Pkj\nl517O880rzjvWz4r//bPZj+X/Dy9K2ZXV4FVwaHd2N383Q/3OO05UShdmFE4\ntHfZ3oYielFu0cd9a/fdKl5SfHg/cb9o/0CJX0nTAc0Duw98K40tfVDmWlZf\nrlS+s/zTQfbB3kPOh+oOKx/OO/z1CO/Io6NeRxsqtCuKj2GPpR17WRla2XHc\n5nhNlWJVXtX3an71wInAE+011jU1J5VOFtTCtaLa0VORp7pPu59uqjOqO1pP\nq887A86Izrz+JeqXh2d9z7adszlXd17rfPkF6oXcBqhhfcN4Y2zjQFN4U0+z\nT3Nbi33LhV+Nf62+qHax7JLcpYLLxMvZl6evZFyZaBW0jl3lXh1qW9v29NrK\na/fbV7R3Xfe9fvOG541rHS4dV2463Lx4y+5W822b2413rO40dFp2XvjN8rcL\nXVZdDXet7zZ123a39Cztudzr1Hv1nvu9G/cZ9+88WP6g52HIw0d9kX0Dj9iP\nRh4nPH73JO3J1NMt/Zj+3GdSz4qfKz2v+F3v9/oBq4FLg+6DnS+CXjwdYg29\n+SPlj2/D2S8pL4tfqb6qGTEfuTjqOdr9etXr4TeCN1NjOX9K/1n+Vvft+b+c\n/+ocXzk+/E74bvp9/geFD9Ufl3xsmwiYeD6ZODn1KfezwucTX2y+dHwN+/pq\nat033LeS73rfW374/uifTpyeFjCFzFkrgEISjokB4H01AJRwxDt0A0CUmPPA\nswHN+fZZAn/Hcz55NqwAqHYGIGQLAH6IRzmEpBbCZGSdsXPBzgC2sBDnvyMl\n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\nbq/vv/8e6tFSSnmeh1m20J2xWl40gOGEmppqjLHP7/dILmQPZbWAIUkkEslk\nMpFIwIciWjpAKbt4PJ54TiwWkyTpypUrDQ0NtbW1Vq3jFWMYhiiK+/fv7+rq\ngtUb9JXVY1AzuNhfm4v6aKFJdrUFrJQAi2LRV4tsyT0ez+3btzVN27VrVzwe\nX31mFsZYUZQtW7Y0NDR0dXXJsgy/0crEsC4rdDesikUqa+2wtW2jVplUoOu6\n+hxro9gr0DRNzSLn6wo8GCA2pBSGw+He3t5jx46tfn61IITE4/Hdu3cTQnp6\neiRJgqVYdndl23uU0uzW5UWGt8062fv1WsD8vXnzZvZZAx6PB8JLL3tGv/vu\nO3Dpm6bJcZzb7Z6fn4e1tqZpVVVVO3bsWIFxAtd/9dVXhw8fhiLxeZwkCCGJ\nROLYsWOdnZ2BQCAYDKqquuxlqVTq66+/ts5WkCSpvb3dvtOVJXmhBVhTDMPQ\ns3jtPJ1zffZXTdNWsCq3ijNfvny5qampuro6k8n8vV6tN0HX9RMnTvT09CiK\nstTLayWv6Yt56wOQDzaWyuLF/L3XZ7OyVzkcFHP79m1KaVtbWzKZfBv6Ci8B\nr9e7e/fuixcvCoKw7K9Y2qi30+t5Jrff10FxKMteBN68RXBZdhQ+74IJgjA1\nNTUwMHD06NFUKgVLorzrCmTYKIrS3NxcWlp67do1WZbXjac2y5al1DBNhmGK\nS2EppaBbME8wDAP5/AghURRN04QXeiaTefVeP4ZhIHVa0zQwfCVJehsCX716\n9YMPPkBvM0YDzwBke+3fv//cuXMTExNQd/Ut/ca1BFSWIoR1LXnx0mU1bQaC\nm9/f22KoGdgAWGgJXwpMn4Ig8DwPx1xpmhaNRtPpdDKZjMViHMeB5vn9/pKS\nErfbbTkKcl7rlm2XTqet5Yil+nkZaTBhu7q66urqKisro9EopKe8bTRN279/\nf3d3d1VV1foovQ87bBHGKJ2ITzyNnDx5/PqFK30V5ViJ8IK4dWuTDd31oEOQ\nAjIyMjIxMQEVN0RRVBSF53lRFCVJ2rRp0+zs7LNnz4aHhzVNq6ysrKmpCQQC\nLpfLSlLJaZoVfIcPeRTY7XYPDAzEYrFDhw7F4/G1iUKBURsIBOrq6m7cuHH8\n+PG5ubliLxT+Yoet2xf853/6B1mSfvYv/0wIwzCbrWYXWshFQIzHNM1bt25N\nTk4yDFNXV+f1ekVRLC8vhw23sDD3er1VVVVg0Uaj0Wg02t/fPz8/X1VVFQqF\nAoEA1O1agzAmwzCKonzzzTdHjhwBF8GaWZbgzHrvvfcuX748ODhYUlKiqmpR\nh21fvCkIw3o8MkKUIxx6Hgmzm76apinL8tjY2LfffltbW9vR0QH/DlOm5RiH\nzy6XC1LsCCEul6uysrK5uXlycnJ4eLi7u1uW5ba2Nq/XizGGSfrtySxJ0vnz\n5/fu3evxeMBLsJadBnPtnj17Ll26dPToUbCX1lKA/JK7w9bSUbs9iPAuk2X5\n6tWr09PTBw4cqKur03U9EolA/DMrdLdQtAJlpdvBCswwDLfb3dbW9t57742O\njvb29kaj0YaGhq1bt8JA5v2NaRiG3++/du2az+d75513xsfH175jQWV9Pt+u\nXbsuX778s5/9LJFIrLEMeSR3h22h5VkeyIRiWfbs2bOqqp4+fdrv9ycSCfDm\nvKESgPqapplKpTRNq6+vP3Xq1K5du8Lh8NmzZ/v7+2Ell8cZCHK3BwcHJyYm\nDh48CLmwBek9MA927NghiuKtW7dekVNrf+w1lS4LROR1Xf/Tn/5UXV195MgR\n0LkVJynDTJzJZBRFCQQCR48ePXjw4Pj4+JkzZ8bGxmRZzteMK0nSyMhIT09P\nR0dHwSP4sH/h0KFDw8PDExMTsB4orEgrw+4qC36ARCLx+eef79u3r6WlJRaL\n5cXIhklX1/V4PO7xeI4fP97e3n7//v3Ozs7Z2VlJkiBotIJxtVzFfX19169f\n//jjjwVBsENqLzTnyJEj3d3diqK8bPuuzbGXyuZkaUF4MxwOd3Z2Hj58uL6+\nPi9JerldQIhhGIlEory8/OOPP25qarp582ZnZ+fQ0BDLspIkwdC+bN7Nlhm2\nsMLho93d3T09PT//+c95nofwRKF7d8GoLSkpaW9vv3DhwrJWiv1PyFnGt0zB\nT1uILQk5v06W5YcPHz58+PDkyZMejwcinG9puoIZN5lM1tXVNTY2jo6OPn78\n+O7du16vt7GxMRAIiKIIJ+LmjGjOlE8ImZqa6uzsbGpq+tWvftXf3w+JWjbR\nADBqGxoa5ubmzp8/f/To0Wg0mi2bHR6tV7MoYKuZhqkZhGM5hkGFED2ZTML+\neoyxz+e7cuVKf3//6dOnwQ8FEdS316dgKkBZzMrKym3btkUikXv37n3//fe6\n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\nz4QNRPuHPXsAAAAASUVORK5CYII=\n","encoding":"base64"}},"public":true,"created_at":"2012-12-20T00:14:33Z","updated_at":"2025-01-27T23:41:08Z","description":"Kernel Density Estimation","comments":3,"user":null,"comments_enabled":true,"comments_url":"https://api.github.com/gists/4341954/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/900762","forks_url":"https://api.github.com/gists/900762/forks","commits_url":"https://api.github.com/gists/900762/commits","id":"900762","node_id":"MDQ6R2lzdDkwMDc2Mg==","git_pull_url":"https://gist.github.com/900762.git","git_push_url":"https://gist.github.com/900762.git","html_url":"https://gist.github.com/jfirebaugh/900762","files":{},"public":true,"created_at":"2011-04-03T20:25:33Z","updated_at":"2024-03-24T13:43:50Z","description":"","comments":0,"user":null,"comments_enabled":true,"comments_url":"https://api.github.com/gists/900762/comments","owner":{"login":"jfirebaugh","id":98601,"node_id":"MDQ6VXNlcjk4NjAx","avatar_url":"https://avatars.githubusercontent.com/u/98601?v=4","gravatar_id":"","url":"https://api.github.com/users/jfirebaugh","html_url":"https://github.com/jfirebaugh","followers_url":"https://api.github.com/users/jfirebaugh/followers","following_url":"https://api.github.com/users/jfirebaugh/following{/other_user}","gists_url":"https://api.github.com/users/jfirebaugh/gists{/gist_id}","starred_url":"https://api.github.com/users/jfirebaugh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jfirebaugh/subscriptions","organizations_url":"https://api.github.com/users/jfirebaugh/orgs","repos_url":"https://api.github.com/users/jfirebaugh/repos","events_url":"https://api.github.com/users/jfirebaugh/events{/privacy}","received_events_url":"https://api.github.com/users/jfirebaugh/received_events","type":"User","user_view_type":"public","site_admin":false}},"forks":[{"url":"https://api.github.com/gists/7777293","user":{"login":"arandroidbook","id":5872335,"node_id":"MDQ6VXNlcjU4NzIzMzU=","avatar_url":"https://avatars.githubusercontent.com/u/5872335?v=4","gravatar_id":"","url":"https://api.github.com/users/arandroidbook","html_url":"https://github.com/arandroidbook","followers_url":"https://api.github.com/users/arandroidbook/followers","following_url":"https://api.github.com/users/arandroidbook/following{/other_user}","gists_url":"https://api.github.com/users/arandroidbook/gists{/gist_id}","starred_url":"https://api.github.com/users/arandroidbook/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/arandroidbook/subscriptions","organizations_url":"https://api.github.com/users/arandroidbook/orgs","repos_url":"https://api.github.com/users/arandroidbook/repos","events_url":"https://api.github.com/users/arandroidbook/events{/privacy}","received_events_url":"https://api.github.com/users/arandroidbook/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":1,"public_gists":1,"followers":3,"following":0,"created_at":"2013-11-06T17:38:11Z","updated_at":"2025-01-13T14:20:28Z"},"id":"7777293","created_at":"2013-12-03T20:54:01Z","updated_at":"2015-12-30T04:39:09Z"},{"url":"https://api.github.com/gists/7777399","user":{"login":"jensgrubert","id":1931629,"node_id":"MDQ6VXNlcjE5MzE2Mjk=","avatar_url":"https://avatars.githubusercontent.com/u/1931629?v=4","gravatar_id":"","url":"https://api.github.com/users/jensgrubert","html_url":"https://github.com/jensgrubert","followers_url":"https://api.github.com/users/jensgrubert/followers","following_url":"https://api.github.com/users/jensgrubert/following{/other_user}","gists_url":"https://api.github.com/users/jensgrubert/gists{/gist_id}","starred_url":"https://api.github.com/users/jensgrubert/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jensgrubert/subscriptions","organizations_url":"https://api.github.com/users/jensgrubert/orgs","repos_url":"https://api.github.com/users/jensgrubert/repos","events_url":"https://api.github.com/users/jensgrubert/events{/privacy}","received_events_url":"https://api.github.com/users/jensgrubert/received_events","type":"User","user_view_type":"public","site_admin":false,"name":"Jens Grubert","company":"Coburg University","blog":"http://www.jensgrubert.com","location":"Coburg, Germany","email":"jens.grubert@gmail.com","hireable":null,"bio":null,"twitter_username":null,"public_repos":5,"public_gists":6,"followers":2,"following":0,"created_at":"2012-07-06T09:18:10Z","updated_at":"2021-07-19T19:07:25Z"},"id":"7777399","created_at":"2013-12-03T21:03:07Z","updated_at":"2017-04-18T18:39:38Z"},{"url":"https://api.github.com/gists/cfec72f9ba7f6ebe8adb","user":{"login":"jczerwinski","id":2684280,"node_id":"MDQ6VXNlcjI2ODQyODA=","avatar_url":"https://avatars.githubusercontent.com/u/2684280?v=4","gravatar_id":"","url":"https://api.github.com/users/jczerwinski","html_url":"https://github.com/jczerwinski","followers_url":"https://api.github.com/users/jczerwinski/followers","following_url":"https://api.github.com/users/jczerwinski/following{/other_user}","gists_url":"https://api.github.com/users/jczerwinski/gists{/gist_id}","starred_url":"https://api.github.com/users/jczerwinski/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jczerwinski/subscriptions","organizations_url":"https://api.github.com/users/jczerwinski/orgs","repos_url":"https://api.github.com/users/jczerwinski/repos","events_url":"https://api.github.com/users/jczerwinski/events{/privacy}","received_events_url":"https://api.github.com/users/jczerwinski/received_events","type":"User","user_view_type":"public","site_admin":false,"name":"Jamie Czerwinski","company":"@telus ","blog":"","location":"Edmonton","email":"jamie.czerwinski@gmail.com","hireable":null,"bio":"🥷🚀🧘😏✨","twitter_username":null,"public_repos":47,"public_gists":3,"followers":1,"following":2,"created_at":"2012-10-30T14:51:26Z","updated_at":"2026-01-31T00:05:23Z"},"id":"cfec72f9ba7f6ebe8adb","created_at":"2015-08-12T04:07:52Z","updated_at":"2015-08-29T14:27:13Z"},{"url":"https://api.github.com/gists/6d0c8b8d46e4bc34c830","user":{"login":"redame","id":11907023,"node_id":"MDQ6VXNlcjExOTA3MDIz","avatar_url":"https://avatars.githubusercontent.com/u/11907023?v=4","gravatar_id":"","url":"https://api.github.com/users/redame","html_url":"https://github.com/redame","followers_url":"https://api.github.com/users/redame/followers","following_url":"https://api.github.com/users/redame/following{/other_user}","gists_url":"https://api.github.com/users/redame/gists{/gist_id}","starred_url":"https://api.github.com/users/redame/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/redame/subscriptions","organizations_url":"https://api.github.com/users/redame/orgs","repos_url":"https://api.github.com/users/redame/repos","events_url":"https://api.github.com/users/redame/events{/privacy}","received_events_url":"https://api.github.com/users/redame/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":103,"public_gists":1,"followers":10,"following":5,"created_at":"2015-04-12T03:00:20Z","updated_at":"2026-03-04T01:13:47Z"},"id":"6d0c8b8d46e4bc34c830","created_at":"2016-02-21T02:10:51Z","updated_at":"2016-02-21T02:10:51Z"},{"url":"https://api.github.com/gists/a840616a5e84ff29dcc70fbbb23e0227","user":{"login":"a1ip","id":177965,"node_id":"MDQ6VXNlcjE3Nzk2NQ==","avatar_url":"https://avatars.githubusercontent.com/u/177965?v=4","gravatar_id":"","url":"https://api.github.com/users/a1ip","html_url":"https://github.com/a1ip","followers_url":"https://api.github.com/users/a1ip/followers","following_url":"https://api.github.com/users/a1ip/following{/other_user}","gists_url":"https://api.github.com/users/a1ip/gists{/gist_id}","starred_url":"https://api.github.com/users/a1ip/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/a1ip/subscriptions","organizations_url":"https://api.github.com/users/a1ip/orgs","repos_url":"https://api.github.com/users/a1ip/repos","events_url":"https://api.github.com/users/a1ip/events{/privacy}","received_events_url":"https://api.github.com/users/a1ip/received_events","type":"User","user_view_type":"public","site_admin":false,"name":"Philippe Rigovanov","company":"@PPA4IPA","blog":"https://phil.rigovanov.ru","location":"Novorossiysk, Russia","email":"phil@rigovanov.ru","hireable":null,"bio":"Math & Informatics Teacher interested in DataViz, DA, ML, Natural Language Processing & WebTech ☦","twitter_username":"phil_rigovanov","public_repos":2684,"public_gists":450,"followers":95,"following":12,"created_at":"2010-01-07T14:14:04Z","updated_at":"2026-03-19T07:29:46Z"},"id":"a840616a5e84ff29dcc70fbbb23e0227","created_at":"2020-09-11T21:11:33Z","updated_at":"2020-09-11T21:20:01Z"},{"url":"https://api.github.com/gists/9453413feccde007eb7b88d8e2eec45c","user":{"login":"sunxiaotianmg","id":5368651,"node_id":"MDQ6VXNlcjUzNjg2NTE=","avatar_url":"https://avatars.githubusercontent.com/u/5368651?v=4","gravatar_id":"","url":"https://api.github.com/users/sunxiaotianmg","html_url":"https://github.com/sunxiaotianmg","followers_url":"https://api.github.com/users/sunxiaotianmg/followers","following_url":"https://api.github.com/users/sunxiaotianmg/following{/other_user}","gists_url":"https://api.github.com/users/sunxiaotianmg/gists{/gist_id}","starred_url":"https://api.github.com/users/sunxiaotianmg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sunxiaotianmg/subscriptions","organizations_url":"https://api.github.com/users/sunxiaotianmg/orgs","repos_url":"https://api.github.com/users/sunxiaotianmg/repos","events_url":"https://api.github.com/users/sunxiaotianmg/events{/privacy}","received_events_url":"https://api.github.com/users/sunxiaotianmg/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":1532,"public_gists":1,"followers":14,"following":534,"created_at":"2013-09-03T00:28:59Z","updated_at":"2026-02-23T05:07:42Z"},"id":"9453413feccde007eb7b88d8e2eec45c","created_at":"2023-03-04T13:54:39Z","updated_at":"2023-03-04T13:54:39Z"}],"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":"cac8843f76621446a1f61dbd7124d62783d274e6","committed_at":"2019-06-28T01:11:44Z","change_status":{"total":1,"additions":1,"deletions":0},"url":"https://api.github.com/gists/4341954/cac8843f76621446a1f61dbd7124d62783d274e6"},{"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":"99757f8851178fbf60ff2173f322d1eb702d250f","committed_at":"2017-04-11T16:27:42Z","change_status":{"total":144,"additions":54,"deletions":90},"url":"https://api.github.com/gists/4341954/99757f8851178fbf60ff2173f322d1eb702d250f"},{"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":"aa3e3c7f0dbccdea28945c014204d86a175e9860","committed_at":"2016-02-09T02:12:11Z","change_status":{"total":1,"additions":1,"deletions":0},"url":"https://api.github.com/gists/4341954/aa3e3c7f0dbccdea28945c014204d86a175e9860"},{"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":"3838d59f9579951f671bca38e9beba8dbaf83e2b","committed_at":"2015-10-31T01:23:44Z","change_status":{"total":2,"additions":1,"deletions":1},"url":"https://api.github.com/gists/4341954/3838d59f9579951f671bca38e9beba8dbaf83e2b"},{"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":"3a6f2557853941e2413f458d0b08ab18da5a3e27","committed_at":"2015-06-11T19:29:12Z","change_status":{"total":4,"additions":3,"deletions":1},"url":"https://api.github.com/gists/4341954/3a6f2557853941e2413f458d0b08ab18da5a3e27"},{"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":"7dafad927a42376302b1999205c54fd4ee1a2850","committed_at":"2012-12-20T00:25:07Z","change_status":{"total":0,"additions":0,"deletions":0},"url":"https://api.github.com/gists/4341954/7dafad927a42376302b1999205c54fd4ee1a2850"},{"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":"1c9a7b55e95e88f6d54a88f7b2096335673c9e70","committed_at":"2012-12-20T00:24:02Z","change_status":{"total":2,"additions":1,"deletions":1},"url":"https://api.github.com/gists/4341954/1c9a7b55e95e88f6d54a88f7b2096335673c9e70"},{"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":"9434afde0db9b4a6f7f3e29b951f04da9ce16d64","committed_at":"2012-12-20T00:23:24Z","change_status":{"total":2,"additions":1,"deletions":1},"url":"https://api.github.com/gists/4341954/9434afde0db9b4a6f7f3e29b951f04da9ce16d64"},{"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":"0ff7a456d70b77d7c4719192ff93e63b19eb9eb8","committed_at":"2012-12-20T00:22:58Z","change_status":{"total":2,"additions":1,"deletions":1},"url":"https://api.github.com/gists/4341954/0ff7a456d70b77d7c4719192ff93e63b19eb9eb8"},{"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":"972cb59f1133417550bfca71c198dc4e39e3b17d","committed_at":"2012-12-20T00:22:07Z","change_status":{"total":2,"additions":1,"deletions":1},"url":"https://api.github.com/gists/4341954/972cb59f1133417550bfca71c198dc4e39e3b17d"},{"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":"c684a79d22dbf17586748c880dc2d713311b303b","committed_at":"2012-12-20T00:21:36Z","change_status":{},"url":"https://api.github.com/gists/4341954/c684a79d22dbf17586748c880dc2d713311b303b"},{"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":"6ad1d724052ad4b7e9e902082a066c123f9111ce","committed_at":"2012-12-20T00:20:07Z","change_status":{},"url":"https://api.github.com/gists/4341954/6ad1d724052ad4b7e9e902082a066c123f9111ce"},{"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":"a1bf1c7c9e66f8e1e02bd4730d73c144d4b68341","committed_at":"2012-12-20T00:16:54Z","change_status":{},"url":"https://api.github.com/gists/4341954/a1bf1c7c9e66f8e1e02bd4730d73c144d4b68341"},{"user":{"login":"jfirebaugh","id":98601,"node_id":"MDQ6VXNlcjk4NjAx","avatar_url":"https://avatars.githubusercontent.com/u/98601?v=4","gravatar_id":"","url":"https://api.github.com/users/jfirebaugh","html_url":"https://github.com/jfirebaugh","followers_url":"https://api.github.com/users/jfirebaugh/followers","following_url":"https://api.github.com/users/jfirebaugh/following{/other_user}","gists_url":"https://api.github.com/users/jfirebaugh/gists{/gist_id}","starred_url":"https://api.github.com/users/jfirebaugh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jfirebaugh/subscriptions","organizations_url":"https://api.github.com/users/jfirebaugh/orgs","repos_url":"https://api.github.com/users/jfirebaugh/repos","events_url":"https://api.github.com/users/jfirebaugh/events{/privacy}","received_events_url":"https://api.github.com/users/jfirebaugh/received_events","type":"User","user_view_type":"public","site_admin":false},"version":"7bda4febdad06c0f764e84506d755e1b1fea9771","committed_at":"2011-04-03T21:14:37Z","change_status":{},"url":"https://api.github.com/gists/4341954/7bda4febdad06c0f764e84506d755e1b1fea9771"},{"user":{"login":"jfirebaugh","id":98601,"node_id":"MDQ6VXNlcjk4NjAx","avatar_url":"https://avatars.githubusercontent.com/u/98601?v=4","gravatar_id":"","url":"https://api.github.com/users/jfirebaugh","html_url":"https://github.com/jfirebaugh","followers_url":"https://api.github.com/users/jfirebaugh/followers","following_url":"https://api.github.com/users/jfirebaugh/following{/other_user}","gists_url":"https://api.github.com/users/jfirebaugh/gists{/gist_id}","starred_url":"https://api.github.com/users/jfirebaugh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jfirebaugh/subscriptions","organizations_url":"https://api.github.com/users/jfirebaugh/orgs","repos_url":"https://api.github.com/users/jfirebaugh/repos","events_url":"https://api.github.com/users/jfirebaugh/events{/privacy}","received_events_url":"https://api.github.com/users/jfirebaugh/received_events","type":"User","user_view_type":"public","site_admin":false},"version":"ec28bf8a5e1885dc1e1f6226efff699573a6a318","committed_at":"2011-04-03T20:25:33Z","change_status":{},"url":"https://api.github.com/gists/4341954/ec28bf8a5e1885dc1e1f6226efff699573a6a318"}],"truncated":false}