Day 67, Meteor workshop

Finally got a chance to go to the Meteor workshop. Amazing. Heard great talks and became to appreciate even more. Tuhin from our class actually went on to give a lighting talk. He was a natural public speaker and did a great job.


Day 65, promises

I have learned how to use promises in the client project and I spent some time teaching our current team members on how to use it today.

Basically, you create a deferred object, and return it(*). The promise or the contract is that, in the future, when the object changes its state from pending to resolved / rejected, the object will call its corresponding methods such as: object.then().

* means that the actual returned object is a sealed version of the object, meaning the receiver can observe, but can’t change its state by calling: object.resolve() or object.reject().

From my teaching experience, I feel like nobody gets the concept the first time, but everyone loves it once he finds out what is going on. I can’t imagine a world without promises…


Day 64, first demo for group project

We did our first demo of the group project.

It was amazing to see that most projects made significant progress over the last four days. My favorite ones are: the speaker – an web app to allow anyone to request the mic in a conference, and the SnapChat with geo-location.


Day 63, awesome bonfire

Last night was social night, and we went to have a beach bonfire. It was amazing, in fact, so amazing that tons of people stayed well after 10 pm. We played frisbee, cooked hot dogs and chatted. It was fun to get to know people outside of the class, and as always, I was pleasantly surprised by people’s previous experiences.

Group projects:

– Barry made the logo. It looked great.

– I spent a couple of hours trying to get most of the Backbone views in place. After using Backbone in a couple of projects, it was no longer foreign to me. I was just trying to make sure that we were following the best practices. Compared to Thorax.js, a framework on top of Backbone, I felt like that I don’t mind doing all the wiring by myself. Or in general, I don’t mind writing boilerplate code at all, since it feels safe to know all the things.


Day 62, mind blowing comments

Can you believe that deleting comments will actually break code?


yo backbone generator read this comments from Gruntfile.js and determine the template engine that it is going to use:

// templateFramework: 'handlebars'

If you delete that commented line, it will use the default ejs instead of hbs. Mind blowing!!!


Day 61, dummy HTML page is up

End of the first sprint. Horray.

We didn’t make much progress today, mostly due to other activities, i.e., one lecture from Marcus on server architecture and another fireside chat with Nats from Groupon.

After spending a couple of more hours, I finally made the grunt file to work. It does two things:

– compile/concat JS, Stylus(CSS), HTML files for Backbone. Re-compile upon file changes.

– start Express server, serving those compiled files and other dynamic API end points. Re-start Express server upon server side file changes. This is still not ideal, given the live reloading in the browser doesn’t seem to work. However, it is good for now and let’s start coding.

Stephen made the Linkedin login to work. Barry made one HTML page with foundation. Hao made the Handlebar work in the server side. I did Grunt, helped Barry to install Stylus, and tested Backbone views.

Our working product is a HTML page with buttons which don’t do anything yet.


Day 60, started group project

Really like the team, Hao, Barry and Stephen. It is going to a cool ride.

The idea is Indeed meets Linkedin.

After consulting with our tech god Larry, the tech stacks are:

Front end: Backbone.js + Handlebars + Stylus

Back end: Express.js + MongoDB

Utils: Grunt.js + Yeoman + Asana

I volunteered to be the project coordinator. We spent two hours in defining the end project, milestones and tasks for each sprint. We decided to do a 2-day sprint, similar to the class schedule. Each milestone has 3 sprints and the entire project has two milestones, basically two weeks or 6 sprints.

Spent a couple of hours to get Grunt up and running, but can’t get the reloading to work.


Day 58, failed TechCrunch interview

TechCrunch is in the house. Ricky and I were going to demonstrate our finished project to TechCrunch, but it was called off by the client at the last minute. Ricky, Adrian and I were trying to convince the client to accept the opportunity, but we failed. Oh well… Things happen. Honestly, we are proud of our product, and I think it will help the client, the school and ourselves too. Oh well…