Selasa, 03 September 2013

Wibowo Arindrarto: Cerita Biopython dan Google Summer of Code 2012

Pengantar

Wibowo Arindrarto

Sebagai salah satu usaha memperkenalkan Python kepada masyarakat luas, komunitas Python Indonesia akan mencoba melakukan wawancara pada orang-orang Indonesia yang berkecimpung dalam Python. Untuk wawancara perdana ini, dipilih Wibowo Arindrarto, atau yang biasa dipanggil Bowo. Bowo aktif dalam proyek Biopython dan sempat mengikuti Google Summer of Code di tahun 2012.

Wawancara

Baik, kita mulai ya. Bisa cerita bagaimana awal mula kenalan dengan Python?

Awalnya dulu mau cari scripting language yg cocok untuk otomasisasi beberapa analisis di lab (latar belakang saya biologi / biomedical science). Setelah baca berbagai artikel internet, pilihannya adalah Perl dan Python. Akhirnya saya pilih Python karena kelihatannya waktu itu sedang berkembang cukup pesat dan syntaxnya enak sekali dimengerti.

Kalau sekarang melihat ke belakang, saya rasa pilihannya tepat. Python memang masih berkembang pesat (terutama untuk sains) dan keputusan saya memilih Python sedikit banyak membantu saya mendapatkan dan melakukan pekerjaan saya sekarang.

Oh iya, malah lupa kita belum kenalan. Bisa cerita soal kamu sedikit? Mulai dari besar di mana, sekolah, kuliah, kenapa tertarik pemrograman, hobi, aktivitas sekarang apa.

Hmm..banyak juga ya ini :p. Satu-satu ya:

  1. Saya sekarang bekerja di Belanda, di salah satu institusi riset biomedis di sini sebagai programmer bioinformatika (bioinformatician). Sehari-hari saya menggunakan Python untuk analisis data riset biologi. Sebelum bekerja di tempat saya sekarang, saya S2 di sini dan S1 di Jakarta.
  2. Saya besar di Jakarta (18 tahun di sana). Sudah mencicipi programming sejak umur 12 tahun (pertama kali dulu dengan BASIC) dan memang senang komputer. Tapi ketika kuliah, saya memutuskan mengambil biologi / bioteknologi karena berpikir saya tetap bisa belajar programming sebagai mahasiswa biologi tapi sulit untuk belajar biologi sebagai mahasiswa ilmu komputer. Toh akhirnya tetap dekat ke komputer juga sampai sekarang.
  3. Sampai pertengahan kuliah, saya hanya sekedar bermain-main dengan programming saja (tidak terlalu serius). Yang membuat saya tertarik dan serius itu karena saya melihat kalau untuk bidang saya, pengetahuan programming dan komputer bisa sangat membantu karier. Analisis data yang rutin dikerjakan misalnya, melibatkan data dalam jangkauan gigabyte atau bahkan terabyte. Tidak mungkin bisa dikerjakan tanpa komputer.
Wah kalau begitu tesis S2-nya pakai Python dong? Bisa cerita sedikit soal apa? Apakah tesis S2-nya bisa dibaca?

Tesis S2-nya malah ngga pakai Python. Project besar saya di sini itu sepenuhnya lab basah (waktu itu eksperimen regenerasi cacing). Ada project yang lebih kecil, tapi itu menggunakan bahasa pemrograman R dan PHP (karena saya menambah modul ke legacy code). Tesisnya sendiri teoretis. Kalau (tetap) penasaran bisa dilihat di sini.

Cerita dong bagaimana bisa sampai diterima Google Summer of Code (GSoC) 2012?

Kombinasi planning, niat, dan keberuntungan :).

Planning dan niat, karena memang saya memang sudah berniat ikut GSoC sejak saya tahu ada program ini. Di mata saya, ikut program ini tidak ada ruginya. Untuk bisa apply, saya sendiri harus latihan programming sendiri. Kalaupun tidak diterima, latihan-latihan yang saya lakukan saya rasa sulit untuk dikatakan sia-sia. Kalau keterima, well, jauh lebih baik lagi :).

