Archive for the ‘Tips and Trick’ Category

Ajax, gunakan atau tidak?

No Comments
Tags: , , , , , ,

Semua bermula dari sebuah debat kecil antara aku dan seorang temanku mengenai penggunaan teknologi Ajax dalam aplikasi yang sedang aku buat untuk menyelesaikan thesis-ku. Dari sana muncul ide untuk menerapkan Ajax dalam beberapa bagian dari aplikasi yang sedang dibuat dari temanku, akan tetapi sayangnya seperti biasa, aku bukan orang yang mudah menerima tanpa analisa usability dari aplikasi yang sedang dibuat. Setelah analisis singkat, aku memutuskan bahwa kami tidak perlu menggunakan Ajax karena yang penting aplikasi yang dibuat cukup simple, dan toh skripsi ini terfokus pada penulisan, bukan aplikasi.

Ajax. Apakah Anda pernah mendengar dengan kata ini? Bila Anda seorang developer web, web designer, atau orang yang cukup memiliki pengetahuan dalam bidang web (termasuk walaupun Anda hanya pengguna saja), rasanya istilah ini bukan lagi istilah yang asing bagi telinga Anda. Asynchronous JavaScript and XML, sebuah teknologi pertukaran data asinkron dalam aplikasi web yang sedang naik daun sejak beberapa tahun yang lalu. Penggunaan Ajax juga menjadi dasar dari perkembangan Web 2.0 dengan hadirnya banyak situs yang menggunakan teknologi ini. Tapi apakah memang teknologi Ajax ini sudah begitu siap untuk diterapkan di semua lini pengembangan web?

Mari kita telusuri dulu asal muasal dan cara kerja Ajax ini. Ajax merupakan teknologi yang tidak tergolong muda karena perkembangannya sudah ada sejak lama, yaitu sekitar tahun 1990-an ketika terjadi booming teknologi internet dan world wide web, akan tetapi teknologi ini mendapatkan namanya sejak perkembangan Web 2.0 semakin besar dengan menghadirkan interaktifitas pengguna dengan penyedia layanan berbasis web. Teknologi ini sendiri menggabungkan antara kerja JavaScript, (X)HTML, dan CSS di browser atau client, data dalam bentuk XML atau JSON, serta web server. Cara kerja teknologi ini hampir sama dengan ketika browser melakukan request halaman ke suatu server, hanya saja tidak semua halaman serta merta dimuat ulang, tetapi melainkan hanya sebagian saja sehingga tampak seolah-olah halaman lebih interaktif.

Sayangnya, walaupun Ajax sudah cukup lama hadir di dunia ini, dan juga sudah cukup lama terjadi booming dan penggunaannya di web dalam 5 tahun terakhir, masih banyak persiapan yang belum matang dalam menggunakan teknologi ini. Hal ini dapat dilihat dari kesiapan user dalam menggunakannya, kesiapan developer dalam memanfaatkannya, kesiapan infrastruktur server dalam mengadopsinya, serta kesiapan user agent atau browser dalam menanganinya dalam suatu standar yang sama.

Masih banyak user yang belum menggunakan browser terbaru yang mengikuti standar sehingga sebagian teknologi ini masih belum dapat terpakai dan ditampilkan dengan sempurna. Banyak developer yang masih belum memahami atau memiliki dasar yang kuat atas Ajax yang akan mereka gunakan. Banyak juga server yang belum siap meng-handle banyaknya request dari penerapan Ajax dengan cara yang salah sehingga akhirnya tidak kuat menghadapi gempuran client karena kurang pahamnya developer yang mengembangkannya. Beberapa browser juga memiliki cara kerja yang berbeda-beda dalam menangani Ajax sehingga menyulitkan developer dalam pengembangannya.

Kehadiran Ajax memang membuat web menjadi dinamis dan interaktif, akan tetapi hal ini tidak serta merta dapat menggantikan posisi aplikasi desktop. Kehadiran cloud computing dan berbagai web application yang menggunakan Ajax, serta perkembangan operating system berbasiskan web hanya akan sebatas melengkapi teknologi desktop yang ada, bukan menggantikannya. Jadi salah besar bila seorang berpendapat dan berpikiran bahwa aplikasi web dikembangkan untuk dapat menggantikan aplikasi desktop secara total. Berbagai halangan seperti bandwidth jaringan, keamanan dan kecepatan pemrosesan pun secara tidak langsung akan berpengaruh terhadap efektifitas aplikasi web.

