Source Code

Banyak orang mendengung-dengungkan open source, namun sebagian orang mempertanyakan ini: lalu kalau punya sourcenya, buat apa? saya kan bukan programmer?. Bukan cuma programmer yang bisa diuntungkan secara langsung dengan ketersediaan source code.

Pertama perlu saya ceritakan sedikit sejarah open source ini dalam 2 paragraf. Gerakan untuk membuka kode sumber program diawali oleh Richard Stallman, dan dinamakan sebagai Free Software Movement. Stallman menggunakan kata “free” dalam arti kebebasan, bukan dalam arti gratis. Karena kata Free ini dianggap kurang bisa “menjual”, maka muncullah istilah baru “open source”, yang ingin menekankan source code yang terbuka. Stallman sendiri tidak setuju dengan istilah open source, karena dalam kata opensource, semangat “kebebasan” tidak terasa. Sebagian orang mengambil jalan tengah dengan menggunakan istilah Free and Open Source Software (FOSS).

Kebebasan apa yang dimaksud dalam bidang software? Stallman mendefinisikan 4 tingkat kebebasan. Nomor 0: bebas menjalan program untuk keperluan apa saja, Nomor 1: bebas mempelajari program dan mengubah program semau kita, Nomor 2: bebas membagikan program ke orang lain, Nomor 3: bebas menyebarkan perubahan program ke orang lain. Membuka source code akan memberi jalan untuk kebebasan-kebebasan tersebut.

Sekarang coba kita lihat contoh-contoh di mana source code yang terbuka berguna bagi programmer dan non programmer. Kita lihat kasus sangat sederhana ini (dialami oleh ribuan orang): ada program yang fiturnya kurang sedikit dari yang kita inginkan. Ini bisa berupa aplikasi desktop, mobile atau web. Kita ambil contoh kecil, mungkin Anda cuma ingin menambahkan supaya muncul nama hari pasaran Jawa di blog Anda (Sabtu Pon misalnya). Jika Anda memakai software yang sifatnya tertutup, maka Anda perlu meminta kepada pembuat aplikasi itu. Perubahan menambahkan nama pasaran itu sangat mudah, tapi kira-kira apakah pembuatnya mau menambahkan? apakah itu memberi nilai komersial yang besar untuknya sehingga dia mau menambahkannya? Apakah perubahan itu akan merepotkan pembuat software tersebut, bagaimana jika orang dari daerah lain ingin kalender mereka juga didukung?

Nah sekarang kita lihat andaikan aplikasi itu sifatnya open source: Anda bisa minta tolong siapa saja untuk menambahkan hari pasarannya. Anda bisa memposting iklan di situs freelancer (misalnya guru.com), lalu Anda kan mendapatkan tawaran yang bersaing. Hal yang sama tidak bisa Anda lakukan jika aplikasinya tidak open source, karena hanya produsen aplikasi tersebut yang bisa melakukannya. Contoh yang saya berikan ini bukan hal yang mengada-ada. Coba Anda tengok ke situs guru.com atau situs freelancer sejenis, banyak sekali pekerjaan yang berhubungan dengan memodifikasi source code. Dengan adanya source code, sebagai end user, Anda punya pilihan. Selain pekerjaan modifikasi, Anda juga bisa memberi kontrak maintenance ke pihak manapun yang kerjanya bagus dan harganya bersaing. Nah di sini Anda sebagai user punya kebebasan.
Lanjutkan membaca “Source Code”

Gadget dan mainan baru

Sejak Jonathan lahir, waktu saya untuk ngoprek program dan hadware semakin berkurang, tapi bukan berarti tidak ada waktu sama sekali. Setiap siang saya pulang dari tempat kerja untuk bermain dengan Jonathan. Demikian juga tiap malam main dengan Jonathan. Setelah Jonathan tidur, barulah “hacking time” dimulai. Dari sejak awal tahun ini sudah ada banyak yang bisa dioprek, tapi sebagian besar belum optimal ngopreknya.

Pertama ada Beagleboard-XM, ini sumbangan untuk development FreeBSD, namun sayangnya sampai saat ini saya masih belum optimal mengembangkannya:

Lalu berikutnya dapat gratis eZ430-F2013 karena ada promosi (termasuk juga gratis ongkos kirim). Saya belum bereksperimen banyak dengan benda ini, tapi sudah cukup belajar mengenai MSP430. Saya juga sempat menulis tutorial singkat untuk mulai bermain-main dengan benda ini:

Karena promosi tersebut, saya jadi tertarik pada MSP430, jadi saya membeli LaunchPad. Harga satuannya 4.30 USD, termasuk ongkos kirim. Saya beli 3 buah (max boleh beli 3, karena sebenarnya ini adalah benda promosi, mereka jual rugi, 4 dollar 30 sen = 4.30 karena mempromosikan MSP430):



Salah satu dari 3 benda itu saya pakai untuk mengendalikan colokan listrik (electrical socket) via USB:

Lanjutkan membaca “Gadget dan mainan baru”

Bible Plus dan Tiny Meter sudah di Blackberry App World

Beberapa waktu yang lalu, RIM menggratiskan biaya untuk menjadi publisher di App World. Tadinya biayanya 200 USD untuk mendaftar dan bisa mengupload 10 aplikasi. Selain itu diperlukan syarat akta notaris. Persyaratan biaya dihapusan, hanya tinggal perlu akta notaris, tapi persyaratan itupun sekarang tidak wajib lagi (cukup scan identitas).

Karena sangat excited ingin menerbitkan Bible Plus di App World, saya segera mendapatkan akta notaris. Lalu sebagai percobaan, saya mengirimkan aplikasi saya BB meter, tapi ternyata sekarang nama aplikasi tidak boleh lagi mengandung kata “BB” atau “Berry”, jadi saya mengubah namanya jadi Tiny Meter. Sekitar 5 hari kemudian, aplikasi tersebut diterima di App World.

Setelah berhasil menerbitkan Tiny Meter dan mengerti prosesnya dengan lebih baik, saya mensubmit Bible Plus, dan 5 hari kemudian diterima. Sayangnya di awal, ada banyak review jelek dari orang-orang yang tidak membaca dokumentasi bahwa Alkitab yang disertakan hanya perjanjian baru KJV, tapi pengguna bisa mendownload Alkitab lain. Komentar para pemberi satu bintang ini adalah: “payah hanya KJV perjanjian baru saja”. Padahal fakta tersebut sudah dijelaskan di deskripsi, sudah ada di screenshoot, dan jelas-jelas ada menu “select bible”, “add bible”, dan “download bible”.
Lanjutkan membaca “Bible Plus dan Tiny Meter sudah di Blackberry App World”

OS Hybrid Blackberry: Usaha yang sia-sia

Karena jadi bahan diskusi di berbagai tempat, saya tambahkan FAQ di bagian akhir, supaya orang yang kurang mengerti teknis bisa mengikuti. Saya baru balas sekarang, karena anak pertama saya baru lahir (lihat posting mengenai Jonathan mengenai beritanya). Baca juga komentar saya atas komentar orang lain, sebelum Anda membuat komentar baru.

Salah satu hal yang menarik bagi saya di komunitas BB adalah adanya OS Hybrid. OS Blackberry terdiri atas banyak modul, dan OS Hybrid ini adalah gabungan modul-modul dari berbagai versi OS. Teorinya katanya begini: di OS versi X browsingnya cepat, tapi memorinya boros, di OS versi Y memorinya hemat tapi browsingnya lambat, nah untuk mendapatkan hasil terbaik, modul-modul kedua OS tersebut digabung, supaya browsingnya cepat dan memorinya hemat.

Sebagai programmer, hal yang terpikir oleh saya adalah: bagaimana caranya orang-orang ini tahu modul mana yang harus dipilih? Jangan-jangan mereka hanya ngasal saja. Berdasarkan penyeledikan saya, kesimpulan yang saya dapatkan adalah: ya mereka cuma ngasal saja. Atau boleh dibilang 99% Hybrid sebenarnya tidak perlu (akan saya jelaskan yang 1% itu di bagian akhir).

Kenapa “menuduh” demikian? Saya tidak menuduh, saya menggunakan metode ilmiah untuk membuktikannya. Mengapa saya menghabiskan waktu cukup banyak (beberapa jam) untuk menyelediki hal ini? pertama saya penasaran, kenapa ada banyak sekali hybrid, dan nasihatnya kebanyakan sama: “dicoba aja dulu”, dan “cari yang mana yang cocok”. Kalau memang OS hybrid tersebut bagus, seharusnya akan berjalan dengan baik di semua handset (yang hardwarenya sama persis). Jadi saya kemudian mulai meragukan OS hybrid, dan ingin membuktikan bahwa OS hybrid ini adalah hal yang sia-sia. Siapa tahu tulisan saya ini bisa membujuk banyak orang agar menghemat bandwidth (tidak mendownload OS hybrid), dan menghemat waktu (instalasi dan boot Blackberry butuh waktu lama).

