11 Tahun Menikah

Hari ini 11 tahun yang lalu, kami menikah setelah mengenal satu sama lain sekitar 3 tahun. Dan selama 14 tahun kami masih selalu menjadi pengguna aplikasi messenger. Mulai dari Yahoo Messenger, Agile messenger di handphone dengan OS Symbian, Google Talk /Google Hangout, BBM, dan sekarang pake Telegram. Dari jaman internet masih mahal dengan paket GPRS, sampai sekarang jaman 4G dengan harga relatif lebih murah.

Joshua belajar mengetik, berikutnya belajar pake app messenger

Kami gak pernah long distance relationship, waktu pacaran kami tinggal 1 kota (bahkan 1 kantor dan kuliah bareng), tapi kami sering chat sampe sekarang. Beberapa temen saya sampe terheran – heran ngapain sih masih chat, kenapa ga telpon saja langsung atau ya kan nanti bisa ngobrol di rumah. Alasannya sih karena ga semua yang kami bicarakan itu penting banget sampe perlu di telpon. Ya saya bersyukur punya pasangan yang mau mendengar semua cerita saya bahkan yang ga penting sekalipun. Kadang-kadang, jadi perempuan itu cuma pengen didengar, jadi misalnya saya baca berita yang aneh, reflek pertama bukan share di FB tapi share ke Joe.

Sejak Agustus 2015 sudah ada 1463 shared media di chat Telegram saja

Isi percakapan chat kami kadang sekedar ngasih tau udah sampe rumah dari anter anak, atau ngasih tau anak pup (buat jadi catatan kapan terakhir anak pup) dan juga yang jelas kalau nunggu Joe pulang kerja kemungkinan berbagai hal udah lupa dan ga jadi dikasihtau. Isi percakapan kami ya kira2 kayak FB pribadi yg menyampaikan apa yg kami pikirkan, hadapi, alami, rasakan, atau sesuatu yang sepertinya menarik untuk diketahui. Jadi kami ga pernah ngobrol di halaman FB karena ya semuanya japri aja. Kami ga terus2an chat sepanjang hari, tapi kami menggunakan chat seperti untuk update status satu sama lain sedang di mana dan atau sedang apa. Jadi ya komunikasi selalu ada walau ga selalu bersama (Joe di kantor, saya di rumah).

Sudah 100x pup disebut

Salah satu nasihat papa saya yang saya inget mengenai kehidupan pernikahan ya harus selalu komunikasi. Kita harus selalu bisa menceritakan apa saja dengan pasangan kita. Dan ya karena sejak menikah kami jauh di perantauan, di negeri asing yang awalnya bahkan orang Indonesianya langka, tentunya semua hal akhirnya ceritanya ke pasangan (mau nelpon ke ortu mahal, VOIP ke Indonesia kualitasnya jelek kalo telpon lama).

Menikah 11 tahun tentunya ga selalu penuh bunga, kadang ada juga salah paham atau kesel dan marah. Kadang kalau lagi marahan kami menumpahkan unek2 pake e-mail  atau bahkan via chat biar semua bisa dituliskan tanpa interupsi. Biasanya cara marahan begini bisa menghindari kemarahan tambah dashyat karena ada waktu untuk berpikir mencerna perasaan pasangan dan bercermin sapa tau memang saya salah. Saya relatif reaktif, kalau marahan lisan cepet naik level emosi, makanya kalau marah saya memilih diam dan menuliskan kemarahan saya atau sebaliknya kalau Joe lagi marah ya saya coba mencerna kenapa dia jadi marah dengan membaca penjelasan dia beberapa kali. Namanya manusia pastinya sering merasa ga salah dan ga terima dipersalahkan, jadi dengan tulisan kami berusaha menyampaikan apa yang kami rasakan dan ya udah bisa berbaikan lagi setelah masing-masing mengaku salah.

Mungkin ada yang akan bertanya lagi, terus kalau udah semua diobrolin pake chat, pas ketemu masih ngobrol gak? ya masih dong, tapi biasanya banyak topik yang ga bisa juga diobrolin di depan anak-anak, jadi kalau lagi bareng kami berusaha ngobrolin hal yang menarik juga buat anak-anak (dan Jonathan suka nguping dan nimbrung). Nah kalau anak-anak udah tidur baru bisa ngobrolin hal lain kalau ada yang penting. Tapi kadang-kadang ya kami bisa cuma bareng-bareng menikmati tontonan aja.

Chat dengan Jonathan dipenuhi sticker

