Living life and Make it Better

life, learn, contribute

Endy Muhardin

Software Developer berdomisili di Jabodetabek, berkutat di lingkungan open source, terutama Java dan Linux.

MP3 di Linux

Distro Linux yang gratis umumnya tidak menyertakan dukungan MP3, Flash, DVD, dan berbagai format file non-open-source yang lainnya. Ini disebabkan karena format tersebut dilarang di beberapa negara, walaupun di Indonesia diperbolehkan. Ini merupakan masalah yang sudah banyak jawabannya. Bahkan beberapa distro populer sudah memudahkan cara instalasinya.

Mari kita lihat dua distro populer, Ubuntu dan OpenSuSE. Pada Ubuntu Feisty, ada paket yang khusus untuk mengatasi masalah ini, namanya ubuntu-restricted-extras. Cukup buka command prompt, dan ketikkan

sudo apt-get install ubuntu-restricted-extras

Paket ini ada di repository multiverse, jadi pastikan komputer Anda memiliki database dari repository tersebut.

Paket ubuntu-restricted-extras ini memungkinkan kita untuk:

  • Memainkan MP3

  • Memainkan DVD

  • Membuka website ber-Flash

  • Membuka website ber-Java Applet

  • Menggunakan font Arial, Trebuchet, dan font Windows lainnya

Untuk OpenSuSE 10.2, kita harus tambahkan repository packman. Buka Yast, klik Installation Source. Nanti kita akan disuguhi berbagai pilihan protokol. Pilih protokol HTTP.

Selanjutnya, kita akan ditanyai dua hal, nama server repository, dan folder tempat database paket berada. Masukkan ftp.uni-erlangen.de pada kolom nama server, dan /pub/mirrors/packman/suse/10.2 pada nama folder.

Tidak, saya tidak salah ketik, protokolnya memang HTTP dan alamat servernya diawali dengan FTP. Kalau tidak percaya coba saja sendiri, atau lihat di sini.

Setelah repository ditambah, Yast akan mendownload database aplikasi yang disediakan, untuk kemudian mengupdate database internalnya. Bila koneksi internet Anda lambat, bersabar sedikit.

Begitu repository selesai ditambah, kita bisa buka menu Software Management, dan Search dengan keyword libxine1. Ini adalah library yang dibutuhkan agar Amarok bisa memainkan MP3. Amarok adalah aplikasi pemain musik (music player) di KDE.

Instal libxine1, dan Amarok akan segera bisa menyanyikan MP3.

Selamat mencoba.


NTFS Write di OpenSuSE 10.2

Di Ubuntu, menulis ke partisi NTFS sangat mudah. Cukup lakukan

sudo apt-get install ntfs-config

dan partisi NTFS siap ditulisi.

Di OpenSuSE 10.2, tidak semudah ini. Secara default, repository OpenSuSE tidak mengandung ntfs-3g, paket yang dibutuhkan untuk menulis ke NTFS, yang siap digunakan. Oleh karena itu, beberapa orang memilih untuk mengkompilasi sendiri, salah satunya Oom Andi Sugandi.

Tetapi akhirnya saya menemukan cara yang mudah, tidak melibatkan kompilasi ulang. Berikut caranya.

Tambah Repository

Pertama, kita harus menggunakan repository milik Jan Engel***. Masuk ke Yast, dan pilih Installation Source. Kita akan menggunakan protokol FTP. Alamat servernya adalah ftp-1.gwdg.de dan folder repositorynya adalah /pub/linux/misc/suser-jengelh/SUSE-10.2/. Silahkan tambahkan entri tersebut dan klik OK. Yast akan segera memperbaharui database aplikasinya.

Instalasi Paket

Selanjutnya, kita bisa langsung menginstal paketnya. Dari Yast, buka Software Management, dan cari dengan keyword ntfs. Kita akan menemukan paket ntfs-3g. Instal paket tersebut. Yast akan meminta paket tambahan, yaitu fuse. Instal saja dua-duanya.

Edit fstab

Sebelum mengubah isi /etc/fstab, jangan lupa untuk melakukan umount pada partisi windows yang kita miliki. Agar partisi windows kita dimount secara otomatis pada saat boot, kita perlu mengedit file /etc/fstab. Temukan entri seperti ini,

/dev/sda1            /media/windows/C     ntfs    ro,users,gid=users,umask=0002,nls=utf8 0 0

dan ubah menjadi seperti ini

/dev/sda1            /media/windows/C     ntfs-3g    silent,unmask=0,locale=en_US.utf8 0 0