Pertama perlu diketahui bahwa setiap versi OS Blackberry, terdiri atas dua bagian penting, bagian pertama adalah firmware (disebut juga file radio). Firmware ini hanya berupa satu file. Dan bagian kedua adalah file module Java (.cod), ada banyak modul (banyak file .cod) dalam sebuah paket OS.

Isi file firmware adalah yang paling penting, di situlah JVM (Java Virtual Machine) dan segala driver hardware (termasuk driver GSM, driver kamera). Di OS 6, komponen terpenting browser (rendering engine) juga berada di firmware. Firmware ini ditulis dalam bahasa C, dan dikompilasi untuk target ARM. Beberapa komponen yang membutuhkan kecepatan tinggi juga ditulis dalam C (seperti misalnya Video decoder/encoder, lalu SQL engine yang menggunakan SQLite). Saat ini belum ada yang bisa memodifikasi file firmware ini, karena file ini ditandatangani secara digital oleh RIM, dan belum ada yang bisa (atau mau meluangkan waktu) untuk mencari kelemahan bootloadernya. Yang dilakukan oleh para pembuat Hybrid hanyalah memakai firmware versi sebelumnya atau sesudahnya (jadi mereka tidak bisa memodifikasi file ini).

Bagian yang disusun oleh para pembuat hibrid adalah file-file/modul .cod. File dari berbagai OS bisa dicampur menjadi satu, dan inilah yang disebarkan. Klaim dari para pembuat hibrid biasanya adalah: pemakaian memori lebih sedikit, lebih stabil, dan batere akan tahan lebih lama. Kadang ada juga klaim kamera akan lebih baik gambarnya.

Secara teori beberapa hal bisa diatur dari file cod milik sistem. Misalnya di engineering screen (escreen), kita bisa mengubah beberapa parameter firmware. Tapi hasil penyelidikan saya menunjukkan bahwa nilai yang digunakan adalah selalu nilai default dari firmware, dan tidak ada ada modul RIM yang mengubah-ubah parameter GPS, kamera, atau signal radio GSM/GPRS/3G/CDMA. Jadi secara praktis: menukar COD dari satu versi OS ke versi yang lain tidak akan mempengaruhi kinerja GPS, signal, atau kamera.

Lalu bagaimana membuktikan bahwa OS hybrid itu kebanyakan hanya ngawur saja? Lalu apa penjelasannya yang setelah memakai hybrid, pemakaian memorinya turun atau baterenya bisa bertahan lebih lama?. Pertama saya jelaskan dulu pembuktiannya, lalu saya akan mencoba menjawab pertanyaan mengapa hybrid tampaknya “berhasil”.

Lanjutkan membaca “OS Hybrid Blackberry: Usaha yang sia-sia”

Salah Kaprah Mengenai Memory dan Batere Blackberry

Buat yang malas membaca detail teknis yang panjang, isi singkat posting ini adalah:

  1. Membersihkan log tidak akan membuat memori bertambah banyak atau membuat BB menjadi lebih cepat
  2. Fungsi memori cleaner di BB bukan untuk meningkatkan free memory
  3. Aneka program memory booster tidak membantu membersihkan/membebaskan memori, bahkan akan menggunakan memori dan menguras batere.
  4. Dengan menggunakan engineering screen (escreen) Anda akan bisa mengetahui aplikasi mana yang memakai banyak RAM dan CPU

Buat Anda yang bertanya-tanya: mengapa baru menulis hal ini sekarang? Saya baru menggunakan Blackberry sekitar 2 bulan ini, dan selama 2 bulan ini saya sudah mempelajari sangat banyak mengenai Blackberry. Selama dua bulan ini saya sudah:

  1. Memprogram 7 Aplikasi.
  2. Mempelajari berbagai fitur Blackberry, dari mulai shortcut sampai Engineering Screen
  3. Mempelajar berbagai tools Blackberry seperti cfp.exe, JavaLoader.exe, dsb
  4. Mempelajari reverse engineering modul Blackberry dari situs ini dan ini. Tapi source code yang diberikan keduanya ternyata memiliki banyak bug, jadi saya sekalian mempelajari format internal file COD agar dapat mengkoreksi programnya.

