Autopsy-Fork

Halo, kali ini saya mau sharing sedikit nih tentang proyek kecil-kecilan yang lagi bikin :p

Jadi, kemaren saya baru menyadari ada yang namanya Cross Origin Request, hal ini yang ngebuat AJAX saya ga jalan-jalan ketika melakukan request ke sebuah server.

Nah, kebetulan kerjaan saya kemaren menggunakan python di sisi servernya. Ada konfigurasi di Header Response untuk membuat si request dari AJAX bisa menerima reponse dari server. Pas saya cobain… ternyata gagal. Belum tahu kenapa sih sampe sekarang. Hahaha.

Nah, saya berhubung kerjaan stuck, saya memutuskan buat nyobain solusi konfigurasi header tersebut dengan php. Eh, ternyata bisa. Ah, mungkin karena masih lokal pikir saya, terus saya cobain masukin program saya ke IdHostinger, dan ternyata tetep bisa. Fix. Solusinya bener. Gatau deh apa yang salah sama python nya ._.

Eniwei, saya jadi inget ketika saya di-tag sama seorang temen saya, Alvin, soal Autopsy. Autopsy ini merangkum semua cerita startup yang gagal, disajiin dalam sebuah halaman. Karena saya memang sering internetan dari hape, pake opera mini pula, waktu pertama saya buka halaman webnya tidak nyaman buat dibaca. Tulisannya terpaksa kecil, terpotong, serta border di sana-sini.

Screenshot from 2015-08-06 14:19:49

Ah, wajar bagi saya, soalnya opera mini kan memang menyederhanakan tampilan.

Namun, ternyata ketika saya coba buka dari laptop saya, tampilannya juga ada yang tumpang tindih tulisannya. Nah, setahu saya pula, itu columnnya gak bisa digedein.Jadi, sekali lagi, ada tulisan yang kepotong.

Terus kepikiran deh, ngebuat parser data dari autopsy ini ke tampilan lain, yang lebih sederhana, yang lebih opera-mini-able.

Jeng-jeng, jadilah Autopsy-Fork. Tampilannya memang sangat sederhana, karena saya murni pengen supaya bisa enak dibaca di opera-mini aja.

Screenshot from 2015-08-06 14:19:18

