Work Day 28: I wasn’t supposed to do that?

…or “When you assume…”

Our offshore developer did my code review. He got back to me with some points he wanted to explain. As it was early, our tech lead arranged a call for the three of us. May we pause to say here that going over code with other developers is WAY easier than having tall, towering arguments with six business people on whether or not they want the words “Total Cost” capitalized in a report or not.

After I explained the amount of “deletions” (my changes for the word wraps and width limits seemed to show up as deletes and adds), he walked me through creating a branch from GitHub to apply my patch. I hadn’t done this yet, as my change isn’t being released until February. Instead, I’d cloned the November Release repo to do my changes and created a patch. He explained that I could at least check out a branch for now and push my changes there, without affecting anything in the main release branch, as long as we get rid of it before the December release. That way, he can properly review everything I did. I know what you’re thinking—did you learn nothing in boot camp? Yes, we used GitHub extensively in Code Academy, but we were dealing with a master and maybe five branches, at most. The company GitHub is IMMENSE with many, many repositories for many departments, that have many branches, where you make branches from branches for user stories. You honestly need a Dramamine before you attempt to sign in to look at it.

He asked where my GUnit test and coverage report were—or at the very least the screenshots. I showed him where this was in the documentation, and he pointed out that I still needed a coverage report. Thank God I didn’t have the webcam on because I’m sure my eyes bugged out like a squirrel about to be rendered semi roadkill. He patiently explained how to create this in Guidewire—it was simply a matter of clicking an icon. My cat Jack could manage it, if he had opposable thumbs.

And THEN, he saw the dropdown where I’d run my GUnit test earlier.

“You ran…all the tests?”

I explained that I’d followed the company GitHub Wiki instructions to the letter.

“You ran ALL the tests???”

Come to find out, I was only supposed to run tests pertaining to my code.

“Is that why it took over an hour to run?” Honestly, the entire process was three hours of my life I’m never getting back again.

It gets funnier. He looked at my code again and said, “and since you only changed the pcf files, and not any classes or methods, you really didn’t need to run a GUnit test at all.” I pointed out the one class test I thought pertained, but there was no actual change to that class, and it didn’t directly affect my two pcf file sections, so it was out of scope.

We left off there, so that the poor guy (being 10 1/2 hours ahead) could go home and go to bed. I thanked him profusely and hung up. He hung up the phone and I’m sure either howled with laughter over the crazy lady who thought she had to run the ENTIRE block of 1,008 GUnit tests for two tiny list view pcf changes, or fell into a dead faint.

My boss, who’s still on a high from me doing actual work now, thought the whole thing was hilarious.

Work Day 26: GUnit testing hell, part 2…

…but there was light at the end of the tunnel.

My mentor explained that sometimes the GUnit errors have nothing to do with one’s code change, as you’re testing the entire code base, with other people’s code changes. He had me back out my changes (luckily I’d done a patch, plus took copious notes on what I changed), rerun the GUnit test, put my changes back IN again, rerun the GUnit test AGAIN, to see if the errors are due to issues in general or due to my code changes. Why I didn’t think to do this myself, I don’t know, but that’s probably why they pay him the big bucks to be a Tech Lead. Sure enough, the errors were the SAME, so my changes didn’t cause them.

Now I just have to figure out what the difference is between a “code inspection” and a “code review.” I emailed our tech lead, asking if I needed to provide anything else in order to get a code review. Apparently, I need a code inspection before the code review. Call me silly, but I thought these were one in the same…I scoured documentation for old user stories but there is no there there. The ones I found say “Code Inspection: non-applicable.”

On a more cheery note, my name made our division Town Hall meeting! Once for having 30 years with my company, and once for graduating Code Academy, along with all my other fellow graduates. Very exciting—I can’t think I’ve EVER rated a mention at the town hall meeting. Granted, my name appeared on a PowerPoint slide, but still, it’s really exciting to be acknowledged for something for which I’ve worked hard. Several people came up to congratulate me…for the 30 years. I’m not sure why they were more impressed that I’ve survived 30 years at the company rather than having survived coding boot camp, but I thanked them.

Day 55: Angular-ing for a clue…

When you google or bing the word “Angular” in a browser, you return:

“Angular is a TypeScript-based open-source web application framework…”

OR

“Angular Cheilitis is a condition that causes red, swollen patches in the corners of your mouth…” I’ll spare you the details, except to say that, yes, this can be caused by a fungus, or as I like to call it, a “fungus amungus.”

The second definition, pertaining to festering sores, is a MUCH better descripton of my entire day attempting to understand Angular. For our final project we are going to have to convert our Handlebar pages into this format, along with our code. I’m hoping to have some sort of clue in the next few days, because right now, I have NO idea how I’m going to do this for my Capstone pages.

