Aplikasi Wattpad untuk Hobi Menulis dan Baca

Apa sih Wattpad? Wattpad ini sejenis social media untuk orang-orang yang mencari bahan bacaan ataupun suka menuliskan cerita. Bedanya dengan social media lain apa? Biasanya orang membuka wattpad dengan 2 tujuan: mencari bacaan atau menuliskan cerita.

Bacaan jenis apa? cerita seperti apa? Bisa apa saja. Cerita pendek, cerita bersambung, kumpulan cerita, ataupun artikel nonfiksi. Banyak penulis pemula yang memulai menulis di wattpad dalam bentuk cerita bersambung. Biasanya tulisan yang sudah diterbitkan di wattpad bisa di baca oleh pengguna wattpad lainnya. Kalau ternyata banyak yang suka mengikuti ceritanya, bisa jadi di saat tulisan selesai sudah ada penerbit yang bersedia menerbitkannya. Novel Metropop Resign! yang saya tuliskan kemarin juga salah satu buku yang awalnya dituliskan di wattpad.

Beberapa contoh kategori cerita, masih banyak kategori lainnya

Biasanya cerita-cerita yang belum selesai itu bisa kita komentari. Kalau kita mengikuti suatu cerita, kita bisa set supaya mendapatkan notifikasi ketika penulis menambahkan bagian baru dari ceritanya. Tapi banyak juga cerita yang tak kunjung selesai dan pembaca hanya bisa kecewa.

Saya tahu mengenai aplikasi ini sudah lama. Dulu cuma iseng mencoba membaca cerita yang direkomendasikan oleh aplikasi. Cerita kita bisa direkomendasikan kalau mendapat banyak respon dari pengguna lain berupa jumlah pembaca, ataupun menambahkan cerita kita ke daftar bacaan mereka. Untungnya cerita yang saya ikuti itu akhirnya selesai juga dan kabarnya dijadikan buku dengan menambahkan 1 bab baru setelah bab yang diterbitkan di wattpad. Setelah bukunya diterbitkan dalam bentuk fisik, tulisan di wattpadnya juga dihapus.

Daftar buku yang kita baca

Kebanyakan cerita bisa dibaca dengan gratis, tapi ada juga cerita yang untuk membacanya kita harus membayar. Saya belum pernah mencoba membaca cerita yang harus bayar jadi kurang tahu detailnya. Tapi kalau dilihat dari jumlah pembacanya, wow banget ada yang sampai dibaca 3 juta pengguna lainnya.

Cerita yang banyak dibaca orang bisa direkomendasikan ke pengguna lain

Salah satu contoh cerita nonfiksi yang saya temukan ketika iseng mencari hari ini ternyata buku tentang belajar bahasa Korea. Menurut penulisnya, dia hanya mengumpulkan tulisannya dari berbagai sumber dan kredit tetap ke penulis asli. Mungkin ini kira-kira sama dengan yang saya lakukan menulis seri belajar bahasa Thai di blog ini. Hmmm apa saya juga ikutan memindahkan sebagian ke wattpad ya hehehe.

Wattpad ini bisa diakses melalui browser dan ada aplikasinya juga untuk android dan iphone. Kalau kita sudah install aplikasi ini di HP kita, kita bisa mendownload cerita yang ingin kita baca ataupun menuliskan cerita kita secara offline juga.

Apakah wattpad ini hanya untuk orang yang suka menulis? kalau menurut saya wattpad ini justru lebih banyak pembacanya daripada penulis. Tapi ya cerita di wattpad ini banyak juga fanfiction dari cerita film atau buku yang ada. Kalau suka membaca berbagai cerita dan punya banyak waktu untuk itu, bisa juga coba cari-cari bacaan di wattpad. Kalau gak puas dengan akhir sebuah cerita juga bisa saja menuliskan versi cerita sendiri di wattpad hehehe.

Tapi seperti halnya dengan media sosial lainnya, tulisan yang kita tulis di wattpad ini bisa jadi suatu hari akan hilang kalau layanannya ditutup dan kita tidak punya salinannya. Dengan alasan ini, untuk sekarang saya memilih menulis di blog ini saja dulu. Mungkin kapan-kapan kalau sudah mulai bisa menulis fiksi bisa mencoba untuk menulis di sana.

Oh ya, kalau kamu rajin menulis di wattpad, bisa tulis di komentar supaya bisa dikunjungi.

Reverse Engineering Aplikasi iOS