(Btw, buat yang pengen ngebuat tampilan yang lebih caem, silahkan ngelakuin request ke http://autopsy.hol.es/api.php . Balikannya json, kalau mau gampang, sok pake $.getJSON )

Ada dua tools yang menarik buat saya bahas kali ini.
1. cURL
Pertama kali, saya denger tools ini dari bang Fawwaz. Fungsinya cURL yang saya pakai kali ini adalah buat ngelakuin request ke autopsy asli, terus nerima html responsenya. Kenapa begini? Karena saya belum sejago Aryya yang bisa tahu si autopsy ini ngambil datanya dari mana wkwkwk. Nah, kebetulan php dan IdHostinger mendukung penggunaan cURL ini.

2. Simple_HTML_DOM_Parser
Sip, tugas pertama udah nih, kita udah ngedapetin file mentah htmlnya. Tugas selanjutnya, ngebersihin HTML tersebut buat ngedapetin data yang kita pengen.
Karena kebetulan si cURL nya dilakuin di PHP, ya saya cari-cari HTML Parser-nya PHP, kebetulan ketemu Simple_HTML_DOM_Parser. Sebenernya ada XML parser bawaan PHP sih, tapi saya takutnya HTML biasanya format XMLnya jarang bener. Hahaha. Kebetulan lib ini juga relatif gampang banget kegunaannya, setidaknya buat keperluan saya.

Udah deh, dua tools tadi cukup buat ngebuatin api-nya di http://autopsy.hol.es/api.php.

Tinggal masalah tampilannya. Tampilannya standar lah, bootstrap, rata tengah. Selesai. Sekali lagi, tujuannya biar enak dibaca di opera-mini doang *pembenaran gak bisa desain*

Huehuehue.
Silahkan yang jadinya dapet insight dari tulisan ini, bisa share project yang mau dibuat huehuehue.

*paling enak emang ngerjain sesuatu di saat harusnya ngerjain yang lain*
-_-

Soal Go-Jek

Sepahaman saya, salah satu value yang ditawarkan oleh Go-Jek adalah no wasted time, alias ga ada waktu yang terbuang percuma saat nungguin penumpang. Waktu ini, bisa diisi dengan kegiatan yang lebih menguntungkan daripada sekedar nongkrong di pangkalan sambil berharap kedatangan penumpang.

Beberapa hari yang lalu, saya melihat timeline saya dengan berita yang intinya driver Go-Jek membuat pangkalan untuk melindungi diri. Terlepas benar atau tidak, rasanya kenapa jadi rancu ya, ujung-ujungnya driver Go-Jek juga buat pangkalan buat nongkrong.

Saya juga melihat, tidak jarang, ada beberapa driver Go-Jek yang nongkrong bareng di sekitaran kosan saya.

Rasanya, kalau begini, saya jadi paham dengan kekhawatiran ojek-ojek konvensional yang katanya kemarin sempat marah-marah sama Go-Jek.

Value no wasted time ini, rasanya, tidak terlalu mengena pada ojek-ojek yang tidak punya pekerjaan lain selain ngojek. Sebelum ada apps Go-Jek, bisa dibilang, nongkrong adalah pengorbanan mereka terhadap waktu yang mereka miliki demi cari penumpang. Kalau sekarang? Pengorbanan ini tidak musti dilakukan. Tapi, mereka harus ngapain dong?

Toh, driver Go-Jek ujung-ujungnya masih saja ada yang nongkrong. Mungkin, ada baiknya Go-Jek memberikan pelatihan apa gitu buat drivernya supaya bisa mengisi waktunya dengan kegiatan yang lebih mantap *maaf, saya ga tahu apakah ini sudah ada atau tidak*

Bicara value no wasted time, value ini lebih mengena pada orang-orang yang punya pekerjaan harian, tapi memiliki banyak waktu luang. Pedagang makanan misalnya, yang waktu peaknya ada di jam makan siang, di luar jam itu mereka mungkin bisa ngojek. Mahasiswa misalnya, dapet kuliah pagi semua, di luar jam itu mereka mungkin bisa ngojek. Atau pegawai biasa, yang pulang kantornya jam 5 sore, terus ada orang di sekitarnya yang pulangnya searah sama dia.

Value no wasted time ini, menggiurkan siapapun yang punya waktu luang, buat jadi ojek. Wajar dong, kalau ojek konvensional merasa terganggu. Dulu, nggak ada orang yang bisa ngojek karena masalah waktu, sekarang, mendadak semua pada bisa dan nyempet-nyempetin. Kalau dipikir-pikir dulu ojek-ojek ini mau mengorbankan waktu mereka, tapi sekarang, pengorbanan itu nggak perlu.

Yah, saya juga gatahu banyak sih.

Demi Programming yang Lebih Baik

(Yah, mendadak nulis banyak, soalnya lagi di kereta dan ndak bisa tidur)

Di tempat kp yang baru ini, saya sama sekali belum disuruh ngoding. Saya baru disuruh analisis sistem yang ada, dengerin permasalahan yang ada, terus solusi apa yang bisa diberikan.

Berhubung rada gabut, saya mutusin buat nyari insight dengan baca-baca buku yang seharusnya dibaca saat kuliah.

Sekali lagi, saya amazing dengan buku-buku yang seharusnya saya baca ini. Saat ini, saya lagi cobain baca buku Algorithm Design Manual (pengarang Skiena) sama Computer Network + Distributed System (Dua-duanya Tanenbaum). Cukup menyesal sih, kenapa di saat aktif kuliah tidak menyempatkan baca buku-buku ini.

Buku-buku teknis ini, ditulis dengan cara yang bisa dibilang kocak. Setidaknya bisa bikin-bikin senyum sambil bilang “Sa ae si bapak”. Doakan semoga bisa baca sampe selesai deh. Hahaha <– sering naik turun keinginan buat bacanya -_-

Saat baca buku Algorithm Design Manual, saya jadi teringat salah satu artikel yang pernah beredar di Timeline Facebook saya. Artikel ini, intinya, berbicara soal sebenernya penguasaan algorithma tidak penting bagi seorang lulusan informatika. Setelah itu, saya coba refleksikan lagi dengan pendapat salah seorang dosen saya, soal perbedaan Coding dan Programming.

Coding adalah translasi pikiran jadi kode. Programming adalah proses problem solvin dengan menggunakan kode. Programming mencakup coding, namun coding tidak mencakup programming.

Saat anda baca "How to write x in Java", anda sedang belajar coding. Saat anda sedang analisa kebenaran dan kekuatan solusi dari sebuah masalah, anda sedang dalam langkah melakukan programming. Saat anda coba implementasi, anda terjun ke programming.

Mungkin itulah penyebabnya, di kuliah saya, sangat jarang belajar teknis seputar bahasa, namun banyak mata kuliah yang diajarkan tanpa ada koding-kodingnya (tubes tetep ngoding tentunya hahaha). Kami diajarkan untuk analisa. Translasi jadi kode bukan hal utama, disuruh belajar sendiri.

Hal ini, salah satunya diceritakan oleh Skiena dalam masalah Pyramid Problem. Insight yang saya dapatkan, ada perusahaan yang punya resource sangat bagus, mau membuat program untuk membuktikan bahwa setiap bilangan bisa dibangun dari bilangan piramida untuk bilangan kurang dari 1.000.000. Dengan resource yang sudah maksimal, orang yang disewa perusahaan ini membuat program yang baru selesai dijalankan selama 20 (atau 200? Gak inget-inget amat) menit.

Prof Skiena, diminta untuk membuat program yang lebih bagus. Mantap dan bergaya, beliau mampu membuat program yang bisa jalan kurang dari satu menit. Setelah optimasi sana sini, eh bisa juga jalan kurang satu menit, dengan resource yang seadanya.

Apakah program yang dibuat Prof Skiena lebih benar dari yang dibuat orang perusahaan? Sama kok tingkat kebenarannya. Cuman, kualitas yang dibuat Skiena jauh lebih bagus. Apa yang dibuat Skiena punya nilai ++ dibanding yang dibuat oleh orang perusahaan.

Ini juga yang coba saya refleksikan kepada saya yang sekarang. Saya yang kalau dapet tubes lebih asik ngomongin "Woy, ini ngodingnya gimana?" daripada "Menurut lu, seharusnya solusinya gimana?". Keliatan kok, hasil-hasil yang saya buat, kebanyakan hanya hasil-hasil ngoding doang. Termasuk meeting-room. Asal tahu gunain firebase, angular, jquery, semuanya pada bisa buat hahaha.

Insight menarik lagi, yang saya dapetin saat baca tulisan Kak Sonny soal game 24-nya Zaky. Ide gamenya sederhana (relatif umum, bukan ide baru). Salah satu yang menarik adalah, untuk nemuin semua pasangan solusi buat 24, Zaky ngegunain Dynamic Programming. Sesuatu yang bakalan kebanyakan orang, termasuk saya, akan buat dengan Brute Force. Kalau saya buat game yang sama, apakah game saya salah? Nggak. Kalah? Mungkin iya.

Huft. Harus lebih serius dan banyak belajar nih, huehuehue.

Rencana Kecil-Kecilan

Setelah sempat merenung cukup sebentar *ga nyampe sejam*, saya memutuskan saya harus sudah mulai punya rencana. Sekecil apapun.

Saya mulai nontonin video-video talkshow soal perencanaan keuangan. Saya inget mama saya dulu suka baca bukunya Safir Senduk. Mama yang dengan hebatnya, sudah bisa merencanakan dan menyiapkan dana untuk rumah dan kuliah anak-anaknya. Sehingga saat ayah saya pensiun, rasanya mama dan ayah tidak punya tanggungan finansial berarti selain anak kedua nya yang sedang kuliah dan belum punya penghasilan.

(Flash news, kakak saya sudah bekerja, adik saya masuk kepolisian (alhamdulillah!), dalam 7 bulan sudah mulai aktif bekerja, dan — kampretnya — akan punya penghasilan duluan dari saya. Ya, tahun depan, di keluarga ini yang masih aktif menerima THR adalah saya. -____-)

Balik lagi, saya jadi youtubing soal finansial, terutama talkshow-talkshow gitu. Kalo course kuliah gitu pusing dan tidak praktikal.

Jadi, hasil youtubing yang sebentar ini, saya menyusun rencana sederhana untuk perencanaan finansial saya.

Rencana saya dulu, saya hanya membagi keuangan saya menjadi dua rekening: tabungan dan harian. Tabungan berisi hasil tabungan, hadiah, THR, dll, yang harusnya sih untuk didepotisokan atau semacamnya. Harian, saya gunakan untuk makan, jajan, beli ini itu yang sifatnya rutin keluar. Apa daya, tidak punya rencana apa-apa membuat uang harian jeblok, tabungan terpaksa nombokin dan sekarang sisa secuil saja.

Saya dapet insight menarik, yang membuat saya berpikir, seharusnya ada 3 rekening : Tabungan Jangka Panjang, Tabungan Jangka Pendek, dan Harian. Harian, masih sama gunanya. Tabungan pendek, adalah tabungan yang sifatnya adalah pengumpulan untuk dibelanjakan. Misalnya, saya berencana beli hape baru di Januari nanti, uang untuk beli hape yang saya sisihkan akan masuk ke sini.
Tabungan panjang, tabungan yang sifatnya sebagai modal, dan tidak akan digunakan untuk konsumsi.

Loh, gunanya tabungan panjang apa dong? Untuk biaya emergensi gak make gitu?

Kalau sampai sekarang, saya bilang nggak. Emergensi, akan saya bebankan ke tabungan jangka pendek.

Tabungan jangka panjang, seperti yang saya bilang, akan digunakan sebagai modal. Sederhananya, misal, uang ini saya masukkan sebagai tabungan berjangka (atau berencana ya? Lupa namanya hahaha), sehingga di akhir periode, uang ini nilainya naik 7.5 persen. Andaikan ternyata uang ini mengalami pengurangan nilai (inflasi, harga naik) sebesar 6 persen, saya akan tetap mendapat keuntungan 1,5 persen. 1,5 persen ini yang akan saya alokasikan ke tabungan jangka pendek.

Nah, sebagai mahasiswa yang relatif belum punya penghasilan, pembagian ini saya adaptasi ke uang bulanan yang dikirim orang tua. Rasionya (gak ada dalilnya) masih cetek sih, harian : pendek : panjang = 85 : 10 : 5.

Tabungan jangka pendek memang sengaja saya gedein dibandingin yang panjang, agar apapun yang terjadi, uang yang saya ambil adalah 10 persen ini. Biar kecil, asalkan nilai yang 5 persen ini gak keganggu, bagi saya, ga papa.

Sebenernya sih, baru saya coba adaptasi satu bulan. Saya ga tahu rencana ini bener atau nggak hahaha. Saya share, mungkin bisa jadi insight bagi teman-teman sekalian.

Atau mungkin ada yang punya insight buat saya? Mungkin bisa dishare hehehe :))

Nikah dan Rumah

Tahun ini, saya terlalu banyak mendengar kabar rencana pernikahan. Pertama, saya mendengar kalau kakak saya akan menikah di tahun ini. Kedua, saya mendengar kalau teman di angkatan jurusan saya, akan menikah juga di tahun ini.

Terakhir, baru 5 hari saya kerja praktik, saya mendengar rekan kerja saya, akan menikah di tahun ini.

Sebagai bocah baru yang tidak tahu apa-apa, perbincangan soal pernikahan mba-rekan-kerja saya ini, saya jadikan sebagai basa-basi dengan mas-mas di kantoran. Pembicaraan kebanyakan ketawa-ketawa karena banyak becandaan soal pernikahannya.

“Tapi, gw bilang ama elu ja,” tiba-tiba salah seorang mas kantor bicara dengan sok serius. “Lu harus mulai mikirin soal pernikahan dari sekarang,”.

(Iya mas, saya udah sering ngebayangin saya nikahin siapa kok. Setiap cewek yang pernah senyum ke saya , pernah saya bayangin jadi istri kok#saya-mah-gitu-orangnya)

“Kenapa emang mas? Lulus aja juga belom hahaha”

“Nah, gw ga minta lu pikirin. Tapi, mulai siapin aja.”

Setelah itu, saya mendengar ceramah mas ini. Dengan pose pura-pura antusias tentunya.

“Lu pacaran gak?”

Saya menggeleng.

“Gw dulu gitu. Punya pacar, bareng ampe 7 tahun. Keluarga dia udah kenal gw, gw udah kenal keluarga dia. Asal ada acara keluarga besar, gw ama dia pasti bareng. Sering juga dibilangin ‘kalian kapan nikah?’ sama keluarga besar,”

Si mas mukanya makin sok serius. Mukanya lucu. Mirip abdel.

“Terus, dua tahun lalu kita udahan. Nyesel gw. Ngehabisin waktu dan uang gw sia-sia. Buat orang yang salah,”

Saya ga tahu mas ini serius atau becanda, mukanya susah dibedain.

“Sekarang, gw udah punya pacar baru, belum nyampe setahun, tapi kita udah commit, kita bakal nikah tahun depan”

Buset, satu lagi yang nikah.

“Gw nyesel banget dulu, punya duit banyak dikit, langsung dipake buat motor lagi, motor lagi. Coba gw buat tabung buat acara nikah gw,”

“Gw kasih tau ja, biaya nikah sekarang bisa minimal 100 juta. Gw aja bingung nih, kekejar kagak dana buat tahun depan (nikah maksudnya –pen)”

“Gw gak nyuruh lu buat mikirin nikah sama siapa, acaranya gimana atau gimana-gimana. Yang penting, dari sekarang, lu udah harus nyiapin. Nabung aja dikit-dikit dulu, buat masa depan”

“Temen gw, dari kuliah dia udah mulai nabung buat nyicil rumah. Waktu dia lulus, dapet kerja, dia udah mulai nyicil rumah. 3 tahun lagi, rumah lunas, udah, dia punya rumah. Gw? Belum punya apa-apa”

Eniwei, umur mas ini sekitar 27-28 tahun.

Ceramah mas ini, membuat saya sadar satu hal : saya gak punya tabungan jangka panjang. Saya memang aktif nabung. Setiap bulan, ada porsi uang yang selalu saya potong di awal buat ditabung. Sayangnya, uang ini gak pernah saya commit buat ditabung doang.

Sekalinya udah banyak sedikit, mulai ada yang aneh-aneh yang saya beli. Gak terasa, tabungannya nipis lagi.

Seriusan, dari cerita si mas, saya benar-benar belum menyiapkan diri saya untuk masa depan secara finansial. Saya belum pernah berencana dengan serius, kapan saya nikah, kapan saya punya rumah, umur segini saya harus udah bisa dan punya apa, dll.

Pikiran soal rumah dan nikah, tiba-tiba membuat saya berpikir kembali, sudah sebaik apa saya merancang masa depan saya sendiri.

Gimana dengan kalian? Udah mulai merencanakan atau melakukan sesuatu?