IoT Programming

Steve Jobs pernah berkata, “Untuk setiap penggemar hardware, ada 10 orang yang suka ngulik software. Software hobbyists”. Tidak persis benar, tetapi kira-kira begitulah kata-katanya. Itulah sebabnya dia (dan Steve Wozniak) membuat komputer Apple ][. Sebelumnya kalau mau ngoprek software, harus ngoprek kit komputer. Harus tahu hardware. Padahal ada orang yang tidak memiliki latar belakang hardware, tapi ingin ngoprek komputer.

Salah satu kesulitan ngoprek hardware adalah menyambung-nyambungkan komponen. Bahkan untuk sekedar menyambungkan LED juga tidak mudah. Padahal “hello world” di dunia hardware itu adalah blinking LED.

Jika menyambungkan 1 LED saja sudah susah, apalagi menyambungkan 6 LED (atau lebih). Itulah sebabnya jarang yang membuat tutorial untuk menyalakan LED lebih dari 1 buah.

Salah satu solusi yang kami tawarkan adalah  membuat LED board yang cocok dengan board yang umum ada di lapangan. Sebagai contoh, ini adalah tampilan ProcodeCG LED (6 buah LED) yang disambungkan dengan NodeMCU. Bersih kan? Tidak perlu ada kabel-kabel.

p_20170306_092518-nodemcu-procodecg-0001

Sekarang kita dapat membuat kode Knight Rider LED tanpa perlu pusing dengan kabel-kabelnya. Jadi orang yang gemar software tetapi tidak memiliki latar belakang hardware dapat juga ikut ngoprek IoT (Internet of Things).

[Nanti video dan kode untuk menyalakan LED tersebut akan saya unggah ke YouTube. Sekarang akses internet lagi lemot.]

Selamat ngoprek.

Ngoprek IoT

Sudah seminggu ini (atau mungkin lebih?) saya ngoprek Internet of Things (IoT). Apa sih IoT itu? Pada dasarnya ini adalah perangkat keras (hardware) dalam ukuran kecil yang dapat diprogram untuk mengambil data (misal data temperatur) dan meneruskannya ke internet. Teknologi elektronika dan komputer berkembang dengan pesat sehingga perangkat dapat menjadi lebih kecil dan murah. Demikian pula kecepatan akses internet menjadi lebih cepat dan juga lebih murah. Kedua hal inilah yang menyebabkan populernya IoT.

p_20170220_075632-kopi-iot-01
NodeMCU boards

Latar belakang saya memang elektronika, sehingga seharusnya tidak banyak kesulitan dalam ngoprek IoT ini. Kenyataannya ada hal-hal yang sangat spesifik sehingga harus saya oprek dulu sebelum bisa jalan. Tadi malam saya ngoprek sampai jam 2 pagi (eh, 2 malam?). he he he.

Saya memiliki banyak development boards. Begitu ada yang baru, beli atau minta. (Yang terakhir itu yang menarik, minta. he he he.) Terus dioprek. Hasilnya saya masukkan ke YouTube dan kodenya saya simpan di Github supaya dapat dimanfaatkan orang lain. Ayo ngoprek IoT juga.

(PGP) Key-Signing Party

Salah satu aktivitas dalam rangka menjalankan sistem teknologi informasi yang aman (secure IT operation) adalah proses pertukaran kunci publik. Sistem kunci publik yang digunakan biasanya berbasis kepada PGP (Pretty Good Privacy) atau Gnu Privacy Guard (GPG). Maka di kelas saya, dilakukan key-signing party.

P_20170214_134309-01 keysigning

Para mahasiswa diminta membuat kunci publiknya, mengunggah kuncinya ke sebuah keyserver, dan kemudian menunjukkan identitasnya (KTP, kartu mahasiswa). Saya unduh kunci mereka dan saya tandatangani (signed) kunci mereka itu setelah melihat dan memastikan bahwa identitas mereka itu benar. Inilah kegiatan key-signing party yang sesungguhnya.

P_20170214_134545_BF keysigning

Di atas beberapa foto proses tersebut. Seru. Untuk memproses seluruh kunci di kelas ini dibutuhkan lebih dari 1 jam.

Startup Accelerator

Kemarin saya memberikan presentasi di LPIK ITB terkait dengan Startup. Topik yang seyogyanya saya bawakan adalah tentang kaitan antara startup dengan corporate. Acara ini merupakan bagian dari pengenalan Plug and Play Tech Center, sebuah accelerator startup.

Kalau dilihat dari siklus sebuah startup, accelerator ini berada setelah inkubator. Urutannya kira-kira begini. Mulai dari ide. Ide tersebut dikembangkan menjadi produk (atau servis). Pendanaan di awal dapat dimulai dari diri sendiri atau angel investor. Langkah selanjutnya adalah menjadi bisnis betulan. Ada kalanya ini dilakukan melalui inkubator (meskipun sesungguhnya tidak semuanya harus melalui inkubator). Accelerator letaknya setelah itu, yaitu untuk meningkatkan bisnis menjadi lebih besar skalanya.

Plug and Play Tech Center, yang berpusat di Silicon Valley, memiliki beberapa lokasi di dunia. Sekarang mereka baru membuka tempat di Jakarta. Ada banyak layanan yang mereka berikan, mulai dari tempat (co-working space), mentor, pendanaan, dan seterusnya. Silahkan lihat situs webnya.

Presentasi saya akhirnya bercerita tentang perjalanan starting-up saya. Mudah-mudahan menginspirasi. Jreng!

16667160_10210962499791026_1664075578_o
In action. [Foto: Javad]

Neovim: editor “baru”

Tahun 80-an saya harus bekerja mengelola sistem yang berbasis Unix, lebih tepatnya SunOS. Mulailah saya harus belajar menggunakan editor teks yang bernama “vi”. Sebetulnya selain editor vi itu ada editor lain yang berbasis GUI, tetapi masalahnya editor ini hanya ada di sistem SunOS. Sementara itu saya harus mengelola sistem lain yang menggunakan sistem operasi lain (seperti HP-UX, AIX, DOS, dan seterusnya). Akhirnya saya putuskan untuk menguasai editor vi. Sampai sekarang saya masih menggunakan editor vi sebagai editor utama saya.

Pemilihan editor vi pada masa itu adalah karena di semua sistem operasi (kecuali di Mainframe) ada editor itu. Bahkan untuk sistem operasi DOS pun ada variasi dari vi. Ketika kita menguasai vi maka kita dapat hidup di lingkungan apa saja.

Berbicara tentang variasi vi, ada beberapa variasi. Yang paling terkenal adalah vim. Maka, sekarang orang-orang kenalnya adalah vim.

Baru-baru ini saya menemukan editor “Neovim”, yaitu versi terbaru dari implementasi vim. (Ada banyak hal yang diperbaharui pada editor ini.) Saya pasang di komputer Linux dan Mac OS X saya. Ngoprek deh. Mengaktifkan syntax highlight dulu ah.

Hal yang pertama saya tambahkan adalah “package manager” untuk menambahkan plugin di neovim itu. Ada banyak package manager. Yang saya gunakan saat ini adalah vim-plug. Dengan vim-plug ini saya kemudian memasang color scheme Oceanic-Next yang mirip dengan warna yang ada di editor Sublime. Hasilnya seperti ini.

neovim

(Cara memasang vim-plug dan Oceanic-Next theme itu yang akan saya tuliskan di lain kesempatan. Instruksi yang ada agak berbeda.)

Ngoprek ah …

Fakir Bandwidth

Ini tulisan tentang keluh kesah susahnya akses internet. Link internet di tempat ini (tidak perlu disebutkan namanya) sangat lambat. Padahal ini seharusnya merupakan tempat yang internetnya kecang. Di Indonesia masih banyak fakir bandwidth.

Yang sedang saya coba akses adalah StackOverflow, karena ini sedang mengajar pemrograman. Bayangkan, di tempat lain internetnya wuzzz, wuzzz, wuzzz. Di sini siswa terpaksa nunggu dulu. Belajar tersendat-sendat. Jadi inget pejabat yang mengatakan “internet cepat untuk apa”? Ya, untuk belajar!

Keluh kesah pagi ini … [meringis]