Entries Categorized as 'Developer'

Framework dan Tumpukan Masalah yang Menyertainya

Date February 15, 2010

Saya sudah agak lama tidak terlibat dalam sebuah project yang sangat intens dengan coding dan saya merasa rindu karenanya. Saya sudah cukup banyak tahu dan mencoba bermacam framework seperti Spring, Hibernate, Webwork, Struts, Seam, IceFaces (Java sudah jenuh dengan framework ya?). Saya bukan programmer yang tahu terlalu dalam dengan tumpukan framework tersebut dan tidak terlalu tahu bagaimana memanfaatkan mereka dengan benar. Izinkan saya meletakkan ego saya dengan berkata bahwa saya tidak terlalu paham dengan konsep MVC (Model View Controller).

Saya pernah gagal dalam merancang sebuah software dengan tumpukan framework MVC, dimana di sisi model menggunakan Hibernate sebagai ORM (Object Relational Model), di sisi view menggunakan Struts/Webwork, sedangkan Spring menangani sisi controller-nya. Singkatnya, dengan begitu tumpukan framework yang besar, permasalahan datang karena batasan-batasan framework, bukan karena proses bisnisnya. Akhirnya, banyak energi yang harus dihabiskan untuk memenuhi syarat-syarat cukup yang diwajibkan framework.

Seharusnya dengan perancangan, desain, dan perencanaan yang baik hal itu tidak terjadi. Janji-janji framework dimana proses skalabilitas dan perawatan akan lebih mudah menjadi janji palsu belaka. Nyatanya proses tambal sulam menjadi sedemikian besar. Apakah dengan framework tersebut proses pengerjaan akan menjadi lebih cepat? Mungkin jika project-nya begitu besar iya, tapi dengan skala kecil, akan ada waktu yang dihabiskan untuk membuat sistem dasar dimana semua framework berjalan dan saling bekerja sama dengan baik sebelum menyentuh ke proses bisnis intinya.

Akhirnya saya begitu merindukan PHP. PHP from scratch. PHP tanpa framework. PHP yang dengan begitu buruknya menangani variabel dan nilai null karena pemesanan blok memory tanpa deklarasi. Dan itulah yang saya lakukan. Semua saya gabung jadi satu. Query ke database, validasi, HTML, Javascript, semua dalam satu file PHP yang besar. Saya hanya memakai library kecil-kecil saja tanpa framework besar yang bertumpuk-tumpuk. Cukup merepotkan, tapi saya fokus dan hanya dihadapkan pada permasalahan inti, bukan masalah-masalah yang ditimbulkan karena penggunaan framework yang tidak benar.

Pelajaran moral yang saya dapatkan: tidak semua permasalahan harus menggunakan solusi framework yang besar. Kadang-kadang, sebuah permasalahan lebih efektif jika dikerjakan dengan cara “gila” tanpa aturan seperti ini. Permasalahan selesai, dan ada banyak orang yang lebih mengerti dengan cara dasar (karena mudah) dan sulit mengerti cara framework karena learning curve-nya jauh-jauh lebih panjang. Lebih mudah mendelegasikan pekerjaan.

Anda boleh menyebut saya programmer yang buruk karena tidak patuh terhadap kaidah suci MVC. Toh, saya mungkin tidak akan kembali lagi ke dunia ini, ha ha ha ha…

PS: Saya jadi ingat tulisan-tulisan beberapa tahun yang lalu waktu masih memuja MVC hehe.

Sekadar Cita-Cita

Date December 30, 2009

Dalam bidang komputasi, computer science, sebenarnya ada banyak hal yang saya cita-citakan yang sampai sekarang belum terlaksana. Yeah, alasannya klise sih, waktu. Demi waktu. Saat ini saya lebih menggunakan slot waktu luang saya untuk hal-hal di luar komputer — belajar piano dan membaca buku. Saya tidak ingin 24 jam waktu saya sehari sebagian besar habis untuk komputer. Saya yakin ini pun tidak akan lama, karena waktu kuliah akan segera dimulai dan praktis saya akan mencurahkan sebagian besar perhatian di sana, disamping pekerjaan di kantor tentu saja.

