Parahnya Internet mobile di Indonesia

Setelah lebih dari seminggu di Indonesia dalam rangka liburan, sekarang saya mulai mengerti berbagai komplain terhadap internet di sini. Karena saya hanya memakai koneksi mobile, maka di judul ini saya sebutkan “mobile”, koneksi yang lain mungkin lebih baik (tapi mungkin juga tidak).

Yang sudah saya ketahui dan alami dari dulu adalah blokir DNS. Berbagai situs yang sering saya kunjungi (reddit, imgur) diblokir. Tahun sebelumnya saya memakai dnscrypt untuk membypass ini.

blokir

Berikutnya adalah iklan yang disisipkan di koneksi HTTP. Bahkan ini mempengaruhi sebagian aplikasi, contohnya AliExpress. Kadang sisipan ini membuat fungsionalitas tidak berjalan.

Iklan yang disisipkan pun sepertinya random, tidak kontekstual dan tidak memperhatikan tracking apapun (iklan di facebook dan situs lain biasanya disesuaikan dengan situs yang kita kunjungi atau pencarian yang kita lakukan). Contohnya ini iklan rokok, padahal saya tidak merokok sama sekali (bagaimana jika iklan ini dilihat anak-anak?)

Screenshot_2016-07-03-06-14-56

Salah satu client perusahaan tempat saya bekerja memakai sistem IP whitelisting untuk meningkatkan keamanan aplikasi. Setidaknya dengan cara ini attacker harus bisa masuk ke IP whitelist sebelum bisa melakukan serangan apapun terhadap aplikasi. Waktu saya diminta melakukan pengecekan singkat (karena ada sesuatu yang saya tinggalkan sebelum liburan), saya memasukkan IP publik saat ini ke whitelist, tapi ketika mencoba lagi pesannya tetap sama “IP Anda tidak ada di whitelist”.

Sepertinya ini terjadi karena koneksi sangat tidak stabil, sehingga sering kali proses connect/reconnect terjadi dan saya sering mendapatkan IP baru.

Untungnya tahun ini saya sudah mempersiapkan diri: saya sudah mempersiapkan koneksi VPN dengan OpenVPN. Instalasi di sisi server mudah dilakukan dengan OpenVPN road warrior installer for Debian, Ubuntu and CentOS. Client OpenVPN tersedia untuk Android, iOS, Windows, Linux, jadi mudah melakukan koneksi dari device mana saja.

Dengan VPN, persoalan blokir bisa dibypass, iklan juga tidak akan muncul. Saya tidak memakai layanan VPN dari 3rd party karena tidak mau membayar ekstra untuk VPN yang jarang saya akses, sedangkan VPN ini bisa dilakukan via server yang sudah saya sewa. Kelebihan lainnya: saya bisa menginstall proxy server dengan adblocker di server saya supaya koneksi bisa lebih lancar dan cepat. Server saya ini juga menyelesaikan masalah untuk memiliki fixed public IP (karena pasti exit node-nya hanya satu IP saja).

Screenshot_2016-07-03-06-39-20

Dari pengamatan, penggunaan VPN ini tidak terlalu mempengaruhi browsing sehari-hari karena walaupun ada overhead koneksi ke server VPN, paket data akan dikompres (kompresi ini bagian dari protokol VPN). Jika saya ingin mendownload sesuatu dan tidak diblokir, biasanya saya matikan VPN-nya.

Sebagai tambahan: browser opera (saat ini baru versi developer) juga memiliki fitur VPN built in, tapi hanya bisa dilakukan di private mode (jadi agak repot untuk browsing yang perlu login karena akan terlogout lagi/tidak diingat).

HP Lama untuk IOT

Setelah membaca blognya pak Budi Raharjo yang mempertanyakan apakah HP lama bisa untuk IOT (Internet Of Things), saya ingin berkomentar , tapi karena panjang jadi saya tulis saja jadi posting blog tersendiri.

cimg1988

HP sudah ada cukup lama, saya memakainya sejak 1999, dan sekarang sudah ada banyak generasi HP. Generasi awal biasanya bisa dimanfaatkan sebagai modem SMS, baik menggunakan kabel data serial ataupun FBUS/MBUS. LCD Nokia tertentu (misalnya 5110) bisa dikanibal untuk menjadi display (bahkan sekarang LCD ini masih dijual di Aliexpress dan berbagai situs lain). Generasi berikutnya yang mendukung GPRS bisa dipakai menjadi modem.

Dulu sempat ada usaha juga membuat firmware alternatif untuk Nokia tertentu. Dengan firmware tersebut, teorinya kita bisa menggunakan ponsel sebagai “otak” sebuah benda iOT. Untuk ponsel berbasis TI Calypso (misalnya Motorolla C115/123/140/155, Sony Ericsson J100i) firmware dari OsmocomBB bisa digunakan (proyek ini masih aktif).

