Membedah Teknologi dan Mitos Pokémon Go

Kehebohan yang ditimbulkan oleh permainan Pokémon Go akhir-akhir ini memang cukup fenomenal sekaligus unik. Fenomenal karena melibatkan tidak hanya pemain (gamer), tapi bahkan sampai pejabat pemerintah (dari menteri – wakil presiden) ikut komentar atau mengeluarkan aturan/larangan. Umumnya karena kekhawatiran terhadap aspek keamanan, khususnya penyadapan data oleh pihak asing. Padahal, game ini belum di release secara resmi di Indonesia (Juli, 2016).

Unik, karena Pokémon Go pada dasarnya adalah sebuah permainan/game berbasis mobile apps. Seperti layaknya game lainnya, apps ini lebih ditujukan untuk menghibur dan menyenangkan penggunanya. Pemain game umumnya anak kecil – anak muda, bukan golongan pejabat dan orang tua :).

Tak kenal maka tak sayang, karena teknologi yang digunakan dalam game ini cukup inovatif (sehingga belum banyak dipahami), maka banyak timbul kesalah pahaman dan hoax. Mari kita bahas satu-satu teknologi yang digunakan berikut mitos yang menyertainya.

Lokasi

Permainan Pokémon Go merupakan game yang berbasis lokasi, artinya lokasi fisik dari pemain menentukan pola interaksi dengan aplikasi. Terdapat avatar (karakter dalam game yang merupakan representasi pemain) yang berjalan/berpindah sesuai posisi pemain. Interaksi berupa kemunculan karakter Pokemon, Pokestop, Gym dan lain-lain bisa disesuaikan dengan lokasi pemain tersebut. Dalam bahasa akademis, aplikasi ini termasuk kategori context-aware application.

Secara teknis, lokasi pemain didapatkan dari informasi GPS,  triangulasi sinyal WiFi, atau triangulasi sinyal menara seluler. Teknologi ini sebenarnya sudah banyak digunakan dalam aplikasi lainnya. Google Map, Waze, GO-JEK, Facebook, Path, Foursquare adalah beberapa contoh aplikasi berbasis lokasi.

Posisi kita tentunya akan dikirim ke server, untuk kemudian memberikan layanan yang sesuai. Contoh: GO-JEK akan mencatat lokasi pemesan, untuk memilihkan pengemudi ojek yang terdekat.

Seharusnya, kekhawatiran terhadap penggunaan informasi lokasi di Pokémon Go tidak lebih besar dibandingkan ketika menggunakan GO-JEK, Google Map, Garmin GPS dan lainnya. After all, teknologi lokasi yang digunakan sama. Perusahaan-perusahaan tersebut, untuk menjaga kepercayaan pelanggannya, tentunya memiliki kebijkan kerahasiaan data yang ketat.

Dari sudut privasi, saya lebih khawatir membagikan nomor handphone ketika mengisi formulir kartu kredit di Indonesia. Karena ujung-ujungnya dibagikan dan berakibat datangnya banyak telepon tidak jelas menawarkan produk asuransi dan kartu kredit lainnya.

Peta dan Pemetaan

Banyak berita hoax yang beredar bahwa Pokémon Go akan digunakan untuk melakukan pemetaan lokasi strategis perkantoran, pemerintahan dan militer. Well, Niantic (perusahaan pembuat Pokémon Go) tidak perlu melakukan pemetaan, karena mereka sudah memiliki petanya!

Pokémon Go menggunakan peta yang disediakan oleh Google Map. Peta tersebut terbuka di Internet. Pengembang aplikasi pihak ke-3 bisa memanfaatkannya melalui Google Map API.

Too little, too late – kalau kita mengkhawatirkannya sekarang :p

Google Map merupakan peta outdoor, diambil berbasis gambar satelit maupun kamera yang dipasang di pesawat. Tidak ada informasi indoor yang terdapat di dalamnya.

