Menulis program Alkitab, dulu dan sekarang

Di posting ini saya ingin sedikit bernostalgia membuat program Alkitab di device Nokia 3650 yang sangat terbatas, sampai device terbaru Blackberry 10 yang sangat mudah. Isinya kebanyakan teknis pemrograman mengenai betapa sulitnya dulu membuat program Alkitab, dan betapa mudahnya sekarang membuat program Alkitab.

Warning: posting ini panjang sekali. Dan jika Anda bukan programmer, mungkin bisa dibaca singkat saja ke bagian akhir (penutup).

Lanjutkan membaca “Menulis program Alkitab, dulu dan sekarang”

Pindah hosting ke dedicated server

Cerita akhir 2011 lalu: pindah hosting ke csoft.net, tapi kecewa jadi Februari 2012 kemudian pindah kembali ke prgmr.com. Sebenarnya selama hampir setahun terakhir ini, saya tidak menemui masalah apa-apa di server VPS saya (walaupun di server VPS yang lain kadang ada cerita-cerita horor).

Setelah berkutat cukup lama mengoptimasi server memakai kombinasi nginx, lighttpd, dan apache, akhirnya saya merasa capek juga. Saya butuh server yang lebih baik (lebih banyak RAM dan disk spacenya). Dari proyek di kantor, saya menemukan ada hosting murah di Jerman, namanya Hetzner. Dengan 42 Euro, kita bisa mendapatkan dedicated server Core i7 2600 Quad Core ,dengan RAM 16 GB, dan disk 2 x 3 TB. Catatan: sebenarnya harganya 49 Euro termasuk PPN 19%, tapi karena saya tinggal di luar uni Eropa, maka pajak itu tidak belaku.

Lompatan dari hosting 25.6 USD ke 55.4 USD sepertinya terlalu jauh, dan saya belum butuh server sepowerful itu, jadi saya memakai fitur server bidding alias lelang server bekas. Saya dapat:  AMD Athlon(tm) 64 X2 Dual Core Processor 5600+, Ram 4GB, dan disk 2 x 500 GB dengan biaya 26 EURO (dan karena tanpa pajak jadi 21.85 EURO alias 28.8 USD). Artinya dengan cuma naik: 3.2 USD, saya dapat server yang jauh lebih baik.

Saya cek dengan smartmontools, harddisknya sepertinya tidak ada masalah walaupun servernya agak tua. Tapi demi keamanan, saya membuat backup di lokal, dan juga di Amazon S3 (dengan rule untuk memindahkan file-file lama ke Amazon Glacier). O iya, kemarin saya sempat memilih server yang spesifikasinya 1/2 dari itu dengan harga 24 EURO, dan setelah dicoba-coba, saya kurang puas. Ternyata jika kita langsung menukar servernya, maka tidak dikenai biaya apa-apa.

Dengan server yang lebih powerful, saya bisa enak menggunakan apache untuk semua hosting saya. Konfigurasinya lebih mudah dan cepat. Setup untuk backup pun jadi lebih mudah. Saya juga bisa memanfaatkan mod_pagespeed untuk mengoptimasi web saya.

Tahun ini saya juga memindahkan hampir semua domain ke namecheap. Sebelumnya saya menggunakan registrar godaddy, dan gandi.net, tapi akhirnya saya memindahkan ke satu tempat agar lebih mudah mengaturnya. Namecheap saya pilih karena: murah, fiturnya lengkap (misalnya ada fitur Dynamic DNS) dan mudah dipakai (setting DNS sangat mudah, dan refreshnya sangat cepat, juga ada shortcut untuk memakai Google Apps for your domain).

Kecepatan server Jerman sangat bagus di Chiang Mai, tapi karena agak khawatir dengan kecepatan di bagian dunia yang lain, maka beberapa hari terakhir ini, saya mulai menggunakan cloudflare, (edisi gratis) untuk beberapa domain saya. Cloudflare ini adalah CDN yang sangat mudah dipakai. Cloudflare akan meng-cache objek-objek statik di web, dan mendistribusikannya ke server-server mereka di berbagai penjuru dunia. Sejauh ini saya tidak menemui adanya masalah, dan akses situs saya sepertinya tambah cepat (ini subjektif, belum saya ukur dengan tools, tapi setidaknya tidak menjadi lebih lambat).

Horizon Village and Resort