Sudah lama saya menuliskan tentang reverse engineering Android tapi sampai saat ini belum menuliskan untuk iOS. Tulisan ini akan memperkenalkan cara reverse engineering aplikasi iOS dengan berbagai pendekatan. Tujuan utamanya di sini adalah untuk pentesting. Reversing untuk tujuan lain (misalnya Tweak development) sebagian akan sama, tapi masih butuh usaha dan tool ekstra dan hanya akan saya bahas sekilas.

Mesin macOS dan XCode

Memiliki mesin macOS akan sangat membantu dalam reverse engineering. Mesin ini bisa fisik asli dari Apple (Macbook, MacMini atau yang lain), mesin tidak resmi (Hackintosh), atau bahkan Virtual Machine. Pengunaan utamanya adalah untuk menjalankan Xcode terbaru dan iTunes.

Sebenarnya ini tidak 100% wajib, karena kebanyakan tool bisa berjalan di OS Lain. Misalnya di Linux saya memakai libimobiledevice untuk menginstall IPA, membaca log dari device, dsb. Tapi biasanya jika ada iOS baru, berbagai tool di luar OS X akan berhenti bekerja sampai beberapa hari atau bulan, menunggu developernya memahami apa yang diubah Apple dan bagaimana memperbaikinya.

Device iOS dan Simulator

Di dunia Android, kita bisa menjalankan hampir semua APK Android di Emulator kecuali beberapa yang butuh akses hardware tertentu. Emulator Android mengemulasikan keseluruhan hardware dan bisa menjalankan APK meskipun APK tersebut memakai kode biner ARM/ARM64.

Tapi saat ini tidak ada emulator iOS yang bisa diakses umum dengan mudah. Hanya ada satu perusahaan bernama Correlium yang menyediakan emulator dan inipun saat ini clientnya masih sangat dibatasi. Masih lebih mudah dan murah membeli iPhone bekas daripada mendapatkan akses ke Correlium.

Apple hanya menyediakan simulator untuk x86, artinya kita harus mengcompile khusus source code kita supaya jalan di simulator yang disediakan. Jika kita mendownload IPA dari App Store, binarynya pasti ARM/ARM64/ARM64e dan tidak akan jalan di simulator.

Jadi jika kita ingin melakukan analisis dinamik, maka kita perlu hardware iOS tergantung aplikasinya mungkin akan butuh iPhone atau iPad. Beberpa aplikasi bisa juga berjalan di iPod Touch (tapi aplikasi banking yang butuh verifikasi SMS sering kali tidak mau jalan di iPod Touch).

Ketika membeli hardware iPhone/iPad bekas, harap diperhatikan versi iOS yang masih didukung dan kira-kira masih akan didukung atau tidak dalam waktu dekat ini. Contoh: saya membeli iPhone 5S baru sekitar 5 tahun yang lalu dan hardware ini masih bisa dipakai sampai sekarang (mendukung iOS 12), tapi kemungkinan besar tidak akan disupport lagi akhir tahun ini (kemungkinan tidak akan mendukung iOS 13). Update setelah WWDC: iPhone 5S tidak termasuk dalam device yang bisa memakai iOS 13, minimum adalah iPhone 6S.

Ketika tulisan ini dibuat (Mei 2019), jika ingin membeli iPhone, hardware minimal yang saya sarankan adalah iPhone 7 Plus. Alasannya:

  • Versi baru ponsel ini masih dijual oleh Apple
  • Harga second hand benda ini mulai reasonable
  • Prosessornya A10, sama seperti yang dipakai iPod Touch generasi 7 yang baru saja diluncurkan
  • versi 7 Plus memiliki RAM 3 GB (versi 7 saja tanpa plus, hanya 2 GB) jadi kemungkinan akan bisa dipakai untuk beberapa iOS mendatang

Jika dana terbatas belilah iPhone 6S yang bisa dipakai setidaknya setahun lagi. Jika ingin lebih jauh lagi, menurut saya iPhone XR merupakan pilihan yang baik:

  • Harganya cukup jauh di bawah iPhone XS
  • Sudah memakai A12, bisa belajar Pointer Authentication

Tapi tentu saja jika ada dananya, silakan saja beli iPhone terbaru dan termahal.

File IPA

Jika di Android kita memakai file APK untuk instalasinya, maka di iOS kita memakai format IPA. Seperti APK, format IPA ini sebenarnya juga hanya file berformat zip yang di dalamnya berisi resource (gambar, suara, dsb) dan program. Tapi tentu saja walau sama-sama file ZIP, keduanya tidak kompatibel karena isinya benar-benar berbeda.

