2 Responds

Teektak versi Android

Akhirnya rampung juga versi Android ini. Teektak versi Android ini punya desain dan cara main yang sama dengan versi iPhone. Saya memang berusaha keras untuk membuat pengalaman bermain yang sama di kedua platform tersebut.

Dan sejak mulai fokus ke pembuatan aplikasi versi Android ini, ada beberapa hal yang menarik yang sebelumnya saya tak tahu sama sekali. Diantaranya tentang pengembang dari Indonesia yang tidak bisa (tidak boleh?) menjual aplikasi di Android Market. Dan saya juga baru tahu kalau ada 2 pasar lokal yang membolehkan pengembang Indonesia untuk menjual aplikasinya. Kedua pasar lokal tersebut adalah iStore dari Indosat, dan Flexi Market dari Telkom.

Saya memang berencana menjual aplikasi ini, karena pembuatannya yang cukup sulit. Dan pilihan saya akhirnya jatuh ke Flexi Market, karena pilihan harganya yang beragam. Sedangkan iStore hanya punya pilihan harga 5 ribu rupiah saja. Teektak versi Android ini saya jual dengan harga yang sangat murah, HANYA 1000 rupiah saja. Dan bisa dibeli oleh pengguna Flexi atau Telkomsel. Untuk pengguna Indosat dan XL, sampai saat ini saya tidak tahu. Jika Indosat iStore punya pilihan harga yang beragam, sangat mungkin saya mengunggahnya ke iStore mereka.

Berikut beberapa tangkapan layar Teektak versi Android ini:

Untuk yang belum punya file instalasi FlexiMarket, bisa unduh lewat tautan ini.

Label:, , , ,



Kategori:blog, indonesia, Technology


5 Responds

Hubungan erat antara bahasa pemrograman, matematika, dan fisika

Terus terang, karena ke-sok-tahu-an saya waktu sekolah, bahwa pelajaran matematika dan fisika tidak akan banyak berguna di kehidupan saya mendatang membuat saya versi sekarang jadi terlihat kerdil. Walaupun saya termasuk suka dengan matematika, tapi bisa dibilang pengalaman saya dengan matematika waktu sekolah dulu cuma sekedar mencari nilai. Ketika pembahasan tentang bab baru, maka bab yang lama bisa dibilang saya tumpuk ke gudang.

Apalagi fisika. Saya tidak pernah suka dengan pelajaran fisika. Alasan saya dulu kalau tidak salah, Fisika menggunakan banyak rumus yang harus dihafal. Jadi satu soal fisika, bisa menggunakan lebih dari 3 rumus, dan semua saling berkaitan. Dan bodohnya saya, saya pernah menganggap bodoh soal yang menghitung berapa meter sebuah kereta yang sudah ngerem dari posisi ngerem mendadak.

Kebodohan itu tidak lantas berhenti ketika saya mengambil jurusan Teknik Informatika waktu kuliah dulu. Mata kuliah Kalkulus yang sampai berderet 3 itu memang menyenangkan buat saya. Tapi hanya sekadar menyenangkan. Ketika ditanya tentang Kalkulus 1 lagi, saya pasti menyerah.

Sekarang saya sadar. Ketika saya mulai hobi membuat permainan (game), ada banyak operasi matematika turut serta, walaupun sampai sekarang ini hanya permainan-permainan sederhana yang saya buat. Coba tengok gambar di bawah ini untuk bisa mengerti, bahwa permainan sederhanapun akan mengikutsertakan operasi matematika.

Bagaimana dengan Fisika?

Banyak permainan berkategori arcade (apa bahasa Indonesianya?) seperti Angry Birds, atau Super mario menggunakan Fisika. Tak perlu yang muluk-muluk, untuk membuat sebuah objek melompat saja, pasti membutuhkan Fisika. Apalagi seperti Angry Birds yang menyertakan banyak rumus Fisika.

Jadi, sebelum keburu menyesal, saya mungkin akan mulai belajar Matematika dan Fisika dari pelajaran SMP. Kalau boleh, saya juga mau ikut deh belajar ke kelas. #halah.



Kategori:blog, general, programming


3 Responds

Android

Sekarang saya resmi beralih ke perangkat bergerak versi Android. Saya menggunakan Samsung Galaxy S, yang saya pikir sudah cukup lumayan untuk bisa tetap eksis di dunia internet. #eh.

