cott Cheng

Ember vs Backbone: Event Model

Lately I’ve been playing with Ember and Backbone, and enjoying these modern tools for building modern web applications (I’ll try Angular next.) Ember and Backbone are different in many ways. While writing apps with them, I have realized that, apart from all the architectural/philosophical divergence, they employ very different approaches to event subscription, which is a critical part of any UI application.

Grad Application Reflections

Two weeks ago I accepted the offer of admission to Stanford’s MSCS program, which concludes my graduate school application process. I’d like to record some key reflections that I have on this process. The following is based on my experience of applying for Master programs in CS / HCI, but should apply to applications for other degree programs as well.

Setting Up Existing Octopress Blog on a New Computer

A good blogging system must support users to easily start composing and publishing from multiple devices. However, the Octopress website only teaches how to create a fresh blog, but talks nothing about setting up an existing blog on a fresh computer. This operation turned out to be somewhat confusing to me, and obviously I’m not alone on this. So here I record the process, partly for my later reference, partly in hope to help others.

Here is a context: I’m using GitHub user pages (scottcheng.github.com) to host my Octopress blog, so this walk-through may or may not apply to your case. It shouldn’t be too far off, though.

  1. Clone your old blog repo with all your previous posts in it (instead of a fresh Octopress repo).
  2. Unless you changed the repo’s default branch, you now have the master branch containing the static site. In this case, use git checkout source to grab the source files.
  3. Install the dependencies if you haven’t yet.
  4. Run rake setup_github_pages, and Octopress will point your generated site (in _deploy folder) to the master branch – you can deploy now.
  5. Remove master branch locally with git branch -d master. Otherwise, every time you do git push, git will alert conflicts on the master branch.
    • Alternative 1: git push origin source all the time.
    • Alternative 2: use git config push.default current to only push the current branch (i.e. source branch) by default in git push.
  6. Start blogging!

Be a happy owner of your new machine, and don’t let Octopress get in the way ;)

What I Learned as an Interviewer

Recently I got an unexpected opportunity to interview some applicants for a startup event. It was a unique experience that gave me a fresh perspective, and I’d like to share some of my discoveries as a first time interviewer (may sound extremely naive and stupid to you :p).

  1. An applicant might expect the interviewer to be familiar with everything in his application packet. I suppose I totally should, if I want to be a nice interviewer, but the fact is that I’m simply not able to bring back all the details of the guy sitting in front of me right after the previous one had left, when I have to talk to 6 applicants back-to-back in an hour. Point is, if there is something important in your materials that you think would significantly increase your chance, be sure to bring it up and remind the interviewer of it – he might miss it otherwise!

  2. As recruiters, all we really care about is whether an applicant fits the position. In other words, whether you’ll excel at the job, and whether you’ll be happy doing it. Some folks in my pool appeared very sophisticated at what they do, but failed to demonstrate the skills and qualities that we were looking for, so we had to reject them. Also, it’s totally cool to have hobbies (music, sports, etc), and I’ll think of you as an interesting person, but it doesn’t make up for your aptitude (if you lack it), and doesn’t have much to do with your chance of getting in.

  3. Passion and motivation can be very appealing, and it’s quite easy to tell whether they are genuine or not.

  4. For the inexperienced: proficiency matters. It’s definitely important to be a fast learner, but relevant experiences tend to be more impressive. Of course there has to be a first step to any new field in life, in which case it helps if you have taken the initiative and got some preliminary experience or research on your own, which also reflects motivation.