Ini merupakan taman yang sering kami kunjungi. Lokasi tempat ini di Google map

http://goo.gl/maps/u0v7I


View Horizon Village & Resort in a larger map

Apa aja sih isi taman ini?

Karena tempatnya agak besar, ada kendaraan untuk keliling

Tapi kami biasanya menyewa sepeda:

Ada tempat makan (prasmanan di hari sabtu/minggu dan hari libur):

Ada burung Unta

Ada Unta:

Ada Rusa, bisa diberi makan. Unta dan burung unta juga bisa diberi makan oleh pengunjung.

Tempat bermain anak

Air terjun mini

Ada danau kecil, bisa nyewa perahu dan memberi makan ikan

Game Puzzle Mesin Konstruksi

Jonathan suka sekali bermain puzzle di iPad dan Android. iPad ukurannya besar, dan  tablet Android yang kami miliki (Asus Transformer) juga sama besarnya. Biasanya kami membawa-bawa Playbook ke mana-mana untuk hiburan Jonathan, tapi mainan puzzle anak-anak kurang banyak di Playbook. Jadi saya memutuskan untuk membuatkan game puzzle untuk Jonathan sekaligus aplikasinya dijual.

Tema yang dipilih untuk puzzle pertama ini adalah mesin konstruksi (construction machines). Salah satu alasannya karena Jonathan suka dengan mobil-mobil mainan konstruksinya yang berwarna kuning.

Game ini sudah dirilis di Blackberry Appworld. Mungkin di masa depan akan dirilis di Ipad dan Android. Versi lite (5 Puzzle) bisa di dapat di sini dan versi fullnya (20 Puzzle) bisa dibeli di sini.

Untuk Anda yang memakai desktop dengan browser yang mendukung Flash, Anda bisa melihat demonya (versi lite di): http://yohan.es/demo/construction-puzzle/ Harap sedikit sabar, karena file SWF utamanya 3 mb.

Sebelum membahas mengenai detail implementasinya, saya berikan dulu gambaran mengenai aplikasinya. Berikut ini halaman awalnya. Di sini pengguna bisa langsung menunjuk gambar puzzle yang ingin diselesaikan.

IMG_00000130

Puzzlenya beberapa jenis. Misalnya yang standar seperti puzzle biasa seperti ini:

IMG_00000145

Sebagian sedikit lebih sulit karena tidak menampilkan garis:

IMG_00000148

 

Sebagian hanya melengkapi bagian kendaraan saja:

IMG_00000112

 

Dan sebagian melengkapi bentuk dalam sebuah scene:

IMG_00000136

Gambar-gambar puzzle ini dibeli dari VectorStock. Harga sebuah vektor di VectorStock bervariasi. Untuk standard license, sebagian besar biayanya 1 USD per file (satu file bisa cuma satu gambar, bisa juga banyak gambar), dan tidak boleh digunakan di aplikasi yang dijual (aplikasi gratis boleh, website boleh). Untuk expanded license yang mengijinkan penggunaan gambar untuk produk komersial, harganya mulai dari 25 USD per file.

Saya membeli dua file expanded license untuk aplikasi ini. Biaya VectorStock ini sangat murah dibandingkan situs lain dan hal ini membuat sebagian designer/artist kesal karena VectorStock ini membuat mereka sulit bersaing dengan situs lain. Sebagai developer, saya merasa harga ini cukup fair. File yang rumit dihargai lebih mahal di VectorStock.

Untuk masalah kode program, saya menggunakan haxenme yang baru saya pelajari baru-baru ini. Haxe memungkinkan pembuatan program cross platform dari satu source code. Game ini sebenarnya jalan di Android dan iPad (juga di browser), tapi masih butuh sedikit polesan supaya sesuai dengan ukuran layar Android  dan iPad.

Secara algoritma, game puzzle yang dibuat ini sangat sederhana, yang memakan waktu adalah membuat konten puzzlenya. Puzzle dirancang menggunakan inkscape oleh saya dan Risna. Untuk memudahkan pemotongan gambar, saya menulis program dalam Python yang akan melakukan pemotongan gambar secara otomatis (berdasarkan properti objek di inkscape). Dengan tools yang sudah saya rancang, rencananya kami akan merilis lagi beberapa aplikasi puzzle dengan tema yang berbeda-beda.

