Dokumentasi Software Open Source

Dalam sebuah milis Linux, Linus Torvalds memberikan pendapatnya tentang dokumentasi software yang menurutnya tidak pernah akurat sehingga tidak layak dipercaya. Karena menurutnya orang yang menulis dokumentasi biasanya orang yang sama sekali tidak terlibat dalam implementasi programnya. Berikut kutipannya,

You seem to put a lot of trust in a piece of documentation.

Do you realize how those pieces of paper are written? They are written by
people who have absolutely *nothing* to do with the actual implementation,
and whose job it is to write documentation. And while the people who

actually do the programming etc are supposed to help them, the two parties
generally detest each other.

Technical writers hate the “real engineers” for not helping them, and the
“real engineers” tend to dislike having to be pestered to explain their

stuff and have to read through some document that isn’t meant for them,
but that they need to sign off on.

In other words: please do *not* expect that the documentation actually
matches reality. You seem to think that the documentation came first
and/or is quite accurate. That’s not at all likely to be true.

Biarpun diskusi tentang kutipan milis ini lebih mengarah pada dokumentasi Linux, tapi saya pikir itu tidak benar. Dengan membaca kembali thread milis tersebut saya yakin yang dimaksud Linus adalah dokumentasi dari software komersil, bukan open source.

Menurut pendapat saya, dokumentasi software open source adalah yang terbaik. Orang yang menulis dokumentasi software open source, tidak seperti yang dikatakan Linus di atas, adalah dipilih dari programmer yang mengembangkan software tersebut. Karena berbeda dengan software komersil, komunitas pengembang software open source tidak dibayar dan tidak membayar orang khusus untuk menulis dokumentasi.

Kalaupun ada pembagian tugas, di mana satu orang ditugasi khusus untuk menulis dokumentasi, orang tersebut adalah bagian dari komunitas yang memiliki semangat dan dedikasi sama dengan yang lain. Plus dia juga programmer atau setidaknya orang teknis yang terlibat secara intens dalam komunitas lewat mailing list atau IRC.

Memang benar, dalam perkembangannya, pengembang software open source banyak juga yang berasal dari perusahaan komersil tertentu. Dia sengaja ditugaskan perusahaannya untuk terlibat dalam pengembangan software open source tersebut. Dengan kata lain dia digaji untuk itu.

Namun tetap saja, orang-orang ini adalah orang teknis yang mengerti benar apa yang dilakukan, karena itulah ia ditugaskan perusahaannya. Dan dengan pengawasan ketat dari komunitas, tidak sembarang orang bisa terlibat secara langsung mengubah-ubah kode atau menulis dokumentasi. Bisa dipastikan, pengembangan software open source bebas dari politik perusahaan tertentu.

Inilah yang membuat umumnya dokumentasi software open source sangat akurat dan bisa dipercaya.

SUN to acquire MySQL AB

mysqlsun

SUN announced today the agreement to acquire MySQL AB, the developer of the world’s most popular open source database, for approximately $1 billion dollar. This agreement put SUN Microsystem in new position with $15 billion database market.

How this agreement will impact MySQL, especially its offerings to OS other than Sun Solaris such as Linux, Windows and FreeBSD? we still don’t know. We just wait and see. The community will be watching very closely, that’s for sure.

Vulnerabilities in Adobe Flash Content

This is really serious,

Researchers from Google have documented serious vulnerabilities in Adobe Flash content which leave tens of thousands of websites susceptible to attacks that steal the personal details of visitors.

The security bugs reside in Flash applets, the ubiquitous building blocks for movies and graphics that animate sites across the web. Also known as SWF files, they are vulnerable to attacks in which malicious strings are injected into the legitimate code through a technique known as cross-site scripting, or XSS. Currently there are no patches for the vulnerabilities, which are found in sites operated by financial institutions, government agencies and other organizations.

The scenarios for the attack work something like this,

A bank website hosts marketing graphics in the form of a vulnerable Flash applet. Attackers who trick a customer into clicking on a malicious link are able to execute the SWF file but inject malicious code variables that cause the customer’s authentication cookies or login credentials to be sent to the attacker.

Even worse, Adobe still haven’t released the patch to fix this security hole. Current release from Adobe doesn’t fix the vulnerabilities. But they’re still working on it together with the researcher from Google. So guys, keep updating your Flash Player.

Yahoo! Maps in Full Javascript

Yahoo! developer blogs announced this in its post today. If you noticed, the previous Yahoo! Maps was build in hybrid of Flash and Javascript. I red somewhere that it was built in Adobe Flex. But now, it is full Javascript. The great thing is you can’t see the difference. Yeah, they’re good.

ymapsjavascript

The important point and quite bothering me is this,

Lead Maps Developer Mirek Grymuza and the Maps team have done an amazing job of seamlessly moving the Maps client over resulting in at least double the performance of the previous Flash-based version

