Weekly Notes 2021-W4

Weekly Notes 2021-W4

This is the third week and I only recently caught the fact that the title of the last two posts were incorrectly tagged to 2020. They were fixed and redirected to the correct links. That's all fair game, the baby still keeps us up at night so there is a bit of fatigue going on. Just a reminder these weekly notes are a running log of work related activities (kept anonymized) and a few thoughts or running ideas.

A few personal notes before getting to the weekly work log. During the past 8 months there was not much time in my day to do everything that I wanted to do. Not complaining about the Pandemic, nor even complaining in general, but with the baby at home and keeping up with work commitments I never felt there was enough time vs sleep. Now, we have a better home routine and minimally have started moving around a little more, doing some shadow boxing (give it a try) and some crunches to get the blood flowing. Feeling better!

Last, my business partner and I sold a large part of our company last year and I spent most of the year either consulting or finishing some projects for clients. This week I made some decisions about work priorities, where I want to focus my efforts and a large part of that is directing my energy towards projects/clients that make me happy (and vice versa). I obviously have plenty of things going on and I am starting to put out some threads to see what other opportunities might be available. I am happy to chat about any opportunities whether small or large.

"The first step of any project is to grossly underestimate its complexity and difficulty." – Nicoll Hunt

I saw this quote recently and found it such a wonderful representation of the reality for estimating projects. Breaking projects into small tasks helps but estimating mostly just seems to be a sales tactic to sign a contract when everyone (except maybe the client) knows that the projects will have so many changes that the estimates are almost worthless. I don't have a better idea and always try to provide as accurate as estimates as possible but its a definitely a game of perception vs. reality at times. The first time I really encountered this was working at Raytheon-TI systems when I was fresh out of University (late 1990's). I was asked to estimate the migration of a Microsoft Access Application to web and since I was the only one with ASP experience it came to me. I told my boss it was going to take 2 developers MINIMALLY 6 months and probably up to a year depending. They didn't particularly like or agree with the estimate. I ended up leaving to work at Nortel Networks because Raytheon moved this office to another state and found out a year later they still hadn't finished that migration with 3 resources. An estimate should be a guide but not etched in stone.

Updated an Umbraco site to address some form validation changes.

Different Umbraco site Location lookup logic integrated into google maps and a signup form.

Coordinating with Umbraco via Github to solve a serious bug.

During onboarding of a new client on a system we discovered a few issues with how the data was loaded. Spent half the week writing scripts to parse, triage, reimport and validate the data to ensure everything was correct. Identified a few holes in testing to ensure future processes are done correctly. This took a better part of my time in week 4.

Statement of work for a restaurant client's website that was approved.

Further investigate BigCommerce on how to limit products on the cart since they can't natively do it.

Phone call with Azure support regarding a few issues. Ongoing and not resolved.

I'm trying to include a few code snippets here and there so this week I rewrote (something from another dev) the validation on a simple form (vue). Let's see a little code that was not supportable:

    <button type="button"
                class="btns"
                @click="findIdLocation"
                :disabled="IsValid"
              >Submit</button>

   // WTFx10 = This is really not supportable

   isValid() {
      return (
        !(
          !!this.model.firstName &&
          !!this.model.lastName &&
          !!this.model.email &&
          !!this.model.zipCode
        )
      );

I fixed this by using the VeeValidate library. The individual form validations become much simpler but the entire form validation is already done out of the box:

 <ValidationProvider v-slot="v" name="zip" rules="required|length:5">
   <input type="number" placeholder="ZIP CODE*"
       aria-labelledby="submitBtn"
    v-model="model.zipCode"
    maxlength="5"
    >
    <div >{{ v.errors[0] }}</div>
 </ValidationProvider>

  <button type="button" class="btns"
      @click="findIdLocation" :disabled="invalid"
  >Submit</button>

Trying to decide on some personal programming projects I want to tackle in the next couple months. Always great to keep learning and staying up to date.

Make sure that you respect yourself, that all decisions are made without emotional interference and be positive.