Setelah hampir setahun vakum, akhirnya Vitaly Valtman merilis proyeknya yang selalu ditunggu-tunggu para pembuat bot Telegram; telegram-cli
. Well, proyek kali ini sebenarnya bukan lanjutan dari telegram-cli
, melainkan sebuah proyek baru bertajuk telegram-bot
.
Sekilas, telegram-bot
tiada beda dengan telegram-cli
. Namun jika dirunut lebih mendalam ia memiliki cukup perbedaan yang membuatnya layak menyandang nama baru, misalnya kita tidak bisa mengirim pesan secara langsung menggunakan telegram-bot
melainkan mesti melalui perantara script lua atau socket.
Seperti umumnya proyek baru, there are bugs. Bugs everywhere. Dan untuk mempermudah debugging demi menyingkirkan bug, telegram-bot
dikompilasi dengan disertai debug symbol. Menyertakan debug symbol memang akan memudahkan debugging namun dengan konsekuensi berkas biner hasil kompilasi menjadi berukuran besar. Dalam kasus telegram-bot
, ukurannya sekitar 95MB! Dan tiap malam telegram-bot
selalu rilis build baru untuk perbaikan bug jadi kita mesti mengunduh 95MB tiap hari. Perfect.
I love telegram-cli. Ia gegas, ringkas, dan mudah dipakai. Jadi tentu saja saya tidak ingin tertinggal untuk mencicipi telegram-bot
. Namun kemudian ternyata terbentur ukurannya yang jumbo. Apa daya?
Pikir punya pikir, akhirnya teringat dengan teknik delta pada berkas biner. Delta pada berkas biner sendiri bukan sesuatu yang aneh bagi saya, karena sehari-hari menggunakan debdelta
untuk memutakhirkan instalasi Debian Sid. Bisa dikata, karena debdelta
-lah saya setia di Debian Sid.
debdelta
bekerja dengan cara membuat berkas selisih (delta) dari paket lama dan paket baru. Jadi misalkan paket anu-0.1.deb
yang berukuran 2MB mendapatkan pembaharuan paket anu-0.2.deb
yang berukuran 3MB, kita tidak akan mengunduh paket anu-0.2.deb
yang sebesar 3MB, melainkan hanya mengunduh paket debdelta
sebesar 1MB yang merupakan selisih anu-0.1.deb
dan anu-0.2.deb
.
Di sini saya akan meniru cara kerja server debdelta
, yakni membuat selisih dari berkas telegram-bot
yang lama dengan berkas telegram-bot
build teranyar. Patut diingat, cara ini hanya masuk akal jika dilakukan pada server dan bukan di lokal. Dan untungnya, meski tidak memiliki VPS saya masih memiliki akun gratis di c9.io.
Dan beginilah caranya:
- Login ke server, atau bagi saya, login ke c9.io
-
Pasang paket
xdelta3
sudo apt install xdelta3
-
Unduh berkas biner yang lama dan yang baru. Dalam kasus saya, biner lama adalah
telegram-bot-170824-linux
, dan berkas biner baru adalahtelegram-bot-170827-nightly-linux
.wget https://valtman.name/files/telegram-bot-170824-linux wget https://valtman.name/files/telegram-bot-170827-nightly-linux
-
Buat berkas delta dari berkas biner lama dan berkas biner baru
xdelta3 -e -s telegram-bot-170824-linux telegram-bot-170827-nightly-linux tdbot.delta
Perintah ini akan menghasilkan berkastdbot.delta
yang merupakan selisih dari berkastelegram-bot-170824-linux
dantelegram-bot-170827-nightly-linux
.
Ukurantdbot.delta
yang kemarin saya hasilkan sekitar 14MB. -
Unduh berkas
tdbot.delta
ke komputer lokal.
Sekarang saatnya untuk menambal (patching) berkas telegram-bot
lama (telegram-bot-170824-linux
) di komputer lokal kita agar tidak perlu mengunduh telegram-bot-170827-nightly-linux
.
-
Pastikan dalam komputer lokal juga sudah terpasang paket
xdelta3
sudo aptitude install xdelta3
-
Gunakan
tdbot.delta
yang di langkah awal telah kita unduh untuk menambal berkas lamaxdelta3 -d -s telegram-bot-170824-linux tdbot.delta telegram-bot-170827-nightly-linux
Perintah ini akan menghasilkan berkastelegram-bot-170827-nightly-linux
yang sama persis dengan yang ada di https://valtman.name/files/telegram-bot-170827-nightly-linux. - profit!
Jadi dengan menggunakan delta sebesar 14MB, saya bisa mendapatkan fungsionalitas dari berkas https://valtman.name/files/telegram-bot-170827-nightly-linux tanpa harus mengunduh 95MB. Penghematan kuota internet sebesar 85%. Awesome.
Menyadari mudah dan bergunanya teknik ini, saya pun menyarankan agar Vitaly juga membuat berkas delta untuk setiap build telegram-bot
, namun ternyata dia lebih memilih merilis biner yang stripped down tanpa debug symbol...
Well, tiada mengapa, justru lebih bagus demikian.
Tidak ada komentar:
Posting Komentar