TeamCity – Continuous Integration for Everybody

TeamCity – Continuous Integration for Everybody

TeamCity - Continuous Integration for Everybody

TeamCity – Continuous Integration for Everybody

I’m writing this article in English, even my English is not that good :p. The main reason is because the audience of this article is supposed to be my colleague. I will write the article on my blog first to share with the world ^_^ and then I will copy the article to our company’s forum for our internal documentation. For several article ahead, we will discuss about how can we use a “Continuous Integration” system in to support our SDLC.

If you came from Java (Programming not Island :D), maybe you are familiar with Jenkins (Jenkins-CI). Both are similar tools, written in Java, and available for Linux, Windows and Mac OS X.But how does Continous Integration (CI) works? Here is the figure:

Continuous Integration - Summary of Steps

Continuous Integration – Summary of Steps

  1. Developers work to transform the requirements or stories into source code using the programming language of choice.
  2. They periodically check-in (commit) their work into a version control system (VCS)
  3. The CI server is polling the VCS for changes. It initiates the build process when it encounters a change. The build is executed using a dedicated tool for the job such as Maven, Ant or Rake etc. Depending upon the language used, the source code may need to be compiled.
  4. Static analysis is performed on the source code, to ensure compliance with coding standards and to avoid common causes of bugs.
  5. Automated unit tests are executed.
  6. The percentage of the production code exercised by the unit tests is measured using a coverage analysis tool.
  7. A binary artefact package is created. At this point we might want to assist derivation and provenence by including some additional metadata with the artefact e.g. a build timestamp, or the source code repository revision that was used to produce it.
  8. Prepare for functional testing by setting up the test fixtures. For example, create the development database schema and populate it with some data.
  9. Prepare for functional testing by provisioning a test environment and deploying the built artefact.
  10. Functional tests are executed. Post-execution, tear down any fixtures or environment established in 8 and 9.
  11. Generate reports to display the relevant metrics for the build. E.g. How many tests passed? What is the number and severity of coding standard violations?
  12. The process is continuous of course! So rinse…and repeat….

Source Article

For the next series of this tutorial, first of all we will define the scope by using real case example. Maybe not all of the step we’re implemented right now but most of them will done.

To Be Continued …

Source Code BNI Smart Mobile

Source Code BNI Smart Mobile

Sesuai janji saya pada posting BNI Smart Mobile Android, dalam posting kali ini saya akan merelease source code aplikasi tersebut.

Sebenarnya aplikasi ini sangat sederhana, cara kerjanya hanya mengirimkan SMS ke SMS Center yang ditentukan dengan format syntax yang sudah diatur oleh BNI. Namun supaya tidak menjadi fitnah (karena beberapa orang tidak percaya dengan aplikasi tersebut :p) saya memutuskan untuk merelease source codenya agar siapa saja bisa melakukan audit terhadap source code tersebut.

Selain itu semoga source code ini lebih bermanfaat bagi siapa saja yang membutuhkan, khususnya sebagai referensi bagaimana cara mengirimkan SMS melalui aplikasi Android.

Source Code BNI Smart Mobile bisa anda dapatkan disini:

Silahkan baca-baca referensi bagaimana cara melakukan clone dari Git repository atau anda juga bisa mendownload repository tersebut sebagai file ZIP.

Saya membuat aplikasi ini sebagai langkah awal saya dalam membuat Aplikasi di Android. Karena hal ini setidaknya menurut saya lebih menantang daripada hanya sekedar membuat tulisan Hello World 😀

Mohon masukannya jika ada perbaikan terhadap kode yang saya buat, karena dengan demikian anda juga membantu saya dalam proses belajar untuk lebih memahami desain aplikasi Android di kemudian hari.

BNI Smart Mobile Android

BNI Smart Mobile Android

Saya adalah salah satu nasabah kartu kredit BNI yang aktif menggunakan fitur Smart Mobile. BNI memberikan kemudahan bagi pengguna Smartphone yang ingin menggunakan fitur ini dengan menyediakan aplikasi berbasis Java yang tersedia untuk platform BlackBerry dan Smartphone lain yang mendukung J2ME. Informasi selengkapnya tentang BNI Smart Mobile dapat anda akses disini.

Sebagai pengguna Android, tadinya saya menggunakan emulator untuk menjalankan file JAR yang diperoleh dari situs BNI Card Center. Namun berhubung ada minat untuk mempelajari pengembangan aplikasi di Android, daripada hanya membuat sebuah “Hello World” :D, saya berinisiatif untuk membuat aplikasi serupa tetapi untuk platform Android.


Pada dasarnya backend untuk aplikasi ini adalah SMS. Aplikasi Smart Mobile dari BNI maupun aplikasi yang saya buat ini menggunakan cara yang sama untuk memperoleh informasi yang dibutuhkan dari BNI. Aplikasi ini memudahkan kita sehingga kita tidak harus menghafal syntax untuk mengakses informasi ataupun melakukan transaksi yang kita inginkan dengan kartu kredit BNI kita.

