Updated the blog! Cue the code!

I know I haven’t been as prolific as usual lately…I blame our Agile team’s project. Normally, we deal with enhancements and fixes, which frankly I LOVE. I started out my mainframe programming life back in 1992 dealing with production and enhancements, so I’m quite comfortable “in that space” as they say in corporate-speak. However, our team has taken on a rather larger enhancement, which is frankly more of a project—they’re just not calling it that. Several agile teams and departments are involved in this. I know, in the long run, this will be good, as it involves a new integration with our system, so I’m getting to see how integrations are set up.

The bad part is that we are all working on our stories at the same time, so in the case of my current user story I’ve been having to code off to the side in a Notepad++ document, with the idea that I will be adding my function once the Util class is created. There is really no way to tell if what I’m writing will even WORK. I’m one of those people who needs those visual cues in the Guidewire Studio app (or Spring/Eclipse, if I’m coding in Java) to guide me. You know, “normal” print if everything is kosher and ANGRY RED if there’s an issue. I’m not used to coding blind. I’m sure, once I get more experience, I’ll find this easier, but right now it’s maddening. I’ve also been working on a GUnit test for this, which has been the seventh circle of hell. I think I’ve managed to find some existing GUnit tests that are close to what I’ll be needing, but AGAIN, I need to be able actually run this SOMEWHERE.

I’m also still working with the new guy. The latest thing is that I need to help him upload some Admin Scripts into GitHub for his user story…this is a clear-cut case of the blind leading the blind. I have a sneaking suspicion that my boss is suggesting I help him with all this different things as a way of getting me more familiar with different tasks. I’ve done exactly ONE of these previously, so this is going to be entertaining, to say the very least.

Thank heavens for long weekends…May you all have a wonderful Memorial Day weekend! I for one, plan to catch up on all my knitting and crocheting, which has been woefully neglected this week!

From Learning—to Showing—the Ropes!

So, another day, another WFH (working from home) adventure. Once upon a time, WFH was an exciting privilege, where you got to sip the tea that you leisurely made, ate oatmeal that DIDN’T come out of a microwave, and quietly did your work; meanwhile escaping all the chaos, gossip, and annoyance of the office. Now, it’s taken on a whole new meaning since EVERYONE is working from home, minus a few hundred at my company (“Can you hear me? You’re breaking up! I can’t see your screen. Is so-and-so joining the meeting? What was that again?”).

We have a new guy starting next week, and I’m going to have to help him get aclimated, which is going to be positively weird to do via remote control. Granted, the guy is in another state, so I would have had to work with him remotely anyway, but it’s the principle of the thing. Despite my grumbling, the exciting thing is that I’ve hit some sort of a new level in my development job. I’m actually being trusted to show a new developer the ropes! We sincerely hope I can remember how to get Guidewire Studio up and running for a brand-new person, not to mention Spring for our integration work (Java).

I’m also now being asked to do code reviews! I really didn’t think anyone would trust with that until at least my 1-year mark, but I’ve done quite a few now. It’s actually a good way to check someone else’s code and learn from it…as opposed to spending and entire DAY trying to figure out a defect found in QA (which is how I spent my entire day yesterday).

And, of course, I’ve been doing copious amounts of knitting and crocheting in our time of quarantine. I confess, the WIPs are hopelessly out of control. I’m working on:

An Annie’s Attic Crochet Striped Afghan Club project

A knitted mask, with an i-Cord from hell

A baby blanket ( you just KNOW someone is going to end this quarantine pregnant)

A Sophie’s Universe Crochet afghan (I’ll be working on this one until they put me 6-feet under)

A Mary Maxim Woodlands Striped crochet afghan

I know there’s another one, but I can’t remember it right now…

On that note, must get back to the old backlog, to see what my next adventure is!

For some lucky recipient!

HappyDanceHappyDanceHappyDance!!!!

