Arif Sehari-harinya

Thursday, January 20, 2005

Alhamdulillah, finally I found you


Sudah berbulan-bulan aku berkelana mencarimu. Namun sore ini, alhamdulillah, dalam pandangan sekilas, terbesit di dalam hati, dikaulah yang dapat menemaniku dalam kesendirian dan masa-masa penantian.Ya, keberadaanmu sangat membantuku, setidaknya sebagai pemuas nafsuku. Kaulah power bagiku, kau berikan tenaga untuk bekerja, kau munculkan semangat untuk menjalani hidup, lebih lama lagi.

Ya, kaulah colokan listrik di pojok ruang check-in Gate 2F Bandara Internasional Soekarno-Hatta.

Sunday, January 16, 2005

Secuil Internet Security, HTML Form, Kilas Balik



Si Usil terkenang dengan masa-masa mudanya dahulu...
Waktu itu, di pikirannya terlintas ide yang begitu nakal. Salah satu situs Telkom yang menyediakan fasilitas SMS gratis, dijadikannya tempat praktek rasa super ego akibat kesal: tidak dapat mendaftar karena bukan pelanggan Telkom SMS.

Pokoknya, fasilitas SMS gratis situs itu berada dalam kendalinya selama lebih dari 4 jam. Tak ada yang dapat menggunakannya selain dirinya, hanya karena dia berhasil mengubah password untuk trial user account.

Bagaimana itu bisa terjadi?

Mudah saja. Bagi yang pernah belajar dan sehari-hari berkutat dengan HTML tentu tahu bahwa pada sebuah aplikasi web based, sebuah entry form sebenarnya terpisah dengan processing page. Fisiknya boleh sama, tapi level logic-nya pasti berbeda.

Pada situs yang tingkat keamanannya "biasa-biasa saja", Si Usil dapat "menembak" langsung ke processing page tanpa harus melalui entry form yang seharusnya. Tembakan itu berupa passing parameter berisi variabel-variabel yang akan diproses, tanpa pengecekan terlebih dahulu, apakah parameter tersebut dimasukkan melalui entry form yang seharusnya atau tidak. Men-disable entry field change password pada entry form tidak lagi berguna ketika Si Usil membuat entry form gadungan yang dijalankan di komputer lokal, lalu mem-passing variabelnya ke server. Cookie juga tidak begitu berguna, karena masih dapat diakali oleh Si Usil dengan mempertahankan browser yang dibukanya saat membuka form entry yang asli.

Hal seperti inilah rupanya yang memicu digunakannya prinsip enkripsi pada web based application. Tujuan dari enkripsi tersebut adalah untuk meyakinkan bahwa si pengirim infrormasi, alias pengisi entry form benar-benar melakukan pengisian informasi pada entry form yang disediakan.

Kemunculan SSL, HTTPS, PHPS dan "barang-barang" berbau security lainnya ternyata hadir sebagai armour dan fight back solution bagi orang-orang kreatif seperti Si Usil ini. Terima kasih atas jasa-jasa Si Usil dan orang-orang seperti dia untuk andil mereka dalam memicu dan memacu perkembangan teknologi, khususnya Internet, lebih spesifik lagi pada aspek Security.



Saturday, January 08, 2005

Antara idealisme dan realita



Dikutip dari milis netindonesia.net

Hendry Wijaya wrote:
.... saya ingin mengajak teman2 sekalian berdiskusi mengenai 1
> hal : sepanjang saya kuliah dan skrg bekerja, umumnya ada 2 cara
> pandang programmer dalam memandang pekerjaannya, yg pertama adalah yg
> memandang yg penting dalam pekerjaan sebagai programmer adalah
> tugasnya selesai, gaji didapat ( kalau yg freelance uang proyek
> dibayar ), dan akibatnya adalah dalam mengerjakan program, tipe yg ini
> gak peduli dengan yg namanya UML, OOP - atau dgn kata lain idealisme
> belakangan saja, yg penting program jadi. Toh, client-nya juga gak
> ngerti OOP. Yang kedua, adalah yg dalam mengerjakan proyek benar2
> strict, harus OOP misalnya. Pas saya kuliah, saya pikir kerja di
> software house itu, tipenya yang ke-2, dimana kerjaan kita harus
> serapi mungkin, agar coding kita mudah di-maintain. Tapi dlm
> kenyataan, di t4 kerja saya maupun dr sharing temen2 lainnya, banyak
> sekali software house yg tipe pertama. Saya baru bekerja 1 bulan
> setengah, dan jujur saja saya cukup kaget dengan realita ini. Nach,
> akibat lingkungan kerja seperti ini jugalah, yang membawa saya kepada
> pola pikir pragmatisme ( pola pertama ). Apalagi deadline project yg
> cukup singkat, yg membuat kita berpikir yg penting program itu jadi.
> Bagaimana pendapat teman2 sekalian di sini akan hal ini?


Slamet Santoso replied:

Begitulah beda alam pikir sekolahan dengan realita bisnis. Di sekolah, teori dan konsep diasumsikan berjalan di atas environment yang ideal. Pertimbangan yang dipakai juga homogen, tidak banyak, hanya dari sudut pandang software engineering semata. Kompleksitas dan besarnya persoalan juga diabaikan. Nggak perlu juga difikirkan soal budget yang tersedia dan berapa waktu yang tersisa.

Realita bisnis berbeda. Ada limitasi waktu, budget, jumlah orang, ekspektasi calon pemakai, dll. Pekerjaan coding adalah konsekuensi dari keputusan bisnis, yang seringnya merupakan hasil "trade-off" dari parameter engineering dan economics. Ada plesetan "murah minta bagus ??", "bagus minta cepat???", "cepat minta handal???", "handal minta user friendly???", dll.

Ada pertanyaan-pertanyaan yang belum terjawab di soal seperti ini. Contohnya: Apakah cocok kita gunakan rationale unified process dan UML nya secara menyeluruh untuk segala jenis proyek software development, berapapun budget yg tersedia? Apakah cocok kita gunakan OOP, kalau analisis dan desainnya masih terstruktur? Atau apakah cocok OOP untuk software yang tanpa analisis dan desain? Atau perlukah kita memakai OOP untuk semua kegiatan coding? Perlukah analisis dan desain, jika tim pengembang beranggota 1 orang?
Prinsip dari cara menjawab pertanyaan-pertanyaan di atas itulah yang nantinya akan membedakan tim/ perusahaan mana yang bersikap pragmatis, mana yg taktis, dan mana yg tidak realistis. Sangat beruntung jika Anda berada dalam tim yang berfikir taktis.

Semua prinsip dalam software engineering biasanya dilandasi oleh tujuan jangka panjang, skala dan lingkup pekerjaan yang mungkin membesar, pekerjaan dilakukan oleh tim bukan 1 orang, dll. Ada investasi di awal yang buahnya akan dinikmati di akhir.

Saran saya, jika Anda ingin menjadi besar, berfikir dan bertindaklah dengan selalu mempertimbangkan adanya kemungkinan perubahan di masa depan. Jadi, maintainability itu penting, meskipun butuh investasi. Jangan pula bermewah-mewahan dengan segudang konsep dan teori. Fikirkan background situasi di balik lahirnya teori dan biaya yang keluar untuk implementasi teori tersebut.