Setelah itu, kita bisa menguji coba dengan perintah mount -a. Di komputer saya muncul warning sebagai berikut.

WARNING: Deficient Linux kernel detected. Some driver features are
         not available (swap file on NTFS, boot from NTFS by LILO), and
         unmount is not safe unless it's made sure the ntfs-3g process
         naturally terminates after calling 'umount'. If you wish this
         message to disappear then you should upgrade to at least kernel
         version 2.6.20, or request help from your distribution to fix
         the kernel problem. The below web page has more information:
         http://ntfs-3g.org/support.html#fuse26

Tapi warning ini tidak berbahaya.

Edit Boot Config

Selain fstab, ada satu file lagi yang harus diedit agar mounting otomatis berjalan lancar pada saat booting. Edit file /etc/sysconfig/kernel. Cari baris berikut

MODULES_LOADED_ON_BOOT=""

dan ganti menjadi seperti ini

MODULES_LOADED_ON_BOOT="fuse"

Partisi NTFS siap digunakan. Selamat mencoba.


Migrasi Linux

Di kantor saya sekarang sedang terjadi euforia Linux. Hmm…. bukan euforia. Tampaknya histeria lebih tepat. Karena semua orang tampak histeris dan ingin sampai di kantor besok harinya dan menemukan semua Windows sudah tidak ada, dan semua orang bekerja normal dan gembira.

Ini semua dipicu oleh razia software bajakan yang marak terjadi beberapa bulan ini. Beberapa perusahaan bahkan menerima surat dari Pak Sutanto yang gambar sampulnya saja sudah menakutkan. Bukannya kantor saya pakai bajakan, tapi dengan sekian ratus orang karyawan, masing-masingnya menggunakan paling tidak satu komputer, siapa yang tau kalau mereka instal ulang komputernya dengan aplikasi GPL (Glodok Public License) ??

Jadilah akhirnya job desc saya bertambah satu, konsultan migrasi Linux, karena kebetulan di komputer dan notebook saya sudah tidak ada Windowsnya lagi. Berikut beberapa pengalaman yang bisa dibagi berkaitan dengan histeria migrasi ini. Siapa tau berikutnya kantor Anda yang dilanda demam pinguin.

Siapkan Install Server

Satu kali diminta instal, no problem. Dua kali, yah mau gimana lagi. Tiga kali?? That’s enough. Ubuntu memang mudah diinstal, tapi distro lain seperti OpenSuSE tidak senyaman Ubuntu. Untuk OpenSuSE, kita harus menunggui proses instalasi, dan mengganti CD pada waktunya.

Bila Anda mengantisipasi akan menginstal lebih dari tiga komputer, segera deploy fitur instalasi melalui jaringan. Ini adalah investasi beberapa jam yang akan menyelamatkan beberapa puluh jam dari masa remaja Anda di kemudian hari.

Semua distro Linux mendukung instalasi melalui jaringan, walaupun caranya berbeda-beda. Saya menyiapkan repository di jaringan lokal untuk beberapa distro utama, untuk kasus saya, Ubuntu dan OpenSuSE.

Repository Ubuntu dapat dibuat dengan mudah menggunakan DVD Repository yang bisa didonlod di kandang anak kambing. Segera setelah DVD repository selesai didownload, aktifkan webserver Apache dan mount ISOnya ke folder yang dapat diakses orang banyak. Cara yang sama bisa dilakukan untuk distro OpenSuSE.

Sebagai contoh, semua ISO tersebut saya mount ke folder /home/endy/tmp/UbuntuRepo dan /home/endy/tmp/OpenSuSE. Kemudian kedua folder tersebut saya publish melalui Apache. Berikut adalah konfigurasi /etc/fstab agar ISO tersebut dimount pada saat booting.

# Ubuntu Repository DVDs
/media/sdb2/ISO/Ubuntu/UbuntuDVD/ubuntu-7.04-repository-i386-1_contrib.iso  /home/endy/tmp/UbuntuRepo/DVD1 iso9660 loop,auto 0 0 
/media/sdb2/ISO/Ubuntu/UbuntuDVD/ubuntu-7.04-repository-i386-2_contrib.iso  /home/endy/tmp/UbuntuRepo/DVD2 iso9660 loop,auto 0 0 
/media/sdb2/ISO/Ubuntu/UbuntuDVD/ubuntu-7.04-repository-i386-3_contrib.iso  /home/endy/tmp/UbuntuRepo/DVD3 iso9660 loop,auto 0 0 
/media/sdb2/ISO/Ubuntu/UbuntuDVD/ubuntu-7.04-repository-i386-4_contrib.iso  /home/endy/tmp/UbuntuRepo/DVD4 iso9660 loop,auto 0 0 