Saya bisa mempelajari itu dalam waktu relatif cepat, karena saya memiliki background dalam reverse engineering dan kernel programming.

Dari hal-hal yang telah saya pelajari tersebut, ada beberapa hal yang ingin saya tuliskan. Kali ini saya ingin membahas mengenai salah kaprah mengenai memori dan batere Blackberry. Sekaligus saya mengumumkan bb-meter versi 1.1 yang merupakan hasil dari pembelajaran saya.

Dari berbagai blog dan mailing list yang saya baca, kebanyakan user Blackberry sangat terobsesi dengan jumlah free memory dan ketahanan batere. Dari hasil membaca beberapa blog dan arsip mailing list, ada beberapa salah kaprah tentang tips memori dan batere. Berikut ini beberapa salah kaprah yang saya temukan:

Membersihkan Event Log (dengan Alt-LGLG lalu memilih “Clear Log”) tidak akan mempercepat Blackberry Anda. Ukuran Event Log di Blackberry hanya 16 kb. Jika ada event baru yang harus dicatat, maka log lama akan dihapus. Ini penjelasan dari API Blackberry: The log itself is 16 KB in size; each log entry uses 15 bytes for overhead, plus whatever space is used by the entry’s actual data. Once the log meets or exceeds the 16 KB size, old entries will get erased as required to fit in the new entries..

Lanjutkan membaca “Salah Kaprah Mengenai Memory dan Batere Blackberry”

BB Meter: Monitor Batere Blackberry

Kedua adik saya Aris dan Yosi sudah lama menggunakan Blackberry, dan termasuk orang yang cukup rajin ngoprek blackberrynya. Salah satu aplikasi yang suka mereka pakai adalah Meterberry. Aplikasi ini berbayar, dan sebenarnya tidak terlalu mahal (bisa dibeli kurang dari 50 ribu rupiah). Tapi sebagai programmer, saya lebih suka membuat sendiri (selain karena meterberry tidak mendukung OS 4.5). Hasilnya adalah aplikasi BB-Meter bisa dilihat di

http://compactbyte.com/bb-meter

Untuk Anda yang bertanya-tanya: Aplikasi ini untuk apa? Pertama saya kurang mengerti mengapa orang-orang suka meterberry. Beberapa fitur program ini sudah ada di program gratis lain, misalnya fitur restart device ketika memori sudah hampir habis bisa dilakukan oleh aplikasi gratis QuickPull. Fitur yang disuka oleh banyak orang adalah fitur untuk melihat kecepatan penurunan batere dan memory.

Apa gunanya mengetahui penurunan batere dan memori? untuk orang yang memiliki banyak batere, mereka jadi bisa tahu mana batere yang sudah mulai lemah. Untuk orang yang suka mencoba-coba OS Hybrid, mereka bisa tahu apakah OS yang baru lebih boros atau irit batere. Untuk orang yang suka mencoba-coba aplikasi, mereka bisa tahu apakah batere atau memori menjadi lebih cepat habis setelah menginstall aplikasi tersebut.

Program ini saya buat sesederhana mungkin, dengan ukuran yang sangat kecil (kurang dari 30 kb). Tidak seperti program meterberry yang melakukan pencatatan batere secara periodik, saya merancang program ini agar hanya melakukan pencatatan ketika level batere berubah. Proses pencatatan dan analisis dilakukan terpisah. Jadi program di latar belakang sifatnya sangat ringan, hanya mencatat level dan temperatur batere saja. Semua analisis dilakukan ketika user mulai melihat data tersebut. Saya ingin agar program yang mencatat level batere tidak memboroskan batere.

Program ini sudah diuji oleh istri saya, dan adikadik saya. Dan semoga program ini bisa berguna juga untuk Anda.

Bible Plus: Alkitab untuk Blackberry.

