Week 12

160523 – 160529 — Total classroom hours 14.5

What a week! I went full steam ahead into my first project, Bloccitoff (which I have changed to ToBoom for fun). Roughly 15 hours into it I have completed 5 of the 9 checkpoints! Now, there are a few caveats to this, like the first checkpoint basically introducing the project and I’m sure the stories will get more complicated as I go, but so far I am very happy with my progress.

Right out of the gate this project introduces a new gem, Devise. It seems to be an industry standard for sign in credentials, so I’m happy to be working with it, but at the same time it’s throwing a lot of curve balls at me. Initially I would really struggle when obvious tests were failing or actions were not completing as they should, but as Ive gone along I’ve come to realize when that’s happening it probably something to do with Devise, and after a bit of reading (and Googling, and Slacking) I tend to find the problem. All in all its great to have one gem take care of so many things, and I’m sure that the more I use it the more comfortable I will be with it and its intricacies.

Picked up a few nuggets this week, with the first being the Mailcatcher gem. I read so many ‘how to get Devise up and running’ online tutorials that I can remember exactly where I picked it up from, but it’s great. One feature of Devise is its email confirmation function, and where mailcatcher comes in is that you can set the parameters of the Devise to send to a particular SMTP, start the mailcatcher server via the terminal, and then point a browser window to http://localhost:1080 and watch the confirmation emails come pouring in.

I also was told of some great testing strategies this week while Slacking out a few problems. The first came about when I was testing what should have been a simple user verification test, but it just wasn’t working. I could see in the error that it was looking for a certain parameter, but no matter where I included it, the test wasn’t picking it up. I ended up running this command:

bundle exec rake db:test:prepare

which reset the db and, like a magic wand, the test passed on the next attempt. I ran into another issue just last night where I was getting a simple failure, but had no idea what part of the test was failing. This seems to happen often enough that I needed to find a solution, so I started digging, and posted the question on a few Slack channels. A fellow Bloc classmate introduced me to the command:

tail -f log/test.log

this gives a detailed output of what is happening at the db level and ultimately what is causing the failure. What I struggled with for hours before I was able to more accurately troubleshoot and we found the solution in a matter of minutes.

AND! The last nugget I came away with this past week was confirming that at some point getting up and stepping away from the problem can be an excellent strategy. I have a hard time doing this, as I always feel that I’m so close, a mere syntax correction away from the ever elusive ‘Aha moment.’ But earlier in the week, after digging myself into a pretty deep hole, I decided that I needed to step away and get some fresh air. After about an hour I returned with a fresh attitude and -kid you not, the first new Google search I performed showed what I thought could be the answer. Thinking it too good to be true I plugged it into the code, and BAM It worked! I just shook my head in amazement and continued plugging along.

It’s been a good great week. It’s a great feeling to see a problem and at the very least know what pieces need to come together to solve it. I’m not saying I did it all from memory, but I definitely gave it a solid effort, then would fall back on my previous project or the coursework to fill in the gaps. Very excited to continue pushing forward with this project.