Kernel FreeBSD

Dua hari yang lalu untuk kali pertama, kode program saya masuk ke kernel FreeBSD (versi development). Kode ini bisa diakses di:

http://www.freebsd.org/cgi/cvsweb.cgi/src/sys/arm/econa/

Kode tersebut merupakan port FreeBSD ke platform Cavium Econa CNS11XX. Secara sederhana, artinya sekarang FreeBSD bisa berjalan di device di bawah ini (Emprex NSD-100):

NSD_100_1

Saya kenal Linux dulu kali pertama waktu masuk Informatika ITB tahun 1998. Kami sempat mendapatkan pelatihan menggunakan Linux selama seminggu, dan di salah satu sesinya ada sedikit cerita mengenai sejarah Linux. Sejak saat itu saya tertarik dengan sistem operasi. Sebelum kuliah OS, saya sudah menyelesaikan membaca buku Tannenbaum (Operating System: Design and Implementation). Pernah dulu mau berusaha bikin OS sendiri, tapi ya karena saya tidak sejenius Linus Torvalds, akhirnya saya menyerah dan meninggalkan usaha tersebut.
Lanjutkan membaca “Kernel FreeBSD”

Kenangan Masa SMU

Posting ini tidak akan membahas banyak hal waktu sama masih SMU. Posting akan membahas kisah cinta saya, cinta pada programming. Saya belajar komputer kali pertama kelas 2 SMP, tahun 1994. Waktu itu saya ikut kursus DOS, Wordstar dan Lotus 123. Nama tempat kursus saya waktu itu adalah Linggar jati, di dekat pertigaan jalan raya bogor ke arah Cibubur. Dari segi komputer dan pengajar, tempat itu sangat biasa, yang luar biasa adalah: semua siswa boleh belajar di luar jam kursus, dan bahkan jika ada kursus lain pun boleh menggunakan komputer yang di belakang (jika tidak dipakai), asalkan tidak menganggu yang lain.

Di situlah saya belajar sendiri memprogram dalam bahasa BASIC. Buku pegangan saya cuma buku panduan ujian bahasa BASIC. Bukunya tidak punya teori, cuma soal pilihan ganda dan kunci jawaban saja. Ternyata buku semacam itu mudah untuk dipelajari, misalnya ada pertanyaan “Fungsi LEFT$ berguna untuk?”, lalu saya cari jawabannya, misalnya “mengambil N karakter terkiri”, nah dari situ saya tahu apa gunanya fungsi LEFT$. Setahun kemudian ayah saya membelikan Apple II/e (komputer tua yang dibeli karena bapak saya tidak mengerti soal komputer, dan kebetulan ada yang menjual murah). Saya banyak memprogram BASIC di komputer itu, tapi sayang dalam beberapa bulan komputernya mulai rusak, dan saya tidak punya lagi arsip program-program lama saya.

Tanggal 10 Januari 1997, kelas 2 SMU saya dibelikan PC pertama saya: Pentium 120 Mhz, Ram 16 Mb, harddisk 1 GB. Itulah dimulainya petualangan memprogram. Hari ini saya menemukan beberapa program yang saya buat waktu itu. Melihat program-program tersebut, aneka hal muncul di pikiran saya:

  1. Melihat sebagian program, saya berpikir: wah kok saya dulu goblok banget ya, kan ini mestinya bisa begini
  2. Melihat sebagian program lain saya berpikir: wah hebat juga ya, dulu saya bisa ngerti ini, padahal cuma belajar sendiri
  3. Wah kok dulu kepikiran ya bikin program ini
  4. Ngapain coba bikin program ini, gak ada gunanya
  5. Wah ternyata dulu saya fans Sailor Moon
Lanjutkan membaca “Kenangan Masa SMU”

Hobi Elektronik

Sejak kemarin saya baca-baca lagi isi blog ini yang sudah dimulai sejak 2004, dan ternyata sepertinya banyak hal dalam hidup ini yang tidak dituliskan. Nah supaya nggak lupa, sekarang mau nulis soal hobi baru: elektronik, atau tepatnya lagi elektronik digital. Dari dulu sebenarnya saya ingin belajar elektronika tapi nggak pernah dapet pelajarannya waktu SD, SMP ataupun SMU, jadi dasar elektronika yang saya punya cuma dari kuliah Fisika. Di ITB, dulu di Teknik Informatika tidak diajarkan sama sekali dasar elektronika (nggak tau ya sekarang setelah bergabung dengan elektro menjadi STEI).