Tentu saja ada waktu ketika saya cukup canggung karena beralih dari iPhone. Walaupun tak benar-benar beralih, karena saya masih pegang iPhone. Alasan saya masih memegang keduanya adalah karena alasan pengembangan. Saya mau belajar untuk sedikit demi sedikit beralih profesi ke perangkat bergerak.

Sampai saat ini, saya cukup senang dengan Android. Terlebih setelah ada Google+. Walau kualitas aplikasi yang ada di Android Market tidak sebagus yang ada di App Store, tapi saya rasa sudah cukup memenuhi kebutuhan saya.

Hidup Android! #halah

Label:, ,



Kategori:blog, general, personal


Comments Off

Teektak versi iPhone

Teektak, salah satu aplikasi saya di Mainterus.com akhirnya bisa merambah ke perangkat bergerak. Walaupun untuk saat ini hanya untuk kalangan iOS saja. Cara bermain Teektak versi iPhone ini tidak jauh berbeda dibanding versi HTML5. Ada 15 huruf, yang terdiri dari 10 konsonan dan 5 huruf vokal, dan tugas Anda hanya menyusun kata bahasa Indonesia sebanyak-banyaknya dalam waktu yang cukup singkat, 2 menit.

Perbedaan yang paling mencolok antara versi HTML5 dan versi iPhone ini adalah dari segi desain. Dan yang paling penting adalah, untuk bermain Teektak tidak diperlukan koneksi internet. Kecuali jika Anda ingin mengirim skor ke server Mainterus.com.

Sebenarnya Teektak sudah menginjak ke versi 1.5, artinya ini versi kedua yang sudah saya unggah ke App Store. Jika ada pertanyaan kenapa baru sekarang saya menulis tentang berita ini, karena saya belum merasa di versi pertamanya Teektak siap untuk dimainkan secara publik.

Statistik unduhan dari App Store terus terang belum cukup membanggakan saya sampai saat ini. Walaupun aplikasinya gratis, tapi selama 3 minggu, hanya ada 200-an unduhan. Dan saya berharap dengan menulis ini, dan merilis versi baru yang jauh lebih bagus (paling tidak menurut saya), saya bisa mendapatkan lebih banyak unduhan.

Dan jika ada pertanyaan kapan versi Android keluar, jawaban yang bisa saya kasih sekarang adalah, masih dalam proses belajar. Jadi namanya juga masih belajar, mohon dimaklumi kalau-kalau belajarnya lelet. Untuk versi Blackberry, maaf saya gak ada niat sama sekali (paling tidak sampai tulisan ini dirilis) untuk membuat aplikasi Blackberry. Satu-satunya alasan adalah, saya rasis sama Blackberry #eh.

Dan sekadar pemberitahuan bagaimana tampilan Teektak versi baru ini, berikut beberapa tangkapan layar dari aplikasi pertama saya di App Store.

Label:, , , ,



Kategori:blog, indonesia, mac, portfolio, Technology


3 Responds

Ulang tahun ke-50 Kuwait

Tahun 2011 ini, Kuwait merayakan ulang tahun emasnya yang ke-50. Ada banyak hal spesial di tahun emasnya kali ini. Walau banyak juga hal-hal yang masih sama saja dibanding tahun yang lalu.

Tak terasa, sudah lebih dari 4 tahun saya tinggal di negara ini. Banyak hal yang saya pelajari, dan juga banyak hal yang sudah saya tahu tentang negara ini. Secara keseluruhan, saya nyaman dan senang tinggal di negara ini. Itulah kenapa bisa sampai 4 tahun. Padahal pada awal-awal kedatangan saya, pernah terpikir maksimal 2 sampai 3 tahun saja.

Tentang ulang tahun Kuwait.

Kuwait berulang tahun 2 hari, tanggal 25 dan 26 Februari. Pada tanggal 25 Februari 1961, mereka diberikan kemerdekaan olah Inggris. Dan tanggal 26 Februari 1990, mereka “merdeka” dari invasi Irak. Jadilah 2 hari itu libur nasional. Dan entah sejak tahun berapa, tiap perayaan ulang tahun, anak-anak dari yang kecil sampai yang agak tanggung menyemprotkan busa ke mobil-mobil di jalan. Tidak sedikit yang iseng menyemprotkan langsung ke orang yang sedang jalan.