Ketika user mendapatkan sebuah situs yang menggunakan banyak teknologi Ajax, misalkan saja Facebook — dan tentu saja teknologi ini sudah diadopsi dengan cukup matang oleh Facebook — user akan mudah tertarik karena sisi interaktif dan modern-nya. Hal ini berpengaruh terhadap banyaknya developer yang memanfaatkan teknologi Ajax ketika ingin mengembangkan aplikasi berbasis web, biasanya tanpa memikirkan kekurangannya. Di sisi user yang juga tidak banyak mengetahui seluk-beluk teknologi ini, mereka seringkali menganggap bahwa teknologi Ajax merupakan teknologi yang bagus dan paling modern sehingga sebisa mungkin web yang dikembangkan memakai teknologi ini.

Alhasil dengan tidak pahamnya user dan developer, akhirnya teknologi ini seakan-akan hanya merupakan eye-candy atau hiasan yang seringkali tidak memiliki pondasi yang cukup kuat untuk mendukungnya, misalkan aksesibilitas ketika user mematikan JavaScript atau memblokir beberapa konten seperti iklan yang mungkin saja sifatnya false-positive sehingga Ajax tidak bisa dipakai. Belum lagi dari sisi keamanan, user tidak melakukan validasi dan sanitasi atas pesan yang disampaikan dari server sehingga memungkinkan berbagai bentuk serangan terhadap end-user seperti XSS dan CSRF.

Saya sendiri sudah cukup lama belajar Ajax, sejak hampir 2 tahun yang lalu. Akan tetapi baru berani memasukkannya ke dalam project yang saya kerjakan baru 3 bulan yang lalu setelah project tersebut saya rasa sudah cukup matang dalam memberi pondasi terhadap Ajax. Saya cukup salut melihat atau mendengar orang-orang yang berani menggunakan Ajax dalam project-project yang dibuatnya, padahal pondasi pengetahuannya belum kuat, tapi yah memang saya sendiri belum pernah mendengar secara langsung ada kasus project gagal karena memaksa memakai Ajax.

Jadi bila Anda memang cukup yakin bahwa project Anda tidak akan gagal karenanya, silahkan pakai teknologi ini walaupun Anda baru mengetahui mengenai Ajax hari ini atau beberapa hari yang lalu. Akan tetapi bila Anda merasa bahwa pondasi yang kuat adalah sesuatu yang diperlukan untuk membangun suatu sistem atau aplikasi, silahkan coba untuk mendalami terlebih dahulu dasar-dasar JavaScript, XHTML, CSS, protokol HTTP, serta jaringan sebelum mengimplementasikan. Bahkan akan lebih baik bila memahami cara kerja Ajax dari sisi teoritis, bukan hanya dari sisi coding saja. Jujur saja, coding itu mudah, semudah melakukan kesalahan karena desain sistem atau aplikasi yang salah.

Ada beberapa pertanyaan yang harus Anda tanyakan kepada diri Anda sebelum memakai Ajax:

  1. Bisakan aplikasi Anda melakukan fungsi yang sama tanpa menggunakan Ajax atau ketika JavaScript dimatikan?
  2. Apakah sebelumnya Anda memikirkan konsep web yang Anda kembangkan ketika tidak menggunakan Ajax?
  3. Apakah dengan menggunakan Ajax justru akan memberi efek positif dibanding dengan efek negatifnya?
  4. Apakah Ajax itu benar-benar diperlukan dalam aplikasi yang Anda buat?

Bila minimal 3 jawaban dari pertanyaan di atas adalah “ya”, maka jangan ragu untuk menggunakan Ajax. Sebagai informasi, bila Anda menjawab “tidak” pada beberapa pilihan di atas maka beberapa hal akan dikorbankan, yaitu 1) aksesibilitas, 2) rancangan atau desain, 3) fungsionalitas Ajax, dan 4) simplicity dan fungsionalitas aplikasi.

Jadi, Ajax tidak dikembangkan untuk membuat suatu web menjadi keren karena tidak perlu melakukan reload halaman, bukan pula untuk membuat web menggantikan fungsi aplikasi desktop, tetapi hanya sebuah teknologi yang membantu kenyamanan dan kemudahan bagi end-user.

Problem with MySQL Socket on Linux Ubuntu

1 Comment
Tags: , , , , , , , , , ,

Mengembangkan aplikasi berbasiskan Apache Web Server, PHP dan MySQL tanpa mengetahui seluk beluk mengenai Linux tentu seperti makan nasi tanpa lauk, kurang lengkap rasanya. Dan ketika kita mencoba untuk mengambil sejumlah lauk, ternyata kadang rasanya malah ga cocok sama selera kita atau justru malah terasa pahit. Itu yang mungkin aku rasakan ketika mencoba menginstall Apache Web Server, PHP dan MySQL di Ubuntu.