Jadi, saya daftar saja cita-cita saya ini di sini, untuk pengingat:

  1. Membuat prototipe sistem business intelligence berbasis Pentaho dan MySQL. Bukunya sudah ada, saya datangkan langsung hardcopy-nya dari Amazon.
  2. Saya ingin membuat situs chord musik yang bisa melakukan konversi nada dasar. Pengguna hanya perlu memasukkan file teks berisi chord, sistem akan melakukan parsing teks dengan artificial intelligence yang dimilikinya, dengan output chord baru dengan nada dasar baru.
  3. Di dunia mobile, saya ingin membuat sebuah aplikasi Java Midlet berisi kamus dan tesaurus bahasa Inggris. Saya akan kumpulkan sumber dari situs online semacam dictionary.com dengan perambah internet kecil, saya kumpulkan di database lokal ponsel agar bisa digunakan secara offline. Ini tantangannya, bagaimana menyimpan data besar dalam ukuran sekecil-kecilnya. Lalu saya akan menyebarkannya dengan lisensi yang benar-benar free.
    Adakah aplikasi seperti ini yang free? Cita-cita ini terbentuk karena saya mencari program tesaurus untuk Nokia N95 saya dan tidak menemukan yang benar-benar gratis kecuali yang online.
  4. Di dunia Geographic Information System (GIS), saya ingin mengembangkan prototipe GIS yang berisi informasi detail mengenai kota kelahiran saya: Tulungagung. Saya akan kembangkan sistem berbasis open source: Map Server. Saya selalu tertarik ketika melihat presentasi tentang GIS dan ingin mempelajarinya.

Hahaha… empat dulu. Ini yang di dunia computer science. Belum lagi cita-cita di bidang musik sehubungan dengan pelajaran piano saya. Belum lagi yang di bidang accounting.

Waktu terbatas. Kemampuan terbatas. Keinginan menggebu-gebu. Nggak boleh kemaruk… saya yakin suatu saat pasti akan terwujud, atau daftar di atas akan semakin memanjang, ha ha ha…

Xming, Menjalankan X di Windows

Date November 10, 2009

Kadangkala, ketika sedang melakukan remote ke mesin Unix atau Linux, saya membutuhkan untuk menjalankan program yang berwindow (memiliki user interface). Ini memang agak tidak lazim karena biasanya hampir seluruh program di *nix bisa dijalankan dengan command line saja. Kebiasaan inilah yang membuat saya nyaman tetap bekerja di Windows, kemudian tinggal remote ke mesin *nix menggunakan PuTTY dan melakukan segala hal yang saya perlukan dengan command line.

Nah, bagaimana memunculkan window *nix dalam Windows? Bukankah Microsoft Windows tidak memiliki XWindow server yang diperlukan oleh *nix?

Program yang terkenal dalam hal ini adalah Exceed Hummingbird (sekarang Open Text Connectivity), sebuah program propietary yang saya kenal sejak kuliah dulu. Lalu ada beberapa program lainnya lagi namun saya tidak pernah merasa nyaman memakainya — karena ketidaktahuan bagaimana memunculkan window Unix.

Hari ini saya menemukan software free yang bernama Xming. Cukup lightweight karena hanya sekitar 2 MB saja. Cara menjalankannya juga pada dasarnya sama dengan program-program XServer untuk Windows lainnya, cuma baru dengan Xming ini saya berhasil menjalankan sebuah window tanpa harus minta bantuan orang lain, hehehe…

Katakanlah Anda akan menjalankan program xterm dari mesin Unix di alamat 10.2.3.4. Maka yang perlu Anda siapkan adalah:

  1. Buka file x0.hosts dengan texteditor favorit (kalau saya gvim) di folder instalasi Xming (defaultnya C:\Program Files\Xming), dan masukkan entry 10.2.3.4. Ini membuat XServer akan mengizinkan mesin remote itu membuat window di komputer Anda. Tanpa ini, tidak akan ada window yang berhasil dibuat. Tidak akan ada pesan yang berguna bagi Anda kenapa window yang Anda harapkan tidak juga muncul. (khas program gratisan hehe).
  2. Login ke mesin remote Unix dengan PuTTY (protokol SSH atau Telnet sama saja). Misalnya, alamat komputer Anda yang dijadikan XServer adalah 10.2.3.5. Export display ke komputer dengan perintah:
    [shell] $ export DISPLAY=10.2.3.5:0
  3. Jika sudah, coba jalankan xterm dari terminal PuTTY:
    [shell] $ xterm
  4. Jika sebuah window xterm muncul di komputer lokal yang ber-windows ini, Anda sukses mengkonfigurasi XServer di komputer Anda.