Bagi mereka, 2 hari itu adalah hari yang “dibolehkan” untuk iseng menyemprotkan busa (kadang berupa air, entah air beneran atau air kencing) ke siapapun. Terlebih kepada para pendatang. Dan itulah yang membuat banyak pendatang yang berduit di negara ini keluar Kuwait untuk 2 hari itu saja. Tapi bagi saya, 2 hari libur itu adalah waktunya berleha-leha di dalam rumah. Tidak melakukan kegiatan di luar rumah. Atau paling tidak, tidak pergi-pergi jauh.

Mirip seperti Nyepi di Bali. Bedanya, Nyepi yang berisik di luar.

Nah, untuk ditahun emas ini, saya sangat menyambut positif upaya pemerintah yang mengadakan acara lain selain semprot-menyemprot seperti karnaval dan pesta kembang api. Ditambah, semprotan busa yang dilarang beredar di Kuwait. Dan sejauh pengamatan saya, ini cukup efektif.

Tapi, bagi saya, tetap saja 2 hari libur ini adalah hari Nyepi di rumah. Karena jalanan macet di mana-mana. Jakartapun bisa kalah telak.

Kegembiraan rakyat Kuwait

Ditahun emas ini, semua rakyat Kuwait gembira betul. Tiap kepala dapat jatah 31 juta rupiah (1000 dinar kuwait) di tanggal 23 dan 24 Februari. Termasuk anak-anak. Tapi sayang, tidak termasuk saya dan teman-teman pendatang lain. Maka dari itu, untuk merayakan kegembiraan mereka, benar-benar mereka kumpul di jalan. Mobil-mobil ditempel stiker sang Emir (Emir = Raja), bendera-bendera dipasang dimanapun. Sangat bertolak belakang dengan negara-negara tetangga yang akhir-akhir ini menghujat para pemimpin mereka.

Dikarenakan populasi orang Kuwait yang rata-rata anak-anak muda dan anak kecil, bisa ditebak apa yang mereka beli dong. Betuuul, XBOX dan PS3! Saya yang mampir untuk nengok saja keburu kehabisan.

Kabar gembira buat saya? tengok seminggu lagi, saya yakin banyak yang jual Xbox bekas atau PS3 bekas yang baru dipakai beberapa hari.

Dari saya, Selamat ulang tahun Kuwait, semoga lebih bersahabat untuk para pendatang. Dan semoga alat transportasi umum lebih diperhatikan. Mabroook….

Label:, , , ,



Kategori:blog, kuwait, personal


10 Responds

KetaKetik di 10k Apart

Salah satu aplikasi saya “How fast is your typing“, versi bahasa inggris dari KetaKetik, menang sebagai Notable Mentions. Prestasi yang lumayan sebenarnya, tapi seharusnya bisa lebih baik dari itu kalau saja saya bisa memanfaatkan lebih baik penggunaan canvas.

Dari 367 aplikasi, yang terpilih sebagai pemenang hanya 16. 1 juara umum, 3 juara kedua, dan sisanya yang 12 mendapatkan buku HTML5. Lumayan buat belajar lagi.

Selamat buat KetaKetik! #eh

Label:, , , , ,



Kategori:blog, personal, Technology


26 Responds

KetaKetik dan Teektak ditutup sementara

Terbaru: KetaKetik dan Teektak sudah pindah ke server baru. Atas biaya sendiri T_T

Dikarenakan server yang saya pakai sudah tak bisa lagi menampung pengguna-pengguna yang luar biasa banyaknya, saya, dengan berat hati, menutup sementara kedua aplikasi ini.

Niat awal saya membuat aplikasi murni untuk belajar dan mengetahui lebih dalam tentang HTML5 dan CSS3. Efeknya jelas, saya lebih siap untuk mengikuti kompetisi 10k apart. Dan, pastinya saya jadi mengerti sedikit banyaknya dengan HTML5 dan CSS3 ini.

