Review PinePhone: Smartphone Open Source

PinePhone merupakan smartphone open source, salah satu proyek hardware dari Pine64. Tidak seperti smartphone Android, PinePhone ini dapat menjalankan sistem operasi Linux murni, dengan berbagai pilihan distribusi (distro) seperti di desktop dengan pilihan berbagai shell/desktop environment.

Organisasi Pine64 membuat berbagai hardware open source yang saat ini meliputi: SBC (Single Board Computer), Laptop , Tablet, Smartphone, kamera security, Solder pintar, SmartWatch, dan beberapa hardware lain. Di posting ini saya hanya akan membahas PinePhone, dan kali lain saya akan membahas berbagai hardware lain dari Pine64 yang saya miliki.

PinePhone dengan OS KDE Plasma

Sebelum Anda kecewa membaca sampai akhir, kesimpulan saat ini: smartphone ini belum siap dipakai umum, tapi cocok untuk para hacker (orang yang suka ngoprek) baik hardware maupun software. Pinephone ini bukan satu-satunya smartphone open source yang ada saat ini, tapi ini yang paling murah (versi termurah: 149 USD) dan paling banyak pengembangnya. Proyek hardware open source lain adalah Librem 5 dari Purism tapi harganya beberapa kali lipat dari PinePhone (749 USD) dengan spesifikasi yang tidak beda jauh.

Lanjutkan membaca “Review PinePhone: Smartphone Open Source”

Review Raspberry Pi 400

Raspberry Pi 400 adalah keluarga terbaru Raspberry Pi yang saya miliki. Ini tidak memakai prosessor baru, masih sama dengan SOC pada Raspberry Pi 4 tapi dalam bentuk keyboard. Kalau Raspberry Pi 4 punya banyak versi dengan RAM yang berbeda, RPI 400 ini hanya ada versi RAM 4GB.

Harga resmi benda ini adalah 70 USD (tanpa kit) dan 100 USD (dengan kit). Kit meliputi: kabel micro HDMI to HDMI, mouse, micro SD, dan buku. Saat ini ada banyak layout keyboard: UK, US, Jerman, Perancis, Spanyol dan Italia. Saya memakai keyboard US sesuai yang umum di Indonesia dan juga Thailand dan tidak membeli versi kit. Saya membeli ini dari Cytron.io (perusahaan Malaysia) di hari launching dan dikirim ke Thailand dalam waktu beberapa hari dari dalam Thailand (jadi tidak ada pajak impor).

Di awal masa mikrokomputer masuk rumah pada tahun 1980an, banyak komputer yang dijual dalam form factor keyboard seperti ini dan tinggal dicolok ke TV di rumah. Hal tersebut untuk mengurangi harga komputer, karena kebanyakan rumah tangga sudah punya layar TV. RPI 400 ini juga dibuat seperti itu: untuk dihubungkan ke TV atau layar yang sudah dimiliki (kebanyakan TV sekarang sudah memiliki input HDMI).

Ada banyak sistem operasi alternatif untuk Raspberry Pi 4, termasuk juga Android 11, tapi di tulisan ini saya memakai Raspbian yang merupakan OS resmi. Pada Raspberry Pi 4 yang saya miliki, saya menginstall Raspberry Pi OS versi 64 bit (sampai saat ini masih beta), tapi untuk RPI 400 ini saya menggunakan versi 32 bit saja karena ini yang sudah stabil.

Bagian depan keyboard

Hardware

Saya sudah pernah membeli keyboard resmi Raspberry Pi, dan RPI 400 sangat mirip dengan keyboard tersebut. Bedanya: di bagian depan keyboardnya ada colokan untuk power (via port USB-C), ethernet, dua micro HDMI, micro SD, 3 USB A, dan GPIO Pin Selain itu tombol F10 bisa menjadi tombol power jika ditekan bersama dengan tombol Fn.

Lanjutkan membaca “Review Raspberry Pi 400”

Risna dan menulis

Hari ini Risna berulang tahun. Seiring bertambahnya usia, berarti semakin dekat impian saya untuk hidup sampai tua bersamanya. Berbagai pujian untuk istri saya sudah saya tuliskan di berbagai posting saya di ulang tahun Risna. Sampai sekarang pujian saya tetap sama. Tapi tahun ini saya ingin menambah bahasan tentang menulis.

Komik asli: https://thejenkinscomic.wordpress.com/2020/09/22/make-it-say/
Lanjutkan membaca “Risna dan menulis”

