Training CP100A: Google Cloud Platform Fundamentals

Rabu, 24 Agustus 2016 yang lalu, kami (Cecep dan Sugandi) dari tim DevOps KMKLabs berkesempatan menghadiri training Google Cloud Platform Fundamentals yang diselenggarakan di Asia Square 1, 19th floor (Google Asia Pacific Singapore).

Persiapan Sebelum Training

Karena training ini berlangsung seharian dan dimulai dari jam 8 pagi (waktu Singapore), kami memutuskan utk berangkat sehari sebelumnya.

fragrance_hotel
Fragrance Hotel, tempat kami menginap

Pesawat yang kami naiki, tiba di Singapore sekitar jam 20:35 waktu setempat. Lalu dengan dengan menggunakan MRT kami tiba di hotel untuk check-in sekitar jam 10 malam. Dengan waktu yang relatif sudah agak malam, kami hanya sempat makan malam disekitaran hotel.

Training Day

Lokasi hotel tempat kami menginap ke kantor Google Asia Pacific tidak terlalu jauh. Hanya sekitar 1.5 km, dan menurut Google Maps itu cuma memakan waktu sekitar 20 menit perjalanan dengan berjalan kaki.

screen-shot-2016-09-14-at-10-47-59-pm
Rute ke kantor Google, menurut google maps.

Akhirnya kami memutuskan utk berjalan kaki, sekalian menikmati suasana pagi. Trotoar di Singapore sangat lebar dan nyaman untuk berjalan kaki. Hanya saja, sebaiknya ikuti petunjuk google maps baik-baik. Kalau diarahkan untuk berjalan di kanan jalan misalnya, harus diikuti, karena di Singapore, kita tidak bisa sembarangan nyebrang jalan.

Kami agak sedikit tidak fokus dan mengabaikan petunjuk aplikasi google maps, jadinya kadang harus memutar balik untuk sekedar menyebrang jalan. Akhirnya¬†waktu tempuh yang harusnya 20 menit, jadi sekitar 30 menit lebihūüôā

Materi Training

Training kali ini seperti di judulnya “Fundamental” lebih banyak bersifat pengenalan tentang fitur-fitur di Google Cloud Platform.

Module 1: Introducing Google Cloud Platform

Module 2: Getting Started with Google Cloud Platform

Module 3: Google App Engine and Google Cloud Datastore

Module 4: Google Cloud Patform Storage Options

Module 5: Google Container Engine

Module 6: Google Compute Engine and Networking

Module 7: Big Data and Machine Learning

Setiap module disertai dengan module lab nya. Jadi peserta training diberikan serangkaian petunjuk untuk mencoba langsung fitur yang ada di module training tersebut.

Trainingnya cukup padat, berlangsung dari jam 08:00  (GMT +8, jadi kalau di Jakarta ini jam 7 pagi lho), sampai sore jam 18:00 waktu setempat. Dengan beberapa kali diselingi coffe break dan makan siang tentunya.

Setelah training selesai, kami bergegas menuju bandara. Sama seperti sehari sebelumnya menggunakan MRT, cuma kali ini di jam relatif sibuk. Lokasi stasiun MRT tidak jauh dari kantor Google, bisa dengan berjalan kaki.

Dan setelah makan malam di Bandara Changi dan mencari sedikit oleh-oleh untuk teman kantor, kami terbang pulang ke Jakarta. Tiba di bandara Soekarno-Hatta jam 10 malam. Seharian waktu yang melelahkan tapi banyak hal yang menyenangkan. Mudah-mudahan kami diberikan kesempatan lagi untuk mengikuti training-training lain seperti ini.

Eh btw, kalau kalian join di KMK, kalian juga bisa berkesempatan untuk mengikuti training seperti ini loh. Ups, ngiklanūüėÄ

Notes:

  1. Sayangnya materi training tidak bisa kami share di blog ini, tapi informasi seputar training ini bisa kalian lihat di sini.
  2. Kami berdua lupa untuk mengambil foto saat training. Mungkin karena lokasinya tidak melewati lobby kantor Google yang keren itu. Tapi langsung di tempat training, lantai 19. Jadi gak ada spot yang cocok utk selfieūüėÄ

 

 

Training CP100A: Google Cloud Platform Fundamentals

Pelatihan Android bertema “Building for Billions on Android” di Kantor Google Indonesia

Kamis 11 Agustus 2016 tim KMK Labs diundang untuk menghadiri acara pelatihan android yang diadakan oleh Google Indonesia. Pelatihan tersebut bertema “Building for Billions on Android” dan¬†diselenggarakan di kantor Google Indonesia sendiri. Banyak developer Indonesia yang diundang untuk¬†mengikuti acara pelatihan tersebut, dari komunitas, ¬†pekerja dan pemilik aplikasi berbasis Android. Pemateri dari pelatihan ini sendiri adalah¬†Ankur Kotwal salah satu developer¬†google yang tinggal di Australia.

img_20160811_110719Gambar 1. Pemateri Ankur Kotwal saat melakukan presentasi.

Selain untuk menyajikan materi untuk para developer yang hadir, pelatihan ini juga bertujuan untuk memberikan kesempatan kepada para developer Indonesia untuk mengajukan pertanyaan, menceritakan kendala apa saja yang dialami saat proses development dan memberikan usulan atau ide baru tentang android development. Pelatihan ini hanya menghabiskan dua sesi, sesi pertama adalah penyajian materi sekaligus pertanyaan, kendala dan usulan dari para developer Indonesia. Sesi kedua adalah makan makan sekaligus melanjutkan pertanyaan, kendala dan usulan yang belum sempat ditanyakan atau dibahas saat sesi pertama.

 

I. Materi

Materi”Building for Billions on Android” membahas¬†tentang beberapa hal yang harus diperhatikan saat membuat aplikasi Android apalagi untuk jutaan user. Berikut adalah hal-hal yang harus diperhatikan¬†:

  1. Connectivity
  2. Device Capability
  3. Data Cost
  4. Battery Consumption
  5. Content
  6. Commerce

 

1. Connectivity

Connectivity merupakan salah satu hal yang harus diperhatikan saat membuat aplikasi android, mengingat kebanyakan aplikasi saat ini menggunakan internet sebagai komponen utama untuk menampilkan, mengirim data dan aktifitas-aktifitas aplikasi lainnya. Beberapa hal yang bisa kita lakukan untuk menjaga connectivity tetap bagus adalah :

  • Optimasi Jaringan Internet

optimasi jaringan internet dapat dilakukan dengan cara Menentukan perioritas untuk  pengambilan data, dimana pengambilan text didahulukan sebelum pengambilan media seperti gambar. Menghilangkan duplikasi request data juga bisa dilakukan untuk mengoptimasi jaringan internet. Dan mengatur perlakuan aplikasi sesuai dengan tingkat koneksi juga bisa dilakukan untuk mengoptimasi jaringan internet.

  • Optimasi gambar

optimasi gambar dapat dilakukan dengan cara mengubah format gambar kedalam format WebP dan memperhatikan ukuran gambar yang dinamis.

  • Menjaga Aplikasi Agar Tetap Digunakan¬†Saat Offline

Menggunakan cache untuk data-data dan media sangat diperlukan agar aplikasi tetap bisa digunakan saat offline. Untuk Media berupa gambar bisa memakai library yang sudah ada untuk melakukan cache. Salah satu library itu adalah Picasso. Jangan lupa untuk test aplikasi dengan menggunakan mode airplane. Apabila aplikasi tidak bisa digunakan maka anda perlu memperhatikan proses cachenya lagi.

2. Device Capability

Perhatikan kapabilitas device pengguna. dengan cara :

  • Perhatikan Ukuran Layar

Buat aplikasi untuk device yang berukuran kecil dan sedang. Optimasi resource-resource yang ldpi dan mdpi, dan test menggunakan konfigurasi emulator.

  • Menggunakan Memori Seefisien Mungkin

Mencari tau memori yang tersedia dan hindari proses yang memakan waktu sangat lama. Jangan lupa untuk memantau memori yang dipakai oleh aplikasi dengan menggunakan tool dari android studio.

3. Data Cost

Untuk memantau sebarapa banyak pemakaian data yang digunakan oleh aplikasi bisa menggunakan tool dari android studio.

4. Battery Consumption

Hilangkan pemakaian background proses yang tidak perlu apalagi proses wakeup dari background proses. Jadwalkan request ke server di satu waktu bersamaan request lainnya. Gunakan GCMNetworkManager untuk melakukan proses request di background yang berkala.

5. Content

Beberapa hal yang perlu diperhatikan untuk content adalah :

  • Kecepatan dan responsible dari UI

Feedback di setiap view yang bisa di tap. Buat tampilan seinteraktif mungkin. Pertimbangkan launch screen

  • Tampilan yang terbaik

Gunakan material design, dan gunakan design support library.

  • User’s locale

Perhatikan bahasa di setiap user,  sediakan bahasa yang sesuai bahasa user. Juga sediakan Font yang sesuai dengan user.

6. Commerce

Disini yang perlu diperhatikan adalah bagaimana cara kita untuk menghasilkan uang dari aplikasi kita. Bisa dengan cara pasang iklan, in-app purchase, subscription, atau app berbayar. Perhatikan juga untuk harga sesuai dengan lokasi user.

Diatas adalah hal hal yang perlu diperhatikan untuk membuat aplikasi berbasis Android. Sumber dan detail dari materi dapat dilihat di  Building for Billions Framework dan Building for Billions Playbook

img_20160811_122430Gambar 2. Para peserta pelatihan.

II. Tanya dan Jawab

Di sela-sela materi peserta dapat bertanya tentang yang berkaitan dengan tema ataupun yang sedikit berkaitan. Bahkan pemateri juga mengajukan pertanyaan kepada peserta. Berikut adalah beberapa pertanyaan dan jawaban yang saya catat :

Pertanyaan(Peserta) 1: Kenapa WebP sangat dianjurkan, padahal cara memakainya sangatlah ribet.

jawaban(Pemateri) 1: Karena WebP bisa mengurangi ukuran dari gambar, dan untuk pemakaian webP sebenarnya tidaklah ribet, karena sudah disediakan di dalam Android library itu sendiri.

Pertanyaan(Pemateri) 2: Apakah ada yang sudah memakai library cache untuk media? dan apa nama library tersebut?

Jawaban(Peserta) 2: Banyak yang sudah memakai, dan kebanyakan yang dipakai adalah Picasso.

Pertanyaan(Pemateri) 3: Siapa diantara kalian yang aplikasinya masih berjalan sempurna meskipun pada saat koneksi internet mati?

Jawaban(Peserta) 3: Kebanyakan dari aplikasi kami tidak berjalan sempurna saat koneksi mati, karena ada beberapa data yang tidak memakai cache. dan juga kebanyakan aplikasi kami sangat membutuhkan koneksi internet.

Pertanyaan(Peserta) 4: Bagaimana cara kami untuk tahu dimana letak kesalahan code kami ketika kami mendapatkan error out of memory yang informasinya tidak di code kami?

Jawaban(Pemateri) 4: Anda harus cermat memonitor penggunaan memori di setiap activity di aplikasi menggunakan tool yang sudah ada di android studio.

Pertanyaan(Peserta) 5: Kenapa google tidak selalu menyediakan library untuk fitur yang sebenarnya sudah diimplementasi oleh google? Karena kadang bos kami menginginkan tampilan yang sama serperti salah satu aplikasi dari google padahal google tidak menyediakan librarynya.

Jawaban(Pemateri) 6: Google tidak selalu membuat librarynya untuk setiap fiturnya karena beberapa alasan, beberapa diantaranya adalah google membutuhkan respon dari user dulu tentang fitur baru yang ada di aplikasinya, apabila respons dari user bagus maka google menerbitkan librarynya. Juga google memberikan peluang untuk para developer untuk berkreasi sendiri tanpa selalu menunggu library dari google. Dan google berpikir agar tidak semua aplikasi di android sama, agar setiap aplikasi memiliki ciri khas sendiri dan user tidak jenuh dengan itu.

 

Diatas adalah rangkaian yang ada pada sesi pertama, sesi kedua kami makan-makan dan mengajukan pertanyaan-pertanyaan ringan yang belum sempat dibahas pada sesi pertama.

IMG_20160811_140306.jpgGambar 3. Acara makan-makan (saya baju putih yang tangannya 90 derajat tegak lurus menutupi mulut :D).

Pelatihan Android bertema “Building for Billions on Android” di Kantor Google Indonesia

TECH TALK VIDEO – AHOY : A History of YAGNI

Tech talk kali ini membahas tentang engine event tracker yang digunakan di KMK; ahoy. Sistem tracker ahoy digunakan pada semua aplikasi yang dibuat oleh KMK. Dalam pembuatannya, ahoy menggunakan prinsip YAGNI sehingga pengembangannya menyesuaikan dengan kondisi sistem KMK yang ada.

Yuk simak video nya disini

https://www.vidio.com/watch/432146-tech-talk-60-ahoy-a-history-of-yagni?channel_id=167364

TECH TALK VIDEO – AHOY : A History of YAGNI

PyCon Singapore 2016 it’s all about Python, Open Data, and Deep learning

Beberapa minggu yang lalu Tim dari KMKLabs dan Karir memiliki kesempatan untuk menghadiri PyCon. PyCon sendiri adalah sebuah conference yang membaha tentang teknologi dan study case dari python yang pernah atau sedang dilaksanakan oleh para beberapa praktisi di Education dan Industry. Event ini sendiri diselanggarakan di National University of Singapore (NUS) di COM 1 building.

1. Keynote: How to Write a Popular Python Library by Accident РPyConSG 2016

Pada keynote ini pasangan Suami Istri Daniel & Audrey Roy GreenFeld memberikan semangat kepada para developer untuk memulai untuk mengajak para audience yang hadir untuk berpartisipasi di dunia open source. Mereka mencontohkan apa yang telah mereka lakukan yaitu Cookie Cutter dimana Audrey memulai project ini saat dia di kesulitan untuk mempublish code ke PyPi.

Untuk melihat video persentasi mereka silahkan menonton dibawah ini sources engineers.sg

 

2. Using Python to Build a GIS Data Pipeline for Rural-Urban Classification

Pada sesi ini Whye Loon Tung memberikan talk mengenai GIS. Whye loon tung sendiri saat ini bekerja di Nielsen dan sudah memiliki gelar Ph.D dari NTU. Pada tallk ini, beliau memberi study case menggunakan peta Indonesia bagaimana cara mengklasifikasi suatu daerah apakah itu adalah Urban (perkotaan) atau Rural Area (perkampungan). Menggunakan Satellite images, dan mengkonfersikannya dari satellite seperti ini :

Screen Shot 2016-07-13 at 8.31.14 PM

Setelah itu akan dilakukan klasifikasi menggunakan data-data yang sudah ada dan dihitung accuracy nya.

Berikut adalah persentasi dari beliau :

 

3. Deep Learning With Python & Tensorflow

Pada sesi ini Ian Lewis dari google memberikan persentasi mengenai tutorial menggunakan tensorflow. Seperti yang kita tahu, Deep Learning sendiri saat ini sedang hype banget mulai dari company dari detection image, sound, playing Game, recommendation system. Pada sesi ini, beliau menjelaskan sedikit konsep dari neural network (if you don’t know neural net than you are not knowing deep learning). Setelah itu ada sedikit tutorial code menggunakan tensorflow untuk melakukan klasifikasi MNIST dataset yang mana mencapai accuracy 92% which is pretty bad. Yang menarik dari talk ini adalah ternyata tensorflow tidak sesusah yang dibayangkan, yang jadi problem adalah mengaplikasikan multi layer perceptron dan activation funtion agar dapat bekerja dan memiliki accuracy yang tinggi dan nilai error yg rendah saat melakukan back propagation.

4. Deep Learning Hands-on Workshop

Pada sesi ini Dr. Martin Andrews memberikan tutorial mengenai handson lab dari Theano. Yes in the same day, kami memperoleh ilmu dari Tensorflow dan Theano. Dan yang menarik lagi, Dr. Martin sendiri sudah menyiapkan bahan berupa virtual box, os linux yang telah diinstall theano dan beberapa code mengenai theano. Materi yang diberikan cukup luas dan seperti classification untuk MNIST dataset (for me it’s like print hello world in programming)

 

5. Customer Segmentation in Python

Pada sesi ini Mao Ting, memberikan persentasi bagaimana melakukan cluster dari user menggunakan Dataset YPedia dari kaggle. Ada beberapa tahap dalam melakukan analisa:

  1. Explore the data (Descriptive statistics)
  2. Two sample (T-test)
  3. Clustering using K-Means

Untuk melihat slide dapat mengklik link ini dan sample code dapat dilihat disini

6. Creating map visualizations with open data and Folium

Pada sesi ini Grace Tang, dengan cukup mengejutkan memberikan persentasi mengenai bagaimana menggunakan open data dari Singapore dan menggunakan visualisasi maps menggunakan folium. Dan lebih mengejutkan lagi, dari persentasi yang melakukan mapping lokasi MRT dan biaya hidup Grace dapat menentukan dimana daerah yang optimal untuk tinggal dan dekat dengan CBD di Singapore (Marina Bay)

Berikut adalah demo dari persentasi nya dan berikut adalah video dari persentasinya :

 

 

Masih ada banyak lagi persentasi yang keren dari conference kemarin, akan tetapi saya hanya menghiglight beberapa saja. Untuk persentasi lain bisa dilihat di: https://engineers.sg/episodes/search?search=PyConSG+2016 and once again credit to Engineers.SG yang memiliki qualitasi video persentasi yang sangat baik.

08:00AM @Lobby: Registration
09:00AM @Seminar Room 1: Keynote – Audrey & Daniel Roy Greenfeld – How to Write a Popular Python Library by Accident
10:00AM Breakfast
10:45AM Warpdrive, making Python web application deployment magically easy. Graham Dumpleton Using Python to Build a GIS Data Pipeline for Rural-Urban Classification Tung Whye Loon
11:30AM Design and implement a scalable and high performance tcp server with tornado Nhu Dinh Tuan Deep Learning With Python & Tensorflow Ian Lewis
12:00PM Lunch
01:00PM Using Artificial Life Simulation to Gain Insights into Contradictory Field Evidence Maurice Ling Python Pants – A build system for large codebases with multiple dependencies Angad Singh
01:45PM Visualising Machine Learning Models Amit Kapoor OSS @ Airbnb: Python Data Tools Fiona Tay
02:30PM Sentiment Analysis, its techniques and applications Mimansa Jaiswal Building a simple-to-use Database Management tool Chinab Chugh
03:15PM Tea-break
03:45PM Deep Learning Hands-on Workshop Martin Andrews Python Robotics for Education Max Ong Zong Bao

Hari 2

09:00AM Keynote: Dr. Yves J. Hilpisch – How Open Source, Open Data and the Cloud are Reshaping Finance Education and the Financial Industry
10:00AM Group Photo & Breakfast
10:45AM Customer Segmentation in Python Mao Ting Python in the MicroServices world Hari Krishnan
11:30AM music2vec: A smart music recommendation and discovery Laam Pham Deploying scalable Django application on AWS Lalit Nama
12:15PM Lunch
01:15PM Lightning-Talks
02:15PM Creating map visualizations with open data and Folium Grace Tang A tale of Ansible fanboy Pawan Darda
03:00PM Tea-break
03:45PM Machine Learning Pipeline using Luigi and Scikit Learn Atreya Biswas
PyCon Singapore 2016 it’s all about Python, Open Data, and Deep learning