{"id":25675,"date":"2023-08-02T19:29:43","date_gmt":"2023-08-03T00:29:43","guid":{"rendered":"http:\/\/blog.kenperlin.com\/?p=25675"},"modified":"2023-08-02T19:29:43","modified_gmt":"2023-08-03T00:29:43","slug":"string-theory-2","status":"publish","type":"post","link":"http:\/\/blog.kenperlin.com\/?p=25675","title":{"rendered":"String theory"},"content":{"rendered":"<p>I&#8217;ve recently noticed an important strategy in my programming. It&#8217;s something I&#8217;ve always done, but until recently I wasn&#8217;t conscious of it.<\/p>\n<p>This strategy could be called &#8220;finding the simplest thing&#8221;. When I need to extend the functionality of one of my interactive software systems, I look for the absolutely simplest possible case.<\/p>\n<p>The idea is that if I can initially get the simplest possible thing working, then I can add fancier things later on. Because if I were to instead start out by trying something more ambitious, I might end up spending needless hours debugging.<\/p>\n<p>So if I&#8217;m extending something from two dimensions to three, or adding the ability to respond to a mouse events, I look for the absolute minimal way to do that. I won&#8217;t draw two lines if one will do. I won&#8217;t respond to mouse drags if I can get away with responding only to mouse clicks.<\/p>\n<p>This strategy sort of reminds me of something I learned in school about how people used to build bridges. First they would fly a kite and wait for the wind to blow it across the river.<\/p>\n<p>Once they had a string going from one side to the other, they would use that to pull across a heavier line. And then use that second line to draw across a still heavier line.<\/p>\n<p>Eventually they would have a thick rope going across, strong enough to support the weight of people. And then they could begin in earnest to build the bridge itself.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I&#8217;ve recently noticed an important strategy in my programming. It&#8217;s something I&#8217;ve always done, but until recently I wasn&#8217;t conscious of it. This strategy could be called &#8220;finding the simplest thing&#8221;. When I need to extend the functionality of one of my interactive software systems, I look for the absolutely simplest possible case. The idea &hellip; <a href=\"http:\/\/blog.kenperlin.com\/?p=25675\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;String theory&#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\/25675"}],"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=25675"}],"version-history":[{"count":0,"href":"http:\/\/blog.kenperlin.com\/index.php?rest_route=\/wp\/v2\/posts\/25675\/revisions"}],"wp:attachment":[{"href":"http:\/\/blog.kenperlin.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=25675"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.kenperlin.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=25675"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.kenperlin.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=25675"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}