{"id":606,"date":"2013-04-13T12:01:42","date_gmt":"2013-04-13T19:01:42","guid":{"rendered":"http:\/\/angryweasel.com\/blog\/?p=606"},"modified":"2013-04-13T12:01:44","modified_gmt":"2013-04-13T19:01:44","slug":"pbkac","status":"publish","type":"post","link":"https:\/\/angryweasel.com\/blog\/pbkac\/","title":{"rendered":"PBKAC?"},"content":{"rendered":"<p>Yesterday, I read a mail sent to an email alias I\u2019m on, where the author was asking why tool X wasn\u2019t enabled on his latest build. The mail looked something like this (genericized to protect the innocent).<\/p>\n<blockquote>\n<p>foo.service doesn\u2019t appear to be working<\/p>\n<p>Repro:<\/p>\n<ol>\n<li>I installed the build from &lt;build_path&gt;<\/li>\n<li>I verified the binaries existed &lt;where they should exist&gt;<\/li>\n<li>I queried to see if foo.service was running \u2013 it wasn\u2019t<\/li>\n<li>I queried another way, and it didn\u2019t show anything either<\/li>\n<li>When I run my tests, they fail and tell me that the service isn\u2019t running<\/li>\n<li>I thought the service wasn\u2019t started, so I tried starting it, but that also failed (error text: Failed to retrieve the fizzbaz from the bogatorium)<\/li>\n<\/ol>\n<\/blockquote>\n<p>On first glance, it looks like there\u2019s a real problem here. I try to avoid the \u201cworks on my machine\u201d comments, but I thought it was strange that nobody else had seen this. I assumed the Problem was Between the Keyboard And the Chair (PBKAC).<\/p>\n<p>At first, that seemed to be exactly the problem. You see, there is no foo.service. It\u2019s actually called fizz.service, but it\u2019s run as part of the foo toolset, so it\u2019s an easy misunderstanding. If they would have queried for fizz.service, they would have seen it happily running.<\/p>\n<p>Their tests failed because they had an invalid command line for their test (or more specifically, they specified an invalid address for the machine where they wanted to run the tests).<\/p>\n<p>And then they got that strange error message attempting to start the service because they were attempting to restart a service that was already running (interesting, however, was that they did manage to try and start the fizz service rather than the foo service at this point.<\/p>\n<p>Three errors, all different, yet relatively easy to see as symptoms of a common problem. Except they weren\u2019t.<\/p>\n<p>Absolutely, definitely, beyond a shadow of a doubt, PBKAC.<\/p>\n<p>But maybe not. Actually, definitely not. The princess is in another castle \u2013 or between a <em>different<\/em> keyboard and chair.<\/p>\n<p>PBKAC was definitely in play when the user tried to query for the wrong service. My service names above are silly, but our service names are actually nearly as confusing. You only make this mistake once, but it\u2019s not too difficult to make.<\/p>\n<p>When the tests failed, the error said the service wasn\u2019t running. The error was 100% accurate (the service <em>wasn\u2019t running because the user connected to the wrong machine<\/em>). What if, as a courtesy, that error message said something like, \u201cThe service isn\u2019t running. <em>Are you connected to a valid target machine<\/em>\u201d? I bet that would have set off a few light bulbs rather than generated more confusion.<\/p>\n<p>That message about the fizzabaz and the bogatorium isn\u2019t far from what the user actually saw. What they saw was again, a 100% accurate statement of what went wrong \u2013 it just gave no clue of what may have caused it.<\/p>\n<p>Granted, these were internal tools, but that\u2019s a horrible excuse to confuse someone. I bet I\u2019ve seen hundreds (if not thousands) of error messages like this \u2013 but very few that offer even the tiniest bit of trouble shooting or diagnostic advice. It\u2019s easy to blame the user when they do something \u201cwrong\u201d (or unexpected), but ultimately, it\u2019s rarely their fault. And in the end, if they can\u2019t do what they want to do with your software, they\u2019ll take their business and money elsewhere. <\/p>\n<p>And then, it\u2019s your problem alone.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Yesterday, I read a mail sent to an email alias I\u2019m on, where the author was asking why tool X wasn\u2019t enabled on his latest build. The mail looked something like this (genericized to protect the innocent). foo.service doesn\u2019t appear to be working Repro: I installed the build from &lt;build_path&gt; I verified the binaries existed&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[1],"tags":[],"class_list":["post-606","post","type-post","status-publish","format-standard","hentry","category-allposts"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_likes_enabled":true,"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/angryweasel.com\/blog\/wp-json\/wp\/v2\/posts\/606","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/angryweasel.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/angryweasel.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/angryweasel.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/angryweasel.com\/blog\/wp-json\/wp\/v2\/comments?post=606"}],"version-history":[{"count":0,"href":"https:\/\/angryweasel.com\/blog\/wp-json\/wp\/v2\/posts\/606\/revisions"}],"wp:attachment":[{"href":"https:\/\/angryweasel.com\/blog\/wp-json\/wp\/v2\/media?parent=606"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/angryweasel.com\/blog\/wp-json\/wp\/v2\/categories?post=606"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/angryweasel.com\/blog\/wp-json\/wp\/v2\/tags?post=606"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}