Project 4 (times 4)

What is project 4 you ask?   I've been working on my Full Stack Developer Nanodegree from Udacity.  To pass the class there are a series of projects that you have to work on independently and submit for code review.  If you your application meets the specifications, is written well, etc.  You pass that project.  I'm starting Project 4, and "Item Catalog".  

The item catalog has a few reqs.  

  • Has to CRUD (Create, Read, Update, Delete).  Which means persistence must be maintained in a database.
  • Users need to be authenticated via OAuth2.
  • Authorized users should be able to create, update, or delete items.  
  • It doesn't require the ability for users to create categories, but I'm adding that (seems silly to be locked into a set of categories).
  • Must have RESTFull endpoint delivering JSON output for the items and categories.
  •  Styled with CSS/Javascript.  
  • I *may* add comments as well (not a requirement)
  • Delivered as a Flask app in Python with CSS and JavaScript

An "Item Catalog" sounds super boring.   They gave a sporting goods catalog as an example.  So, instead, I'm going to write a Pintrest type clone.   My items will be images and I'll categorize accordingly and I'm going to attempt to style similarly to Pintrest.  I figure that will add to the challenge.  I'm ahead of schedule at this point, so I have some extra time.  

To add even more of a challenge and give some good real world experience, I'm going to develop the application in four frameworks in parallel.  

  • Flask  This will satisfy the class requirement.  It's Python based and is more of a bare bones framework with very little "magic".  I will have to pretty much code everything.  
  • Django.  This is the most popular Python based web framework.  Pretty feature rich with quite a bit of automation, but not really "magic".  While flask is awesome, I'll probably encounter Django much more in the real world.  
  • Ruby on Rails.  Probably one of the most popular and successful web frameworks out there.   I've not written a stitch of Ruby (other than the DSL from Puppet).  So this should give me some exposure.  Lots of Magic.  Convention over Configuration.   Kind of opposite of the Python idiom.
  • Express or some similar NodeJS based framework. My boss is big on NodeJS.  After playing with it a little and reading the docs, I can see why.  Certainly seems like a very fast platform.  Also makes for great RESTful services.   First goal of this project is to pick a framework.   I'll post what I chose later.

So... I'll maintain the code on my github profile if you'd like to follow along.  I may spin up some AWS instances to demonstrate each later.   Wish me luck!

2016 New Year Goals

I don't like to use the term "New Year Resolution" because when you resolve to do something you are pretty much saying you have to do something.  This puts you in a success or fail scenario.   No one wants to fail, so that means you typically create resolutions that you can achieve.   We don't always achieve them, but we can.   

I prefer to set goals.   Goals are a bit more fluid.   You can set goals for things you are confident that you can achieve as well as goals that will stretch you.  The good thing about goals is that even if you don't achieve them, they may still move your forward.   That's at least how I see things.

