Alvin Ang's Social Stream:

  • Another beautiful day in App Academy :) It is exciting to finally complete App Academy - at the same time though, it will be sad to not hang out with 40+ other awesome people…

    Alistpress finally launched. Minor bugs have been fixed and I’m currently working on adding a todo list within my app’s dashboard. Once that is completed, I’ll do some clean up work for the entire site and work on caching Startup Discovery.

    There is an amazing event tomorrow (SF Uncubed). The first half consist of ~5 speaking events from cofounders & top leaders. Then, there will be a hiring event from 2 - 6.30pm, exciting! 

    Anyway, another day of hustling at App Academy - gotta cherish'em while they last :)

  • We kicked off the day with Jeff’s awesome lecture, learning about UFC Don Frye. He showed us a recent video and it definitely caught our attention + pumped us up in the morning. 

    For the past 2 days, I have been figuring out how to select a block of text within a string in a text editor, a bootstrap wysihtml5 editor to be specific. I’m glad to have finally solved it - with plenty of research, a question on stackoverflow and reading about Node and Range in Javascript. 

    There will always be things remaining and additional features to add, however, knowing what to build to get your MVP out of the door is definitely helpful. Yay to planning everything last week!

  • Another fun day in App Academy. I cannot believe that it has been 9 weeks - and next week will be very different. I will definitely miss the current learning environment as we transition into job search mode next week. It has been extremely fun working with everyone in this cohort.

    Today was an interesting day - I spent the first 4 hours of my day trying to register a “tab” event in my text editor (+ a day over the weekend figuring it out) & trying to highlight a word that is wrapped within {{}} (similar to mustache). My goal is to allow a user to use the “tab” event to quickly create high quality emails for personal use or business purposes. I have not gotten the highlighting to work yet, I need to look more into jQuery Node and selecting a range. 

    My goal for tonight is to complete my dashboard’s CSS, hook all the links, allow drag and drop functionality when generating new emails wrap up the basic MVP (with tabbing, stripe API, a few opt in form with mailchimp and a premium store to be completed tomorrow). If everything goes well, I should be able to hook up rapportive API soon & work on Startup Discovery - view caching, friendlyURL and cleaning up CSS on the show page. It’ll be fun!

    Final Project: Alistpress

    Fun Project: Startup Discovery

  • The development of Alistpress is going well. So far, I have the basic functionality working where I am able to create new templates, make modifications, email them or save it. The next step is to utilize keystroke to change parts of the template & take care of all the html/css for the site. Then, more things to come over time. Looking forward to an awesome weekend with code!

  • Today was beautiful, the ability to integrate an HTML5 editor into my backbone app was unbelievable. It was seamless and made my entire site look so much better. The next step is to build out a drag and drop system to add your own templates, categorize templates and add a description for each of those templates. It will be awesome :)

  • I actually forgot to write a reflection blog on Day 3. So, day 3 was the start of our final project - the planning begins :)

    My final project will be a rebirth of Alistpress, a startup that I cofounded with a few guys in Houston 2 years ago. We failed back then - we only had one developer and we were not focused. I’ve learned a lot and will niche the idea down to focus on email templates. Why email templates? Well, because I need them :)

    I’ve hired many outsourcers before and will always need to create templates, place them in google docs, write specific instructions and share them with the outsourcers. It is fun, for the first time.

    How is this applicable? Well, as students in App Academy, we have to send an email to our TAs and write a tumblr post on a daily basis. It would be so cool if there is a platform where I can click “tab tab tab” to switch between fields and write my answer to the question, then bamm…done :) Email sent.

    Let’s say that I’m a sales dude and need to write cold emails to people (in hopes to get to the VP of sales). To make your email stand out, we need snippets of information about that person (so he’ll be intrigued to open your email). If we integrate it with Rapportive API, bamm..problem solved. We show you what this dude is up to and you just need to plug and chuck, then SEND.

    Anyway, I’ve setup this rails app with devise. For more, check out the next post coming really soon :)

  • OMG, did we just finish the meat of the instructions for App Academy? Oh boy, it is legit. We just grew half of our wings (the other half will grow after the final project) - which means, we can technically develop anything that we could dream of, sweet!

    Well, after hacking out a site (Startup Discovery) to compare site traffic for startups vs the time when they get funding, Sophy and I hacked up a Chat App using node and socket.io - it was amazing.

    First and foremost, thank you CJ and Jeff (awesome TAs). We could not have done this without their guidance and Sophy’s awesome pair programming skills and design eye. Check this out:

    Check out our codebase: S&A Chat App

    Quite honestly, for the past 8 weeks, there were rough days and time when I felt like the dumbest person in class but this group of amazing people never fail to help me learn and feel awesome at the end of the day. I’ve learned in the past the true friends are made when you go through tough and intense situations & this bootcamp is no different. It is a pleasure getting to know everyone in this cohort & most importantly, build long lasting friendships. 

    Now that I finally understand what node.js is capable of, I’ll dive into Express.js one day to build my internal chatting system that can be attached to any app (primarily rails). 

    Tomorrow will be the start of final projects. I’ll be recreating Alistpress, a failed startup/project that I cofounded 2 years ago. It will be different this time because I am building it & am motivated to push it to completion as I am the app’s customer. To learn more about Alistpress, stay tuned, it will be awesome :)

  • So…we were supposed to spend the weekend preparing for our assessment and work on Trello clone, which is a wise thing to do. However, I was tempted and motivated to create a site to look at a startup’s site traffic and visually see when they receive funding. In my opinion, that would provide a nice indication on whether we should join a startup or not (in the future, will have to look at average amount of funding, startup size etc for better data analysis). 

    Anyway, check it out: Startup Discovery 

    It is still work in progress and the data is based on Crunchbase API, Compete API & Angel List API. I was so close to integrating Quantcast API but they do not provide individuals access to other site’s traffic data. I am very tempted to integrate SEMRush API as well for adwords and keywords data, if not for the $69/month..

    Back to today’s work. I’ve learned that when creating an app that has views encapsulated within views, it is wise to start off with Composite Views (or use Marionette JS with Backbone). That will help organize your code better. 

    Tomorrow will be an exciting day - Node JS. I’ve always wanted to learn about it and finally, the day has come :) Can’t wait!

  • Building a trello clone with backbone.js & rails is by far the largest project given to us by App Academy (& also the last one before our final projects).

    We are given two sets of instructions - a detailed version and a brief version. The detailed one guides us through the entire process step by step. The brief one consist of 3 lines of instructions. In essence, it says: “Create the board, then lists, then cards”. To challenge myself, I went with the brief version.

    Current status: refactoring code to use composite views to display each lists & cards within a board. It will be an awesome weekend :)

  • There are three kinds of bootstrap that I am aware of. 

    1. Bootstrap a startup - using your own funds to grow the company
    2. Bootstrap data - JS to provide initial data to kick off one page apps
    3. Twitter bootstrap! 

    Today was bootstrap day, the (3) kind of bootstrap. I’ve created quite a few sites with bootstrap (very “hackishly”) using bootstrap 2.3.2 and version 3. I’m happy that bootstrap finally has an official sass version as well. 

    Our task for today was to create a simple website with bootstrap. My partner today was Sophy Lee, she’s a pro biker and is inspired by Evelyn Stevens. So, we built a bike based website called A&S Bikes located in the beautiful Mill Valley, CA. We went with a simple & minimalist design - it looks awesome. 

    The highlight of the day was more than just building a bootstrap site though. I learned more about the book “Anti-Fragile” (which I’ll definitely read someday), finding black swans and finding the riskiest path that will yield the highest potential. We had a number of philosophical conversations with Stepan and it was very fulfilling. 

    As we venture into the world of pushing production worthy apps, we will no longer be working in pairs. I have to admit though, I was quite skeptical about pair programming before App Academy. After 7 weeks of that, I am a true believer that pair programming yields greater benefits compared to working solo.

    Next stop, Trello clone!

  • We built an RSS Reader app today using backbone.js. It was a lightweight application using simple-rss to parse the incoming rss appropriately, store it in our database and displaying it the front end via backbone. It was a lot of fun setting everything up and formatting the json object from our backend using jbuilder.

    I work with Stepan today and we wanted to build a Pinterest clone in 2 hours - we were close though, but the scope was too big for us to complete it within the time period. The biggest learning is to narrow down the MVP’s scope and prevent scope crib for this project.

    Day 4 will be a bootstrap day - looking forward to designing!

  • Today was our first real stab into backbone.js. It was a lot of fun. Our task is to build a Journal app with rails backend and backbone front end. It takes a little bit to get use to the code organization and structure of backbone - but one library is sufficient to make your life a lot easier.

    I worked with Yoshi today and we manage to build the entire app and start using bootstrap to beautify our app. The highlight of today was the ability to turn a <p> tag into an input box on a double click and saving those changes upon modification. Mind blowing.

    This will definitely set us up for our project at the end of the week: Trello clone. Can’t wait!

  • We created a rails backend API  and using javascript/jquery to simulate the usage of backbone.js in our rails app. Firstly, kudos to the creator of backbone.js for making this library that handles a lot of functionality. On the other hand, it definitely takes a little bit longer to get use to the structure and organization of this MVV. 

    We created a photo tagging tool that allows users to upload an image and tag their friends - it is a single page app with a JSON api. If we were to create this app without organizing the code in a modular fashion, it will definitely be a disaster. As always, App Academy prepped us well to transition into backbone tmr.

  • Have you ever thought about how those one page app function? i.e. gmail, pandora, beautiful contact forms, etc. Thanks to AJAX, they work beautifully. That is what we did today.

    I’ve messed around with javascript, jQuery and coffeescript in the past. AJAX has always been foreign, until today. The ability to submit data to and from the server (or bootstrap it) without refreshing the browser enhances a site’s UX and allow the developer (us) to add more fun features/seamless integration to it. Definitely a win-win situation, pending on the app. 

    This weekend is backbone weekend. I hope to finally comprehend backbone and integrate it to rails beautifully. As always, my GitHub repo is located here: Alvin GitHub Repo

  • For the past 6 weeks, our cohort learned so much more than what we could have by ourselves. It is fascinating what we could accomplish in such a short period of time. 

    Today, we created 3 games. Tic Tac Toe, Towers of Hanoi and Snake. 6 weeks ago, if you ask me what a html5 canvas is or how to build any type of games with javascript, jquery or html5, I would have no idea. Today, any one of us in class can tell you what tools you would need, know how the algorithm structure would look like and implement encapsulation to ensure that our code can be maintained by others in the future. Oh, even better, we can push our codes to GitHub to allow others to enjoy and learn. 

    Tomorrow, we will use Rails to perform AJAX request - a perfect transition to backbone this weekend. Looking forward to another beautiful day in App Academy :)

  • In Ruby, inheritance is really straight forward - just add a “< Class” and you’re done. In javascript, it is fundamentally similar but the translating that into JS code is a little different. 

    We applied what we learned immediately through our project, Asteroids. Check out what previous cohort at App Academy has done with this project:

    No pressure right :) That is what JS, html5 canvas and a possible library can do. We got our asteroids to fly around and our ship to move today, it was a blast! Will definitely revisit this and make it awesome. 

    As we step into jQuery and ajax, we can finally change our browser’s html on the fly and query the data from our server without refreshing the page! 

  • Javascript is starting to make sense. It got even clear today when our TA, Ryan drilled the key concepts of today deep into our head. See this gist on GitHub for a detailed explanation of it.

    Today’s focus was identifying what “this” was and that javascript is asynchronous. Ryan gave us a very good example of how to think about javascript vs ruby. 

    Javascript is like a CEO. He delegates task to his employees and does not wait for one of them to complete their task to continue delegating tasks to others - asynchronous! i.e. CEO delegates running the operations to the COO, finances and projections to the CFO and his massage appointments to his secretary. He doesn’t wait for the CFO to complete his projections before asking his secretary to make his massage appointments - he does it any way. Asynchronous! When the CFO comes back with the projections, he give him another task to drill down a potential M&A deal - Callback function! 

    On the other hand, Ruby is like a secretary. Ruby receives a task to schedule a massage appointment for the CEO. Ruby completes the task, then goes back to the CEO & see if there are other tasks. Ruby is extremely nice and user friendly. 

    Equipped with the knowledge of “this”, “that” and “bind”, I’m ready for jQuery and cannot wait for backbone.js this weekend.

  • Wow, what an amazing day! Javascript is quite different compared to ruby and I cannot believe that JS is written in 10 days! 

    I have to admit that it is a little weird writing functions in JS - adding a var and a semi-colon here and there, all those curly braces & parentheses in for loops, etc. It reminded me of the good old PHP. 

    It was a good practice though and definitely a good reminder to what we did in week 1. Our TA, CJ recommended that we check out this site to learn more about Javascript: Crockford on Javascript

    As we kickoff JS, I’m excited to dive into backbone this weekend. AppAcademy Week 6 GitHub starts now.

  • We had the honor to use capybara in our testing today - it simulates a user browsing our site and was very user friendly. Our app for the day was a Goal app - user set their own goal (private or public), user can see other user’s public goal and admin has the privilege to remove any user or remove any goal. 

    My pair programming buddy for the day is Andrew Richards, did web design and internet marketing for the past 3 years. We worked very efficiently, it was fun!

    The highlight for today was the use cases for polymorphic association (i.e. a comment model and post/user/admin comments) and using capybara with rspec to test our app. It is simple to use and integrates very well with Rails. 

    This weekend will be the start of Javascript week - 2 weeks filled with JS and backbone.js. I’m super excited.

    Check out today’s repo here: Goal App