Secure coding: memproses password

Topik menyimpan password ini sebenarnya topik sederhana, tapi banyak developer yang tidak tahu. Di artikel ini akan saya jelaskan bagaimana cara yang baik menyimpan password dari mulai sejak dimasukkan user, sampai masuk ke database. Saya juga akan menjelaskan mengenai kemungkinan kebocoran password di file log, baik log aplikasi maupun log server (web server dan mungkin server lain).

Kecepatan hash di GPU saya yang sudah relatif tua
Kecepatan hash di GPU saya yang sudah relatif tua

Di tulisan ini saya banyak menggunakan kata “jika mungkin”. Alasannya adalah:

  • kadang sistem perlu diintegrasikan dengan sistem yang sudah ada, jadi beberapa hal tidak bisa diubah tanpa mengubah sistem yang sudah ada
  • kadang library yang dibutuhkan tidak tersedia di bahasa/teknologi yang dipakai
  • kadang ada batasan tertentu (requirement dari user/atasan/pemerintah)
  • kadang ada batasan hardware (misalnya algoritma terlalu kompleks untuk embedded system)

Menerima password dari user

Password sebaiknya dibaca dengan API/fungsi yang sudah disediakan untuk tujuan itu. Contohnya di form web kita memakai input type=”password”, di program Java versi console kita bisa memakai Console.readPassword. Jangan sok pintar membuat sendiri form input (misalnya dengan manual membaca key satu karakter demi satu karakter), atau membuat perilaku yang tidak standar.

Sekarang ini OS Mobile (iOS dan Android) memiliki password manager built in, tapi ini tidak berfungsi jika form login tidak standar. Jika memang ingin membuat yang custom, pastikan bisa bekerja dengan password manager standard milik sistem.

Jika password merupakan bagian dari login, tampilkan form user dan password di satu layar. Ini akan membantu password manager mengetahui password mana yang bisa dimasukkan secara otomatis. Saat ini sebagian password manager sudah bisa menangani form yang terdiri dari banyak halaman (halaman pertama hanya isian user/email, dan halaman kedua pertanyaan password), tapi secara umum hal ini kurang baik.

Lanjutkan membaca “Secure coding: memproses password”

Diet cara Hacker

Selama beberapa tahun terakhir berat saya naik terus, dan sudah memasuki daerah overweight dan bahkan mulai mendekati Obese. Jadi tahun ini saya meniatkan untuk menurunkan berat badan. Sejauh ini saya sudah berhasil menurunkan hampir 10kg dari awal tahun secara perlahan-lahan. Di sini saya akan menjelaskan metode diet saya yang tanpa suplemen khusus, tanpa olahraga khusus.

Progress tahun ini

Ada buku karangan John Walker (co-founder Autodesk) tentang cara diet ala hacker, berjudul: The Hacker’s Diet, dan versi digital bukunya bisa didownload gratis di https://www.fourmilab.ch/hackdiet/. Bukunya sudah lama, sejak tahun 1991, tapi saya baru tahu buku ini ketika menulis posting ini. Buku ini menjelaskan dengan detail cara menurunkan berat badan dengan memandang proses ini sebagai engineering problem tepatnya lagi pada bagian control system.

Prinsip Diet

Saya tidak mengikuti cara tepat di buku Hacker’s Diet, tapi saya setuju dengan segala macam prinsip di buku tersebut. Intinya segala macam fad diet tidak akan berhasil. Jika kita relatif sehat dan tidak ada masalah kesehatan khusus, maka masalah berat badan ini bisa direduksi menjadi masalah kalori masuk dan kalori keluar. Diet apapun yang dipilih, kalau kalori masuk lebih dari kalori keluar, hasilnya berat badan akan naik. Jika ingin detail lebih lanjut, bacalah buku tersebut.

Ada metode diet serupa bernama CICO: Calories In Calories Out, yang berusaha menghitung dengan tepat berapa kalori yang dibutuhkan seseorang, lalu menghitung makanan apa yang perlu dimakan dan seberapa banyak. Ini cara yang menurut saya terlalu sulit dan banyak pikiran bisa terbuang untuk menghitung ini.

Lanjutkan membaca “Diet cara Hacker”

Write-up Singkat SpiderLabs CTF 2020

