Tag: thought note

Gunakan Bahasa Pemrograman Pada Tempatnya

Gunakan Bahasa Pemrograman Pada Tempatnya

Mengutip perkataan “buanglah sampah pada tempatnya”, kita mestinya membuang memakai bahasa pemrograman pada tempat, konteks, dan waktu yang tepat!

Saat menulis program, kita inginnya cepat dan cepat. Cepat eksekusinya, dan cepat proses developingnya. Kita juga punya kecenderungan untuk memakai bahasa tertentu–bahkan untuk keperluan apapun. Misalnya saja Mas gondrong pencinta bahasa C, mau urusan embedded system pakai C, sorting string pada file pakai C, membuat aplikasi Android pakai C (tidak percaya? Bisa lho.), membuat kernel dengan C, membuat aplikasi server dengan C. Mas gondrong sangat memuja-muja C.

Sebetulnya tak ada yang terlalu salah dengan Mas gondrong, ia mengandalkan C untuk menyelesaikan segalanya. Namun, saat kita melihat ia bekerja membuat program sorter ia kesulitan mencari library yang mantap, meskipun ia tak kesulitan saat bekerja di embedded system, dan saat bekerja di lingkungan Android dia betul-betul kesulitan.

Mas gondrong tentu tidak akan kesulitan membuat aplikasi Android dengan Java, bahasa yang memang seharusnya digunakan. Dan mungkin akan lebih mudah mensorting list dengan Lisp atau men-setup server dengan Perl misalnya.

Ada baiknya kita dengar cerita dari Google, raksasa internet. Google akhir-akhir ini banyak mem-port modul-modul yang tadinya ditulis dengan python, menjadi C. Alasannya tentu saja peningkatan performa. Lantas mengapa Google tidak langsung saja pakai C ya?

Python adalah bahasa interpreted, dalam arti Python tidak perlu dikompilasi untuk dijalankan, tujuan pemakaian Python adalah proses developing yang lebih cepat daripada C (meskipun Python juga dapat dikompilasi dengan sengaja menjadi bytecode yang akhirnya memberikan waktu eksekusi yang sama cepatnya dengan C, python memang semakin membaik), developer Google tidak ingin meng-compile source code C ribuan kali. Akan lebih baik suatu program baru dikembangkan dengan Python, dan setelah nyaris sempurna source code tersebut di-port ke bahasa lain.

Mahasiswa jurusan sains pasti kenal dengan Matlab, software komputasi yang powerful. Matlab sering dipakai untuk menghitung matriks, pemodelan, atau visualisasi data. Pada dasarnya mereka bisa saja memakai C untuk melakukan hal yang sama. Tapi yang ingin saya tekankan adalah akan lebih mudah dengan tool yang tepat.

Nah, sekarang kita beralih ke web programming. Jika ingin membuat halaman web dinamis berisi konten yang sangat cepat diupdate, HTML adalah pilihan yang jelek, kita punya PHP untuk halaman yang lebih fleksibel dan dinamis.

Saya ingin menekankan bahasa yang tepat untuk pekerjaan tertentu, ini mungkin akan membuat kita belajar bahasa-bahasa baru. Bisa saja Anda tidak sepakat sepenuhnya dengan tulisan ini, tapi saya pibadi sih tidak masalah. 🙂

Sekali lagi, buanglah sampah pada tempatnya.

Migrating to Ubuntu

ubuntu-logo14It has been over a month since I migrated from Windows. It was actually happened by accident! My laptop was used to dual-booted with Windows 7 and Ubuntu 13.04. When I was logging in to Ubuntu I realized that I was unable to perform “apt-get update”, after googled for a while I found that Ubuntu 13.04 was not supported by Canonical per 2014 (I’m not sure when). The packages for my old Ubuntu had vanished from the main server. I know it was possible to configure my old ubuntu to download packages from other version, but I was too lazy to do such thing.

I decided to upgrade my old ubuntu to the newer one: Ubuntu 14.04, it is a Long Term Support (LTS) version of Ubuntu, so I just need to upgrade every 5 years instead of every 6 months. After, I found it difficult to upgrade 13.04 to 13.04; it requires me to upgrade to 13.10, then 14.04, which I didn’t want to do. It would waste my internet quota. And the final choice was: fresh install the newer ubuntu and then uninstall the old one. Sounded seamless plan at that time, but let me continue..

I didn’t fully understand how was this happened, but I think I misunderstood the installation option. After the fresh-install finished, I realized that my harddisk was so empty. Guess what, yes, I just formatted the entire disk and really “fresh-install” ubuntu 14.04. All of my files had gone. Hmm.

Okay, I didn’t need to regret everything I’ve done so far. I just keep using my ubuntu 14.04, and I gotta used to it. I even didn’t have any wishes to come back to Windows. I just wanted to be Linux Expert.

Screenshot from 2015-03-02 20:44:21
Screenshot of my lovely Ubuntu after some ‘tweaks’

Thought Note 1

brain_sketch_by_kbi_neverender-d5vpz8xBicara soal linux, saya sekarang sudah migrasi ke Linux, saya memilih Ubuntu karena distribusi inilah yang paling saya kenal sejak lulus SMA.

Bicara soal ubuntu, yang basisnya linux, saya juga memiliki dua smartphone Android (yang basisnya juga linux), satu Xiaomi Redmi 1S, dan satu lagi SPC S1 yang merupakan Android pertama saya.

Mengaitkan Linux dengan “perangkat” benar-benar menggelitik pikiran saya. Saya dulu ingat, linux pertama yang saya instal adalah Damn Small Linux (DSL: www.damnsmalllinux.org) yang dibundel oleh tabloid PC Mild, sekitar tahun 2008 atau 2009. Damn Small Linux memang mampu membuat saya berkata “Damn! Susah banget”. Instalasinya mudah, namun environment yang sulit, sangat tidak home-alike (Windows alike maksud saya), membuat saya tidak bisa apa-apa setelah login masuk ke DSL. Saya dulu belum punya koneksi internet (saya saat itu masih suka ke warnet), sehingga DSL yang saya instal itu otomatis merupakan a piece of crap. Kok *.exe nggak bisa dijalankan? Kok nggak ada control panel? Kok nggak ada Microsoft Office ya? Adalah beberapa pertanyaan-pertanyaan bodoh yang saya ajukan saat mengutak-atik DSL ini. Akhir cerita, saya melupakan DSL dan membeli CD instalasi Ubuntu Hardy Heron di Mall.

Sukses menginstalasi Ubuntu di dalam Windows, saya merasakan hal yang persis sama ketika bermain dengan DSL: Asing! Walhasil saya tetap dual boot sampai akhirnya di-format ulang untuk instalasi Windows 7 (yang bajakan, tentu saja).

Fiuuhh, sekarang saya sudah kuliah, sudah tingkat dua lagi. Saya belajar jauh lebih banyak tentang elektronika dan sistem yang mendasari jalannya komputer. Sekarang ini saya tertarik kembali menginstalasi DSL di Laptop saya.

Saya sudah browsing kesana-sini, sudah menemukan cara instalasi, namun saya justru terusik dengan ide yang mendasari DSL: Distro linux yang dibuat sekecil mungkin! Hanya 50 MB yang dipakai sudah bisa menjalankan linux secara normal, dengan perlakuan khusus DSL bisa dikompilasi ulang sehingga ukurannya bisa mencapai 5 MB! Luar biasa.

Ide tersebut mengusik saya: kalau-lah DSL bisa sedemikian kecil bahkan komputer lawas pun bisa menjalankannya, lantas kenapa tidak dicoba saja di-install ke Android, kan saya punya SPC S1?

Nah, berangkat dari gagasan ini saya coba cari di google, barangkali ada orang lain yang sudah melakukannya. Saya tahu bahwa SPC S1 saya memakai prosesor dengan arsitektur ARM, Weleh ternyata saya lupa bahwa DSL hanya support prosesor x86 saja. Wah repot juga ya?

Tapi ada sebuah postingan di forum Android yang menjelaskan bahwa kita bisa menjalankan DSL dengan bantuan Emulator x86 yang berjalan diatas Android. Jadi DSL-nya di-emulasi, bukan dijalankan langsung oleh mesin Android, ah kurang menarik!

Sadar akan keterbatasan ini, saya punya pikiran lain, yaitu menjalankan custom-kernel yang ditulis sendiri dengan C, dikompilasi oleh GCC dengan target arsitektur ELF-ARM. Bagaimana menurut Anda? Idenya keren kan? Hehe.

Saya coba cari tahu di google, ternyata ada juga diskusi di forum Android lain tentang kemungkinan menjalankan program C di ARM tanpa emulator, nah konsep kompilasi antar arsitektur inilah yang disebut cross-compilation. Saya belum baca lagi artikelnya.

Selain masalah prosesor dan arsitekturnya, saya browsing hal serupa tapi tak sama, yaitu kemungkinan mem-boot up Ubuntu (edisi Jaunty) pada microcontroller 8-bit. Apppaa?? Ubuntu harus dijalankan setidaknya oleh prosesor 32-bit, dan tentu membutuhkan bermega-megabyte RAM. Ternyata ada saja orang hebat yang bisa melakukannya, orang ini menghubungkan RAM jenis SDRAM ke microcontroller Atmel ATMega128P dan memakai SD Card sebagai media penyimpanan. Menurut tulisan orang tersebut, untuk booting up ubuntu hingga selesai dibutuhkan waktu 4 jam hingga siap pakai (untuk text-mode). Luar biasa ya? Ckck.