October, 2009


17
Oct 09

AQUA – Satu dari Kita, 10 untuk Mereka

Aqua - Satu dari Kita, 10 untuk Mereka

Aqua - Satu dari Kita, 10 untuk Mereka

Melihat kemasan air mineral AQUA gelas, ada hal yang menarik, yaitu tanda lingkaran bertuliskan “Satu dari Kita, 10 untuk Mereka”. Saya tidak tahu secara detail tentang program ini, tapi saya yakin jika program ini adalah bentuk program kemanusiaan. Mungkin secara kasar, bila kita membeli 250 mL air mineral AQUA, maka kita ikut berpartisipasi dengan membantu 2500 mL atau 2,5 liter air bersih untuk saudara kita yang kurang beruntung di sana.

Bila Anda mengikuti perjalanan karir Muhammad Yunus, Anda akan mengetahui bahwa pada Oktober tahun 2005 di Prancis, beliau bertemu dengan Frank Riboud, CEO dari Groupe Danone (French). Sejak pertemuan itu, CEO Danone tersebut menjadi tertarik dengan konsep social business yang digagas Muhammad Yunus dan mau bekerjasama di Banglades. Dugaan saya, bahwa Danone di Indonesia, melalui AQUA, saat ini juga mulai merintis mengimplementasikan social business. Bila benar, ini adalah berita bagus bagi dunia usaha di Indonesia.


15
Oct 09

Basis Data Berorientasi Dokumen

Salah satu topik hangat saat ini adalah NoSQL. NoSQL adalah basis data yang tidak menggunakan SQL. Bukan tidak menggunakan SQL karena adanya tambahan lapisan abstraksi seperti ORM (Object-Relational Mapping), tapi secara native memang tidak menggunakan SQL seperti yang umum kita temui pada basis data relasional. Pada tulisan ini, saya akan memberi dua buah contoh basis data berorientasi dokumen (document-oriented database). Jenis basis data ini sangat berbeda dengan basis data relasional yang banyak kita jumpai saat ini.

Saya mengambil dua contoh basis data berorientasi dokumen yang dibuat menggunakan Erlang, yaitu Apache CouchDB dan riak. Kedua basis data ini menggunakan Map/Reduce, RESTful HTTP, dan JSON. Tujuan umumnya pun sama, yaitu skalabilitas, terdistribusi, performa tinggi, dan fault-tolerant.

1. Apache CouchDB

CouchDB adalah salah satu produk dari The Apache Software Foundation. Bagi Anda yang ingin mengetahui lebih jauh tentang basis data ini, O’Reilly menyediakan versi gratis dari buku “CouchDB: The Difinitive Guide”.

Apache CouchDB

Apache CouchDB

2. riak

Baik CouchDB maupun riak sama-sama menggunakan RESTful HTTP dan JSON. Dari protokol yang digunakan, kita dapat menebak dengan mudah bahwa basis data tersebut sejatinya adalah sebuah web, bahkan riak secara terang-terangan menyebut dirinya sebagai document-oriented web database. Riak sangat terinspirasi oleh Amazon Dynamo, teorema CAP Eric Brewer, dan web secara general. Pada riak, data disimpan berdasarkan kombinasi key-value. Sebagai gambaran umum tentang riak, Anda dapat melihat presentasi dari event NYC NoSQL 5 Oktober 2009 oleh Bryan Fink.

riak MapReduce

riak MapReduce

Basis data di atas (basis data berorientasi dokumen) bukanlah pengganti basis data relasional. Basis data di atas sangat cocok bila digunakan untuk membangun sistem terdistribusi yang membutuhkan skalabilitas dan performa tinggi, seperti pada aplikasi web dengan jumlah data dan concurrency yang sangat besar.


13
Oct 09

5 Web Framework Untuk Bahasa Pemrograman Erlang

Setelah mencoba beberapa bahasa, akhirnya untuk saat ini saya memilih Erlang (dan Scala) sebagai bahasa pemrograman untuk pemrograman fungsional. Erlang relatif lebih mudah dan sederhana dibanding Scala. Scala lebih kompleks akibat penggabungan dua paradigma pemrograman, yaitu object-oriented dan fungsional, sehingga lebih sulit dipelajari bila belum memiliki latar belakang pengetahuan tentang konsep pemrograman fungsional.

Bagi pengembang aplikasi berbasis web yang membutuhkan performa tinggi, skalabilitas, reliabilitas, concurrency tingkat ekstrim, maka Erlang dapat menjadi solusi.

1. Webmachine

Webmachine adalah framework yang sangat unik, dibuat untuk membuat aplikasi web secara RESTful.

Webmachine

Webmachine

2. Nitrogen

Nitrogen dibangun menggunakan arsitektur event-driven. Nitrogen juga menyediakan custom tags untuk mempermudah membangun aplikasi berbasis Ajax maupun Comet.

Nitrogen

Nitrogen

3. Erlang Web

Konsep Erlang Web hampir mirip dengan Java Servlet dan Java Server Page (JSP). Erlang Web menggunakan template dan controller untuk membangun aplikasi.

Erlang Web

Erlang Web

4. Erlyweb

Seperti kebanyakan web framework, Erlyweb menggunakan MVC pattern. Erlyweb juga menyediakan lapisan abstraksi untuk basis data, yaitu Erlydb.