Server yang saya pakai adalah kepunyaan Hostmonster. Jadi bandwith atau besarnya penyimpanan bukanlah halangan buat saya. Satu-satunya kelemahan server yang saya punya sekarang punya adalah kapasitas CPU. Optimasi dari sisi database sudah saya lakukan secara maksimal. Sampai-sampai jawara terbaru sering tidak terlihat karena cache.

Untuk tahu seberapa parahnya CPU tercekik, di bawah ini adalah ilustrasi dari CPanel. Setelah hampir 2,5 jam saya nonaktifkan.

Dari ilustrasi di atas, terlihat jelas pemakaian CPU sudah sangat maksimal. Di bar 3, 4 dan 5, adalah saat saya mengistirahatkan KetaKetik dan Teektak selama kurang lebih 2 – 3 hari. Pemakaian CPU yang sangat maksimal ini berakibat langsung ke aplikasi saya. Koneksi database  sering sekali mati, dan akhirnya banyak pengguna yang protes. Bahkan ada yang bilang aplikasinya error sama seperti yang buat.

Untuk sekedar info, total pengguna yang terdaftar di 3 aplikasi saya (Teektak, Ketaketik dan Taktak) mencapai 14146 ribu, dan 13834 ribu diantaranya adalah akun Facebook. Dari angka-angka itu, detail pengguna di aplikasi-aplikasi saya tergambar jelas dari gambar di bawah.

Dari data-data di atas, inilah statistik pengunjung unik dan pageview dari Google Analytics. Terlihat bedanya saat saya menggunakan Facebook API. Itupun sempat 3 hari saya matikan karena saya butuh mengoptimasi kode-kode saya.

Kesimpulan asal-asalan saya, banyak orang-orang suka dengan permainan saya tidak lain dan tidak bukan adalah karena menggunakan bahasa Indonesia. Rupanya banyak juga orang-orang yang sepertinya ‘haus’ akan permainan kata-kata yang saya buat. Sekadar informasi, saya masih punya 2 aplikasi yang hampir siap dipublikasi, dan 1 aplikasi yang masih berbentuk ide.

Pertanyaannya, kenapa saya membuka lebar-lebar statistik ini? tidak lain dan tidak bukan, saya mencari sponsor yang bisa menyediakan server bagus. Tertarik?

Label:, , , , , ,



Kategori:blog, general, Technology


2 Responds

Kontes aplikasi web 10 Kilobyte


10k apart adalah kompetisi membuat aplikasi web yang kurang dari 10 Kilobyte, dengan persyaratan sebagai berikut:

  1. Ukuran total semua berkas harus kurang dari 10 Kilobyte;
  2. Berfungsi sama di peramban-peramban modern seperti Mozilla Firefox 3.6, Peramban Webkit (Chrome dan Safari), dan juga Internet Explorer versi 9.
  3. Librari Javascript yang boleh dipakai adalah JQuery, Prototype, dan Typekit.
  4. Tidak boleh menggunakan pemrograman sisi server (server-side programming) seperti PHP, ASP dan teman-temannya. Aplikasi murni berjalan di sisi klien
  5. Boleh menggunakan web service seperti Twitter, Google Web dan web service lain.

Membuat aplikasi web itu memang tantangan, tapi membuatnya sekecil-kecilnya itu yang agak sulit. Saya sampai menggunakan aplikasi kompresi file yang menghilangkan spasi dan whitespace di semua berkas yang saya buat.

Oh, iya, kenapa ada IE9 di sini? jangan heran, karena Microsoft adalah sponsor utamanya.

Jangan lupa cek juga aplikasi buatan saya yang sudah nebeng di sana.

Label:, , , ,



Kategori:blog, programming, Technology


32 Responds

Perkenalkan, Teektak

Akhirnya aplikasi keempat saya rampung. Total masih ada 2 aplikasi yang “hampir jadi” dan 1 aplikasi yang masih tercatat di papan tulis di rumah.

Dari sejak awal melihat perkembangan statistik aplikasi-aplikasi yang saya buat, saya cukup senang karena respon yang begitu wah. Terutama dari anak-anak muda (usia 18-24 tahun), karena merekalah pengunjung dan pemain terbanyak. Paling tidak, dari data statistik yang Facebook berikan.

Apa itu Teektak?

