App #2

Today is the last day for our project #2.  Monday we start fresh on project #3.  I met the basic objectives for this project which consisted of creating a CRUD app with RESTful routes and incorporating authentication.  We used bcrypt and salts for authentication.  

There are still several functionalities I’d like to add to this app.  Right now I have google maps incorporated into the show page for each restaurant.  It’s using the latitudes and longitudes that I hard coded into my seed.rb file.  I want to have google maps display by address.  I will work on that today.  

My “create a new user” is working and folks can log in successfully.   However, there isn’t an action on the website itself that folks have to login to be able to use.  

For the next project I’m going to worry less about the styling and CSS initially.  I found that when I’d get stuck on the logic portions of my code that I’d soothe myself by switching gears to work on styling.  It is a welcome break and it’s fun, but next time I’ll treat CSS more as icing on the cake.

Pair Programming

Tonight I attended a pair programming night at Pivotal Labs in Santa Monica.  I offered to work on my GA app project and was teamed up with an experienced programmer.  I learned a lot, but it was a humbling experience.  He asked me about active record and how I’ve been testing, but we haven’t yet gotten that far.  I immediately felt like I was wasting his time.  Instead of helping out on something cool he was stuck with the rookie.  He was kind (and patient!) and introduced me to a GitHub repo with helpful Ruby exercises (https://github.com/JoshCheek/ruby-kickstart).  As experienced as he was, even he learned something about new about Ruby (that you can use underscores for commas in numbers as in 1_000_000).  It was a nerve racking night, but I hope to look back on it as a growth experience.

Comfortable With Being Uncomfortable

One of the biggest lessons I’ve learned so far is to try to be comfortable with not knowing everything.  They’ve really tried to stress that here at GA.  The developers I’ve talked to seem to be ok with not knowing an answer to a question.  Our instructors are brilliant, but they often don’t know the solution to something.  We get to see their process for figuring stuff out when they don’t.  But, more than the process, we get to see their attitudes and demeanor.  The panic button is never pushed.  I’m kind of a perfectionist and I’d get easily frustrated during my first project when I didn’t know something, which was often.  Sometimes I didn’t know what I didn’t know.  This class has taught me patience and how to take it easy on myself as a developer.  

Bootstrap

Today we’re learning about Bootstrap and SASS.  We got a quick overview last night and I’m really excited to incorporate it into my projects.  Bootstrap is a framework to quickly get new projects up and running.  I’m amazed at the functionality and I can’t wait  to *hopefully* give my apps a more professional feel.  We also saw a comparison between ERB and HAML.  HAML looks super powerful, but we’re focusing on ERB in this class.  We’re allowed to incorporate it into our projects though.

Mongo DB

We began project #2 this week.  We’ll be using Rails with Mongo DB.  For our project, we have to include a database and a login.  We must build a CRUD app.  I plan to create an app that will find restaurants in the LA with a zero or low corkage fee.  Once the user types in a zip code and chooses a restaurant I’ll show them wine stores where they can pick up a bottle on the way to the location.  Folks can also login and post new restaurants or change the info for current listings.  If I have the time I want to do wine pairings based on the type of food.  

Heroku

Friday we deployed our tic tac toe apps to Heroku.  Mine had some issues.   Initially, my pics wouldn’t render.  I had to change the nomenclature on my CSS page for the background and hover images to load.  I also have images on my HTML and Angular pages.  I had to convert my click boxes to ng-show and ng-hide.  A classmate of mine was encountering the same issue and she taught me her fixes.  However, as of Friday night my images still weren’t showing properly.  It was then that I noticed that my changes were not updating on Heroku.  I’ll see if I can get some help tomorrow to re-deploy.  The changes seem to be working on my local host.  I don’t want to spend too much time making fixes when I don’t know what works where.     

Firebase

Yesterday we added two player functionality to our tic tac toe apps with Firebase and AngularFire.  It was incredibly powerful stuff.  For our purposes, it’ll allow two players to play the same game from two different browsers.  Today we worked on creating “rooms” for when more than two people try to join the game.  We had to add Angular code that would create a queue for folks waiting to play and a new game room once there are two players in the queue.  

I figured out some CSS tricks today for my game.   I used ng-show in Angular to reveal custom divs for win, lose and draw.  Tomorrow I’d like to add an initial div that will serve as a clickable welcome screen to start the game.  I’d also like to add the AL fight song and a variety of win, lose, and draw divs.  I’d like to add an Auburn matchup with a custom helmet “O” playing piece and win div.  Right now I’m using Oregon for my “O” which worked out since we may play them for the championship.

I plan to create another version of the game for my niece and nephew.  I can use their pics for the X’s and O’s.  I’m excited to see exactly how modular the game can be by subbing in a few new pics, but keeping the same game logic.  We deploy our apps tomorrow and I’m eager to get feedback from my friends and family.

MVC

We dove into MVC in angular this week.  I’m still trying to wrap my mind around the concept.  I’ve been googling resources and tutorials to gain a more solid understanding.  It amy be a bit simplistic, but I mentally explain it to myself as a Word doc mail merge.  The data binding capabilities are pretty cool.  

My goals for this week are to solidify my understanding of JavaScript and Angular with external resources.  Our class goals for this week are to add functionality to our tic tac toe game to play against the computer.  Currently, my game is only Oregon vs. Alabama.  I’d like to make it so the player can choose his/her team helmet- Alabama or one of Alabama’s opponents this season.  

Additionally, I’m going to keep working on my touch typing and on using as many shortcuts as possible.  

Angular Part 2

Today we migrated our tic tac toe game to the angular framework. It took me a while to get the CSS elements to load correctly. I’m still grasping the model view controller set-up. I will have to rethink my game logic to fully take advantage of angular. In my prior iteration, I had alerts for wins and draws. I’d also worked out the 8 win conditions (3 rows, 3 columns, 2 diagonals).

For a draw, I set an alert for when 9 clicks have been made without a win since 9 clicks will fill all of the boxes.

I feel as if I haven’t yet learned to sing (i.e- learn JavaScript), but I’m already learning how to use auto-tune (i.e.- angular). I know that I’ll continue to practice JS on a daily basis so it will sink in eventually.

Angular

Today we had an install session with angular.js, node.js, and Yeoman. I’m still getting comfortable with JS, but I can already appreciate the power of angular.js.  We played with the data binding capabilities for a tutorial.

After class a couple of us hung out with one our PAs and asked questions.  He’s been coding since his early teens and is truly brilliant.  I feel like he’s a classically trained pianist who has been working on his craft since childhood.  I’m someone who can’t play piano necessarily, but knows how to create a song with midi and quantization.  I can “hack” a song, but does that make me a programmer?