Speaking of my pages, I took leave of my senses this evening and attempted to have the server render yet another Capstone page–the Edit Team Details page. I’m over and above where I need to be for activating pages, but I just HAD to try one more…I’ve spent the last 3 hours of my life (that I’m never getting back again) attempting to do a PUT request that hitherto worked just FINE with the old server. I screwed everything up so badly I had to wipe out the entire folder, clone the code from my GitHub Repo again, and reinstall the npm packages.

I think I need to quit for the evening, before I break anything else…

Day 43: Show and Tell!

It was a festive day! We all demo-ed our capstone projects for each other. As usual, other people’s UIs were awesome, although people kept saying they liked mine. I just think these people have never seen a properly-knitted or crocheted afghan before, but I’ll take whatever complements I can get. NEVER underestimate the power of using your pets to shamelessly shill anything on your website…this tiny lad could sell ice to an Inuit…

I did love the variety of what people came up with for their sites. No lie—one guy did the ENTIRE thing as a single-page application (SPA)! It was wild. Another person did dragon boat races that looked like so much fun that I think she’s just talked me into joining our company’s contest for next year.

Our next stop on the Bootcamp Express is going to be Node.js (no pun intended). Right now we’re reading up on this on https://www.w3schools.com/nodejs/default.asp and doing some demos. Monday we’ll be starting in earnest. There is a rumor that we may have some sort of lunch catered in for us for Friday.

Day 20: Where did the time go???

This has been one of those days where time just got away from me. It all started this morning when I took my morning walk, and mysteriously my usual 30-minute walk took 37 minutes. Then, inexplicably, my usual shower routine took 15 minutes longer than usual. I managed to get to class on time, but I was worn out before the day had even begun.

Our class day whizzed by as we all frantically tried to complete our Friday projects. Our assignment this time was to create a website for a small Alaskan town to provide information on the town, create a registration page for the one hotel, and create a page to rent a car at the one car rental place. I chose to use a lifeline and texted our friend Roy, whom I knew once visited Alaska and who might have some pictures I could use for the site. He couldn’t find them in time, but suggested I just google the town he stayed at for pictures. In the category of there are no coincidences, both he and our instructor had visited the SAME small Alaskan town!

The JavaScript coding was an ugly business. The hotel registration site was horrendous. There was a lot of crazy logic for discounts, free breakfasts for seniors, drop-downs, radio buttons, checkboxes, and validations for number of people to a room, etc. For the life of me, I just could NOT figure out how to give seniors their breakfast for free! The fact that many of my best friends and my spouse fall into this category is especially ironic. The great thing was that our instructor showed me how to use the debugger—I discovered that my code was finding the first match for breakfast, and just dropping out of the function with that value. She explained I needed to put the most restrictive option first. Oddly, this STILL didn’t work. I FINALLY got what I wanted by saying if you checked off “breakfast” and you WEREN’T a senior, then calculate the charge for you and your little tots. Else, the meal was free.

I didn’t get to the “tours” page, but I do remember our instructor saying that they’d rather have the required pages set, rather than a half-assed job on those and the the extra-credit one. I may spend Saturday adding some more illustrations to the pages I did complete before the 5 pm deadline.

By the end of my Friday, I was in a coma. To give you an idea about the level of my exhaustion, I drove home, turned off the engine, and almost fell asleep in the car in the garage.

Day 19: the ups and downs

In contrast to the utterly CRAZY day that was my yesterday, today was much better. We had labs to do, but the calculations were similar to yesterday’s scripts, so it was much easier. Either that, or I’m getting better at hooking up JavaScript to web pages.

I think talking a walk this morning when I got up, rather than trying to squash steps in during our lunch break gave me back some of my sanity. Okay…I’ll admit, the pizza lunch, courtesy of our instructor, didn’t hurt, either! Someone also mysteriously sprung for Dunkin’ Donuts munchkins…there should be some sort of quality award for whoever this person is.

I may be singing another tune tomorrow when we’re cramming in our Friday project. I’m trying to get a jump on it tonight by setting up my Bootstrap settings, css, and JavaScript flies ahead of time. I really hope our instructor wasn’t kidding about it being a travel site project, because I just downloaded a boatload of travel pictures, including our Washington, D.C. trip. I can’t take credit for the picture below. Our friend Larry doctored this one up!

Day 18: My life on the “outside”…

…or, WHAT LIFE? Note: whining ahead.

After yet another day of staying very late, trying to figure out code (and desperately trying to remember what I learned last week, that I’m evidentially supposed to be incorporating into the exercise du jour), I’ve come to the conclusion that I really can’t make plans after class during the week. I have a whole plethora of activities that I usually do after work that are just not going to be possible anymore—at least not until I finish training.