Bagi sebagian besar orang, menginstall modul baru di Ubuntu cukup dengan menggunakan perintah apt-get saja, dan secara otomatis paket program akan didownload dari repository Ubuntu dan dikonfigurasi secara otomatis pula. Seorang pengguna Ubuntu dapat dengan mudah menginstall MySQL Server dengan mengetikkan sudo apt-get install mysql di terminal atau console.

Dan dalam sekejap seharusnya paket MySQL akan terinstall dan bisa langsung dinikmati tanpa harus neko-neko dengan urusan tetek-bengek seperti konfigurasi dan sebagainya. Bila sang pengguna kurang beruntung, mungkin dia akan menemukan error seperti yang saya alami beberapa hari yang lalu dengan installasi MySQL seperti yang aku deskripsikan di bawah. Sebagai informasi saja, bahwa MySQL yang aku install tidak melalui apt-get seperti yang tertulis di atas, melainkan dari kompilasi secara langsung dari source code sehingga mungkin saja bisa berbeda masalah dan pemecahannya.

Tampaknya salah satu masalah yang paling sering dihadapi baik melalui apt-get atau dengan compile sendiri adalah error ketika mulai menjalankan MySQL Daemon dengan perintah mysqld_safe atau mysql start yang ditandai dengan pesan “Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’” dan proses pun di kill karena error itu. Aku sempat kesulitan mencari solusinya di internet, berhubung juga banyak yang mengalami hal serupa, tapi setelah aku mencoba solusi dari mereka justru masalah ini masih belum terselesaikan. Akhirnya setelah sempat bingung-bingung, aku pun mencoba membaca dokumentasinya (seharusnya ini yang aku lakukan sejak awal sebelum membuang-buang waktu mencari di internet), dan memang dari sanalah semua permasalahan dapat diselesaikan.

(more…)

Moore’s Law vs. Wirth’s Law and Software Development

1 Comment
Tags: , , , , , , , , , , , , , ,

Tanpa kita sadari bahwa sekarang kita sudah semakin masuk ke dalam era teknologi yang semakin lama semakin canggih. Dan seperti biasa, kebanyakan dari kita hanya melihat sisi terang dari perkembangan teknologi itu, mulai dari prosesor yang semakin cepat, program-program yang semakin canggih, tampilan yang semakin memukau sampai kepada koneksi internet yang semakin tinggi kecepatannya. Di sisi lain, banyak kekacauan mulai menggerogoti semua hal tersebut dan sebenarnya menghilangkan semua hal itu sehingga apa yang sebenarnya kita rasakan tidak lebih dari teknologi yang kita rasakan beberapa tahun yang lalu.

Aku membaca sebuah artikel yang menarik di IEEE Spectrum mengenai hukum-hukum perkembangan teknologi. Di sana terdapat 5 hukum + 1 hukum yang menggungkapkan fakta di balik realita semu yang banyak dilihat oleh orang-orang. Kelima hukum tersebut adalah Moore’s Law, Rock’s Law, Machrone’s Law, Metcalfe’s Law, dan Wirth’s Law, ditambah dengan sebuah hukum yang tidak terkait secara langsung dengan yang ingin aku bahas di sini Nielsen’s Law.

Moore’s Law diungkapkan oleh Gordon E. Moore mengatakan bahwa jumlah transistor dalam sebuah prosesor akan berganda setiap tahun. Akan tetapi prediksi ini agak meleset sampai akhirnya sekarang prediksi ini menjadi setiap 18 bulan (walau rata-rata terjadi setiap 22 – 24 bulan), dan hukum ini dijalankan oleh perusahaan prosesor terkemuka: Intel. Di sisi lain dengan penambahan transistor ini, perubahan terjadi pada proses fabrikasi dan berarti tentu berpengaruh pada harga, yang akhirnya dikemukakan melalui Rock’s Law.

Rock’s Law yang didedikasikan kepada Arthur Rock, seorang penemu di Intel, mengatakan bahwa harga peralatan semikonduktor (dalam hal ini untuk membuat prosesor) akan mengganda setiap 4 tahun sekali. Secara peralatan yang diperlukan untuk melakukan “pembedahan” atas prosesor memang semakin canggih, tentu peralatan ini akan semakin mahal. Hal ini akan berpengaruh kepada harga produksi prosesor yang semakin mahal tetapi di-eliminasi oleh hukum ekonomi tentang persediaan dan permintaan barang, dengan kata lain produksi massal.  Akibatnya? Muncullah Machrone’s Law tentang harga PC.

