Work Day 17: Back to School!

…but all the other kids are WAY ahead of me.

Our first continuing ed session with our instructor was abbreviated. He’s having computer issues, so we mainly walked high-level through the object-oriented JavaScript code he’s got out in GitHub. We’re supposed to review this, and try to run it on our machines before our next session—later on, we’ll be doing more involved work, I’m sure. It looks like I’m going to have to get Node.js loaded onto my work laptop, as we’ll be using that. I’m not sure how well that’s going to interact with the rest of the apps on my computer. I think I’m going to ask my mentor and The Alum for their thoughts. I could possibly just do all the continuing ed work on my home laptop to be on the safe side…I’m going to load a copy of his GitHub code there anyway.

We also spent a good deal of time going over how we all are doing in our new jobs. Some people are doing very well, as either a) they don’t need Java, and/or b) they have people they can shadow. I’m at a standstill, as I’m still learning Java and Gosu, which is going GLACIALLY slowly. Honestly, I’m getting the most bang for my buck from the Udemy course at home, but it’s not very fast-paced. Some people in class have had good success using the online CodeAcademy site. I’m tempted to check it out, but realistically, between Udemy, Tutorialspoint, Pluralsight (zzzz…), studying our current code, and trying to learn Gosu (and somewhere in here I have to learn Spring Batch), I think I have enough going on. If I try to add one more learning tool, I’m pretty sure my head is going to explode.

This afternoon, a good friend pointed out that I should give myself a break. If nothing else, I’ve only had a decent work laptop on which to do ANYTHING for a short time now.

I hate feeling useless, though.

Work Day 15: Is anyone HERE???

Friday was very quiet at work. Everyone was either working from home or taking a day off. When I came back to work from Code Academy, I decided to not work from home for a while, as I wanted to be in the office to be able to consult with my coworkers and mentor in person if I needed help. Honestly, though, on a Friday, that’s completely useless. I’m tempted to go back to my old schedule.

I spent the day diving into Gosu, Pluralsight (fell asleep again) and Tutorialspoint. I swear, Tutorialspoint is the best find ever! They have exercises you can do. I figured out that some classes are repeats, so instead of blindly doing each exercise as a stand-alone, I’ve been combining exercises in the class referenced. It’s a bit harder, but it’s giving me more of an understanding of the process.

For Gosu, I managed to get rid of the multiple versions of Scratchpad, and use it successfully—I discovered that the Gosu Reference document, in its 400+ pages, has exercises you can do in the scratchpad. I also found another online Gosu reference: http://gosu-lang.github.io They also have an online scratchpad/“play” area where you can practice coding: http://gosu-lang.github.io/play.html

I have a ghastly busy weekend afoot, but I’m taking Monday off, so I’m planning to plow through more of the Udemy course. I’d try to do the Udemy course at work, but I have my home computer set up for it with a higher version of Java—I’d probably have to schlep the home laptop in, in addition to my huge new laptop. And then I’d need to go see a chiropractor…

Speaking of my unspeakably busy weekend, I got the baby sweater done! I just have to scan it for kitty fur and wrap it up for the shower today. I’d wash it, but it’s too late for that—I’m going to instruct the prospective mother to do so before she has her little tyke wear it. It came out nicely, if I do say so myself!

Work Day 14: A little help from my friends…

Another day of wading through more tutorials and documentation. The Gosu Reference Guide, at over 400 pages, is the War & Peace of software documentation. I did find examples that one can try out in the Gosu Scratchpad, which I’m going to try tomorrow. I do need to figure out how I ended up with FIVE copies of scratchpad in Guidewire Studio, and how to get rid of them.

I grilled more people on where the devil documentation is for how the Gosu jobs hang together and which are used for what, but every SINGLE person I quizzed, including developers I greatly respect, all had the same answer — there is none. One just has to “figure it out.”

I may have to start writing some documentation, if for no other reason than to preserve my own sanity.

In the meantime, after said respected developers gave me their two cents, they did help me out. One went over our GitHub Wiki with me, and even encouraged me to submit corrections for the wiki concerning the developer setup (after struggling through the process a few days ago, and figuring out certain things the hard way, I had a few suggestions). Another sent me links for further documentation on our Spring Batch process. He even sat down with me and showed me how to set up Eclipse. The Spring Batch Integration jobs are actually set up with a bit more rhyme and reason as to what they are and which integration system they’re tied to, so I’m hoping those might be easier to understand…

The best part was that he me introduced to Tutorialspoint. He showed me the tutorial they have for Spring Batch, but I also found their one for Java! https://www.tutorialspoint.com/java/index.htm. I started reading through it and it has exercises. I managed to do the first few.

One day I hope to eventually code real stuff…Mr. GitHub Wiki assured me that “No one is going to let you code yet.” Apparently, the idea is that once I have a better understanding of Java and Gosu, then I’ll most likely pair-program or shadow someone at first, or perhaps do a small user story.

I suppose it’s only fair, seeing as I’ve (according to HR) only been on the job 7 business days…

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.

Work Day 4: What I did on my summer vacation…

Let’s be honest. I had the BEST summer EVER. I spent three months tackling challenging problems, creating websites, coding in different languages—all while indulging my love of knitting and crocheting by using that as the topic for for three major class projects. Oh, and I got to defer dreary, boring crap in my everyday life I didn’t want to do anyway.

Now it was time to show someone the results…today was my big presentation for my boss, my mentor, and The Alum. Before anyone arrived for the meeting, I fired up my home laptop, got the two servers up and running on their ports, brought up my final project, got PostgreSQL going, etc. All was right with the world…until I tried to project my laptop onto the conference room big screen. I watched that lousy little dongle flash white over and over and over again. When everyone arrived, they informed me that a non-company device won’t work with the conference room multimedia equipment. That makes no sense to me—what if you have a guest presenter?