# OpenSuSE CD
/media/sdb2/ISO/openSUSE-10.2-GM-i386-CD1.iso  /home/endy/tmp/OpenSuSE/CD1 iso9660 loop,auto 0 0 
/media/sdb2/ISO/openSUSE-10.2-GM-i386-CD2.iso  /home/endy/tmp/OpenSuSE/CD2 iso9660 loop,auto 0 0 
/media/sdb2/ISO/openSUSE-10.2-GM-i386-CD3.iso  /home/endy/tmp/OpenSuSE/CD3 iso9660 loop,auto 0 0 
/media/sdb2/ISO/openSUSE-10.2-GM-i386-CD4.iso  /home/endy/tmp/OpenSuSE/CD4 iso9660 loop,auto 0 0 
/media/sdb2/ISO/openSUSE-10.2-GM-i386-CD5.iso  /home/endy/tmp/OpenSuSE/CD5 iso9660 loop,auto 0 0 

Semakin banyak ISO yang dimount, semakin banyak juga loop device yang dibutuhkan. Instalasi Ubuntu standar cuma menyediakan 8 device loop, sehingga tidak cukup untuk memuat 4 ISO Ubuntu dan 5 ISO OpenSuSE. Untuk memeriksa berapa device loop yang tersedia, lihat di dalam /dev/

Untuk itu, device loop perlu ditambahkan. Di Ubuntu, tambahkan baris berikut di file /etc/modprobe.d/options

options loop max_loop=32 

agar pada saat booting kernel menyediakan 32 device loop.

Selanjutnya, kita lakukan mapping agar folder /home/endy/tmp tersebut dipublish di http server. Cara termudah adalah dengan membuat symlink ke folder DocumentRoot (untuk keluarga Debian adalah /var/www).

ln -s /var/www/UbuntuRepo /home/endy/tmp/UbuntuRepo
ln -s /var/www/OpenSuSE /home/endy/tmp/OpenSuSE

Berikutnya, buat boot CD atau boot USB agar pada saat instalasi kita cukup mengarahkan ke jaringan. Saya biasanya memulai instalasi pada sore hari agar bisa ditinggal pulang.

Migrasi Email

Arsip email merupakan harta yang sangat penting di kehidupan perkantoran modern. Dia bisa digunakan sebagai amunisi audit, bahan berkelit, ataupun mencari referensi. Oleh karena itu, setelah migrasi biasanya user akan menanyakan, “Email lama saya mana??”.

Email dari Outlook Express bukanlah masalah besar. Hampir semua mail client Linux seperti KMail, Thunderbird, dan Evolution sudah menyediakan fitur import. Yang paling bermasalah adalah Outlook 2003. Native import belum ada di semua mail client Linux pada saat tulisan ini dibuat. Jadi, kita harus lebih dalam menggali isi perut Google.

Saya menemukan tiga metode yang bisa digunakan:

  1. Menggunakan Thunderbird

  2. Menggunakan File Sharing

  3. Menggunakan IMAP Server

Cara mana yang dipilih tergantung dari ketersediaan ahli Linux di sekitar Anda. Kalau tidak ada ahli Linux sama sekali, gunakan cara pertama. Berikut adalah langkah-langkahnya.

Kebutuhan Software

  • MS Windows. Ya Anda membutuhkan komputer yang masih ada Windowsnya

  • Mozilla Thunderbird untuk Windows

  • Linux. Kalau Anda sudah menjadi korban migrasi, harusnya komputer Anda sudah terinstal Linux pada saat ini.

  • Mozilla Thunderbird untuk Linux

Cara migrasi

Cara memindahkan email sangat mudah. Pembaca yang teliti tentunya sudah bisa menebak langkah-langkahnya hanya dengan melihat kebutuhan software di atas.

  1. Buka Thunderbird di Windows

  2. Import file *.pst Anda

  3. Buka setting Thunderbird, cari tahu di mana dia menyimpan emailnya

  4. Copy folder tersebut ke komputer Linux Anda

  5. Jalankan Thunderbird Linux, arahkan folder penyimpanan email ke folder hasil copy

  6. Restart Thunderbird

  7. Setelah ini, Anda bisa import hasilnya ke Evolution atau KMail, sesuai dengan pilihan