(more…)

Function One: Help Me!!

No Comments
Tags: , , , , ,

Di setiap keyboard pasti terdapat tombol F1. Tapi dari yang aku tahu banyak orang yang ga menekan tombol ini, karena kebanyakan bila menekan tombol ini dalam sebuah aplikasi salah-salah yang muncul adalah sebuah window yang dianggap “menganggu” dengan judul kurang lebih adalah “Help”. Padahal justru window yang mengganggu ini menjadi sebuah hal yang dapat membantu ketika kita pusing dalam menggunakan sebuah aplikasi.

Memang aku akui tidak semua orang suka membaca dokumentasi tertulis, dan lebih suka menanyakan orang lain secara langsung. Bahkan kalau sampai titik ekstrimnya sih bakal membuat orang lain kesal sendiri karena ditanya-tanya terus, padahal jawabannya dapat ditemukan di dokumentasi dengan sedikit usaha yaitu dengan Ctrl + F atau fungsi find. Tentu saja semua ini bukan hanya berlaku bagi penggunaan aplikasi, tetapi juga pengembangan aplikasi.

Kebanyakan software pengembangan aplikasi atau programming memiliki help file yang cukup membantu dan berisi daftar-daftar function dan cara penggunaan aplikasi tersebut. Bahkan untuk seseorang yang belum pernah menyentuh programming sama sekali, bisa saja dalam seminggu menjadi cukup mahir dalam dasar-dasar programming hanya dengan membaca help file dari awal bila orang tersebut benar-benar berniat pada programming atau pengembangan aplikasi. Percaya ga percaya bahwa hal ini memang nyata dan bukan cuma cuap-cuap kosong belaka.

(more…)

Ubuntu 9.04: Masalah pada driver Intel

9 Comments
Tags: , , , , , , , ,

Setelah sekian lama ditunggu, akhirnya Ubuntu 9.04 Jaunty Jackalope hadir juga sejak kemaren, tanggal 24 April 2009. Tanpa menunggu lama, aku langsung melakukan upgrade dari Update Manager yang disediakan di Intrepid. Upgrade memakan waktu yang lumayan lama, dari jam 4 sore kemarennya, dan harus aku hidupkan laptopku sampai jam 2 keesokan harinya (hari ini). Masalahnya bukan hanya karena Speedy sudah semakin pelit dalam ngasi bandwidth nya, tapi juga karena internet yang beberapa kali disconnect sehingga saya harus sabar-sabar dan berusaha ga cepat naik darah. Perjuangan mendownload 900 MB lebih file untuk diupdate oleh Ubuntu pun berakhir sukses beberapa jam yang lalu.

Dan mulailah aku menelusuri satu per satu kisah indah di Ubuntu ini. Splash screen pada saat baru booting ke Ubuntu berubah dengan bar yang lebih sempit, begitu juga ketika di shut down. Saat mengaktifkan Pidgin, setiap ada orang yang logout atau login dari YM, terdapat notifikasi pada bagian kanan atas, begitu juga ketika ada orang yang mengirimkan message. Sayangnya tampilan notification itu terlalu kaku, muncul tiba-tiba, hilangpun tiba-tiba, tanpa ada efek fading. Selebihnya tidak ada yang terlalu berubah jauh dari segi fitur yang ada.

Sayang seribu saya, beberapa hal yang menambah daya tarik di atas hancur ketika mengatahui kenyataan pahit di balik Jaunty ini. Seperti ketika aku mengupdate dari 8.04 ke 8.10, Compiz membuat sedikit masalah dengan tidak menampilkan beberapa efek window, dan akupun harus mencari cara di Google untuk mengaktifkan Compiz ini kembali. Ketika mengupdate ke 9.04 ini, masalah kembali timbul ketika Compiz kembali “membandel” di mana ga bisa diaktifkan dan digunakan sama sekali. Akhirnya karena bingung, aku cari lagi lah cara atau orang yang punya masalah serupa di forum Ubuntu-nya.

(more…)

Membuat Home Web Server dengan Dynamic DNS

49 Comments
Tags: , , , , , , , , , , ,

