Catatan Hosting 2017

Setiap beberapa tahun saya pindah hosting atau upgrade ke server yang lebih baik. Saya menuliskan catatan teknis ini sebagai pengingat di masa depan mengenai berbagai solusi hosting yang pernah saya coba, dan perkembangannya dari masa ke masa. Bisa dilihat di arsip blog ini kategori hosting, dari mulai paket hosting 5000 rupiah sebulan waktu blog ini dimulai, sampai sekarang memakai server sekitar dengan biaya sekitar 30 Euro/bulan.

Terakhir kali pada tahun 2015 saya menyewa dedicated server di online.net, dan sejauh ini semua berjalan dengan baik. Di awal tahun ini saya masih memakai provider hosting yang sama (online.net), tapi saya mengupgrade ke server yang lebih baik: 1x Intel® Xeon® D-1531 dengan RAM 32 GB dan SSD 2 x 250 GB (30 euro per bulan). Untuk keperluan hosting web saja, sebenarnya ini agak berlebihan. Saya memakai server ini juga untuk keperluan lain: hosting git, server VPN, server untuk pentest, server untuk Jupyter Notebook, dll.

Salah satu software yang banyak bugnya adalah WordPress dan berbagai extension dan themenya. Karena web ini dan berbagai situs yang saya miliki hanyalah situs pribadi, saya tidak melakukan hardening karena sebagian besar membuat situs menjadi kurang nyaman dipakai. Contohnya: halaman login bisa disembunyikan, tapi akan memperumit setting beberapa software untuk blogging dari desktop.

Server ini cukup powerful, jadi saya bisa menjalankan beberapa Virtual Machine. Sebagai kompromi antara keamanan dan kenyamanan, saya membuat satu VM khusus untuk semua website saya. Tiap website diisolasi  dengan menggunakan Docker (satu domain menggunakan satu container). Dengan docker, jika satu website ternyata jebol, maka  tidak akan mempengaruhi website lain. Untuk menambah keamanan, saya juga memakai cloudflare (versi gratis).

Lanjutkan membaca “Catatan Hosting 2017”

Sega Pico

Di Chiang Mai ada beberapa toko yang menjual barang bekas dari Jepang. Barang-barangnya dijual 300 baht per kilogram. Kadang kami iseng ke sana, biasanya mencari mainan. Seminggu lalu ketika pergi ke sana ada satu benda yang menarik perhatian saya.

Isinya utamanya adalah keyboard ini, dan ada sesuatu yang seperti buku, dan seperti catridge. Segera saya Googling mengenai Sega Pico (dari covernya ada tulisan “Sega Toys” dan “Pico”). Ternyata ini adalah salah satu game untuk Sega Pico. Saya cek konektor keyboard ini adalah PS/2 biasa, jadi tanpa consolenya pun pasti bisa dipakai sebagai keyboard komputer. Kasus terbaik: keyboardnya punya mapping standar untuk alfabet inggrisnya, kasus terburuk tinggal bikin mapper dengan Teensy atau microcontroller lain.

Benda ini membuat saya penasaran: apakah ada console Sega Pico juga di toko ini. Setelah mencari-cari, ternyata ada, walau ternyata sangat berat,  sekitar 3kg. Untungnya pemilik tempat ini tidak strict dengan harganya, jadi banyak yang bisa ditawar. Lanjutkan membaca “Sega Pico”

Logic Analyzer

Logic analyzer adalah instrumen untuk melihat dan mencatat state dari sebuah sistem atau sirkuit digital. Penjelasan yang lebih lengkapnya ada di Wikipedia, di posting ini saya hanya ingin membahas kegunaan praktis Logic Analyzer untuk pemula elektronik.

Secara mudahnya: dengan logic analyzer kita bisa melihat di waktu t apakah sebuah signal sedang dalam kondisi on/off (high/low atau 1/0). Dengan software tertentu (atau dengan software buatan sendiri) kita bisa mendecode signal 0/1 menjadi bentuk yang bisa kita mengerti.

Debugging

Bentuk debugging paling sederhana yang bisa dilakukan dengan logic analyzer adalah ini: jika kita mengeset nilai output sebuah pin, benarkah nilainya berubah? mungkin saja kita lupa mengeset mode pin menjadi output, mungkin salah nomor pin karena lupa mengupdate kode (atau mungkin salah modifikasi library milik orang lain).

Sebaliknya kita juga bisa mendebug input: kenapa hasil pembacaan sensor digital tidak terbaca? apakah sensornya memang tidak mengirimkan apa-apa, atau kode yang telah dibuat untuk membaca ternyata masih salah? (salah pin, salah mode, dsb).

Jika kita memakai protokol seperti SPI, I2C, UART, dan memilih decode yang tepat, kita juga bisa melihat apakah data yang kita kirimkan atau yang kita terima sudah benar (misalnya dalam kasus I2C: alamat device mungkin salah).

Selain untuk mendebug data input dan output, kita juga bisa mendebug timing. Dengan software tertentu, kita bisa bisa melihat jarak waktu secara visual.

