Tampilkan postingan dengan label NodeJS. Tampilkan semua postingan
Tampilkan postingan dengan label NodeJS. Tampilkan semua postingan

Desember 04, 2012

Tema skripsi untuk JavaScript Ninja wannabe


Berikut saya berikan daftar mengenai tema skripsi bagi mahasiswa yang akan mengambil skripsi, khususnya bagi yang berminat di dunia JavaScript. Semua yang saya uraikan disini meliputi JavaScript di sisi server maupun di sisi client. Istilah JavaScript ninja sebenarnya merupakan istilah informal yang merujuk pada seorang developer dengan kemampuan pemrograman JavaScript yang sangat bagus. Istilah ini bahkan digunakan dalam buku yang ditulis oleh John Resig (you know him, right?): Secrets of the JavaScript Ninja (http://jsninja.com). Nah, jika anda ingin menjadi JavaScript ninja, mengapa tidak mulai mendalami dari saat kuliah dan mengambil materi skripsi tentang JavaScript? Silahkan ambil yang anda sukai dari daftar berikut ini dan gunakan kreativitas anda untuk membuat daftar ini menjadi judul yang lengkap:
  1. Membuat plugin Node.js menggunakan node-gyp (https://github.com/TooTallNate/node-gyp)
  2. Interoperabilitas Google Dart dengan JavaScript (http://www.dartlang.org/articles/js-dart-interop/)
  3. Behaviour-Driven Development menggunakan Jasmine (http://pivotal.github.com/jasmine/)
  4. Headless full-stack testing di Node.js menggunakan ZombieJS (http://zombie.labnotes.org/)
  5. Asynchronous testing menggunakan Mocha (http://visionmedia.github.com/mocha/)
  6. Headless testing menggunakan PhantomJS (http://www.phantomjs.org danhttps://github.com/ariya/phantomjs/wiki/Headless-Testing)
  7. Pengembangan aplikasi berbasis pattern Resourve-View-Presenter menggunakan FlatironJS (http://flatironjs.org)
  8. Aplikasi CLI (Command Line Interface) menggunakan FlatironJS (http://blog.jit.su/writing-cli-apps-with-flatiron)
  9. Navigation scripting dan utilitas testing menggunakan CasperJS (http://casperjs.org)
  10. Semantic template menggunakan Handlebars (http://handlebarsjs.com/)
  11. Modernizr sebagai peranti bantu pengembangan aplikasi HTML5 dan CSS3 (http://modernizr.com)
  12. Asynchronous web testing menggunakan Mocha (http://visionmedia.github.com/mocha/)
  13. Pengembangan aplikasi cloud menggunakan Node.js
  14. Pengembangan aplikasi web menggunakan NoSQL: studi kasus Node.js dan Mongoose
  15. Teknologi middleware Connect - termasuk pengembangan plugin Connect (http://www.senchalabs.org/connect/)
  16. Cross-browser websocket untuk aplikasi realtime menggunakan Socket.IO (http://socket.io)
  17. Pengembangan plugin GruntJS (http://gruntjs.com)
  18. Framework / Pustaka MVC di JavaScript (lihat daftarnya di http://codebrief.com/2012/01/the-top-10-javascript-mvc-frameworks-reviewed/)
  19. Pengembangan aplikasi web menggunakan ExpressJS (http://expressjs.com/)
  20. Membangun aplikasi dengan teknologi obyek di JavaScript menggunakan oolib (http://idya.github.com/oolib/)
  21. Membangun aplikasi desktop berbasis HTML5, CSS3, dan JavaScript menggunakan TideSDK (http://www.tidesdk.org/)
Tentu saja ini bukan daftar yang lengkap di dunia JavaScript yang sedemikian kompleks. Jika ada tambahan lagi, catatan ini akan saya edit. Jadi, selamat menikmati proses menjadi JavaScript ninja!

Agustus 24, 2012

Quick and Dirty Hack: Memeriksa dan Membandingkan Versi NodeJS

Salah satu "masalah" dari NodeJS adalah siklus rilis yang saya pikir "terlalu cepat". Seringkali bolak-balik ke website NodeJS untuk melihat apakah sudah ada rilis stabil terbaru atau belum. Sebenarnya tidak harus seperti itu, hanya saja, saya termasuk manusia aneh yang menyukai berada di posisi bleeding edge, jadi setiap ada rilis stabil terbaru, rasanya hidup tidak lengkap jika tidak menggunakan rilis terbaru. Hehehe ...

Nah, untuk keperluan itu, karena saya "capai" bolak-balik, maka saya pakai "script" untuk mengotomatiskan pekerjaan saya. Sederhana saja dan blatantly copied dari contoh di node.io. Untuk menggunakan script ini, silahkan install dulu node.io dan nanti sesuaikan lokasi modul ini di komputer anda:



#!/usr/bin/env node.io

var nodeio = require('/opt/software/nodejs/lib/node_modules/node.io');

exports.job = new nodeio.Job({
  input: false,
  run: function () {
    var url = "http://www.nodejs.org/download";
    this.getHtml(url, function(err, $) {
      if (err) {
        console.log(err);
        this.exit(err);
      } else {
        ver = $('b').text;
        console.log('Latest version: ' + ver);
        console.log('Local version: ' + process.version);
      }
    });
  }
});


Script ini (checknode.js) saya chmod +x dan saya letakkan di $PATH, jadi sewaktu-waktu ingin memeriksa, tinggal jalankan script ini:

[bpdp@bpdp-arch checknode]$ checknode.js 
Latest version: v0.8.8
Local version: v0.8.8
[bpdp@bpdp-arch checknode]$


Sayangnya, website NodeJS ini belum meng-embedd data semantik di dalamnya sehingga saya hanya berpatokan pada tag HTML Bold yang menandai versi stabil terbaru dari NodeJS. Akibatnya ya nanti jika struktur isi website NodeJS berubah, maka script ini juga akan "hancur". Lebih bagus jika website NodeJS menggunakan ontologi untuk software seperti The Software Ontology. Well, probably someday :)

Sebenarnya script ini bisa ditambahi fitur untuk mendownload versi baru (jika ada versi baru), tapi nanti dulu deh. Not so important. Yang penting ini dulu saja. Enjoy!

Agustus 16, 2012

NodeJS Installation Without OS Package Management

I use Arch Linux for all my OS activities. Arch Linux has NodeJS package and can be easily installed using pacman -S nodejs but you may see that NodeJS has fast release cycle that my Arch Linux package is sometimes left behind and also sometimes I want to use a specific version (for example, Ace - and editor part of Cloud9 IDE - can not work with NodeJS 0.8.x, it needs 0.6.x). Under this scheme, it can be difficult to deal with OS package management. That said, I need to use my own way to resolve this.

So, here is the way to solve the problem. Download the binary version of NodeJS or directly go to http://nodejs.org/dist/ and get the one you need. Extract into specific directory then setup some environment variables into .bashrc so that it will be read automatically whenever I login, or put that into a file and source it whenever I need it. That's all. The details will follow if you are really helpless.

1. Download the binary version. Here I use version 0.8.7:

[bpdp@bpdp-arch nodejs]$ ls -la
total 4320
drwxr-xr-x  2 bpdp users    4096 Aug 17 06:08 .
drwxr-xr-x 22 bpdp users    4096 Aug 16 16:17 ..
-rw-r--r--  1 bpdp users 4401729 Aug 16 06:19 node-v0.8.7-linux-x86.tar.gz
[bpdp@bpdp-arch nodejs]$ 

2. Extract into the directory of your own choice:

[bpdp@bpdp-arch software]$ tar -xzvf ~/master/nodejs/node-v0.8.7-linux-x86.tar.gz
[bpdp@bpdp-arch software]$ ln -s node-v0.8.7-linux-x86 nodejs
[bpdp@bpdp-arch software]$ ls -la
....
....
drwxr-xr-x   6 bpdp users  4096 Aug 16 06:18 node-v0.8.7-linux-x86
lrwxrwxrwx   1 bpdp users    21 Aug 17 06:37 nodejs -> node-v0.8.7-linux-x86
....
....
[bpdp@bpdp-arch software]$ 

3. Set some environment variables

[bpdp@bpdp-arch environment]$ cat nodejs 
NODEJS_HOME=/home/bpdp/software/nodejs

PATH=$PATH:$NODEJS_HOME/bin
MANPATH=$MANPATH:$NODEJS_HOME/share/man
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$NODEJS_HOME/lib
C_INCLUDE_PATH=$C_INCLUDE_PATH:$NODEJS_HOME/include
CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:$NODEJS_HOME/include

export PATH
export MANPATH
export LD_LIBRARY_PATH
export C_INCLUDE_PATH
export CPLUS_INCLUDE_PATH
[bpdp@bpdp-arch environment]$ 

4. Source it whenever you need it:

$ source ~/environment/nodejs

Note: I put the env var into a file: $HOME/environment/nodejs

5. Surely you may also put that into your $HOME/.bashrc for automatic activation.

That's all. Happy coding!