Open Source : Ekspresikan Mimpi Kita

29 10 2009

Jika sebuah pertanyaan “Mengapa anda memilih menggunakan software open source ?”  dilemparkan baik kepada orang yang telah lama maupun baru menggunakan software open source, maka sebagian besar akan menjawab “Gratis!!” Jawaban tersebut memang wajar mengingat sebagian besar software open source memang gratis. Belum lagi  Free Software Foundation (FSF), sebuah gerakan yang diprakarsai oleh Richard Stallman menggunakan istilah Free Open Source Software mengakibatkan orang berpikiran “free” sebagai gratis. Padahal free yang dimaksud disini adalah freedom atau kebebasan. “It’s free as in freedom ___think free as speech, not free beer”. Free beer  diartikan sebagai kebebasan mendownload software secara gratis. Ada empat kebebasan adalah sebagai berikut :

  1. Kebebasan menjalankan program.
  2. Kebebasan mempelajari isi program dan mengubahnya sesuai dengan kebutuhan
  3. Kebebasan mendistribusikan kembali program
  4. Kebebasan mengembangkan program dan merilis hasil pengembangan kita kepada komunitas

Kebebasan nomor dua dan empat sering tertutupi dengan kebebasan nomor satu dan tiga. Padahal kebebasan nomor dua dan empat sangat berarti dalam pengembangan sebuah open source software. Yang pada akhirnya mampu menciptakan daya kreativitas dan inovasi untuk mengembangkan software tersebut atau membuat software baru.

Gotong Royong dalam Open Source
Empat kebebasan dalam open source sangat cocok dengan budaya bangsa kita, yaitu budaya gotong royong. Sebuah budaya yang semakin lama terkikis dengan individualisme manusia saat ini. Gotong royong yang dimaksud disini adalah budaya untuk mengembangkan software bersama-sama dan memberikan timbal balik berupa laporan bug atau perbaikan (Parallel Developing and Debugging).  Namun budaya gotong royong dalam open source belum terlihat dalam bangsa kita. Penulis baru menemukan pengembangan BlankOn yang telah dilakukan dilakukan secara gotong royong. Sebagian besar OSS yang penulis temukan di Indonesia masih dibuat oleh perorangan atau kelompok kecil. Individu dan kelompok tersebut hanya memberikan sebuah paket source code dan jarang memberikan kesempatan kepada pengguna akhir untuk memberikan timbal balik baik berupa bug atau patch (perbaikan) dari programnya. Metode demikian dinamakan metode Cathedral[Raymond-2000]. Akibatnya software tersebut mempunyai kecepatan rilis yang lambat. Sebagai contoh kita dapat melihat berbagai aplikasi open source pada site http://opensource-indonesia.com/, namun aplikasi-aplikasi tersebut hanya berbagi source code, bahkan ada yang sekedar informasi saja. Ada contoh software dengan pengembangan metode cathedral yang dikembangkan secara individu, yaitu sisfokol, Sistem Informasi Sekolah yang dikembangkan secara individual oleh Agus Muhajir. Pengembangan software open source berkelompok dengan metode cathedral dapat kita lihat pada klorofil3 yaitu sebuah aplikasi e-business berbasis web (PHP).
Dengan mempertimbangkan jumlah penduduk Indonesia yang sangat besar dan data dari koran tempo yang menunjukkan bahwa selama periode 2001-2005 pekerja IT Indonesia di sektor perangkat lunak meningkat 22.2%[korantempo-2002], kita dapat menggunakan metode Bazaar[Raymond-2000] dalam mengembangkan open source software. Bazaar adalah sebuah metode yang bersifat terbuka dimana masyarakat dapat melihat kode ketika masih dalam proses pembangunan (development) dan dapat pula berkontribusi untuk menentukan fitur-fitur apa yang dinginkan dan memperbaiki bug selama software dalam status pengembangan. Metode ini sangat cocok dengan budaya gotong royong bangsa kita. Dalam metode Bazaar, komunitas memiliki kekuatan yang cukup besar terhadap pengembangan open source. Komunitas dalam hal ini tidak hanya berperan sebagai pengguna akhir, namun dapat berkontribusi berupa donasi, perbaikan kesalahan, dokumentasi dan hal-hal lain yang menunjang keberlangsungan suatu software.

