Jan 19

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.

Dec 20

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.

Dec 01

Saya suka tulisan ini, 52 reasons why Programmers work on weekends. Semua yang saya alami ketika mesti bekerja di akhir pekan dan semua yang bisa saya pikirkan kenapa seorang programmer mesti bekerja di akhir pekan ada di situ.

Namun alasan yang paling tepat menurut saya adalah alasan ke 35:

Programmers don’t really consider what they do to be ‘working’ – but rather having fun. That’s what weekends are for right?

Too right. Bagi saya, weekend tidak ada bedanya dengan hari kerja. Selalu penuh happy hour buat coding. Cuma saat weekend memang lebih menyenangkan karena tidak ada gangguan dari klien yang rewel. Haha.

Ini mestinya jadi warning bagi kita semua. Sudah jadi pandangan umum di masyarakat kita kalau “bekerja” itu berbanding terbalik dengan “having fun”. Mangkanya ada hari kerja untuk bersusah-susah dan ada weekend untuk bersenang-senang.

Sejak kecil kita sudah ditanamkan kalau bekerja itu jauh dari menyenangkan. Peras keringat - banting tulang, itu yang sering dibilang orang. Mengerikan.

Padahal, bekerja mestinya menyenangkan. Bahkan “menyenangkan” itu mestinya jadi syarat utama kalau perusahaan ingin hasil terbaik. Bukankah pekerjaan yang dilakukan karena rasa suka akan menghasilkan sesuatu yang berkualitas?

Google adalah salah satu perusahaan yang mengerti benar hal ini. Filosofi mereka yang terkenal adalah:

You can be serious without a suit.
Google’s founders have often stated that the company is not serious about anything but search. They built a company around the idea that work should be challenging and the challenge should be fun.

Setiap pegawai Google diberikan kebebasan untuk menggunakan 20% dari waktu kerjanya mengerjakan project sendiri yang mereka sukai, yang terkenal dengan “20-percent project”. Orkut, Google Adsense, Google Desktop, Gmail, Google News dan masih banyak lagi produk Google lainnya adalah hasil dari 20-percent project ini.

Saya pernah mengusulkan teknik 20-percent project ini ke perusahaan tempat saya bekerja. Tanggapannya hangat di awal, kemudian dingin dan menguap begitu saja. Wajar, Google bisa seperti itu karena mereka punya produk andalan search engine dan ads yang cukup untuk menggaji semua pegawai biarpun waktu kerja efektifnya cuma 80% dari seharusnya.

Tapi budaya fun terus kita tingkatkan. Setidaknya itu yang saya tanamkan pada rekan-rekan programmer lainnya. Setiap permasalahan dalam pekerjaan selalu kita anggap sebagai tantangan untuk selalu mencari cara baru, tools baru, bila perlu bahasa pemrograman baru untuk memecahkannya. Asal tidak menimbulkan masalah baru tentunya, haha.

Project ala 20-percent project-nya Google pun mulai kita galakkan. Walaupun lebih tepatnya, weekend project. Dimana setiap pegawai bisa memanfaatkan waktu weekend nya untuk mengerjakan project yang dia sukai sampai berbentuk beta version untuk kemudian dipresentasikan ke manajemen. Kalau dinilai bagus dan bernilai jual akan dibeli oleh perusahaan.

Biarpun nggak persis sama dengan Google, tapi semangatnya kan dapet. ;)

Nov 23

Pernyataan Ronny ini benar-benar mewakili uneg-uneg saya, bukan cuma pada Detikcom, tapi kebanyakan situs berita di Indonesia. Cuma saya nggak tega untuk mengatakannya langsung, jadi ngutip aja deh:

Oh, satu lagi kehebatan detikcom: pinter bikin pembacanya annoyed. Iklan yg jumlahnya seabreg-abreg, beranimasi pula, gak ada RSS/Atom feed, sok mau disable right click, tampilan layout yang bikin mata sakit, a complete web design disaster.

Saya mengerti kalo kebanyakan situs berita berusaha untuk memproteksi isi beritanya, karena itu “barang jualan” utama mereka. Tapi men-disable right-click atau tidak menyediakan RSS/Atom menurut saya malah semakin mengesankan - maaf - ketertinggalan terhadap teknologi.

Bukankah feed juga bisa diselipkan iklan dan bisa dicatat pengguna/pembacanya. Jadi bukannya tidak terkontrol begitu saja. Saya yakin pembaca news feed nggak kalah banyak dengan pembaca di situsnya langsung. Bahkan bisa jadi lebih banyak. Belum lagi kalu situs agregasi berita seperti Google News ikut menampilkan juga.

