{"id":7420,"date":"2024-03-10T06:28:00","date_gmt":"2024-03-10T13:28:00","guid":{"rendered":"https:\/\/www.dresan.com\/blog\/?p=7420"},"modified":"2024-03-09T18:46:26","modified_gmt":"2024-03-10T01:46:26","slug":"twenty-twenty-four-day-seventy-fix-it-the-way-that-works","status":"publish","type":"post","link":"https:\/\/dresan.com\/blog\/2024\/03\/10\/twenty-twenty-four-day-seventy-fix-it-the-way-that-works\/","title":{"rendered":"[twenty twenty-four day seventy]: fix it the way that works"},"content":{"rendered":"\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"600\" height=\"487\" src=\"https:\/\/www.dresan.com\/blog\/wp-content\/uploads\/2024\/03\/Screenshot-2024-03-09-at-8.32.33-PM-600x487.png\" alt=\"\" class=\"wp-image-7421\" style=\"width:717px;height:auto\" srcset=\"https:\/\/dresan.com\/blog\/wp-content\/uploads\/2024\/03\/Screenshot-2024-03-09-at-8.32.33-PM-600x487.png 600w, https:\/\/dresan.com\/blog\/wp-content\/uploads\/2024\/03\/Screenshot-2024-03-09-at-8.32.33-PM-300x244.png 300w, https:\/\/dresan.com\/blog\/wp-content\/uploads\/2024\/03\/Screenshot-2024-03-09-at-8.32.33-PM-768x624.png 768w, https:\/\/dresan.com\/blog\/wp-content\/uploads\/2024\/03\/Screenshot-2024-03-09-at-8.32.33-PM-1536x1247.png 1536w, https:\/\/dresan.com\/blog\/wp-content\/uploads\/2024\/03\/Screenshot-2024-03-09-at-8.32.33-PM-640x520.png 640w, https:\/\/dresan.com\/blog\/wp-content\/uploads\/2024\/03\/Screenshot-2024-03-09-at-8.32.33-PM.png 1820w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/figure>\n\n\n\n<p>So, this is worthy of a longer blog post, but the short story is, looking under the streetlight for your keys may provide visibility, but it won\u2019t help you find them unless you have reason to think that you dropped them there.<\/p>\n\n\n\n<p>A lot of time in software development, we encounter things that don\u2019t work, and problems like stochastic errors and heisenbugs can lead software developers to try voodoo solutions &#8211; rebooting, recompiling from head, running the build again, or restarting the server.<\/p>\n\n\n\n<p>These \u201csolutions\u201d work well enough for us that it\u2019s worthwhile trying them as a first step &#8211; several times recently I have encountered issues which simply evaporated when I refreshed the web page, restarted the server, retried the build, or restarted my computer.<\/p>\n\n\n\n<p>But these are not <em>actual fixes<\/em>. They\u2019re tools to clear away transient errors so we can give our systems the best chance of properly functioning. And if they don\u2019t work, the most important thing to do is to really dig in and try to find the root cause of the problem.<\/p>\n\n\n\n<p>On one of those systems &#8211; where I literally had tried refreshing the web page, restarting the server, refreshing the code, reinstalling the packages, and rebooting the computer &#8211; the build itself was something that you had to run twice.<\/p>\n\n\n\n<p>Now, this is a common problem with software builds: they take a lot of files and memory, and they can get halfway through their builds and die, leaving enough artifacts for a second pass to successfully solve the problem. I had to do this at Google quite a bit.<\/p>\n\n\n\n<p>But it isn\u2019t a real solution. (Well, it was at Google, for this particular software, because its build was running up against some hard limits that weren\u2019t fixable, but I digress). And so, eventually, my build for this website failed to run at all, even after a reboot.<\/p>\n\n\n\n<p>The solution? A quick search online revealed it\u2019s possible to change the parameters of the build to give it more memory &#8211; and once I did that, the build ran smooth as glass. The \u201crun the build again\u201d trick I\u2019d learned at Google &#8211; learned where, for one particular project, it was not possible to fix the problem &#8211; had led me astray, and overapplying this trick to my new problem &#8211; where it had partial success &#8211; kept me from finding a real, permanent fix.<\/p>\n\n\n\n<p>So, if a fix feels like voodoo, stop for a minute &#8211; and search for a better way.<\/p>\n\n\n\n<p>-the Centaur<\/p>\n\n\n\n<p>Pictured: What do you mean, you haven&#8217;t updated the package configuration for THREE YEARS?<\/p>\n","protected":false},"excerpt":{"rendered":"<p>So, this is worthy of a longer blog post, but the short story is, looking under the streetlight for your keys may provide visibility, but it won\u2019t help you find&#8230;<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[209],"tags":[274,11],"class_list":["post-7420","post","type-post","status-publish","format-standard","hentry","category-computing","tag-blogging-every-day","tag-development","ratio-2-1","entry"],"_links":{"self":[{"href":"https:\/\/dresan.com\/blog\/wp-json\/wp\/v2\/posts\/7420","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dresan.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dresan.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dresan.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/dresan.com\/blog\/wp-json\/wp\/v2\/comments?post=7420"}],"version-history":[{"count":2,"href":"https:\/\/dresan.com\/blog\/wp-json\/wp\/v2\/posts\/7420\/revisions"}],"predecessor-version":[{"id":7426,"href":"https:\/\/dresan.com\/blog\/wp-json\/wp\/v2\/posts\/7420\/revisions\/7426"}],"wp:attachment":[{"href":"https:\/\/dresan.com\/blog\/wp-json\/wp\/v2\/media?parent=7420"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dresan.com\/blog\/wp-json\/wp\/v2\/categories?post=7420"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dresan.com\/blog\/wp-json\/wp\/v2\/tags?post=7420"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}