Shortcut: CTRL + N, sampai jumpa lagi…
Awal bulan Juli 2007, setelah sekian lama, akhirnya saya kembali ke pulau di mana saya numpang lahir sekian tahun lalu: Bali.
Saya berangkat ke Bali dengan penuh semangat, karena waktu itu saya diterima untuk bekerja di sebuah perusahaan yang saya idam-idamkan.
Alhamdulillah saya mendapat kesempatan untuk bergabung dalam pengembangan sebuah produk yang hebat, dengan tim yang hebat pula, senang rasanya bisa menjadi bagian dari mereka :)
Tapi.. jauh sebelum itu, saya mempunyai sebuah mimpi yang besar.. Saya ingin memiliki sebuah Software Vendor sendiri dan bisa menjadi salah satu yang terbaik di Indonesia. "Tanpa Mimpi orang seperti kita ini akan mati", begitu kata Arai Sang Pemimpi :)
Dengan melihat kesempatan yang ada saat ini, saya merasa sekaranglah waktu yang tepat untuk mewujudkan mimpi-mimpi itu. Tiba saatnya tombol CTRL + N ditekan, saya harus memulai hidup yang baru.. kembali ke titik nol.
Cukup berat untuk mengucapkannya... sampai jumpa, temans.. kalian semua hebat!!
Terimakasih sebesar-besarnya buat Pak Dikhi dan Pak Argo atas kesempatan yang telah diberikan selama ini.
Belum pernah saya menemukan seseorang yang sangat berbakat secara teknikal maupun manajemen seperti Pak Dikhi. In one of Japanese Manga, you are so called "Kage"! The greatest and strongest one :) Saya senang selama ini bisa belajar banyak hal..
Buat teman-teman tim; Fachry, Wendy, Helmy, Jenal, William, Ocky, Edo, Surya, Erni, Robby, Alfi, Made, Yudi, kalian teope begete! Nggak ada duanya! :D
Buat teman-teman satu angkatan; Tiar, Afwan, Tyo, Agung, Vera, Nita, Agus, Lusi, Martha, Selly, Wina, Made, Erni, Raymond, Maria, kalian keluarga pertama saya di Bali.. will be missing you, keep in touch yaa :)
Buat anak-anak kosan Puri Gerenceng; Anto, Lauren, Edo, Ramadhan, Deky, Nita, Uni, Albert, Teguh, Tiar, seneng bisa kenal kalian yang ceria dan lucu-lucu heheh..
Buat Management, terimakasih atas kepercayaan dan kesempatan yang diberikan untuk saya. Buat Admins, thanks atas bantuannya selama ini, kalian hard workers sejati :). Buat ITS, maap yaa sering merepotkan, trims atas semua bantuannya.. The OBs, makasih udah mencuci green cup saya setiap hari dan membersihkan cubicle saya.
Buat komunitas-komunitas kantor seperti MACO, MMC, Futsal, dan lainnya.. keep doing positive things! Saya bakalan kangen terlibat acara-acara itu :)
Buat temen-temen lainnya, maaf yaa nggak bisa nyebutin satu per satu, thanks atas semua pertemanan dan kebaikan kalian selama ini.. sekali lagi, kalian hebat!!
Untuk semua, saya mohon maaf kalo selama ini saya punya kesalahan baik yang disengaja maupun nggak disengaja.. maap yaa...
. bye bye . Adios . saYonara . aLoha . ciaO . elalleQa . naMaste . Totsiens . zàiJiàn . afscheiD . aUf wiedeRsehen . antío . addIo . pileuleuYan . sUgeng tIndak . taM biêt . sampaI Jumpa . jaGbyeol iNsa . Adeus . tha tha tha tha tha tha tha tha tha tha tha tha tha tha tha tha tha thaa.. .. ..... .....
My little boat, called “Ink & Canvas”
Ay ay, Captain! This ship is great!! But I wanna sail to the middle of oceans with my little boat, grabbing the fishes at noon and looking up the stars at night with it.
Good luck, Captain! See you, everyone!
Belajar WPF yuk!
Anda yang terbiasa membuat aplikasi berbasis desktop dengan menggunakan teknologi .NET, tentunya sudah familiar dengan Windows Forms, sebuah teknologi antarmuka (user interface) yang dibangun di atas teknologi GDI+ (pertama kali diperkenalkan pada WindowsXP time frame). GDI+ itu sendiri merupakan pengembangan dari teknologi GDI yang pertama kali muncul pada Windows 1.0 tahun 1985. Jadi, bisa dihitung berapa usia teknologi di balik Windows Forms yang biasa kita gunakan. :)
Di lain sisi, terdapat dua teknologi grafis yang sudah kondang seantero developer khususnya pemerhati grafis: OpenGL dan DirectX. Kedua teknologi ini memungkinkan kita untuk mengembangkan aplikasi yang membutuhkan pengolahan grafis lebih jauh. Tidak hanya untuk kebutuhan grafis 2D, tetapi juga 3D, dengan memanfaatkan kemampuan hardware pemroses grafis (GPU). Sehingga keduanya sangat diandalkan untuk membangun aplikasi-aplikasi berbasis grafis seperti game dan simulator 3D.
Persaingan bisnis di bidang software semakin ketat, tidak hanya faktor value, fitur, performance, dan security saja yang ditingkatkan, tetapi juga dari user experience. Pengalaman user dalam menggunakan software menjadi bagian terpenting yang harus mendapat perhatian dari para pengembang software.
Membangun sebuah software dengan efek 3D, misalnya sebuah Sistem Penjualan Produk dengan visualisasi laporan berbentuk kertas atau buku 3D, bisa saja dilakukan dengan memadukan teknologi Windows Forms dan DirectX. Membuat custom control tertentu dengan cara seperti ini (atau cara lainnya dengan hanya memanfaatkan teknologi Windows Forms) relatif menghabiskan waktu dan resource lebih banyak. Tidak jarang solusi seperti ini justru mengecewakan, hasil rendering control yang tidak sesuai dengan keinginan, perbedaan kompatibilitas antara GPU, dan sebagainya. Custom/composite control dikembangkan dengan beragam cara demi tercapainya tampilan yang penuh estetika dan dapat meningkatkan kesan baik dari user (mudah digunakan dan intuitif).
Windows Presentation Framework (WPF) hadir untuk menjawab tantangan ini. Kemampuannya dalam memanfaatkan akselerasi GPU mampu menghadirkan sebuah software dengan user experience yang tinggi melalui efek/style, animasi, dan kekuatan grafis vector. Tanpa harus menguasai beberapa teknologi tertentu (seperti menggabungkan Windows Forms dengan DirectX dan teknologi lainnya), melalui WPF kita bisa lebih mudah untuk membangun sebuah aplikasi yang kaya dengan user experience dan lebih intuitif.
WPF merupakan bagian dari .NET Framework. Pertama kali muncul pada .NET Framework vesi 3.0. Bersama dengan teknologi lainnya--yaitu WCF, WF, dan WCS--, WPF merupakan teknologi baru pada .NET Framework versi 3.0 yang merupakan superset dari .NET Framework versi 2.0. Dengan kata lain, diluar keempat teknologi baru tersebut, .NET Framework versi 2.0 tetap dipertahankan di dalam versi 3.0.
........... [Baca selengkapnya.......]
IWIC 2009: A gorgeous battlefield
Indosat Wireless Innovation Contest (IWIC) tahun ini merupakan yang keempat. IWIC pertama kali diselenggarakan tahun 2006. Waktu itu saya masih di Jogja. Sayang sekali saya sudah terlambat untuk mendaftar. Begitu juga untuk tahun 2007 dan 2008, 'nggak gaul' jadinya kurang info, telat melulu :(. Tahun ini, Alhamdulillah ada teman yang mengingatkan saya ketika IWIC 2009 segera dimulai.
Kebetulan sebelum ajang IWIC 2009 dimulai, saya sedang mengembangkan sebuah product yang bernama BukuQ. Tanggal 31 Agustus 2009 saya kirim proposal BukuQ ke panitia IWIC 2009. Sambil menunggu pengumuman, saya lanjutkan pengembangan BukuQ.
Alhamdulillah, tanggal 3 November muncul pengumuman Finalis IWIC 2009, dan saya termasuk salah satu dari empat finalis untuk kategori Mobile Wireless Application sub kategori Social Networking.
Unit Testing – Bagian III: Menyingkap yang tersembunyi
Sebelumnya, saya ingin sedikit merangkum apa yang telah kita bahas pada artikel Unit Testing - Bagian II. Kita sudah tau bagaimana cara membuat test project, lalu test class, dan test method. Kita juga sudah paham bagaimana mengeksekusi setiap test method, dan melakukan verifikasi di dalam masing-masing test method tersebut. Termasuk bagaimana melakukan verifikasi atas ekspektasi terhadap sebuah Exception. Yang tidak kalah pentingnya, kita pun sudah mengerti bagaimana cara melihat test outcome hingga ke code coverage nya. Dengan begitu, sudah ada sedikit pencerahan tentang gimana sih bentuknya unit testing itu. Mungkin sebelumnya ada yang bertanya-tanya seperti apa bentuknya unit testing itu. Sekarang.. setidaknya sudah sedikit terjawab "oo gitu toh yang namanya unit testing". Masih lupa-lupa ingat? Boleh dibaca lagi di sini.
Oia, please keep in mind bahwa pembahasan kita hingga tulisan ini cuman for the sake of getting the idea apa sih unit testing itu, kayak gimana sih bentuknya, implementasinya seperti apa sih (dengan menggunakan teknologi .NET). Belum sampai gimana cara menulis test dengan baik dan benar. Bahkan unit testing itu sendiri memiliki patterns yang sudah well acknowledged. Itu nanti ya, di tulisan-tulisan selanjutnya :) Dan contoh-contoh kode program yang saya tulis bukan contoh implementasi real world.
Yang tersembunyi
Seperti yang sudah kita ketahui bersama, untuk kepentingan security/information hiding, .NET memiliki modifier private, protected, dan internal. Tulisan ini akan membahas bagaimana melakukan unit test terhadap method/property dengan ketiga modifier tersebut.
Temporary theme
Untuk mengobati scrolling pain di theme things yang selama ini saya pake, sementara waktu saya pake theme LightWord dulu, sambil nunggu waktu luang buat bikin theme yang baru. Tapi kalo ngga sempet-sempet juga mungkin udah aja pake theme ini ;p Thanks ya mas Andrei Luca..
Telah memasuki orbit: XAML, melukis dengan kode
Alhamdulillah, jadi juga meluncurkan blog tersendiri tentang WPF dan Silverlight.. semoga bisa konsisten posting :) Silahkeun mampir di sini...
things theme is back
Alhamdulillah, berhasil re-activate things theme beserta messaging framework nya : ) walopun banyak data yang ga berhasil ke-restore.. liat aja tu mesej terakhir dari si Harry mei 2008.. mesej2 dan quote2 yang lain raib sudah. yasu gpp laah..
Pengen bikin theme baru, tapi masi cinta ama theme ini.. maklum dulu bikinnya sambil begadang2 di "kosan merah" hehe.
Siip lah, saatnya lanjutgan re-store posting dari google cache... marii..
*Updated on 090914:
Pasrah deh.. cuma segini posting, comment, message, quote yang bisa ke-restore.. sekitar 30% doang :( ada yang posting nya selamat, comment nya ga selamat.. posting yang ga selamat sama sekali juga banyak nian.. yasu tak mengapa, semoga ngga terjadi lagi tragedi itu.. let's keep blogging :)
btw saya beneran mau design theme yang baru ahh, cukup sudah dengan scrolling pain ini..
Hello (again), world!
Setelah sekian lama saya bertahan dengan ke-keukeuh-an saya "baik-baik aja tuh pake free hosting di 000webhost, ngga ada masalah". Selama itu pula tidak sedikit yang berteriak "jangan pake free hosting di 000webhost!!" karena ini dan itu.
Kali ini saya (dengan penuh semangat) secara resmi turut serta mengucapkan "JANGAN PAKE FREE HOSTING DI 000WEBHOST!!" ;D
Lah wong tau-tau account hosting saya lenyap dari dunia fana ini. Semua data dan file ilang sudah. Semua account di situ, termasuk email juga raib. Padahal (ini salah saya siih ;p), buat login ke control panel domain saya, itu pake email yang di-host di 000webhost tadi. Celakanya, pas saya mau login ke control panel domain saya, passwordnya expired *zigh. Otomatis reset password akan terkirim ke email itu which absolutely died already. Ga ada cara lain (seperti sms alert) buat reset password, begitu kata pak admin di sebuah ISP tempat saya membeli domain.
Untungnya, setelah utak-atik, berhasil juga menyelamatkan domain ini *terharu.. Dan untungnya om google rajin banget "backup" data saya melalui tembolok-temboloknya ;D Paling nggak posting-posting tertentu bisa dikumpulin lagi hehe.
Well, mau hosting yang gratisan tapi aman?? pikir-pikir dulu deh ;p *Sekarang aja bisa ngomong gini, padahal sebelumnya..... Yaa, emang dasar saya aja yang dudul hosting ngasal dan ga rajin backup hee. Sekarang saya dah pindah ke hosting service berbayar ;D
ini "puing-puing rumah" saya yang tersisa *sedih

Huh, kembalikaaaaan website sayaaa!!
*Updated on 090820: Mulai ngumpul2in ulang posting2 dari temboloknya google
Code Analysis: Coding Standard (from who-cares code to code with care)
Pertama kali saya membuat Sistem Informasi yang komersil (yaitu Sistem Informasi Perikanan), dengan project management seadanya, dan proses yang "Ah gile" instead of Agile. Team Leader memberikan presentasi software yang baru kami selesaikan di depan Client. Hingga suatu titik muncul sebuah form dengan sebuah lable tertulis "Nama Ikan", dan di sebelah lable tersebut terdapat text box yang tertulis "Sapi". Ups!! Client bengong, Team Leader melirik pada saya dan menggugat dengan sebuah pertanyaan "Kok ada ikan namanya Sapi??"

Code Analysis: when the referee blows the whistle
Suka maen sepakbola? atau paling nggak, pernah nonton sepakbola kan.. Pasti udah nggak asing lagi ama sempritan wasit klo terjadi pelanggaran aturan sepakbola..
Nah.. ketika kita membangun sebuah software, kita juga bisa terapkan aturan pada code yang kita buat. Jika melanggar aturan tersebut, maka akan mendapatkan kartu kuning atau kartu merah ;D
Gimana ceritanya??
Unit Testing – Bagian II: Bagaimana
Sebuah konsep tanpa implementasi atau sebuah teori tanpa praktek ibarat janji tinggal janji (tak ditepati). Konsep unit testing sudah saya bahas pada artikel sebelumnya, Unit Testing - Bagian I: Apa, Mengapa. Bagaimana implementasi unit testing pada Software Engineering? Kali ini, saya akan coba untuk membahasnya dengan menggunakan teknologi Microsoft. Sebelum membaca lebih lanjut, bagi anda yang belum mengerti apa itu unit testing, mungkin bisa baca konsep nya terlebih dahulu. Karena keterbalikan dari janji tinggal janji, sebuah implementasi tanpa konsep ibarat cinta buta, apa yang dilakukan tak lebih dari luapan hati dan perasaan... halaaa jadi ngaco deh..ahahaa. Lupakan tentang cinta, saya juga bukan ahlinya ;P
Saya bikin sebuah class bernama Fighter pada project Fighting.Api di dalam sebuah solution bernama Fighting, dengan beberapa member (method dan field) seperti berikut:
Unit Testing – Bagian I: Apa, mengapa?
Saat itu hujan rintik-rintik, halah seorang Interviewer bertanya pada saya, "Kamu tau Unit Testing?". Karena saya tidak ingin terlihat tidak tau sama sekali (padahal faktanya memang begitu), saya menjawab dengan sebuah pertanyaan, "Ngetes fungsional setiap bagian atau fitur dari aplikasi kan, Pak?". Beliau balik bertanya lagi, "Maksudmu, misalnya tes fungsional sebuah tombol dalam form dengan interaksi User?". Dengan percaya diri saya jawab "Iya, Pak. Setiap bagian fitur diuji oleh developer lalu diuji lagi pada saat UAT". "Oh bukan, bukan itu" kata beliau. Berhubung udah terlanjur (pengen) malu, saya balik tanya lagi "Trus, yang gimana dong, Pak?". Akhirnya beliau menjelaskan dalam beberapa kalimat singkat, apa itu Unit Testing ;D Semenjak saat itu, saya mulai mengimplementasikan unit testing pada proses software development sambil belajar sedikit demi sedikit.
Sebagian Software Engineer (maaf, saya lebih suka menggunakan istilah "Software Engineer" ketimbang "Developer" atau "Programmer" :) ) paham dengan baik apa itu Unit Testing, apa manfaatnya, dan bagaimana implementasinya. Sementara, sebagian yang lain tidak tau sama sekali dan bahkan baru pernah mendengar (yang terakhir ini mungkin cuma terjadi pada saya saat drama Interview yang saya ceritakan di atas ;P ).
Jadi...
Apa itu Unit Testing?
red-o-splash: My first Inkscape artwork

Saya cuman penasaran awalnya, apakah Inkscape cukup reliable untuk menghasilkan sebuah vector graphic yang indah, atau tidak.. Karena selama ini saya belum pernah menggunakan Inkscape untuk graphic design. Untuk website ini misalnya, bisa dilihat graphic tools yang saya gunakan dengan klik tombol monitor yang paling kiri, sampai ketemu screen “Credits” ;D
Termasuk waktu yang sebentar ketika saya membuat wallpaper (yang akhirnya saya namakan) red-o-splash ini, lah wong cuma iseng-iseng nyobain Inkscape kok, nggak niat bikin yang bener-bener serius. Ehh, ternyata iseng-iseng nya keterusan, jadi iseng-iseng coba submit ke gnome di art community-nya.
Saya tidak terlalu berharap mereka mau majang karya iseng-iseng saya ini. Eeeh ternyata, dipajang oleh gnome dan dalam waktu dua hari, red-o-splash sudah di-download lebih dari 1000 orang…. hee, ngga nyangka.
Ayo ikutan download di sini.. hahaa.. kok malah keterusan iseng-iseng ngajakin download ;p

