TWILIGHT ZONE – Part Deux

Well, the recovery from my ghastly QA Epic Fail has been just as WEIRD as the original problem. First of all, when our BA mentioned “Criteria 1” he was talking about the main gist of the change — driver age was still getting populated with the age at the time of exposure creation and not the age at loss. I scoured the code in GitHub and the code my coworker added was just a bunch of loggers to troubleshoot HIS issue with his code, so that wouldn’t affect anything with my code.

My long-suffering coworker who’s been helping me out (let’s call him Mentor #2) had me bring the March Branch into my local (I KNEW this was going to happen), take the payload from our BA’s claim, and plop it into my JUnit test to see which age would appear.

To back this up a bit, the payloads created by our process, that are fed into the integration jobs, have changed format. I was able to escape using these last time by using an older claim for my JUnit tests—no such luck this time, as our BA had created this new claim just for his testing. I had several false starts where the damn JUnit test just didn’t work with the new payload format. Mentor #2 had to dial in for a meeting, so left me to my own devices, telling me to keep trying. After cursing and swearing that the damned payload was a bust, and that he had NO IDEA what he was talking about, and why on earth did they have to change the damned format, and…

…and then I saw it. Yours truly forgot to change the JUnit code to use the claim and policy for the BA’s claim—mine was still in there. Once I fixed this, the JUnit test ran like a Swiss watch…and wouldn’t you know, the correct age popped out! So, the issue wasn’t my code. Seeing that our BA originally created his claim February 4, I decided to take a chance that this might have been a system glitch—especially seeing as my coworker had had his code issue around the same time. Following the QA test scenarios, I created two more claims from the UI. This morning, I checked the final payload that goes to the next system, and again…I got the correct age.

SO, what happened? My tech lead believes it may be due to our BA running his tests before the test Spring Batch cycle ran, but my code was there on January 27 and worked just fine. I checked the output for the Spring Batch Build for Monday and the result said “UNSTABLE,” so perhaps something happened that effected our code.

For now, I’m going to lay low…but I think I’m going to need to keep running my tests every time this code hits a new test region and production.

Fun with JUnits

…or, why I’m pretty sure I’m grayer than I used to be…if I wasn’t in fact hiding my gray. 😈

The good news is that I’ve had a crash course in working with Spring Batch and I’m now a veritable expert in operating the debugger. I also now understand (somewhat) where to get the data for the payload by running only a few SQL queries against the test data from the UI and using the resultant payload for our JUnit tests. This is definitely a step up from my attempts to get data last week by running multiple queries and cutting and pasting all the information!

Monday, my coworker spend an hour of his life he’s never getting back showing me all this, while attempting to help me with the payload for my testing. The payload still isn’t exactly what one might call stable. I tested with and without my code change and thankfully that’s not the issue–I would have run screaming into the night if it was.

Sadly, I’m going to have to have him help me further, as I ran all the SQL queries I was supposed to to get my new example, but I’m not ending up with the same file format that our JUnit job requires. I’m not quite sure WHERE my coworker found the information, but I don’t think I quite have it.

The adventure continues…

Work Day 47: Well, I THOUGHT I was brilliant…

Remember my great stroke of genius in discovering I’d only need to add one argument to pass to that one method to fix the driver age being passed to our other system?

There’s good news and bad news. The good news is that my mentor helped me determine the correct version of the integration repository to clone to make my changes (short answer: it doesn’t exist yet for the March release). He helped me with my Eclipse setup, so that I can eventually make my change—for now, I’m using the older repository code for this purpose. Creating a patch in Eclipse is similar to creating one in Guidewire Studio.

The bad news is that my ingenious idea to add one argument to pass into the method was a bust. I added my change in Eclipse only have have all sorts of angry little red Xs and other ugly notations pop up. Come to find out, I hadn’t thought to DEFINE the loss date field that gets passed with date of birth. Choking down my rising hysteria, I saw how date of birth was defined, and then I scoured the class until I found loss date defined somewhere else in a similar manner. I copied that code over to the code that calls the method and all the angry little squiggles went away! Whether or not this actually will work remains to be seen. Once the March repository becomes available I’m going to hook everything up and test by entering some claims into my local UI and see if they pass correctly through the integration process.

Okay, that’s how I imagine it’s going to go. I’m sure the reality is going to 12 times more complicated than that. For one thing, I have to make this change work for five different scenarios. Also, I’m casually using the expression “hook up” for a process that’s defined over 11 pages of documentation.

My poor mentor is going to deserve a medal for this…or at the very least hazard pay…

Work Day 40: The Meaning (or Query) of Life…

I decided I was sick of not knowing what the heck was lurking inside my local machine test data. When I first set up my Guidewire Studio, the Alum had me copy test data from our network drive, and for my three user stories I pretty much hunted and pecked for suitable test claims by making do with the application’s UI search. Don’t get me wrong—the UI search is fine for a claim handler to look up info for a particular claimant. However, it is not designed for a looney developer to spit out every single claim record containing a penalty payment (yes, I’m still looking at that story—there are no official takers for it yet).

I checked the Gosu Reference Guide and found a whole chapter on querying. It was a bit of trial and error, but I managed to use the Gosu “Scratchpad” to churn out every claim record in my test data! I also managed to churn out transaction data, but I ran out of time. Tomorrow I’m going to try to find specific types of transactions. It looks like there is more basic claimant data than actual transactions. At least now I can easily search for the type of data I need. I’ll have to figure out how to save the individual queries. I’m not sure if they’re the same file extension as other Gosu programs or not.

There’s nothing like discovering a new programming language skill to make you feel like Einstein.

Day 48: Deer in the Headlights

This was one of those days where I almost stormed out of the classroom. I had to remind myself that we only have a few more weeks before we’re going to be REALLY confused in our new jobs, and that this is probably a picnic in comparison…

There is something dreadful about learning things piecemeal, and then having to cobble it all together for an assignment—I know…just like real life. Today we combined login/registration screen logic, get and post logic, Node express, listing out file data, etc. into one site. The truly mind-bending thing was that we used Node Express Generator to spit out the scaffolding, and then we had to take all the bits and pieces we’ve learned this week and somehow apply them to this new format.

Among the disasters:

1. My site got completely hosed by the ****ing layout.hbs file. What was a normal-looking index page all of a sudden resembled some mutant atrocity. The only way I can describe it is that it looked like our cat Jack jumped on the keyboard in the middle of coding and then used his ass to press “save.” This particular issue turned out to be due to some random css code I’d somehow copied in by mistake for my login page formatting.

2. Partial hbs files are now unnecessary due to the aforementioned layout.hbs file. This has COMPLETELY wiped out the careful work I’d done previously dividing page contents into the partials. NOT THAT I’M RESENTFUL.

3. I also struggled over trying to figure out if I needed one script file or one per page, seeing as there was overlapping logic.

4. I compared notes with others, and think we all suffered from tiny gremlins scurrying away with what’s left of our brain cells, because many of us could not, for the life of us, remember how the hell we listed out fields into an unordered list, let alone how we previously did gets and posts in AJAX calls.

5. I personally kept getting confused over what went in server code and what went in regular front-end script code—especially since we’ve been introduced to routes, or as I like to call them, the bastard cousins of server script.

I’m hoping to gain more clarity tomorrow, as we have to combine everything into a Friday project that we aren’t starting until 1:00 p.m. The idea is to have NO actual html pages, except for bare-bones, as we have to use Postman (which I barely understand) to test the server code instead.

I have the ugly feeling that I’m not going to have a weekend…

Day 45: Who moves my cheese (redux)?

We’ve embarked on Node.js AND new seating (again). I have to say, I am grateful to be sitting on the end of the row, seeing as I’m practically CRIPPLED today. Over the weekend, in addition to frollicking at the beach, I did several hours worth of gardening. I compounded this by doing more gardening this morning before getting ready for class. May we pause here to say it was a good thing I knocked off this morning when I did, as THIS is what appeared on our motion detector while I was getting ready:

I suspect someone in the neighborhood is either leaving food and/or trash out…

Due to all this activity (gardening, not the bear), I’ve been massively stiff all day. I took my customary stroll at lunch to visit the birds, but it was more of a slow shuffle. Right now, I can’t even KNIT due to my wrist being strained from plucking up weeds for hours (the HORROR). I’m hoping that more Aleve and a good night’s sleep will help me out.

Anyway, we started off today in earnest with Node.js. We are working our way up to creating servers. Right now, we’re looking at examples and copying server code to study it. We also took our capstone projects, copied them to a new repository, and changed the html pages to phps. We also grouped code that was the same on all the pages into “include” phps. It was a fun exercise. I, of course, found a few things I really want to change about my capstone project for formatting, but didn’t really have time, other than to correct the crooked buttons. If we’re going to keep on with this, I do want to eventually correct the cards in the pattern section so that they format a bit better with media queries.

That is, if I can MOVE tomorrow…

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 42: It was an ugly business…

…but clean living prevailed!

Yes, I’m quoting Dudley Do-Right. For you young people out there googling “Dudley Do-Right”—no, I have no clue why Snidely Whiplash tied women to train tracks, and yes, we can safely assume this was “pre” Me-Too…

Today was indeed an ugly business. I went from:

  • “I’m just going to do some testing and validating, and checking to make sure I don’t have references to a previous project site in the code”

to:

  • “Oh, My Freakin’ GOD!!!”

I validated what I thought was my most straightforward, stable page only to have all sorts of bells and whistles go off over on https://validator.w3.org/nu/. Then I remembered…in order to make my team details page less “tabular-like” I had grouped some fields together for a nicer-looking interface. Fun fact: if you indeed have a “table” layout, HTML takes a dim view of grouping two <id> elements for two different data elements together in one <td> cell. It gives the expression “strange bedfellows” a whole new meaning. Indeed, I actually had a ménage à trois going on in one cell…

So, with hours to go until the 3:00 deadline, I embarked on changing the layout from a table to a Bootstrap grid. As this was all dynamically produced in JavaScript I had to figure out how to do this for my new format. I remembered what our other instructor said about “scraping out the HTML,” so that’s exactly what I did. I STILL had some validation issues (two fields are apparently frowned upon in more than just table cells), but our long-suffering instructor helped me out with this (can you say <span>?). I ended up with a similar, pleasing interface, but without all the ugliness under the hood. I even dynamically reformatted the ménage à trois into an unordered list in the Bootstrap grid!

I swear to God, when this thing FINALLY validated around 2:30, I got up and cheered. I may have even done a happy dance—it’s all a blur. After the rest of my checks, I was done with about 15 minutes to spare. I was by no means alone…many of us had the **** fairy rain down upon us today.

THEN, we had to take the final JavaScript assessment. After all the Sturm und Drang over studying for this…

drumroll…

drumroll…

96!!!! 96, baby! I got a 96 on the final assessment! I couldn’t believe it!

I still got it.

Day 37: Hip to be Square on a Carousel!

Our first task for our capstone, now that we’ve figured out some data, is to come up with storyboards for our site. We will pause here to say that, although I’m a whiz at geometric doodling, my general artistic skills leave MUCH to be desired. I managed to come up with basic illustrations for my supporting pages, but for my main page I just hauled off and created a preliminary index page using the Bootstrap Carousel template. I’m going to find my best knitting and crocheting pictures to put in the carousel, and I’m going to use the sections below to explain the site and square drive. I’ve never attempted the carousel before, so that’s going to be my “cool new feature,” I figure (bonus points), unless I can figure out something else.

If we had oodles of time, I’d attempt to do popups for different basic square patterns that someone could print out, but I don’t see me doing that by September 4, when the site is due.

Day 34: A SPA Day!

Tomorrow is another Friday project. I’m not too worried about the JavaScript, although the arrow functions are odd, and I’m still fuzzy on those back tick expressions. I’m more concerned about making a halfway decent site that looks good. We’re going to be doing a single page application and the theme is going to be some sort of spa. I found a few nice photos to use, but honestly, if we have to cough up several pictures to fill bootstrap cards for each and every one of the different spa services, then I’m going to run screaming into the night. I could be truly crazy and make interesting cards using the font awesome icons, but that would probably be weird.

The thing is, I’m not really what one would call a frequenter of spas, let alone day spas. Years ago, when we sent our dachshund to the pet groomer, we told her she was having a “spa day.” She’d return with a tiny bandana and smelling of shampoo—right up until the point where we let her outside—but that’s about as close as any of us have come to an all-day beauty treatment lately. I tried to get some inspiration for photos at my hairdresser’s this evening while, as I always put it, getting my hair restored to its “natural” color. My hairdresser is truly a miracle-worker (there are members of my own family who have no idea how old I am), but her decor is simple and elegant—no bubbling fountains, burning candles, ferns, odd fruity smells, or anything else one might associate with women spending an entire day bonding over pedicures and massages with someone presumably named “Sven.”

I’ll have to see if I can cough up some more interesting pictures before tomorrow.

Fun fact: Font Awesome DOES have a tiny little hot tub!

<i class=”fas fa-hot-tub”></i>