Khusus untuk format PNG, Apple memakai optimasi khusus sehingga perlu dikonversi kembali. Di OS X ini bisa dilakukan dengan pngcrush. Perlu dicatat pngcrush di OS lain tidak memiliki opsi yang sama, jadi gunakan tool lain untuk mengembalikan PNG agar bisa dilihat. Ini hanya contoh kecil mengapa memiliki hardware macOS plus XCode bisa memudahkan proses RE.

Tanda tangan digital dan Enkripsi

Setiap aplikasi yang berjalan di iOS harus ditandatangani secara digital. Selain itu setiap aplikasi dari App Store dienkrip (memakai DRM Fair Play) dan hanya bisa dipakai di account tertentu. Artinya saya tidak bisa mendownload file IPA dari app store dengan account saya dan langsung ditransfer ke iPhone orang lain.

Jika ingin disebarkan ke orang lain, sebuah program perlu didekrip. Proses dekripsi butuh iPhone/iPad yang sudah dijailbreak. Saat ini belum ada yang berhasil mengekstrasi key dari account, jadi sebuah hardware wajib dimiliki. Program yang dienkrip tidak bisa direverse engineer. Bisa saja dipaksa dibuka di disassembler, tapi instruksinya tidak masuk akal.

Dalam proses pentesting kadang client meminta kita testing dari app store dan kadang dari developer. Proses enkripsi ini dilakukan oleh Apple di server apple, jadi aplikasi yang belum diupload ke App Store masih dalam kondisi tidak terenkripsi. Jika kita dibolehkan meminta dari developer, maka akan lebih mudah melakukan reversing tanpa perlu hardware untuk mendekrip.

Jailbreak

Saat ini jailbreak sangat penting untuk security researcher iOS. Tidak semua versi iOS bisa dijailbreak dan pada semua versi iOS beberapa tahun terakhir kita tidak bisa dengan mudah downgrade ke versi sebelumnya. Satu-satunya cara untuk pindah ke sebuah versi tertentu adalah jika kita punya yang namanya SHSH blob untuk versi tersebut yang spesifik untuk device kita. Di ponsel dengan CPU A12, proses ini lebih kompleks lagi.

Jadi jika kita membeli ponsel dengan software terbaru dan belum ada jailbreaknya, tidak ada yang bisa kita lakukan selain menunggu sampai ada yang menjailbreak. Selagi menunggu, kita bisa menyimpan blob SHSH untuk versi berikutnya. Jadi misalnya kita ada di versi 12.3 (belum ada jailbreak) dan sudah ada versi 13 (belum ada jailbreak juga), kita bisa menyimpan blob untuk versi 13. Nanti misalnya ada jailbreak untuk versi 13 kita bisa upgrade ke versi tersebut.

Biasanya ketika ada jailbreak untuk versi tertentu (misalnya 13), dan Apple sudah merilis vesi lebih baru (misalnya 13.1) maka “signing window” akan ditutup, artinya kita tidak bisa lagi upgrade ke versi 13 tapi harus langsung ke 13.1. SHSH blob hanya bisa dipakai di device yang sudah dijailbreak karena perlu akses root untuk set nonce.

Ini berbeda dengan sebagian device Android yang mengijinkan unlocked bootloader. Pada device Android dengan unlocked bootloader, kita bisa me-root ponsel kita dengan sangat mudah. Di Android APK dari playstore juga tidak dienkripsi (hanya ditandatangi digital) jadi rooting juga tidak wajib dilakukan.

Perlu diperhatikan: banyak website menyesatkan yang menyatakan bisa jailbreak iOS terbaru. Informasi terkini dan valid mengenai berbagai device dan versi iOS yang bisa dijailbreak serta tool untuk jailbreaknya bisa dilihat di:

https://www.reddit.com/r/jailbreak/wiki/escapeplan/guides/jailbreakcharts

Setelah jailbreak, tool yang bisa digunakan untuk mendekrip aplikasi adalah Clutch (iOS versi lama), bfinject (iOS 11) dan CrackerXI (iOS 12).

Developer Account

Untuk device yang tidak dijailbreak, semua aplikasi yang diinstall harus ditandangani digital. Dulunya kita perlu memiliki developer account (99 USD/tahun) untuk bisa menjalankan aplikasi apapun di device kita. Ini termasuk juga aplikasi/IPA yang sudah didekrip tetap perlu ditandatangani agar berjalan di device kita.