Sekilas ponsel yang mendukung J2ME bisa diprogram untuk mengendalikan benda lain via bluetooth/IR/Internet. Pada praktiknya ini sulit karena biasanya tiap kali akan melakukan koneksi, user akan ditanya dulu: boleh atau tidak. Jaman dulu sebuah aplikasi harus minta ijin user untuk melakukan koneksi apapun. Supaya bisa diset agar tidak minta ijin, kita perlu menandatangani secara digital (inipun tidak universal, signing dengan certificate dari pihak tertentu kadang hanya berlaku di beberapa merk HP saja).

Ponsel dengan OS Symbian, Palm OS (sempat ada beberapa smartphone berbasis PalmOS), Windows Mobile cukup terbuka untuk bisa diprogram melakukan apa saja. Saya dulu pernah memprogram driver untuk Windows Mobile dan tidak perlu code signing.

Ponsel dengan OS modern seperti Android dan iOS bisa dimanfaatkan dengan dua cara. Pertama ponsel bisa menjadi otak, dan pengendalian benda bisa dilakukan dengan bluetooth, WIFI, USB dan bahkan NFC. Koneksi Bluetooth iOS hanya bisa dilakukan di versi baru dengan BLE (Blutooth Low Energy) sedangkan bluetooth di Android bisa dikoneksikan ke modul hardware murah (sekitar 4 USD). Beberapa ponsel Android mendukung mode Host sehingga bisa dihubungkan ke device USB apa saja.

Pemanfaatan kedua adalah memanfaatkan sensor di ponsel (yang jumlahnya sangat banyak) dan datanya distream ke Raspberry atau benda lain. Bagian ini belum saya coba, tapi sudah ada saudara yang mencoba:

Using phone’s accelerometer x & y axis as controller #raspberrypi

A video posted by Andi Dinata (@mdinata) on

Sejujurnya: meskipun ponsel dan hardware lama masih bisa dimanfaatkan, saya lebih suka membeli hardware baru saja. Dokumentasi lebih banyak, harga juga relatif terjangkau, jadi saya tidak mengorbankan banyak waktu ataupun biaya. Tapi jika Anda punya banyak ponsel yang ingin dimanfaatkan, mungkin beberapa hal yang saya share ini bisa berguna.

Facebook Instant Articles dan Google Accelerated Mobile Pages

Akhir-akhir ini ketika membuka Facebook app mobile, semakin banyak berita atau artikel yang bisa dibaca secara instan. Ketika kita men-tap linknya, artikel langsung muncul instan di dalam aplikasi Facebook (bukan di browser). Artikel semacam ini memiliki versi Instant Articles yang disimpan oleh Facebook, dan ada simbol petir di kanan atas link untuk menunjukkan hal tersebut.

Screenshot_2016-06-15-06-53-54

Tujuan FB membuat Instant Articles adalah agar orang bisa lebih nyaman membaca artikel, dan tidak meninggalkan aplikasi FB ketika membaca artikel. Ketika Instant Articles diperkenalkan dan spesifikasinya belum dibuka untuk umum, sebagian orang sempat mengkhawatirkan bahwa ini bisa “memecah belah” web dengan artikel yang hanya bisa diakses dari FB saja. Ternyata fitur ini memakai teknologi yang terbuka.

Lanjutkan membaca “Facebook Instant Articles dan Google Accelerated Mobile Pages”

Catatan Apps: Android

Sejak jaman dulu saya suka memakai HP yang bisa diinstall aplikasi. Saya dulu bahkan membeli SL45i, HP pertama dengan J2ME. Sejak jaman dulu sudah ada banyak aplikasi saya coba baik itu di J2ME, Symbian, Blakcberry, iOS, Windows Mobile maupun Android. Tidak seperti aplikasi PC yang mudah sekali untuk kembali bernostalgia dengan DOSBox, VirtualBox dan aplikasi sejenis lainnya, agak sulit kembali mengenang aplikasi mobile yang dipakai jaman dulu. Jadi seri posting ini hanya sekedar jadi catatan aplikasi yang saya pakai sekarang untuk dikenang di masa depan.

Screenshot_2016-06-14-15-55-22

Dulu saya sangat rajin mengoprek Android, tapi sekarang lebih berfokus ke bagian securitynya (terutama pentesting, atau kadang iseng membongkar exploit seperti ini). Ngoprek yang saya maksud mulai dari mengcompile ulang kernel, mengcompile ulang aplikasi open source (dengan modifikasi saya), sampai mengcompile seluruh ROM juga (waktu dulu masih memakai Nexus).

Sekarang ini HP Android yang saya pakai ada dua: Samsung Note 4 (HP Utama), dan Android One (IQ Mobile II) untuk dioprek (misalnya bisa untuk beta test Android N). Lanjutkan membaca “Catatan Apps: Android”