Sejak banyaknya orang beralih dari smartphone berbasis symbian ke smartphone blackberry, sudah banyak orang yg ‘request’ ke Joe minta dibuatin aplikasi bible reader seperti symbian bible. Awalnya kami ga punya alasan buat memakai BB karena di sini blum ada layanan BB. Layanan BB baru mulai menjamur di Thailand awal tahun 2010 ini. Saya sudah lebih dulu menggunakan BB, tapi karena Joe belum menggunakannya (selain dia sibuk dengan porting freebsd) dia belum juga bisa merealisasikan request dari banyak orang.

Bulan Juni yang lalu, untuk memudahkan komunikasi selama Joe pulang ke Jakarta (berhubung saya ga bisa ikut pulang), maka akhirnya Joe pun memakai Blackberry juga. BB pertama yg saya pakai itu BB ‘murah’ yg beli bekas dari Indoneia, jenis 8800 (huron), lalu Joe beli versi yg lebih bagusan di banding huron (nitip adiknya cariin bb 8520- gemini bekas yang masih bagus).  Sesampainya di sini BB nya ditukar pakai dengan saya (saya pakai gemini, Joe pakai huron).

Awalnya Joe kurang begitu sering menggunakan BB nya, karena selama di Chiang Mai, koneksi internet selalu ada di kantor dan di rumah. Selain itu BB huron itu super lambat dibandingkan dengan smartphone symbian yang terakhir kami pakai. Setelah mertua saya (orang tua) Joe pake BB juga dan mulai ber BBM, akhirnya Joe mulai aktif menggunakan BB nya. Bapak Mertua saya salah seorang pengguna setia Symbian Bible, dan ketika beliau beralih ke BB, pertanyaanya sama dengan semua orang: “Alkitabnya kok ga ada yang kayak di HP sebelumnya?”

Sebulan belakangan ini, akhirnya Joe tergerak untuk memulai mendevelop Bible Plus. Motivasinya cuma 1: menyambut kelahiran anak pertama kami 😀 (saat ini saya sedang hamil 33 minggu). Jadi kalau dulu dia mendevelop symbian bible buat mengimpress saya, sekarang dia develop Bible Plus untuk menyambut anak kami dengan harapan bisa memberi motivasi buat anak kami menjadi orang yang rajin membaca Alkitab dan siapa tahu bisa jadi programmer juga? hehehe (orang tua memberi contoh baik dengan harapan anak menjadi baik juga).

Bible Plus ini merupakan aplikasi pertama yang di buat Joe untuk Blackberry, seperti halnya dulu symbian bible merupakan aplikasi pertama yang dibuat untuk smartphone symbian. Berbeda dengan mendevelop untuk symbian, mendevelop untuk BB ternyata butuh kesabaran extra terutama dengan waktu tunggu untuk merestart device BB. Perbedaan lainnnya, kami harus membayar untuk memungkinkan mengetes aplikasinya di BB nya (bukan hanya di simulator), sementara untuk symbian semua bisa dilakukan dengan gratis. Akan tetapi, tetap saja aplikasi ini kami sebarkan secara gratis dan open source supaya tidak tertutup kemungkinan semakin banyak orang yg bisa berkontribusi memperbaiki aplikasi ini. Supaya semakin banyak juga orang yamg bisa membaca firman Tuhan kapan saja dan di mana saja (jangan cuma baca fesbuk dan social networking saja :P).

Sebenarnya Joe berniat membuat BB Plus untuk orang buta juga seperti halnya symbian bible, sayangnya software text to speech yg ada di BB harganya sangat mahal (450 USD) dan tidak ada versi trialnya. Mungkin nanti kalau ada software text to speech yg murah dan Joe ga terlalu sibuk bisa direalisasikan, tapi masih dalam to do list sekarang ini.

Untuk fitur-fitur dan link downloadnya langsung saja ke halaman http://compactbyte.com/bb-bible/ . Saat ini sudah dicobakan di berbagai jenis Blackberry, mulai dari 8800, 8520, 8900 dan saya ga inget lagi tipe BB yang ada. Yang jelas untuk sistem operasi 4.5 dan 5 ke atas aplikasi ini sudah bisa dicoba. Petunjuk instalasi ada di sini: http://compactbyte.com/bb-bible/id/petunjuk/. Kalau Anda menemukan masalah dalam instalasi atau pengoperasian silakan saja kontak kami. Harapan kami semoga Bible plus ini bisa berguna untuk banyak orang yang membutuhkan Alkitab kapan saja dan di mana saja.