WordPress Hosting Optimization

Umumnya web wordpress itu kemooot banget. Hari ini saya mencoba membuat blog wordpress untuk Masjid Garuda (http://masjidgaruda.rajawali.web.id/) dengan teknik WordPress Hosting Optimization. Kayaknya kalau pakai turbolinks + html cache bakal kenceng webistenya. Setelah mencari-cari, konfigurasi dan plugin yang cocok, jalan, dan akhirnya dipakai adalah:

  • Host Virtual Machine di DigitalOcean yang $10 (Hosting udah pakai SSD)
  • NGINX web server
  • Ajaxify WordPress Site
  • WP Super Cache

Saya pun setup website-nya di server Digital Ocean yang $10 per bulan. Berikut ini komparasinya:

  1. Shared hosting biasa vs host VM: 3 request per second vs 65 request per second
  2. Shared hosting biasa vs host VM: 5 second page load vs 1 second page load
  3. Apache web server vs NGinx web server: 65 request per second vs 75 request per second
  4. Tanpa WP Super Cache vs Dengan WP Super Cache: 75 request per second vs 5500 request per second
  5. Tanpa WP Super Cache vs Dengan WP Super Cache: 1 second page load vs 65 milisecond page load
  6. Transisi halaman tanpa Ajaxify WordPress Site vs dengan Ajaxify WordPress Site: 3 second page render vs 300 milisecond page render

*Catatan: hasil diperoleh dari rata-rata ujicoba dan angka yang tertulis dibulatkan. Hasil mungkin berbeda dengan percobaan lain, tapi kurang lebih mirip lah.

Session Mis-Management Bug

Live Chat Support

Suatu hari, saya menggunakan aplikasi berbasis web yang memiliki fitur live chat. Awalnya saya login menggukan akun A. Lalu saya logout, dan mengganti jadi akun B. Setelah itu saya meminta live support untuk mengubah detail akun B. Namun, fitur chat support menganggap saya sedang login menggunakan akun A.

Hal ini mungkin saja terjadi, ketika user logout pada aplikasi tapi sesi live chat-nya tidak diganti karena kebanyakan live chat menggunakan 3rd party application yang di-embed pada web application, sehingga session management-nya berbeda.

Cara mengatasinya, ketika ada perubahan session di aplikasi, trigger suatu perintah untuk ganti / unset session di live chat-nya juga.

Account’s Form

Misalkan User membuka Form X yang harus ia isi dengan menggunakan akun A. Namun, karena dia agak bingung untuk mengisinya, ia logout lalu meminjam akun B dari temannya. Ia pun membuka Form X milik akun B di satu tab browser, lalu logout, dan login lagi menggunakan akun A. Ia pun melengkapi form X. Namun, setelah kira-kira setengah jam mengisi form X, ia mengirimkan form X pada kedua tab. Dan anehnya, form X yang tersave di akun B adalah yang diubah oleh akun A.

Cara mengatasinya, ketika submit form harus dibaca session siapa yang mengirim-nya. Cara lainnya, menggunakan CSRF token yang dinamis per user dan direset ketika logout.

Kesempatan Membuat Al-Qur’an Invalid

Tahukah anda, ada 2 orang yang pernah berkesempatan membuat informasi al-quran menjadi invalid, yaitu Abu Lahab dan Istrinya.

Kalaulah ketika surat Al-Lahab turun, mereka bertaubat. Otomatis pernyataan Al-Quran yang memvonis mereka ketika masih hidup akan menjadi ahli neraka, menjadi invalid. Dan 1 informasi invalid bisa membuat pernyataan “semua isi al-quran itu benar” menjadi invalid juga, dan menjadikan ketidakpastian pada informasi lainnya.

Tapi ya memang al-quran itu benar, jadi ya mereka ngga tobat juga sampe mati 😅

Semoga pada akhirnya kita termasuk orang yang beruntung, mumpung belum jelas divonis neraka-nya 😢

Istana

Umat islam tidak disuruh untuk membangun istana di dunia. Tapi di akhirat

jadi, harta bukan buat bikin istana (rumah) sebesar-besarnya. tapi untuk membangun istana di surga

Hacking Xiaomi XiaoYi CCTV

Tempo hari, saya membeli kamera CCTV yang relatif murah dan ada nightvision-nya, yaitu Xiaomi XiaoYi CCTV.

Overall, gambarnya cukup bagus untuk kamera CCTV. Namun, untuk mengakses kameranya, perlu menginstal aplikasi MiHome.

Di aplikasi MiHome ini, kamu bisa melihat rekaman, dan ada timeline untuk mencari kapan motion sensor-nya aktif. Dan yang kerennya adalah, ada push notification ketika ada gerakan yang terdeteksi oleh kamera.

Namun, hal itu tidak berlangsung lama sampai pada suatu hari, aplikasi MiHome-nya tidak bisa digunakan. Saya ngubek-ngubek google, ngga nemu APK yang jalan buat ngeliat kamera CCTV.

Lalu, saya-pun menemukan Yi-Hack untuk menjadikan kamera Xiaomi ini menjadi IPCam yang bisa stream RTSP >> https://github.com/fritz-smh/yi-hack/

Sayapun ngubek seharian kode-nya gak jalan-jalan. Berikut ini perjalanannya:

  • Pertama kali copy file ke sd, kamera tetap pada warna kuning. Padahal, harusnya jadi biru.
  • Saya-pun mencoba revert ke versi ini >>> https://github.com/fritz-smh/yi-hack/tree/81f5dbf3dd2117c87deb50f1b3df5498dc6da889 dan hasilnya, bisa nyala jadi biru. Tapi, HTTP dan RTSP tidak jalan
  • Saya pun mencoba telnet ke kamera Yi. Lalu mencoba nge-start service http dan rtsp-nya. Ternyata, ada masalah segmentation fault
  • Lalu saya cari-cari issue tentang segmentation fault di https://github.com/fritz-smh/yi-hack/issues . Ada 2 thread, yang satu bilang ‘gak ada file home’, yang satu lagi bahasa portugal gak jelas 😀 (pake translate pun masih gak jelas)
  • Lalu saya membuka satu link dari thread di sana >> http://xiaoyi.querex.be/ dan membaca, suruh coba image M
  • Tetap gak bisa…
  • Lalu saya coba image A. Dan ternyata bisa nyala
  • Tapi, beberapa kali saya jalankan, malah gak bisa di-ping. Seolah-olah TCP/IP nya gak jalan
  • Setelah diselidiki, ternyata HTTP server-nya error
  • Saya coba disable HTTP servernya di startup equip-test.sh. Lalu, jalanin manual via telnet, dan BISA
  • Akhirnya, script equip-test.sh saya utak-atik agar semua service nya menyala secara otomatis.

Ini file hasil ulikan saya. Barangkali bermanfaat >> http://kamil.web.id/files/yi-hack-2.rar

*BTW, katanya ada yang bilang camera xiaomi bisa di-crack (atau istilah limrah dihack. Sebenernya banyak orang yang salah kaprah antara arti ‘hack’ dan ‘crack’) Jadi, opsi menjadikan Xiaomi XiaoYi CCTV sebagai IPcam bisa mengindari risiko diatas.

Legitimasi Pribadi

Cerita ini hanyalah karangan belaka. Apabila ada kesamaan/kemiripan dengan kejadian nyata, sengaja. Biar bisa diambil pelajarannya.

Sebutlah seorang pria bernama AP. Dia bekerja sebagai penjaga toko di suatu ruko pinggir jalan. Majikannya menggaji dia hanya dengan 500 ribu sebulan. Setiap minggu dia disuruh oleh majikannya untuk belanja alat-alat pendukung toko.

AP merasa penghasilannya sangat kecil sekali. Buat kebutuhan sehari-hari dirinya sendiri saja sudah pas-pasan. Kebutuhan sekunderpun sepertinya sulit dipenuhi. Belum lagi dia harus menafkahi istri dan seorang anaknya. Padahal, upah minium regional di kotanya mendekati 2 juta rupiah.

Ia pun bergumam pada dirinya, kalaulah dihitung-hitung, pekerjaan saya ini pantas untuk dibayar setidaknya 1,5 juta sebulan. Dengan asumsi itu, ia-pun melakukan hal-hal yang sebetulnya tidak benar, diantaranya mengambil uang dari kasir, ya barang 10 sampai 20 ribu sehari, atau memberikan kembalian yang kurang ke pembelinya, pikirnya kalau hanya seribu-duaribu orang tidak sadar.

Selain itu juga, ketika ia disuruh belanja alat pendukung toko, ia pun me-markup barang belanjaannya. Kadang ia sambil membeli barang kebutuhannya ketika belanja, kadang juga membelikan temannya barang dengan uang belanjaan majikannya.

Lama kelamaan, majikannya pun sadar bahwa AP sering melakukan hal tersebut. Lalu sang majikan-pun melakukan operasi tangkap tangan untuk menjebak AP, dan akhir-nya pun AP tertangkap basah ketika melakukan aksi-nya.

Sebenarnya kisah di atas adalah contoh korupsi, pada skala yang kecil (kalau dibandingkan orang yang korupsi / markupnya milyaran). Menurutku, orang koruspi bisa jadi karena:

  • Apa yang ia peroleh kurang dari apa yang ia inginkan / butuhkan
  • Ia bisa melakukannya, dan merasa tidak akan ketahuan
  • Karena rakus…
  • Karena sudah lazim dilakukan teman-temannya

By default harusnya orang tuh udah jujur, amanah, bisa dipercaya, dan ngga usah diperiksa lagi… Tapi ya ngga semua orang dididididik untuk berintegritas. Lha wong yang dididik untuk berintegritas juga bisa aja lasud.

Kenangan Ramadhan (1)

Suatu malam, saya ikut tarawih di Masjid Salman ITB

Datanglah seorang anak dengan bapaknya.
Lalu sang anak bertanya:

“Pah, itu Allah?”
*sambil nunjuk ke Pak Akhmaloka yang lagi ceramah*

*I laughed a little*
(memang sih, Pak Akhmaloka tampak berwibawa postur tubuhnya. dan dia sedang berdiri di mimbar)