Bagi sebagian orang yang memiliki web pribadi atau berkecimpung di dunia web, web hosting adalah suatu hal yang wajib dimiliki. Apalagi dengan menggunakan jasa web hosting walaupun hanya sebatas shared web hosting, seseorang dapat memiliki keleluasaan mengatur situs web yang dijalankannya. Beberapa di antaranya seperti pengaturan nama domain, subdomain, konfigurasi web server, konfigurasi file, email dan sebagainya. Dan tentu saja semua itu dilakukan dengan menyewa space atau tempat di penyedia layanan hosting web. Bagaimana kalau kita mencoba untuk menggunakan komputer sendiri di rumah untuk membangun web hosting sederhana? Ga ada salahnya untuk dicoba, dan di sini aku akan sedikit memberi tips dan trick cara membangun web hosting / server di rumah alias home web server.

Terdapat beberapa persyaratan untuk menjalankan web server sederhana di rumah Anda sendiri. Beberapanya adalah seperti berikut:

  • Internet Service Provider (ISP) dengan private public IP (non-shared). Umumnya provider yang menyediakan IP public seperti ini adalah provider broadband di mana IP yang digunakan tidak dibagi-bagi dengan pengguna lainnya, entah apakah IP itu dynamic atau static (akan lebih bagus kalau static sehingga setiap kali terkoneksi, IP nya tidak akan berubah). Sedangkan provider dial-up umumnya menggunakan satu IP untuk beberapa komputer yang terkoneksi ke internet sehingga tidak akan memungkinkan pembangunan web server. Pada contoh di sini aku menggunakan paket Speedy sebagai providernya yang menggunakan Dynamic IP.
  • Modem atau router. Umumnya menggunakan modem yang hanya menuju ke satu client tidak memerlukan konfigurasi yang berarti, akan tetapi bila menggunakan router wireless seperti yang aku lakukan, maka Anda akan sedikit harus mengatur konfigurasi router seperti Port Forwarding atau membuka firewall di modem atau router. Pada contoh di sini, aku menggunakan modem Linksys WAG200G.
  • Server. Tidak harus menggunakan server IBM atau HP yang berbasis Xeon atau Opteron yang harganya selangit. Bahkan komputer atau laptop biasa yang terknoneksi dengan modem dan ISP yang aku sebut di atas juga bisa dipakai sebagai web-server. Aku sendiri menggunakan laptopku yang terkoneksi dengan WiFi ke modem Linksys di atas. Operating system di server bisa berupa Windows, Linux atau sebagainya.
  • Software seperti Apache webserver dan software-software pendukung lainnya seperti PHP, MySQL, dan sebagainya.
  • Domain name. Agak sulit menerapkan secara langsung agar sebuah domain dapat menunjuk ke sebuah alamat IP untuk server sederhana seperti ini apalagi menggunakan Dynamic IP. Solusinya adalah dengan menggunakan layanan DynDNS.com yang akan mengubah sebuah nama domain (lebih tepatnya subdomain) untuk menunjuk ke IP server Anda. Mengenai ini akan dijelaskan di bawah.
  • Pengatahuan dasar mengenai networking, seperti cara mengatur IP address sesuai sistem operasi masing-masing, cara mengatur modem atau router, dan beberapa istilah networking (istilah-istilah yang belum dimengerti dapat dicari di internet).

Perhatian! Dengan mencoba membuat home web server ini, berarti Anda akan membuka kemungkinan komputer Anda diakses oleh orang lain dari luar (remote). Harap memperhatikan software-software keamanan seperti firewall dan antivirus agar selalu aktif dan selalu terupdate sebelum membuka web server Anda untuk diakses dari luar.

(more…)

13 Alasan Utama yang Bisa Membuat Account Facebook Diblokir atau Dihapus

262 Comments
Tags: , , , , , , , ,

Post ini dikutip dari GetSatifaction.com dan sudah aku terjemahkan supaya lebih mudah dimengerti, dan dengan sedikit komentar tambahan dariku tentunya. :) Aku sendiri nemuin website itu secara ga sengaja waktu lagi ngeliat-liat kaskus.

Seperti judul di atas, entry ini akan membahas 13 alasan utama kenapa Facebook seorang user bisa diblokir, di-disable, atau dihapus. Sebenarnya istilah dihapus untuk profile di Facebook ga sepenuhnya benar, karena Terms of Use Facebook mengatakan profile tidak akan dihapus, melainkan hanya diblokir status keaktifannya. Khusus bagi yang udah pernah diblokir, dan bingung kenapa bisa sampai diblokir, mungkin di sini bisa memberi sedikit memberi pencerahan dan tentunya jangan sampai diulangi lagi. :D Oke, kita langsung aja deh ke list alasan kenapa kamu bisa diblokir oleh pihak Facebook.

(more…)