Aduh cerita jadi panjang begini, semoga kami tetap bisa menjaga komunikasi walaupun mungkin nantinya tanpa teknologi dan juga kami berusaha ajarkan ke anak-anak kami juga soal pentingnya komunikasi.

Skrip dan Extension untuk Browsing

Sekarang ini banyak waktu saya habiskan di browser, bahkan ketika melakukan programming sekalipun perlu sering mencari solusi dengan Google. Untuk mempernyaman browsing, saya menggunakan berbagai browser extension baik yang diterbitkan resmi atau buatan sendiri plus beberapa bookmarklet.

Untuk yang belum tahu: browser extension adalah program yang bisa ditambahkan ke browser untuk menambah atau mengubah fungsionalits tertentu.  Supaya lebih singkat, berikutnya extension yang saya maksud di artikel ini adalah browser extension.

Salah satu contoh extension paling populer adalah untuk memblokir iklan. Ini membuat browsing jadi lebih nyaman, lebih cepat dan lebih hemat data. Extension lain yang banyak digunakan orang adalah password manager untuk mengingat password berbagai situs.

Semua browser modern saat ini mendukung extension. Browser yang saya gunakan sehari-hari adalah Chrome dan Firefox, tapi informasi yang saya tuliskan di sini berlaku untuk browser lain juga (semua browser sudah mendukung extension).

Dulu saya cukup percaya berbagai extension yang ada, tapi lama-lama kepercayaan itu mulai hilang. Ada banyak kasus yang menyebabkan saya kurang percaya, baik itu karena bug parah, karena kecerobohan developer, atau keserakahan developer.

Contoh bug parah adalah di extension Last Pass, program password manager. Beberapa kali bug penting ditemukan di extension ini yang memungkinkan orang jahat untuk mengambil semua password kita, dan bahkan dalam kondisi tertentu bisa menjalankan program (misalnya malware) di komputer kita. Saya sempat memakai extension ini, lalu segera menguninstall setelah beberapa kali bug semacam ini muncul.

Contoh yang ceroboh: ada extension “Web Developer” yang penggunanya ada 1 juta extensionnya “dibajak” dengan phishing email. Sang penjahat mengambil alih account developer lalu mengupload versi baru extension dengan perubahan. Pembajak  mengubah extension untuk menginjeksi iklan ke halaman yang dikunjungi, dan mencuri password Cloudflare tapi Andaikan pembajak jahat maka bisa digunakan untuk mencuri password apa saja (termasuk juga situs Bank).

Contoh yang serakah: sebagian extension yang usernya banyak dijual ke pihak lain, dan pihak yang baru ini biasanya akan mencoba mencari uang dengan cara apapun. Kadang sebuah extension tidak dijual tapi bekerjasama dengan pihak lain yang meminta timbal balik (ini salah satu contohnya).

Untuk dapat mengubah halaman web yang kita kunjungi, maka sebuah extension perlu punya akses ke halaman yang kita kunjungi. Ini artinya sebuah extension yang jahat bisa mencuri password ataupun data lainnya, atau menjalankan skrip apapun (misalnya crypto miners). Secara umum semua extension (terutama yang memiliki permission berbahaya) bisa memiliki bug, bisa jatuh ke tangan yang salah karena kecerobohan developer, dan bisa juga dijual ke pihak lain.

Sekarang saya mengurangi jumlah extension yang saya pakai dan memperhatikan berita untuk berbagai extension yang saya pakai. Contoh: dulu saya memakai AdBlock plus, tapi setelah pembuat extension ini bekerja sama dengan berbagai pihak agar iklan bisa diloloskan, maka saya berpindah ke uBlock Origin.

Chrome dan Firefox mendukung penggunaan profile untuk memisahkan beberapa account (misalnya account pekerjaan dan account rumah). Untuk berbagai jenis pekerjaan, saya memakai profile browser tersendiri. Tiap profile bisa memiliki extension sendiri. Jadi misalnya saya ingin melakukan pentesting, saya bisa memakai profile khusus dengan berbagai extension khusus pentesting.

Saat ini saya percaya berbagai extension dari pembuat browser (extension dari Google untuk Chrome dan extension dari Mozilla untuk Firefox).  Tapi tidak langsung percaya pada extension yang populer karena belajar dari kasus extension “Web Developer”: popularitas sebuah extension bukan jaminan bahwa itu akan aman.