Jonathan menjadi tester utama kami. Dia sudah sangat lancar memainkan berbagai jenis puzzle di tablet lain dan semua puzzle ini bisa dimainkan oleh Jonathan. Jonathan juga menemukan beberapa bug kecil yang sudah saya perbaiki. Namanya saya cantumkan di bagian about sebagai tester Smile

register

Semoga puzzle-puzzle berikutnya bisa segera menyusul.

Bongkar pasang

Posting ini sekedar sebagai pengingat saja, mengenai hal-hal yang berhubungan dengan hardware yang saya lakukan akhir-akhir ini.

Mulai dari yang sederhana, mengganti batere Chronos ez430 yang voltasenya sudah dibawah 3 Volt (setelah di bawah 3 volt, jamnya tidak stabil, terkadang akan reset).

Sudah lama membeli modul bluetooth serial port ini, tapi belum pernah ditest. Beberapa hari yang lalu punya niat dan waktu untuk mengetesnya:

Testingnya menggunakan Bus Pirate



Menambahkan serial port ke DNS-320

Lanjutkan membaca “Bongkar pasang”

Konyolnya para fanboy

Kalo menurut wikipedia, fanboy/girl:

Fanboy is a term used to describe a male who is highly devoted and biased in opinion towards a single subject or hobby within a given field. Fanboy-ism is often prevalent in a field of products, brands or universe of characters where very few competitors (or enemies in fiction, such as comics) exist.

Saat ini saya batasi saja pada fanboy di bidang IT, atau singkatnya orang yang cinta mati merk atau perusahaan tertentu. Apa yang dilakukan perusahaan tersebut dibela mati-matian, meskipun jelas-jelas salah. Mungkin saat ini yang paling banyak ditemui: Fanboy Apple, fanboy iOS, fanboy Android. Yang lain juga ada, tapi (saat ini) nggak sebanyak itu.

Beberapa yang “lucu” (konyol) yang saya temui akhir-akhir ini misalnya, saya membaca komplain seseorang tentang Apple: iOS sekarang sering error dalam hal penggunaan space oleh “other”. Beberapa orang “marah” dan “membego-begoin” penulis blog itu: kan tinggal restore aja. Di sini terlihat bahwa fanboy ini mereka tidak mengakui bahwa itu masalah serius, mereka juga tidak menyadari jika kapasitas devicenya besar, bisa butuh waktu beberapa jam untuk me-restore datanya. Sebagian lagi menyarankan: datang aja ke Genius Bar di apple store. Orang itupun ke sana, dan hasilnya: tetap sama saja. Dan akhirnya dia harus memecahkan persoalannya sendiri dengan software pihak ketiga. Dan anehnya lagi, tidak ada orang yang berkomentar di situ (atau di diskusi hackernews) yang menyarankan penggunaan software phonedisk/iexplorer untuk memperbaiki masalahnya.

Atau kelucuan lain adalah pembela Apple, yang mati-matian membela keputusan Apple menggunakan peta baru di iOS. Sampai-sampai bilang: Google Maps juga ada salahnya. Lucunya, sampai mengambil contoh yang mengada-ada bahwa Google menyarankan Anda untuk berjalan di atas air. Padahal Google menyarankan beberapa route untuk berjalan, dan yang paling cepat adalah berjalan plus mengambil jalur ferry (tapi opsi: berjalan saja juga, kalau mau 33 jam). Kelemahan yang relatif kecil ini tidak bisa dibandingkan dengan Apple yang mencantumkan tanda “Rumah Sakit” di toko dealer Ford dan di Dollar Store. Andaikan Anda dalam keadaan setengah darurat (misal kecelakaan kecil memakai alat berat, yang tidak perlu sampai memanggil ambulans), Anda menanyakan peta rumah sakit terdekat di peta Apple, lalu ketemunya dealer mobil, apakah Anda tidak kesal? Untuk darurat yang lebih penting, dan Anda sedang di dalam kota, sebaiknya Anda menelpon nomor darurat dan menunggu ambulance.

Pasti peta Apple akan membaik, tapi pertanyaan pentingnya adalah: apakah Anda mau dijadikan kelinci percobaan dan membela mati-matian? Lebih baik ikut mengkritik supaya Apple mendengar keluhan penggunaanya dan cepat memperbaikinya.

