Thursday, December 31, 2015

Day 50.5

Recap of Winter Break


Winter break is almost over and I have finished over the time:
  • Relearned and added some features to Secret Santa Project
    • Still requires the random generator.
  • Did not do anything for the MEAN project.
  • Read through and did the first chapter of the iOS stack.
All in all, I should have done more but with so much of my break planned and the school not being open, it was hard to get a lot of good work done. Fortunately (for me), my MEAN group also had a lot of holiday plans so we didn't make a lot of headway there implementing the project but I think everyone has an idea of how they want to get their piece of the project done. We'll reconvene after the iOS to finish up everything.

Friday, December 18, 2015

Day 45 to Day 50

Winter Break + Plans

When I first signed up for classes at the Dojo, I was pretty confused why my second stack would only have 3 weeks but I realized the 4th week of every stack is reserved as a project week. Our Python stack got a bit behind so instead of a full week for group or individual project, we only had a one day hackathon. For the MEAN project, we were to work solo or with others over the course of Winter Break. I joined a group with Colin, Maric, Sarah and Raul. Our project is known as a MEAN Screen where we users can register and login to, essentially, an online theatre with group chat abilities. My part of the project is figuring out how the web server is going to broadcast a real time video.

Unfortunately, through my research, it seems this time of feature is precisely what HTTP is not really supported for. But an alternate method of this I found, is to have a user broadcast a stream. Now this is different in a couple of ways because it doesn't require the video to be put on the web server. Instead, the source of audio and video are on the users' side and the only thing to do is make a link that has the broadcast embedded. Anyways, that is going to be my contribution to the project. Although a lot of the members, including myself have Christmas plans so I don't know how far this project is going to get off the ground.

Also, my last stack is going to be iOS. From hearing the instructors, iOS is the hardest stack so I'll probably plan on getting a jump start on the learning platform sometime during the break. I intend to relearn a bit of Python and the Django framework so I can finish my Secret Santa project to post on GitHub. Hope all the readers have a good holiday break!

Day 44

Deployment and MEAN Black Belt


This morning I learned how to deploy via AWS (Amazon Web Services). I think usually, students deploy via Heroku (although there are a bunch of options to deploy). Heroku is very simple, you create a deployment server and git push your project unto that server where it will automatically run. Once you write 'heroku open', it will open up on your browser your project and if everything ran right, the project will load with its own database. AWS deployment is similar, but a lot more work as you have to go on the AWS site to launch a new instance of your project. Then you go onto your ubuntu server, type in that specific instance IP which will send you to a cloud server. The instruction had us go into a specific directory where we have to install node.js and changing to another directory to git clone our project from GitHub and finally linking our project into another directory and finally starting the server that way. Oh, and there is another public IP that your AWS instance gives you, which is what you use to share it publicly. And that is how AWS deployment works..don't know if I'm going to deploy on AWS that often.

Now onto the black belt. I was pretty nervous for the exam since I thought it would be a lot harder than the red belt and I was not very confident in my MEAN skills besides finishing up the Discussion Board assignment yesterday. Upon unlocking the test however, it wasn't as bad as I thought it was. The only thing I haven't seen was the use of time to act as data that needs to be manipulated to have certain functions. I got almost all the features but during the last hour and a half, I was attempting to plug in the last feature and it broke my code and I spent the remainder of my time desperately trying to fix my code. At one point, I was reading a function name and its code and....I had no idea how it related to the flow of information between my client side and my server side. Talk about a brain meltdown. Anyways, although I didn't get a perfect score on it, I was reasonably happy that I was able to solve a lot of things that I didn't have prior experience with.

Wednesday, December 16, 2015

Day 43

DONE WITH MEAN!


I finally finished the last assignment for MEAN. Discussion Board is by far the longest work I've done so far. It makes me really appreciate all the web sites that have basic associations with each other. But the biggest gem in this assignment is deep populate. Thank you Buu Nguyen for creating a brilliant module that dives into nested objects in schemas. Essentially, waaaaay back in Python when we played around with the Google Map API, the returned json was a huge object that contained a lot of information. Each of the information nested in those objects or arrays or whatever all had information that can be extracted. I dug myself into a whole thinking I had to do just that writing a lot of get/show methods. With deep populate, I just populate all the nested information easily and can access them via embedded Javascript.

My next assignment is to learn how to deploy and right after that will be the black belt. Wish me luck!

Tuesday, December 15, 2015

Day 42

End of Full MEAN


As of now, I'm 60/70% done with the last assignment. Gonna crank it out tonight. To be really frank, I feel really burned out. If you asked me last week how I felt, I would say pretty damn good. Going into full stack MEAN was a huge jump, not in difficulty (although there is a gap) but in how much patience is required. Sometimes I get so absorbed in how the information flows that I overlook a lot of syntax errors. And because there are so many files, you have to check each one to make sure the flow of data is correct and after hours of doing this, it can get really tiring. 

For our black belt, we know that we're gonna have the following being tested:
  1. Login/Registration 
  2. Validations
  3. Associations in Mongo
  4. CRUD operations
And, as I've said before, it's nothing new. But adding them all together can really wear out someone's patience simply because the task is pretty ginormous. I wrote that during the Red Belt Exam, it felt like the 4 and a half hours flew by. And I feel like this time it's gonna be even more so since we only have 4 hours. And on top of that, we have to deploy our project. But this is what it means to be a programmer; to really love what you're doing even when you would prefer not to. So let's go. I'll update you guys tomorrow on deployment.

Monday, December 14, 2015

Day 41

Last week of MEAN


Starting the last week of MEAN, I had almost finished the mini-store assignment over the weekend. It took me a while to finish all of it because of the validations. We were shown how to do validations with ng-messages but I found a more bootleg way that resembled how we did flash messages in Python: write the validations in the client controller file and have an error switch. For each error switch, have a span that writes out the error messages via ng-show. Ng-show allows the span to be hidden until the expression that is written is shown to be true.

We have our Black Belt exam on Thursday. I plan on finishing the last assignment (which is supposed to be really similar to our Black Belt) by tomorrow and start learning deployment of projects. 

Friday, December 11, 2015

Day 40

Trying to finish MEAN!


So basically this weekend will be devoted to finishing up MEAN. I have 2 more assignments to go and it should be pretty good feeling done with most of the coursework. The tricky part about MEAN is how many pieces it has. In a way, it feels like a house of cards. When everything goes right, you have a web app that doesn't require page reloads and you can do a bunch of cool stuff with it. But if there's any syntax error that clogs the flow of information, then everything breaks. A good thing to learn is to console log all the possible error spots which are usually in Angular. The one thing I forgot to mention about Angular is the importance of callbacks. Before, we didn't need to do callbacks in our factories because we have the information at hand but now, callbacks are extremely important because adding something into a database, we want to callback the response from the database. So building an app in MEAN takes a long time to get it right but here's to going!