Berinovasilah untuk mewujudkan mimpi
bigbird2

Gambar Big bird diambil dari Flickr yang diupload oleh Evelynishere dengan Lisensi Creative Common

Caroll Spinney, seorang pemeran tokoh Big Bird dalam bukunya The Wisdom of Big Bird[Spinney-2003] mengatakan, “Pertama-tama Anda harus bermimpi dan kemudian anda harus percaya kepada impian itu. Hanya dengan cara itulah impian anda menjadi kenyataan. … Bayangkan dunia Anda seperti yang anda inginkan, kemudian cobalah wujudkan.”. Sebuah mimpi tercipta dari informasi-informasi yang pernah ada sebelumnya. Manusia bermimpi bisa terbang ketika melihat burung terbang. Seorang anak bermimpi menjadi terkenal seperti artis X setelah melihat sepak terjang artis tersebut di dalam layar kaca. Mimpi yang indah bukanlah meniru persis seperti aslinya, namun berusaha mengembangkannya menjadi lebih baik sesuai dengan apa yang kita inginkan. Begitu pula sebuah software baru tercipta didapatkan karena adanya kebutuhan dan ditambah dengan mempelajari software-software yang telah ada sebelumnya. Kebebasan kedua dalam open source memberikan keleluasan pada kita untuk melakukan itu semua, dimana kita diberi hak untuk membaca dan mempelajari kode program yang kita gunakan. Tidak seperti software closed source yang hanya mendistribusikan kode biner sehingga kita kesulitan mempelajarinya.
Tidak hanya membaca dan mempelajari, bahkan dalam kebebasan keempat Open Source, kita diberi ijin pula untuk melakukan perubahan dan pengembangan terhadap software tersebut selama hal tersebut sesuai dengan kaidah-kaidah yang tertulis dalam lisensi software tersebut. Software-software yang bersifat proprietary dan closed source tidak akan memberikan hak kita seperti itu karena mereka dilindungi oleh paten. Berbeda dengan software open source yang dilindungi oleh copyright. Apakah beda paten dan copyright ? Paten melindungi ide dari pembuatan software tersebut, sedangkan copyright tidak. Copyright tercipta secara otomatis ketika program tersebut dibuat, sedangkan paten harus dikeluarkan oleh lembaga yang berwenang. Paten ini sangat berbahaya dalam mengembangkan produktivitas software, sebagaimana yang digambarkan oleh Richard Stallman ketika berpidato di Cambridge University pada tanggal 25 Maret 2002 [Stallman-2002]. Ketika kita ingin membuat suatu program, kita harus mencari apakah ada paten yang terkait dengan ide pembuatan software tersebut. Ketka kita tidak menemukan paten yang berkaitan dengan ide yang kita miliki, maka kita mulai membuat software tersebut. Ternyata beberapa bulan kemudian selama berlangsung proses pengerjaan  software, keluarlah sebuah paten yang menyerupai ide software yang kita miliki. Pada saat itulah kita tidak boleh melakukan klaim bahwa software yang kita buat adalah ide kita sendiri. Kita harus membayar kepada orang yang memliki paten tersebut, meskipun ide tersebut adalah berasal dari kita sendiri. Sebagai bahan informasi, paten yang terdaftar dapat tertahan selama 18 bulan lamanya dan dalam kurun waktu tersebut ide dari paten tersebut harus dirahasiakan. Padahal 18 bulan adalah waktu yang sangat cukup untuk membuat sebuah sotware baru.

Baca entri selengkapnya »





Transit Visa

17 10 2009

Tulisan ini saya buat sebagai catatan pribadi sekaligus sharing buat teman-teman yang akan melakukan perjalanan ke LN. Untuk melakukan perjalanan ke LN, kita butuh visa sebagai surat ijin masuk ke negara tertentu. Visa tersebut nanti akan tertempel di buku paspor kita. Ada pula negara yang mengharuskan kita untuk mempunyai visa meskipun kita hanya transit untuk pindah pesawat. Berikut pengalaman pribadi dan teman ke beberapa negara :

  • HongKong, paspor biasa bisa transit bahkan tinggal maksimum 30 hari
  • Inggris, paspor biasa bisa transit maksimum 24 jam selama punya visa Irlandia multiple Entry
  • USA, paspor biasa / dinas TETEP butuh Visa
  • Belanda, paspor biasa bisa transit selama tidak keluar airport.
  • Singapura, bisa transit bebas, keluar bandara …
  • Turki, hanya paspor dinas yang bebas transit

