Sebulan Puasa Twitter-an & Instagram-an

Hari ini tepat menginjak malam ke-30 bulan Ramadan. Hari ini menandai pula sudah sebulan saya deaktivasi akun Twitter dan Instagram saya.

Saat malam pertama bulan Ramadan kemarin, saya memutuskan untuk menonaktifkan kedua akun tersebut. Alasannya jelas, yakni untuk mengurangi waktu saya yang banyak tersita karena berselancar di kedua platform media sosial tersebut.

Terus terang, keduanya memang menjadi distraksi dalam keseharian saya. Secara alam bawah sadar, setiap ada handphone di dekat saya, sebentar-sebentar saya menggenggam HP lalu scrolling linimasa kedua media sosial itu.

Sayang sekali rasanya jika waktu saya tersita untuk hal-hal seperti itu. Padahal waktu yang ada seharusnya saya manfaatkan untuk kegiatan lain yang lebih produktif dan bermanfaat. Apalagi di momen bulan Ramadan.

Sebelum mendeaktivasi akun, saya sudah berusaha untuk mengurangi online presence saya dengan hanya melihat update dari orang-orang yang secara personal memang dekat dengan saya atau update dari akun-akun yang sifatnya informatif atau edukatif. Untuk akun-akun tersebut biasanya saya pasang notifikasi.

Tapi setelah membuka aplikasinya, tak jarang akhirnya saya kebablasan membuang waktu dengan melihat story atau post yang tidak ada relevansinya dengan saya. Kalau di Twitter, saya sering terjebak membaca sampai habis thread-thread atau twitwar yang kebetulan lagi trending.

Apa yang saya alami itu mungkin adalah indikasi dari apa yang disebut dengan fear of missing out (FOMO). Saya merasa ada yang kurang ketika tidak membaca update apa yang sedang terjadi atau dibicarakan di luar sana.

Saya mencoba merenungkan apa sebenarnya manfaat yang saya dapatkan dengan aktif di Twitter dan Instagram selain mendapatkan update dari orang lain. Ternyata tidak ada.

Tapi bukannya tidak ada sama sekali. Saya banyak mendapatkan pengetahuan baru dari berita, artikel teknologi, video tausiyah, dan lain sebagainya dari akun yang saya ikuti.

Namun sebetulnya media sosial tersebut bukanlah channel satu-satunya tempat di mana saya bisa mendapatkan konten tersebut. Saya bisa saya mendapatkan konten serupa dari tempat lain. Misalnya membuka langsung situs berita, situs teknologi, atau channel YouTube media yang bersangkutan.

Malah dengan cara seperti itu biasanya kita bisa lebih fokus membaca atau mengikuti konten tersebut karena memang kita sengaja mencarinya. Bukan karena kebetulan melihatnya sekilas melalui linimasa.

Namun malam ini saya terpaksa mengaktivasi lagi akun Twitter saya karena kebijakan Twitter yang akan menghapus akun Twitter yang telah dideaktivasi selama lebih dari 30 hari (baca di sini). Setelah itu mungkin akan saya deaktivasi lagi. Sementara untuk akun Instagram, karena tidak ada batasan waktunya, saya tidak tahu kapan akan mereaktivasi lagi.

ITMS-90809: Deprecated API Usage

[Solved] ITMS-90809: Deprecated API Usage – UIWebView API Deprecation

Yesterday I was facing an issue when submitting my application to App Store. Not long after my submission, I got an email from Apple with title as you can see in the top of this article. It said that my application has an issue—i.e., ITMS-90809: Deprecated API Usage.

This issue happened because my app uses UIWebView class which is already deprecated. And they suggest developers to use WKWebView instead.

Actually I had been facing this issue since my first submission in early February. But I was too lazy to solve the issue 😬. At that time the issue was just a warning. Apple still accepted our app.

However, this time I couldn’t escape anymore. I ought to solve this issue in order the app to be accepted.

