Design a website with nodejs, backbonejs, expressjs, and bootstrap

Here it’s my learning order of new technologies (nodejs, backbonehs, expressjs, and bootrap ) and use them to create a new website. I found this sequence is logical to me, and help me to learn step-by-step.

Recommended order to learn:

  1. Read the W3school for Javascript, CSS, html :
  2. Under more about javascript (what is asynchronous programming?):
  3. To begin with , please install nodejs and expressjs in your eclipse, i.e. noeclipse:
  4. Learn nodejs. Go through these documents:
    1. Nodejs introduction:
    2. What is Nodejs:
    3. Nodejs event loop:
    4. Follow this tutorial and get started on nodejs:
    5. Now: follow codeschool tutorials on this website to go over learning modules for nodejs:
    6. (optional): afterward, you have good enough idea of what is going on, so you can advances your level by reading this book (borrow from me):
  5. You probably have seen expressjs a bit, you can further your knowledge by  reading this tutorials:
    2. Example:
    3. Example:
  6. Learn backbonejs now:
    1. Good tutorial :
    2. Go through one by one:
  7. Alright, this is the last piece, read through the boostrap document to know how to style a website:

How to set up nodejs, and expressjs in Eclipse (Ubuntu)?

1. Download Eclipse from official website.

2. Install npm (node package manager).

3. In eclipse, go to marketplace and download nodeclipse and all node-related packages.

4. Install express globally

$ npm install -g express-generator
$ npm install -g express

5. From eclipse, choose preferece --> nodeeclipse, make sure the path of node and express is correct, i.e.,

node: /usr/bin/node
express: /usr/bin/express



How to encrypt your external usb?

Encryption is very important so that even you lose your usb your data will not be taken away by others unless they crack your encryption (which one case is your have a weak password).

To encrypt your usb, there is a free open-source tool. You can encrypt your usb and then use the software to decrypt it before using it.


If you are using window 7 ultimate, you can use the BitLocker provided by window.

What’s the difference between autoencoder and NN

When you have small dataset (labeled), you will want to do unsupervised learning on large unlabeled data(same kind) using autoencoder, and learn the features of the dataset (this is called pre-training). And the train the entire network again using labeled data (fine-tunning).


When you have a LOT of data, you can build the NN entirely using backpropagation. No need to do autoencoder way.

A free citation tool

A free citation tool

This is a very good online citation tool which provides accurate citations with APA, Chicago, Harvard, etc style.

This tool is almost free of ads (really, not annoying at all), and it is really easy to use. I have tried couple of citation tools and this is the best so far I encountered.

2013 UCLA Inventathon—A Medicine Portal


A web portal designed for an innovative drug holder device to keep track on a patient’s past drug record and “Today” drug usage.

The web portal is a simple example showing application of multiple technologies : nodejs, backbonejs, expressjs, twitter bootstrap, requirejs and mysql.

Source code:


Synergy Configuration: Ubuntu Server and Window Client

Synergy is a powerful tool for you to control multiple computer (mac, window, or ubuntu) using only one set of mouse and keyboard. Basically, you need one computer to be the server with mouse and keyboard connected to it. Then you can connect however number of other computer (clients) to the server using synergy and you can work across multiple platforms (i.e. can do copy from Ubuntu and paste in window) 

In here, I am going to write down the steps for setting up ubuntu server and window client.

Ubuntu Server

1. Go to

2. Download the newest version: 1.4.12 Beta Ubuntu (with encryption)


3. Install by double click it


4. In command line, type “synergy” (no need to do “synergys” for server, nor “synergyc” for client anymore). A nice GUI will pop-up.  Choose the “server” option


5. You will see the encryption part. From now on, choose “Disable Encryption”. It is not safe to choose this option if you are using public network, but it is fine if you are using home network. (I am not sure how the encryption mode works for synergy 1.4.12 beta. I have tried, but it failed. I will update the post when I figure it out)


6.  Then you will see the main menu. Remember the “IP:address:”, this will be used when the window client is configured. Click “Configure interactively”


7. Then, you will see something like below. The center computer icon represents your server and you can drag the top right computer icon to anywhere surrounding your server (depending on the actual position of your client computer in reality).


8. After dragging the computer icon, double click it and it will appear a box like below. Type in your client computer screen name, mine is “KingChungHo” (If you don’t know at this point, don’t worry. You will know it soon)


9. Click “ok” and you will see a new client computer, like below. Click “ok” again and click “run”. YOU ARE SET FOR SERVER :D. (It becomes much easier now because of this nice UI. Before, you needed to set up “sygnergy.conf” manuall).


Window Client

1. Follow “Ubuntu Server” steps 1-2 and download the window version of synergy.

2. Install it and open it. This time, choose “client”.


3. Choose “Disable Encryption”.


4. In the main window, you will see the window client screen name(“KingChungHo”). This is the name you typed in previous “Ubuntu’s server” step 8. Now type in the “server IP”, which is shown in “Ubuntu’s server” step 6.


5. Click “Start” and you should be able to see that the window client is connected to Ubuntu server! The Ubuntu server dialog should show something like “KingChungHo is connected”. And now you can use your Ubuntu server mouse and keyboard to control the window client!


1. I am not sure why you will fail to make connection when you close the window client synergy and reopen it.  To solve this problem or any problem, try to re-install the synergy in window client. Apparently, the Ubuntu server is working, but the window client has some weird behaviors sometime.