AlphaSmart Dana

AlphaSmart Dana adalah device Palm OS lama dengan form factor keyboard yang sudah tidak diproduksi lagi. Device ini dulu cukup populer di banyak sekolah di Amerika, terutama digunakan untuk anak-anak yang kesulitan menulis dengan pulpen/pensil. Device ini saat ini masih populer di kalangan penulis karena beberapa hal: keyboardnya enak dipakai untuk mengetik, minim gangguan (karena tidak bisa mengakses internet), relatif ringan (sekitar 1 kg), memakai 3 Batere AA biasa (atau yang rechargable) dan tahan beberapa puluh jam sebelum perlu mengganti batere lagi. Ada dua versi Dana, Wireless dan non wireless, yang akan dibahas di sini adalah versi wireless yang kami punya.

Stiker biru kecil di tengah Dana itu ditempelkan supaya gampang membedakan dari Dana yang lain.

Untuk mentransfer data ke komputer, ada beberapa opsi. Opsi pertama adalah menggunakan mode keyboard, dengan ini seolah-olah Alphasmart akan “mengetik ulang” isi file ke editor apapun yang terbuka di layar komputer. Dengan cara ini AlphaSmart Dana bisa terkoneksi ke device apa saja yang menerima input dari USB keyboard (termasuk juga tablet atau ponsel, asalkan bisa memberikan cukup daya). Kabel yang digunakan adalah kabel USB printer standar. Opsi kedua adalah dengan menggunakan jaringan WIFI (sayangnya yang disupport hanya WEP). Opsi terakhir adalah dengan menggunakan SD Card Lanjutkan membaca “AlphaSmart Dana”

Reverse Engineering APK

