You're reading the blog of Vincent Cabansag.
Profile photoYou're reading the blog of Vincent Cabansag.
Profile photoYou're reading the blog of Vincent Cabansag.

Fourth Week of Code Academy

Just build it. Those three words have been going through my head all week much like a Nike ad campaign.

Four weeks of Code Academy have gone by incredibly fast. I have the basic skills to craft web apps, but I need to hone them, practice them and continue to expand them. I make it part of my routine to build an app or a particular function every week. It may not be pretty, but I'll have gained valuable experience in the art that is software craftsmanship.

Cookies, sessions, and mailers
Jeff taught us how to utilize cookies so that we can create, destroy, and identify sessions. Mailers were surprisingly easy to create, thank you ActionMailer! I'm excited that we know how to manage sessions so that we can blend it with user logins and authentication. I particularly enjoyed knowing about the cryptographic encryption of the cookie or one-way hash. Word to the wise, enable HTTPS whenever you're connected to an unsecured wireless network. It is far too easy for a hacker to intercept cookies "over the air" and store them on their browser. That is a common way to hijack Twitter, Facebook, and email accounts that do not use HTTPS. You don't even need to be hacker to hi-jack cookies, you just need to install the Firefox extension, Firesheep. Scary.

Pairing
Another great week of pairing with Dave Mehrman and Paul Rosenzweig. Dave is a video creator/designer working on a web app with a great business model. It was fun pairing up with him because he quickly identifies and articulates what he does and does not know. We breezed through the first labs with ease and then we got a little stumped on the last lab. We worked it out at the end and it was a great learning experience.

Paul is a University of Chicago student, originally from Boston, who is a simply a whiz. When we worked on our Academy Air app, we decided to calculate the distance of a flight taking the curvature of the earth into account. We added two columns into our airport table, lat and lng, populated them with the corresponding geopoints and used the Haversine formula to calculate the distance. The first two parts were easy, but incorporating the algorithm into an method was much more challenging. Paul was able to figure it out and the method ended up looking like this:

  def calculate_distance
    airport1 = departing_from
    airport2 = arriving_at
    to_rad = lambda { |deg| deg*3.14159/180 }
    a = Math.sin((to_rad[airport1.lat] - to_rad[airport2.lat])/2)**2
          +Math.cos(to_rad[airport1.lat])*Math.cos(to_rad[airport2.lat])
          *(Math.sin((to_rad[airport1.lng - airport2.lng])/2)**2)
    c = 2*Math.atan2(Math.sqrt(a), Math.sqrt(1-a))
    self.distance = (3959*c).to_i
  end

Paul you're awesome. Excited to continue working with you on our project!

Interesting > Impressive
Suneel Gupta, a lead product manager at Groupon, shared some valuable insights into product iteration. He shared the process of focusing on user experience, branding, scaling, and learning. And that you must take what you learn and apply it back to the user experience. I love this concept, especially if your business model can be easily replicated. There are countless numbers of deal sites available to consumers. Why should people go back to Groupon? Because of their product variety and user experience. It's important to create a strong user experience so that consumers come back to you. The business models of the Code Academy students, including mine, are predicated on domain expertise. So with a low barrier to entry for competitors, it will be important to create a strong brand, scale quickly and provide a rich user experience.

Another great concept that Suneel shared was to create things that are interesting not impressive. Far too often, you see software or web apps with too many features. Most of those features are not always added with the user in mind, but for "selling" purposes. Sure it may present well to investors, but it won't necessarily make your product engaging and easy to use. Love the concept of Interesting > Impressive.

Back to all blog posts

Fourth Week of Code Academy

Just build it. Those three words have been going through my head all week much like a Nike ad campaign.

Four weeks of Code Academy have gone by incredibly fast. I have the basic skills to craft web apps, but I need to hone them, practice them and continue to expand them. I make it part of my routine to build an app or a particular function every week. It may not be pretty, but I'll have gained valuable experience in the art that is software craftsmanship.

Cookies, sessions, and mailers
Jeff taught us how to utilize cookies so that we can create, destroy, and identify sessions. Mailers were surprisingly easy to create, thank you ActionMailer! I'm excited that we know how to manage sessions so that we can blend it with user logins and authentication. I particularly enjoyed knowing about the cryptographic encryption of the cookie or one-way hash. Word to the wise, enable HTTPS whenever you're connected to an unsecured wireless network. It is far too easy for a hacker to intercept cookies "over the air" and store them on their browser. That is a common way to hijack Twitter, Facebook, and email accounts that do not use HTTPS. You don't even need to be hacker to hi-jack cookies, you just need to install the Firefox extension, Firesheep. Scary.

Pairing
Another great week of pairing with Dave Mehrman and Paul Rosenzweig. Dave is a video creator/designer working on a web app with a great business model. It was fun pairing up with him because he quickly identifies and articulates what he does and does not know. We breezed through the first labs with ease and then we got a little stumped on the last lab. We worked it out at the end and it was a great learning experience.

