News

Satu Orang yang Merusak Internet Dalam 2 Jam

[Foto: breyten | flickr.com]
Dunia development aplikasi website cukup heboh beberapa lalu. Penyebabnya karena NPM (layanan package management untuk NodeJS) gagal berfungsi. Padahal NPM banyak digunakan di seluruh dunia untuk pengembangan aplikasi website. Usut punya usut, penyebabnya adalah karena satu orang, Azer Koçulu, menghapus 11 baris kode di NPM.

NodeJS adalah framework berbasis JavaScript yang cukup populer digunakan untuk membangun aplikasi website di seluruh dunia. Untuk kebutuhan pengembangan aplikasi yang berbasis NodeJS seringkali diperlukan penambahan beberapa paket atau model NodeJS lainnya.

Paket atau modul-modul NodeJS tersebut seringkali terkait dengan paket-paket lain. Jika harus dipasang satu-satu tentunya cukup memakan tenaga dan waktu ekstra. Di sinilah NPM berperan. NPM (perusahaan swasta) menyediakan layanan untuk membantu instalasi paket NodeJS tanpa perlu pusing dengan dependensinya. Pada dasarnya konsep NPM mirip dengan apt-get yang biasa digunakan untuk software management di distro Linux Debian dan turunannya.

Dengan kemudahan yang diberikan oleh layanan NPM, tak pelak perangkat ini menjadi layanan favorit pengembang aplikasi berbasis NodeJS di seluruh dunia. Maka ketika NPM berhenti bekerja otomatis kehebohan terjadi di internet.

KIK Messenger

Kejadian ini bermula dari email yang dikirimkan oleh agen paten dari KIK (aplikasi chat messenger) kepada Azer Koçulu pada 11 Maret 2016 lalu. Agen paten yang bernama Bob Stratton ini meminta Azer untuk mengganti nama salah satu paket NodeJS open source yang sudah ada di NPM. Kebetulan paket ini diberi nama “kik” oleh Azer. Azer menolak, alasannya karena paket yang ia kembangkan ini digunakan untuk proyek open source.

Bob kemudian menjawab kembali email tersebut dengan menekankan bahwa “kik” adalah merek dagang yang sudah terdaftar di berbagai negara di dunia. Dia mengingatkan, kalau Azer tetap menggunakan nama “kik” untuk proyek open sourcenya pengacara dari KIK Chat Messenger akan menuntutnya.

We don’t mean to be a dick about it, but it’s a registered Trademark in most countries around the world and if you actually release an open source project called kik, our trademark lawyers are going to be banging on your door and taking down your accounts and stuff like that — and we’d have no choice but to do all that because you have to enforce trademarks or you lose them.

Email Bob Stratton kepada Azer

Namun Azer tetap menolak permintaan tersebut. Hal yang sangat dimaklumi para pengguna open source, karena nada email tersebut dianggap mengancam.

Bob belakangan menawarkan apakah Azer mau mengganti nama proyeknya tersebut dengan nama lain jika diberi kompensasi. Azer mengatakan dia mau dengan bayaran $30.000 (sekitar Rp 390 juta) tetapi dengan bahasa yang kurang menyenangkan.

Yeah, you can buy it for $30.000 for the hassle of giving up with my pet project for bunch of corporate dicks

Jawaban Azer kepada Bob

Bob tidak menanggapi lagi jawaban Azer tersebut. Ia akhirnya memutuskan menghubungi NPM. Setelah beberapa kali saling berkirim email, akhirnya Isaac Schlueter (pendiri NPM) memutuskan penggunaan nama paket “kik” diserahkan kepada KIK Chat Messanger. Alasannya karena jika ada orang yang mengakses paket “kik” di NPM tentunya lebih mungkin orang tersebut sedang mencari paket yang berhubungan dengan KIK Chat Messenger ketimbang proyek open source  “kik” dari Azer. Namun tindakan ini diputuskan sepihak oleh Isaac tanpa restu dari Azer.

Inilah akhirnya yang membuat Azer berang, terlebih karena Azer sudah mengenal Isaac bertahun-tahun. Azer akhirnya memutuskan untuk menghapus semua kode, paket/modul yang pernah dibuat olehnya di NPM, termasuk ‘left-pad’.

left-pad

Pada 22 Maret 2016, para pengguna NPM mulai merasakan kejanggalan. Ketika mereka hendak memasang atau memperbaharui paket via NPM, keluar pesan error “npm ERR! 404 ‘left-pad’ is not in the npm registry.”

Banyak yang bingung karena tidak familiar dengan paket yang bernama ‘left-pad’. ‘left-pad’ sendiri hanyalah 11 baris kode yang berfungsi untuk menambahkan karakter pada baris teks ataupun menambahkan 0 pada nomor kode pos. Fungsi kode buatan Azer ini sebenarnya sederhana, tetapi banyak programmer yang memanfaatkan paket yang sudah jadi ini ketimbang membuatnya sendiri. Itulah sebabnya banyak sekali paket di NPM yang bergantung pada ‘left-pad’. Ketika ‘left-pad’ menghilang, otomatis banyak sekali paket yang gagal dipasang ataupun diperbarui.

NPM akhirnya memperbaiki masalah ini. Sekitar 2 jam kemudian NPM akhirnya bisa berfungsi normal kembali.

Kecaman pada KIK Chat Messenger

Azer kemudian menuliskan pengalamannya ini di internet. Berniat membela KIK dengan menjelaskan detail duduk perkaranya, Mike Roberts (Head of Messenger di KIK) menulis tentang kejadian ini dari sudut pandangnya, lengkap dengan isi komunikasi email antara Bob, Azer dan Issac. Sayangnya, hal ini justru membuat banyak pihak geram pada KIK dan mengecam mereka. Terlebih Isaac menyatakan ini hanya soal “pembahasaan” yang kurang. Melihat komentar-komentar di tulisan Mike, sebagian besar setuju dengan tindakan Azer.

Kebijakan Baru NPM

Akibat kejadian ini NPM akhirnya mengeluarkan kebijakan baru. Paket yang umurnya lebih dari 24 jam tidak bisa lagi di-unpublish begitu saja. Proses ini harus melewati permintaan resmi ke tim support NPM. Hal ini untuk memastikan kejadian “rusak” massal seperti ini terjadi lagi.

Jangan lupa ikuti kami di Twitter untuk mendapatkan update terbaru dari @LabanaID