Despite the fact that I find this insane, the fact remained that my laptop was NOT playing nice with the big flatscreen. As luck would have it, my mentor had already downloaded my capstone project to his laptop. He also had my GitHub code. I was able to do the whole presentation from his machine. Everyone loved the site! I was able to intelligently answer questions about the application and the process. I also walked them through my code for the final project, too. Overall, it went very well!

Now, I just need a functioning work machine. Last I checked on the tech site, my laptop is 20.59% done. I’m really dying to know what comprises the .59%…

Work Day 3: Waiting…

I looked up the status on my laptop through our tech site, and it’s apparently 17.62% complete. That’s a slight improvement over the 14.48% it was at yesterday.

More Pluralsight today. Fun times. The good news is that The Alum pointed me in the direction of Simon Allardice’s video “What is Programming?” We did view this one for our Code Academy pre-work, but she reminded me that there is a section on object-oriented programming. It did help me to better understand the quagmire that is Classes, Objects, etc. for Java. I peaked ahead on W3 Schools, and apparently there are also “packages” but I’m trying not to think about that right now…

I’ve also been looking at our enterprise GitHub to better understand the code. May we pause here to say that our application code is NOTHING like the tiny bit of code for the classroom assignments. By that, I mean if you decided to print out our GitHub, you’d probably take out the forest for an entire state, and that’s for ONE repository. There are several repos for our application. I couldn’t tell you how all this code interacts and relates to the site. In an effort to make some sense of it, I’ve been taking past user stories for our Agile team and trying to reverse engineer them, to see what was changed. The simplest one I’ve found so far was changed in two jobs—most changes involve at least four jobs. I think, once I get my laptop and can set up my environment, I’m going to need to have someone walk me through the code, to explain how it’s working.

From what I can figure out so far, the code appears to be aligned with the major sections of the application—natch. The repos appear to be aligned to the database groups/schemas. I’m familiar with those, as I’ve done lots of database-querying as a BA. What I may do next is to get out the data mapping documents to see if I can align the field names with the fields in the application.

Tomorrow is my big presentation. I’m going to be showing my mentor, The Alum, and my manager my final project from class. Needless to say, I’m going to need to bring in my own home computer…I suspect that running a client and server on my present work machine would be…less than successful…

Work Day 2: This is Taz…

…he’s currently more useful than I am. At least he can sharpen pencils.

I met with my Mentor today over Skype, where he got a firsthand look at how SLOW my current work laptop is. He quickly decided that I’m better off reviewing documentation, becoming familiar with our company GitHub, exploring other links, reviewing the code, and doing tutorials until my new laptop comes in. So, I did all that today. I continued reviewing the Pluralsight video and W3 Schools for Java…until they got to the part about “objects,” “classes,” “constructors,” etc. That sonic boom you heard clear across the cosmos was my head exploding.

HEH???

My plan is to go over all that again tomorrow, and hope that overnight, while I sleep, tiny elves implant understanding in my brain, because I have NO IDEA what the hell it all means.

Day 61: Showtime!

Today was the day our final projects were due. I managed to do my final GitHub push at a bit past 11:00 a.m. I had to add some SELECT/UPDATE/DELETE options on our SQL code we provided for alternatively loading data via MySQL (vs. PostgreSQL). Also, I had to beef up my README file a bit. Oddly enough, my README files are all the rage with my instructor and with my classmates…

We all did well with our presentations—everyone did a great job with their sites! Yours truly had some technical difficulties, due to not having used Skype in meetings for over three months now. For the life of me, I couldn’t get the damn “Presenting” bar to go away, so that I could switch browser tabs. It was the height of embarrassing, especially when one of my fellow students (who’s probably half my age) had to help me get rid of it. Other than that, demonstrating my site went well. If you’re reading, Mary S., I invoked you as a prospective knitter on my site, to walk through the functionality. I had you register for the site, log in, flake out, needing to change your email on the site, and then you decided to delete your account. I showed off my @ViewChild functionality code used to “Go to Top” without reloading an entire page—I’m probably too ludicrously proud of this, but it’s because I figured it out by researching for myself. I think that is our biggest takeaway from our entire training—learning how to tap every resource we can to figure out an issue.

I feel relieved the presentation is over, but disappointed. This is it for fun coding for the week. From here on in is the transition back to reality…

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 39: I think I can…I think I can…

The big project is coming along! I’ve managed to figure out most of the pages, except for the team edit page, which I should be able to finish tomorrow. I figured out the AJAX command to delete a member, which means I should be able to delete a team. I actually got functionality up and running where, when I create a new team, the server code grabs the new team data and stringifies it. In my page code, the data is then parsed to isolate the team ID. From there, I attach it to the URL to bring over to the team details page. This means you can create a new team, and then are immediately directed to your new team’s details page, where you can start adding members. I sent what I did to the rest of the class so that they could do this, too.

I then spent a good half hour in GitHub Hell, as I made the fatal mistake of switching branches (I was in the wrong one) without pushing what I had done first—which of course was what I just described above. Luckily, I had documented it all in my notes, so I was able to do everything over again. However, I somehow ended up with GitHub conflicts which I didn’t resolve correctly. The only way around it was to do a Git Pull—which, of course was going to hose EVERYTHING I’d just done with my team ID URLSearchParams. Thinking quickly, I copied my entire project to another directory on my C: drive, did the Git Pull, and then copied everything back into my project and pushed it again. This time, it FINALLY pushed to my repo successfully. PHEW!