Tapi sekarang sudah ada kelonggaran: kita bisa menandatangani gratis tapi hanya berlaku 7 hari. Artinya setelah 7 hari, aplikasi tersebut tidak bisa berjalan, kita harus menandatangani (sign) dan menginstall lagi tiap 7 hari. Maksimum dalam satu waktu kita bisa menginstall 3 aplikasi dengan account gratis ini dan maksimum hanya 2 device per Apple ID. Proses reinstall ini butuh waktu dan butuh komputer. Saat ini cara termudah instalasi tanpa developer account dan tanpa jailbreak adalah dengan Cydia Impactor.

Untuk proyek jangka pendek dan untuk testing, account gratis ini sudah cukup. Tapi jika kita perlu sering melakukan ini, developer account akan sangat membantu. Tanpa developer account, beberapa hal cukup mengesalkan, misalnya:

  • Cydia Impactor sering tidak jalan di iOS terbaru (harus menunggu rilis terbaru),
  • Kita perlu membuat password iCloud spesifik untuk Cydia Impactor (dan kadang password ini expire, harus diset ulang)
  • Cydia impactor ini tidak mengingat password (harus ketik ulang atau copy paste)
  • Jika instalasi gagal, harus memasukkan ulang password
  • Jika ada banyak pekerjaan pentest, batas jumlah aplikasi akan terlampaui

Jika ponsel sudah dijailbreak, kita bisa memakai Reprovision yang berjalan di ponsel dan otomatis menandatangani ulang aplikasi tiap 7 hari. Tapi tentunya batasan jumlah aplikasi tetap berlaku.

Karena hasil dari testing iOS ini sudah jauh lebih besar dari harga developer account per tahun, saya memilih memakai developer account. Selain itu accountnya bisa saya pakai untuk development.

Membuat Aplikasi iOS

Mengenal cara sebuah aplikasi dibuat akan sangat membantu dalam proses reverse engineering. Khusus untuk pentesting, kadang developer meminta saran pada kita bagaimana memperbaiki sesuatu. Terkadang memberikan link saja sudah cukup, tapi di kasus tertentu sebuah solusi tidak bisa dipakai dan kita akan dipandang sebagai pentester yang baik jika kita bisa memberi saran perbaikannya.

Aplikasi iOS dulunya hanya ditulis dengan Objective C. Objective-C masih merupakan bahasa utama yang dipakai di seluruh sistem operasi, sama seperti Java di Android. Seluruh API utama masih menggunakan Objective C. Selain itu sekarang Apple mendukung bahasa Swift.

Sebuah aplikasi iOS akan dikompilasi menjadi format MachO. Format ini berbeda dengan ELF (Linux) dan PE (Windows) sehingga tool yang dipakaipun berbeda. Program bawaan XCode adalah otool yang bisa dipakai untuk men-dump file MachO (seperti objdump di Linux). Selain itu ada jtool yang fungsinya lebih banyak.

Saya sangat menyarankan reverser iOS memahami minimal C dan Objective C. Jika memahami Swift akan lebih baik lagi karena aplikasi modern sekarang ditulis menggunakan Swift. Cobalah membuat aplikasi Objective-C sederhana, lalu reverse engineer aplikasinya.