I searched the solutions for this matter in the internet. Actually the solution is pretty obvious. UIWebView must be replaced with WKWebView. The problem is I didn’t remember (or know 😝) which codes that use UIWebView.

Thanks to this thread that gives me some hints. There are possibilities that our dependency modules use UIWebView. To find out which files that contain UIWebView, we can run command grep -r UIWebView node_modules/* in the root of the project. After executing that command, I got this following:

Result of command “grep -r UIWebView node_modules/*”

Most of the words of “UIWebView” which are found are located in comments. But apparently in my case there is one line of code that uses UIWebView. That line of code is from module “react-native-device-info”.

Then I also tried to search it directly in XCode just to double-check. XCode also gave quite similar result.

Search result of UIWebView in XCode

So, in my case the culprit was the “react-native-device-info” module. I was still using v2 at that time. After reading its documentation in this link, I needed to upgrade it to minimum v3. Then I upgraded it to v3.

Boom! The issue was solved. I then submitted my app to Apple Store and it has been successfully accepted. 😃

Marhaban Ya Ramadan 1441 H

Petang tadi pemerintah telah secara resmi menetapkan malam ini kita telah memasuki malam awal Ramadan. Esok hari (24 April 2020) adalah hari pertama kita berpuasa.

Ramadan kali ini mungkin akan menjadi Ramadan yang tak akan terlupakan dalam hidup kita. Ramadan di kala wabah covid-19, di mana masyarakat dihimbau untuk menghindari segala bentuk kerumunan, termasuk kegiatan sholat berjamaah di masjid.

Sholat tarawih di masjid yang menjadi ciri khas ibadah keseharian umat muslim di bulan Ramadan pun terpaksa ditiadakan. Masyarakat dihimbau untuk melaksanakan sholat tarawih di kediaman masing-masing.

Ada perasaan yang aneh tentunya menjalani Ramadan dengan kondisi seperti ini. Jika dulu semangat beribadah kita di bulan Ramadan terbantu oleh suasana yang terbentuk di lingkungan sekitar kita. Pada masa pandemi ini, suasana itu mungkin tidak akan kita temukan.

Hal ini tentunya menjadi tantangan bagi kita untuk tetap bersemangat memanfaatkan momen bulan Ramadan ini untuk meningkatkan ketakwaan kita sebagaimana tujuan berpuasa Ramadan itu sendiri (QS. Al-Baqarah 183).

Hikmahnya mungkin Ramadan kali ini bisa menjadi momen untuk fokus mengokohkan pondasi ketakwaan dalam entitas terkecil di masyarakat, yakni keluarga. Yakni, dengan membangun iklim keilmuan dan ketaatan dalam keluarga, seperti belajar bersama-sama, membaca Qur’an bersama-sama, beribadah tarawih bersama-sama, dan sebagainya.

Di awal bulan Ramadan ini, saya ingin mengucapkan juga selamat menjalankan ibadah puasa Ramadan kepada rekan-rekan pembaca sekalian. Semoga kita semua bisa memanfaatkan bulan Ramadan ini dengan sebaik-baiknya.

Marhaban ya Ramadan 1441 H!

Covid-19 Diary (4) : Berjemur

Salah satu kebiasaan masyarakat yang saya perhatikan mulai muncul sejak wabah coronavirus ini terjadi adalah kebiasaan berjemur di bawah sinar matahari. Setidaknya itu yang saya perhatikan di permukiman sekitar tempat tinggal saya di Bandung.

Setiap 2-3 hari sekali saya lari pagi ke luar rumah. Ketika lari pagi itulah saya melihat beberapa warga berada di luar rumah mereka masing-masing sambil melakukan senam atau sekadar berdiri saja. Kebanyakannya adalah bapak-bapak atau ibu-ibu yang mungkin sudah berusia 40 tahun ke atas.

Selain di permukiman, saya lihat beberapa petugas keamanan yang berjaga di beberapa kafe di daerah Dago juga menyempatkan diri untuk berjemur di area yang disinari matahari di halaman kafenya.

Orang-orang rata-rata berjemur dengan menghadap atau memunggungi arah datangnya sinar matahari dari sisi timur. Beberapa orang, terutama bapak-bapak atau anak kecil, bahkan sampai membuka baju agar bisa terpapar sinar matahari secara maksimal. Saya paling banyak menjumpai warga yang berjemur ini pada waktu sekitar jam 9 pagi.

Kebiasaan berjemur ini sebetulnya bukan hal baru. Waktu kecil dulu rasanya sering sekali mendapat nasehat untuk keluar rumah pada pagi hari agar mendapatkan sinar matahari. Di Jawa bahkan ada istilah khusus untuk aktivitas berjemur, yakni “dede”. Mungkin penamaan tersebut ada hubungannya dengan khasiat berjemur yang katanya bisa menambah vitamin D.

Kebiasaan ini semakin sering terlihat di masyarakat pada masa pandemi Covid-19 ini. Bahkan tak jarang dilakukan bersama-sama, tentunya dengan tetap menjaga jarak. Seperti yang dilakukan oleh prajurit-prajurit di Koramil 01/Purwodadi sebagaimana yang diberitakan di sini.

Ramainya orang berjemur ini mungkin karena banyak kabar yang menyebutkan bahwa virus Corona yang menjadi penyebab Covid-19 ini tidak kuat terhadap suhu panas walaupun masih belum ada bukti kuat yang mendukung hal tersebut. Yang pasti, menurut beberapa penelitian berjemur dapat membantu meningkatkan imunitas tubuh.

Hanya saja masih ada perdebatan mengenai waktu terbaik untuk berjemur ini. Ada yang bilang di atas jam 10 tidak bagus. Ada pula yang bilang di atas jam 10 lebih optimal.

Kalau menurut saya, terkait waktu berjemur ini patokannya memang tidak bisa pakai jam karena waktu matahari terbit di setiap daerah tidak sama. Namun kita bisa mengikuti anjuran untuk menyesuaikan lamanya waktu berjemur sesuai intensitas sinar matahari. Kalau sudah dirasa panas, sebaiknya tidak perlu berlama-lama untuk amannya.

Cincang bahan makanan

Covid-19 Diary (3) : Memasak di Rumah

Sejak himbauan physical distancing dan stay at home digaungkan, saya menjadi punya banyak waktu di rumah. Tidak banyak waktu yang dihabiskan untuk perjalanan atau acara di luar.

Untuk mengisi kegiatan di rumah, selain WFH (work from home), saya juga memasak di rumah. Memasak ternyata bisa menjadi cara alternatif untuk refreshing alias mengusir rasa kebosanan di rumah.

Bereksperimen dengan bumbu masakan dan memasak berbagai aneka masakan ternyata bisa menyenangkan. Plus, bisa menghemat pula. Hehehe.

Tapi saya belum bereksperimen masak dengan bumbu yang beraneka macam. Hanya memanfaatkan bumbu masakan seperti bawang merah, bawang putih, ketumbar, cabai, dan jahe.

Untuk sayuran, sejauh ini cuma bikin sop, tumis wortel dan kol, tumis kangkung, dan tumis daun pepaya. Daun pepaya itu pun ngambil dari pohon di halaman rumah. Hehehe. Untuk lauk, saya simpel saja, cuma masak dengan cara digoreng biasa atau digoreng krispi.

Lele dengan tumis daun pepaya

Kalau memasak yang lebih niat ternyata memang harus sabar dan bumbu-bumbunya harus dilengkapi dulu. Hehehe. Spend waktunya pun lebih banyak. Sedangkan saya yang penting bisa makan saja tanpa harus keluar rumah. Hehehe.

Sayur lodeh dengan lele goreng

Untuk beli bahan makanan pun sekarang juga sudah praktis. Bisa pesan online. Tinggal pilih-pilih saja di website e-commerce. Mau sayuran, daging, ikan, buah-buahan, semua ada. Harga juga standar. Bahkan beberapa e-commerce memberikan promo gratis ongkos kirim.

Namun saya tidak setiap hari masak sendiri. Saya masih buat selang-seling juga dengan beli makanan dan belanja sayuran di luar dekat rumah.

Saya rasa kita juga harus tetap ikut membantu melariskan dagangan pedagang-pedagang di sekitar kita. Apalagi di masa-masa sulit seperti sekarang.

Jl. Dago ditutup

Covid-19 Diary (2) : Jalan Ditutup di Bandung

Salah satu kebijakan yang diterapkan oleh Pemerintah Kota (Pemkot) Bandung selama masa physical distancing ini adalah penutupan sejumlah jalan di beberapa tempat. Utamanya jalan-jalan protokol Kota Bandung seperti Jl. Ir. H. Juanda (Dago), Jl. Diponegoro, Jl. Asia Afrika, Jl. Merdeka, dan Jl. Braga.

Kebijakan ini mulai diterapkan sejak Sabtu malam tanggal 28 Maret 2020. Pada tanggal tersebut bertepatan dengan hari ke-13 sejak himbauan untuk physical distancing digaungkan pada tanggal 16 Maret 2020.

Pada hari Minggu paginya tanggal 29 Maret 2020 saya sempat berolahraga di Taman Cikapayang Dago. Tidak ramai. Beberapa pesepeda juga ada yang singgah di sana.

Menjelang jam 9 pagi seorang petugas Dishub memberikan pengumuman melalui pengeras suara agar para pengunjung Taman Cikapayang Dago segera pulang ke rumah masing-masing. Tak lama kemudian Jl. Ir. H. Juanda mulai ditutup.

Taman Cikapayang Dago menjelang penutupan Jl. Ir. H. Juanda (29 Maret 2020)

Namun, sepertinya kebijakan penutupan jalan ini tidak berlaku full seharian. Hanya jam-jam tertentu saja. Dan sepertinya jam-jam penutupannya juga tidak pasti setiap harinya.

Saya yang sesekali pergi ke kantor melalui daerah sekitar Dago, kadang melihat jalan Dago dibuka dan kadang ditutup pada pagi hari sekitar jam 9. Hal yang sama saya jumpai ketika pulang sekitar jam Isya. Kadang buka, kadang tutup. Tidak pasti.

Pengumuman jam penutupan jalan pada 29 Maret 2020

Kebijakan penutupan jalan ini masih berlaku hingga tulisan ini dibuat. Dan sepertinya masih akan berlangsung hingga situasi membaik.

Objektif dari kebijakan ini sepertinya memang untuk mengurangi mobilitas warga. Warga dihimbau untuk tinggal di rumah.

Pertigaan Jalan Ganeca-Jl. Ir. H. Juanda ditutup (10 April 2020)

Awal-awal himbauan physical distancing, sepertinya para warga cukup menurut. Jalan di sekitar Dago menjadi sangat sepi. Namun, belakangan ini jalan mulai agak ramai lagi walaupun masih jauh untuk disebut normal.

Orang-orang ternyata masih cukup banyak yang berpergian walaupun mengetahui ada penutupan jalan. Warga masih bisa melalui jalan alternatif, biasanya jalan yang paralel dengan jalan yang ditutup tersebut.

Mengatasi Konflik Subnet antara Jaringan Lokal dan VPN di MacOS

Baru-baru ini saya menemukan masalah ketika mencoba mengakses beberapa server dengan VPN (Virtual Private Network) kantor menggunakan wifi di rumah dari MacBook. Jika menggunakan wifi kantor, biasanya tidak ada masalah.

Untuk browsing biasa, sebenarnya tidak ada masalah. Namun ketika mencoba mengakses via SSH ke server yang berada di jaringan VPN, selalu gagal terhubung. Saya ping juga pun jaringan gagal menemukan server yang dimaksud.

Gagal ping server gitlab yang ada di IP 192.168.0.104

Sebagai informasi, di kantor saya menggunakan layanan internet dari Megavision. Sementara di rumah saya menggunakan layanan internet dari First Media. Saya sempat berpikir apakah karena faktor settingan router-nya ya.

Selanjutnya saya mencoba mengetes koneksi VPN tersebut dari HP Android saya. Masih di jaringan wifi yang sama. Ternyata saya bisa mengakses server-server tersebut. Artinya tidak ada masalah pada settingan router wifi.

Saya mencoba menge-ping IP address MacBook dari HP Android saya. Tidak bisa. IP address tidak ditemukan. Lucunya, jika saya menge-ping IP address HP Android dari MacBook, ping berhasil.

Ping MacBook di IP 192.168.0.18 dari HP Android gagal
Ping HP Android di IP 192.168.0.9 dari MacBook berhasil

Di situ saya menyadari ternyata default gateway pada kedua device ini berbeda. HP Android menggunakan default gateway dari jaringan VPN. Sementara MacBook masih menggunakan jaringan lokal (local network). Karena itu MacBook masih bisa menemukan device HP Android, sedangkan HP Android tidak bisa menemukan IP MacBook.

Hal tersebut bisa terjadi, khususnya di MacBook, karena subnet local network di wifi rumah saya (192.168.0.1/24) juga di-cover oleh jaringan VPN tersebut sehingga terjadi konflik. Itulah sebabnya saya tidak bisa terhubung ke server di jaringan VPN dengan IP address 192.168.0.xxx. Sedangkan untuk server dengan IP address di subnet yang lain seperti 172.19.211.xxx, saya bisa mengaksesnya.

Tapi saya masih belum paham kenapa MacBook menggunakan default gateway dari local network. Sedangkan HP Android otomatis menggunakan default gateway dari jaringan VPN.

Kemudian saya menjadi kepikiran. Jaringan wifi kantor kan menggunakan subnet 192.168.1.1/24. Pantas saja koneksi VPN-nya lancar-lancar saja.

Solusi yang pasti untuk masalah ini sebenarnya adalah dengan mengubah subnet dari jaringan wifi rumah ke subnet selain 192.168.0.1/24 (dan subnet lain yang berpotensi konflik dengan subnet di dalam jaringan VPN). Namun dalam beberapa kasus, mungkin kita tidak memiliki akses untuk melakukan pengaturan tersebut.

Ada alternatif cara lain yang juga bisa menjadi solusi. Kita bisa menambahkan route pada routing table MacBook agar semua traffic ke IP address di subnet 192.168.0.1/24 diarahkan melalui jaringan VPN.

Routing tables ketika awal terhubung ke VPN

Dari routing tables di atas kita bisa melihat IP address 192.168.0.xxx (Destination 192.168.0) diasumsikan berada dalam local network yang sama dengan host (link#4). Gateway tersebutlah yang ingin kita ubah agar traffic diarahkan ke jaringan VPN.

Sebelumnya, kita perlu menghapus terlebih dahulu route untuk destinasi tersebut dengan menjalankan command berikut dari terminal:
$ sudo route -n delete -net 192.168.0/24
delete net 192.168.0

Selanjutnya kita menambahkan kembali route dengan destinasi tadi, tapi kali ini mengarahkannya ke gateway VPN:
$ sudo route -n add -net 192.168.0/24 192.168.20.19
add net 192.168.0: gateway 192.168.20.19

Dalam kasus di atas IP address gateway VPN adalah 192.168.20.19. Berikut ini adalah perubahan routing tables yang telah diterapkan:

Routing tables yang baru

Kini saya sudah bisa mengakses server yang ada di jaringan VPN.

Server Gitlab yang ada di IP 192.168.0.104 bisa merespon

Namun solusi ini hanya temporary sifatnya. Jika kita melakukan re-connect ke wifi tadi, routing tables ini akan kembali seperti semula. Tentu saja setelah itu kita perlu melakukan pengaturan route lagi. Jika ingin permanen, solusi dengan mengubah subnet jaringan lokal wifi tadi lah caranya.