Thursday, September 10, 2015

You do not always have to know what you're doing; you do have to ask the right questions.

Good morning,
I have my coffee, I just watched Sarah Lane's on Tech Crunch's "Crunch Report" on the Apple Sept 9th event. Poor, and is it ok if I say "girl"? and I mean, poor girl had to read copy that just made the whole thing sound booooring. however, her reads are fun. (If you're offended that I worked in a gender label, ok.)
Here's the Thursday AM brain dump. So a funny thing happened on the way to Tech 3 the other day.


Actually it, the project,  started about 3 months ago.


Quick backstory, we use storage for our video assets. Not much, about a 180tb. On top of the storage and playing administrator is a DAM software from the company DALET. (dah' let) The evolution that we have running was well thought out and is an amalgam of numerous workflows. Version 3.14 something.
We set it up back in 2012 and have changed very little. Due to legacy issues around the facility upgrades would have to happen in a silo somewhere else and the infrastructure would have to be completely new.


DALET runs well for us. I didn't say that it was love at first sight, it was more like...ah, an arranged marriage.


Standard processes run at this facility (transcoding, migration, archive and retrieval, tagging, editing, web based VOD with over 34,000 assets online, live streaming 24/7 for 12 networks, global integration, etc) as well as multiple scripts planted on virtual machines that assist in functions for the web. Metadata, XSL, PHP, etc.


Old facility, aging storage, legacy processes; Keep this in mind. 
When it was announced by the new IT director that he had secured a new storage infrastructure for us we were all ready for the whiteboard meeting. You know the one, where everybody dumps what they know to be true by their experience. All participants either map out or call out their connections to the current storage set, the person with the pen scribbles a crazy view of the connections. Some color coding, lot's of boxes, etc. The pain and "choke" points are then given priority and then the work begins. Reverse engineering, <inset\commontechphrases> and then the work starts for the cutover to the new storage.

Somehow, the whiteboard meeting got cut, as in, wasn't planned. The new storage Customer Satisfaction guy figures if his tech says "no need" and "well do it right"...then...great! We did meet in a room with a FULL FORCE GROUP from <storage\company>, Their team all give us the NO PROBLEM speech and then poof! gone. I still hear the words from my mouth. I want you to connect with these people and be sure that we won't break any necessary connections..." as they walk out the door.


Sept 1, we cutover to the new storage. The fact that DALET works on a DNS and not an ip was great. Well thought out BTW. The upside, DALET engineering was on site. Another side note; Don't do something this big without having this type of back up. Engineers on site are gold. Just don't expect them to be happy that they are there.


The downside, the VM that runs the PHP script was pointing at a "linux speak" for DNS. The script stop running on the cutover. The web uploads and data exchange quit completely. I didn't note it until about an hour post storage swap. My bad. A test that I didn't get to test..oh, wait, NONE OF THE PROCESSES WERE WHITE BOARDED! That does not remove responsibility but it does widen the project responsibility and the scope of recovery now includes more people. 


A couple days into the recovery I used social media to reach out to John Chennavism and Nate Flom. In the meantime, I heard what the mystery was about. 

Our broadcast IT guy and the storage tech were tossing around a lot of vocabulary around the room. Another preface, I'm not a Linux guy, I'm a former editor turned DAM and PM here onsite. Attrition required that I take on the admin of straggler projects, manage day to day. blah blah blah. All that said to say, I don't always speak up because I don't think highly of my skills..but...actually, I do. Let's not split hairs, it's a humility thing. I you say that you aren't you might be and if you say that you are..well...are you?


Moving on..again


Back three months, I clearly remember the new storage tech guy saying, "The last storage that you had set up was done completely wrong. I'm not sure why they did what they did but I've never seen anything done like this on storage before. I'm going to" ...while he was speaking, I faded out.

When he completed his "MILESTONE" speak, I said then and there, "I remember there was a lot of discussion and planning going on regarding all of the connections and connection types. It was well thought out and testing took about 6 months as we were building something that had not been tried before. Both the storage engineers who built the system and the software engineers come onsite for a couple of days to pound out the necessary steps. I would think that you might gather the info, create a cut over date with an opportunity to roll back and adjust."


Come to present day from three months ago, last week, there we were with the engineer who "set it up right" was going over the disconnected portion of our workflow. What they could not find was where the Linux box was pointing at to achieve the mount for the folders on the storage. mnt\dalet was an issue. (I'm not saying that his way is wrong, I'm noting that he assumed that the other set up was so far out of the wheelhouse that it was hard for him to retain the logic. It wasn't wrong, it was different.)


The current situation was an all hands on deck situation. Service tickets were pulled, phone calls were made and then the Tuesday after the holiday, an onsite was established with the storage tech, our IT personnel, and myself. Four people in a two person office, sitting in the office furniture not made for butts. A whiteboard is not fully and effectively being used. Not a single "I told you so". Just brain dumps. Two slashdots banging out on a keyboard. Now, my personal issues, here at work or when contracting, I'm a bit nervous and feel under-skilled sitting in a room of slash\backslash\dot\bracket types. What I did notice is that they, the slashdot guys where stabbing in the dark like I usually do, it was just being accomplished with a different vocabulary. 

This is that exact moment when "You don't have to know what you're doing, you have to ask the right questions". 

My inexperience didn't clog my problem solving skills with "what I experienced to be true", and, honestly, my logic skills and spiritual disciplines of meditation and reflection caused me to ask the question. "Just because this.. (I'm pointing at "mnt\dalet" scribbled on the white board) states that the Linux box points at "that" named location for the mount, we're assuming that it's logical. What if the name mnt\dalet is called something else by the box? What if that string is only using mnt\dalet as a name for something deeper in the "shell"" I had to ammend by voicing that I might not be using the correct terms but basically is what we know as RED being called RED by the computer?


I explained that the language of the code writer only used that as he would say basically and not literally, "hey look a car" when a car collector/aficionado would say "that's not just a car..it's a _________) I apologized and said that I might not have the correct understanding but with the conversation that was being had I understood that someone can say use this language but point at this.
There were a few blank stares, they they upped the effort and used the question as a motivator to dig into something that wasn't being considered.


JOB SECURITY-Non disclosure by the code writer and then the project manager for not demanding documentation because he's getting a kickback from the installation company for going lightly on them. 


That's correct. Someone made issue with regular logic. Most coders will comment in the actual code. The why and where and when. Sometimes they even leave their email JIC. 

(Example;  Green are comments; BLUE is to show where the code function may be. /**

     * Constructor. Takes the secret and api keys Examples:

     * $Api = new Api('7ab06', '329b5');

     * $ooyalaApi = new Api('7ab06', '329b5', array(

     *     'baseUrl' => 'https://api.ooyala.com',

     *     'expirationWindow' => 20));

     * 

     * @param string $apiKey    Backlot's API key.

     * @param string $secretKey Backlot's secret key.

     * @param array  $options   Extra options to override the baseUrl and

     *                          expirationWindow. These should be specified

     *                          as the values from the keys in this array.

     */

    function __construct($apiKey, $secretKey, $options = array())

    {

        $this->apiKey    = $apiKey;

        $this->secretKey = $secretKey;

        $this->baseUrl   = array_key_exists('baseUrl', $options) ?

         

I'm going to blame the install company for the lack of documentation. After all, if you teach a guy to fish, he just might not need you. <sarcasm\off>

Somewhere deep a few layers in what I believe was referred to as the Linux Shell, was buried all the info that told us that RED was BLUE. The mnt\dalet was on top of an ip that reflected the old storage, not a name on the storage OS.

Logic be damned! This was personal. 

Whomever built this box didn't want to lessen their personal value to the project back in 2012. That's why the reason for the lack of documentation.  That was the issue with the installation company from Burbank the entire time. That is another topic.


So, between the two slashdots a few key whacks, uncover where the IP address to the old storage was built into the "shell" and viola! (in high school I had no idea that was French. I just read it as vee oh la)  Thank you Mr Robbins and Sequim High School!


Within minutes, after updating the ip, the priority php the script kicks off.  One of the two engineers that were contacted through SocMed, call "after" we've discovered the issue. The storage tech who "did it right" discovered that right isn't always correct.


So...if you don't know what you're doing, ask for space/grace to be incorrect; don't assume! Step in and allow others shape your intellect and then..ask the questions that no one else is asking!


Friday, July 24, 2015

Turn a screenshot from a computer into usable text.

Argh! Not Pirate Argh, Charlie Brown Argh!



I'm so tired of processes that by their very nature do not lend themselves to simplicity. Open a jar of peanut butter, twist, spin, PBJ, happy tummy. (Ya tummy, I'm a father of a daughter, that makes it okay.)

There have been spans, literally, that I've wanted to cross. Logic say's "that's not a good idea." However the boy in me said if you take a string across, then a small rope, eventually you can get a cable across there and make a zip line. This was back in the 70's when it wasn't called a zip line; rather it was a way pirates used their belts to go from ship to ship on TV and Batman was just making it cool.



So, spans, back to topic.

I work in technology. I help solve problems with workflows and discover detail that get's missed that "shouldn't be" the issue BUT usually are.

Today, I only want to point out that there are SIMPLE ways to cross a span and the best part is the rope has already been strung, you just have to find it and use it to cross over.

I rec'd a screenshot of a computer interface log. (Yes, I silently bitched that the sender didn't actually send me text from the log.) It is for them that I am pounding this out today.

Here is the screenshot that I was supplied with.



I did obfuscate the first column and the rest you can see has dates, times, etc.

Why would I want to retype all the data? Even though it is a small amount, there's a simply way to do most anything, you just need to break it down to steps that are manageable. I think that it's part emotional intelligence and logical adaptation.

I took the screeshot and using MS Paint saved it as a JPEG. Once saved I uplaoded the JPEG to this online conversion tool and created a PDF.

http://convertonlinefree.com/ImageToPDFEN.aspx

Here is what I got back.(This is a screenshot of the PDF so I could cover the first column with a comment)



When using this free online service, the file automatically downloads to your "Download" folder.

I then went to a FREE, that's correct another FREE online conversion tool. From here I uploaded my PDF to the ONLINE OCR and viola, I rec'd the text from the logs that started out as a picture.

http://www.onlineocr.net/

Here is what the page looks like and you can see the text dump in the bottom. From there you can copy and paste to a document that you create or download a document type of your own choice.



Quite honestly, one of the least hassles I've gone through to cross a span landing safely for a swashbuckling sword fight with ok..argh as in pirate, not Charlie Brown...but if you saw me, you'd think, yup...this guys is Charlie Brown.



So use this rope to cross the creek to move on towards what is really important.

BTW you do have to format the text. I copied my text and put it into a word document. Then I used "find" and used "replace" by leaving the replace window blank, thereby deleting the text that I didn't want.