Bagaimana untuk pemetaan dalam ruang (indoor)? Secara teknis, pemetaan dalam ruangan lebih susah untuk dilakukan. Teknologi yang digunakan umumnya berdasarkan pengukuran jarak menggunakan laser, ultrasound maupun depth-camera. SLAM (simultaneous localization and mapping[1] merupakan salah satu algoritma, yang canggih sekaligus rumit, yang bisa digunakan untuk memetakan secara otomatis.

Penulis tidak melihat hardware yang digunakan Pokémon Go (mobile phone) dan aplikasinya mempunyai kemampuan untuk melakukan pemetaan indoor.

Kamera dan Augmented Reality

Salah satu teknologi terkini yang digunakan dalam permainan Pokémon Go adalah augmented reality (AR). Dengan teknik ini gambar digital akan ditambahkan (augmented) dalam pemandangan nyata yang ditampilkan oleh kamera.

Animal 4D+ merupakan salah satu apps produksi Octagon Studio Bandung [2] yang menggunakan teknik AR untuk aplikasi mereka.

Di media sosial beredar kabar bahwa gambar kamera yang digunakan dalam permainan, akan dikirimkan ke server Niantic, tanpa ijin. Untuk menguji hal tersebut, sebuah perusahaan bernama Applidium melakukan reverse engineering untuk mendapatkan kode sumbernya [3] (source code). Pada source code tersebut ternyata tidak ditemukan perintah untuk mengirimkan data gambar/video ke server Pokémon Go.

Bagaimana Menyikapinya?

Dari ulasan diatas bisa dilihat Pokémon Go merupakan permainan yang memanfaatkan teknologi yang cukup inovatif. Karena kebaruannya, maka timbul mitos dan kekhawatiran yang sebenarnya agak berlebihan maupun tidak berdasar. Teknologi tidak bisa dan tidak perlu dibendung. Sebaiknya kita ambil sisi positifnya, sambil membatasi efek negatif yang mungkin timbul.

Salah satu efek positifnya adalah pemain game ini akan didorong untuk lebih aktif secara fisik (bergerak dan berjalan) untuk berburu Pokemon. Interaksi dan komunikasi sosial dengan sesama pemain pun difasilitasi oleh permainan ini. Sudah bermunculan juga komunitas pemain Pokémon Go di Indonesia.  Potensi yang lain adalah permainan ini bisa digunakan untuk sarana promosi, bisa untuk promosi pariwisata maupun usaha/bisnis komersial.

[1] H. Durrant-Whyte, Simultaneous localization and mapping, IEEE Robotics & Automation Magazine, Volume 13

[2] https://www.octagonstudio.com/4d/

[3] https://applidium.com/en/news/unbundling_pokemon_go/

 

Single Cluster Hadoop pada Virtual Box

Tutorial ini menjelaskan instalasi single cluster Hadoop 2.0 di Ubuntu 14.04 diatas VirtualBox pada laptop Mac OS 10.10. Tutorial ini salah satunya diilhami dari artikel ini. Instalasi Hadoop di atas VBox memudahkan pembelajaran, baik single maupun multi node cluster.

VirtualBox dan Java

Konfigurasi Ubuntu dan install Java. Instalasi (lihat disini untuk detail) diperlukan karena pemrograman Map Reduce pada Hadoop terutama menggunakan Java.

  • Login di Ubuntu server dan update paket index
sudo apt-get update
  • Periksa bila java sudah terpasang
java -version
  • Bila belum terpasang, install Java
sudo apt-get install default-jre
  • install java-jdk (untuk kompilasi java application)
sudo apt-get install default-jdk
  • update ‘JAVA_HOME’ environment variable (dibutuhkan oleh beberapa program)
sudo update-alternatives --config java
sudo nano /etc/environment
JAVA_HOME=“/usr/lib/jvm/java-7-openjdk-i386/"
source /etc/environment 
echo $JAVA_HOME

Instalasi Hadoop

  • Unduh Hadoop, salah satunya dari mirror site spt dibawah. Contoh dibawah hadoop diunduh langsung ke Ubuntu.
wget -o http://mirrors.advancedhosters.com/
apache/hadoop/common/stable/hadoop-2.2.0.tar.gz
tar -xvzf archive.tar.gz --owner root --group root --no-same-owner 2>&1 > tar2.log
  • Buat hadoop group dan user (avoid security issue)
sudo addgroup hadoop sudo adduser --ingroup hadoop hduser
sudo su hduser
  • Menghilangkan warning start-dfs.sh
export HADOOP_OPTS="$HADOOP_OPTS -XX:-PrintWarnings -Djava.net.preferIPv4Stack=true"
  • Membuat SSH-certificate
ssh-keygen -t rsa -P

(terms setting default) Identifikasi kita sudah disimpan  /home/hduser/.ssh/id_rsa. Public key tersimpan di /home/hduser/.ssh/id_rsa.pub

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys 
ssh localhost
  • ubah owner dari file hadoop
cd /usr/local
sudo chown -R hduser:hadoop hadoop
  • Setup environment variable
 
cd ~
nano .bashrc

Copikan di akhir file

###Hadoop variables
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-i386
export HADOOP_INSTALL=/usr/local/hadoop
export PATH=$PATH:$HADOOP_INSTALL/bin
export PATH=$PATH:$HADOOP_INSTALL/sbin
export HADOOP_MAPRED_HOME=$HADOOP_INSTALL
export HADOOP_COMMON_HOME=$HADOOP_INSTALL
export HADOOP_HDFS_HOME=$HADOOP_INSTALL
export YARN_HOME=$HADOOP_INSTALL
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_INSTALL/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_INSTALL/lib"
###end of paste
  • buat directory untuk data
cd~
mkdir -p mydata/hdfs/namenode
mkdir -p mydata/hdfs/datanode

Konfigurasi Hadoop

  • Update JAVA_HOME
cd /usr/local/hadoop/etc/hadoop
nano hadoop-env.sh
export JAVA_HOME=${JAVA_HOME}
ubah ke
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-i386
  • verifikasi versi Hadoop
hadoop version

Bila tidak ada pesan error, berarti hadoop sudah sukses terinstalasi. Sebelum bisa dijalankan, Hadoop terlebih dulu perlu dikonfigurasi.

 nano core-site.xml

paste setting berikut diantara configure tag

  <property>
    fs.default.name
    hdfs://localhost:9000
  </property>
 nano yarn-site.xml

paste setting berikut diantara configure tag

<property>
  yarn.nodemanager.aux-services
  mapreduce_shuffle
</property>
<property>
   yarn.nodemanager.aux-services.mapreduce.shuffle.class
   org.apache.hadoop.mapred.ShuffleHandler  
</property>

save dan close file.

mv mapred-site.xml.template mapred-site.xml
nano mapred-site.xml

Paste setting berikut diantara configure tags:

<property>
   <name>mapreduce.framework.name</name>
   <value>yarn</value>
</property>

nano hdfs-site.xml

Paste setting berikut diantara configure tags:

<property>
   <name>dfs.replication</name>
   <value>1</value>
 </property>
 <property>
   <name>dfs.namenode.name.dir</name>
   <value>file:/home/hduser/mydata/hdfs/namenode</value>
 </property>
 <property>
   <name>dfs.datanode.data.dir</name>
   <value>file:/home/hduser/mydata/hdfs/datanode</value>
 </property>

Simpan dan tutup file.

Format Namenode

hdfs namenode -format

Memulai Hadoop Services

start-dfs.sh
....
start-yarn.sh
....
jps

Jika semuanya lancer, services dibawah akan berjalan

DataNode
ResourceManager
Jps
NodeManager
NameNode
SecondaryNameNode

Menguji Hadoop (menghitung nilai dari pi)

$cd /usr/local/hadoop
$hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0.jar pi 2 5

Number of Maps  = 2
Samples per Map = 5
13/10/21 18:41:03 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform...
using builtin-java classes where applicable
Wrote input for Map #0
Wrote input for Map #1
Starting Job
13/10/21 18:41:04 INFO client.RMProxy: Connecting to ResourceManager at /0.0.0.0:8032
13/10/21 18:41:04 INFO input.FileInputFormat: Total input paths to process : 2
13/10/21 18:41:04 INFO mapreduce.JobSubmitter: number of splits:2
13/10/21 18:41:04 INFO Configuration.deprecation: user.name is deprecated. Instead, use mapreduce.job.user.name
...

Hasil test seharusnya mirip seperti dibawah:

Job Finished in 24.815 seconds (number rounded to 1000th decimal)
Estimated value of Pi is 3.60000000000 (or similar number)

Selamat mencoba!

Integrasi Sistem Informasi

Mengembangkan dan menerapkan sebuah sistem informasi (SI) tidak mudah. Selain tantangan teknis, permasalahan non-teknis akan banyak dijumpai dalam proses tersebut.

Pengembangan SI di lingkup universitas (baca: UGM) juga menjumpai banyak tantangan. Kesulitan utama adalah, dalam sejarahnya, banyak unit (fakultas/direktorat) yang sudah mempunyai aplikasi sendiri-sendiri (berikut database nya).

Hal ini menyebabkan terbentuk banyak pulau data yang tidak saling terhubung. Disintegrasi informasi menyebabkan sumbangan SI terhadap proses bisnis di UGM menjadi tidak maksimal. Evidence-based policy making (pengambilan keputusan dengan berdasar data) juga sulit dilakukan.

Dalam mengintegrasikan SI ada dua pilihan: menggunakan satu aplikasi & database, atau mengintegrasikan yang sudah ada menjadi bentuk service (layanan). Arsitektur SI di UGM bisa dilihat pada gambar di bawah. Webservice merupakan platform yang digunakan untuk mengintegrasikan aplikasi. Data warehouse digunakan untuk agregasi data lintas aplikasi.

 

Untuk SI yang sudah terlanjur ada maka pilihan kedua (dalam bentuk webservice) ditempuh. Tapi untuk aplikasi baru maka pendekatan pertama yang ditempuh.

Saat ini UGM sedang mengerjakan 24 inisiatif pengembangan dan integrasi SI. Penerapan SI berhasil bila sudah selaras dengan proses bisnisnya. SI akan membuat proses bisnis menjadi lebih efektif dan efisien.

 

Spam: Sampah Informasi

Spam merupakan masalah utama di dunia per-email-an. Di tahun 2013 diperkirakan dari sekitar 500 milyar email yg dikirim perhari, 80% nya adalah spam atau 400M/hari! Jumlah sampah informasi yang masif.

Sudah ada teknologi anti-spam untuk membantu menyaringnya. Walau begitu, secara rata2 masih ada sekitar 20% yang masuk ke email pengguna. Anti spam memang tidak sempurna, tapi user bisa membantu untuk memperbaiki kinerjanya. Hal ini dikarenakan anti spam bisa dilatih.

Bila ada spam masuk ke mailbox, maka bisa ditandai (mark) sebagai ‘spam’. Atau ada email beneran yang dimasukkan sebagai spam, bisa ditandai sebagai ‘not spam‘ atau dipindahkan ke inbox. Spam filter umumnya menggunakan Bayesian probability. Semakin banyak dilatih, maka akan semakin baik performanya. Practice make perfect.

Selama mengamati kinerja anti-spam milik UGM beberapa bulan terakhir, banyak email berasal dari domain milik universitas yang akan dikategorikan sebagai spam. Termasuk domain dari bbrapa PT ternama di Jakarta, Bandung dan Surabaya. Dari beberapa universitas di eropa pun begitu. Artinya, beberapa akun dari domain universitas tersebut pernah/sering digunakan untuk mengirimkan spam.

Email dari UGM juga bukannya imun. Beberapa user sering mengeluhkan email yang dikirim bounching/ditolak. Hal ini dikarenakan ada user UGM yg akunnya terbajak, dan digunakan untuk mengirimkan spam. Akibatnya reputasi domain ugm.ac.id menjadi terpengaruh dan oleh server penerima ditolak. Ibarat akibat nila setitik rusak susu sebelanga.

Bagaimana mencegah akun supaya tidak terbajak? Pertama, gunakan password yang aman (kombinasi huruf besar/kecil & angka, semakin banyak karakter juga semakin aman). Kedua, waspada terhadap website phising, yang berniat membajak login kita.

Tapi secanggih apapun anti spam yang digunakan, mereka tetap mesin yang kemampuannya terbatas. Otak, pikiran dan pengalaman manusia tetap merupakan filter terbaik. Jadi, tetap percayakan pada common sense anda dalam menghadapi spam yang ada.

Lihat video ini juga tentang tutorial anti spam.

UGM Gone Google

Seperti tertulis di post sebelumnya, UGM berusaha meningkatkan kualitas beberapa layanan TI dasarnya (jaringan, Internet, email). Kualitas layanan dasar ini merupakan pondasi untuk ber-inovasi dibidang TI lainnya.

Email merupakan salah satu layanan utama yang paling banyak digunakan. Selama masa2 awal di PSDI, saya mendengar beberapa hal yang sering dikeluhkan ttg email seperti spam, bouncing, keterbatasan kuota dan email yang sering terlambat sampai. Sebenarnya keterbatasan diatas bisa ditangani dengan user yang lebih pro-aktif, seperti rajin mendelete mailbox nya, menggunakan POP3, menggunakan password yang sulit dibajak dll. Tapi seperti layaknya penggunaan teknologi yang lain, edukasi merupakan hal yang tidak mudah dan tidak murah (waktu, tenaga dan juga biaya). Kesulitan akan bertambah bila yang diedukasi adalah dosen ;). Selain itu, user punya benchmark layanan email seperti Yahoo, Gmail, Hotmail dll.

