{"id":10,"date":"2008-03-19T15:35:47","date_gmt":"2008-03-19T20:35:47","guid":{"rendered":"http:\/\/rockypufflenuggets.com\/journal\/?p=10"},"modified":"2008-03-19T15:35:49","modified_gmt":"2008-03-19T20:35:49","slug":"its-amazing-what-you-can-get-paid-for","status":"publish","type":"post","link":"https:\/\/rockypufflenuggets.com\/journal\/2008\/03\/10\/","title":{"rendered":"It&#8217;s Amazing What You Can Get Paid For"},"content":{"rendered":"<p>I've been dealing with a Vendor at work for the last several months and the more I deal with them the more I am <strong>amazed<\/strong> that they are in business. Not just <em>in<\/em> business - these dingleberries have managed to get a multi-million dollar contract for their incredibly lousy software. I mean we'd be better off without it. It's almost like a virus... no, a virus is successful... this is more like an albatross around our necks. It's crazy.<\/p>\n<p>Anyway... the latest is that they are shipping this software component for linux and solaris and it's got basic start\/stop scripts - pretty routine stuff. The problem is in the start and stop scripts. I suppose it's in their code as well, but I'll give them a pass on that because they wrote the start and stop scripts to keep the software out of a 'bad' state.<\/p>\n<p>Here's what's happening: you start this component and for some reason it gets to thinking that it's stopped and so it tries to restart itself. The problem is that it hasn't really stopped. It's still running. Given that it's listening on a socket, when it 'restarts' it sees that it can't get the socket and not only fails on the restart, it takes the running instance with it as well.<\/p>\n<p>This last little bit can be avoided easily enough by making the app see if anything is listening on the socket <strong>before<\/strong> trying to set up the listener, but that's something that not everyone would think to do, and it's a little more than I'd expect from <strong>most<\/strong> vendors. But the script thinking that the app died when it hasn't is a serious <strong>lame brain<\/strong> duh.<\/p>\n<p>I went into the script, spent about 15 mins clearing out a bunch of the junk and putting in a simple restart sequence that I've used in a lot of linux services I've built and started that puppy up. Previously, I couldn't get the component to stay up for 8 hours, and now we're well past three times that.<\/p>\n<p>Their basic components are decent - not worth the money, but they aren't horrible, either. But the scripts are crap. And let's not even get into the tech support that's half way around the globe. After three days and countless explanations of the problem from me to them, the <strong>best<\/strong> their tech support could say was <em>You must have started two - stop them all and start just one and the problem will go away.<\/em><\/p>\n<p>Now, if I was a junior dufus just completing the <em>How to Program in 24 Minutes<\/em> book, then I'd see that it might be good advice. But since my first email pointed out that I had done just that, this was not the most <em>helpful<\/em> of advice. Then, they had their <em>guru<\/em> that's in town have a look at it, and he took the changes I made to the script and said \"Well... I don't really know the linux scripts, but the guys back in Greater Gufendorf will have a look.\"<\/p>\n<p>Yeah right. I've got stability and as long as I'm forced to use this garbage, at least I can make it decent enough to use. Holy Cow! What a bunch of goobers.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I&#8217;ve been dealing with a Vendor at work for the last several months and the more I deal with them the more I am amazed that they are in business. Not just in business &#8211; these dingleberries have managed to get a multi-million dollar contract for their incredibly lousy software. I mean we&#8217;d be better [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6,8,4,7],"tags":[],"class_list":["post-10","post","type-post","status-publish","format-standard","hentry","category-code","category-jerks","category-cubeville","category-software"],"_links":{"self":[{"href":"https:\/\/rockypufflenuggets.com\/journal\/wp-json\/wp\/v2\/posts\/10","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rockypufflenuggets.com\/journal\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/rockypufflenuggets.com\/journal\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/rockypufflenuggets.com\/journal\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/rockypufflenuggets.com\/journal\/wp-json\/wp\/v2\/comments?post=10"}],"version-history":[{"count":0,"href":"https:\/\/rockypufflenuggets.com\/journal\/wp-json\/wp\/v2\/posts\/10\/revisions"}],"wp:attachment":[{"href":"https:\/\/rockypufflenuggets.com\/journal\/wp-json\/wp\/v2\/media?parent=10"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rockypufflenuggets.com\/journal\/wp-json\/wp\/v2\/categories?post=10"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rockypufflenuggets.com\/journal\/wp-json\/wp\/v2\/tags?post=10"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}