Teektak adalah permainan sederhana membuat kata. Kalau permainan-permainan yang sudah-sudah menebak kata, kali ini membuat kata. Setiap pemain akan disuguhi 15 huruf acak, dan misinya membuat kata sebanyak-banyaknya. Semakin banyak kata yang didapat, semakin besar poin. Penentuan poin juga ditentukan berapa banyak huruf yang terpakai ditiap kata.

Selamat bermain!

Label:, , , ,



Kategori:blog, portfolio, Technology


25 Responds

Codeigniter dan Facebook Graph API

Saya ceritanya baru berhasil menggunakan Facebook Graph API dan Codeigniter. Ini saya lakukan karena saya sudah cukup menyerah dengan ribetnya RestAPI Client yang diberikan Facebook. Karena kasus saya agak berbeda, yaitu saya punya beberapa aplikasi terpisah dalam satu instalasi Codeigniter. Setelah melihat-lihat, ternyata ada cara lain yang bisa kita lakukan. Dan yang paling mudah dan cukup aman diimplementasikan adalah Facebook Graph API ini.

Catatan ini kiranya bisa berguna buat teman-teman yang lain atau yang mungkin di kemudian hari dapat proyek ini. Juga sebagai catatan saya, biar nanti kalau ada proyek lain saya tinggal melihat dokumentasi yang saya buat.

Yang perlu disiapkan adalah 1 librari dan 1 file controller dan 1 file view. Tidak perlu unduh (download) yang lain. Facebook Graph API ini memang jauh lebih simpel. Dan saya sangat menikmati proses belajar ini. Dan perlu diketahui, bahwa tutorial kali ini tidak akan mencakup banyak hal. Saya hanya mengharapkan anda mengerti konsep baru yang ditawarkan Facebook ini.

Sebelum memulai, pastikan beberapa hal berikut ini:

  1. Versi PHP yang dipakai adalah versi 5
  2. Pengetesan skrip tidak bisa dilakukan di server lokal. Jadi anda harus punya hosting dan harus online
  3. Codeigniter yang saya pakai 1.7.2, saya kurang tahu apa tetap akan sama jika menggunakan versi lama

Langkah pertama, buat aplikasi

Ini adalah langkah wajib. Karena dengan mendaftarkan aplikasi kita, Facebook akan memberikan 3 hal penting yang nantinya kita butuhkan. Yaitu Application ID, Application Secret dan API Key. [Klik link ini untuk mendaftarkan aplikasi anda]. Yang perlu anda isi adalah Application Name dan Connect->Connect URL.

Langkah kedua, unduh librari Curl

Librari Curl yang saya pakai ini memang hebat. Mudah sekali pakainya. Bisa diunduh dari link ini: http://codeigniter.com/wiki/Curl_library/

Langkah ketiga, konfigurasi

Buka file /application/config/config.php, lakukan beberapa hal berikut ini:

  1. Index page dibuat kosong. $config['index_page'] = ""; (baris 26)
  2. URI Protocol dibuat jadi ORIG_PATH_INFO. $config['uri_protocol'] = "ORIG_PATH_INFO"; (baris 44)
  3. On-kan pilihan query string. $config['enable_query_strings'] = TRUE; (baris 151)

Langkah keempat, htaccess

Karena konfigurasi codeigniter saya tidak menggunakan “index.php”, maka saya butuh berkas (file) htaccess. Berikut isinya:

RewriteEngine on
RewriteCond $1 !^(index\.php|assets)
RewriteRule ^(.*)$ /projects/fbci/index.php/$1 [L]

Sesuaikan path ini:/projects/fbci/index.php dengan aplikasi anda.

Langkah kelima, controller

Kita hanya punya 1 berkas controller. Saya menggunakan controller yang diberikan Codeigniter saat kita instalasi, yaitu controller Welcome.

Controller itu nantinya akan punya 2 method, yang pertama sebagai gerbang pertama sebelum pengguna (user) masuk ke Facebook. Dan yang kedua sebagai penerima data dari Facebook. Berikut adalah gambar perjalanan aplikasi kita yang berkomunikasi dengan Facebook (semoga ngerti, saya kurang bisa gambar).