Ditengah keinginan untuk terus berinovasi ditengah keterbatasan yang ada, tawaran penggunaan Google Apps for Education menjadi menarik. Mereka menawarkan layanan email menggunakan server dan anti spam mereka, juga kapasitas yang besar (sampai 30 Gb), dan layanan yang lain (Drive, Hangout, Calendar dll).

Namun demikian, salah satu hal yang terbersit ketika mendengar penawaran dari representatif Google adalah tentang kepemilikan data dan privacy. Pengguna biasanya khawatir tentang 2 hal utama tersebut.

Dari diskusi terungkap bahwa Google, dalam term & condition nyamenjamin 2 hal tersebut: data tetap milik pengguna dan privacy dilindungi. Hal ini terlihat dengan tidak adanya data mining  & tidak ada iklan di email.

Dengan menimbang segala kelebihan dan kekurangannya akhirnya diputuskan untuk menggunakan GApps di UGM semenjak maret 2013. Diantara universitas besar di Indonesia, UGM termasuk pelopor yang berani. Sampai tulisan ini dibuat, banyak pengguna yang mengapresiasi langkah tersebut, dan ribuan civitas akademika menggunakannya. Bila pengguna komersial membayar sekitar $50/tahun/user, maka dengan 100.000 akun yg diberikan free ke UGM, maka kerjasama ini bernilai 100.000 x $50/tahun = $5 juta ~ 50 milyar rupiah/tahun !

Secara teknis, salah satu yang membedakan implementasi dgn yg lain adalah server email existing di UGM  tetap dijalankan. Email yang diterima akan dikirim ganda. Sehingga bisa dikatakan sistemnya adalah hybrid cloud. Dengan redundasi tentunya akan meningkatkan kehandalan.

Enjoy!

Note: untuk mengakses GApps, login di http://ugmail.ugm.ac.id.