{"id":15869,"date":"2015-03-23T19:28:19","date_gmt":"2015-03-24T00:28:19","guid":{"rendered":"http:\/\/blog.kenperlin.com\/?p=15869"},"modified":"2015-03-23T19:31:56","modified_gmt":"2015-03-24T00:31:56","slug":"open-source","status":"publish","type":"post","link":"http:\/\/blog.kenperlin.com\/?p=15869","title":{"rendered":"Open source"},"content":{"rendered":"<p>I&#8217;ve been using some open source software called THREE.js, and I like it a lot.  It&#8217;s a software library that provides a common way for programmers to specify three dimensional objects and scenes in a web page.<\/p>\n<p>Some coders don&#8217;t like to use such libraries.  They say &#8220;Why should I use somebody else&#8217;s stupid library, when I can write all that stuff myself?&#8221;  But the real advantage is that an entire community of programmers ends up following the same conventions.<\/p>\n<p>It doesn&#8217;t even matter much what those conventions are.  The important thing is your code and my code will work together, because we&#8217;ve both agreed to use something like the THREE.js software library.<\/p>\n<p>Which is all great, until those conventions change.  Now, officially, software libraries are not supposed to alter the names of things without a lot of warning.  It&#8217;s kind of like trying to move a railroad track while the trains are running.  Bad things are likely to happen.<\/p>\n<p>Alas, THREE.js has done this to us several times.  For example, some months ago somebody decided that the shape called &#8220;Cube&#8221; should instead be called &#8220;Box&#8221;, so they just renamed it.  Which is great, except that if you had any cubes in your little webpage scene, your page just broke.<\/p>\n<p>On the whole, I&#8217;m happy with the open source approach.  It builds community, everyone shares their work freely, and the energy is more about creativity and openness than about somebody else getting rich.  And it&#8217;s not like renaming a &#8220;Cube&#8221; as a &#8220;Box&#8221; is the end of the world.<\/p>\n<p>At least not yet.  One day, several decades from now, when everybody is seeing everything through those little cyber-contact lenses or retinal implants, some hotshot programmer is going to come up with a better word for &#8220;Box&#8221;.<\/p>\n<p>And all around the globe, in a single instant, all of the buildings in the world will disappear from sight.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I&#8217;ve been using some open source software called THREE.js, and I like it a lot. It&#8217;s a software library that provides a common way for programmers to specify three dimensional objects and scenes in a web page. Some coders don&#8217;t like to use such libraries. They say &#8220;Why should I use somebody else&#8217;s stupid library, &hellip; <a href=\"http:\/\/blog.kenperlin.com\/?p=15869\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Open source&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[],"_links":{"self":[{"href":"http:\/\/blog.kenperlin.com\/index.php?rest_route=\/wp\/v2\/posts\/15869"}],"collection":[{"href":"http:\/\/blog.kenperlin.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/blog.kenperlin.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/blog.kenperlin.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/blog.kenperlin.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=15869"}],"version-history":[{"count":6,"href":"http:\/\/blog.kenperlin.com\/index.php?rest_route=\/wp\/v2\/posts\/15869\/revisions"}],"predecessor-version":[{"id":15875,"href":"http:\/\/blog.kenperlin.com\/index.php?rest_route=\/wp\/v2\/posts\/15869\/revisions\/15875"}],"wp:attachment":[{"href":"http:\/\/blog.kenperlin.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=15869"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.kenperlin.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=15869"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.kenperlin.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=15869"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}