So...  here are my goals for 2016.

  1. Get in the best shape of my life.   I started this goal a year and a half ago when I was diagnosed with Type II Diabetes.   It was a shocker and an eye opener and I started my journey to getting healthy again.  I started hitting the gym and eating better and now my blood sugar is under control.  It's time to take it to the next level.   So.. what will I do differently?
    • Eat better.   I started eating better after my diagnosis, but not as good as a could.  My goal is to eat less bread, less simple carbs, and more whole fruits and veggies.   This will not only help control my blood sugar, but will also allow me to burn fat easier.  Your body won't burn fat with exist insulin in your system.  So, the diabetes is fighting against my efforts to lose weight.   It's time to fight back harder!
    • Better endurance.   For the least year and a half I've been hitting the gym 4 days a week and lifting heavy.  This has done wonders for my metabolism and how I look and feel.  However... I still have about 30 lbs to lose and I don't feel overly athletic.  I can squat 315, but I can't run a mile without stopping.  Time to change that.   This means more athletic type exercise like Tennis, running, swimming, and maybe even martial arts.  I'd also like to incorporate some yoga as my flexibility sucks!
  2. I want to become a software developer.  This again is an extension to another goal.  (It's good to have longer term goals!)   About two years ago I decided I was going to teach myself how to program.  Now, I've been in Info Tech as a UNIX Systems Admin for about 18 years.   So, I've done my share of scripting (shell, perl, etc).  However...  I wanted to learn how to properly write programs.  Plus, I needed to do more advanced things as part of my job so it just made sense.  So, I chose a language to start with (Python) and started learning.   I quickly fell in love with programing and I'm still learning as much as I can on a daily basis.  This year, I want to move to more development heavy tasks at work.  What will it take to reach this goal?
    • Learn, learn, learn.   I've been taking courses online and I typically spend about two hours every afternoon taking the class, studying, and programming projects for the courses.  I have committed to the most aggressive part of my training yet for 2016.  I'm aiming for becoming a full stack developer, although it's the middle & backend work that interests me the most (writing API's, automation, application logic, etc).  
    • Convince my boss to let me do more development work.   We have a broad range of skills in my team.  We have system admins, architects (me), and developers.  As an architect, there are a lot of development to be done.  I need to either convince my boss to give me more of those development type tasks OR convince him to move me to the development side of our house.  
  3. Kick butt at work.  2014 was a pretty good year for me at work.  2015 was weird.  We went through a lot of transitions at work and I don't feel like I did my best work.  I don't do well when I'm not doing my best.  It's kind of a downward spiral for me.  I tend to feed off my own successes or failures.   In the case of 2015, I just felt a bit stagnant.  So, regardless of goal #2, I need to do great at whatever tasks I'm given.  This will also pave the way for the direction I want to go with my career.   

 

Avoiding Death

This image says it all... this was my motivation to get started when I finally went to the doctor after 5 years without a physical and she tells me I have Type 2 diabetes (A1C was over 11 and fasting blood sugar was in the high 400's) and critically high blood pressure (200/100). Anyone who knows well knows I hate medicine and do not like going to the doctor. And here I was with a stack of prescriptions and my doctor telling me I was going to die if I didn't make dramatic lifestyle changes. I broke down in her office. I was literally in tears. She gave me a big hug and told me I could do this. 

The next day I joined a gym and had a salad for lunch. I started reading "Diabetes for Dummies" and everything else I could get my hands on to learn about what was happening in my body. It took a while, but started learning what to eat and what not to eat. What foods I though were healthy, but weren't (like granola bars, bagels, etc). I started to lift weights and being more active. It was a slow ramp up to where I am now. 

Today, I prep my meals for the week on Sunday. I eat almost all organic, from raw fruits, vegetables, and lean meats. I work out and lift heavy 4 days a week. I try to get in 2-3 additional cardio sessions per week as well. 

This morning was my 4th follow up with my doctor since that awful day that I got the news. I've dropped over 30 lbs. I've added a lot of lean muscle. Here's the best part... my A1C is now 6. This is non-diabetic. She walks in and opens with... "So, do you want to start weening yourself off the diabetes medicine?" HECK YEAH I DO!!! She said I was a rockstar for the changes I've made. My blood pressure was 130/80. She wants it to be 120/80 or better, but I'm close. I'll be staying on the blood pressure meds for now.

I haven't reached my goal, yet... but I will. If you read this far, let me just say this... don't let your health slip away. It's one of the few things you can actually control in this life. Eat healthy, exercise vigorously every day, relax HARD! It's definitely worth it!

Special thanks to John-Jana Mier for guiding me through the initial process of both weight training and nutrition. Huge things to Heather for being the best encourager on the planet and letting me spend obscene amounts of money on really healthy ingredients, keeping my gym clothes washed and all my shaker bottles washed, and especially for ooh'ing and ah'ing over my muscle gains. Nothing will drive you to the gym faster than a beautiful woman that wants to touch your muscles!!!