Cara kedua melibatkan pembuatan folder sharing di suatu tempat. Pada dasarnya cara ini adalah otomasi dari cara pertama di atas, sehingga bisa digunakan untuk memigrasi banyak user sekaligus. Saya kurang merekomendasikan cara ini karena relatif sulit dan tidak intuitif. Bagi yang ingin tahu bisa langsung lihat di websitenya.

Buat saya, instalasi Thunderbird berkali-kali kurang menyenangkan. Lagipula, terkesan kurang hi-tech. Berikut adalah cara ketiga. Untuk melakukan ini, Anda butuh ahli Linux yang mampu mengkonfigurasi email server berprotokol IMAP. Sebenarnya IMAP server ini bisa di mana saja, termasuk di Windows. Yang penting IMAP. Cara setting IMAP server tidak dibahas pada artikel ini.

Berikut adalah langkah-langkah migrasi.

  1. Sebelum komputer Windows diformat, jalankan dulu Outlook 2003 untuk terakhir kalinya

  2. Buat akun email baru di Outlook, menggunakan akun yang sudah dibuatkan di IMAP server

  3. Copy email dari Local Folder Outlook ke folder IMAP

  4. Silahkan format Windowsnya dan install Linux

  5. Setelah berada di Linux, jalankan mail client apapun yang Anda sukai

  6. Buat akun email menggunakan akun di IMAP server

  7. Email Anda akan hadir tanpa suatu cacat apapun. Silahkan pindahkan ke folder lokal

Saya sangat menyukai cara ketiga ini. Bisa memigrasi email orang banyak dengan singkat, dan user bisa diajari untuk melakukannya sendiri.

Demikianlah beberapa tips singkat tentang migrasi Linux. Semoga bermanfaat.


vnStat

Sekarang sedang marak layanan internet berbasis paket. Artinya, kita dikenakan biaya berdasarkan besar data yang kita konsumsi, baik kirim (uplink) maupun terima (downlink).

Perbedaan cara penagihan tentunya juga mempengaruhi perilaku berinternet kita. Dengan layanan berbasis waktu, kita dapat membatasi pengeluaran dengan cara membatasi durasi berinternet. Nah, kalau berbasis paket, bagaimana cara mengendalikan pemakaian?

Berbagai aplikasi open source dapat digunakan untuk memonitor pemakaian internet, salah satunya adalah vnStat. Aplikasi kecil ini sangat mudah digunakan. Cukup instal, inisialisasi databasenya, dan lihat laporannya.

Instalasi vnStat

Instalasi, seperti biasa, sangat mudah. Di Ubuntu, cukup dengan satu baris. sudo apt-get install vnstat

Setelah terinstal, kita harus menginisialisasi database tempat data monitoring diletakkan. Di komputer saya, ada dua antarmuka jaringan, WiFi (eth1) dan kabel (eth2). Nantinya bila menggunakan modem ADSL, biasanya saya akan menggunakan antarmuka kabel (eth2) yang terhubung ke modem ADSL.

Untuk menginisialisasi database, lakukan perintah berikut, sesuai dengan nama antarmuka yang akan dimonitor.

<code>sudo vnstat -u -i eth1
sudo vnstat -u -i eth2</code>

vnStat akan mengeluarkan pesan error tentang file database yang tidak ditemukan. Biarkan saja, karena filenya belum ada.

Setelah itu, vnStat sudah bekerja di belakang layar. Untuk melihat pemakaian internet, kita harus menginstal satu aplikasi lagi, yaitu vnStat Front End. Aplikasi ini kerjanya membaca database yang dihasilkan vnStat dan menampilkannya di web. Karena berbasis PHP, seharusnya tidak sulit untuk diinstal.

Instalasi vnStat FrontEnd

Instalasinya tidak sulit. Cukup download dari websitenya, dan extract di folder yang dikenali oleh Apache HTTPD. Di komputer saya, saya gunakan folder /opt/lampp/htdocs/vnstat.

Edit file config.php sehingga menjadi seperti ini.

<code>
// list of network interfaces monitored by vnStat
$iface_list = array('eth1', 'eth2');
$iface_title['eth1'] = 'Wireless';
$iface_title['eth2'] = 'Wired';
</code>

Selanjutnya, browse ke http://localhost/vnstat. Kita akan mendapati data penggunaan jaringan kita seperti gambar di bawah. vnStat Front End Screenshot

Selamat mencoba


Lowongan Programmer

Di tempat saya bekerja saat ini (BaliCamp), saya sedang membutuhkan anggota tim. Tidak butuh yang terlalu canggih, saya justru cari fresh graduate. Nantinya kandidat yang lolos akan ditempatkan di tim saya, mengembangkan aplikasi untuk mengelola software development process.

Ada banyak nilai tambah yang bisa diperoleh dari pekerjaan ini, selain tentunya gaji dan fasilitas standar seperti layaknya karyawan lainnya. Biar saya jelaskan sedikit.

Pertama, yang akan kita buat di sini adalah aplikasi manajemen proyek yang spesifik untuk software development. Artinya, kita nanti akan melihat secara langsung bagaimana proyek software dikelola dengan mengikuti kaidah CMMI. Pengetahuan yang selama ini hanya dipelajari (sambil ngantuk) di kelas tentang RUP, XP, Waterfall, dsb akan dilihat langsung implementasinya di lapangan. Dan dibuatkan softwarenya. Jadi, dengan membuat aplikasi ini, kita jadi memahami bagaimana best-practices dalam pengelolaan proyek.

Kedua, kita akan bekerja dengan menggunakan Spring Framework dan Hibernate. Ini adalah dua framework utama dalam dunia Java. Anggota tim (yang nota bene adalah fresh graduate) akan mengikuti training tentang kedua teknologi ini. Saya sendiri yang akan memberikan trainingnya.

Ketiga, dalam proses pembuatan aplikasi ini, kita akan menggunakan teknologi tercanggih yang tersedia di dunia open source. Kita akan menyimpan source-code dan dokumentasi proyek dalam Subversion. Semua best-practices yang saya tulis di buku Subversion akan diimplementasikan dalam proyek. Issue atau bug akan dikelola dengan bug tracker. Testing akan dilakukan di segala lini, sesuai dengan artikel yang pernah saya tulis di sini, sini, sini, dan sini. Secara harian, CruiseControl akan mengambil semua source code terbaru dan melakukan daily build. Singkatnya, semua persenjataan proyek akan kita gunakan secara optimal.

Jangan khawatir kalau merasa asing dengan berbagai teknologi tersebut. Akan ada sesi training khusus untuk itu. Lagi-lagi saya yang akan memberikan trainingnya.

Baiklah, sekarang apa persyaratannya?

Pelanggan blog ini tentunya sudah tahu kalau saya sangat pemilih dalam menentukan anggota tim. Jadi, persiapkan diri dengan baik.

Tidak seperti lowongan lainnya yang biasa Anda lihat di milis atau portal tenaga kerja, saya tidak mempermasalahkan latar belakang pendidikan. SMU ke atas boleh daftar. IPK Anda Tiarap?? Jangan khawatir, silahkan layangkan lamaran Anda. Tidak akan didiskriminasi.

Persyaratan yang wajib dimiliki oleh peminat adalah:

  1. Konsep dasar OOP

  2. Dasar-dasar Java

  3. Pernah menggunakan minimal 2 (dua) bahasa pemrograman

  4. Konsep struktur data, misalnya tree, list

  5. Konsep relasional termasuk join dan subquery

  6. Mengerti SQL untuk minimal satu produk database

  7. HTML dan CSS

  8. Dasar-dasar jaringan komputer

  9. Bahasa Inggris (minimal membaca)

  10. Pernah membuat minimal satu aplikasi utuh (dari tampilan depan sampai ke database, lengkap dengan validasi) dengan minimal 4 (empat) tabel yang berelasi.

Seperti layaknya lowongan pekerjaan yang lain, ada beberapa hal yang masuk kategori lebih diutamakan bila menguasai atau dalam istilah programmer, nice to have. Berikut daftarnya:

  • Bisa menulis Ant buildfile

  • Memiliki personal website (blog)

  • Sehari-hari menggunakan Linux

Lokasi kerja saat ini di Menara Dea, Kawasan Mega Kuningan, 10 menit berjalan kaki dari Mal Ambassador. Ada sedikit kemungkinan tim akan pindah ke Desa Sigma di German Centre, Bumi Serpong Damai.

Berminat?? Silahkan klik Compose New Mail di aplikasi email Anda, dan attach resume dalam format PDF. Kemudian kirimkan ke endy [at] artivisi [dot] com atau emuhardin [at] balicamp [dot] com.

Bila resume Anda meyakinkan, saya akan panggil untuk interview. Siapkan aplikasi yang pernah dibuat dalam CD, paket sedemikian rupa sehingga mudah diinstal. Sertakan semua file yang dibutuhkan. Nantinya saya akan sediakan PC kosong yang hanya berisi sistem operasi agar Anda bisa mendemokan aplikasi tersebut.

Kalau ada pertanyaan, silahkan langsung posting komentar di bawah tulisan ini.