{"url":"https://api.github.com/gists/4282586","forks_url":"https://api.github.com/gists/4282586/forks","commits_url":"https://api.github.com/gists/4282586/commits","id":"4282586","node_id":"MDQ6R2lzdDQyODI1ODY=","git_pull_url":"https://gist.github.com/4282586.git","git_push_url":"https://gist.github.com/4282586.git","html_url":"https://gist.github.com/mbostock/4282586","files":{".block":{"filename":".block","type":"text/plain","language":null,"raw_url":"https://gist.githubusercontent.com/mbostock/4282586/raw/a372218513ccd4a9ea7c08bae23ed76af3439c62/.block","size":76,"truncated":false,"content":"license: gpl-3.0\nredirect: https://observablehq.com/@d3/three-axis-rotation\n","encoding":"utf-8"},"README.md":{"filename":"README.md","type":"text/markdown","language":"Markdown","raw_url":"https://gist.githubusercontent.com/mbostock/4282586/raw/0e1b9afe32f16e4f55900e051e575ce40f616538/README.md","size":244,"truncated":false,"content":"[D3 3.0](https://github.com/mbostock/d3/wiki/Upgrading-to-3.0) supports **three-axis rotation** for geographic projections. This example demonstrates rotating lambda (λ), phi (φ) and gamma (γ) in three side-by-side orthographic projections.\n","encoding":"utf-8"},"index.html":{"filename":"index.html","type":"text/html","language":"HTML","raw_url":"https://gist.githubusercontent.com/mbostock/4282586/raw/0f2d146b29bf986a985dfe8361a80db9c5d2abcf/index.html","size":1550,"truncated":false,"content":"<!DOCTYPE html>\n<meta charset=\"utf-8\">\n<style>\n\n.title {\n  display: inline-block;\n  font-size: 48px;\n  line-height: 90px;\n  text-align: center;\n}\n\n</style>\n<body>\n<script src=\"https://d3js.org/d3.v4.min.js\"></script>\n<script src=\"https://d3js.org/topojson.v1.min.js\"></script>\n<script>\n\nvar diameter = 960 / 3,\n    radius = diameter / 2,\n    velocity = 0.01;\n\nvar projection = d3.geoOrthographic()\n    .scale(radius - 2)\n    .translate([radius, radius])\n    .clipAngle(90)\n    .precision(0);\n\nd3.select(\"body\").selectAll(\".title\")\n  .data([\"λ\", \"φ\", \"γ\"])\n  .enter().append(\"div\")\n    .attr(\"class\", \"title\")\n    .style(\"width\", diameter + \"px\")\n    .text(function(d) { return d; });\n\nvar canvas = d3.select(\"body\").selectAll(\"canvas\")\n  .data(d3.range(3))\n  .enter().append(\"canvas\")\n    .datum(function() { return this.getContext(\"2d\"); })\n    .attr(\"width\", diameter)\n    .attr(\"height\", diameter);\n\nvar path = d3.geoPath()\n    .projection(projection);\n\nd3.json(\"/mbostock/raw/4090846/world-110m.json\", function(error, world) {\n  if (error) throw error;\n\n  var land = topojson.feature(world, world.objects.land),\n      globe = {type: \"Sphere\"};\n\n  d3.timer(function(elapsed) {\n    var angle = velocity * elapsed;\n    canvas.each(function(context, i) {\n      var rotate = [0, 0, 0];\n      rotate[i] = angle, projection.rotate(rotate);\n      context.clearRect(0, 0, diameter, diameter);\n      context.beginPath(), path.context(context)(land), context.fill();\n      context.beginPath(), path(globe), context.stroke();\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/4282586/raw/c4bb0759e60e038b42d123674baf98120df0993c/thumbnail.png","size":15670,"truncated":false,"content":"iVBORw0KGgoAAAANSUhEUgAAAOYAAAB4CAIAAABpZBnfAAAKkWlDQ1BpY20A\nAEjHlZYHUJPZFsfv96U3WkIEpITekV6lhB6KdBBshCRAKCEGggjYkMUVWFFE\nRMCGLIoouCpFbIgF26JgwYJukEVAXcWCDZX3AY/w3rzZebMnc/L9cnLmn3Nv\n7p35A0CuZQuFKbAcAKmCDFGojztjcXQMA9cPiMiLBvDAgM1JFzKDgwPA38bH\n+wCaet4xndIC/yzkubx0DgBQMMJx3HROKsInkSzkCEUZAKDckLrOqgzhFHMR\npomQARHOmuKEGS6e4rgZ3jfdEx7qgTCigyez2aIEAEgdSJ2RyUlAdEgShM0F\nXL4AADKycuDCSWQj2uSpGUxSU9OmOBdhg7j/0En4L804qSabnSDlmbVMB96T\nny5MYa/+h9vx/yM1RTz7G+pIktOTw/yRpwKyZ1kctlfYLCfyWAGzLMxwD51l\nfgYrXNoj9o2YZXFyBHOWk9P8pf2CuEVBUv10j5hZzk4Mj5plLs/Ta5ZFaaHS\n/vTMMK+5fo9Fs5zE9gueZbZoei3TzEvxCZ2bOVg6pyBlkXQt8SJvaQ8vfW69\nGYnhvlJGDoC0n+/Nkq5X5DunnxIs1RSJQ6X7wBNESDW5bE/p3gIPwAcCwAOp\ngA0YwBd4ApDBy8qYGt4jTbhaxE9IzGAwkRvAM2GwBBwzE4aluYUlmLpPM3/X\n+wfT9wSi4+dqOWcBYOYAAPvP1SKNAKi/jRzjFXM1nTfI52YAzuRxxKLMmRp6\n6g2D3FNZ5KYqI6dBGxgAU2AJbIETcANewA8EgXAQDZYDDkhE5haBVSAXbAAF\noAhsBTtAJdgLDoBD4Cg4DlrBGXABXAE3wG1wDzwGEjAEXoIx8BFMQBCEgygQ\nFVKGNCBdyBiyhOwhF8gLCoBCoWgoFkqABJAYyoU2QkVQKVQJ7Yfqod+gU9AF\n6BrUAz2EBqBR6B30FUbBZJgGq8F68ALYHmbC/nA4vAxOgFfC2XA+vAWugGvg\nI3ALfAG+Ad+DJfBLeBwFUCQUHaWJMkXZozxQQagYVDxKhFqLKkSVo2pQjah2\nVBfqDkqCeoX6gsaiqWgG2hTthPZFR6A56JXotehidCX6ELoFfQl9Bz2AHkP/\nwFAwqhhjjCOGhVmMScCswhRgyjF1mGbMZcw9zBDmIxaLpWP1sXZYX2w0Ngmb\ngy3G7sY2YTuwPdhB7DgOh1PGGeOccUE4Ni4DV4DbhTuCO4/rxQ3hPuNJeA28\nJd4bH4MX4PPw5fjD+HP4XvwwfoIgR9AlOBKCCFzCakIJoZbQTrhFGCJMEOWJ\n+kRnYjgxibiBWEFsJF4m9hPfk0gkLZIDKYTEJ60nVZCOka6SBkhfyApkI7IH\neSlZTN5CPkjuID8kv6dQKHoUN0oMJYOyhVJPuUh5SvksQ5Uxk2HJcGXWyVTJ\ntMj0yryWJcjqyjJll8tmy5bLnpC9JftKjiCnJ+chx5ZbK1cld0quT25cnipv\nIR8knypfLH9Y/pr8iAJOQU/BS4GrkK9wQOGiwiAVRdWmelA51I3UWupl6hAN\nS9OnsWhJtCLaUVo3bUxRQdFaMVIxS7FK8ayihI6i69FZ9BR6Cf04/T796zy1\necx5vHmb5zXO6533SWm+kpsST6lQqUnpntJXZYayl3Ky8jblVuUnKmgVI5UQ\nlVUqe1Quq7yaT5vvNJ8zv3D+8fmPVGFVI9VQ1RzVA6o3VcfV1NV81IRqu9Qu\nqr1Sp6u7qSepl6mfUx/VoGq4aPA1yjTOa7xgKDKYjBRGBeMSY0xTVdNXU6y5\nX7Nbc0JLXytCK0+rSeuJNlHbXjteu0y7U3tMR0MnUCdXp0HnkS5B1143UXen\nbpfuJz19vSi9TXqteiP6Svos/Wz9Bv1+A4qBq8FKgxqDu4ZYQ3vDZMPdhreN\nYCMbo0SjKqNbxrCxrTHfeLdxjwnGxMFEYFJj0mdKNmWaZpo2mA6Y0c0CzPLM\nWs1eL9BZELNg24KuBT/MbcxTzGvNH1soWPhZ5Fm0W7yzNLLkWFZZ3rWiWHlb\nrbNqs3prbWzNs95j/cCGahNos8mm0+a7rZ2tyLbRdtROxy7Wrtquz55mH2xf\nbH/VAePg7rDO4YzDF0dbxwzH445vnEydkp0OO40s1F/IW1i7cNBZy5ntvN9Z\n4sJwiXXZ5yJx1XRlu9a4PnPTduO61bkNMw2ZScwjzNfu5u4i92b3Tx6OHms8\nOjxRnj6ehZ7dXgpeEV6VXk+9tbwTvBu8x3xsfHJ8Onwxvv6+23z7WGosDque\nNeZn57fG75I/2T/Mv9L/WYBRgCigPRAO9AvcHti/SHeRYFFrEAhiBW0PehKs\nH7wy+HQINiQ4pCrkeahFaG5oVxg1bEXY4bCP4e7hJeGPIwwixBGdkbKRSyPr\nIz9FeUaVRkkWL1i8ZvGNaJVofnRbDC4mMqYuZnyJ15IdS4aW2iwtWHp/mf6y\nrGXXlqssT1l+doXsCvaKE7GY2KjYw7Hf2EHsGvZ4HCuuOm6M48HZyXnJdeOW\ncUd5zrxS3nC8c3xp/EiCc8L2hNFE18TyxFd8D34l/22Sb9LepE/JQckHkydT\nolKaUvGpsamnBAqCZMGlNPW0rLQeobGwQChZ6bhyx8oxkb+oLh1KX5belkFD\njMtNsYH4J/FApktmVebnVZGrTmTJZwmybq42Wr159XC2d/avOegcTk5nrmbu\nhtyBNcw1+9dCa+PWdq7TXpe/bmi9z/pDG4gbkjf8nmeeV5r3YWPUxvZ8tfz1\n+YM/+fzUUCBTICro2+S0ae/P6J/5P3dvttq8a/OPQm7h9SLzovKib8Wc4uu/\nWPxS8cvklvgt3SW2JXu2YrcKtt7f5rrtUKl8aXbp4PbA7S1ljLLCsg87Vuy4\nVm5dvncncad4p6QioKJtl86urbu+VSZW3qtyr2qqVq3eXP1pN3d37x63PY17\n1fYW7f26j7/vwX6f/S01ejXlB7AHMg88r42s7frV/tf6OpW6orrvBwUHJYdC\nD12qt6uvP6x6uKQBbhA3jB5ZeuT2Uc+jbY2mjfub6E1Fx8Ax8bEXv8X+dv+4\n//HOE/YnGk/qnqxupjYXtkAtq1vGWhNbJW3RbT2n/E51tju1N582O33wjOaZ\nqrOKZ0vOEc/ln5s8n31+vEPY8epCwoXBzhWdjy8uvnj3Usil7sv+l69e8b5y\nsYvZdf6q89Uz1xyvnbpuf731hu2Nlps2N5t/t/m9udu2u+WW3a222w6323sW\n9pzrde29cMfzzpW7rLs37i2613M/4v6DvqV9kgfcByMPUx6+fZT5aOLx+n5M\nf+ETuSflT1Wf1vxh+EeTxFZydsBz4OazsGePBzmDL/9M//PbUP5zyvPyYY3h\n+hHLkTOj3qO3Xyx5MfRS+HLiVcFf8n9VvzZ4ffKN25ubY4vHht6K3k6+K36v\n/P7gB+sPnePB408/pn6c+FT4WfnzoS/2X7q+Rn0dnlj1Dfet4rvh9/Yf/j/6\nJ1MnJ4VsEXvaCqCQhOPjAXh3EABKNABUxD8QZWb87nRAMx59msDf8Ywnng5b\nAA4gnjYKST8k9yA+XBdJKvJVMPIMdwOwlZU0/x3p8VaWM1qkVsSalE9Ovkc8\n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\nH9h9EwZ91apVQN7evXux1sUHg8Lj8aKjo03gOTKdFluWCoUiMjKSXqlLH+C5\nUqmEbHkTJkwAz3NaWhpYKHuLJzR46tSpyMjI999/H6qJWABAooNf3QDLwhk6\nODi4vr5eo9FcvXq1qanJwPig7voj9vDPPvvMyBrP/QHQ6Xfffefg4MBms/fs\n2YO1HkWYuYaGhsjISP06SkYCyQJ5584dbFau7W7EHz582GUFNXL23b9//6JF\ni/z8/Ly8vI4fPw4Tn5mZaXKydeIL2L1791dffYX1XLL9AdCFVCp95ZVXDLAs\nKUINrp9r1671WOcWGe4Vhnj//v2g0Vp49wR+PXXqFJAHdSXpYWk8Ho/wq8lz\nQLiW8IRZppOiKBK1TadI33uJaVzV2NiYlZX1448/Xr58mZwiMjIy+lgcgLR/\n8ODBXbt20esDQ/CUeZkYmrp16xaJE+hOxIJX9vDhwxjjK1euAL8aJhMZ7hs+\nbm5ujo6OhpB+i3EtyTXOYDC4XO7nn38OLm9yfKmoqIiNje0jv9LJzM7OTktL\nM75Ok2GA6EedpoRCYV1dnX77xPiflpZGd/ZQFJWamgqhon0cebLOv/jiC4g2\n7KepJFXWuoxm1ufXsLCw9vZ2YmnuESvUIwbQhEgkio6OBhOSBbYVaF+hUAQH\nBzs4OEAptrKyMkJPVlYWFEc1VzppcoyLjY0F015fZlSpVIK3SZ8uYhtvaWkp\nKysTCoUajaaqqgqiJcESCetQKpXGxsb2pcSSfu/AT8nJyevXr1+9evXu3bu3\nb9/e2NhYWlpqZOX5HgEI3LZtGzHvdKkPENtzUVFRQkKCQCAwsveeWRbTVnxS\nUlJubi75te+D2B2QnPEIoYMHD2KMOzs7wUogFovj4+NJRVOzd9rW1hYVFUXm\nry9TaPhbiUTS1NQkEAhAhVAqlWSPxhjzeLyoqCiwZ5mXTODa4uJiKHWLEHr6\n6aeXLl0KcYw6qosJAMr3yZMnu1NhSdql5cuX3759OzMzs1dbpVEsi2mTV15e\nHhcXRxzW/cq4arU6MzOTHsJcWloaFxfXHxNJyIRBz8jISE9Phyh90xi3t5+Q\nXuRyeXp6ekZGRv/ZUEm5v9OnT8MdxqVLl9bV1UmlUpMPsvSWy8rKoJK6fpEI\nEhmyZcuW9PT0yspK4kkxsgtjWZaOkEQiSU5Ovn37NpnR/lDedaC1tTU+Ph6c\nBbg/zYpk+BoaGmJiYsAghftnfeoHTd+/fz8mJobED/QfmUScFxcXL1y4kMFg\nLF68eOvWrdu2baPfGOstORjj3NzcyZMnE+sVuedILlm4ubl9+OGHRUVFEMrS\n21HtHcvSx7G2tjYxMTEvLw8YF/d+UnXmg+5LhL0SRq21tTU1NTUtLQ0UA8s4\nq4AQpVJZUFCQkJBQXV1Nj+E3CwL04QJvbUJCQkFBAQnK7m8a6ZdnLl686Ofn\nB7IQ6qnDdBijJxCWIK47uAWpEwuLEPL19f3rX/8aGRlJbm6aMJIm5gDTaC8o\n19TU1NTUODk5BQQEQBU/pC3bSVYVYNalw0OjTcdOdhCxWNzS0mJra2tnZ9fc\n3AzH53Hjxrm6ukKzFstqAyPDYDAUCkVpaWlHR8fw4cP9/f0hHFufTCPb1PlE\nJpPV1tY2NTW5uLgEBwdzuVzSr2XIhKlhMpkqler8+fOHDh0qLi6eNWvWBx98\nsGDBAsAWZrC7FAeQTI7D4QBX1NXVTZkypa2tDXITubm5hYSEeHt7+/j4hISE\nhISEwA0oTe8z2AGYnraOjCzGuLGxsa6uTqlUenh4wMV54z+HXymKys/PT0tL\nGzly5FNPPSUQCMRisaOjo7+/P6HQwlVQAEi/UCetqanJysrKx8fH09MTZAmd\nou4GUx9zhULR0tLS0NCgVCq9vLz8/f2BWS25JukAuZIgBURaWtqRI0fi4+Nn\nzJixadOmOXPmwBTQKSVfsdlsiJ5bvHixWq1ms9l5eXnffPMNj8errq4ODw8P\nCQlxcHCwt7f39vaGwN8+TmVfMy3SOU8mk1VXV7e2tjIYDDs7O3d3d2dnZw6H\nk52dDYcJpVIplUodHByeeOKJa9eu1dTUeHl5+fj4BAUFaTSaxsZGqIxlY2Pj\n5ubm7e2tI4ktP5EE6CKho6Ojvr4esrg5Ozu7ubnZ29vb2toadqNTFCWVSsVi\ncXt7Oxh0HBwcRo4cSbYmk6WOuQB2aqKAtrW1Xb58OT09Hdynixcvfvnll319\nfcGYSt6USqVnzpwJCAh48cUXoZCTVCoViUSQanL+/PlsNtvT0xPuuJtlAzFP\nclAd8aBWq1tbW1tbW+VyeVtbW05OTllZWXJyMhTmVKvVHA4H8prMmjVr3rx5\n7u7uw4YNCwgIcHNzIwHOj8Is6oDO4pFKpS0tLXw+Xy6XQ5ZmqEdMrtqB0Qps\nsRqNhs1mW1tbu7i4eHp6kiIFFlYDjAFIGENWoFwuLygoKCwsBBJAL+ro6Bg3\nbpy9vf3169efffbZESNGdHR0IISEQiGXy3VxcfH39x8+fHh3Q9cXMHM+W6IY\ndflXlUoFs2tlZQU3K7prZMDFao9k6mMol8uBOjhuI4Q4HA7cMrC2tibh2wAD\nqAMYCXCc0q+xBYYwcPYqlUpbW1vIesTlcq2trWGt0mlE5k6q2V8pmAm6MK+G\nC8gQHB7lKTSMvDGYw3p+xFdjdzTCKiWp7HockP4j0xJZwwkxXXQ/qCbPNDL/\nF2i0JJmWY9khGAKzwCDbiIdgCIZYdggGGQyx7BAMMhhi2SEYZDDEskMwyGCI\nZYdgkMEQyw7BIIMhlh2CQQZDLDsEgwyGWHYIBhkMsewQDDIYYtkhGGQwxLJD\nMMhgiGWHYJDBEMsOwSCDIZYdgkEGQyw7BIMMhlh2CAYZ/D95ekm2CyB+jgAA\nAABJRU5ErkJggg==\n","encoding":"base64"}},"public":true,"created_at":"2012-12-14T03:51:13Z","updated_at":"2020-01-09T22:27:39Z","description":"Three-Axis Rotation","comments":1,"user":null,"comments_enabled":true,"comments_url":"https://api.github.com/gists/4282586/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/5721459","user":{"login":"patricksurry","id":4314666,"node_id":"MDQ6VXNlcjQzMTQ2NjY=","avatar_url":"https://avatars.githubusercontent.com/u/4314666?v=4","gravatar_id":"","url":"https://api.github.com/users/patricksurry","html_url":"https://github.com/patricksurry","followers_url":"https://api.github.com/users/patricksurry/followers","following_url":"https://api.github.com/users/patricksurry/following{/other_user}","gists_url":"https://api.github.com/users/patricksurry/gists{/gist_id}","starred_url":"https://api.github.com/users/patricksurry/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/patricksurry/subscriptions","organizations_url":"https://api.github.com/users/patricksurry/orgs","repos_url":"https://api.github.com/users/patricksurry/repos","events_url":"https://api.github.com/users/patricksurry/events{/privacy}","received_events_url":"https://api.github.com/users/patricksurry/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":65,"public_gists":21,"followers":10,"following":0,"created_at":"2013-05-01T19:14:45Z","updated_at":"2026-02-15T14:45:28Z"},"id":"5721459","created_at":"2013-06-06T13:26:18Z","updated_at":"2017-02-15T13:49:16Z"},{"url":"https://api.github.com/gists/c7ab350671041f6ba18127280a084125","user":{"login":"mpmckenna8","id":1895795,"node_id":"MDQ6VXNlcjE4OTU3OTU=","avatar_url":"https://avatars.githubusercontent.com/u/1895795?v=4","gravatar_id":"","url":"https://api.github.com/users/mpmckenna8","html_url":"https://github.com/mpmckenna8","followers_url":"https://api.github.com/users/mpmckenna8/followers","following_url":"https://api.github.com/users/mpmckenna8/following{/other_user}","gists_url":"https://api.github.com/users/mpmckenna8/gists{/gist_id}","starred_url":"https://api.github.com/users/mpmckenna8/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mpmckenna8/subscriptions","organizations_url":"https://api.github.com/users/mpmckenna8/orgs","repos_url":"https://api.github.com/users/mpmckenna8/repos","events_url":"https://api.github.com/users/mpmckenna8/events{/privacy}","received_events_url":"https://api.github.com/users/mpmckenna8/received_events","type":"User","user_view_type":"public","site_admin":false,"name":"Matthew McKenna","company":null,"blog":"mpmckenna8.github.io","location":"San Francisco","email":"mpmckenna8@me.com","hireable":true,"bio":null,"twitter_username":null,"public_repos":139,"public_gists":148,"followers":79,"following":183,"created_at":"2012-06-26T20:38:16Z","updated_at":"2022-01-12T22:05:47Z"},"id":"c7ab350671041f6ba18127280a084125","created_at":"2017-03-31T06:44:44Z","updated_at":"2017-03-31T06:44:44Z"},{"url":"https://api.github.com/gists/efb05cad885e2cbf88d065e6f9cf4e67","user":{"login":"mpmckenna8","id":1895795,"node_id":"MDQ6VXNlcjE4OTU3OTU=","avatar_url":"https://avatars.githubusercontent.com/u/1895795?v=4","gravatar_id":"","url":"https://api.github.com/users/mpmckenna8","html_url":"https://github.com/mpmckenna8","followers_url":"https://api.github.com/users/mpmckenna8/followers","following_url":"https://api.github.com/users/mpmckenna8/following{/other_user}","gists_url":"https://api.github.com/users/mpmckenna8/gists{/gist_id}","starred_url":"https://api.github.com/users/mpmckenna8/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mpmckenna8/subscriptions","organizations_url":"https://api.github.com/users/mpmckenna8/orgs","repos_url":"https://api.github.com/users/mpmckenna8/repos","events_url":"https://api.github.com/users/mpmckenna8/events{/privacy}","received_events_url":"https://api.github.com/users/mpmckenna8/received_events","type":"User","user_view_type":"public","site_admin":false,"name":"Matthew McKenna","company":null,"blog":"mpmckenna8.github.io","location":"San Francisco","email":"mpmckenna8@me.com","hireable":true,"bio":null,"twitter_username":null,"public_repos":139,"public_gists":148,"followers":79,"following":183,"created_at":"2012-06-26T20:38:16Z","updated_at":"2022-01-12T22:05:47Z"},"id":"efb05cad885e2cbf88d065e6f9cf4e67","created_at":"2017-03-31T06:44:47Z","updated_at":"2017-03-31T06:44:47Z"}],"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":"48321cbd4ffd53b6087982b205f7b0547bc7e5a3","committed_at":"2020-01-09T22:27:39Z","change_status":{"total":1,"additions":1,"deletions":0},"url":"https://api.github.com/gists/4282586/48321cbd4ffd53b6087982b205f7b0547bc7e5a3"},{"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":"53d3c6ec1bab5330c8fc0f10002947641474f4b1","committed_at":"2016-09-23T20:50:50Z","change_status":{"total":26,"additions":13,"deletions":13},"url":"https://api.github.com/gists/4282586/53d3c6ec1bab5330c8fc0f10002947641474f4b1"},{"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":"9d238abebd244632fdf02031d26f1e770dc30380","committed_at":"2016-02-09T02:12:53Z","change_status":{"total":1,"additions":1,"deletions":0},"url":"https://api.github.com/gists/4282586/9d238abebd244632fdf02031d26f1e770dc30380"},{"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":"12b806d9938b1247036858dc35793feb2ef8c043","committed_at":"2015-10-31T01:21:26Z","change_status":{"total":4,"additions":2,"deletions":2},"url":"https://api.github.com/gists/4282586/12b806d9938b1247036858dc35793feb2ef8c043"},{"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":"1ec1b9310d4202851e48f59483bbf038f6fbad02","committed_at":"2015-06-11T19:30:01Z","change_status":{"total":6,"additions":4,"deletions":2},"url":"https://api.github.com/gists/4282586/1ec1b9310d4202851e48f59483bbf038f6fbad02"},{"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":"3e0a93ff90e739d588b79196449e821e9ab5cea0","committed_at":"2013-05-13T03:02:27Z","change_status":{"total":4,"additions":2,"deletions":2},"url":"https://api.github.com/gists/4282586/3e0a93ff90e739d588b79196449e821e9ab5cea0"},{"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":"29ccf0225fb3363a862747a0de2b62b2f8678cea","committed_at":"2013-02-18T02:20:00Z","change_status":{"total":2,"additions":1,"deletions":1},"url":"https://api.github.com/gists/4282586/29ccf0225fb3363a862747a0de2b62b2f8678cea"},{"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":"ae9b24908126914116cc1311bf3fa58949a8574c","committed_at":"2012-12-14T19:41:52Z","change_status":{"total":0,"additions":0,"deletions":0},"url":"https://api.github.com/gists/4282586/ae9b24908126914116cc1311bf3fa58949a8574c"},{"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":"75faf56976bdc81ec2192d12d6126292664cec3b","committed_at":"2012-12-14T03:51:13Z","change_status":{"total":62,"additions":62,"deletions":0},"url":"https://api.github.com/gists/4282586/75faf56976bdc81ec2192d12d6126292664cec3b"}],"truncated":false}