Erlyweb

Erlyweb

5. Beep Beep

Beep Beep sangat terinspirasi oleh Ruby On Rails, salah satu contohnya adalah prinsip RoR yang sangat populer, yaitu convention over configuration.


11
Oct 09

The Pomodoro Technique

Remember, Time is a greedy player who wins without cheating, every round! –Baudelaire

Inti dari teknik pomodoro adalah bagaimana kita memanage waktu sehingga dapat meningkatkan fokus dan konsentrasi, meningkatkan dan mempertahankan motivasi, meningkatkan kinerja maupun proses belajar.

Konsep yang digunakan sangat sederhana sekali. Pomodoro sejatinya adalah sebuah timer untuk memasak dengan interval 25 menit. Nama pomodoro sendiri diambil dari timer yang berbentuk buah tomat (dalam bahasa italia, tomat = pomodoro).

The Pomodoro Technique

The Pomodoro Technique

Pomodoro tradisional berdurasi 30 menit (25 menit kerja + 5 menit istirahat). Satu pekerjaan dapat membutuhkan waktu lebih dari 25 menit, sehingga membutuhkan lebih dari satu pomodoro. Misal, Anda membutuhkan waktu 60 menit untuk menyelesaikan suatu pekerjaan, maka Anda memerlukan 3 pomodoro. Supaya lebih efektif, karena keterbatasan fisik dan psikologis manusia, sebaiknya Anda melakukan istirahat yang lebih panjang untuk setiap 4 pomodoro, misal 15-30menit.

Ada berbagai teknik atau aturan untuk mengoptimalkan teknik pomodoro, misalnya untuk pekerjaan yang membutuhkan lebih dari 5-7 pomodoro, sebaiknya pekerjaan tersebut dipecah-pecah menjadi sub-sub yang lebih kecil supaya lebih mudah dimanage. Untuk penjelasan yang lebih lengkap tentang pomodoro, Anda dapat membaca buku pomodoro berjudul The Pomodoro Technique [PDF].

Bila Anda bekerja dengan komputer, Anda dapat memanfaatkan beberapa perangkat lunak yang dirancang untuk mempraktekan teknik pomodoro. Pengguna Mac OS dapat menggunakan Pomodoro Desktop, sedangkan pengguna sistem operasi lainnya (termasuk Mac), Windows maupun Linux dapat menggunakan focus booster (butuh Adobe AIR).


7
Oct 09

7 Prinsip Social Business

The 7 Principles of Grameen Social Business

The 7 Principles of Grameen Social Business

Pada World Economic Forum di Davos, bulan Januari 2009, Muhammad Yunus menulis “The Seven Principles Of Grameen Social Business”. Prinsip-prinsip ini juga dapat menginspirasi social business lainnya. Berikut isi dari “The Seven Principles Of Grameen Social Business”:

  1. Business objective will be to overcome poverty, or one or more problems (such as education, health, technology access, and environment) which threaten people and society; not profit maximization
  2. Financial and economic sustainability
  3. Investors get back their investment amount only. No dividend is given beyond investment money
  4. When investment amount is paid back, company profit stays with the company for expansion and improvement
  5. Environmentally conscious
  6. Workforce gets market wage withbetter working conditions
  7. …do it with joy

Dengan prinsip-prinsip tersebut, dapat kita ketahui bahwa social business memiliki karakter tersendiri yang membedakannya dengan bisnis konvensional. Sebagai catatan, prinsip-prinsip di atas hanyalah salah satu contoh yag digunakan pada Grameen yang didirikan oleh Muhammad Yunus. Social business lain kemungkinan dapat memiliki prinsip yang berbeda, namun secara garis besar tetap sama, dimana tujuan utamanya adalah mengatasi suatu masalah sosial tertentu.

Di saat pemerintah sedang menggalakkan entrepreneurship, khususnya kepada muda-mudi bangsa Indonesia, selain diberi kemudahan untuk memulai usaha (misal: bantuan modal), juga lebih baik lagi bila seandainya pemerintah juga menggerakkan social business entrepreneurship, karena kita tahu bahwa masalah kemiskinan, kekurangan gizi, pendidikan buruk, kesenjangan sosial, adalah masalah bangsa ini (dan juga masalah dunia) yang harus segera ditindak lanjuti.


5
Oct 09

Berbagai Framework Untuk Behaviour-Driven Development

Behaviour-Driven development (BDD) secara prinsip kurang lebih sama dengan test-driven development (TDD), hanya saja (bila Anda mengembangkan perangkat lunak secara object-oriented) BDD lebih fokus pada pengujian terhadap perilaku suatu objek, bukan mengenai perihal seperti apa objek itu (misal: struktur objek). Ada cukup banyak framework yang dapat kita gunakan untuk mempermudah pengembangan perangkat lunak secara BDD. Bagi yang masih asing terhadap BDD namun sudah pernah mengenal tentang teori BDD, atau siapapun Anda yang merasa tertarik tentang topik ini, ada baiknya untuk mencoba mengimplementasikannya secara langsung dengan bantuan framework yang Anda sukai.

Selamat mencoba BDD. Red – Green – Refactor – Red – Green – Refactor – …

O ya, kalau ada yang tahu framework BDD lainnya, silahkan berbagi melalui komentar di posting ini.