Waktu tahun-tahun pertama memakai Firefox, ada extension Grease Monkey. Dengan ini kita bisa membuat skrip sendiri (atau menggunakan skrip orang lain) untuk mengubah perilaku sebuah situs. Salah satu yang pernah saya publish dulu adalah untuk otomatis membuka tag spoiler di kaskus. Dulu ada situs userscripts.org yang menghosting semua skrip ini, tapi sekarang sudah down. Saat ini ada beberapa extension pengganti Grease Monkey dan ada situs pengganti userscripts.org, tapi semuanya agak kurang meyakinkan dari sisi security.

Di browser kita bisa membuat bookmark dan isinya adalah URL javascript, istilahnya bookmarklet. Dengan bookmarklet  kita bisa menjalankan skrip kecil. Ini bisa menjadi alternatif untuk extension. Saya memakai beberapa bookmarklet buatan orang lain (biasanya kodenya singkat dan bisa dengan mudah dimengerti) dan membuat beberapa bookmarklet sendiri.

Bookmarklet buatan saya biasanya untuk mengatasi beberapa site yang menyebalkan. Contohnya di salah satu situs banking yang saya pakai di sini mematikan semua fungsi copy paste di situs tersebut, sehingga saya tidak bisa copy paste nomor ID untuk membayar tagihan internet (padahal nomornya panjang) dan entah kenapa untuk jenis tagihan ini tidak bisa disimpan sebagai favorit. Dengan bookmarklet sederhana, saya bisa memasukkan nomor pelanggan ini langsung. Contoh skripnya kira-kira seperti ini:

javascript:document.querySelector(“#ctl00_ctl00_C_CW_txtRef2”).value = “nomoridsaya”;

Ada beberapa situs menyebalkan sejenis ini: meminta banyak input tapi tidak bisa disimpan jadi harus selalu entry ulang. Menurut saya bookmarklet adalah yang termudah dan teraman. Alternatif lain saya perlu menggunakan extension khusus untuk mengaktifkan kembali copy paste, tapi ini menambah kekhawatiran karena ada kemungkinan malah extension tersebut mencuri password saya (mungkin versi saat ini aman, tapi ketika auto update ternyata sudah dibajak orang lain).

Selain menggunakan bookmarklet, sekarang saya mulai memilih untuk membuat extension sendiri. Saat ini extension sudah sangat mudah dibuat dan didebug, dan fiturnya bisa lebih banyak dari userscript maupun bookmarklet (sebuah extension bisa memiliki ikon di toolbar, bisa sinkronisasi data antar browser, dsb). Firefox dan Chrome juga sudah memakai API yang serupa (web extension API). Mozilla juga membuat polyfill agar extension bisa kompatibel di kedua browser.

Mozilla dan Google memiliki tutorial yang bagus untuk mulai membuat extension sendiri. Tutorial dari Google bisa diakses di sini dan Mozilla di sini. Versi Mozilla menurut saya lebih bagus karena penjelasannya lebih cross platform. Selain tutorial, ada banyak contoh kode yang disediakan yang oleh Chrome dan Mozilla.

Jika Anda programmer yang sudah lama tidak menyentuh Javascript, perlu diperhatikan dengan seksama bahwa ada banyak fitur security yang diaktifkan di sebuah extension, misalnya CSP (content security policy) yang memblok inline javascript (tidak bisa “onlick=fungsi() “di tag html), dan berbagai aksi butuh permission di manifest.json.

Setelah membuat extension untuk satu browser, kita juga ingin agar extension itu bisa dipakai di browser lain di komputer lain, misalnya di rumah dan kantor atau laptop dan desktop. Di Chrome kita bisa membuat extension yang diterbitkan di Chrome Web Store, tapi statusnya unlisted sehingga orang lain tidak bisa menginstall extension tersebut jika tidak tahu URLnya (URL-nya panjang dan random). Selain itu kita juga bisa mempublish secara private untuk account kita sendiri. Dengan cara ini extension yang dibuat bisa dipakai di semua browser yang kita miliki. Di Firefox kita bisa menghosting sendiri extension yang kita miliki di web sendiri (atau bisa ditaruh di Dropbox/File sharing lain).

Di satu sisi, extension buatan sendiri bisa sangat aman, apalagi kalau orang lain tidak mengetahui apapun tentang extension yang kita buat. Tapi extension juga bisa memiliki bug, dan ada kemungkinan bisa dieksploitasi orang lain (lihat kasus Last Pass di atas). Saya memisahkan antara extension yang penting (ada kemungkinan menyentuh data penting), dan yang kurang penting, supaya jika satu “jebol”, yang lain tidak terpengaruh.

Dengan extension buatan sendiri, hal-hal yang sangat spesifik bisa saya dapatkan. Contoh kecil yang baru saya buat adalah ini: ketika mengunjungi situs bitcoin di Thailand (bx.in.th) saya selalu ingin membandingkan dengan situs bitcoin Indonesia (bitcoin.co.id). Kadang jika ada masalah spesifik di satu negara , harga bitcoin bisa tiba-tiba berbeda jauh  (misalnya ketika isu Bank Indonesia melarang bitcoin, harga bitcoin di Indonesia harganya yang tadinya lebih mahal dari Thailand tiba-tiba anjlok menjadi 15% lebih murah dari harga di Thailand).

Saya juga menambahkan menu search ketika memilih teks. Saya bisa mengklik kanan dan mencari kata di KBBI karena kadang tidak yakin apa ejaan baku sebuah kata. Contoh lainnya: ketika membaca mengenai cryptocurrency, sering kali saya tidak pernah mendengar nama sebuah cryptocoin (karena sekarang sudah ada lebih dari 1400 koin), saya bisa menambahkan “search in coinmarketcap” untuk mencari informasi mengenai koin tertentu. Sebagai catatan: saat ini kita tidak bisa menambahkan context menu search tanpa extension.

Membuat extension sendiri memang butuh waktu, tapi saya punya beberapa alasan kenapa ini worth the time:

  1. Saya jadi terpaksa belajar Javascript dan berbagai API baru yang ada di browser
  2. Saya merasa lebih aman karena tahu dengan tepat kode apa yang saya tuliskan
  3. Dalam jangka panjang, extension yang saya buat akan menghemat waktu saya lebih banyak

Menurut saya membuat extension ini cukup menarik karena biasanya program yang dibuat cukup kecil, dan sudah ada banyak library Javascript untuk melakukan hampir apa saja. Awalnya ketika mencoba satu fitur tertentu memang butuh waktu (contohnya menambahkan custom menu right click pertama), tapi berikutnya sangat cepat (menambah menu baru hanya perlu semenit saja).

Untuk saat ini saya belum tertarik untuk mempublikasikan extension pribadi yang saya pakai karena merasa terlalu spesifik untuk kasus saya, dan jika dipublikasikan akan menambah beban untuk memaintain extension tersebut.

Natal 2017 dan Tahun baru 2018 di Chiangmai

Ini tulisan sudah lewat 15 hari dari tahun baru, eh tahun baru itu bukan cuma tanggal 1 January kan ya, hehehe. Supaya tetap bisa mengingat kembali Natal tahun 2017 dan Tahun Baru 2018, kami tetap akan post ini walau terlambat.

Natal 2017 jatuh hari Senin, karena sore hari tanggal 24 Desember sudah ada kebaktian di gereja, malamnya kami tidak mengikuti candlelight service seperti biasa, alasan lain mengurangi kemungkinan Joshua yang masih akan bangun dan bernyanyi ABC dengan suara keras. Tanggal 25 Desember 2017 kami mengikuti gereja pagi di CMCChurch seperti biasa. Papa Jona ijin kerja setengah hari dan lanjut ngantor. Ya di Thailand 25 Desember bukan hari libur, kalau kerjaan kantor ga terlalu sibuk bisa ijin sehari tapi karena kantornya lagi banyak kerjaan ya ijin setengah hari aja.

Tanggal 31 Desember 2017, kami makan malam bareng teman2 Indonesia di Chiangmai, acara barbequean dan rame2 biasa aja. Sayangnya ga ada yang beli kembang api, jadi ya ga pake acara countdown bersama.

Tanggal 1 Januari, kami jalan-jalan ke Rabbit Union lalu ke Ratchapruek  (dulu tempat diadakannya Royal Flora Ratchapruek). Oh ya, kami juga baru tahu ternyata bisa bikin kartu anggota juga untuk tempat ini, kami sudah bikin tanggal 30 Desember 2017 dan kartu anggota berlaku 1 tahun seharga 400 baht (Joshua masih gratis masuk).

Rencananya, tahun ini mau lebih banyak jalan ke Ratchapruek, sekalian olahraga, nemenin anak main dan ya nantinya mau ajarin Jona naik sepeda biar bisa sepedaan juga. Ratchapruek ini mengingatkan kami Horizon Village yang dulu sempat jadi tempat favorit Jona, bedanya di Ratchpruek ga ada makanan buffet dan lokasinya lebih deket ke rumah. Semoga tahun 2018 bisa lebih sehat dan bisa mengeksplorasi lebih banyak kota Chiangmai.