{"url":"https://api.github.com/gists/5440492","forks_url":"https://api.github.com/gists/5440492/forks","commits_url":"https://api.github.com/gists/5440492/commits","id":"5440492","node_id":"MDQ6R2lzdDU0NDA0OTI=","git_pull_url":"https://gist.github.com/5440492.git","git_push_url":"https://gist.github.com/5440492.git","html_url":"https://gist.github.com/mbostock/5440492","files":{".block":{"filename":".block","type":"text/plain","language":null,"raw_url":"https://gist.githubusercontent.com/mbostock/5440492/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/5440492/raw/4ad8d3b05fea3c742926ecb0c9cf8c5d2c09af92/README.md","size":633,"truncated":false,"content":"Every introductory WebGL tutorial I could find uses utility libraries (*e.g.*, [Sylvester](http://sylvester.jcoglan.com/)) in efforts to make the examples easier to understand. While encapsulating common patterns is desirable when writing production code, I find this practice highly counterproductive to learning because it forces me to learn the utility library first (another layer of abstraction) before I can understand the underlying standard. Even worse when accompanying examples use *minified* JavaScript…\n\nSo here’s a vanilla Hello World with no dependencies and no branching. Enjoy.\n\nNext: [Part II](/mbostock/5445238)","encoding":"utf-8"},"index.html":{"filename":"index.html","type":"text/html","language":"HTML","raw_url":"https://gist.githubusercontent.com/mbostock/5440492/raw/74da9dc4f607712e1e4db9361f2e34c6cff913bf/index.html","size":2375,"truncated":false,"content":"<!DOCTYPE html>\n<meta charset=\"utf-8\">\n<canvas width=\"960\" height=\"500\"></canvas>\n<script id=\"vertex-shader\" type=\"x-shader/x-vertex\">\n\nattribute vec2 a_position;\n\nvoid main(void) {\n  gl_Position = vec4(a_position, 0.0, 1.0);\n}\n\n</script>\n<script id=\"fragment-shader\" type=\"x-shader/x-fragment\">\n\nvoid main(void) {\n  gl_FragColor = vec4(0.0, 1.0, 0.0, 1.0);\n}\n\n</script>\n<script>\n\n// Select the canvas from the document.\nvar canvas = document.querySelector(\"canvas\");\n\n// Create the WebGL context, with fallback for experimental support.\nvar context = canvas.getContext(\"webgl\")\n    || canvas.getContext(\"experimental-webgl\");\n\n// Compile the vertex shader.\nvar vertexShader = context.createShader(context.VERTEX_SHADER);\ncontext.shaderSource(vertexShader, document.querySelector(\"#vertex-shader\").textContent);\ncontext.compileShader(vertexShader);\nif (!context.getShaderParameter(vertexShader, context.COMPILE_STATUS)) throw new Error(context.getShaderInfoLog(vertexShader));\n\n// Compile the fragment shader.\nvar fragmentShader = context.createShader(context.FRAGMENT_SHADER);\ncontext.shaderSource(fragmentShader, document.querySelector(\"#fragment-shader\").textContent);\ncontext.compileShader(fragmentShader);\nif (!context.getShaderParameter(fragmentShader, context.COMPILE_STATUS)) throw new Error(context.getShaderInfoLog(fragmentShader));\n\n// Link and use the program.\nvar program = context.createProgram();\ncontext.attachShader(program, vertexShader);\ncontext.attachShader(program, fragmentShader);\ncontext.linkProgram(program);\nif (!context.getProgramParameter(program, context.LINK_STATUS)) throw new Error(context.getProgramInfoLog(program));\ncontext.useProgram(program);\n\n// Define the positions (as vec2, in normalized coordinates) of the square that covers the canvas.\nvar positionBuffer = context.createBuffer();\ncontext.bindBuffer(context.ARRAY_BUFFER, positionBuffer);\ncontext.bufferData(context.ARRAY_BUFFER, new Float32Array([\n    -1.0, -1.0,\n    +1.0, -1.0,\n    +1.0, +1.0,\n    -1.0, +1.0\n  ]), context.STATIC_DRAW);\n\n// Bind the position buffer to the position attribute.\nvar positionAttribute = context.getAttribLocation(program, \"a_position\");\ncontext.enableVertexAttribArray(positionAttribute);\ncontext.vertexAttribPointer(positionAttribute, 2, context.FLOAT, false, 0, 0);\n\n// Draw the square!\ncontext.drawArrays(context.TRIANGLE_FAN, 0, 4);\n\n</script>\n","encoding":"utf-8"},"thumbnail.png":{"filename":"thumbnail.png","type":"image/png","language":null,"raw_url":"https://gist.githubusercontent.com/mbostock/5440492/raw/90affb8de6562570716d24b7591f7345f2db2e5a/thumbnail.png","size":3105,"truncated":false,"content":"iVBORw0KGgoAAAANSUhEUgAAAOYAAAB4CAIAAABpZBnfAAAKg2lDQ1BpY20A\nAEjHlZYHUFPpFse/e296oSVEOqF3pFfpNXTpYCMkIYQSQiCI2BVxBdeCiAgo\nC7pUBdcCyFoQCxYWwQL2BVlU1HWxICoq7yKP+N682XmzZ+bM/c2ZM//vfOXO\n/AGglLFFojRYDoB0YbY43M+TGRsXz8Q/BAiQB0SgCrBsTpbIIywsCPxtvB8A\n0Mz3ptmMFvhnIc/lZXEAgMJQTuRmcdJRPo7mOo5InA0AYoPWdZdni2Y4FmW6\nGB0Q5Zl16PxZXjfDibNc8q0nMtwL5XoACBQ2W8wHgIxqAmYOh4/qkG+hbCHk\nCoQAUDAou3KS2VyUvVE2TU/PmGERyoaJ/6HD/y/NRKkmm82X8uxevgXBW5Al\nSmOv+IfH8f8jPU0yt4YGmpSs1IjAmfXQM8vlsH0i5jiZxwqaY1G2Z/gcC7JZ\nkdIeiX/UHEtSozzmODUjUNovTAwJlepnecXPcV5yZMwcc3nePnMszgiX9mfl\nRPh87/cKmeMUdkDYHLPFs+c1w7w0v/DvM4dJ5xSmhUj3kiT2lfbwsr7vNzs5\n0l/K6AOQ9gt8WdL9iv2/66eFSTXFknDpOfCEUVJNLttberZAAIIBG3CyebnZ\nMwN7ZYhWiAX85GymB/rqeaZMlpBjbsq0srC0BjP/0OwVvWV8+zcgxtXvtcxO\nABwL0SL/e42tA8DJJwDQ3n+v6bxBr3cHAKf7OBJxzmxt5rkCLCABWUAHyugL\n0AGGwAxYATvgDNyBDwgAoSASxIGlgAOSQToQg+VgFVgPCkAR2AF2g3JQBQ6A\nenAYHAVt4BQ4By6Ba6AP3Ab3wRAYBS/AOHgPpiAIwkNUiAYpQ5qQHmQCWUEO\nkCvkAwVB4VAclADxISEkgVZBG6EiqBgqh6qhBugX6CR0DroC9UN3oWFoDHoD\nfYIRmALTYXVYH54PO8AecCAcCS+B+XAmnAfnw9vgMrgGPgS3wufga/BteAh+\nAU8gACEjDEQLMUMcEC8kFIlHkhAxsgYpREqRGqQZ6UC6kZvIEPIS+YjBYWgY\nJsYM44zxx0RhOJhMzBrMVkw5ph7TirmAuYkZxoxjvmKpWDWsCdYJy8LGYvnY\n5dgCbCm2FnsCexF7GzuKfY/D4Rg4A5w9zh8Xh0vBrcRtxe3DteA6cf24EdwE\nHo9XxpvgXfCheDY+G1+A34s/hD+Lv4EfxX8gkAmaBCuCLyGeICRsIJQSGgln\nCDcITwlTRDmiHtGJGErkElcQtxMPEjuI14mjxCmSPMmA5EKKJKWQ1pPKSM2k\ni6QHpLdkMlmb7EheSBaQ15HLyEfIl8nD5I8UBYoxxYuymCKhbKPUUTopdylv\nqVSqPtWdGk/Npm6jNlDPUx9RP8jQZMxlWDJcmbUyFTKtMjdkXskSZfVkPWSX\nyubJlsoek70u+1KOKKcv5yXHllsjVyF3Um5QbkKeJm8pHyqfLr9VvlH+ivwz\nBbyCvoKPAlchX+GAwnmFERpC06F50Ti0jbSDtIu0UTqObkBn0VPoRfTD9F76\nuKKCoo1itGKuYoXiacUhBsLQZ7AYaYztjKOMAcaneerzPObx5m2Z1zzvxrxJ\nJVUldyWeUqFSi9JtpU/KTGUf5VTlncptyg9VMCrGKgtVlqvsV7mo8lKVruqs\nylEtVD2qek8NVjNWC1dbqXZArUdtQl1D3U9dpL5X/bz6Sw2GhrtGikaJxhmN\nMU2apqumQLNE86zmc6Yi04OZxixjXmCOa6lp+WtJtKq1erWmtA20o7Q3aLdo\nP9Qh6TjoJOmU6HTpjOtq6gbrrtJt0r2nR9Rz0EvW26PXrTepb6Afo79Zv03/\nmYGSAcsgz6DJ4IEh1dDNMNOwxvCWEc7IwSjVaJ9RnzFsbGucbFxhfN0ENrEz\nEZjsM+k3xZo6mgpNa0wHzShmHmY5Zk1mw+YM8yDzDeZt5q/m686Pn79zfvf8\nrxa2FmkWBy3uWypYBlhusOywfGNlbMWxqrC6ZU219rVea91u/drGxIZns9/m\nji3NNth2s22X7Rc7ezuxXbPdmL2ufYJ9pf2gA90hzGGrw2VHrKOn41rHU44f\nneycsp2OOv3lbOac6tzo/GyBwQLegoMLRly0Xdgu1S5DrkzXBNefXIfctNzY\nbjVuj9113Lnute5PPYw8UjwOebzytPAUe57wnPRy8lrt1emNePt5F3r3+ij4\nRPmU+zzy1fbl+zb5jvvZ+q306/TH+gf67/QfZKmzOKwG1niAfcDqgAuBlMCI\nwPLAx0HGQeKgjmA4OCB4V/CDEL0QYUhbKAhlhe4KfRhmEJYZ9utC3MKwhRUL\nn4Rbhq8K746gRSyLaIx4H+kZuT3yfpRhlCSqK1o2enF0Q/RkjHdMccxQ7PzY\n1bHX4lTiBHHt8fj46Pja+IlFPot2LxpdbLu4YPHAEoMluUuuLFVZmrb09DLZ\nZexlxxKwCTEJjQmf2aHsGvZEIiuxMnGc48XZw3nBdeeWcMd4Lrxi3tMkl6Ti\npGd8F/4u/liyW3Jp8kuBl6Bc8DrFP6UqZTI1NLUudTotJq0lnZCekH5SqCBM\nFV7I0MjIzegXmYgKREOZTpm7M8fFgeLaLChrSVZ7Nh01Kz0SQ8kmyXCOa05F\nzofl0cuP5crnCnN7Vhiv2LLiaZ5v3s8rMSs5K7tWaa1av2p4tcfq6jXQmsQ1\nXWt11uavHV3nt65+PWl96vrfNlhsKN7wbmPMxo589fx1+SOb/DY1FcgUiAsG\nNztvrvoB84Pgh94t1lv2bvlayC28WmRRVFr0eStn69UfLX8s+3F6W9K23u12\n2/fvwO0Q7hjY6bazvli+OK94ZFfwrtYSZklhybvdy3ZfKbUprdpD2iPZM1QW\nVNa+V3fvjr2fy5PLb1d4VrRUqlVuqZzcx913Y7/7/uYq9aqiqk8/CX66U+1X\n3VqjX1N6AHcg58CTg9EHu392+LmhVqW2qPZLnbBuqD68/kKDfUNDo1rj9ia4\nSdI0dmjxob7D3ofbm82aq1sYLUVHwBHJkee/JPwycDTwaNcxh2PNx/WOV56g\nnShshVpXtI63JbcNtce1958MONnV4dxx4lfzX+tOaZ2qOK14evsZ0pn8M9Nn\n885OdIo6X57jnxvpWtZ1/3zs+VsXFl7ovRh48fIl30vnuz26z152uXzqitOV\nk1cdrrZds7vW2mPbc+I3299O9Nr1tl63v97e59jX0b+g/8wNtxvnbnrfvHSL\ndeva7ZDb/QNRA3cGFw8O3eHeeXY37e7rezn3pu6ve4B9UPhQ7mHpI7VHNb8b\n/d4yZDd0eth7uOdxxOP7I5yRF39k/fF5NP8J9UnpU82nDc+snp0a8x3re77o\n+egL0YuplwV/yv9Z+crw1fG/3P/qGY8dH30tfj39Zutb5bd172zedU2ETTx6\nn/5+arLwg/KH+o8OH7s/xXx6OrX8M/5z2RejLx1fA78+mE6fnhaxxexvVgBB\nE05KAuBNHQDUONQ79AFAkpn1uN8CmvXl3wj8Hc/64G9hB0CdOwBRqJ8OQj3K\nfjT1UKag3xm7FukOYGtraf47spKsrWa1KKiTw36Ynn6rDgC+A4Av4unpqX3T\n018OosPeBaAzc9ZbzwRODoAj2Bnq0VjzPx73X7hN8N1Bw62vAAABWUlEQVR4\n2u3SQQ0AIBDAsAP/nkEDL7KkVbDH1pyBkP07AN5YlhjLEmNZYixLjGWJsSwx\nliXGssRYlhjLEmNZYixLjGWJsSwxliXGssRYlhjLEmNZYixLjGWJsSwxliXG\nssRYlhjLEmNZYixLjGWJsSwxliXGssRYlhjLEmNZYixLjGWJsSwxliXGssRY\nlhjLEmNZYixLjGWJsSwxliXGssRYlhjLEmNZYixLjGWJsSwxliXGssRYlhjL\nEmNZYixLjGWJsSwxliXGssRYlhjLEmNZYixLjGWJsSwxliXGssRYlhjLEmNZ\nYixLjGWJsSwxliXGssRYlhjLEmNZYixLjGWJsSwxliXGssRYlhjLEmNZYixL\njGWJsSwxliXGssRYlhjLEmNZYixLjGWJsSwxliXGssRYlhjLEmNZYixLjGWJ\nsSwxliXGssRYlhjLEmNZYixLjGWJsSwxF9aXAe8ZN+JVAAAAAElFTkSuQmCC\n","encoding":"base64"}},"public":true,"created_at":"2013-04-23T02:59:34Z","updated_at":"2023-02-26T06:42:44Z","description":"Hello WebGL","comments":1,"user":null,"comments_enabled":true,"comments_url":"https://api.github.com/gists/5440492/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":[],"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":"ec808bc30f891605403925c4f00e1790963f946c","committed_at":"2016-02-09T02:06:22Z","change_status":{"total":1,"additions":1,"deletions":0},"url":"https://api.github.com/gists/5440492/ec808bc30f891605403925c4f00e1790963f946c"},{"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":"5e24bf2857225fc7a4784b42585750eba2af7003","committed_at":"2013-04-23T17:19:54Z","change_status":{"total":30,"additions":9,"deletions":21},"url":"https://api.github.com/gists/5440492/5e24bf2857225fc7a4784b42585750eba2af7003"},{"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":"eaa2dfd0efa8088f48a8bcc215ae15c19d63a01f","committed_at":"2013-04-23T16:47:24Z","change_status":{"total":2,"additions":2,"deletions":0},"url":"https://api.github.com/gists/5440492/eaa2dfd0efa8088f48a8bcc215ae15c19d63a01f"},{"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":"3cbf0c9228d771c1e7c400e95e91a94557361817","committed_at":"2013-04-23T16:46:09Z","change_status":{"total":6,"additions":5,"deletions":1},"url":"https://api.github.com/gists/5440492/3cbf0c9228d771c1e7c400e95e91a94557361817"},{"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":"d5d65e8730979145b2be1027abbf8a2f4f3d2aa6","committed_at":"2013-04-23T16:42:17Z","change_status":{"total":0,"additions":0,"deletions":0},"url":"https://api.github.com/gists/5440492/d5d65e8730979145b2be1027abbf8a2f4f3d2aa6"},{"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":"d867718d50d57ec5d68404bd27ae74fd5fb975b9","committed_at":"2013-04-23T16:41:02Z","change_status":{"total":2,"additions":1,"deletions":1},"url":"https://api.github.com/gists/5440492/d867718d50d57ec5d68404bd27ae74fd5fb975b9"},{"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":"d8c9452904d46eea09244640e1091fd31caacab0","committed_at":"2013-04-23T16:40:08Z","change_status":{"total":55,"additions":35,"deletions":20},"url":"https://api.github.com/gists/5440492/d8c9452904d46eea09244640e1091fd31caacab0"},{"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":"d7095f0c639eb968ca045fd6142ade5f14e1e1b4","committed_at":"2013-04-23T16:28:54Z","change_status":{"total":4,"additions":2,"deletions":2},"url":"https://api.github.com/gists/5440492/d7095f0c639eb968ca045fd6142ade5f14e1e1b4"},{"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":"12a9f92fd57f09d0d93ee5a88de033a0f4461bd7","committed_at":"2013-04-23T03:06:02Z","change_status":{"total":4,"additions":2,"deletions":2},"url":"https://api.github.com/gists/5440492/12a9f92fd57f09d0d93ee5a88de033a0f4461bd7"},{"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":"074c2899a3a249813f5fe6db46afe0dc5367e890","committed_at":"2013-04-23T03:01:52Z","change_status":{"total":4,"additions":3,"deletions":1},"url":"https://api.github.com/gists/5440492/074c2899a3a249813f5fe6db46afe0dc5367e890"},{"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":"01fe6babd35f7860cbc81e368d8d1b80d01e7a54","committed_at":"2013-04-23T03:00:23Z","change_status":{},"url":"https://api.github.com/gists/5440492/01fe6babd35f7860cbc81e368d8d1b80d01e7a54"},{"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":"fc5a77d5a410216cc732c6a191fa886d71c7e0a9","committed_at":"2013-04-23T02:59:34Z","change_status":{},"url":"https://api.github.com/gists/5440492/fc5a77d5a410216cc732c6a191fa886d71c7e0a9"}],"truncated":false}