Dua contoh tersebut kebetulan saja Apple, sebenarnya banyak juga “kelucuan-kelucuan” lain dari fans Android, tapi karena kebetulan saja sekarang ini Apple baru merilis iOS6 dan iPhone 5, maka dua contoh itu yang baru saya temui. Beberapa kekonyolan kedua belah pihak adalah merasa satu fitur tidak ada di device yang lain, atau merasa yang satu meniru yang lain, karena mereka tidak mengenal device yang lain. Misalnya dulu ada yang memuji “wah cerdas nih apple, kalau mengetik password, karakternya muncul sebentar, terus berubah jadi bulet hitam, jadi bisa kelihatan masukin passwordnya bener apa nggak, nggak seperti device lain yang cuma munculin bintang-bintang”, mereka tidak tahu bahwa fitur itu sudah ada di Nokia sejak beberapa tahun sebelumnya.

Saya sendiri dulu hampir “ngefans banget produk Apple”. Sejak tahun 2005 saya sudah memakai iBook, dan setelah itu beralih ke MacBook. iPod juga punya. Bahkan seluruh workstation di kantor saya sekarang memakai produk Apple karena saya yang menyarankan. Pertama kali memakai produk Apple, komentar saya adalah: produknya indah, layanannya juga bagus sekali (beberapa kali ada masalah, langsung diganti), sistem operasinya berbasis UNIX, tapi tidak perlu diutak-atik seperti memakai Linux. Oh iya bahkan tahun 1994-an, sebelum orang mulai ngefans Apple, saya juga memakai Apple ][/e yang sudah kuno sekali.

Tapi lama-lama saya juga menemukan banyak kelemahan memakai berbagai produk Apple. Ribuan foto yang sempat saya masukkan ke iPhoto, ternyata membuat iPhoto menjadi lambat dan bahkan terkadang error. Membuat slide yang sederhana dan indah mudah dilakukan dengan keynote, tapi jika harus dishare ke orang lain, export ke ppt tidak selalu lancar. Banyak package command line tidak berjalan dengan baik, terutama setiap kali ada update OS (banyak package MacPorts yang tidak jalan, harus menunggu patch). Aplikasi Numbers bagus untuk membuat sheet sederhana, tapi banyak fitur (misalnya pivot) sampai sekarang masih belum ada. Kompilasi program juga lebih lambat di bandingkan Linux. Secara teknis, filesystem Mac secara umum ketinggalan jaman dibanding filesystem yang dimiliki Linux, hasilnya: manipulasi file dalam jumlah banyak akan terasa lambat. Dan masih banyak lagi keluhan besar dan kecil lainnya.

Hardware yang tidak bisa “dioprek” juga membuat saya semakin malas menggunakan produk Apple. Saya sudah pernah mengganti sendiri harddisk Macbook Pro, harddisk iMac (seri tahun 2007) juga sudah pernah saya ganti. Dua-duanya tidak mudah, untuk MacBook pro perlu membuka 27 baut. Mengganti batere iPod Nano juga pernah saya lakukan .Tapi produk-produk Apple terbaru semuanya tidak bisa diganti/diperbaiki sendiri.

Pernah juga saya memakai hp Android. Cukup suka dan sangat customizable, tapi itu kadang yang membuat saya menghabiskan waktu terlalu banyak mengoprek HP. Sebagai orang yang lebih sering di kantor dan di rumah, saya sadari bahwa saya tidak terlalu butuh membawa smartphone yang terlalu pintar. Sekarang saya hanya memakai BlackBerry, itupun jarang saya sentuh (chat BBM menggunakan tinycontroller di desktop), jadi sekarang saya tidak memakai Android ataupun iPhone.

Meski dengan keluhan mengenai Apple, sampai sekarang, saya masih tetap memakai iMac di kantor. Saya tetap membelikan iPad 3 untuk anak saya, dan mungkin akan segera membeli iPod Touch terbaru. Tapi saya masih menghindari membeli macbook baru, dan iphone. Tapi saya juga tetap memakai Windows dan Linux di rumah, memakai tablet Blackberry PlayBook, dan tetap memakai tablet Android. Menurut saya nggak ada gunanya ngefans buta produk tertentu. Produk akan berlalu dengan cepat, bahkan perusahaan yang besar juga bisa berlalu dalam waktu belasan atau puluhan tahun. Apa yang cocok untuk saat ini, ya pakailah produk itu (misalnya: saat ini lebih banyak aplikasi edukasi di iPad dibanding Android).

Bagi anak saya: iPad atau Android sama saja, yang penting ada permainannya