Selamat melanjutkan pekerjaan. Maaf jika bahasanya terlalu teknis, ini sebenarnya memang lebih untuk catatan pribadi saya agar tidak lupa. Senang sekali rasanya bisa ngeblog lagi seperti zaman-zaman saat blog ini masih berumur setahun dua tahun ha ha ha…

Solusi Alternatif untuk Sistem Enterprise

Date June 26, 2009

Ada kesalahan fatal yang dilakukan oleh sesepuh Open Source Indonesia, yaitu dengan memperkenalkan solusi Open Source sebagai solusi yang gratis. Padahal free sama sekali tidak sama dengan gratis. Karena gratis sama dengan murahan. Karena murahan sama dengan tidak berkualitas alias jelek. Padahal sama sekali tidak demikian.

Di sini saya ingin menyampaikan, bahwa solusi open source menjanjikan solusi alternatif untuk sistem-sistem propietary yang harga lisensinya hanya bisa dibeli oleh perusahaan-perusahaan besar. Ambil contoh sebuah sistem ERP propietary terkenal. Harga lisensi tiap usernya adalah USD 4000. Jika sistem ini digunakan oleh sepuluh user saja, maka uang yang harus digelontorkan adalah USD 40.000 atau sekitar Rp. 400.000.000. Bagi perusahaan berskala besar, uang segini kecil saja. Tapi buat perusahaan kecil hingga menengah, uang 40 juta saja bisa jadi sangat berarti. Padahal, kebutuhan backoffice perusahaan rata-rata sama.

Sistem Database

Di jajaran open source, ada MySQL dan PostgreSQL. MySQL sejatinya adalah kumpulan dari beberapa database engine. Yang terkenal adalah MyISAM dan InnoDB. MyISAM tidak memiliki konsep relasi yang kuat, tetapi performanya sangat cepat. Jika menginginkan struktur database yang relasinya kuat, bisa memakai PostgreSQL.

E-File Repository, Document Management, dan Document Collaboration

Produk yang sangat terkenal di bidang ini adalah Microsoft Office Sharepoint Server. Menurut saya, produk ini memang belum ada yang bisa menyamainya. Integrasinya dengan Microsoft Office adalah satu kekuatan yang sukar disamai.

Tetapi jika Anda hanya memerlukan sebuah sistem untuk:

  • Menyimpan dan membagi dokumen dalam satu sistem online dengan hak-hak akses tertentu
  • Berbagi dokumen dengan saling memberikan review, update, tugas, komentar, atau yang lazim disebut dengan Collaboration

Anda bisa menggunakan Alfresco yang jauh lebih murah daripada Sharepoint. Tentu saja, banyak keterbatasan-keterbatasan Alfresco jika dibandingkan secara langsung dengan Sharepoint, namun kebutuhan dasar Anda sudah sangat tercukupi tanpa harus menggelontorkan biaya percuma untuk investasi di Sharepoint.

Bussiness Inteligence Analysis, Monitoring, Reporting 

Ah, sistem ini, produk propietary-nya juga berharga selangit. Memang masuk akal, karena sistem seperti ini sangat dibutuhkan sebagai sistem Decision Support System (DSS) yang menentukan pengambilan keputusan dari pada petinggi manajemen perusahaan. Anda bisa membeli lisensi Oracle BI atau Microsoft BI untuk itu.

Namun demikian, dengan harga yang sepersekian lebih hemat daripada dua produk itu, Pentaho menawarkan sesuatu yang bisa dipakai untuk mendukung pengambilan keputusan. Dashboard monitoring, bussiness analytical report, dan laporan-laporan per periode yang diperlukan. Pentaho bisa menawarkan harga yang murah karena basis engine mereka adalah engine Open Source juga.

Portal

Ada banyak sekali pilihan portal yang Open Source. Untuk kebutuhan enterprise, saya rasa Joomla atau Liferay sudah sangat mencukupi. Bahkan jauh lebih unggul daripada portal Sharepoint.

