Monday, January 28, 2008

baru beberapa bulan terakhir ini saya menggunakan git untuk versioning control. sebelumnya berturut-turut adalah svk, svn, dan cvs. rasanya git cukup menjanjikan; cepat, ringan, tidak membutuhkan tempat besar, bukan aplikasi server, easy branching and merging, distributed, dan terutama kompatibel dengan svn.

dibandingkan dengan svk, git jauh lebih cepat. mungkin karena performa perl dibandingkan dengan C. kelemahan lainnya, karena svk itu backendnya menggunakan svn, tetap saja kemampuan distributed versioning control-nya sulit scale up ke versioning control yang memang dibuat khusus untuk distributed environment. untungnya, dengan diawali pemahaman svn, peralihan saya ke distributed programming environment ke git yang melalui svk menjadi tidak terlalu terjal.

untuk versioning control di sebuah perusahaan, konfigurasi yang biasa digunakan adalah yang terpusat (lawan dari distributed). dengan terpusat, laju perkembangan code bisa diawasi dan dikontrol kualitasnya dengan baik. dan karena matangnya ticketing tools dan wiki untuk subversion (i.e: trac, mantis+websvn), maka svn masih tetap digunakan. terlebih bagi orang yang masih comfort menggunakan svn melalui tortoisesvn di windows atau scplugin di mac, penggunaan git yang lebih powerful lewat command line akan tetap menjadi pilihan kedua.

gabungan git dan svn menjanjikan produktifitas yang tinggi. apalagi dukungan vim terhadap git juga sudah dimulai dengan GITDiff plugin. adanya keterbatasan seperti kehilangan informasi merging antar branch tidak terlalu menghambat karena ada best practices yang bisa dijadikan work-around, seperti penggunaan branch master semu sebelum masuk ke branch svn.

see also:

Wednesday, January 16, 2008

even for employer, menentukan gaji employee-nya bukanlah perkara mudah. ketika di tengah-tengah kesibukan harian dikejutkan dengan datangnya permintaan naik gaji oleh employee, otak sempat tidak bisa berpikir lebih panjang dari sebelumnya. gaji adalah bukan perkara nominal saja. lebih dari itu, gaji merepresentasikan faktor-faktor lain seperti
  • penghargaan. dia bisa jadi merasa melakukan lebih namun kurang dihargai.
  • kebutuhan. ada kebutuhan yang seharusnya saya penuhi tidak terlaksanakan?
  • kebosanan. apa dia sedemikian bosan sehingga perlu motivasi tambahan?
  • lokasi dan pengaruh lingkungan. apa dia merasa underpaid setelah sharing dengan rekan seprofesinya?
namun untuk mengetahui faktor-faktor ini tidaklah mudah. jalan tercepat: interview langsung. toh ini juga tidak menjamin bahwa jawaban dia adalah keadaan sebenarnya. yang paling bagus adalah dengan pengamatan orang-orang yang bekerja di sekelilingnya. namun itu juga ada masalah subjektifitas.

di lain pihak, bentuk penghargaan bukan hanya gaji saja. sebagai employer bisa saja saya lebih kreatif dengan memberikan support kebutuhan lainnya seperti makan, transport, dlsb. akan lebih mengena jika support tersebut diberikan tepat di daerah kebutuhan mereka. hal-hal kecil seperti love and caring saya rasa juga memberikan andil dalam menghargai seseorang sebagai individu yang utuh. even better, it doesn't cost us a cent! :D

anyway, saya setuju dengan employer saya saat ini bahwa keberanian untuk meminta kenaikan gaji adalah baik karena bisa menjadi sinyal bagi kita untuk segera melakukan evaluasi terhadap keberadaan employee tersebut. jika memang dirasakan masih dibutuhkan, belum ada pengganti, dan kita masih kuat untuk mendukungnya, kenapa tidak?

Tuesday, January 15, 2008

corporate levels lebih concern di security. itu yang tertangkap ketika instalasi webserver sempat terhenti karena harus menjawab beberapa pertanyaan di form QA yang mereka ajukan. Dari situ, saya belajar tentang instalasi apache dengan mod_chroot dan possibly the more complex one: mod_security.

konfigurasi dasar: apache on ubuntu. pertama kali di-search di google, jawaban utama mengenai security di apache adalah menggunakan mod_chroot. frankly, karena point di form QA sedang membahas sistem chroot, i asked google for chroot on apache ubuntu. that's why yang keluar bukannya mod_security tapi mod_chroot. how-to utama untuk instalasi ada di wiki milik ubuntu.

beberapa isu yang berkaitan dengan mod_chroot adalah:
  1. dns resolving
  2. php mail() tidak bisa jalan. work around uno code adalah dengan mengusahakan aplikasi binary kecil mini-sendmail untuk bisa jalan di dalam chroot-ed environment.
  3. The web server cannot be gracefully restarted. beberapa solusi:
    1. the web server configuration file is moved into the chroot. -- matty
    2. gunakan restart instead of reload. yang terpengaruh misalnya konfigurasi logrotate -- uno code
  4. programs that lazily load shared libraries will fail. -- matty
    If a program uses dlopen() to load a library, you will need to copy the library into the chroot environment, or use the Apache “LoadFile” directive to load it at initialization time.
  5. instalasi mysql juga harus bisa diakses dari dalam chroot-ed environment. either socket diubah posisinya atau menggunakan interface 127.0.0.1 instead of localhost. -- uno code