Paul is a University of Chicago student, originally from Boston, who is a simply a whiz. When we worked on our Academy Air app, we decided to calculate the distance of a flight taking the curvature of the earth into account. We added two columns into our airport table, lat and lng, populated them with the corresponding geopoints and used the Haversine formula to calculate the distance. The first two parts were easy, but incorporating the algorithm into an method was much more challenging. Paul was able to figure it out and the method ended up looking like this:

  def calculate_distance
    airport1 = departing_from
    airport2 = arriving_at
    to_rad = lambda { |deg| deg*3.14159/180 }
    a = Math.sin((to_rad[airport1.lat] - to_rad[airport2.lat])/2)**2
          +Math.cos(to_rad[airport1.lat])*Math.cos(to_rad[airport2.lat])
          *(Math.sin((to_rad[airport1.lng - airport2.lng])/2)**2)
    c = 2*Math.atan2(Math.sqrt(a), Math.sqrt(1-a))
    self.distance = (3959*c).to_i
  end

Paul you're awesome. Excited to continue working with you on our project!

Interesting > Impressive
Suneel Gupta, a lead product manager at Groupon, shared some valuable insights into product iteration. He shared the process of focusing on user experience, branding, scaling, and learning. And that you must take what you learn and apply it back to the user experience. I love this concept, especially if your business model can be easily replicated. There are countless numbers of deal sites available to consumers. Why should people go back to Groupon? Because of their product variety and user experience. It's important to create a strong user experience so that consumers come back to you. The business models of the Code Academy students, including mine, are predicated on domain expertise. So with a low barrier to entry for competitors, it will be important to create a strong brand, scale quickly and provide a rich user experience.

Another great concept that Suneel shared was to create things that are interesting not impressive. Far too often, you see software or web apps with too many features. Most of those features are not always added with the user in mind, but for "selling" purposes. Sure it may present well to investors, but it won't necessarily make your product engaging and easy to use. Love the concept of Interesting > Impressive.

Back to all blog posts

Fourth Week of Code Academy

Just build it. Those three words have been going through my head all week much like a Nike ad campaign.

Four weeks of Code Academy have gone by incredibly fast. I have the basic skills to craft web apps, but I need to hone them, practice them and continue to expand them. I make it part of my routine to build an app or a particular function every week. It may not be pretty, but I'll have gained valuable experience in the art that is software craftsmanship.

Cookies, sessions, and mailers
Jeff taught us how to utilize cookies so that we can create, destroy, and identify sessions. Mailers were surprisingly easy to create, thank you ActionMailer! I'm excited that we know how to manage sessions so that we can blend it with user logins and authentication. I particularly enjoyed knowing about the cryptographic encryption of the cookie or one-way hash. Word to the wise, enable HTTPS whenever you're connected to an unsecured wireless network. It is far too easy for a hacker to intercept cookies "over the air" and store them on their browser. That is a common way to hijack Twitter, Facebook, and email accounts that do not use HTTPS. You don't even need to be hacker to hi-jack cookies, you just need to install the Firefox extension, Firesheep. Scary.

Pairing
Another great week of pairing with Dave Mehrman and Paul Rosenzweig. Dave is a video creator/designer working on a web app with a great business model. It was fun pairing up with him because he quickly identifies and articulates what he does and does not know. We breezed through the first labs with ease and then we got a little stumped on the last lab. We worked it out at the end and it was a great learning experience.

Paul is a University of Chicago student, originally from Boston, who is a simply a whiz. When we worked on our Academy Air app, we decided to calculate the distance of a flight taking the curvature of the earth into account. We added two columns into our airport table, lat and lng, populated them with the corresponding geopoints and used the Haversine formula to calculate the distance. The first two parts were easy, but incorporating the algorithm into an method was much more challenging. Paul was able to figure it out and the method ended up looking like this:

  def calculate_distance
    airport1 = departing_from
    airport2 = arriving_at
    to_rad = lambda { |deg| deg*3.14159/180 }
    a = Math.sin((to_rad[airport1.lat] - to_rad[airport2.lat])/2)**2
          +Math.cos(to_rad[airport1.lat])*Math.cos(to_rad[airport2.lat])
          *(Math.sin((to_rad[airport1.lng - airport2.lng])/2)**2)
    c = 2*Math.atan2(Math.sqrt(a), Math.sqrt(1-a))
    self.distance = (3959*c).to_i
  end

Paul you're awesome. Excited to continue working with you on our project!

Interesting > Impressive
Suneel Gupta, a lead product manager at Groupon, shared some valuable insights into product iteration. He shared the process of focusing on user experience, branding, scaling, and learning. And that you must take what you learn and apply it back to the user experience. I love this concept, especially if your business model can be easily replicated. There are countless numbers of deal sites available to consumers. Why should people go back to Groupon? Because of their product variety and user experience. It's important to create a strong user experience so that consumers come back to you. The business models of the Code Academy students, including mine, are predicated on domain expertise. So with a low barrier to entry for competitors, it will be important to create a strong brand, scale quickly and provide a rich user experience.

Another great concept that Suneel shared was to create things that are interesting not impressive. Far too often, you see software or web apps with too many features. Most of those features are not always added with the user in mind, but for "selling" purposes. Sure it may present well to investors, but it won't necessarily make your product engaging and easy to use. Love the concept of Interesting > Impressive.

Back to all blog posts