Oct 18

Prominent liberal blogger Markos Moulitsas Zúniga, who runs one of the most popular liberal and progressive blogs in the world, says Google News is becoming unusable.

“They need some serious soul-searching about what they are and what their mission is.”

“A news operation needs to present news, and credible news at that. That means get rid of the blogs (mostly opinion), get rid of the no-name sites, the conspiracy sites, and the rest of that crap.”

Obviously, he wasn’t the first. I mean, how many times have you googled around lately to find informations about X events, or Y products or Z services and get personal web blogs on the top ten of the results?

I personally do not have any problem with that, since people don’t read average web blog, and Google algorithm has ensured that only those of really important websites will show up at the top results.

That means, if you really want to get informations about something that also includes what most people think as important too.

The How

The interesting question is how web blogs can do that. In my experience running this blog, i can see easily that web blogs possess many qualities that search engines like Google and Yahoo really loves to see. They are,

  • Frequent updates to content and pages
    Blog is used to enable people publishes anything easily on the web in chronological ways. The quality of a blog is sometime determined by how frequent the contents are updated.
  • Text dominated
    Since search engine indexing only works for text, blog entries which usually filled with more text than image become favorable.
  • Carefully orginized content structure
    This due to categorized topic and archival previous entries that come with almost every blog system. And some blog applications like wordpress has great plugins that can create sitemap and submit it automatically to Google. This surely helps search engine spider to crawl blog easily.
  • Important text wrapped in header elements
    It is well known that search engine try to understand a web page by its header elements (meta). Many blog application has this built in features.
  • Friendly URL
    Using htaccess and some functions to process query string.
  • Link Management
    Search engine like Google has page rank system which calculates the important of a web page by how it links to others and being linked by others. Many blog system has this feature to create link easily and trackback system to notice the owner when his entry being linked by other blog using the same trackback mechanism.

In addition, with many blogs aggregator, blogs search engine and feed syndicator out there makes a web blog easier to get promoted. Sometime even without the owner realizing it.

Oct 11

If there was something missing in all the buzz about Google Code Search, i think it’s the fact that it’s not new at all. There were Koders and Krugle who played on the same field long before Google jumped in. But somehow they’re just disappearing from any count, including alexa. Just check their traffic for the past few days,

koders

krugle

Yep, they’re down elevator. No wonder if Darren Rush, CEO and co-founder of Koders, got a little pissed off,

“My advice to any entrant into this space is to focus on the unique structure of code, because indexing and searching code requires specialized algorithms and tools that Koders has already developed and refined.”

About the dangers of exposing security flaws as Google code blog said,

Since Google Code Search launched a few days ago, we’ve received a lot of great feedback, including some about the dangers of exposing security flaws.

it’s also not new. Just ask Johnny, he knows well about it long before there was Google code search.

Obviously, Google plays really well as a leader. Everything comes out from Google cage will make people turn their eyes from whatever they’re looking at.

But then again, Google knows well how to make good software. That’s what makes them so superior.

Oct 09

Recent web survey report shows us a surprising fact about PHP programmers deciding to leave PHP for Ruby on Rails.

future-rails-developers-current-platform

Of course this survey isn’t necessarily the reason to claim the quality of the programming language it represents. I even convince that the numbers merely show us how programmers deal with the language they choosed.

There are many reasons why PHP programmer decides to leave for another language, but i think the most significant reason is because of many undisciplined PHP Programmers out there. They might not realized this, but they have made PHP looks really bad.

One of the thing they did so often is lack of attention in security aspect. Ilia showed us how many PHP codes out there are so fragile and open, waiting to be exploited. Just try this out by Google code search. Even the old problems like SQL injection still exists out there, thanks to those undisciplined PHP programmers.

The other thing undisciplined programmer often do is they still think they live in 90’s, where everything must be build from scratch, where OOP was not the option, where framework was not invented yet. They’re the ones who make coding in PHP such a mess and chaostic.

There are some reasons I belive why PHP was made so simple, it leaves us free to express ourself in the most unpredictable yet clever ways. Also it makes newbies so easy to learn it.

So using PHP in old fashion way will only make PHP looks bad, and many more people will leave it. That’s why i’m so excited with many PHP frameworks today, it gives us more power to build better and more secure web application.

Oct 06

I was googling around this morning, and i found that my tutorial has been copied all over the place. Well, i don’t mind with that, but don’t you think it will be more polite if these guys ask me first. I’m a good guy , there’s no way i will say no.

:)

 

Tags: ,