Keberuntungan, karena kebetulan program yang saya sering gunakan untuk analisis data lab, Biopython, ikut berpartisipasi di GSoC. Karena saya sudah menjadi pengguna, saya punya sedikit perkiraan apa yang bisa saya berikan untuk Biopython.

Proyek kamu di GSoC itu buat apa sih?

Intinya, saya menambah satu submodul yang berguna untuk parsing output berbagai program untuk pencarian sekuen DNA dan/atau protein. Program seperti ini sangat berguna dan variasinya cukup beraneka ragam. Sayangnya, tidak ada standar format yang diadopsi semua program (karena memang sangat sulit menstandardisasikannya). Submodul yang saya tulis berfungsi memberikan satu 'interface' yang seragam untuk semua format ini sehingga user tidak perlu pusing memikirkan format outputnya. Cukup gunakan submodul tersebut dan fokus pada data yang ada di dalam output filenya.

Pendeknya, saya membuat satu pustaka untuk representasi hasil analisis data dan beberapa parser yang menggunakan object model yang saya buat ini.

Setahu saya, peserta gsoc perlu menuliskan laporan proyeknya. Apakah ada di blog kamu?

Yep :). Laporan saya ada di blog website saya (yang di-generate dengan program Python buatan sendiri).

Punya buku favorit python? Kenapa?

Yang paling saya rasa berguna ketika belajar sendiri itu Core Python Programming karangan Wesley Chun. Buku ini membahas Python cukup mendalam tapi bahasanya masih bisa dimengerti.

Pythonista lain yang jadi favorit?

Hmm..kalau ini agak sulit ya sepertinya. Lebih mudah menyebutkan library/pustaka favorit :).

Ya udah deh, kita ganti pertanyaannya dengan apa aja library favorit kamu?

Untuk 3rd party modules, saya suka:

  • Biopython, karena banyak membantu analisis data)
  • jinja2, karena fleksibel dan template languagenya tidak bertele-tele. Saya menggunakan jinja2 untuk membuat laporan analisis data saya di lab, dan juga di website generator yang saya tulis.
  • Yang terakhir, mungkin lebih luas dari library (bisa dibilang salah satu port Python), yaitu IPython. Yang ini belum lama saya gunakan, tapi sudah terasa cocok sekali. Interpreter command-linenya lebih kaya dibanding interpreter default Python. Selain itu, feature notebooknya sangat bermanfaat (basically membuat saya bisa membuat web browser saya jadi seperti interpreter).

Untuk yang ada di standard library:

Bagaimana sih cara belajar pemrograman yang baik menurut kamu? Atau kamu dulu gimana belajarnya?

Paling baik itu mulai gunakan programming sebagai alat untuk memecahkan masalah. Maksudnya, sembari belajar dari buku atau website, coba praktekkan langsung pengetahuan yang dipelajari untuk membuat aplikasi / script kecil yang berguna. Dulu saya awalnya membuat script untuk backup data, untuk reorganize koleksi lagu dan gambar saya, dan untuk mempermudah analisis data saya di lab.

Nah, kalau sudah merasakan manfaat programming, konsep-konsep yang ada di suatu programming language akan lebih mudah dimengerti. Perlahan-lahan akan menyadari kalau programming itu sendiri sebenernya juga bisa menyenangkan dan tidak melulu harus untuk memecahkan masalah konkrit.

Terakhir, minta URL akun twitter, github dong

http://github.com/bow, @_bow_

Penutup

Sekian wawancara perdana kali ini. Kritik dan saran silakan tinggalkan komentar di blog ini. Begitupun apabila ada pertanyaan lanjutan untuk Bowo.

Tidak ada komentar:

Poskan Komentar