I DID it!!! I finally figured out what I was doing wrong with the JUnit testing. There is a line of code at the beginning of the test for a field that says “contextData.” Initially, it appeared to be some sort of memo or reference. As I’d exhausted every other option this week, short of Voodoo chants, I checked the field again and…I was wrong! Far from being a “memo field,” the code is actually used to pull in the data elements that have been changed in the payload. So, in my instance, I needed to add Date of Birth, Loss Date, and Driver Age to this string, separated by pipes, so that these are be accounted for in the test.

As a result, I’m FINALLY returning data, and the correct data to boot! I need to write up more JUnit tests for different scenarios, but at least I now understand how these particular ones work.

I also participated in a fire drill today—okay, it was more like a full-on 5-alarm blaze. Our BA (you remember him—the poor bastard who inherited all my work when I went off to Code Academy last July) found out that one of the user stories for his other agile group tanked in regression-testing. The developer who worked on it is offshore and was one of the many who was off for Pongal. It was my boss’ idea to put me on this as a learning experience, with the other developers. We all checked different things to see why this wasn’t working. My task was to scour the past release’s code for anything to do with the logic that was broken, and then compare to see what was overlooked and/or changed by the user story code in this release.

THEN, it occurred to me…I asked our BA, “What exactly DID the error message say?” I searched our GitHub repository for the exact wording, and FOUND it! The odd error message came from one of the new Gosu rules (.gr file) the user story added. I did my best to figure out what on earth the code meant that led up to it throwing an error. The other developers had in the meantime found other odd things to do with the test environment, so hopefully between all of us the group can determine how to fix the issue.

I have to say it was very exciting to discover that I can in fact troubleshoot code I had nothing to do with writing, and understand it! This is pretty good, in that I’m hopeless at troubleshooting knitting and crocheting mistakes for people when I didn’t personally create the article.

Now back to the JUnits! I’m hoping for a peaceful Friday to complete them…

HappyDanceHappyDanceHappyDance!!!!

I DID it!!! I finally figured out what I was doing wrong with the JUnit testing. There is a line of code at the beginning of the test for a field that says “contextData.” Initially, it appeared to be some sort of memo or reference. As I’d exhausted every other option this week, short of Voodoo chants, I checked the field again and…I was wrong! Far from being a “memo field,” the code is actually used to pull in the data elements that have been changed in the payload. So, in my instance, I needed to add Date of Birth, Loss Date, and Driver Age to this string, separated by pipes, so that these are be accounted for in the test.

As a result, I’m FINALLY returning data, and the correct data to boot! I need to write up more JUnit tests for different scenarios, but at least I now understand how these particular ones work.

I also participated in a fire drill today—okay, it was more like a full-on 5-alarm blaze. Our BA (you remember him—the poor bastard who inherited all my work when I went off to Code Academy last July) found out that one of the user stories for his other agile group tanked in regression-testing. The developer who worked on it is offshore and was one of the many who was off for Pongal. It was my boss’ idea to put me on this as a learning experience, with the other developers. We all checked different things to see why this wasn’t working. My task was to scour the past release’s code for anything to do with the logic that was broken, and then compare to see what was overlooked and/or changed by the user story code in this release.

THEN, it occurred to me…I asked our BA, “What exactly DID the error message say?” I searched our GitHub repository for the exact wording, and FOUND it! The odd error message came from one of the new Gosu rules (.gr file) the user story added. I did my best to figure out what on earth the code meant that led up to it throwing an error. The other developers had in the meantime found other odd things to do with the test environment, so hopefully between all of us the group can determine how to fix the issue.

I have to say it was very exciting to discover that I can in fact troubleshoot code I had nothing to do with writing, and understand it! This is pretty good, in that I’m hopeless at troubleshooting knitting and crocheting mistakes for people when I didn’t personally create the article.

Now back to the JUnits! I’m hoping for a peaceful Friday to complete them…

Going Forward…

I’ve been pondering how to move forward with my blog. I know daily spleening about my ups and downs attempting to learn Java and JUnit testing are rather redundant and tedious. I may start blogging two or three times a week. If nothing else, I need extra time to finally make it through my Udemy course!

I’ve also been thinking about how to keep my JavaScript, HTML, Node.js, and CSS skills fresh. I ran into one of my fellow Code Academy classmates, and he mentioned needing to “use it or lose it.” It’s almost like a higher power was speaking directly to me. It’s interesting…our instructor has stressed the importance of having a side project, along with one’s coding at work. In fact, he explained that if you’re looking for a new job, the first thing employers want to see is what you have out on GitHub that you’re working on. I’ve asked around, though, and many developers at work have told me that there is no way in hell they ever have the spare time to do this–especially mothers with small children.

However, I think I have an idea, for something that might encompass keeping up my skills AND having fun with yarn. I’ve been googling. There are TONS of websites devoted to knitting pattern generators (knittingfool.com being one I’ve used), there don’t seem to be any crocheting pattern generators, other than for “graphgans,” which are afghans with a design or a picture on them. There are literally generators out there where you can scan in a picture of your dog and they will spit out a pattern (filet crochet, knitted, afghan crochet, single crochet, etc.) for you to make an afghan with Fido emblazoned on it. I’m thinking I could try a knitting generator, to get my feet wet; but I think I’d ultimately like to make a crochet sweater pattern generator. I’ve tried using ones for knitting, plugging in a crochet gauge instead, but the increases and decreases for crocheting are quite different, AND they’re different for different types of crochet stitches. I DO still have a domain name out there that I bought back when I did my first HTML/CSS project for class…

This could work…

Work Day 50: Seeing light at the end of the tunnel…

…that we really hope isn’t the on-coming train!

I’m making slow, but steady progress on my JUnit issue…if you count “finally finding the right people to consult” as progress. My poor, long-suffering mentor is inundated with work for the upcoming release, so he’s tossed the ball back into my team’s court (you know it’s bad when I’m resorting to sports analogies). One of my team members figured out part of my issue. I definitely had no access to get a Nexus Repo Key for that Maven step for setting up Spring Batch. The good news is that I put in a tech support request, and I got access to get one—miraculously in one day! At that point, I was totally fried, so I’m going to attempt to do this tomorrow.

This brings me to the bad news. The other person on my team who’s helping me…he’s in India. Yours Truly is going to get into work at the crack of dawn tomorrow morning to be ready to talk to him at 8:00 am. As much as I’m very grateful to him, this is going to cut into my morning yarn time! In addition to my sock-knitting, I’m also crocheting the Sophie’s Universe Afghan, which requires early morning quiet time, in order for me to concentrate. It’s one of those maddening patterns where, even though I’ve had oodles of years in crocheting experience, I’m still frogging back practically every row, due to being hopelessly off in stitch count. I’m only a few rows in, so far!

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 35 (and 36): Snowed in!

I apologize for my long absence, but we’ve been innundated with what Channel 3 is calling STORM ABEL. I’ll leave it up to your imagination to visualize the crazy weather graphics and the general hysteria of the weather people who are essentially in their element this time of year. The only thing more existing for them is hurricane season or the occasional tornado we get once in a blue moon. Instead of blogging, I’ve been spending my non-work time shoveling snow and bringing in firewood. Okay, there may have been some knitting, too…

My user story is proving to be a bit trickier than I thought. Once again, the easiest part was the CODE. Figuring out where to put the code has been a bit more difficult. This is essentially an XML script that I’m going to need to put somewhere to be picked up. For this, I had to pick an id number for the role entry that appears NOWHERE else, in any environment—production or lower (thank heaven for SQL). To test, I had to upload the XML file into my local machine—Thankfully, my mentor helped me to figure out how to do this. I was skeptical about uploading some random file into the application, but it worked! The new role was created correctly in the application and I was able to assign it to a user. Now I have to figure out how to get it into GitHub for the next step in the process. According to my mentor, this is another one of those crazy instances where I’m going to have to just directly upload the file into the script repository under the release folder, albeit as a branch.