Selain untuk mendebug sebuah masalah, secara umum logic analyzer ini bisa dipakai untuk belajar. Dengan melihat langsung secara visual signal SPI atau I2C, kita akan lebih mudah mengerti protokol-protokol tersebut. Lanjutkan membaca “Logic Analyzer”

Oprekan akhir pekan: RTL-SDR GPS, 3D Printer, dll

Sekarang saya akan berusaha untuk rajin menceritakan hack/oprekan tiap akhir pekan, walau kadang ada juga hal-hal yang saya lakukan di hari kerja. Kali ini saya akan menuliskan tentang menerima raw GPS signal dengan RTL SDR, 3D printer, pelajaran elektronik untuk Jonathan, dan beberapa catatan kecil.

Menerima Raw GPS signal dengan RTL-SDR

Receiver GPS sekarang ini bisa dibeli dengan harga kurang dari 10 USD. Dengan receiver seperti itu, kita akan langsung mendapatkan data (via serial/USB) dalam format NMEA yang bisa dengan mudah didecode. Meskipun data mentah ini kelihatan sebagai sesuatu yang low level, ini sebenarnya sudah sangat high level.

Saya tertarik pada signal GPS yang low level, yaitu signal langsung dari satelit. Di masa depan, saya berencana spoofing signal GPS (seperti misalnya di artikel ini), sebelum melakukan itu dengan hardware yang mahal, saya memutuskan untuk memahami dulu signal GPS. Sekarang saya memulai dengan hardware murah dari rtl-sdr.com. Harganya 25 USD termasuk ongkos kirim, ini murah dibandingkan dengan hardware SDR yang bisa transmit (>150 USD).

Lanjutkan membaca “Oprekan akhir pekan: RTL-SDR GPS, 3D Printer, dll”

Media Center dengan PC Windows

Saya baru saja mensetup Windows 10 di Mini PC sebagai media center (HTPC/Home Theater PC),menggantikan Raspberry Pi. Mini PC yang saya pilih adalah PC MeLE PCG03, Intel Bay Trail Z3735F dengan RAM 2GB dan eMMC 32GB. Harganya 109 USD, agak lebih mahal dari Mini PC sejenis tapi sudah menyertakan license Windows 10 Home resmi dan memiliki port ethernet.

20161028_185445

Tadinya Raspberry Pi dengan software OSMC sudah cukup karena bisa mengakses konten di server (via protokol SMB), dan memainkan file video 1080p. TV saya cuma bisa 1080p, jadi belum peduli dengan konten 4K. Raspberry Pi ini juga bisa dipakai menonton TV dengan streaming dari satellite receiver. Lanjutkan membaca “Media Center dengan PC Windows”

Review Osmo

Di tulisan ini saya akan mereview Osmo, sebuah mainan edukasi berbasis augmented reality untuk iPad. Dengan osmo, kita bisa bermain matematika, huruf (spelling), tangram, coding, dan menggambar dengan benda fisik di depan iPad kita (tidak dengan menyentuh layar). Osmo ditujukan untuk anak usia 4-11 tahun, tapi bagian menggambarnya cocok untuk usia berapa saja.

Untuk bermain Osmo kita perlu membeli kit, bagian utamanya adalah sebuah docking dan cermin yang ditempel menutupi kamera iPad. Sebagian sistem cermin ini akan menutupi ujung kamera dengan warna merah, jadi game osmo bisa mendeteksi kalau cermin sudah terpasang benar. Saya membeli kit yang saat itu paling lengkap: Wonder Kit (145 USD). Kami membeli kit ini dua minggu lalu dan sampai minggu lalu, jadi sudah beberapa hari dipakai sebelum review ini dituliskan.

Material dan Packaging

Packaging Osmo menurut saya sangat baik. Tiap kotak memiliki magnet jadi bisa distacking dengan mudah dan tidak akan jatuh. Base untuk iPad dan cerminnya terbuat dari plastik, dan ada magnet supaya kita bisa meletakkan cerminnya di atas base dan tidak jatuh ketika kita tidak memakainya.

20161025_082743

Secara teori, bagian words, tangram dan number bisa kita print sendiri karena tidak memiliki bagian aneh (hanya seperti di cetak di kertas/plastik tebal saja). Bagian coding cukup unik karena bagian arah panahnya bisa diputar dan sifatnya magnetik (bagian yang bisa disambung akan mudah menempel)

Akurasi

Satu hal yang saya takutkan adalah jika ternyata Osmo ini tidak bisa mengenali dengan baik objek-objek yang ada di depan iPad. Ternyata akurasinya sangat baik asalkan objeknya tidak tertutupi tangan. Menurut saya akurasi ini bisa dicapai karena beberapa hal:

  • Osmo hanya mendukung iPad, yang dimensinya sudah diketahui dengan eksak
  • Set angka dan huruf standar
  • Posisi iPad statik (pada banyak mainan augmented reality berbasis kamera, gambar kadang hilang dan muncul lagi karena posisi kamera berubah)