Dari gambar di atas, berikut detail yang bisa saya berikan:

  1. Ketika pengguna mengeklik sebuah tautan di aplikasi kita (bisa berupa link, tombol, atau apa saja)
  2. Aplikasi kita mengarahkan pengguna untuk login dulu ke Facebook dan atau menerima konfirmasi tentang informasi apa saja yang akan aplikasi kita butuhkan. Tautan itu seperti ini:
    https://graph.facebook.com/oauth/authorize?client_id=[client_app_id]&redirect_uri=[redirect_uri]
  3. Dari tautan di atas, [client_app_id] diambil dari kode aplikasi ketika kita selesai mendaftarkan aplikasi di Facebook. Sedangkan [redirect_uri] adalah URL yang akan kita gunakan untuk menangkap kode dari Facebook berupa $_GET['code']. Maka dari itu, aplikasi kita harus menerima query string (lihat bagian konfigurasi di atas).
  4. Setelah Facebook mengirim kode, kita perlu akses token untuk mendapatkan data-data pengguna Facebook. Untuk mendapatkan akses token, kita perlu menghubungi lagi Facebook dengan mengirim data kode (yang kita dapat di nomor 2), [redirect_uri] dan [secret_code].
  5. Setelah itu Facebook akan mengirimkan akses token dalam format JSON.
  6. Setelah punya akses token, kita bisa bebas meminta data-data pengguna ke Facebook.

Langkah keenam

Ini adalah langkah terakhir tutorial kali ini, yaitu mengunduh berkasnya. Saya sadar bahwa tidak ada keterangan yang lengkap sekali untuk level pemula. Tapi percayalah, saya hanya bisa mengarahkan dan sedikit memberitahu cara kerja Graph API ini. Dokumentasi Graph API lebih lengkap dan siap disantap.

unduh demo

Berikut adalah kode untuk Controller:

<?php
 
class Welcome extends Controller {
 
	// beberapa detail aplikasi kita
	// ini semua harus diisi.
	var $fb_appid = "";
	var $fb_secret = "";
	var $fb_api = "";
 
	function Welcome()
	{
		parent::Controller();	
		$this->load->helper("url");
	}
 
	function index() {
		$data['app_id'] = $this->fb_appid;
		$this->load->view('welcome_message', $data);
	}
 
	function fb() {
		$this->load->library("curl");
		// method untuk redirect balik dari facebook
		// setelah pemanggilan pertama, facebook mengirimkan sebuah kode 
		// yang bisa kita tangkap lewat $_GET['code']
 
		// cek dulu, apa $_GET['code'] ada
		if(isset($_GET['code'])) {
			// buat url untuk mengambil token
			$url = 'https://graph.facebook.com/oauth/access_token?client_id='.$this->fb_appid.'&redirect_uri='.site_url("/welcome/fb").'&client_secret='.$this->fb_secret.'&code='.$_GET['code'];
 
			// ambil token lewat curl
			$token_data = $this->curl->simple_get($url);
 
			// ambil kode token saja, dengan regular expression
			// arti tanda ([^&]+) adalah:
			// ambil semua karakter asal bukan tanda &
			preg_match("/access_token=([^&]+)/",$token_data,$token);
 
			// kode token ada di variabel token[1]
			$access_token = $token[1];
 
			// pengambilan token selesai, sekarang ambil userid, nama
			$uri = 'https://graph.facebook.com/me?access_token='.$access_token;
			$data = $this->curl->simple_get($uri);
 
			// decode data
			$fb = json_decode($data);
			$fb_id = $fb->id;
 
			// ambil nama dan foto pengguna
			$fb_userdata = $this->curl->simple_get("https://graph.facebook.com/".$fb_id."?fields=name,picture&access_token=".$access_token);
 
			//echo "https://graph.facebook.com/".$fb_id."?fields=name,picture&access_token=".$access_token;
 
			$fb_user = json_decode($fb_userdata);
 
			$data = array();
			$data['fbuser'] = array('id'=>$fb_id, 'avatar'=> $fb_user->picture, 'nama'=> $fb_user->name);
 
			//print_r($data);
 
		}
		elseif(isset($_GET['error_reason'])) {
			// untuk menangkap user yang klik "Dont Allow" atau "Cancel di Facebook"
			// buat variabel untuk ditampilkan di view
			$data['tolak'] = "Uh oh, saya ditolak T_T";
		}
 
		$this->load->view("welcome_message",$data);
	}
}
?>

Label:, , , ,



Kategori:blog, programming, Technology, tutorial