Thursday, April 2, 2015

It's Over...

So, for the first time in months, I didn't open my laptop on Saturday OR Sunday!  This past Friday, 27 March, the winter/spring Iron Yard cohort of Charleston presented our final projects!  Each person was given the task to develop a web application that would expand our skills and we had just over 2 weeks to finish it!  In addition, we were given the option to complete the project in a group or go solo.  I decided to work with a partner since software is not made by an individual alone.

My partner and I created the Charleston Basketlist.  The Basketlist allows users to select their own personal bucket list of activities they would like to create around the Charleston area.  Users can comment on activities, see maps to get there and even add their own.  The application was built as a combination app of Ruby on Rails and AngularJS.  AngularJS was integrated into the Rails pipeline.  The final project is deployed on Heroku.

This was a great experience and I was able to learn quite a bit about AngularJS along the way.  I integrated the ngUpload directive to upload activity images to the AWS S3 bucket.  In addition, I worked on the comment feature which adds, edits, and deletes with no page refreshes.

Now I am currently looking for a position that will allow me to continue to grow but also give me the opportunity to join a team where I can make a difference.  Checkout my portfolio (work in progress) at http://graymd.github.io.

For my next blog, I plan to walk through setting up an easy Backbone.js application built on rails.  If coding interests you, shoot me an email...I love talking to people about code!


Saturday, January 31, 2015

