Bug: file version control yang bisa diakses via web

Untuk orang awam: saya menemukan bahwa beberapa situs yang cukup besar (beberapa di antaranya: Kompas  dan Tempo) memiliki kesalahan konfigurasi (misconfiguration) sehingga memungkinkan saya mendownload source code web tersebut. Saya akan membahas bagian teknisnya, tapi sebelumnya saya akan berusaha jelaskan untuk orang awam.

Nilai sebuah source code bisa beragam. Ibaratnya di depan rumah seseorang saya menemukan ada dokumen lengkap tentang sebuah bangunan. Di situ tercantum berbagai informasi, denah lengkap rumahnya, sampai merk kunci yang digunakan.

Nah jika rumah itu ada celahnya, maka dengan mudah saya tinggal membacanya, tanpa perlu mengelilingi rumah untuk mencari kelemahannya, dokumen itu nilainya penting, karena jadi komponen penting untuk bisa masuk. Tapi jika rumah itu memang aman, tidak ada celahnya, maka dokumen itu tidak terlalu bernilai. Jadi memiliki source code, tidak berarti kita selalu akan bisa masuk.

Lalu apa hasil temuan dari beberapa situs besar yang saya temukan? Salah satu situs ada yang ternyata memiliki password rahasia yang memungkinkan kita bisa login ke account manapun (password ini memang ditanam oleh developernya). Ada situs yang memiliki API Key dalam source code. Continue reading “Bug: file version control yang bisa diakses via web”

Polusi Udara Chiang Mai

Secara umum udara di Chiang Mai cukup bersih, jumlah kendaraan belum terlalu banyak, dan tidak ada industri besar di sini (karena ini daerah pertanian dan pariwisata). Tapi di bulan Maret sampai April polusi udara cukup buruk karena masih banyak petani yang membakar sisa ladang mereka. Ini sudah menjadi masalah bertahun-tahun, dan sampai saat ini masih terjadi. Di masa sekarang, level polusi di daerah kota tergantung pada arah angin, kadang buruk sekali, kadang bagus.

Polusi hasil pembakaran ini termasuk dalam polusi partikel . Kadar PM2.5 (particulate matter 2.5 micometer) dan PM10  (particulate matter 2.5 micometer) yang tinggi sangat  membahayakan kesehatan. Tiap negara menetapkan batas aman yang berbeda.

Sebagai pribadi yang tidak bisa mencegah semua orang melakukan pembakaran, solusi pribadi untuk masalah ini adalah filter udara. Filter ini harganya relatif mahal, apalagi yang bisa dipakai di ruang besar. Mengikuti ekspat yang sudah lama di sini, kami membeli filter dari Smart Air dan dipasang sendiri di exhaust fan.

Bagaimana bisa yakin bahwa filter murah ini bisa bekerja dengan baik? Tentunya perlu diukur, jadi saya memutuskan membeli sensor udara, SDS011 seharga 29 USD yang menurut review cukup bagus ketika dibandingkan dengan sensor Dylos yang harganya 300 USD.

Alat ini bisa mengoutputkan data melalui koneksi serial/UART dalam format biner. Sudah ada beberapa skrip di internet yang bisa dipakai untuk membaca outputnya. Tahun lalu sensornya saya hubungkan ke raspberry pi dan hasil pembacaaanya dilihat dengan SSH di handphone.

Bagaimana bisa yakin kalau alat ukurnya bekerja normal? mengingat kadang barang buatan China Quality Assurancenya minimum, tentunya ini perlu dipertanyakan juga. Eksperimen yang dilakukan adalah: filternya dicoba di luar rumah, dan dibandingkan dengan data dari beberapa website monitoring udara di Chiang Mai. Hasilnya cukup akurat, atau setidaknya tidak berbeda jauh.

Sebelum membuat sendiri filter ini, kami pernah membeli filter udara yang mahal. Berdasarkan pembacaan sensor, sebelum filter dinyalakan kadar PM2.5 dan PM10 cukup tinggi, setelah dinyalakan kadarnya menurun sampai titik tertentu.

Tahun ini saya sedikit lebih rajin: sensornya saya hubungkan ke ESP8266 dan LCD 16×2  (16 karakter, 2 baris), jadi tidak butuh Raspberry Pi lagi dan jadi portabel. Jika di rumah, hasil pembacaan juga akan di kirimkan via WIFI ke server.

Selain lebih murah, kelebihan lain memakai ESP8266 adalah: waktu startupnya sekitar 3 detik saja.

 

Tapi saat ini belum cukup rajin untuk mendesain case untuk benda ini. Masih belum menemukan design yang bagus, sensor perlu berada di luar case, karena perlu ada udara masuk untuk diproses, display perlu terlihat jelas dan battery bank perlu gampang dicharge dari luar.

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).

Continue reading “Catatan Hosting 2017”

Memperbaiki Mainan

Jonathan dan Joshua saat ini memiliki banyak mainan. Seperti biasa, semua mainan yang dimainkan akan rusak. Sebisa mungkin jika mainannya masih bisa diperbaiki, maka saya akan mencoba memperbaikinya.

Selain mainan yang rusak karena dimainkan, kadang kami membeli mainan second hand dari toko second hand maupun yard sale yang sering diadakan oleh expat yang akan meninggalkan Chiang Mai. Selain lebih hemat, beberapa mainan yang kami beli second susah didapatkan di Chiang Mai (atau sangat mahal jika memesan via Amazon).

Masalah Batere

Kebanyakan mainan dan buku elektronik biasanya tidak rusak, tapi ada masalah dengan baterenya. Masalah pertama dan yang paling sering adalah: batere habis. Saya memiliki stock berbagai jenis batere standar selain AA dan AAA juga batere koin CR2032 dan LR44.

Masalah berikutnya: konektornya kotor atau berkarat. Masalah lain adalah kabel yang lepas. Untuk masalah kompartemen batere yang berkarat, saya menggunakan aluminium foil. Untuk kabel yang lepas tentunya disolder, dan kemudian dilapisi hot glue agar lebih sulit lepas lagi.

Continue reading “Memperbaiki Mainan”

Music Player dengan Orange Pi Zero

Tujuan proyek ini adalah membuat player musik untuk latihan piano Jonathan. Nomor lagu diinput dengan numeric keypad, audio diputar di speaker yang biasa dipakai di PC, output ditampilkan di LCD 20×4.

Buku pelajaran piano yang dipakai oleh Jonathan disertai CD Audio sebagai musik pengiring, dan CD ini tentunya sudah di-rip dan masuk ke iPad.

 

Sebenarnya memakai iPad ini cukup praktis, tapi seringkali yang terjadi:

  • Lupa di mana menaruh iPad-nya
  • Lupa mencharge iPadnya
  • Terdistract oleh game/app lain di iPad
  • Joshua tiba-tiba datang ingin lagu lain

Continue reading “Music Player dengan Orange Pi Zero”

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. Continue reading “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. Continue reading “Logic Analyzer”