which brings me again to a question wheather flash based (or Flex based) apps is that slow comparing with Javascript.

Anyway, the enhanced version of Yahoo! Maps AJAX API with this new full Javascript version of the maps will be available in 2008.

Blog I Hate Indon Ditutup?

Dalam posting Indra hari ini dikatakan blog ihateindon yang bikin heboh itu akhirnya ditutup Blogger. Namun sampai saat ini saya masih bisa membuka blog tersebut. Ini screen shot yang saya peroleh sampai jam 22:42 WIB malam ini.

ihateindblog.png

Mudah-mudahan ini karena somehow somewhere someone masih meng-cache nya. Yang jelas Blogger memang harus menutup blog ini, juga blog ini atau blog-blog lain yang menebar kebencian, karena jelas melanggar kebijakan konten yang mereka buat sendiri,

HATEFUL CONTENT: Users may not publish material that promotes hate toward groups based on race or ethnic origin, religion, disability, gender, age, veteran status, and sexual orientation/gender identity.

Apapun alasannya kebencian memang tidak boleh dibiarkan tumbuh, karena kebencian akan mengaburkan kebenaran. Kepada musuh sekalipun, kebencian bisa melengahkan kita dari mengambil langkah yang benar.

Kalaupun harus benci, benci pemikirannya, sistemnya, aturannya. Jangan membenci orangnya. Don’t hate the player, hate the game. Hmm, ini kalo nggak salah bunyi lirik sebuah lagu.

Program Yang Berkualitas vs Program Yang Sehat

Saya suka membaca tulisan-tulisan Coding Horror, tapi tulisan terakhirnya dengan judul Nobody Cares What Your Code Looks Like terus terang sangat mengecewakan saya,

The next time you’re knee deep in arcane language geekery, remember this: nobody cares what your code looks like. Except for us programmers. Yes, well-factored code written in a modern language is a laudable goal. But perhaps we should also focus a bit more on things the customer will see and care about, and less on the things they never will.

Di sini saya tidak setuju.

Memang benar, klien tidak pernah peduli dengan kode yang kita tulis. Yang penting bagi mereka adalah program yang kita buat jalan dan sesuai dengan yang mereka inginkan.

Hanya saja, kode yang amburadul akan sulit untuk dikembangkan dan dipelihara. Penulis aslinya pun pasti mengalami kesulitan ketika harus menambahkan atau memperbaiki programnya.

Padahal, tidak ada program yang dibuat sekali jadi. Akan selalu ada perbaikan, penambahan atau pengurangan fitur. Selalu ada versi 2, 3 dan seterusnya. Bahkan bisa dipastikan, program yang cuma ada versi 1 bukanlah program yang bagus karena mungkin tidak ada yang menggunakan.

Selain itu, program yang kompleks lazimnya butuh lebih dari satu programmer untuk mengerjakannya. Dalam kasus seperti ini, kode yang kita tulis harus bisa dibaca dan dimengerti oleh programmer lain, cuma kebetulan saja mesti dieksekusi komputer. Maka biasanya dibuat standar penulisan program yang disepakati (coding standards). Anda akan dimaki-maki programmer lain kalau kode yang anda tulis acak-acakan.

Dengan kata lain, cara penulisan program bukan sekedar kebiasaan atau gaya tiap programmer, tapi justru sangat mempengaruhi program yang dihasilkan. Dari pengalaman, bugs yang saya temukan biasanya muncul dari kode yang ditulis secara sembrono, asal jadi dan tidak sesuai standar.

Jadi pendapat bahwa “tidak ada yang peduli dengan kode yang anda tulis selama programnya jalan” sebenarnya tidak ada faktanya. Ide seperti ini umumnya muncul dari mereka yang lebih mementingkan “kualitas” daripada “kesehatan” program.

Saya setuju dengan Kent Back bahwa program yang “sehat” jauh lebih penting dan berharga dari program yang “berkualitas”. Karena “kualitas” adalah ukuran instan (instantaneous measure) yang cenderung menipu.

Program yang mengidap kangker akut yang penuh dengan bugs di dalamnya biasanya tampak jalan dengan baik dan terlihat berkualitas dari luar. Tapi jika anda tahu dalamnya, saya yakin anda tidak akan menggunakannya.

Program yang “sehat” sebaliknya, mungkin tidak memiliki banyak fitur. Tapi semua fitur yang ada adalah yang benar-benar dibutuhkan user dan 99,99% bugs free. Kodenya yang rapih dan terdokumentasi dengan baik sangat mudah untuk dikembangkan dan dipelihara.

Program seperti ini akan selalu dinamis untuk memenuhi kebutuhan klien yang berbeda-beda tanpa harus merombak habis-habisan kode yang sudah ada atau memunculkan bugs baru.