Awal dari keinginan belajar elektronika lagi adalah karena kemalasan. Kami tinggal di sebuah apartemen yang kuno (fasilitas perusahaan, bukan milik sendiri). Sebenarnya isi apartemennya sangat bagus, kecuali AC yang harus dikendalikan langsung dari thermostat, tidak bisa via remote. Membeli thermostat yang lebih modern harganya cukup mahal (di Internet sekitar 1 juta rupiah), dan mungkin tidak kompatibel dengan AC yang sudah ada. Jadi saya ingin bisa mengendalikan remote tersebut dengan memodifikasi thermostat yang sudah ada. Saya hanya ingin bisa menyalakan/mematikan AC dari tempat tidur (tidak perlu bisa mengatur suhu).

Dengan berbekal kit dari buku berbahasa Thai, awal bulan lalu saya mulai belajar elektronika. Karena saya belum bisa baca bahasa Thai (paling cuma mengerti beberapa kata saja), saya belajar dengan melihat diagram, foto, dan source code. Kit dari buku itu menggunakan microcontroller PIC16F627A, dengan beberapa komponen (transistor, resistor, kapasitor, motor, LED, LDR, thermistor, potensiometer) dan disertai dengan programmer (disebut juga downloader/flasher) dengan serial port. Sebuah breadboard kecil juga disertakan, jadi saya tidak perlu menyolder ketika mulai belajar (breadboard adalah papan kecil dimana kita bisa menancapkan/melepaskan komponen dengan mudah).
Lanjutkan membaca “Hobi Elektronik”

Tutorial membuat interpreter/compiler

Rasanya banyak sekali orang yang ingin bisa membuat interpreter dan/atau compiler. Sejak setahun yang lalu saya sudah berniat menuliskan artikelnya, tapi selalu terdistract hal yang lain. Nah kemarin saya sempat membereskan tulisan yang belum selesai itu, sudah ada 5 bagian. Ternyata agak sulit menuliskan penulisan compiler dalam format tutorial, karena saya harus berusaha menjelaskan isi program bagian demi bagian.

Tutorial ini semoga bisa berguna untuk Anda yang ingin membuat bahasa pemrograman baru, baik yang general purpose, maupun yang domain specific.

Untuk Anda yang berminat membaca, silahkan kunjungi http://yohan.es/compiler/. Kritik, saran, dan komentarnya ditunggu.

Nusa jadi Nusaptel

Sudah lama saya tidak mendengar kabar bahasa pemrograman Nusa. Ternyata sekarang namanya berubah (lagi) menjadi Nusaptel. Dulu di awal namanya adalah batak, lalu berubah menjadi nusa, dan sekarang menjadi nusaptel.Saya juga tidak tahu kenapa namanya berubah, atau apa arti akhiran ptel itu. Satu hal yang jelas: bahasa ini katanya mulai diajarkan di training/tutorial di berbagai universitas (kalau tidak salah di antaranya adalah ITS, UKSW, dan Amikom). Training diberikan ke dosen, dan bukan ke mahasiswa. Saya pun tidak tahu versi compiler mana yang diberikan di training tersebut, karena menurut rekan yang ikut milis nusa, belum ada compiler baru yang dirilis.

Kegiatan ini rupanya didukung oleh Depkominfo. Bahkan ternyata ada lelang pengadaan library untuk nusaptel senilai 280 juta rupiah. Kalau dilihat dari jadwal di situs Sistem e-Pengadaan Pemerintah, proyek ini seharusnya sudah berjalan.

Saya sendiri masih agak heran dengan dukungan Depkominfo ini. Apakah boleh seseorang membuat produk (dalam hal ini compiler Nusaptel), lalu minta bantuan pemerintah untuk mempromosikan dan bahkan mendanai untuk membuat librarynya? perlu dicatat Nusaptel ini tidak open source, bahkan tidak tersedia gratis secara umum, perancang bahasanya pun terang-terangan menyatakan bahwa bahasa ini nantinya akan komersial. Untuk mendownload compiler nusa saja, kita harus mendaftar jadi anggota milis (perlu mendapat persetujuan moderator dan bisa ditendang keluar jika membuat kritik, seperti yang terjadi pada saya). Sampai saat ini pun belum ada sama sekali paper baik nasional maupun internasional yang ditulis mengenai bahasa Nusa, jadi produk ini merupakan produk proprietary.

Dalam salah satu komunikasi dinyatakan bahwa lambatnya perkembangan bahasa nusa adalah karena tidak tersedianya dana. Jika itu benar, semoga dana yang diterima untuk pengembangan nusa tersebut bisa dimanfaatkan. Seharusnya 280 juta (yg sekarang setara dengan 27 ribu USD) itu cukup, sesuai dengan kutipan dari situs ini:

“Ridho bercerita pernah mencoba menyerahkan pembuatan translator ke pihak peneliti di AS. “Tapi biayanya mahal sekali berkisar US$10.000 – US$ 30.000 tergantung tipe translator yang diinginkan, apakah mau yang sederhana atau sampai yang mendukung GUI (Graphical User Interface-red). Saya tidak punya uang sebanyak itu,” paparnya.”

Kita tunggu saja bagaimana kelanjutan bahasa ini, apakah benar bisa menjadi bahasa yang besar dengan adanya dukungan pemerintah. Atau justru hal ini akan membuktikan bahwa bahasa tersebut belum layak untuk dikembangkan.

Cinta Programming

Sebagian orang di dunia ini cukup beruntung, mereka bisa menemukan sesuatu yang dicintai dalam hidupnya, dan bisa hidup melakukan hal yang dicintainya. Umumnya mereka ini orang-orang seni, pemusik yang cinta musik, pelukis yang cinta lukisan dsb. Tapi dalam hidup ini saya juga sudah melihat orang-orang yang mencintai bidang-bidang lain. Professor matematika yang mencintai matematika, dosen yang mencintai mengajar, dsb. Saya menggunakan kata cinta, karena lebih kuat dari kata “suka” (menurut KBBI, cinta artinya “suka sekali”).

Saya beruntung dulu bisa berkenalan dalam dunia programming sejak umur 13 tahun. Sejak dulu bisa memprogram BASIC, saya senang sekali bisa membuat aneka macam program. Dan sejak 15 tahun yang lalu sampai sekarang saya senang bisa selalu memprogram sesuatu. Saya sering kasihan kalau melihat orang yang banyak komplain tentang pekerjaannya, yang menganggapnya jadi beban. Saya menyarankan orang-orang, terutama yang masih muda, untuk mencari hal-hal yang dicintainya, daripada nanti mengeluh sepanjang hidupnya.

Ada begitu banyak pengalaman programming yang ingin dituliskan, tapi sepertinya sampai sekarang belum cukup waktu. Tapi kalau tidak segera dimulai, makin banyak pengalaman yang terlupakan. Bu Inge pernah menyarankan membeli domain cintaprogramming.com dan sudah saya beli, tapi sampai sekarang belum diisi. Dulu rencananya semua orang yang cinta programming bisa meminta sub domain untuk diisi (misalnya http://yohanes.cintaprogramming.com), tapi sampai sekarang belum sempat diurus karena masih terlalu banyak memprogram yang lain 😛

Semoga tahun ini situs tersebut bisa aktif diisi.

Mari beralih ke compiler baru

Saya gemes, sampai tahun ini (2008) saya melihat masih ada dosen yang menyarankan mahasiswanya memakai Visual Basic 6, Turbo C++ 3.0, Turbo Pascal 7, atau software sejenis yang sudah sangat ketinggalan jaman. Saran ini bisa dalam bentuk praktikum di kelas, atau untuk tugas akhir.

VB 6 versi terakhir adalah tahun 1998, dan sudah tidak disupport lagi (untuk siapapun juga) oleh microsoft pada tahun 2008. Turbo C++ 3.0 dirilis tahun 1991 (17 tahun yang lalu), dan Turbo Pascal 7 dirilis tahun 1992 (16 tahun yang lalu).

Mungkin sebagian akan bertanya, mengapa harus pakai software yang baru? yang lama kan masih bisa dipakai?. Ada banyak alasan mengapa sebaiknya pindah ke compiler yang baru.

Alasan pertama adalah: pembajakan. Software-software tersebut memang sudah tua, dan tidak dijual lagi, tapi bukan berarti boleh disebarkan secara bebas. Perusahaan-perusahaan pembuat software itu masih memiliki hak cipta atas software-software tersebut. Dulu mungkin belum banyak alternatif pengganti compiler, tapi sekarang sudah ada banyak. Jika bisa memakai yang legal, kenapa harus membajak?. Turbo C++ bisa digantikan dengan GCC, atau jika perlu IDE, bisa memakai Micosoft Visual C++ versi gratis. Turbo Pascal bisa digantikan dengan FreePascal, atau jika perlu IDE bisa memakai Turbo Delphi Explorer (Turbo Delphi versi gratis) Lazarus. Visual Basic bisa digantikan dengan Gambas, atau Visual Basic .NET (versi gratis).

Lanjutkan membaca “Mari beralih ke compiler baru”