Sudah lama saya tidak ikutan CTF online selain Flare-On, alasannya sama dengan kebanyakan orang lain: sibuk. Tapi tahun ini ada rekan yang kerja di TrustWave dan perusahaannya mengadakan CTF: SpiderLabs CTF, jadi saya penasaran sedikit ingin melihat soal-soalnya. Karena nggak berniat bermain penuh, saya mendaftar dengan nama team yang belum pernah saya pakai sebelumnya: pokedora (pokemon + doraemon, kesukaan anak-anak).

Ternyata saya bisa menyelesaikan banyak, sampai sekitar 6 jam sebelum lomba berakhir masih masuk peringkat 3, dan akhirnya ketika bangun tadi pagi sudah tergeser dan berakhir di peringkat 6. Peringkat 100 besar akan mendapatkan T-shirt.

Awalnya saya mengerjakan sendiri, lalu di akhir saya dibantu oleh Faco dan Abdillah Muhammad. Saya menyelesaikan 26 soal dari 29 soal yang kami selesaikan. Karena jumlahnya cukup banyak, saya tidak punya cukup waktu untuk menuliskan detail semuanya, jadi di sini akan saya berikan Write-up singkatnya saja. Selain itu alasan lainnya adalah: saya tidak menyimpan banyak screen capture (karena tadinya tidak berniat main sampai lama).

Lanjutkan membaca “Write-up Singkat SpiderLabs CTF 2020”

Game Favorit Joshua

Kalau sudah bosan dengan berbagai mainan fisik yang dimiliki, Joshua suka bermain game di berbagai platform (iPad, Android, Nintendo 3Ds, dan macOS). Saat ini Joshua berusia 5 tahun, dan dia menyukai game di mana dia bisa mengkonstruksi sesuatu, dan biasanya yang dikonstruksi pertama adalah huruf dan angka. Posting ini sekedar jadi catatan kenangan game-game yang saat ini disukai Joshua.

Toca Builders

Game ini seperti kanvas 3D, kita mengendalikan karakternya untuk membentuk apa saja. Game ini tersedia untuk Android dan iOS. iPad yang dipakai Joshua usianya sudah sekitar 7 tahun dengan OS 10 dan game ini masih bisa dipakai di situ. Joshua sudah suka ini sejak sekitar 3 tahun, dan dia memulai dengan bentuk mendatar saja. Karena waktu itu dia sedang suka berhitung, bentuk yang dibuat adalah angka-angka.

Setelah agak lama, dia mulai bisa berpikir 3D dan membuat benda yang tegak misalnya huruf yang berdiri untuk membentuk kata-kata.

Setelah itu dengan melihat berbagai jenis objek contoh yang diberikan di game, dia mulai menirunya juga. Contohnya di bawah ini adalah membuat pohon. Joshua memang bisa membuat bentuk seperti ini dengan Lego, tapi saya cukup kagum dia bisa membuatnya di kanvas 3D. Tokoh dalam Toca Builders tidak bisa berinteraksi dengan benda-benda yang ada, jadi sekarang Joshua sudah bosan main game ini.

Toca Blocks

Ini bisa dianggap versi 2D dari Toca Builders. Game ini juga tersedia di Android dan iOS. Di Toca Builders benda yang dibentuk tidak interaktif, tapi di Toca Blocks sifatnya interaktif. Selain bisa membentuk sebuah dunia, ada 3 tokoh yang bisa digerakkan ke mana saja dan juga memiliki animasi (berlari, menari, dsb). Blok-blok yang ada juga bisa digabung untuk membentuk blok baru. Game ini jauh lebih seru dibandingkan Toca Builders.

Algodoo

Algodoo sebenarnya bukan game, tapi Physics simulator gratis. Aplikasi ini tersedia untuk PC, macOS dan iPad. Tapi bisa dianggap permainan karena memang bisa dipakai untuk main-main seperti Toca Builders. Di aplikasi ini kita bisa membuat objek yang memiliki materi tertentu dan akan terpengaruh gravitasi dan gaya lain (misalnya pegas/spring).

Joshua tahu aplikasi ini dari beberapa video Youtube Marble Race yang dibuat dengan Algodoo. Joshua biasanya main ini di macOS dan iPad. Sekarang ini dia sudah agak bosan dengan Algodoo, tapi mungkin nanti kalau dia sudah lebih paham fisika akan tertarik lagi main ini.

Joshua suka membuat bentuk-bentuk, lalu digantung dengan tali virtual atau diberi pegas . Atau kadang bentuknya dihancurkan dengan mengubah materialnya menjadi air. Hal lain yang suka dilakukan adalah membuat lingkaran-lingkaran yang jatuh karena gravitasi.