So far, this week, I’ve had to blow off my Tuesday night knitting group (sacrilege!) and another activity I do on Wednesday afternoons. We have some friends visiting tomorrow night, whom I’m probably going to wave “hello” to on my way into my home study to do more work (my classwork portfolio is a tad out of date). Oh, and we’re having SEVERAL people to the house this weekend—something we’d planned long before I knew I was going to be spending my summer snorkeling through CSS, HTML, JavaScript, and Bootstrap. Ask me if I’ve done ANYTHING to prepare for this…so far, my poor, long-suffering spouse is having the shoulder the burden for this.

Don’t even ask me about my exercise schedule…okay, you may ask. This was the extent of my exercising for today. At lunch, I enough time to walk outside and take a picture of this bird…that’s it.

Day 13: Hoisted by My Own Petard

Of course, I don’t mean this the way William Shakespeare did in Hamlet…

Today, we were introduced to the wonderful world of JavaScript functions. We got our feet wet with simple functions(). Then we did functions where we passed arguments to parameters (this sounds like something you’d do with relatives at the dysfunctional Thanksgiving dinner table, but I assure you it’s nothing like that). THEN, we got into passing arguments to parameters and RETURNED something…which is where it got really confusing for a lot of us. I kept getting the variables inside and outside of the function mixed up. Also, we learned that variables are “hoisted”–that is to say, they are moved to the top of the current scope (to the top of the current script or the current function). However, their initializations are NOT hoisted. Then we got into even MORE murky depths with the introduction of the “let” and “const” keywords, which are NOT hoisted, and behave in a most peculiar fashion, to the point where…yes, I definitely think I need some Advil…

The good news is that we went back to some of our previous code and retooled it to have functions. If anyone wants me to calculate the area of a circle or a square for them, I’m all set! I can also tell you if a year is a leap year…

We are having to keep up a portfolio of all our work, which I think I finally have up to date. Our instructor wants us to print this out, which I’m going to need to do at work, as I’d probably kill our home printer churning out all the pages I have so far…and this is only DAY 3 of our JavaScript training; this is going to go on for several more WEEKS. I suspect I’m going to have the equivalent of War and Peace or Moby Dick by the time I’m done.

Day 12: JavaScript Jive…

…think I’m slowly getting the hang of it.

Day two of attempting to work with others went much better. Today, we paired up with different people—they’re going to rotate us daily into different groups, cycling through three different combinations (all I could think of was, “If It’s Tuesday, This Must Be Belgium”). This time around, we worked together on mutual code reviews. We have been working out different ways to solve things. For example, we sussed out a way to determine if a year is a leap year. We did routines to figure out the minimum and maximum of a group of numbers (this was a trick…rather than if, else if, else we only had to use the Math.min and Math.max functions for that). We did code to determine sales discounts, taxes, etc. We even figured out how to display a greeting based on what time of day it is. This probably all sounds Mickey Mouse to people with any coding experience, but we’re all having fun figuring things out. We haven’t gotten around to writing functions yet, but that should be coming soon.

I even had a bit of breathing room today. I got out a few times during breaks to take walks around the building. I also (GASP) managed to get out this evening for my knitting group! To give you an idea of my level of distraction lately, someone at the knitting group pointed out that I’d COMPLETELY neglected to knit the intarsia sheep onto the back of my sweater! I had to frog it back to the armpits and start over again.

Day 10: Passed the 2-Week Hurdle!!!

We aren’t supposed to discuss our grades (well, at least not with the class), but suffice it to say I was INSANELY pleased with mine–It was in the higher category. Overall, I’d say we all did great. We did a demo, where we showed off our websites–everyone had great sites! I had a good giggle because two people did sites devoted to Disney World. We have a very good friend who, in turn, has crazed family members who are GAGA over anything Disney, to the point where their entire house is decorated with Mickey, Minnie, Goofy, etc. If my classmates go live with their pages, I’m sending the links for my friend to send to his family.

The rest of the day was devoted to self-study in preparation for next week, punctuated by a meeting with our instructor and our manager for the program. They informed each of us, individually, that we were good to move forward with the rest of the training, and asked if we were in.

Am I in??? Let me see…

Door #1: Meetings featuring tall, towering arguments over whether or not the sentence should have one or two “twos” in it, or is it “to” or “too” or should we just pick a code, or…

Door #2: Creating, coding, and engaging in the most fun I’ve had in a very long time?

Really…there is no choice.

Honestly, there hasn’t been a choice since I did that first web development challenge for the program. I created some basic HTML and CSS code, fired up the resultant page and–VOILA! I’d created a real page!!! I mean, how can you top that? Honestly, I have to keep going, if for no other reason than I need to get my new website outfitted with JavaScript and anything needed to make it a real, functioning site.

I’m looking forward to the next chapter…