Support/Dukungan Resmi

Memang inilah yang menyebabkan perusahaan besar tidak mau mengadopsi sistem open source dan memilih mengeluarkan biaya yang besar. Keunggulan produk propietary selalu menyediakan dukungan penuh 24 jam. Tiap kali ada masalah, mereka siap dipanggil.

Terlebih lagi, selain kosmetika produk yang menyulap produk-produk propietary menjadi secantik bidadari, fitur integrasi yang saling kait mengait antara produk satu dengan produk yang lain juga fitur yang sangat menarik. Tadi saya ambil contoh betapa mesranya hubungan MS Office dengan Sharepoint. Tinggal satu dua klik, dokumen bisa saling tersinkronisasi.

Produk-produk open source yang saya bahas tadi masih terpisah satu sama lain. Saya pikir ini adalah peluang yang sangat bagus bagi para enterpreneour. Jika ada yang bisa membundel paket Portal, Document Management, sekaligus Bussiness Intelligence-nya dalam satu paket yang saling terintegrasi, lalu layanan kepada perusahaan apa saja yang bisa mereka dapat dengan produk-produk tadi, sekaligus dengan layanan support, saya rasa akan banyak perusahaan skala kecil menengah yang ikut bisa menikmati sistem backoffice layaknya perusahaan besar tanpa harus mengeluarkan biaya yang terlalu besar.

Perlu tenaga ahli buat menggabungkan mereka? Hubungi saya, kekekekeke =)) *promosi mode: on*

Service Oriented Architecture, Masa Depan Kita

Date May 29, 2009

Saya tersenyum getir waktu membaca milis JUGI (Java User Group Indonesia) yang sedang ramai membicarakan masa depan Java yang popularitasnya semakin turun. Kalau Anda masih terjebak dalam fanatisme sempit, semacam Java versus PHP, .net Framework, Ruby, dan seabrek alternatif teknologi yang lain, come on, wake up bro!

Memang harus saya akui sebagai fans sejati Java, dunia Java telah memasuki masa jenuhnya, dimana ada banyak sekali pilihan teknologi — terlalu banyak. Anda bisa menulis “Hello World” dengan 30 cara yang berbeda di Java. Mau cara apa? JSP, Struts, JSF, Spring, Hibernate, Ibatis, EJB, Annotation, IceFaces, Seam? Artinya teknologi ini sudah memasuki masa mature-nya, dan siap digantikan oleh teknologi baru yang lebih menggoda.

Oh tidak, saya tidak berpikir sampai di situ saja. Seharusnya kita sudah mulai berpikir bagaimana melakukan integrasi antar sistem terdistribusi dalam platform yang berbeda-beda. Sekarang, setiap perusahaan memiliki sistem terdistribusinya. Semakin lama platform semakin beragam, dan ujungnya biaya maintenance yang semakin mahal. Proses bisnis semakin bergantung dengan keberadaan sistem IT, tetapi biayanya pun semakin mahal karena semakin kompleksnya jejaring antar aplikasi.

Service Oriented Architecture, tidak hanya datang membawa sebuah solusi arsitektur aplikasi yang lebih baik, namun juga sebagai performance management bagi para pembuat keputusan. Dengan sudut pandang per servis yang diberikan, biaya perawatan sebuah sistem IT bisa dibebankan pada setiap pihak yang berhubungan dengan servis yang digunakan.

Melihat tren para vendor besar, tren ke arah SOA juga telah terlihat nyata. Masing-masing memiliki jagoannya masing-masing. Oracle, IBM, dan Weblogic. Ini artinya, dengan investasi besar di SOA, mereka percaya pada SOA sebagai masa depan seperti dulu Oracle berjargon, “Because we believe in Java”. Di dunia open source pun, salah satu vendor terbesarnya, Apache Software Foundation, juga telah membuat tool-tool SOA-nya.

Jadi, apakah kita akan masih berkutat pada fanatisme sempit macam Java versus MS .net? Tantangan ke depan kita adalah bagaimana membuat dua platform ini berkomunikasi dan bekerja sama dengan baik. Salah satu medianya adalah SOA. Sudah saatnya kita ngomong tentang Web Service, BPEL, atau ESB (Enterprise Service Bus). Untuk masa depan. :)