Minecraft

Setelah melihat Jonathan bermain minecraft, Joshua menjadi tertarik. Awalnya sih sekedar berjalan-jalan saja di dunia minecraft, lalu lama-lama dia mengerti bagaimana memakai menunya, mencari berbagai objek (nama-namanya dihapalkan). Jonathan mengajari beberapa “resep” crafting, dan Joshua sudah bisa melakukannya.

Awalnya Joshua bingung tentang orientasi berbagai objek di Minecraft, misalnya ketika membuat portal, portalnya tidak jalan karena ada blok yang meski sudah benar tapi salah arah. Sekarang dia sudah mengerti, dan jika melihat tutorial Youtube sudah bisa mengikuti.

Joshua juga menghapalkan beberapa command dan mengetik sendiri. Beberapa command favoritnya misalnya adalah untuk mengubah cuaca, dan “cheating” agar mendapatkan semua advancement. Satu-satunya hal negatif adalah: Joshua suka menggunakan command /kill yang akan membunuh karakternya sendiri. Joshua suka menirukan kalimat-kalimat penutup ketika karakternya mati, misalnya: ABC123Josh was killed by intentional game design atau ABC123Josh didn’t want to live in the same world as spider.

Super Mario Maker 3DS

Super Mario Maker adalah game untuk membuat level game Super Mario Bros. Di game ini kita membuat sendiri level, lalu bisa dimainkan (bisa juga sharing level dengan orang lain). Tentunya di dalam level-nya Joshua suka menyisipkan bentuk alphabet.

Monument Valley dan Monument Valley 2

Game Monument Valley dan Monument Valley 2 merupakan game optical illusion dan impossible objects. Secara visual sangat menarik untuk orang dewasa, tapi menurut saya agak membosankan untuk anak-anak. Sebenarnya saya masih tidak tahu kenapa Joshua suka game ini, tapi dia sudah menyelesaikan semua levelnya berkali-kali. Dia suka membaca nama-nama judul levelnya, tapi di gamenya sendiri dia lebih sering mencoba-coba saja sampai solved.

Beyond ynth

Ini salah satu game yang disuka Joshua yang sifatnya bukan mengkonstruksi sesuatu. Di game ini kita mengendalikan sebuah Ladybug bernama Kribl dalam petualangannya. Sifat game ini action puzzle, jadi agak rumit karena butuh berpikir dan bergerak cepat.

Awalnya dia minta game ini dari melihat video Youtube. Jarang sekali Joshua meminta game atau mainan walau dia melihat banyak video Youtube. Ketika saya belikan gamenya, dia menyerah karena sulit sekali baginya untuk melakukan gerakan tertentu.

Ternyata setelah itu dia mencoba lagi beberapa kali sampai bisa semua tutorialnya. Tapi dititik ini dia masih sering stuck, jadi setelah selesai tutorial, dia pilih sendiri menu untuk mereset gamenya. Dan setelah itu dia mulai main lebih jauh lagi. Di gamenya ada link Youtube untuk menyelesaikan tiap levelnya. Biasanya kalau sudah stuck, Joshua akan melihat video youtubenya untuk tahu solusinya. Solusinya kadang cukup panjang, jadi butuh beberapa kali melihat dan mencoba sampai bisa.

Ini game yang memiliki nama level aneh-aneh, misalnya Swiss Cheese, Mount Etna, Mount Vesuvius, Mount Eyjafjallajökull. Selain memainkan game, Joshua senang sekali membaca dan menghapalkan frasa dan kalimat di dalam game. Sering juga dia minta diajari pengucapan kata yang sulit seperti Gunung Vesuvius, tapi kadang saya menyerah kalau kata-katanya terlalu sulit seperti Gunung Eyjafjallajökull, dan saya bantu dengan Google saja.

Game dan aplikasi lain

Sebenarnya kadang Joshua main juga game-game lain, tapi biasanya hanya beberapa menit saja lalu bosan. Game-game yang saya sebutkan di atas sudah dimainkan dalam jangka waktu lama.

Kadang kalau dia melihat saya sedang membuat presentasi, dia juga ikutan membuat Keynote. Biasanya yang dibuat adalah presentasi tentang Alphabet, dengan huruf, kata, dan ikon yang dia pilih dari daftar ikon default yang ada di aplikasi keynote (seperti A for Apple).