Browsed by
Tag: javascript

Sudah Tahu Caja?

Sudah Tahu Caja?

I am secure!

Anda tentunya sudah akrab dengan Farmville atau Mafia Wars. Ya, dua layanan tersebut adalah aplikasi/game Facebook. Facebook berani sekali ya menaruh konten dari situs lain ke dalam situsnya. Apa tidak takut di-hack lewat XSS (Cross Site Scripting)? Kita bisa saja iseng menaruh javascript atau melempar halaman yang dilihat Facebook user ke Facebook palsu, bukan begitu?

Tidak hanya Facebook yang menghadapi resiko ancaman seperti di atas. Google dengan Google Gadgetnya juga mempunyai masalah serupa. Walau mungkin source code untuk gadget bisa ditaruh di server Google tapi tetap saja Google tidak bsia mengontrol kode apa yang akan kita tulis. Selain Facebook dan Google, Yahoo juga menghadapi masalah yang sama pada Yahoo Application Platform. Dalam YAP, kita bisa menulis aplikasi dan kemudian ditampilkan di halaman depan Yahoo (Metro).

Sambut Caja (baca: Ka-Ha). Caja adalah semacam sandboxing tool yang mempunyai kemampuan mengurung kode HTML+Javascript supaya tidak membahayakan host-nya. Caja menyediakan tiruan DOM yang bisa diakses seperti DOM pada halaman penuh namun sebenarnya DOM tersebut hanya diimplementasikan pada virtual iframe. Jadi kode yang kita tulis akan tertipu secara tanpa sadar. Dan kita pun tak perlu mengubah kode demi mendukung DOM palsu ini.

Tidak berhenti dengan DOM, Caja juga mengamankan Javascript dengan menyediakan Valija. Valija adalah salinan Javascript dengan semua sintaksnya namun mengalami beberapa perubahan untuk menghilangkan sintaks yang sering menyebabkan error dan juga dalam rangka mengendalikan bagaimana eval bisa digunakan. Valija sendiri ditulis dalam subset Javascript yang disebut Fail Stop.

So, apakah Anda sudah mengamankan diri? Apakah layanan Anda menyediakan App platform? Fupei? Kaskus mungkin? Jangan lupa pakai Caja 😉

PS:

Sudah lihat banner keren di samping kanan? tengok NavinoT besok, kita akan beri detilnya 😉

Javascript Evolution: Javascript Platform

Javascript Evolution: Javascript Platform

Platform

Beberapa tahun lalu, jika saya bertanya pada Anda tentang fungsi javascript, mungkin Anda akan menjawab: untuk alert(), input(), refresh halaman dan memata-matai pengguna dengan cookie.

Dari sana penggunaan javascript meningkat ke DHTML. Javascript mulai memanipulasi DOM. Efek-efek javascript bermunculan. Efek huruf bergradasi, efek floating, efek tulisan bergradasi floatingseperti bendera, sliding menu, jam, dll.

Seiring dengan munculnya browser-browser baru, standar HTML pun mulai naik daun. DOM menjadi lebih lengkap fiturnya walau implementasi bisa bervariasi antar browser. Semakin banyak hal yang bisa dilakukan javascript. Kebutuhan cross platform pun akhirnya muncul akibat berkurangnya monopoli browser. Pustaka dan framework javascript pun banyak lahir. Tidak hanya menjawab kebutuhan cross platform, pustaka ini juga berusaha menambahkan fitur yang hilang lewat javascript itu sendiri. Misalnya struktur class, variabel privat dan publik, pemanggilan fungsi secara asinkron, emulasi threading, dan masih banyak lagi.

Tidak hanya populer di sisi klien, karakteristik Javascript rupanya juga diinginkan di sisi server (Jaxer). Dan bahkan kini sudah berevolusi menjadi platform, bukan sekedar bahasa pelengkap. Banyak pihak yang kini menawarkan platform dengan dukungan javascript, bahkan ada yang ekslusif mendukung javascript saja. Berikut ini contoh-contohnya platform javascript:

Appjet. Layanan ini sepertinya hendak mereplikasi apa yang dilakukan Google lewat Google App Engine. Jika GAE hanya mendukung python maka Appjet hanya mendukung javascript. Satu set API yang cukup komprehensif (printing, utilities, xhr, etc) ditambah dengan pustaka sumbangan dari parapenggunanya membuat Appjet mampu menjadi prasarana Rapid Prototyping.

Lalu ada TitaniumApp.Yang ini ingin mereplika kesuksesan AdobeAIR dengan memberikan SDK Opensource yang bisa dipakai untuk membangun dekstop, web dan mobile app dengan mudah via HTML, CSS dan javascript API. Saat ini masih Preview Release 2 dengan dokumentasi API belum begitu lengkap. Akan tetapi tetap menarik karena potensi pengembangannya bisa mengarah ke hal-hal yang tidak sama dengan Adobe AIR