Sekarang ada banyak teknologi yang bisa dipakai untuk mengembangkan aplikasi iOS misalnya:

  • Cordova dan teknologi lain berbasis HTML
  • Unity (berbasis C#)
  • RubyMotion (Ruby)

Saya akan mengasumsikan aplikasi yang akan direverse engineer menggunakan Objective C atau Swift. Jika menggunakan bahasa lain, maka pelajarilah teknologi tersebut (di luar scope artikel ini). Ketika belajar Objective-C jangan lupa belajar teknik tingkat lanjut seperti Method Swizzling yang bisa dipakai untuk runtime patching sebuah method/class Objective C.

Assembly ARM64

iPhone versi awal memakai Thumb/ARM32, tapi saat ini semua device iOS terbaru memakai instruction set ARM64 jadi jika Anda belum pernah belajar ARM 32 bit bisa langsung skip ke ARM64. Secara teori jika kita memakai decompiler kita tidak perlu memahami level assembly, tapi kenyataanya:

  • Decompiler sering salah atau tidak lengkap hasil dekompilasinya
  • Beberapa aplikasi menggunakan proteksi yang menyulitkan decompiler
  • Untuk patching, kita tetap perlu paham assembly

Jadi saran saya: pelajarilah dasar assembly ARM64. Semakin dalam eksplorasi yang dilakukan, pengetahuan ARM64 yang dibutuhkan juga semakin banyak.

Untuk memulai belajar ARM, saya menyarankan website https://azeria-labs.com/. Websitenya sangat lengkap dan berfokus pada ARM secara umum (tidak spesifik ke teknologi untuk iOS).

Contoh dekompilasi dengan Ghidra

Langkah-langkah reverse engineering

Secara umum langkah-langkah reverse engineering Aplikasi iOS adalah sebagai berikut:

  • Dapatkan versi aplikasi yang tidak terenkripsi (langkah wajib). Bisa dari developernya atau dari dekrip aplikasinya
  • Opsional: gunakan class-dump untuk mendapatkan gambaran aplikasi
  • Bongkar aplikasinya dengan disassembler/decompiler
  • Opsional: lakukan dynamic reverse engineering dengan Frida atau Cycript
  • Opsional: lakukan patching aplikasi jika ada jailbreak detection

Langkah pertama sudah jelas, dan langkah-langkah berikutnya pada dasarnya adalah memakai berbagai tool.

Class-dump

Tool class-dump dapat digunakan untuk menghasilkan header objective-c dari binary Mach-O. Berbagai decompiler seperti Hopper, IDA Pro dan juga Ghidra bisa mengekstrak informasi ini secara otomatis, tapi class dump ini masih berguna karena:

  • Prosesnya cepat
  • Setelah mendapatkan header kita bisa dengan cepat melihat-lihat nama fungsi yang ada

Disassembler/Decompiler

Baik jtool maupun otool bisa mendisassemble file MachO, tapi untuk file yang berukuran besar proses membaca assembly memakan waktu lama. Biasanya sama memakai gabungan decompiler dan disassembler untuk memahami sebuah program.

Ghidra tools gratis dari NSA

Dulu satu-satunya decompiler untuk iOS adalah IDA Pro yang harganya mahal. Sekarang ini ada opsi gratis: Ghidra (pernah saya bahas di sini) dan ada opsi yang harganya relatif murah: Hopper. Kualitas dekompilasi Ghidra lebih bagus dan bisa berjalan cross platform, sementara tampilan Hopper lebih menarik.

Frida dan Cycript

Seringkali reversing statik sulit dilakukan dan modifikasi dinamik lebih cepat untuk memahami sebuah aplikasi. Ada dua tool yang berguna untuk ini: Frida dan Cycript. Untuk saat ini saya lebih menyarankan Frida karena masih dipelihara terus.

Frida bisa dijalankan di ponsel yang sudah dijailbreak (bisa meng-hook semua aplikasi) atau pada satu aplikasi di ponsel yang tidak dijailbreak. Untuk yang sudah dijailbreak, langkahnya lebih sederhana. Untuk yang belum dijailbreak:

  • Ekstrak IPA-nya (harus sudah didekrip)
  • Edit binarynya agar meload Frida (misalnya dengan insert_dylib)
  • Masukkan shared library Frida ke dalam aplikasi

Aplikasi kemudian perlu dijalankan dalam mode debug, karena tanpa ini beberapa fungsionalitas Frida tidak akan berjalan. Setelah frida berjalan, kita bisa menulis skrip dalam javascript untuk menginspeksi atau mengubah jalannya program.

Binary Patching

Jika jailbreak detection dilakukan di satu method terpisah (misalnya: isJailBroken) maka ini biasanya bisa diintercept oleh Frida dan tinggal diganti agar mengembalikan falses (“return 0”). Tapi kadang deteksi jailbreak dilakukan sambil melakukan hal lain. Kelemahan frida adalah: kita hanya bisa menambah/mengubah sesuatu di awal/akhir fungsi, jadi dalam kasus tertentu kita masih butuh melakukan patching.

Tidak ada yang istimewa dalam patching file MachO. Asalkan kita bisa mengerti ARM64, kita bisa mempatch opcode seperti biasa dengan hex editor.

Tweaks

Jika kita memakai iOS yang dijailbreak, maka kita bisa menginstall Tweaks. Tweaks ini pada dasarnya adalah shared library (dylib) yang akan diinjeksikan oleh daemon jailbreak ke proses target. Ada tweak tertentu yang bisa membantu proses reverse engineering/pentesting, misalnya ssl-kill-switch 2 untuk mendisable SSL Pinning.

Kita juga bisa membuat sendiri Tweaks untuk iOS dengan menggunakan Xcode, tapi biasanya tweaks dibuat menggunakan Theos. Kelebihan Theos dibandingkan Xcode adalah tersedianya SDK dengan private headers, yang berisi interface fungsi-fungsi yang tidak publik.

Penutup

Artikel ini masih merupakan perkenalan dan baru menyentuh hal-hal dasar reversing aplikasi iOS. Seperti bisa dilihat bahwa untuk terjun ke reversing iOS secara nyaman dibutuhkan uang yang lumayan (untuk membeli hardware macOS dan iPhone) atau waktu yang cukup banyak (setup Hackintosh).

Beberapa aplikasi dan game terkenal memakai berbagai teknik yang membuat reverse engineering iOS menjadi cukup sulit. Karena tingkat kesulitannya. para hacker game iOS bisa mendapatkan uang cukup banyak dari hacking berbagai game dan aplikasi iOS (contohnya developer ini).

Belajar Piano dengan App

Note: tulisan ini merupakan opini pribadi berdasarkan pengalaman belajar piano menggunakan aplikasi Simply Piano dari JoyTunes, saya tidak dibayar untuk menuliskan ini.

Sejak Jonathan belajar piano di kursus, sebenarnya saya sudah ikut-ikutan belajar piano. Tapi saya gak punya kemampuan memainkan musik sama sekali. Dari dulu takut sama not toge (not balok), dan cuma kenal do re mi karena pernah ikut paduan suara di gereja. Saya gak bisa juga mencari tau lagu itu seperti apa kalau belum pernah dengar sebelumnya, jadi bisa dibilang saya menghapalkan nadanya setelah diajarkan.

Tahun lalu, setelah piano-pianoan yang dipakai Jonathan hancur karena dicongkelin Joshua, akhirnya kami membeli piano digital yang jumlah tuts nya sudah sama dengan piano mekanis. Karena udah ada piano beneran, saya pikir sekalian saja saya belajar piano, masa sih gak bisa.

Awalnya sih, saya belajar dari buku-buku latihan piano Jonathan, terus gak sengaja nemu aplikasi Simply Piano ini. Aplikasi ini memberikan beberapa pelajaran pertama gratis, selanjutnya kalau mau meneruskan latihan ya harus bayar berlangganan. Berlangganannya mulai dari 279 baht/bulan atau 3250 baht/tahun. Kami memilih langsung langganan setahun, karena untuk mengirim Jonathan kursus saja biayanya pastinya lebih mahal dari itu.

preview aplikasi simply piano

Beberapa bulan pertama, saya cukup rajin latihan sekitar 30 menit sehari. Saya belajar banyak chord dan juga beberapa lagu populer. Ada pengenalan piano klasik, jazz, dan blues juga. Tapi karena kesibukan saya jadi lupa meneruskan berlatih lagi.

Sejak beberapa waktu lalu Jonathan pindah tempat kursus piano yang lebih dekat rumah. Gurunya ibu-ibu tua baik hati. Waktu dia tahu saya kadang-kadang ikutan belajar dari buku Jonathan, dia bersedia mengajari saya tanpa bayaran tambahan. Wow, ini sih rejeki jangan ditolak. Jadi sekali seminggu, ketika saya antar Jonathan kursus, dia belajar sekitar 40 menit, saya diajari 15 – 20 menit. Sisanya ya saya diharapkan berlatih sendiri di rumah.

Kelemahan saya dalam bermain piano adalah: saya tidak benar-benar membaca not dalam sheet music nya. Jadi saya menghapal cuma kunci C, dan G untuk tangan kanan, dan kunci C dan F untuk tangan kiri. Selanjutnya saya cuma membaca naik turunnya not tanpa benar-benar membaca not tersebut. Kalau notnya tidak berurutan, saya sering jadi gelagapan sendiri ngitung dalam hati ini not apa dan jari mana hahaha.

Setelah sekian lama melupakan aplikasi ini, saya jadi kepikiran lagi untuk mulai berlatih lagi setiap harinya. Di aplikasi ini ada menu untuk latihan 5 menit sehari. Masa sih gak bisa nyediain waktu 5 menit sehari. Awalnya mulai 5 menit, kalau gak ada gangguan siapa tahu bisa diteruskan jadi 30 menit latihan sehari.

menu latihan 5 menit sehari dari aplikasi simply piano

Harusnya dengan latihan setiap hari, saya bisa sekalian menghapalkan not dari lembaran musik piano. Harapannya sih digabungkan dengan belajar dari guru piano Jonathan, saya jadi beneran bisa main piano, bukan cuma tahu do-re-mi saja hehehe.

Ada banyak aplikasi belajar piano sejenis simply piano ini, tapi saya gak bisa komentar untuk yang lain, karena kami berlangganannya cuma yang ini. Oh ya, langganan simply piano bisa diinstal di beberapa device Android maupun iOs, jadi selain saya, Jonathan juga bisa memakai aplikasi ini. Joshua juga sudah mulai niru-niru tapi belum benar-benar mau mencoba mengikuti instruksi meletakkan jarinya hehehe.

Namanya belajar, tidak ada yang instan, harus terus menerus melatih diri. Mungkin akan ada yang heran, ngapain belajar piano sekarang? belajar piano itu buat saya sih untuk relaksasi. Rasanya ketika bisa memainkan sebuah lagu, enak aja gitu dengarnya berulang-ulang. Kalau lihat di YouTube, banyak orang belajar setelah dewasa, dengan komitmen belajar setiap hari, dalam waktu setahun mainnya udah jagoan. Saya sih gak muluk-muluk, gak harus jagoan, asal bisa mainin piano untuk mengiringi Joshua nyanyi atau untuk nyanyi bersama keluarga saja udah cukuplah hehehehe.

Joshua dan Osmo

Osmo ini dulu dibeli sebagai hadiah ulang tahun Jonathan yang ke-6. Joe pernah menuliskan reviewnya di sini. Mainan Osmo ini mainan di iPad, tapi ada mainan fisiknya.

Sejak tahun lalu, Joshua sudah tertarik pingin ikutan mainan Osmo kalau melihat Jonathan main. Tapi karena dia belum bisa dibilangin untuk rapihkan setelah main, dan mainan ini banyak bagian kecil-kecilnya, saya jarang kasih Joshua main. Mainan Osmo ini sudah lama tidak dimainkan juga dengan Jonathan. Supaya tidak hilang begitu saja, mainan ini saya simpan agak jauh dan memang jadinya agak lupa.

Beberapa hari ini Joshua ingat lagi dengan Osmo, memang belakangan ini kami kasih kesempatan Joshua main iPad lagi. Awalnya dia tertarik dengan mainan Osmo Number. Joshua ini kalau main, seringnya gak mau diajarin, dia suka aja bikin cara main sendiri. Harusnya mainnya itu di depan ipadnya. Bisa untuk belajar penjumlahan ataupun perkalian. Tapi Joshua bikin sendiri mainannya dengan kepingan-kepingan Osmo Numbers. Misalnya bisa dilihat di gambar.

Sebelum sampai ke susunan seperti di gambar, dia menyusun mulai dari 1, lalu 1+1 = 2, dan seterusnya. Kadang-kadang saya heran, kok ya dia sabar banget ya mainan begini hahaha.

Selain mainan dengan Osmo Numbers, dia juga hari ini tertarik menyusun tangram. Dia mencoba membuat semua tangram yang paling basic. Lalu setelah selesai, dia menyusun sendiri dengan imajinasinya dan tidak mengikuti contoh.

Senang rasanya mainan yang bisa membuat anak betah main dan juga mengembangkan imajinasinya. Sayangnya, tadi abis main tetep gak mau beresin, jadi mainannya harus disimpan lagi dan dikeluarkan besok kalau saya bisa nemenin main lagi. Besok-besok mungkin bisa diajarkan mainan menggambarnya dan programming. Tadi mainan Tangram dan number cukup lama. Sebagian besar dia gak menggunakan iPadnya, cuma mainan perlengkapan Osmonya saja.

Menurut kami, setelah beberapa tahun memiliki Osmo, asal disiplin merapihkan setelah bermain, mainan ini walau harganya agak mahal sudah cukup berguna. Mainan sudah dimainkan 2 anak berjam-jam (berhari-hari), dan anak-anak bisa bermain dan belajar. Mudah-mudahan makin banyak mainan yang mengenalkan bentuk fisik selain berupa aplikasi di tablet/iPad saja.

Kesan kembali memakai iOS

Selama beberapa tahun terakhir saya memakai iOS hanya untuk pentesting (dan juga ikut pelatihan iOS security di Hong Kong). Tadinya meskipun punya iPad dan iPhone, keduanya usianya cukup tua (keduanya > 5tahun). iPhone 5S sudah terasa sangat lambat, sementara iPad lebih sering dipakai untuk main oleh Joshua (dan sesekali oleh saya jika ada pentest aplikasi iPad). Sebelum iPhone 5S saya memakai iOS di iPod touch dan iPod touch 2nd generation.

Bulan Januari saya membeli iPhone XR (ini yang termurah yang mendukung prosessor A12) dan bulan ini saya membeli iPad (yang biasa bukan yang mini ataupun Pro). Pembelian iPhone tujuannya untuk pentesting (dan sudah terpakai), sementara iPad untuk membaca buku dan melihat materi Coursera (sekaligus hadiah untuk diri sendiri sudah menyelesaikan 6 Course di Coursera).

Sekarang saya ingin menuliskan kesan memakai kedua benda tersebut. Saya awali dengan iPhone. Hal yang saya suka sejauh ini adalah: kameranya bagus dan cepat, kadang merasa agak menyesal nggak sekalian beli XS yang kameranya lebih bagus lagi tapi perbedaan harganya cukup tinggi. iPhone XR juga waterproof sehingga bisa dipakai untuk berfoto di kolam renang.

Dari sisi software, saya tidak melihat sesuatu yang menarik di banding Android. Kebanyakan aplikasi memang lebih indah, tapi karena keterbatasan yang diberikan Apple, fungsionalitasnya kurang. Contoh: ingin ssh tunelling? koneksinya terbatas sekian menit saja.

Contoh lain: Pythonista merupakan implementasi Python yang bagus (berbayar, cukup mahal 9.99 usd) dan bisa dipakai untuk membuat program dengan antarmuka yang cantik. Tapi Pythonista tidak bisa dipakai untuk belajar machine learning (contoh: tidak ada package tensorflow).

Ketika memakai keyboard Google, sering kali keyboardnya kembali ke default keyboard (default keyboard memang akan selalu dipakai untuk input password, tapi dalam kasus ini switching ke keyboard default terjadi secara random). Akhirnya masalah ini selesai setelah menghapus keyboard default.

Mungkin hanya kebetulan saja, tapi berbagai aplikasi yang saya pakai semuanya memiliki banyak masalah kecil. Contohnya Quiz di Coursera kadang gagal terload (padahal berjalan baik di Android). WordPress untuk iOS juga lebih sering error dibanding WordPress for Android (tapi secara umum aplikasi ini emang agak kurang stabil di kedua platform). Aplikasi Alkitab yang ada juga kurang bagus di banding Android. Bahkan yang berjalan baik di Android seperti Bible.is sering crash di iOS.

Fitur face unlock di iPhone XR sangat bagus dan akurat serta sangat nyaman digunakan. Tapi saat ini di Chiang Mai sedang polusi berat, dan fitur face unlock yang bagus ini jadi tidak bisa dipakai ketika saya memakai dust mask. Dalam saat seperti ini sangat terasa bahwa fingerprint di Poco F1 lebih berguna.

Beberapa aplikasi lain menurut saya sama saja baik di Android dan iOS, tidak terasa bedanya sama sekali. Contoh aplikasinya: AliExpress, Facebook, Telegram, Netflix, Reddit, Twitter, Instagram, dan berbagai aplikasi Google (Youtube, Photos, Maps, Translate). Game yang saya mainkan hanya Pokemon Go dan ini loadingnya sedikit lebih cepat di iPhone XR dibanding Poco F1.

Saya hanya memakai iPad untuk membaca dan rasanya cukup nyaman. Saya belum membeli Apple Pencilnya, jadi belum tahu apakah akan terpakai atau tidak. Di banding iPad 3, iPad yang baru ini lebih ringan jadi lebih enak dipegang. Kecepatannya sekarang juga sudah bagus sehingga tidak lambat membuka PDF. Batere iPad juga tahan lama, lebih lama dari berbagai tablet Android yang pernah saya pakai.

Setelah mencoba lebih dari sebulan, saya kembali lebih sering memakai ponsel Android saya dan akan terus memakai iPad. Jika bukan karena memakai ponsel iPhone XR untuk pentesting (dan saya mendapatkan uang pembelian iPhone XR ini dari reward menemukan bug), saya merasa manfaat iPhone ini kurang sepadan dengan harganya untuk pemakaian sehari-hari (not worth the price).