#mudik the series 2013, kopdar mini

Malang, 6 Agustus 2013

Hari pertama di Malang yang saya lakukan adalah (bukan saya sih, tapi si Didik ama @rara79) membawa Akane ke tukang tambal ban dekat rumah. Dan hasilnya adalah sebagai berikut ini:

Before and after
Suasana lalu lintas kota Malang

Classical Malang, Gereja Kayutangan

Somewhere at Pagak, off the grid but nice view

Selanjutnya agenda hari itu adalah main ke rumah @eriskatp di Bantur.
It should be a simple short trip until we decided to play with Google Navigation. And it was bloody disaster!
Waze lagi bego, ga kenal rute ke Bantur makanya kami pake Google Maps. Eh ada menu Google Navigation, jadilah kami pakai itu. Tampilannya mirip Waze pula.

Lesson learnt, jangan pernah pakai Google Navigation buat jadi GPS deh. Dijamin ga nyampe-nyampe karena kamu harus blusukan lewat jalanan kampung, motong sawah, keluar masuk hutan … kacau pokoknya. Dari Kepanjeng, kami di bawa ke Pagak, keluar masuk Pusat Latihan Tempur TNI AL (yes, PUSAT LATIHAN TEMPUR!!!), offroad lewat jalanan kampung, nyaris harus lewat pematang sawah (dengan mobil, come on!!) Dan GPS paling valid akhirnya adalah Gunakan Penduduk Setempat.

Berbekal petunjuk beberapa orang, akhirnya kami sampai di depan SMA Negeri 1 Bantur sebelum dijemput @eriskatp. Ayahnyapun sampai heran kenapa kami sampe blusukan ke Pagak segala :P Setelah ngobrol-ngobrol lama dengan @eriskatp dan ayahnya, acara selanjutnya adalah balik ke Malang kota. Agendanya beli kripik tempe, ketemu dengan @ariefbayu dan @floressya. Sebelumnya mampir buka puasa dulu di Bakso Bakar Pahlawan Trip.

Bakso Bakar Pahlawan TRIP
Berburu oleh-oleh di kawasan Tumenggung Suryo
Bu Dokter, permen ga baek buat kesehatan gigi.
Apalagi segede itu loh…
Foto seadanya dengan OM-D

Ini juga kocak karena venue yang mo kita jadikan tempat nongkrong pada ga available. Milk Story dah ganti nama, tutup pula. Van Oosten juga tutup sampai selesai lebaran. Akhirnya kami terdampar di @BhaswaraCafe yang lokasinya di Skomdak. Tempatnya sih mayan cozy. Bandnya juga OK, malam itu lagi memainkan lagu-lagu oldies. Cuman menunya so-so banget. Kalau mengutip komentar di foursquare “nice place with not so nice menu” :)

Well, that’s all for the night… ngantuk :P

#mudik the series 2013, Etape 2

Senin, 5 Agustus 2013, escape Jawa Tengah

Setelah selesai beristirahat sejenak di ret area km 226 Tol Palikanci, kami melanjutkan perjalanan kembali. Jam 8 pagi dan cuaca waktu itu lumayan mendung. Berdasarkan informasi baik itu dari internet, radio maupun pembicaraan beberapa pemudik lainnya akhirnya kami memutuskan untuk keluar di exit Kanci. Exit Pejagan supayanya lumayan stuck, sedangkan kontur jalanan tol Pejagan tahu sendiri deh kualitasnya kaya gimana. Dengan satu sekrup menancap di ban depan, kayanya riskan sekali kalo harus lewat sana. Yah hitung-hitung sekalian nyari tukang tambal ban yang buka sih.

Keluar tol langsung disambut kecelakaan. Seorang pemotor sedang tergeletak di seberang jalan, rupanya disruduk bis yang berhenti beberapa meter setelahnya (pas di tukang tambal ban). Yah kami skip tambal ban ini karena terlalu rame orang menolong dan melihat kecelakaan tersebut.

Secara umum kondisi kota Cirebon bisa sepi sekali jalanan. Kita jadinya yah nyantai-nyantai saja (gara-gara sekrup itu sih, otherwise we could drive in turbo mode :P) Saking lancarnya kami ga merasa kalo dah melewati exit pejagan. Dan kemudian masuk ke area telor asin kombo brambang. Welcome to Brebes. Dan jalanan ‘ancur’ pun mulai menyambut kami. Duh kasihan nih si Akane. Arus lalu lintas pun mulai padat mengingat hari itu adalah jam sibuk warga sekitar beraktivitas plus kondisi jalanan yang buruk.

suasana km 226
Suasana Cirebon, sepi
Kondisi jalan di Brebes….
Seperti biasa, banyak sign-board lucu-lucu di sepanjang perjalanan. Termasuk di bodi truk :P

Ga banyak yang bisa saya ceritain di sini. Overall Brebes-Tegal-Pemalang cukup lancar. Tersendat di beberapa titik karena yah melewati pusat aktivitas warga seperti pasar, kompleks pertokoan dan sejenisnya. Kemudian kami kejebak macet lumayan parah sewaktu baru masuk Pekalongan. Setelah itu lancar sampai kendal. Hal serupa terjadi juga mulai terminal Mangkang hingga masuk ke tol Jatingaleh. Tol terbilang sepi, jadi mayan nekat speeding buat memotong waktu (iya iya, sekrup masih menancap di ban mobil).

Nah mendekati exit tol tanjung mas, @rara79 mulai ribut dengan waze-nya . Oh iya so far kami memanfaatkan google maps + waze, padahal literally tanpa petapun kita ga akan nyasar kalo lewat pantura sih. Rara bilang saya kelewatan exit tol, sementara saya yakin exit tolnya justru masih di depan. Penunjuk jalanpun mengesyahkan pendapat saya tersebut he he he. Seperti biasa, exit Tangjungmas langsung menyusuri Jalan Raya Semarang – Demak. Sementara @rara79 sibuk berantem dengan Waze yang memaksa kami untuk melalui rute Purwodadi Blora-Bojonegoro, rute yang cukup memberikan pengalaman buruk tahun kemarin. Selepas Demakpun si Waze ngeyel nyuruh kami balik kembali ke arah Purwodadi. Buset dah.

Masuk Tegal Kota Bahari
Somehow, arah ke Cirebon yang macet
Astaga….
Sate Subali – Batang

Jadi ya turn off Waze and just enjoy the road. Demak sampai Pati lancar Jaya, sampai Juwana jalanan mulai rada-rada offroad. Menyusuri Lasem jalanan kembali bersabahat, tapi setelah itu ampun deh gusti. Mulai dari Kragan (Release The Kragan!!!! *akhirnya @rara79 bisa bikin lawakan :P*) sampai masuk Jenu-Tuban kondisi jalanan bikin ketar-ketir mobil rendah seperti Ford Fiesta ini. Jadi ngiri dengan rombongan depan yang menggunakan Everest dan Navara. Bahkan masuk Tuban kota pun kondisi jalanan masih bergelombang. Perasaan tahun kemarin ga sehancur itu deh kondisi jalanan di Tuban.

Keluar kota Tuban kondisi jalanan membaik dan kosong. Si Akane pun bisa mode Turbo sampe exit Gempol. *fiuh* sampai rumah pas tengah malam dan langsung terkapar kecapekan. Alhamdulillah semuanya lumayan lancar, mengingat tahun 2012 kemarin saya butuh 52 jam dari Jakarta sampai Malang :)

Met lebaran semuanya…

ps: oh iya, tuh sekrup belum diurusin sampe saya bangun tidur esok harinya :P

Got a Doodle!

According to wikipedia, a doodle is an unfocused or unconcious drawing made while a person’s attention is otherwise occupied. Doodles are simple drawings that can have concrete representational meaning or may just be abstract shapes.

Stereotypical examples of doodling are found in school notebooks, often in the margins, drawn by students daydreaming or losing interest during class. Other common examples of doodling are produced during long telephone conversations if a pen and paper are available.

Popular kinds of doodles include cartoon versions of teachers or companions in a school, famous TV or comic characters, invented fictional beings, landscapes, geometric shapes and patterns, textures, banners with legends, and animations made by drawing a scene sequence in various pages of a book or notebook.

And I got a doodle made by Mindha, my junior from SMK Telkom Sandhy Putra Malang. Thanks Mindha :)

fb_mindha_doodle thumb

Yayyyyyy, awesome isn’t it?

She’s so good at making doodle.

Ok, I see Domo there. I’ll make you one, Danbo :)

Nick D’Aloisio – ABG 30 juta dollar

Eh, adakah yang ikutan WikuFest #1 Januari 2012 lalu?
Kalo ada dan masih ingat dengan slide di bawah ini.

keynote-scrsht

Baiklah, mari kita flashback sejenak.
Namanya Nick D’Aloisio, asal Inggris.
Umurnya sekarang masih 17 tahun. Yak, sama dengan Wikusama angkatan 19 yang sebentar lagi mau lulus.

daloisio-vimeo

Seperti disebutkan di slide di atas, Nick membuat sebuah aplikasi iOS yang dia namakan Summly (yang pada akhirnya menjadi sebuah perusahaan). Umurnya pas 15 tahun sih waktu itu. Nah Summly ini fungsinya membuat ringkasan dari berbagai sumber barita yang telah kita tentukan. Analoginya, dari ada membaca keseluruhan isi buku, si Summly ini akan membuatkan ringkasan kesimpulannya buat kamu.

summlyIdenya simple yah? :) Tapi sepertinya yang terlibat di sini adalah natural language processing (NLP). Nah silakan googling yah apa itu NLP. Summly juga mendapatkan gelar sebagai Apple’s Best Apps of 2012 award for Intuitive Touch!
Why? Bisa lihat di video Summly Launch  ini deh atau cari di youtube.

Nah, tahun 2011 Summly mulai dilirik venture company (VC). Taipan asal Hongkong, Li Ka-Shing menyuntikkan dana sebesar lebih dari USD 250 ribu, menjadikan Nick jadi orang termuda yang pernah menerima dana dari VC. Ga berhenti di situ, setahun kemudian sebuah grup yang isinya kebanyakan adalah artis-artis beken (diantaranya ada Yoko Ono, Ashton Kutcher) memberikan tambahan dana sekitar USD 1.2juta. 16 tahun.

hp-bgd-hand-high

Nah, minggu ini Nick D’Aloisio menerima tawaran dari Yahoo yang membeli Summly dengan harga sekitar USD 30 juta.
Tadaaaa….

Well, ala film Inception, ada banyak cerita dibalik cerita Yahoo mengakuisisi Summly. Some reports say it’s not about the app. Yahoo didn’t actually purchase Summly, but to get Nick D’Aloisio to become the face of the company. Mungkin untuk nemenin Marissa Mayer jadi spokeperson Yahoo. Cuman kalau menurut AllThingsD, kabarnya Nick dikontrak hanya selama 18 bulan. Setelah kontrak habis, ya ceritanya mungkin akan lain.

 

Jadi keingat Yahoo akuisi koprol…

Well anyway, 17 years with USD 30mio in the pocket. Still, it’s awesome….

SongPop Behind The Scene

Ada yang tahu SongPop?

Mestinya sih banyak yang pada tahu yah :)
Jadi Song Pop itu adalah game tebak lagu di Facebook buatan FreshPlanet. Selain di Facebook, SongPop juga bikin mobile app-nya untuk iOS dan Android.

songpop-3

Cara mainnya sih gampang. Pilih lawan kamu dari friendlist facebook, pilih genre musik, nanti akan ada 5 lagu yang harus kamu dengerin selama beberapa detik dan tebak judul lagu atau nama penyanyinya.

 

Sederhana kan?  Yoi, kesederhanaan ini yang justru membuat sukses game-game di jejaring sosial.

Nah, kali ini kita ga akan membahas gimana cara bermain SongPop yang baik dan benar sesuai dengan tangga lagu billboard. Kali ini mari kita ngomongin mengenai isi dapur FreshPlanet, bagaimana mereka running SongPop ini.

Menurut data dari AppData (eh berima :P) SongPop FacebookApp mempunyai lebih dari 11,3 juta monthly active users (MAU). Daily active users (DAU) sendiri dah di atas angka 2 juta, dan game ini baru diluncurkan sekitar Mei 2012 kemarin. Belum ada setahun dan belum termasuk yang dari iOS ataupun Android Client. Nah silakan berhitung deh.

Nah, gimana sih caranya si FreshPlanet ini handle trafik game yang sebesar itu?
Di Wikufest 2013 kemarin ada adik kelas yang bertanya ke saya gimana caranya bikin layanan sosial media yang proper. Tapi karena saya belum tahu konsepnya dan cuman dapat info kalau dia ingin doing everything all in, saya cuman mengajukan pertanyaan dasar terkait infrastruktur dulu. Dan sepertinya pertanyaan saya tadi cukup membuatnya berhitung dengan serius :) *baru soal foto doang sih, belum ke yang lain-lain :P*

google-app-engine-logo

Oke, kembali ke laptop.
FreshPlanet infrastrukturnya menggunakan Google App Engine (GAE) dan Google Cloud Storage. Di tahun 2013 ini, ga jaman harus bangun infrastruktur sendiri untuk semua hal. Buat yang ikutan kelas CloudComputingnya si Dondy harusnya dah dapat gambaran yah.

Nah GAE ini sudah bukan kategori IaaS tapi lebih ke arah PaaS. Dengan memanfaatkan GAE ini, FreshPlanet mampu membuat Song Pop untuk dapat autoscale (baca: auto) hingga 60 juta user, 1 juta DAU, 17TB/hari delivery content (tentu saja lagu dan gambar), 10,000+ query/detik. Song Pop sendiri dihandle oleh “cuman” 6 orang, dan cuman 1 saja yang kerja fulltime ngurusin backend-nya.

songpop_gae_gc

Mengutip wawancara Zafir Khan dari GoogleAppEngine dengan Olivier Michon dan Alexis Hanicotte dari FreshPlanet ada beberapa tips yang mereka terapkan untuk optimalisasi dan tentunya skalabilitas si Song Pop itu sendiri. Diantaranya:

IMG_7213Denormalisasi: data user Song Pop tersebar di bermacam model, tapi tetap koleksinya di pool di satu tempat untuk mengurangi read latency.
Caching: Masih nyambung soal denormalisasi, data lawan main kita akan di cache. Jadi sistem ga akan selalu melakukan “query” ke user data cuman buat tau lawan main kita itu sapa ajah. Analoginya, query sekali, cache, query lagi kalo ada trigger cachenya tadi sudah obsolete/expired. FreshPlanet menggunakan Memcache untuk 2 hal di atas. Memcache itu fitur di GAE kok, dan orang-orang FreshPlanet menggunakan Python API-nya GAE buat kebutuhan ini. Hayo hayo pada belajar Python sana. It’s a fun languange.
Strategi: Iyah, bikin aplikasi itu harus ada strateginya. Apalagi kalau aplikasinya tadi bukan sekedar one-time asal jadi doang. Memilih GAE, beli premier support dari Google untuk kebutuhan GAE-nya tadi adalah salah satu strategi FreshPlanet untuk SongPop. Ceritanya saat DAU Song Pop mencapai angka 1 juta, query Datastore (yang digunakan untuk mencari lawan main secara acak) mulai lemot dan banyak timeoutnya. Untuk beresin ini, FreshPlanet menentukan deadline dan aktivitas fallback sistemnya, kemudian dengan bantuan Premier support melakukan tracing dan identifikasi yang bikin lemot query Datastore tadi apa. Dan seperti disebutkan di wawancara tersebut, masalahnya ternyata karena Datastore bergantung ke berbagai macam properti. Walaupun sudah di-index, tetap saja jumlah kebanyakan. Solusi yang muncul akhirnya ada opsi mau nambah sebuah composite index yang berisi semua properti yang dibutuhkan atau menggabungkan properti-properti tadi jadi satu.
Content Delivery: masih hosting static content dan ‘dynamic content’ atau apps di satu server yang sama? Satu mountpoint, LUN, directory yang sama? Nah coba baca-baca soal CDN (Content Delivery Network) deh :) Song Pop menggunakan Google Cloud Storage untuk serving lagu dan gambar dengan lebih dimanapun si user tadi berada. Jadi kalau kita main di Indonesia, sample lagu-nya ga harus kita download langsung dari server di Amerika sana misalnya :)

Detilnya wawancaranya bisa dibaca sendiri di sini deh. Walau jika dibaca keseluruhan hampir ga ada detil teknis howto-nya, tapi konsep yang disinggung di sini seru banget.

So… GAE bisa dicoba-coba gratis lho :) SDK-nya juga bisa didownload n insall di komputer masing-masing.

Dan… sekarang saatnya mengganti huruf P di PHP itu dengan Python :)

Tambahan referensi: