Kegagalan Alat Fingerprint

Salah satu penerapan teknologi informasi yang mulai banyak digunakan adalah alat pemindai sidik jari (fingerprint scanner). Alat ini digunakan untuk mengidentifikasi seseorang berdasarkan sidik jarinya. Pemakaian yang terbanyak adalah untuk menunjukkan kehadiran – istilah sehari-harinya absensi.

Penerapan teknologi ini harus hati-hati sehingga bukan malah membuat masalah. Sebagai contoh, saya sering kesulitan untuk mengidentifikasi diri dengan alat ini. Di kampus saya, alat ini digunakan sebagai tanda kehadiran. Nah, sering saya tidak dapat dikenali oleh alat ini.

Ini contoh video yang saya ambil ketika saya mencoba mencatatkan kehadiran.

Setelah berulangkali gagal, saya menyerah. Hasilnya memang saya dianggap tidak hadir pada hari itu. Terserah lah … Kumadinya welah, kata orang Sunda. he he he.

Iklan

Block 71 Bandung

Beberapa tahun yang lalu – mungkin sekitar tahun 1998(?) [wah sudah lama ya] – kami menulis dokumen tentang Bandung High-Tech Valley (BHTV). Isinya adalah tentang kawasan Bandung (dan sekitarnya) dapat menjadi cerminan Silicon Valley-nya Amerika. (Ini membutuhkan blog post terpisah.) Salah satu hal yang saya impikan pada waktu itu adalah kawasan jalan Dago – nama resminya adalah Jl. Ir. H. Juanda – berisikan perusahaan-perusahaan yang berbasiskan teknologi. Modelnya mirip dengan Palo Alto-nya Silicon Valley. Jadi bukan kawasan perkantoran seperti yang ada di Jakarta.

Nah, sekarang ini mulai kejadian. Minggu lalu Block 71 Bandung dibuka. Apa itu Block 71 Bandung? Silahkan simak video ini.

Singkatnya, Block 71 adalah inisiatif dari Nasional University Singapore (NUS) Enterprise. Mereka mengembangkan sebuah tempat yang memang alamatnya adalah “Block 71” di Singapura. Tempat itu digunakan untuk mengembangkan banyak start-up. Hasilnya luar biasa. Selain mengembangkan block-block lain di sekitarnya, “Block 71” secara organisasi juga mulai merambah ke negara-negara lain. Indonesia merupakan salah satunya. Di Indonesia saat ini sudah ada Block 71 di Jakarta, Jogjakarta, dan sekaarang di Bandung.

Mengapa jalan Dago ini merupakan hal yang esensial? Karena dia dekat dengan berbagai perguruan tinggi; ITB, UNPAD, UNPAR, UNPAS, UNIKOM, ITHB, dan masih banyak lainnya. Ini salah satu kunci kesuksesan kawasan teknologi, yaitu kedekatan dengan tempat sumber daya manusia (SDM) dan tempat penelitian.

Sebentar lagi akan ada perusahaan-perusahaan teknologi lain di jalan Dago, menggantikan factory outlet yang menjadi jagoannya kota Bandung. ha ha ha. Asyik. Bandung betul-betul menunjukkan diri sebagai kota teknologi yang mendukung entrepreneurship.

Dreams do come true.

Mengapa Bahasa Python?

Saya ingin belajar bahasa pemrograman. Bahasa apa yang sebaiknya saya pelajari?

Pertanyaan ini merupakan salah satu pertanyaan yang sering (dan berulang) ditanyakan. Jawabannya bergantung kepada waktu. Jawaban beberapa tahun yang lalu akan berbeda dengan jawaban sekarang. Ini disebabkan oleh pesatnya perkembangan komputer dan bahasa pemrograman.

Jawaban atas pertanyaan ini pada saat sekarang adalah bahasa Python. Mengapa Python?

  1. Mudah. Definisi “mudah” ini tentu saja harus diperjelas lagi. Dia lebih mudah dipelajari daripada bahasa pemrograman lainnya, sehingga Python digunakan oleh orang dari berbagai bidang – tidak hanya orang yang berlatar belakang teknologi informasi saja. Saya melihat banyak penggunaan Python di bidang sains. Bahasa Python juga merupakan sebuah bahasa yang interpreted, yaitu tidak perlu dirakit (compile) dahulu seperti bahasa pemrograman C misalnya. Ini membuat siklus koding menjadi lebih sederhana.
  2. Tersedia di berbagai sistem operasi. Python tersedia untuk sistem operasi Linux, Mac OS X, Windows, dan seterusnya. Tidak semua bahasa pemrograman tersedia dengan baik untuk berbagai sistem operasi. Artinya siapapun dapat menggunakan Python./
  3. Tersedia banyak pustaka (library). Menurut saya ini aspek yang paling penting dari mengapa belajar bahasa Python. Pustaka (library, module) ini membuat pemrograman kita menjadi lebih mudah karena sudah ada orang lain yang mengembangkan alat bantunya. Untuk melakukan statistik, sudah ada pustakanya. Grafik? Ada juga. Untuk bidang-bidang yang khususpun seperti Artificial Intelligence dan Machine Learning juga sudah ada modulnya. Apapun, nampaknya sudah ada. Ini yang membuat bahasa Python sangat menarik dibandingkan bahasa pemrograman lainnya.

Oh ya. Versi video dari penjelasan ini ada di YouTube. Saya sedang memulai channel Padepokan Budi Rahardjo ini di sana. Silahkan dicek (dan juga dikomentari ya – kalau perlu subscribe juga).

Python dan Perl

Senin lalu melanjutkan memberikan training soal Data Science dengan menggunakan Python. Salah satu tugas yang harus kami lakukan adalah membersihkan data yang diperoleh dari proses dump aplikasi links ke akun twitter. (links -dump http://twitter.com/rahard)

Awalnya saya memulai koding dengan menggunakan bahasa Python, tapi di tengah jalan macet karena saya lupa cara-cara melakukan regular expression (regex) di Python. Misalnya lompati (skip) baris yang memiliki pola penulisan “* sesuatu”. Atau melompati baris yang hanya berisi spasi saja. Sebetulnya saya bisa sih, tetapi harus baca dokumentasinya dulu. Padahal ini lagi live coding. ha ha ha. Harus cepat. Akhirnya yang saya lakukan adalah saya koding awal dengan menggunakan bahasa Perl. ha ha ha.

Di kepala saya memang logika pemrograman diimplementasikan dengan menggunakan bahasa Perl. Jadi kalau mau mengerjakan sebuah kodingan, yang terpikir adalah kodenya dalam bahasa Perl.

Kembali ke kasus tadi. Dalam waktu singkat, kodingan Perl sudah menunjukkan apa yang saya mau (meskipun masih harus dilanjutkan lagi karena ada banyak exception yang harus dilakukan). Poin yang ingin saya sampaikan di kelas ada bahwa untuk melakukan pembersihan terhadap data dapat dilakukan dengan menggunakan skrip. Cara ini efektif meskipun caranya adalah quick and dirty. Namanya juga hacking. Itulah sebabnya dalam deskripsi tentang data science (yang diusulkan oleh Drew Conway), salah satu komponennya adalah “hacking skills“.

Kembali ke kasus (lagi), saya punya pekerjaan rumah untuk membuat versi Python dari kode Perl saya. Hadoh.

 

Sampah Email

Memiliki server email sendiri itu banyak masalah. Salah satunya adalah banyaknya spam. Ini contoh tampilan mailbox saya. Lihat. Ada lebih dari 20 ribu email! Kebanyakan email tersebut adalah spam. Nyebelin.

BR-mailbox-edit

Kalau pasang filter spam di server sendiri bebannya berat sekali. Ini masih harus diukur lagi. Dahulu CPU bisa terpakai banyak untuk ini sehingga email sampai menjadi tertunda. Belum lagi nanti harus memperbaharui (update) filter spam tersebut. Tambah kerjaan saja.

Kalau menggunakan server orang lain, seperti Gmail, enaknya spam sudah difilter. Kita tinggal mendapati email yang sudah “bersih”, meskipun kadang-kadang ada email yang nyasar ke folder spam. Setidaknya waktu kita tidak habis untuk mengurusi spam. Lebih produktif. Sementara ini saya masih menimbang-nimbang apakah memasang kembali filter spam di server mail kami.

Bandung Dingin

Beberapa hari ini kata orang Bandung terasa dingin. Menurut saya juga. Bagaimana sesungguhnya? Kebetulan Bandung memiliki beberapa sensor cuaca yang dapat diakses secara online. (Saat ini layanan ini belum diluncurkan sehingga URL-nya belum dapat saya tampilkan di sini. Sebentar lagi akan beres dan akan dibuka untuk publik melalui API.)

Sebaran dari sensor-sensor tersebut dapat dilihat pada gambar-gambar berikut ini.

weather-1-allplaces
Sensor cuaca di kota Bandung

Daftar namanya adalah sebagai berikut.

weather-2-allsensors_0001_01
Daftar sensor cuaca di kota Bandung

Mari kita lihat kondisi Bandung pada pagi ini. Berikut ini adalah gambar sensor yang berada di kantor CBN Bandung, yang berada di jalan Pasir Kaliki. Ada hal yang menarik bahwa terjadi kenaikan temperatur sebelum jam 8 pagi. Temperatur di bawah 20 derajat Celcius dan kemudian melonjak.

weather-3-cbn_0001
Temperatur di depan kantor CBN Bandung

Sebagai perbandingan, berikut ini adalah situasi di rumah saya (Insan Music Store), yang letaknya di sekitar Bandung Timur Laut.

weather-4-insan_0001
Temperatur di kantor Insan Music Store

Saya cek data dari sensor-sensor lain, ternyata mirip. Mereka semua mengalami kenaikan setelah pukul 7:20 pagi. (Data rinciannya di database. Kapan-kapan mau dioprek ah.)

weather-5-paledang_0001
Temperatur di Kelurahan Paledang, Bandung

Jadi kesimpulan sementara, memang tadi pagi Bandung cukup dingin, yaitu di bawah 18 derajat Celcius. (Kalau di Lembang katanya di bawah 14 derajat Celcius. Wow!)

Mengapa Bandung dingin akhir-akhir ini, sudah ada pembahasannya di tempat lain. Nanti akan saya sampaikan tautannya di sini.

Source Code Versioning & Security

Dalam kuliah “Software Security” yang saya ajarkan minggu lalu, kami berdiskusi mengenai topik “source code versioning” dan “security“. Apa kaitannya keduanya? Adakah kaitannya?

Source code versioning adalah sebuah kegiatan dalam pengembangan perangkat lunak. Pada awalnya pengembangan perangkat lunak dilakukan secara serampangan. Tidak ada metodologi. Pokoknya asal jadi saja. Salah satu masalah yang muncul adalah ketidakjelasan versi yang digunakan. Misal, di sistem produksi ada masalah dengan perangkat lunaknya. Dia menggunakan versi 1.1. Sementara itu di bagian pengembangan, perangkat lunaknya sudah sampai ke versi 1.7. Agak sulit menentukan masalah karena ada perbedaan versi. Masalah lain juga dapat terjadi ketika terjadi upgrade. Misal, perangkat lunak dari versi 1.1 diperbaharui menjadi versi 1.3 kemudian diperbaharui lagi ke versi 1.7. Ternyata ada masalah di versi 1.7, maka perangkat lunak harus dikembalikan ke versi sebelumnya. Tanpa menggunakan versioning, ini akan sulit dilakukan.

Saat ini ada banyak sistem source code versioning ini. Yang paling terkenal saat ini adalah Git.

Mari kita sekarang membahas topik utamanya; hubungan antara code versioning ini dengan security. Dalam diskusi yang kami lakukan, kami belum menemukan hubungan atau alasan yang dapat diterima dengan mudah bahwa code versioning itu mendukung security. Yang kami temukan adalah alur seperti ini:

Pengembangan perangkat lunak sangat disarankan (harus?) menggunakan code versioning. Karena code versioning ini digunakan, maka hal-hal yang terkait dengan itu harus aman (secure). Kendali-kendali keamanan apa saja yang sudah diterapkan?

Itu yang baru dapat kami utarakan.