Saya juga bereksperimen: saya memfoto satu huruf dan berusaha meletakkan fotonya di depan Osmo. Jika ukurannya tidak pas, Osmo tidak akan mengenali huruf tersebut, jika pas (dengan zoom in/out) maka Osmo akan mengenalinya. Dari percobaan ini artinya:

  • Jika ada bagian yang hilang, kita bisa mencetak ulang (kecuali coding, karena ada panah yang bisa diputar)
  • Jika ada game baru yang tidak membutuhkan alat khusus, kita bisa mencetak sendiri kitnya

20161022_101613

Permainan

Saat ini sudah ada beberapa permainan untuk Osmo dan sepertinya akan terus bertambah. Bahkan ketika saya sudah membeli kit paling lengkap dua minggu lalu, tiba-tiba minggu depannya sudah ada game baru lagi (Pizza).

Numbers

Jonathan belum terlalu memainkan ini, game-game di awal hanya berusaha membentuk angka untuk mencapai jumlah tertentu (dan ini sudah bisa dilakukan oleh Jonathan). Belum dieksplorasi lebih jauh apakah ada bentuk permainan lain selain itu.

Coding

Ini game pertama yang dicoba Jonathan dan yang paling disukai Jonathan. Konsep codingnya sendiri hanya terbatas pada: sekuens instruksi, loop, dan ada satu “else”. Tapi game ini cukup fun.

20161021_143527.jpg

Tangram

Game ini seperti bermain tangram biasa, tapi akan dipandu agar kita bisa membuat objeknya dengan benar.

Monster

Game ini gabungan dari menggambar dan cerita. Sebuah monster akan minta dibuatkan sebuah objek tertentu (misalnya magic wand), dan monster itu akan “mengambil” benda yang kita gambar dan memainkannya. Game ini cukup menghibur, tapi kemungkinan anak akan bosan setelah beberapa kali memainkan ini.

Masterpiece

Sebenarnya ini permainan tracing yang sangat sederhana: program hanya akan menampilkan outline sebuah gambar, dan kita bisa mentrace di atas kertas kita sendiri. Meski sederhana, ini sangat fun, bahkan orang dewasa pun bisa belajar menggambar menggunakan ini

20161023_164912

Newton

Sebenarnya permainan ini sangat silly, ada benda-benda yang berjatuhan yang harus kita arahkan jatuhnya agar mencapai target tertentu. Unuk menahan jatuhnya, kita bisa menggambar garis di atas kertas, atau bahkan menggunakan objek apapun juga.

Teknis

Osmo dibuat menggunakan Unity dan menggunakan plugin OpenCV. Secara teknis game ini tidak sulit ditiru, yang sulit adalah membuat cermin reflektor dan basenya agar iPad bisa “melihat” ke depan dengan baik. Berikut ini “penglihatan” osmo ketika saya letakkan kertas ukuran A4 di depan iPad denga jarak sekitar 1 cm dari ipad. Terlihat bahwa kertas terlihat seperti trapesium. Di bagian bawah ada bagian merah yang digunakan oleh Osmo untuk mendeteksi bahwa kamera sudah terpasang.

 

 

img_0933

Penutup

Osmo ini menurut kami agak mahal, tapi cukup menarik dan sepertinya tidak akan cepat bosan. Teorinya sih game seperti ini bisa saja dibuat sendiri dengan Raspberry Pi + modul kamera + OpenCV + Layar monitor, kenyataannya saya tidak akan serajin itu dan tidak punya waktu sebanyak itu saat ini, jadi menurut saya sih ini worth the money. Kalau Anda rajin, Anda juga bisa mengembangkan sendiri aplikasi iPad berbasis Osmo (tentunya semua harus didevelop sendiri karena tidak ada SDK-nya).

Jika Anda tertarik membeli Osmo, Anda bisa langsung memesan ke webnya. Sayangnya sepertinya saat ini tidak bisa dikirimkan ke Indonesia. Saya sendiri saat ini tinggal di Thailand dan bisa dikirim ke sini (walau kena pajak). Ketika memesan Osmo, saya bisa menggunakan kartu kredit Indonesia, jadi salah satu cara untuk membeli ini adalah dengan mengirimkan barangnya ke teman di Singapore atau Malaysia.

 

Pengantar Reverse Engineering

Sudah beberapa kali saya ditanya: kalo ada aplikasi X bagaimana cara membongkarnya? Bahasa kerennya: bagaimana saya melakukan reverse engineering terhadap aplikasi tertentu?. Sayangnya tidak ada jawaban sederhana untuk ini. Bagaimana membongkar sesuatu tergantung pada teknologi yang digunakan untuk membangun dan memproteksi benda itu. Berbagai tools juga bergantung pada sistem operasi yang menjadi target.

Saya sudah menulis secara umum tentang reverse engineering, tapi belum memberikan jawaban praktis, jadi di posting ini saya akan berusaha menuliskan secara praktis langkah-langkah untuk memulai reverse engineering.

label
convert -size 1200×630 -background white -fill black -font Nimbus-Mono-L -pointsize 144 -gravity center -label:”Reverse\nEngineering” -flip label.png

Lanjutkan membaca “Pengantar Reverse Engineering”