Pi Zero, Roseapple Pi, Orange Pi PC, dan Raspberry PI 3

Akhir-akhir ini selain Raspberry Pi 1 & 2 yang sudah saya miliki (plus Beaglebone XM yang sudah saya punya dari dulu), saya menambah beberapa Single Board Computer (SBC) lagi.

Pi Zero

Benda pertama adalah Raspberry Pi Zero. Semestinya ini adalah SBC termurah (5 USD saja), tapi sampai saat ini setiap kali ada stock langsung habis. Beberapa penjual di eBay bahkan menjual dengan harga sampai 60 USD. Penjual online resmi juga banyak yang memanfaatkan kelarisan Pi Zero ini dengan melakukan bundling (harus membeli bersama kit yang harganya lebih dari 20 USD).

20151203_123110
Majalah MagPi

Saya beruntung karena bisa mendapatkan Pi Zero dari majalah MagPi edisi 40. Saya segera memesan majalah ini ketika dilaunch (Majalahnya 10 USD, ongkir 5 USD).

Lanjutkan membaca “Pi Zero, Roseapple Pi, Orange Pi PC, dan Raspberry PI 3”

SSH Tunneling dan Internet Gratis

Saat ini sepertinya semua developer sudah memakai SSH sehari-hari. Sebagian mungkin sudah mengenal beberapa fitur ekstra SSH, tapi kebanyakan tidak tahu fitur lengkapnya. Wajar saja sih, meski RFC untuk SSH ini singkat (terbagi dalam beberapa RFC), ada banyak fitur di luar RFC yang diimplementasikan oleh berbagai software SSH. Sampai-sampai ada beberapa buku yang khusus hanya membahas SSH saja.

Di tulisan ini, saya tidak akan membahas semua fitur SSH, hanya beberapa fitur yang menarik yang berhubungan dengan port forwarding, serta pembahasan bagaimana SSH ini bisa menjadi jalan untuk internet gratis atau tanpa restriksi.

Fitur paling dasar yang dikenal orang adalah login ke server lain, dan berikutnya mungkin melakukan scp atau sftp ke server lain untuk mentransfer file. Fitur menarik berikutnya adalah X11 forwarding yang untuk mengakses aplikasi GUI di server (unix) lain.
client-server

SSH mendukung multi channel dalam satu koneksi, dan ini bisa dimanfaatkan untuk TCP/IP forwarding (mengenai ini bisa dibaca di RFC 4254). Saya akan jelaskan beberapa kegunaan forwarding ini. Channel yang dibentuk oleh mekanisme forwarding ini disebut juga sebagai tunnel.

Lanjutkan membaca “SSH Tunneling dan Internet Gratis”

Harga kemalasan (beberapa dollar saja)

Tulisan ini bukan tentang diskusi filosofis mengenai harga kemalasan, tapi mengenai harga komponen elektronik dari China yang begitu murah yang dalam satu hal membuat orang jadi malas, tapi dalam hal lain membuat orang jadi rajin.

Waktu belajar elektronik sekitar 2007, harga berbagai kit elektronik masih mahal. Beberapa tahun kemudian, Arduino mulai populer (terutama yang UNO), tapi masih sedikit clonenya, dan harganya yang resmi masih sekitar 30-65 USD/board belum termasuk ongkos kirim. Arduino jadi sekedar alat belajar dan prototyping, tidak untuk implementasi akhir. Ketika ingin men-deploy yang sudah kita buat, biasanya kita akan memprogram sebuah chip Atmega yang dibeli terpisah untuk menghemat karena harga sebuah chip Atmega hanya beberapa dollar saja, apalagi jika yang kita buat itu tidak terlalu penting, misalnya komponen mainan.

Fast forward tiga tahun yang lalu: clone Arduino UNO sudah sampai titik harga 9.9 USD. Dan setahun belakangan ini bahkan bisa didapatkan dengan harga sekitar 3 USD saja termasuk ongkos kirim.

Sekarang harga clone Arduino udah murah banget. Satu board harganya 2.87 USD dengan ongkir 1.37 USD. Ongkir ini per…

Posted by Yohanes Nugroho on Wednesday, January 28, 2015

Sekarang malas sekali memprogram chip microcontroller jika hanya ingin memakainya di rumah, pakai saja langsung Arduino Uno-nya, lalu beli lagi yang baru. Jika butuh yang ukuran lebih kecil (misalnya mungkin karena ingin dimasukkan mainan, sedangkan Uno terlalu besar) maka kita bisa membeli versi Pro Mini, yang harganya sekitar 17 USD untuk 10 board. Untuk produksi massal, tentunya microcontroller saja tanpa board akan tetap lebih murah dan reliable. Lanjutkan membaca “Harga kemalasan (beberapa dollar saja)”