Bitmaker Labs – The Final Two Weeks

In the final two weeks of class, lectures almost become sort of “optional”. Everyone is so busy with their final projects, that any free time that’s available is used up for more work. This has certainly been true for our group.

During these two weeks, we saw each other almost every day, for 12 hours a day. This was really an experience of its own. A lot of good times were had. From talking about design choices, to then getting into arguments about which javascript library to choose from, we were constantly talking or coding.

We ended up dividing the work pretty evenly. I did the front-end and parts of the back-end. Natalie did the majority of the back-end. Eric did all the copy writing, marketing materials, and service info. Each of us drawing from our expertise.

Once we were ‘done’ with our two weeks of time, we gave a presentation that was well received. A majority of our peers want us to pursue this project and make it into an actual business. We’ll see about that.

Bitmaker Labs – Day 34

Today was actually pretty fun. We used Geocoder, which is a ruby gem that takes physical addresses and gives you their longitudes and latitudes. You can then use those coordinates to populate google maps easily with exact accuracy. This might come in handy for our final project, but I’m not sure yet.  Anyways, crowd funder is almost done, so I’m going to go and finish coding it. It’s all about priorities :)

Bitmaker Labs – Day 33

Today’s lecture introduced us to a gem that enables us to tag things and produce a word cloud from it. Kind of like how I have been tagging these posts under “bitmakerlabs”. Nothing really exciting in terms of class, but outside of class our crowd funder is now basically MVP ready. Users can join, add campaigns, and back other campaigns at different tier levels. We’ve also styled it with CSS, so it looks decent too. Anyways, back to coding!

Bitmaker Labs – Day 32

Today we learnt about Sorcery, which is a nifty Ruby gem that does user authentication for us. Up till now we’ve always manually done it using bcrypt, and oh my does Sorcery make it so much easier (and more secure). Not only that, but it also takes care of user activation, sessions management, as well as cookie management. Needless to say we’ll be using it a lot going forward.

After sorcery, we dived a bit into name spacing and how we can use it to build a backend view for admins using a web app. Basically, it means creating a dashboard for administrators that’s separated from what users are able to access. A user for example can edit his account at : http://www.example.com/users/mfarazi. A name space basically routes all that for admins and provides them whatever super powers you code for them. Then they’d be able to access other users and do whatever to them by accessing: http://www.example.com/admin/users/index.

All that aside, we’ve been kicking ass with our crowd funder app, and are really excited with it. We decided to skip Sorcery for now since we already wrote a user model via bcrypt. Now we can at least deliver a functioning app first, then do the fun stuff like Sorcery later.

Bitmaker Labs – Day 31

Today we learned about Action Mailer, which allows us to send out emails in Rails. This is pretty neat and is really important when setting up your own user model. Why? Because you want to be able to send users confirmation emails and so forth. We didn’t really focus too much on Action Mailer, as there’s plenty of guides for that. The majority of the lecture instead was spent on git workflows and branching.

Up till now, we always worked within our master branch in git and never thought of anything else. Today we learned how valuable branching is, and how easy it is to then just merge our branch back to our master branch. Easy being only easy if you don’t have any merge conflicts ;)

Today was also the start of our crowdfunder app, which is a clone of Kickstarter. I’m working with Eric and Natalie on this project. They also happen to be my teammates for my final project.

Bitmaker Labs – Day 30

Today was a pretty cool day. We spent the entire day just testing jQuery animations, and making a game out of it. jQuery animations are fun, but they’re pretty slow when compared to CSS animations. Fortunately for us, getting jQuery animations working is easy. Getting CSS animations working on the other hand is not easy. It’s hard for me at this point to create them from scratch, so I resort to looking them up online. At least I’m resourceful!

The lecture itself was explained well, and I could follow along without issues. I don’t think I’m able to replicate everything she did straight out of the box though. I’m going to try it this weekend and see how far I can get. This is something that I’m surprised not many students do here, which is go over the material after class on their own. Oh well.

Bitmaker Labs – Day 29

Today was unlike any other, all we did was theory! Well, not entirely, but we talked a lot about optimal asset pipeline planning. In a rails app, everything is categorized into a folder structure. There’s a folder for the app, for the HTML pages, etc. There’s a set way to organize files, which is one of the ways that helps make Rails a powerful tool for fast prototyping. Following an optimal structure means planning your asset pipeline well.
Important lesson of the day:
//= require_tree . and //=require_directory are important to get right, and in the right order, based on where  your dependencies are.  require_tree asks Rails to search the subfolders and execute JS files in there. require_directory does the same thing, but in the main JS folder.

Bitmaker Labs – Day 28

Today we continued learning about AJAX and different scenarios in which to implement it. It’s still weird trying to implement AJAX; it’s coming down to memorizing a certain way of writing an on event. Today is going to be short, gotta catch up on assignments.

Bitmaker Labs – Day 27

Asynchronous JavaScript and XML(AJAX), now I finally know how you work. I can’t replicate the code to make you work, but I’ll get there. AJAX requires a different mindset than Rails, so it’s a bit confusing right now. Seeing it used on Rails makes it even more confusing, but also kind of awesome. jQuery makes AJAX so much easier too.

That’s basically it for today, now I’ve got a few tutorials to follow.

Bitmaker Labs – Day 26

Today’s lesson was a big departure from the simple JS lectures. We learned about closures, callbacks, and events. Events are straight forward and easy to understand. Closures and callbacks I’m still confused about. A closure is when a function captures the environment and freezes it for all its local functions. A callback is when a function executes within another, and sends the results to the parent function.

I’ll have to study this more.