Week 4...(WTF? It's week 4 already?!?)

I just wrote "Week 4" in the blog title...how is it already week 4?  The days are flying by so fast!  It's crazy to think after Friday is done, we will be a third of the way done with classes at The Iron Yard (TIY).  This week focused more on our hospital project

So...I started this blog post on Tuesday (I think) and it's already Thursday night and then next thing I know...it's Sat now night!!  These days are going by in a blur.  This week we have worked on some more rails concepts.  We have created join tables and polymorphic relationships.  Join tables allow you to create many to many relationships.  Polymorphs allow you link something like a comment to many different tables in a database.

Tuesday we got to learn about bootstrap.  Bootstrap is a really amazing Open Source Software (OSS) tool which means anyone can use it for any reason for free.  What it does is adds some really sweet CSS styling and allows for you to easily style your website.  However, the coolest feature (in my opinion - and remember I've only used it for 2 days) is the fact that you are able to easily create grids to put information where you want on the screen.  Anyone who has ever messed with HTML and CSS knows how much of a pain in the ass it can be to get things in just the right spot.  Bootstrap greatly simplifies this painstaking process.

On Wednesday we got a slight reprieve from the firehose of information and learned some pretty cool shortcuts.  The TA for the front end (Javascript, intensive HTML/CSS) taught all the students some really awesome things you can do in Sublime Text (our text editor of choice).  One of the coolest features he showed was the ability to program your own hot keys.  He had programmed in a hot key where when he typed in "rs", Sublime would automatically translate that to "<%=" (operator used in embedded Ruby).  However, this operator ended up becoming obsolete this week since we switched from embedded Ruby to HAML.  We also learned about Foundation which is another tool like bootstrap.  I haven't actually gotten to play with it yet but it looks pretty sweet!

Thursday we were given a big new team project.  We were assigned to groups of 3 and given the task to build a working site that looks good and incorporates CRUD (create, read, update and delete - databases).  My team decided to create a Gym Management System consisting of CRUD for "trainers", "workout programs" and "members".  Our goal is to link these different areas with Join tables and utilize user authentication for employees to edit these areas.  Another piece of the project is for us to fork a repo, make changes and then push requests.  Well, the first submit caused a merge conflict.  A merge conflict occurs when 2 persons (or more) have edited the same lines in a file.  The version control software (git) doesn't understand where to make the change when the files are merged together and just stops.  It's a major pain to merge the files back together (not because it's hard but because I'm new to this); however, after about 45 minutes the team was able to figure out the fix.  I have to admit it was more Brute Force in getting the merge to work than it was in actually figuring out how to do it.  I hope to have a few more merge conflicts so I can figure out exactly what we did to fix it.

One other cool item we learned about this week was devise.  Devise is a gem (ruby code someone wrote that makes things really easy) that makes user authentication really easy.  I hope to spend some more time working with it since it's so powerful.  All you have to do is install the gem and you can create users, start login sessions, close login sessions and even enforce authentication with a few simple lines of code.  Cool stuff!

All in all this week was another great week at TIY.  I can't believe how much I have learned in the past few weeks!  It's awesome!  If you're interested in checking out my code, check out my GitHub repo: graymd.  In the meantime, I am excited to have a low country boil with some friends tomorrow- while I love football, I may love food more than either team playing in the Super Bowl tomorrow! Until next time...see ya!






Sunday, January 25, 2015

3 Weeks Down

Wow!  What a whirlwind the past three weeks have been.  I promised myself I would start blogging a few times a week and...well 3 weeks are gone and I posted once (late)!  For those who don't know, since January 5th, I've been attending a programming bootcamp learning backend website development (Ruby on Rails) at The Iron Yard (TIY) in Charleston, SC.  I always wanted to get into programming and TIY is a three month full throttle bootcamp which takes you from little to no experience to a (starting) junior developer.

During the first week of the program we learned Ruby.  Ruby is an object oriented programming language which has a very powerful web framework called Ruby on Rails (think lots of data moving around in the background like a bank or tracking system).  In that first week, we learned methods, arrays, hashes and classes.  Our end of week project was to create a little horse race using classes in Ruby.  This project took quite a bit of time and I ended up dreaming about horses for a few nights.  I admittedly still don't fully understand classes and how to utilize them but each day I learn and understand more.

During the second week of class we jumped into web design - HTML and CSS.  On Tuesday, we had a guest speaker who came in and replicated the "Chrome Momentum" home page.  It was very interesting to see how he worked through the design of the page.  Our homework that night was replicating our individual Github repo page.  The page looks simple at first glance, but WOW!  It took forever and I was nowhere near finished at midnight that night!  The last 2 nights we worked on web servers in Sinatra.

During the third week of class we jumped into Ruby on Rails (most people just call it Rails).  By the end of the week we had practiced working through CRUD (Create, Read, Update, Delete) quite a few times.  The end of week project was to create a website which allows for the tracking of hospitals/clinics, patients, and medication.  Each hospital has patients who each have their own medications.  There are three separate databases created inside our project and they have the appropriate relationships allowing a set of medications for one patient who is part of one clinic.  The page is very crude at the moment but (I think) we will continue to build upon this project over the next week or so.

Well that's a quick recap of my first 3 weeks at TIY.  So far, one of the best experiences I have been a part of.  I used to dread going into work each day at my previous job.  Now, I can't wait for the next class day to come to learn something completely new.

Oh and I can't sign off without mentioning how AWESOME Charleston, SC is and our experiences!  If you've never been to Charleston, SC before, book a ticket right now!  The scenery is surreal and the food is out of this world!  Stacey (my wife) and I currently live downtown in an area where we are considered SOBs (South of Broad) [what the heck, we only live once].  We are just a few blocks from the The Battery and have made it a point to walk the dog there each evening.  On the weekends we have done quite a bit of exploring and a little too much eating!  Hominy Grill has some fantastic food options and has been on the food network.  I don't think you can find a bad place to eat in this town...the restaurant would NEVER survive.  Today, we got to go on a free mule driven carriage ride through the area we live in.  The history in this town is amazing.  There's so much here and Stacey and I couldn't be happier with the decision to move here!

Well, here's to hoping that I will make another post before the end of the week!

Tuesday, January 20, 2015

Day 1 (from 5 Jan, 2015)

Today was the big day!  The End of an era and the start of something awesome.  Today was the first day at The Iron Yard and it was great.  First off, I learned quickly that Charleston traffic can get pretty hectic!  There was an accident on the main bridge (Ravenel) from where I’m staying over to The Iron Yard and I was late to my first day of class!  Luckily, there were quite a few others who were late as well so class started just a few minutes late.  After a quick around the room for introductions, it was right into programming in ruby.  For the class we will be using Sublime Text 2 as our text editor and iTerm as our terminal.  We began class with some of the fundamentals of macs and getting around in the terminal.  After that was complete we walked through 5 different function types: integers (numbers without decimal places), float (decimal places), strings (text), trueClass (boolean), and falseClass (boolean).  We used a few different methods against each of the different types.  For HW we were assigned to use 5 new methods against each of the different types.  Instead of going for some of the easier ones, I spent some time and used some of the more obscure methods like: num1.gcdlcm(num2) which gives the greatest common denominator and lowest common multiple for num1 and num2.  I also made some really dorky if statements like:
#true ^ obj -> !obj (or)
puts “What’s your pets name?”
pet = gets.chomp
if pet == “Maddie” || pet == “Kitter”
puts “That’s my pets name too!”
else
puts “That’s not my pets name!”
end
#if input is one of my pets names then returns “That’s my pets name too!”. If not, returns “That’s not my pets name!”
All in all, the first day of class was a very good experience.  I know things will start ramping up very fast but I am looking forward to the ride.  Can’t wait to see what day 2 holds…I think we will be talking about git and github along with some more ruby!