TinyController for Blackberry

Awalnya (sekitar pertengahan tahun 2010) saya pakai BlackBerry 8800 untuk mengembangkan Bible Plus for BlackBerry, lalu karena butuh testing OS 5, dan sekaligus perlu testing untuk BB dengan touchscreen, saya membeli BB 9550 milik adik saya (beli second). Dari dulu saya malas sekali mengetik di layar sentuh, demikian juga dengan BB ini, jadi sehari-hari BB ini sangat jarang saya pakai. Saya pikir: wah enak juga kalau ada program yang bisa mengendalikan BB dari PC sehingga saya bisa mengetik dengan enak.

Awalnya saya cuma menemukan SOTI, harganya mahal 39.90 USD (350 ribu rupiah) jadinya saya nggak beli, cuma coba trialnya. Baru-baru ini (beberapa bulan yang lalu), muncul FlexMo web messenger. Program SOTI menurut saya bagus, cepat, tapi mahal dan hanya bisa di Windows saja. Sedangkan program FlexMo belum bisa saya coba (registrasi selalu gagal), tapi dari review yang saya baca di Internet, program ini murah (4.99 USD), tapi lambat, dan hanya bisa untuk BBM saja, tapi bisa cross platform (jalan di Windows, Mac, Linux). Kedua program ini juga punya kelemahan yang sama: BBM Group di OS 6 ke atas tidak bisa digunakan. Ini memang keterbatasan API Blackberry, jadi memang harus kita terima. Pada OS 5, BBM Group tidak bisa dipilih dari Desktop, tapi setelah masuk ke dalam groupnya, kita bisa mengontrol BB-nya. Di OS 6, ini sama sekali tidak mungkin.

Terpikir oleh saya: gimana kalau saya buat program semacam SOTI, tapi dengan harga yang lebih terjangkau. Minimal kalau program ini tidak laku, saya masih akan memakainya untuk keperluan saya sendiri.
Lanjutkan membaca “TinyController for Blackberry”

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”

Akses web dari paket Blackberry Chat + Email

Di Thailand, operator yang saya pakai (TrueMove) hanya memiliki beberapa paket Blackberry. Paket full biayanya sebesar 599 baht (hampir 180 rb rupiah) dan akan naik menjadi 690 baht (205 ribu rupiah) mulai bulan depan. Sebenarnya saya agak jarang memanfaatkan fitur selain chat (terutama BBM/YM) dan Email. Sesekali saya mengakses web (terutama Wikipedia) ketika di jalan. Ketika di rumah atau di kantor, saya dapat mengakses Wifi kecepatan tinggi (dan lebih enak mengaksesnya dari desktop).

Nah untuk menghemat, saya mulai beralih ke paket chat + email, yang hanya 199 baht/bulan (sekitar 60 ribu rupiah). Penghematan yang lumayan, selisihnya bisa untuk menyumbang Free Software Foundation. Tapi kadang saya tetap perlu mengakses web. Saya bisa saja membayar ekstra dengan membayar biaya GPRS, tapi saya menggunakan solusi sendiri: web by email. Pengalaman saya 11 tahun yang lalu ternyata sekarang kembali berguna.

Dulu, tahun 1999 saya pernah menerjemahkan dokumen Accessing the Internet by E-mail FAQ ke Bahasa Indonesia (masih ada yang menyimpan mirrornya, misalnya di sini). Dokumen tersebut adalah dokumen gratis yang tersedia untuk semua orang di Internet. Kira-kira ketika semester 3 kuliah di ITB, saya menerjemahkan dokumen tersebut dan mengirimkannya ke maintainernya karena saya merasa dokumen tersebut akan berguna juga untuk orang lain.

Lanjutkan membaca “Akses web dari paket Blackberry Chat + Email”

Masalah Teknis Hybrid Blackberry

Tulisan saya sebelumnya (OS Hybrid Blackberry: Usaha yang sia-sia) mengundang banyak respon dari berbagai pihak. Sayangnya responnya bersifat emosional dan tidak membangun, tidak bersifat teknis. Nah sekarang saya akan membahas beberapa hal teknis lanjutan mengenai hybrid. Saya sebutkan di artikel saya bahwa hybrid bisa saja berhasil kalau kita *tahu* apa yang kita campurkan. Yang menjadi masalah, dan menjadi kritik utama saya adalah: kebanyakan hybrid itu ngasal, jadi kemungkinan berhasilnya kecil (dan andaikan berhasil, kemungkinan membuat bug lain lagi). Saya juga mengkritik bahwa menyebarkan hybrid itu sifatnya illegal (kalimat saya adalah ‘sebenarnya penyebaran OS hybrid adalah sesuatu yang illegal’). Mungkin ada yang salah paham: membuat hybrid itu legal (silakan Anda campur-campur sendiri file yang sudah Anda download sendiri). Yang saya kritik adalah penyebarannya atau istilah legalnya redistribution.

Di artikel ini saya akan menuliskan bagaimana caranya supaya hybrid menjadi tidak ‘ngasal’ dan bagaimana mengatasi masalah redistribution sehingga bisa tetap membuat hybrid yang legal. Saya akan mulai dulu dengan masalah teknis, lalu akan saya teruskan dengan masalah legalitas redistribusi modul. Perlu ditegaskan: Saya tetap tidak berniat membuat hybrid. Tulisan ini hanya untuk melengkapi tulisan saya sebelumnya kalau Anda masih ingin membuat hybrid.

Masalah pertama yang dimiliki para hybrider adalah: kekurangtahuan masalah teknis. Ini dari hal dasar mengenai pemrograman: apa itu modul, apa itu kelas, apa itu inteface, dsb sampai ke masalah teknis jaringan, misalnya apa itu LDAP atau DNS resolver. Tanpa mengetahui itu semua, kita masih bisa terus berjalan meski akan sering terantuk batu, tapi jika tahu maka akan lebih baik.

Hal mendasar yang harus diketahui oleh para hybrider adalah: modul apa yang harus diganti. Kadang nama modul sangat mencerminkan isinya, misalnya net_rim_bb_twitter itu isinya adalah aplikasi twitter. Masalahnya adalah ada banyak nama yang tidak jelas, misalnya net_rim_bb_elt atau net_rim_se13nettable. Ada juga modul utama yang namanya jelas, seperti net_rim_bb_addressbook_app tapi modul pendukungnya kurang jelas, misalnya net_rim_bb_addressbook_gal.

Hal teknis pertama yang bisa dilakukan oleh para hybrider adalah: mendokumentasikan fungsi setiap modul. Hal ini jelas gunanya: supaya tidak ngawur mencampur modul. Misalnya saya pernah melihat di salah satu hybrid: ada masalah web browser, lalu dia mencoba mengganti modul net_rim_bb_ldap_browser dengan harapan browsing akan lebih baik, hal tersebut ngawur, karena meski ada kata-kata “browser”-nya, modul tersebut tidak ada hubungannya dengan web browsing. Modul tersebut berhubungan dengan LDAP suatu protokol layanan direktori. Kata-kata ‘browser’ di situ tidak berhubungan dengan web browser. Bahkan bagi pengguna awam yang tidak terhubung dengan enterprise, perubahan tersebut tidak berpengaruh sama sekali terhadap apapun di handsetnya (sia-sia, karena modul ini dipakai oleh modul secure email/pgp).

Lanjutkan membaca “Masalah Teknis Hybrid Blackberry”

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”