Saya sudah menulis beberapa artikel terpisah mengenai reverse engineering APK Android (misalnya di http://yohan.es/security/android/) . Di posting ini saya ingin menggabungkan berbagai tulisan yang pernah saya buat dalam satu posting, supaya lebih gampang dibaca. Topik yang lebih umum mengenai Pengantar Reverse Engineering sudah pernah saya bahas di blog ini (tidak spesifik Android).

 

Tujuan Reversing

Pertama, tentukan tujuannya apa ingin bisa reversing APK. Ini bisa digolongkan jadi dua bagian: apakah ingin mengetahui cara kerjanya? (sekedar membaca kode) atau ingin mengubah aplikasinya? (memodifikasi kode) Yang termasuk dalam kategori pertama: apakah ingin ekstrak API-nya, ingin membaca file yang dibuat oleh aplikasi, ingin tahu protokol aplikasi. Lanjutkan membaca “Reverse Engineering APK”

Mengajarkan Computational Thinking dan Coding Pada Anak-Anak

Saya tidak akan menjelaskan panjang lebar apa itu Computational Thinking. Sudah ada banyak materi online, bahkan kursus online dari Google juga ada. Computational Thinking adalah cara berpikir untuk menyelesaikan masalah yang diinspirasi dari cara orang menyelesaikan masalah di ilmu komputer. Computational thinking perlu dipakai untuk membuat program komputer, tapi juga bisa diaplikasikan ke berbagai bidang lain.

Computational thinking bisa dan perlu diajarkan pada orang di berbagai usia, tapi saya hanya akan berfokus pada anak-anak di posting ini.  Mungkin sebagian akan langsung berpikir: anak-anak kok diajari seperti itu, harusnya diajari seni, kreativitas, agama, sopan-santun, dsb. Pencetus istilah computational thinking pernah menyatakan ini:

I FEEL VERY DEEPLY COMMITTED TO THE IDEA that, although rationality isn’t everything, and passion and interests and faith of various sorts count as much–nevertheless, rationality is a force for the good, and the more people that are capable of rational, critical thinking–the better the world will be; the more that have access to knowledge about the rest of the world–the better the world will be.”

–Seymour Papert, Mathematician, Computer Scientist, Educator

Computational thinking menurut saya adalah life skill yang berguna untuk mempermudah hidup. Berbagai pendekatan menyelesaikan masalah dalam computational thinking bisa diaplikasikan dalam kehidupan sehari-hari. Misalnya bagaimana menyusun buku secara terurut, bermain sudoku, bermain catur, merencanakan perjalanan, menyusun jadwal. Bahkan membaca cerita detektif dan misteri akan lebih menyenangkan jika kita memiliki cara berpikir yang logis.

Saat ini ada inisiatif internasional yang bernama Bebras yang memperkenalkan computational thinking kepada pelajar mulai sekitar kelas 3 SD sampai usia SMU. Berbeda dengan olimpiade informatika atau coding challenge yang perlu memprogram, dan olimpiade matematika yang sangat teoretis, tantangan Bebras berada di antara keduanya.

Walaupun saya tidak meminta Jonathan jadi programmer, tapi karena dia melihat saya tiap hari berada di depan komputer, ngoprek segala macam hardware, termasuk membuatkan dia berbagi mainan, dia jadi curious. Jadi pelajaran yang saya berikan pada Jonathan lebih banyak untuk menjawab keingintahuannya. Hal penting bagi saya saat ini adalah: saya tidak ingin memaksakan kemampuan Jonathan dan membebaninya dengan hal yang kompetitif.

Saya memakai layar di kiri, sambil membuka file PDF di layar kanan untuk diketik ulang oleh Jonathan di laptop kecil.

Topik seperti matematika dianggap sulit, tapi sebenarnya bisa dijelaskan pada anak-anak dengan banyak pengalaman sehari-hari. Hal-hal kecil seperti menghitung benda yang kita miliki, menghitung kembalian, dan menghitung waktu bisa diajarkan. Misalnya kita bisa bertanya seperti ini “kira-kira butuh 10 menit untuk pergi ke sana, jadi kita perlu berangkat jam berapa?”. Lanjutkan membaca “Mengajarkan Computational Thinking dan Coding Pada Anak-Anak”

Mengajarkan Basis Bilangan

Salah satu dari materi di pelajaran Language Arts adalah memahami dictionary order (lexicographical order) . Materi ini sangat mudah dimengerti, bahwa AAA muncul sebelum AAB. Beberapa latihan dalam materi ini adalah mempraktikkan mencari kata di kamus dan mengurutkan kata berdasarkan urutan kamus.

Seperti biasa, kadang Jonathan belajar di samping saya yang sedang bekerja di depan komputer. Jadi saya mencoba menguji Jonathan dengan soal sederhana, seperti, jika kita cuma punya 4 huruf dan kita urutkan berdasarkan urutan kamus, maka setelah AAAA, AAAB, AAAC adalah? jawabannya tentunya adalah AAAD. Nah setelah AAAZ berikutnya apa? saya membantu jawab dengan AABA, berikutnya Jonathan sudah tahu bahwa setelah AAZZ berikutnya adalah ABAA. Saya menggunakan Microsoft Word dengan font yang saya perbesar untuk bisa dengan cepat menjelaskan hal seperti ini.

Saya jelaskan juga bahwa sebenarnya cara kita berhitung dalam basis 10 juga seperti itu. Setelah digit terakhir (paling kanan) menjadi 9, maka berikutnya menjadi 0, dan kita menambahkan ke digit sebelumnya. Tadi ada 26 simbol untuk A-Z sedangkan untuk bilangan desimal ada 10 bilangan (0-9). Bagaimana jika kita cuma punya 0 dan 1 (biner). Saya mulai dengan 0000, apa berikutnya? gampang sekali dipahami bahwa ini menjadi 0001. Jonathan perlu berpikir sedikit untuk mengingat bahwa digit “2” tidak ada, jadi 1 kembali menjadi 0, dan digit berikutnya dinaikkan, hasilnya 0010. Berikutnya lagi kita tambah satu lagi menjadi 0011.

Sekarang saya memberi label desimal di sebelah kiri urutannya:

0 0000
1 0001
2 0010
3 0011

Dengan melihat tabel ini bisa dilihat bahwa 3 desimal sama dengan 0011 dalam biner. Saya bisa saja menjelaskan lebih lanjut mengenai cara singkat konversi dari biner ke desimal, tapi karena saya hanya menyisipkan materi di language arts maka tidak saya teruskan.

Sebenarnya masalah berhitung biner ini sudah pernah dibaca Jonathan, salah satunya dari buku Lift-The-Flap Computers and Coding.

Seperti kebanyakan buku, yang diajarkan biasanya lebih ke cara cepat konversi biner ke desimal, dan bukan mengapa cara berhitungnya seperti itu. Lanjutkan membaca “Mengajarkan Basis Bilangan”

Kenapa kami memilih homeschooling

Sebagian orang sudah memiliki pengalaman homeschool (atau mereka sendiri adalah hasil didikan homeschool) sehingga sudah sangat yakin untuk memulai homeschool, dan bahkan tidak mencoba sama sekali sekolah konvensional. Kami bukan orang yang seperti itu. Dari dulu kami tertarik dengan homeschool tapi belum yakin. Waktu Jonathan masih sekitar 3 tahun, Risna sempat bergabung dengan group homeschool dan belajar banyak tentang homeschool. Tapi kemudian kami memasukkan Jonathan ke sekolah, dan sepertinya Jonathan suka di sekolah.

Di masa level taman kanak-kanak, sekolah cukup menyenangkan bagi Jonathan, tapi ketika mulai masuk SD, sudah terasa menjadi beban, dan semakin bertambah ketika naik kelas 2. Jonathan tidak memiliki kesulitan untuk masalah membaca, menulis dan matematika tapi masalah dengan kegiatan sekolah yang terlalu lama. Di Thailand sini, semua sekolah yang kami tahu merupakan sekolah full day, mulai dari jam 8.30 pagi (bahkan ada yang lebih pagi) sampai sore (15.00, dan beberapa sekolah bahkan lebih lagi). Lanjutkan membaca “Kenapa kami memilih homeschooling”

Tips dan Trik dnsmasq

dnsmasq adalah satu software yang memiliki beberapa fungsi: sebagai DNS server, DHCP server, router advertisement (untuk IPv6), dan juga TFTP dan PXE (untuk network booting). Software ini sangat kecil dan terinstall di banyak router terutama yang berbasis OpenWRT.  Biasanya yang dipakai oleh kebanyakan orang hanya fitur DHCP dan DNS basicnya saja. Di posting ini saya ingin sharing beberapa fitur lain yang saya pakai.

Saat ini saya memakai dnsmasq di router saya, yang merupakan Mini PC merk Qotom (Intel Celeron J1900 Quad Core dengan RAM 2GB). Router ini cukup powerful, tapi dnsmasq bisa berjalan dengan memori sangat kecil (minimum yang pernah saya pakai adalah 16 MB) dan CPU yang lambat (minimum yang pernah saya pakai MIPS 200 Mhz). Apa yang bisa dilakukan oleh dnsmasq ini bisa dilakukan dengan kombinasi beberapa software (misalnya memakai bind untuk DNS server, tftpd untuk FTP server, dsb) tapi tentunya resource yang dipakai lebih banyak. Lanjutkan membaca “Tips dan Trik dnsmasq”

Lulusan Kuliah IT seharusnya bisa apa?

Tahun lalu saya membaca mengenai skill yang seharusnya dimiliki lulusan SMK. Entah kenapa tulisan ini beredar lagi di timeline saya tahun ini. Ketika saya baca lagi mengenai skill yang diharapkan, kebanyakan skill ini bahkan tidak dimiliki oleh lulusan Sarjana Informatika/Ilmu Komputer/Teknologi Informasi (berikutnya akan saya singkat jadi: lulusan/sarjana IT).

Sudah menjadi fakta bahwa banyak lulusan IT yang tidak bisa memprogram (silakan baca artikel: Why can’t programmers.. program?). Separah ini:

Like me, the author is having trouble with the fact that 199 out of 200 applicants for every programming job can’t write code at all. I repeat: they can’t write any code whatsoever.

Sebelum diskusi masuk ke masalah pekerjaan, kesuksesan, jiwa entrepreneur, dsb saya ingin menekankan dulu: lulusan apapun dengan skill bagaimanapun bisa bekerja di berbagai bidang yang tidak sesuai jurusan yang diambilnya. Tapi jika sebuah negara ingin bisa maju di bidang tertentu, ya tentunya yang diharapkan adalah lulusan dari bidang tersebut memiliki skill yang baik dan berkontribusi di bidangnya. Lanjutkan membaca “Lulusan Kuliah IT seharusnya bisa apa?”