Saya hanya menambahkan sedikit fitur saja seperti proteksi PIN aplikasi dan mode debug untuk mengaktifkan/menonaktifkan penyimpanan syntax yang dikirim ke Sent Folder (pertimbangan keamanan).


Aplikasi ini tidak dikembangkan oleh PT. Bank Negara Indonesia (BNI), mohon untuk tidak melaporkan kesalahan atau bug software kepada pihak BNI. Silahkan mengacu ke halaman informasi yang terdapat di aplikasi untuk cara pelaporan bug aplikasi ini.

Source code untuk aplikasi ini akan direlease setelah target donasi tercapai atau tergantung kebijakan dari pemilik source code aplikasi ini jika source code terjual ke pihak ketiga (let’s hope not) :D.

Download Aplikasi BNI Smart Mobile Android (BNISmartMobile.apk)
Ukuran: 93 KB MD5: 27FF8F4808332ACCEB2A6C7680F4F375


… dari nasabah untuk nasabah 😉


Hosting download untuk file diatas sudah tidak tersedia dan saya sudah merilis source code untuk project ini di URL ini:

LG Vortex VS660 Custom ROM

LG Vortex VS660 Custom ROM

LG Vortex VS660 (Vortex) consider as CDMA version of LG Optimus One (O1) that bundled with Verizon Wireless. Vortex is not alone in LG’s CDMA line up, there are also Optimus S (Sprint) and Optimus M (Metro PCS).

You might guess that Vortex name could be Optimus V, but I like Vortex better :-). This LG’s line-up series has similar hardware and Android version.

Since I’m not subscribed to Verizon service, I didn’t get any update on my device. Not even to Android 2.2.1 version. Lucky for me, bloodxxsyndicate provide nandroid backup of his ROM based on Android 2.2.1 update. That was a good start until then I found Custom Rom “Breakneck” for LG Vortex for further.

Having both ROM (version 2.2.1) as start, I’m working on my own version of 2.2.1 ROM. I want a clean version (without resource modification) of Custom ROM that result would be nearly similar to factory default version except this are already deodexed and optimized. We can all start developing our own customized ROM based on this, and the best part of it, it’s available to everybody, not just Verizon customers. And here I present:

Vorbrain ROM V1d for LG Vortex VS660
(Click to Download)

Download Patch (20110606) : AMR Playback Fix
( – apply after update)

The download link is not available anymore because the site that was hosting the download files has down.

What did you get on this ROM:

  1. Latest Update (20110604)

  2. Clean ROM (Keeping APK’s Dependencies)

  3. ROM Base 2.2.1 (Rooted Already)

  4. Deodexed both for Application and Framework

  5. Optimized and zipaligned all APK’s

  6. JIT Enabled + Increase Heap Memory Size

  7. Remove All Bloatware

  8. Overclockable Kernel

  9. Bundled w/ Google Search & Maps

  10. More space on /data (Google Update is already bundled!)

How to Install:

  1. Your device has to be rooted first! If you’re came from stock 2.2 Android version, then you are lucky, just use z4root to do this.

  2. Because this are ZIP update packages, you must apply custom recovery menu to do ZIP flash update. I would recommend this link and please follow the instruction carefully. The custom recovery image for your Vortex is: recovery-RA-vortex-2.2.1-GNM.img

  3. I’m not writing about steps to apply above mod because it’s already well-documented on creator’s page. I also didn’t include any of those requirements in this article on purpose to honor the creator’s request, not to hot-linked the download part in any means.

  4. If you already download the update package on above link, put downloaded ZIP package on the root of your SD Card and apply ZIP flash update from recovery menu.

  5. Enjoy the ROM!

I would like to thanked to all guys that provide me the ingredients to made this ROM, include great  tools they’re provide to help me with pack-repack, deodexing and optimizing process.

If you like my job, please consider to buy me a snack and coffee 😀 If you give me a lot, I’ll share with those guys I’ve mention 🙂

Alarm Musik Sederhana Dengan C#

Alarm Musik Sederhana Dengan C#

Beberapa waktu lalu, saya sempat membuat proyek iseng dengan C# (sekalian pengen tahu bahasa ini :p) yaitu membuat sebuah Alarm Musik sederhana. Saya kira untuk mempelajari bahasa ini secara sepintas lebih baik langsung mencobanya dengan membuat proyek yang sederhana. Setidaknya lebih bermanfaat daripada hanya sekedar Hello World! 😀

Proyek sederhana ini mengimplementasikan beberapa method berikut:

  • Penggunaan Tray Icon di OS Windows
  • Penyimpanan Konfigurasi ke File INI
  • Windows API Call Untuk Memutar File MP3

Mohon maaf kalo masih buggy :p maklum, masih pemula dan .NET bukan bahasa utama saya 🙂 Source code dan binary download bisa diperoleh disini: