Source Code

Banyak orang mendengung-dengungkan open source, namun sebagian orang mempertanyakan ini: lalu kalau punya sourcenya, buat apa? saya kan bukan programmer?. Bukan cuma programmer yang bisa diuntungkan secara langsung dengan ketersediaan source code.

Pertama perlu saya ceritakan sedikit sejarah open source ini dalam 2 paragraf. Gerakan untuk membuka kode sumber program diawali oleh Richard Stallman, dan dinamakan sebagai Free Software Movement. Stallman menggunakan kata “free” dalam arti kebebasan, bukan dalam arti gratis. Karena kata Free ini dianggap kurang bisa “menjual”, maka muncullah istilah baru “open source”, yang ingin menekankan source code yang terbuka. Stallman sendiri tidak setuju dengan istilah open source, karena dalam kata opensource, semangat “kebebasan” tidak terasa. Sebagian orang mengambil jalan tengah dengan menggunakan istilah Free and Open Source Software (FOSS).

Kebebasan apa yang dimaksud dalam bidang software? Stallman mendefinisikan 4 tingkat kebebasan. Nomor 0: bebas menjalan program untuk keperluan apa saja, Nomor 1: bebas mempelajari program dan mengubah program semau kita, Nomor 2: bebas membagikan program ke orang lain, Nomor 3: bebas menyebarkan perubahan program ke orang lain. Membuka source code akan memberi jalan untuk kebebasan-kebebasan tersebut.

Sekarang coba kita lihat contoh-contoh di mana source code yang terbuka berguna bagi programmer dan non programmer. Kita lihat kasus sangat sederhana ini (dialami oleh ribuan orang): ada program yang fiturnya kurang sedikit dari yang kita inginkan. Ini bisa berupa aplikasi desktop, mobile atau web. Kita ambil contoh kecil, mungkin Anda cuma ingin menambahkan supaya muncul nama hari pasaran Jawa di blog Anda (Sabtu Pon misalnya). Jika Anda memakai software yang sifatnya tertutup, maka Anda perlu meminta kepada pembuat aplikasi itu. Perubahan menambahkan nama pasaran itu sangat mudah, tapi kira-kira apakah pembuatnya mau menambahkan? apakah itu memberi nilai komersial yang besar untuknya sehingga dia mau menambahkannya? Apakah perubahan itu akan merepotkan pembuat software tersebut, bagaimana jika orang dari daerah lain ingin kalender mereka juga didukung?

Nah sekarang kita lihat andaikan aplikasi itu sifatnya open source: Anda bisa minta tolong siapa saja untuk menambahkan hari pasarannya. Anda bisa memposting iklan di situs freelancer (misalnya guru.com), lalu Anda kan mendapatkan tawaran yang bersaing. Hal yang sama tidak bisa Anda lakukan jika aplikasinya tidak open source, karena hanya produsen aplikasi tersebut yang bisa melakukannya. Contoh yang saya berikan ini bukan hal yang mengada-ada. Coba Anda tengok ke situs guru.com atau situs freelancer sejenis, banyak sekali pekerjaan yang berhubungan dengan memodifikasi source code. Dengan adanya source code, sebagai end user, Anda punya pilihan. Selain pekerjaan modifikasi, Anda juga bisa memberi kontrak maintenance ke pihak manapun yang kerjanya bagus dan harganya bersaing. Nah di sini Anda sebagai user punya kebebasan.
Lanjutkan membaca “Source Code”

Kritik Nusa/Nusaptel 2.0

Nusaptel 2.0 sudah dirilis beberapa waktu yang lalu. Rilis ini sempat diliput koran seperti Jawa Pos dan beberapa situs web lain. Nusaptel ini juga akan dipakai di universitas Ma Chung. Anda bisa mendownload Nusaptel ini dari situs universitas Ma Chung.

Mungkin sebagian dari Anda masih mengingat kritik saya terhadap bahasa Nusa yang saya tulis 2 tahun yang lalu. Secara singkat kesimpulan waktu itu adalah: bahasa ini belum layak disebut selesai dari design bahasanya, masih memiliki banyak design flaw, dan implementasi compilernya juga masih jauh dari selesai. Sekarang, 2 tahun kemudian dan dengan library hasil lelang dari depkominfo, bahasa ini masih tetap belum selesai, dan implementasi compilernya masih mengandung hampir semua kesalahan dasar yang saya sebutkan dalam kritik saya.
Lanjutkan membaca “Kritik Nusa/Nusaptel 2.0”

Ga Enaknya Tinggal di Luar Negeri

Mumpung lagi rajin ngeblog, sekalian deh nulis bagian yang ini. Terlepas dari betah tidaknya kami tinggal di sini, tapi saya bisa merasakan bahwa ga selamanya yang namanya tinggal di luar negeri itu enak. Kebanyakan orang beranggapan: wah enak ya tinggal di luar negeri bla bla bla dengan asumsi yang berbeda-beda.

Basically manusia tidak pernah merasa puas, jadi mereka selalu melihat orang lain hidupnya lebih enak dari hidupnya sendiri. Kita membuat asumsi di kepala kita kalau si A hidupnya lebih enak dari kita sampai lupa bahwa hidup kita sendiri ga ada kurang-kurangnya. Ah daripada berpanjang lebar soal yang ini, langsung aja deh ke point-point ga enaknya tinggal di luar negeri :

Lanjutkan membaca “Ga Enaknya Tinggal di Luar Negeri”

Mengedit Teks

Sejak beberapa tahun yang lalu saya sekarang sudah menyadari sebagian besar waktu yang saya gunakan adalah untuk memasukkan teks ke dalam komputer. Mengetikkan program, mengetikkan dokumen, membalas email, mengetikkan perintah command line, chatting, menulis blog, dan sebagainya. Sekarang saya merasa sudah menemukan solusi yang pas untuk diri saya dengan editor emacs. Perjalanannya cukup panjang.

Ketika kali pertama memakai komputer, editor pertama yang saya pakai adalah Wordstar, saya cukup hapal dengan berbagai shortcut yang ada (misalnya memilih blok dengan ^KB, lalu ^KK, save dengan ^KS, dsb). Karena shortcut hapalan dari Wordstar, ketika pertama memakai Linux, editor yang sering saya pakai adalah joe. Shortcut default joe sama dengan wordstar, jadi saya bisa berpindah dengan nyaman.

Alasan lain memakai joe adalah masalah resource: waktu itu komputer yang dipakai di kampus ITB adalah 486DX dengan memori 8 Mb, joe jauh lebih ringan dibandingkan emacs dan sedikit lebih ringan dari Vim. Sayangnya joe tidak diinstall di semua komputer, jadi saya belajar editor Vi juga. Meski hapal dengan shortcut dasar (pergerakan kursor, copy paste, search replace, save), saya merasa kurang nyaman melakukan banyak editting dengan vi. Saya masih memakai vi untuk mengedit file konfigurasi.

Mengedit teks di berbagai aplikasi yang berbeda cukup mengesalkan, misalnya saya sedang mengedit teks untuk posting di sebuah forum, kadang saya kesal: wah kok tidak ada ya fungsi find dan replace, karena tadi maksud saya ingin menulis Produk X dan bukan Y. Akhirnya teks harus di copy ke text editor, search-replace, lalu copy paste balik. Lalu banyak editor lain yang tidak mendukung fungsi sederhana tapi penting. Misalnya saya biasanya memperhatikan kapitalisasi sebuah kata. Di kebanyakan editor tidak ada shortcut untuk mengubah sebuah kata menjadi huruf kecil semua, huruf besar semua, atau hanya huruf pertama yang menjadi kapital.

Sekarang saya menggunakan editor Emacs untuk menyelesaikan hampir semua masalah saya. Mengapa memakai Emacs? emacs adalah editor yang sulit dipelajari di awal, tapi memiliki sangat banyak fungsi, dan kita bisa menambah fungsi yang ada. Emacs bisa dipakai untuk banyak hal, jadi tidak perlu mempelajari lagi aneka shortcut dan setting yang berbeda di setiap aplikasi. Emacs sudah cukup terkenal, sehingga bisa diintegrasikan dengan banyak aplikasi lain.

Untuk chatting, saya bisa menggunakan built in IRC client erc dengan server bitlbee. Untuk coding, sudah banyak paket yang tersedia untuk membantu proses coding misalnya Cedet. Emacs sudah terkenal . Untuk mengedit teks ketika browsing, saya bisa menggunakan extension Edit with Emacs di Google Chrome. Dengan itu ketika saya ingin posting comment, atau posting blog, saya tetap bisa memakai editor emacs.

Semoga banyak orang yang sadar juga bahwa mengedit teks merupakan hal yang penting, dan kita perlu berusaha meningkatkan efisiensi kita, untuk menghemat waktu, dan juga agar tangan kita tidak terlalu banyak bergerak dan kena RSI. Banyak hal yang bisa dilakukan, dari memakai editor teks yang baik dan memanfaatkan fiturnya (tidak harus Emacs), sampai memakai keyboard yang lebih nyaman.

Mengasah kapak di dunia IT

Mungkin semua orang sudah tahu kisah mengenai penebang kayu, yang bekerja keras sampai tidak punya waktu untuk mengasah kapaknya. Cerita itu mengajarkan pada kita bahwa bekerja dengan kapak yang tumpul itu merupakan hal yang bodoh. Tapi sampai saat ini saya masih banyak melihat orang yang bekerja tanpa mau “mengasah kapak” di dunia IT. Ada banyak hal yang bisa dipelajari di dunia IT untuk mempercepat atau mempermudah pekerjaan.

Hal pertama yang paling sering membuat gemas adalah masalah shortcut. Ada banyak hal yang bisa dilakukan cukup dengan menekan kombinasi tombol, atau bahkan satu tombol saja. Saya ingat waktu SMU pernah pergi ke warnet, dan orang yang pekerjaannya tukang ketik di situ heran, saya bisa mengcopy-paste dengan cepat tanpa menyentuh mouse. Ternyata dia selalu mengcopy paste dengan mengklik menu edit, memindahkan kursor dengan mouse, lalu mengklik menu edit lalu paste. Saya mengajari dia beberapa shortcut dan trik, dan dia bisa mengetik dengan lebih cepat.

Hal berikutnya adalah fitur-fitur dasar. Banyak orang tidak memanfaatkan fitur word processor dengan optimal. Misalnya banyak yang menulis thesis dan atau laporan dan menuliskan daftar isinya secara manual. Setiap kali halaman berubah, mereka mengedit ulang daftar isi yang dibuat secara manual. Banyak juga yang tidak tahu bagaimana mengaktifkan spelling checker untuk bahasa Indonesia. Banyak yang tidak tahu mengaktifkan conditional formatting di spreadsheet. Banyak waktu dan bandwidth terbuang karena pengirim dan atau penerima tidak mengenal program kompresi untuk mengompress attachment.

Padahal tidak kurang banyaknya situs yang membahas aneka trik sederhana untuk meningkatkan produktivitas, tapi masih banyak sekali yang tidak mau sekedar berhenti dan membaca. Sang penebang kayu bukan diminta berhenti bekerja sebentar buat bermain facebook, tapi untuk mengasah kapaknya.

Ketika melihat programmer, hal yang paling menggemaskan adalah masalah editor/IDE. IDE saat ini sudah cukup canggih, sehingga banyak proses sudah otomatis, seperti auto indentation, auto complete, dan sebagainya. Fitur-fitur tersebut dipakai, karena sudah disodorkan otomatis, sehingga tidak perlu dikonfigurasi. Tapi banyak fitur lain yang sebenarnya ada, tapi jarang digunakan, misalnya shortcut untuk switch antara header dan source file (untuk bahasa yang memisahkan header dan source), fitur refactoring, dsb.

Saran saya untuk Anda yang bekerja di dunia IT, berhentilah dan asahlah ilmu Anda. Jangan habiskan waktu terlalu banyak melakukan pekerjaan secara manual. Apalagi jika Anda adalah programmer, yang semestinya tahu lebih banyak mengenai komputer. Dalam pekerjaan rutin sehari-hari, biasanya ada banyak hal yang bisa diotomasi. Jika pekerjaan Anda hanya berhubungan dengan aplikasi office, belajarlah aneka shortcut, belajar membuat macro, dan bahkan belajarlah bahasa scripting untuk aplikasi tersebut (VBA, dan sejenisnya).

Jika Anda pengguna sistem operasi sejenis UNIX (Linux, Free/Net/OpenBSD, Solaris, dsb) belajarlah command scripting. Jika Anda pengguna OS-X, Anda bisa belajar memakai Automator. Di Windows ada program gratis bernama AutoHotkey untuk membuat aneka shortcut dan skrip (atau memakai yang sudah dibuat orang lain).

Rajinlah Belajar

Sebenarnya tulisan ini sudah lama ditulis, tapi baru ingat menerbitkannya setelah membaca komik ini:http://www.collegehumor.com/article:1792887. Komik itu seperti menyatakan bahwa “kuliah gak kuliah ya kerjanya cuma begitu aja”. Komik itu memang cuma bercanda, tapi itu menyatakan pandangan banyak orang: ngapain sih susah-susah sekolah kalo nggak dapet kerja (atau kerjanya bisa didapatkan tanpa kuliah).

Ada ratusan ribu sarjana di Indonesia ini yang jadi pengangguran. Saya yakin cukup banyak sarjana ini yang pintar dan rajin, tapi saya juga yakin, banyak di antara mereka yang mungkin memang tidak layak mendapatkan pekerjaan. Posting ini terutama dimaksudkan untuk para pelajar dan mahasiswa yang masih sekolah, yang belum menjadi sarjana. Ini hanya bahan pemikiran saja, supaya Anda mau lebih rajin.

Saya pernah jadi mahasiswa, saya pernah mengajar di beberapa perguruan tinggi swasta, saya pernah mengunjungi beberapa perguruan tinggi negeri selain kampus saya ITB. Saya sering merasa heran melihat para mahasiswa yang sangat malas, namun berharap mendapatkan nilai tinggi, dan berharap bisa segera lulus dan mendapatkan pekerjaan. Sementara itu yang dilakukan ketika kuliah adalah:

  1. membeli puluhan buku mahal yang tidak dibaca.
  2. berusaha untuk tidak mengerjakan tugas apapun. Banyak yang dilakukan, mulai dari mencontek, meminta tolong pacar/teman, mengambil sumber dari internet dan tanpa menyebutkan sumbernya (yang parah adalah sumber dari Internet berbahasa Inggris yang diterjemahkan dengan TRANSTOOL!!), membayar orang lain untuk mengerjakan.
  3. Mengikuti aneka kegiatan tidak penting di luar kampus, shopping, nonton konser, jalan-jalan. Tapi tidak pernah mau datang ke seminar dan workshop.
  4. Meminta orang lain mengerjakan tugas akhir (baik keseluruhan atau bagian yang sulit), atau membeli tugas akhir yang sudah jadi

Lanjutkan membaca “Rajinlah Belajar”