In non-programming news, I had a lovely Thanksgiving with my family. I also made my surreptitious trip to my local yarn store to get DPN size 10 needles to work on my sweater. Due to a shocking episode of naked peer pressure, I walked out of there with 11 skeins of Universal Yarn Uptown Worsted and the pattern book to make the “Sophie’s Universe” crocheted afghan. The owner of the LYS had a beautiful floor sample out and I just lost my mind…along with a complete stranger in the store and one of my best friends, who actually DROVE to the yarn store, just to see that I got the yarn and pattern book. I believe I mumbled something about perhaps making it for someone as a present, when my friend said, “NO! You need to KEEP this one!”

Oh, yes, I also managed to finish my sheep sweater!

Work Day 24: I think I can…I think I can…

Well, Friday I managed to complete what I can for unit testing with the local machine data I have. The good news is that I had data for two lines of business that are very different, so it was a good test. Now I just have to figure out if I need to do a GUnit test for this, too, and when I’ll need to have a code review done. I’m going to have to wait for the January branch to open up before I add my changes officially. I swear, trying to figure out all this procedural stuff is WAY more complicated than the actual change was! My mentor is going to be back Monday, so I can bend his ear then. I’ve been looking at the backlog again, and I think I’ve pinpointed another story that’s similar to this one that I might be able to pull off…

Also, our continuing ed sessions with our instructor begin in earnest on Wednesday. I’m going to have to go over the repo we’ll be using.

It’s a beautiful thing…I don’t dread Mondays anymore!

On a crafting note, in addition to the new sweater project, I’ve lost my mind and joined the Annie’s Attic “Striped Crochet Afghan Club.” You receive enough yarn and a pattern each month to crochet three stripes of an afghan. At the end of the year, you end up with the final product. I’m thinking this will make a nice present for someone. It’s not taking me terribly long to do these…I’m tempted to search my stash for some spare yarn, so that I can have two of these projects going simultaneously.

Of course, I might want to see how much homework I’ll be getting on Wednesday before I decide anything…

Work Day 9: We have laptop!!!

I’m happy to report that today I dropped off my large doorstop of a laptop and picked up…another heavy laptop. I didn’t put it together at the time, but as I’m now a developer, I’m not getting the cute little tiny laptop everyone else has. This is a large, industrial-strength machine. I take back everything I’ve ever said about waiting entirely too long to get a new laptop…this thing is SMOKIN’—definitely worth the wait. I got an HP Zbook 15 G3 and it’s awesome! I can’t tell you how fantastic it is to turn on a machine, and IT COMES ON. No waiting 10 minutes for the damn thing just to get to the CTRL-ALT-DELETE screen. It’s fast, has Windows 10 (my old machine was still on Windows 7) and twice as much RAM as my last machine.

Speaking of my last machine, you know your computer is over the hill when the tech guy takes one look at it , gapes slack-jawed, and says, “Oh my God!” Then, when he finds his composure again, says, “I thought we got rid of those things YEARS ago.”

Now I just need to figure out what the hell I’m doing. I managed to get all my settings done (Jack is looking attractive as my wallpaper, and I picked out a nice afghan picture for my locked-screen image).

Then, I needed to set up Guidewire. Following the procedures, I managed to set up the directory, and zip up and wipe out the configuration file. Then I attempted to clone our repository to repopulate the configuration file with our code.

Hilarity ensued.

The good news is that I do have access to clone a repo. The bad news is that I got some GHASTLY error saying there were file names that were too long—six files. I did check and indeed the repo does have some big-ass long names. However, these files are 2 years old. Surely this has been an issue before now??? I googled and found that these is a git config command you can enter to address this:

git config –system core.longpaths true

but I’m going to check with people tomorrow to see if there isn’t already some sort of fix they already do that I may have missed.

All things considered…this is still more fun than being a BA.