Kemudian ada javascript dari Joyent. Joyent telah berkecimpung dalam hal application acceleration dan scaling services dengan produk Joyent Acceleratornya. Dalam waktu dekat Joyent yang beberapa waktu lalu mengakuisisi Reasonably Smart, akan segera meluncurkan platform berbasis javascript. Reasonably Smart sendiri sebenarnya mirip dengan AppJet. Tapi dengan backing Joyent, offering ini akan bernilai lebih.

Hmm, ada contoh lain? Apa pendapat Anda tentang Javascript ?

Flash vs. New Wave Javascript

Flash vs. New Wave Javascript

Siapa yang bakal dipilih?
Mengingat kebutuhan akan Rich Internet Application, ada banyak tool, library dan SDK yang bisa dipakai. Ada yang kaya fitur, ada yang sudah bercokol lama di dunia web. Simplicity, available by default sepertinya tetap akan jadi faktor penentu.

Membahas simplicity, mungkin kita akan bertanya: kenapa Flash bisa cukup sukses? Flash kan tidak simple. Dan kenapa sepertinya Javascript kini jadi primadona kembali? Dahulu kala, sebelum Flash diadopsi, java applet menjadi alternatif utama dalam memberikan rasa kaya dalam aplikasi web. Javascript waktu itu hanya sebatas pelengkap saja, sekedar dipakai untuk alert dan marquee di statusbar. Java applet memberikan bentuk interaktifitas baru. UI, Animasi, dan proses asinkronous, menjadi harapan baru bagi pengguna internet yang merasa terbatasi oleh browser.

Flash kemudian datang, dengan fitur proses asinkronous juga dan dukungan animasi yang lebih keren dan dan hemat bandwidth (grafik vektor). Java applet pun tersisih. Hanya digunakan untuk aplikasi yang mirip dengan aplikasi-aplikasi desktop.

Javascript mengalami perkembangan. Firefox datang. Implementasi Javascript yang lebih baik dan sesuai spesifikasi ECMAscript menelurkan Prototype, Rico, Scriptaculous, jQuery dan banyak lagi. Javascript pun mengambil sebagian besar pasar Flash. Dengan update reguler dan cukup cepat, Javascript pun mendapatkan panggung yang layak. Tidak juga boleh dilupakan adalah dukungan pemakainya yang mau bersusah payah menambahkan fitur kompatibilitas dengan IE, the beast of all times. Tanpa kemampuan cross browser ini, javascript tak akan bisa jadi primadona. “Lingkaran setan” pun terinisiasi. Pustaka javascript yang bagus mendorong lebih banyak browser untuk memperbaiki engine javascriptnya. Perbaikan engine membuka lebih banyak peluang pemanfaatan Javascript.

Siapa yang akan sukses?

Yang sukses adalah siapa yang memberikan apa yang dicari, eg: offline support. Inilah yang membuat Google Gears diterima. Ada batas jelas yang bisa dilihat dengan dan tanpa memakai Gears. Antara siang dan malam.

Bagaimana dengan Browser Plus? Masih dalam tanda tanya. Yahoo belum tampak mengambil diferensiasi yang jelas. in-browser uploading, desktop notification dan client-side image manipulation memang tampak menarik, akan tetapi belum tentu pemakai browser akan menyukai dan memakainya.

Javascript sepertinya masih akan tinggal lama. Karena javascript sudah disana sejak dulu dan sampai sekarang masih banyak digunakan dan dieksplore limitnya oleh banyak orang. Perlu something exceptional yang bisa mengambil hati banyak orang dari javascript. Bisa jadi platform baru, atau kebutuhan baru.

Anda sendiri suka atau pilih mana?

Bonus:

  • Tiga teknologi di atas sebenarnya mulai dikembangkan dalam waktu yang tidak berjauhan (1996-1998). Akan tetapi adoption phase-nya ternyata bervariasi.
  • HTML 5 juga bakal punya postMessage yang sepertinya akan jadi obat penghilang PITA (Pain In The A**) bagi developer javascript dalam hal cross window messaging.

Bacaan:
JavaScript: How Did We Get Here?
Java: A Retrospective
http://en.wikipedia.org/wiki/Adobe_Flash
http://en.wikipedia.org/wiki/Java_Virtual_Machine
http://en.wikipedia.org/wiki/JavaScript

Terinspirasi dari artikel dengan judul yang sama Flash vs New Wave Javascript di PinkHeadBox.

Photo by Marc_Smith