nvm – Node Version Manager

Nhân dịp update node version lên bản v0.10.21 (http://blog.nodejs.org/2013/10/18/node-v0-10-21-stable/)

1. nvm là gì?

Là chương trình dùng để quản lý version của Node.js . HP: https://github.com/creationix/nvm

2.Cài đặt nvm trên Mac OS

tuan@tmac ~ $git clone git://github.com/creationix/nvm.git ~/.nvm
tuan@tmac ~ $ source ~/.nvm/nvm.sh
tuan@tmac ~ $ // .bashrc or .bash_profile
[[ -s USER_HOME/.nvm/nvm.sh ]] && . USER_HOME/.nvm/nvm.sh
nvm use default
npm_dir=${NVM_PATH}_modules
export NODE_PATH=$npm_dir

3. Sử dụng


tuan@tmac ~ $ nvm
Node Version Manager
Usage:
nvm help Show this message
nvm install [-s] <version> Download and install a <version>
nvm uninstall <version> Uninstall a version
nvm use <version> Modify PATH to use <version>
nvm run <version> [<args>] Run <version> with <args> as arguments
nvm ls List installed versions
nvm ls <version> List versions matching a given description
nvm ls-remote List remote versions available for install
nvm deactivate Undo effects of NVM on current shell
nvm alias [<pattern>] Show all aliases beginning with <pattern>
nvm alias <name> <version> Set an alias named <name> pointing to <version>
nvm unalias <name> Deletes the alias named <name>
nvm copy-packages <version> Install global NPM packages contained in <version> to current version
Example:
nvm install v0.4.12 Install a specific version number
nvm use 0.2 Use the latest available 0.2.x release
nvm run 0.4.12 myApp.js Run myApp.js using node v0.4.12
nvm alias default 0.4 Auto use the latest installed v0.4.x version

3.Cài đặt node.js

List tất cả các version có thể cài đặt được.

tuan@tmac ~ $ nvm ls-remote
tuan@tmac ~ $ nvm install 0.10.21
######################################################################## 100.0%
-f: move to trash.
usage: mv [-f | -i | -n] [-v] source target
mv [-f | -i | -n] [-v] source ... directory
/Users/tuan/.nvm/bin/node-v0.10.21-darwin-x64/node-v0.10.21-darwin-x64.tar.gz: move to trash.
Now using node v0.10.21

4.Chạy node.js với version chỉ định


tuan@tmac ~ $nvm use v0.10.21
tuan@tmac ~ $node -v
v0.10.21

5.Thiết định version mặc định


tuan@mac ~$nvm alias use default  v0.10.21

Cài đặt node.js, RabbitMQ trên Centos 6.3

Ghi nhớ thao tác cài đặt node.js trên CentOS 6.3

Cài đặt node.js

Image

$ cd /tmp
$ wget -N http://nodejs.org/dist/node-latest.tar.gz
$ tar xzvf node-latest.tar.gz ← giải nén
$ cd node-v0.x.xx ← chuyển đến thư mục node.js đã giải nén
$ make
$ sudo make install
$ node -v ←Kiểm tra version

Đoạn make và make install hơi lâu một tý. 🙁

Kiểm tra version của NPM ( Node Package Manager)

$ npm -v

Update Python nếu cần thiết

    Traceback (most recent call last):
      File "tools/waf-light", line 157, in ?
        import Scripting
      File "/home2/rianders/src/node/tools/wafadmin/Scripting.py", line 9, in ?
        import Utils, Configure, Build, Logs, Options, Environment, Task
      File "/home2/rianders/src/node/tools/wafadmin/Build.py", line 18, in ?
        import Runner, TaskGen, Node, Scripting, Utils, Environment, Task, Logs, Options
      File "/home2/rianders/src/node/tools/wafadmin/TaskGen.py", line 54, in ?
        class task_gen(object):
      File "/home2/rianders/src/node/tools/wafadmin/TaskGen.py", line 87, in task_gen
        traits = Utils.DefaultDict(set)
    NameError: name 'set' is not defined
    make: *** [program] Error 1

Trường hợp Python cài bằng yum (vesion  2.6) không thực hiện được make thì update lên version mới.

Cài đặt các thư viện cho python 2.7.3
$ sudo yum install gcc-c++ zlib zlib-devel tk-devel tcl-devel sqlite-devel 
ncurses-devel gdbm-devel readline-devel bzip2-devel db4-devel openssl-devel
Cài đặt python
$ cd /tmp
$ wget http://python.org/ftp/python/2.7.3/Python-2.7.3.tgz
$ tar zxvf Python-2.7.3.tgz
$ ./configure --with-threads --enable-shared $ make $ sudo make install
$ ln -s /usr/local/lib/libpython2.7.so.1.0 /lib64/
$ python

Cài đặt RabbitMQ

$ wget -O /etc/yum.repos.d/epel-erlang.repo http://repos.fedorapeople.org/repos/peter/erlang/epel-erlang.repo
$ sudo wget -O /etc/yum.repos.d/epel-erlang.repo http://repos.fedorapeople.org/repos/peter/erlang/epel-erlang.repo
$ sudo yum install erlang
 Cài đặt RabbitMQ
$ wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.0.4/rabbitmq-server-3.0.4-1.noarch.rpm
$ sudo rpm --import http://www.rabbitmq.com/rabbitmq-signing-key-public.asc
$ sudo  yum install rabbitmq-server-3.0.4-1.noarch.rpm

Khởi động và kích hoạt màn hình quản lý

$ sudo service rabbitmq-server start
$ sudo rabbitmq-plugins enable rabbitmq_management
$ sudo service rabbitmq-server restart
Chú ý: RabbitMQ mặc định đòi hỏi phải có dung lượng disk còn trống khoảng 1GB để hoạt động ( http://www.rabbitmq.com/configure.html)
  • /etc/rabbitmq/rabbitmq.config
  • Mặc định disk_free_limit Default: 1000000000 tỉ lệ với dung lượng memory {mem_relative, 1.0}
  • Nếu trường hợp không đủ dung lượng ổ cứng thì có thể set mem_relative tầm 0.5 hay bé hơn.
Màn hình quản lý rabbitMQ

http://localhost:15672/

Tạo đây có thể xem tình trang hoạt động và thiết định các Channel, exchange, queue, ….

của rabbitmq

 

 

 

 

Tự học Google Cloud Messaging for Android [1]

GCM là gì?
GCM hay còn gọi là Google Cloud Messaging, đây là một Service được Google phát triển giúp các android developer dễ dàng triển khai việc send messages từ server tới mobile của bạn, Server mà bạn develop có thể là Android, và cũng có thể là Browser .
Các kiểu data có thể là các message nhỏ ( lightweight message)/ các dữ liệu có dung lượng nhỏ hơn hoặc bằng 4kb. GCM xử lý queue các message và chuyển tới các ứng dụng android dạng Push notification.
Giới thiệu chung các đặc trưng
  •  Cho phép server của các ứng dụng phía thứ 3 (3rd-party) gửi message đến ứng dụng.
  • Phía ứng dụng không cần thiết phải chạy chức năng nhận tin nhắn liên tục. GCM sẽ đánh thức thiết bị  và broadcast message.
  • Không cung cấp các interface hay các thư viện xử lý thông tin mà đơn thuần chỉ gửi raw message (thông tin sống?!) đến thiết bị.
  • Android > 2.3 + Google Play Store or Emulator chạy bằng google APIs.
  • Sử dụng kết nối cho Google service hiện có.(android version < 3 đòi hỏi phải có google account)
Cấu thành chung
  • Cấu thành
    • Mobile Device (android)
    • 3rd-party application server (MyApp)
    • GCM server (Google server)
  • Credentials
    • Sender ID
    • Application ID
    • Registration ID
    • Google User Account
    • Sender Auth Token
Vòng xử lý
  • Enable GCM
  • Sending a message
  • Receiving a message
Bắt đầu với CSM
     Tham khảo     GCM: Getting Started
     Bước 1.Đăng ký Sender ID
          Google APIs Console page
          Nếu chưa có API Project thì tạo project mới
          *Thiết định Google Cloud Messaging for Android service —> ON
          Sau khi tạo project thì address bar sẽ chuyển sang url :
          Phần sau #project: là Project Number cũng là Sender ID dùng trong GCM
     Bước 2.Tạo API Key (=Authorization key)
          APIs Console > API Access > Create new Server key
          Tại đây có thể thiết định giới hạn IP truy cập.
          Thông tin cơ bản
               Key for server apps (with IP locking)
API key: AIza………………..sdf…………..adsf….
IPs: …………..
Activated on: Apr 16, 2013 1:34 AM
Activated by: something@gmail.com – you

Tại đây mình có được Sender ID  + API key

     Các bước còn lại mình sẽ tổng hợp lại vào lần sau. (TT
     Bước 3. Thiết định trong application
     Bước 4. Thiết định server
     Bước 5. Run
Thiết định
     Tham khảo