Ok, yang lain silahkan ditambahkan ya …..





JSONP

5 09 2009

Udah pernah memakai JSONP ? JSONP adalah kepanjangan dari JSON with Padding. Bisa dikatakan sebagai JSOn jarak jauh begitu. Dimana kita menambah script di header atau di body yang sebelumnya tidak ada source aslinya( semacam injection ). JSONP memiliki callback function yang terletak di klien.
contoh :
misalnya kita punya file aini.html yang mempunya script java script dibagian HEAD tag sbb :

function loadJSON()
{
var url = 'tes.json?format=json&jsoncallback=iin';
var script = document.createElement("script");
script.setAttribute("src", url);
script.setAttribute("type", "text/javascript");
document.body.appendChild(script);
}
function iin(data)
{
alert(data.alamat);
}

kemudian dibagian BODY kita tambahkan parameter onload sbb :

onload="loadJSON();"

sekarang kita buat file tes.json

iin({nama: 'Nur Aini', alamat: 'hazel park,Galway'});

Jika file aini.html dipanggil dari browser, maka akan tampil seperti ini

Jika kita mencoba membuka memakai firebug atau debugger javascript lainnya, maka akan terlihat tambahan kode dibawah ini :


jsonphandler({nama: 'Nur Aini', alamat: 'hazel park,Galway'});

Happy coding all ….





EasyEclipse untuk JavaScript

25 08 2009

Pemograman JavaScript memang sedang berkembang pesat. Berbagai library baru bertebaran. Namun terkadang library tersebut susah untuk dibaca :( Sebagai pengguna barang-barang open source (I love you OSS !), akhirnya saya temukan pasangan bagus untuk melakukan koding PHP dan JavaScript yaitu EasyEclipse LAMP dengan JSEclipse.
Bagaimana instalasinya ? Sama dengan plugin easyeclipse atau eclipse lainnya :

  1. Pergi ke menu Help > Software Updates ->Find and Install
  2. Pilih Search for new features to install
  3. Klik New Remote Site button
  4. Isi Name: JSEclipse.
    dan URL: http://download.macromedia.com/pub/labs/jseclipse/autoinstall/
  5. Centang newly added entry’s checkbox
  6. Klik Finish
  7. Pilih fitur yang diinstall, klik Next
  8. Keluarlah Lisensi. Pilih I Accept :D
  9. Next dan Finish
  10. Keluarlah dialog instalasi berhasil dan restart EasyEclipsenya.

Namun pada saat instalasi pertama langkah ke 5 saya menemukan error :
Aptana RadRails (0.8.0.200707021211) requires plug-in “com.aptana.ide.core” 
untuk itu anda harus disable RadRails dari menu Help->Manage Configuration
Ulangi langkah instalasi mulai dari pertama.
Jika setelah instalasi selesai, dan masih terjadi error saat file javascript dibuka, seperti gambar dibawah ini

Baca entri selengkapnya »





Metaweb Query Languange

25 08 2009

Yuk kita mulai main-main lagi di dunia web. Kali ini saya coba mengulas Metaweb Query Languange alias MQL. Apa itu ? Sedikit cerita, Metaweb adalah perusahaan yang memaintence FreeBase semacam wikipedia yang mendukung semantic web. Metaweb menyediakan API untuk melakukan query yang sering disebut dengan MQL. MQL ini semacam JSON object yang dapat dikirimkan lewat URL kemudian hasilnya pun dikembalikan dalam bentuk JSON.
Sebagai contoh :
{
  “type”:“/location/country”,
  “name”:“indonesia”,“capital”:[]
}
yang artinya carilah ibukota (capital) dari indonesia dalam database /location/country
akan mendapatkan hasil seperti ini :
{
  “code”:          “/api/status/ok”,
  “result”: {
    “capital”: [
      "Jakarta"
    ],
    “name”: “Indonesia”,
    “type”: “/location/country”
  },
  “status”:        “200 OK”,
  “transaction_id”: “cache;cache02.p01.sjc1:8101;2009-08-25T10:49:01Z;0008″
} Baca entri selengkapnya »