Monday, December 31, 2007

Flickr

Karena membaca blog-nya Feha dan Iang, jadi tertarik juga untuk upload foto-foto di Flickr. Berhubung upload limitnya dibatesin tiap bulannya, asumsinya sih storage nya unlimited, walaupun mesti nunggu sampe bulan berikutnya lagi. Tapi bener juga apa kata Iang, Flickr lebih cocok dipake untuk memajang foto, jadinya foto-foto yang aku upload ke sana high resolution semua, meskipun waktu di download udah di-resize ama Flickr nya.

Kalo ada yang tertarik, silakan mengunjungi :

http://www.flickr.com/photos/amphie09

Saturday, December 29, 2007

Me-Restore Grub Ubuntu Setelah Instalasi Windows

Berhubung kemaren udah berhasil install Windows XP di notebook ku, MBR hard disknya ditimpa oleh instalasi Windowsnya. Jadinya, sekarang ketika booting, Grub nya tidak muncul. Setelah mendapatkan informasi yang cukup dari internet, Grub bisa di restore menggunakan Live CD Ubuntu. Berikut ini adalah langkah-langkah yang aku lakukan untuk me-restore Grub:

  1. Jalankan terminal window dari Live CD
  2. Mount partisi root instalasi Ubuntu yang telah terpasang sebelumnya.
    // Membuat mount point
    $ sudo mkdir /mnt/root

    // Mount partisi partisi root ke mount point
    $ sudo mount -t ext3 /dev/sda5 /mnt/root


    Jika tidak yakin partisi mana yang berisi root, bisa dijalankan perintah berikut untuk menampilkan semua partisi yang ada:

    $ sudo fdisk -l

    Disk /dev/sda: 120.0 GB, 120034123776 bytes
    255 heads, 63 sectors/track, 14593 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes
    Disk identifier: 0x8d9aa1ca

    Device Boot Start End Blocks Id System
    /dev/sda1 1 192 1536000 27 Unknown
    Partition 1 does not end on cylinder boundary.
    /dev/sda2 * 192 5414 41943040 7 HPFS/NTFS
    /dev/sda3 5414 10513 40960000 7 HPFS/NTFS
    /dev/sda4 10514 14593 32772600 5 Extended
    /dev/sda5 10514 12701 17575078+ 83 Linux
    /dev/sda6 12702 13005 2441848+ 82 Linux swap / Solaris
    /dev/sda7 13006 14593 12755578+ 83 Linux

  3. Mount proc subsystem dan udev ke dalam /mnt/root

    $ sudo mount -t proc none /mnt/root/proc

    $ sudo mount -o bind /dev /mnt/root/dev

  4. Mengubah root ke partisi root instalasi Ubuntu sebelumnya

    $ sudo chroot /mnt/root /bin/bash

  5. Jalankan grub

    $ sudo grub

  6. Kemudian akan muncul prompt grub>
    Perintah-perintah selanjutnya akan dijalankan dalam prompt grub>

  7. Mencari file /goot/grub/stage1

    grub> find /boot/grub/stage1

    Perintah ini akan mencari file /boot/grub/stage1 dan menampilkan partisi yang berisi file tersebut. Untuk kasusku keluaran dari perintah diatas adalah:

    (hd0,4)

  8. Jalankan perintah berikut

    grub> root (hd0,4)

    untuk mengatur agar partisi tersebut di set sebagai root dan melakukan mounting ke partisi tersebut. Aku juga kurang ngerti perintah ini untuk apa :P. Tapi sepertinya sih untuk mengkonfigurasi partisi tersebut untuk bootloadernya.

    Parameter di depan perintah root disesuaikan dengan hasil yang didapat dari langkah ke 7.

  9. Install grub pada MBR di hard disk pertama:

    grub> setup (hd0)

    Jika berhasil, output dari perintah tersebut seperti berikut ini :

    Checking if "/boot/grub/stage1" exists... yes
    Checking if "/boot/grub/stage2" exists... yes
    Checking if "/boot/grub/e2fs_stage1_5" exists... yes
    Running "embed /boot/grub/e2fs_stage1_5 (hd0)"... 17 sectors are embedded.
    succeeded
    Running "install /boot/grub/stage1 (hd0) (hd0)1+17 p (hd0,4)/boot/grub/stage2
    /boot/grub/menu.lst"... succeeded
    Done.

  10. Keluar dari grub dengan perintah quit lalu restart.
Walaupun rada-rada banyak step-step nya, yang penting masalahnya solved :D.

Wednesday, December 26, 2007

Meng-Install Windows XP di Toshiba Portege M600

Secara default, sistem operasi yang terpasang pada notebook Toshiba Portege M600 E360 punyaku adalah Windows Vista. Karena notebook ini menggunakan hard disk SATA, aku jadi agak ragu apakah sebenarnya notebook ini bisa diinstall Windows XP atau tidak. Terlebih lagi di BIOS nya tidak ada pilihan konfigurasi hard disk SATA, yang biasanya bisa diatur menjadi mode AHCI atau IDE. Jika menggunakan mode IDE maka penggunaan hard disk SATA tidak berbeda dengan hard disk PATA yang terdahulu. Sementara jika menggunakan mode AHCI diperlukan driver khusus. Driver ini digunakan agar kemampuan hard disk SATA yang tidak ada di hard disk PATA bisa digunakan, seperti hot plug dan NCQ (Native Command Queuing).

Driver SATA ini harus di load ketika pertama kali menjalankan aplikasi setup Windows XP. Biasanya ketika muncul "Press F6 if you need to install a third party SCSI or RAID driver...", tekan F6 dan masukkan driver AHCI SATA ke dalam floppy disk. Jadi nanti aplikasi setup nya akan me-load drivernya dari floppy disk. Masalahnya adalah notebook jaman sekarang kan sudah nggak ada floppy disknya lagi. Sebenarnya masalahnya bisa langsung beres jika mode hard disknya bisa diubah ke IDE, cuma sayangnya tidak ada konfigurasinya di BIOS.

Setelah browsing sana-sini, aku menemukan link-link yang cukup membantu dari sini dan dari sini.

Ternyata ada aplikasi yang namanya nLite. Aplikasi freeware ini dapat digunakan untuk melakukan kustomisasi CD instalasi Microsoft Windows XP, 2000, dan 2003. Jadi dengan menggunakan aplikasi ini, instalasi Windows XP dapat dikonfigurasi sehingga nantinya driver AHCI untuk hard disk SATA dapat dimasukkan ke dalam installer dan otomatis akan di load ketika menjalankan aplikasi setup nya.

Jadi, langkah-langkah yang perlu dilakukan untuk meng-install Windows XP di Toshiba Portege M600 (dan mungkin applicable untuk tipe notebook lain yang menggunakan SATA AHCI) adalah sebagai berikut:

  1. Unduh aplikasi nLite dari sini : http://www.nliteos.com/download.html
  2. Aplikasi nLite ini membutuhkan .NET Framework 2.0. Jika belum terinstall, .NET Framework 2.0 dapat diunduh dari sini
  3. Unduh driver AHCI. Untuk Toshiba Portege M600, chipset yang digunakan adalah Intel G965 Express Chipset. Untuk drivernya, dapat diunduh di: sini. File driver AHCI tersebut bernama iata78_enu.exe. Kalau tipe chipset notebook yang dimaksud tidak ada di dalam daftar, tinggal googling aja. Kalau chipsetnya masih Intel sih harusnya bisa disearch di website Intel nya.
  4. Eksekusi file iata78_enu.exe -a dengan menggunakan priveledge administrator. Option -a hanya akan meng-extract driver AHCI ke direktori [Program Files]\Intel\Intel Matrix Storage Manager\Driver\
  5. Jalankan nLite.
  6. Browse ke direktori tempat file-file instalasi Windows XP disimpan.
  7. Pilih Integrate Drivers dan Create Bootable ISO.
  8. Pada tampilan Integrate Drivers, pilih Insert->Multiple driver folder. Lalu pilih folder [Program Files]\Intel\Intel Matrix Storage Manager\Driver\ (lokasi tempat driver AHCI di-extract).
  9. Pada tampilan selanjutnya, akan ditampilkan list driver AHCI/RAID. Pastikan mode yang dipilih adalah Textmode driver. Toshiba Portege M600 menggunakan AHCI Controller Intel(R) 82801HEM/HBM SATA AHCI Controller (Mobile ICH8M-E/M). Jadi pilih driver tersebut. Atau kalau mau sih sekalian aja di-add semuanya. Jadi bisa digunakan juga untuk notebook lain yang menggunakan chipset yang lain juga.
  10. Kemudian pilih Direct Burn untuk melakukan proses burning installer yang telah dimodifikasi ke dalam CD kosong. Atau pilih Create Image untuk menyimpan installernya kedalam format ISO.
  11. Selanjutnya install Windows XP seperti biasa.
  12. Sebagian driver bawaan Portege M600 hanya dapat digunakan di Microsoft Windows Vista. Jadi, beberapa tidak bisa digunakan di Windows XP. Driver-driver Portege M600 untuk Windows XP, dapat diunduh dari sini.

Sempat panik juga setelah selesai meng-install Windows XP, ternyata driver untuk Graphics Card nya nggak kompatibel di XP, karena memang untuk Windows Vista. Meng-install driver yang diunduh dari website Intel juga nggak bisa, karena sepertinya hanya mau diinstall menggunakan driver yang dikasih langsung dari manufakturnya. Beruntung Toshiba menyediakan driver Portege M600 untuk Windows XP.

Monday, December 24, 2007

Damai...

Damai, sunyi, dan tenang
Kupandangi langit malam yang cerah
Bulan purnama menerangi pekatnya malam
Berhiaskan bintang-bintang yang bertaburan
Menambah indahnya kesunyian malam

Hatiku begitu damai
Larut dalam gemerlap bintang-bintang
Kupejamkan mataku sejenak
Merenungkan semua keindahan ini
Mengalir bersama mimpi-mimpiku

Aku terhanyut dalam suasana hening
Melayang dalam angan-anganku
Melepas semua keletihan jiwaku
Membuang segala beban hatiku
Untuk meraih semua cita dan mimpi
Bersama indahnya purnama di malam ini

Friday, December 21, 2007

FingerPrint Reader di Ubuntu Gutsy

Berhubung notebook yang aku gunakan memiliki FingerPrint Reader device, rasanya sayang aja kalau nggak bisa aku gunakan di Ubuntu. Lagipula aku sekarang udah jarang menggunakan Windows di notebook yang biasa aku gunakan. Cuma berhubung notebook Toshiba Portege M600 ku memang dirancang untuk Windows, jadi ada beberapa fitur-fiturnya yang kalau mau digunakan di Ubuntu mesti diutak-atik sendiri, salah satunya ya FingerPrint Reader itu.

Setelah mencoba googling, aku temukan package yang bernama ThinkFinger (dapat dilihat di https://wiki.ubuntu.com/ThinkFinger). Menurut sumber tersebut package tersebut dapat digunakan di hampir semua notebook Lenovo/Thinkpad, Dell, dan Toshiba. Beruntung notebook punyaku masuk daftar :P

Instalasi
Menggunakan Package
Versi terakhir package Thinkfinger ini adalah 0.3. Versi 0.3 ini dapat diunduh dengan menambahkan

deb http://ppa.launchpad.net/jldugger/ubuntu gutsy main restricted universe multiverse
deb-src http://ppa.launchpad.net/jldugger/ubuntu gutsy main restricted universe multiverse

di /etc/apt/sources.list lalu kemudian jalankan

sudo apt-get install thinkfinger-tools libpam-thinkfinger

untuk melakukan proses instalasi

Menggunakan Source

  1. Unduh source Thinkfinger dari http://sourceforge.net/project/showfiles.php?group_id=179573


  2. Install package-package yang diperlukan untuk proses kompilasi:

  3. sudo apt-get install build-essential libtool libusb-dev libpam0g-dev pkg-config

  4. Membuat direktori yang akan menyimpan informasi biometric user:
  5. sudo mkdir /etc/pam_thinkfinger

  6. Extract source thinkfinger, lalu jalankan perintah berikut pada direktori thinkfinger untuk melakukan proses kompilasi dan instalasi:

  7. sudo ./configure --prefix=/usr --sysconfdir=/etc --with-securedir=/lib/security --with-birdir=/etc/pam_thinkfinger

    sudo make

    sudo make install

  8. Jika semuanya berjalan dengan lancar, akan ditemukan file pam_thinkfinger.so di /lib/security

Menguji FingerPrint Reader
Untuk menguji apakah driver FingerPrint telah terinstall dengan sempurna, dapat digunakan aplikasi tf-tool. Perintah yang digunakan adalah tf-tool --acquire untuk melakukan scan sidik jari dan tf-tool --verify untuk menguji hasil scan yang diproses dari perintah tf-tool --acquire.

amphie@amphie:~$ sudo tf-tool --acquire

ThinkFinger 0.3 (http://thinkfinger.sourceforge.net/)
Copyright (C) 2006, 2007 Timo Hoenig

Initializing... done.
Please swipe your finger (successful swipes 3/3, failed swipes: 0)... done.
Storing data (/tmp/test.bir)... done.
amphie@amphie:~$ sudo tf-tool --verify

ThinkFinger 0.3 (http://thinkfinger.sourceforge.net/)
Copyright (C) 2006, 2007 Timo Hoenig

Initializing... done.
Please swipe your finger (successful swipes 1/1, failed swipes: 0)... done.
Result: Fingerprint does match.

Konfigurasi PAM (Pluggable Authentication Modules)
Agar dapat digunakan untuk proses autentikasi, maka perlu dilakukan konfigurasi pada PAM agar menggunakan Thinkfinger.
  1. Modifikasi file /etc/pam.d/common-auth sehingga isinya seperti berikut:
  2. auth sufficient pam_thinkfinger.so
    auth required pam_unix.so try_first_pass nullok_secure

  3. Menambahkan data sidik jari ke database dengan menggunakan perintah sudo tf-tool --add-user [nama-user]
  4. amphie@amphie:~$ sudo tf-tool --add-user amphie

    ThinkFinger 0.3 (http://thinkfinger.sourceforge.net/)
    Copyright (C) 2006, 2007 Timo Hoenig

    Initializing... done.
    Please swipe your finger (successful swipes 3/3, failed swipes: 0)... done.
    Storing data (/etc/pam_thinkfinger/amphie.bir)... done.

  5. Untuk melakukan verifikasi sidik jari dari database, dapat menggunakan perintah sudo tf-tool --verify-user [nama-user]

  6. amphie@amphie:~$ sudo tf-tool --verify-user amphie

    ThinkFinger 0.3 (http://thinkfinger.sourceforge.net/)
    Copyright (C) 2006, 2007 Timo Hoenig

    Initializing... done.
    Please swipe your finger (successful swipes 1/1, failed swipes: 0)... done.
    Result: Fingerprint does match.


Nah, sekarang FingerPrint Reader nya sudah dapat digunakan untuk login dari GDM atau ketika diminta password pada saat mengeksekusi perintah dengan menggunakan priveledge su seperti dibawah ini:

amphie@amphie:~$ sudo tf-tool --acquire
Password or swipe finger:
.
.
.

Beberapa masalah pada Tinkfinger-0.3
  1. gksu/gksudo tidak berfungsi dengan benar. Ketika aplikasi dijalankan menggunakan priveledge su, seperti misalnya synaptic, tidak akan muncul prompt untuk memasukkan password di layar. Namun, pengguna harus melakukan autentikasi sidik jari agar aplikasi yang dijalankan bisa tampil di layar.

  2. Konon katanya masalah ini disebabkan karena gksu/gksudo 'tidak mengenali' prompt "Password or swipe finger:", tetapi hanya mengenali prompt "Password:".

    Masalah ini dapat diselesaikan dengan menyunting file /pam/pam_thinkfinger.c dari source dan mengubah isi dari baris 181-184 menjadi seperti berikut:

    if (pam_thinkfinger->isatty)
    pam_prompt (pam_thinkfinger->pamh, PAM_PROMPT_ECHO_OFF, &resp, "Password or swipe your finger: ");
    else
    pam_prompt (pam_thinkfinger->pamh, PAM_PROMPT_ECHO_OFF, &resp, "Password: ");

    Kemudian compile ulang source nya menggunakan cara yang telah dijelaskan diatas.

  3. Fingerprint tidak digunakan untuk meng-unlock screen yang telah di-lock. Untuk melakukan unlock pengguna harus mengetikkan password. Masalah ini terjadi karena direktori /etc/pam_thinkfinger tidak dapat diakses oleh pengguna selain root. Sementara itu aplikasi gnome-screensaver yang digunakan untuk me-lock screen tidak berjalan dengan priveledge root. Solusi dari masalah ini adalah sebagai berikut :

    • Menambahkan group baru, misalnya fingerprint:
    • sudo groupadd fingerprint


    • Menyimpan baris-baris berikut ke dalam file /etc/udev/rules.d/60-thinkfinger.rules (perlu dilakukan reboot):

    • # SGS Thomson Microelectronics Fingerprint Reader
      SYSFS{idVendor}=="0483", SYSFS{idProduct}=="2016", SYMLINK+="input/thinkfinger-%k", MODE="0660", GROUP="fingerprint"

      # the also-needed uinput device
      KERNEL=="uinput", MODE="0660", GROUP="fingerprint"

    • Menambahkan user ke dalam group fingerprint:

    • sudo gpasswd -a [nama_user] fingerprint


    • Membuat user menjadi owner file biometric nya (file [nama_user].bir):

    • sudo chown [nama_user]:root /etc/pam_thinkfinger/[nama_user].bir

    • Memberikan akses readonly pada file biometric untuk user:

    • sudo chmod 400 /etc/pam_thinkfinger/[nama_user].bir

    • Memberikan akses executeonly kepada setiap user untuk mengakses direktori /etc/pam_thinkfinger/:

    • sudo chmod o+x /etc/pam_thinkfinger






Wednesday, December 19, 2007

Jangan Tangisi Apa yang Bukan Milikmu

Menemukan artikel yang cukup menarik untuk disimak dan dijadikan bahan perenungan. Siapa tahu bisa bermanfaat khususnya untuk orang-orang yang memiliki angan-angan atau keinginan yang belum atau tidak tercapai, termasuk dalam urusan jodoh :P.


Dalam perjalanan hidup ini seringkali kita merasa kecewa. Kecewa sekali. Sesuatu yang luput dari genggaman, keinginan yang tidak tercapai, kenyataan yang tidak sesuai harapan. Akhirnya angan ini lelah berandai-andai ria. Sungguh semua itu telah hadirkan nelangsa yang begitu menggelora dalam jiwa.

Dan sungguh sangat beruntung andai dalam saat-saat terguncangnya jiwa masih ada setitik cahaya dalam kalbu untuk merenungi kebenaran. Masih ada kekuatan untuk melangkahkan kaki menuju majelis-majelis ilmu, majelis-majelis dzikir yang akan mengantarkan pada ketentraman jiwa.

Hidup ini ibarat belantara. Tempat kita mengejar berbagai keinginan. Dan memang manusia diciptakan mempunyai kehendak, mempunyai keinginan. Tetapi tidak setiap yang kita inginkan bisa terbukti, tidak setiap yang kita mau bisa tercapai. Dan tidak mudah menyadari bahwa apa yang bukan menjadi hak kita tak perlu kita tangisi. Banyak orang yang tidak sadar bahwa hidup ini tidak punya satu hukum : harus sukses, harus bahagia atau harus-harus yang lain.

Betapa banyak orang yang sukses tetapi lupa bahwa sejatinya itu semua pemberian Allah hingga membuatnya sombong dan bertindak sewenang-wenang. Begitu juga kegagalan sering tidak dihadapi dengan benar. Padahal dimensi tauhid dari kegagalan adalah tidak tercapainya apa yang memang bukan hak kita. Padahal hakekat kegagalan adalah tidak terengkuhnya apa yang memang bukan hak kita.

Apa yang memang menjadi jatah kita di dunia, entah itu Rizki, jabatan, kedudukan pasti akan Allah sampaikan. Tetapi apa yang memang bukan milik kita, ia tidak akan bisa kita miliki, meski ia nyaris menghampiri kita, meski kita mati-matian mengusahakannya.

"Tiada suatu bencanapun yang menimpa di bumi dan (tidak pula) pada dirimu sendiri melainkan telah tertulis dalam kitab (Lauh Mahfuzh) sebelum Kami menciptakanya. Sesungguhnya yang demikian itu adalah mudah bagi Allah. (Kami jelaskan yang demikian itu) supaya kamu jangan berdukacita terhadap apa yang luput dari kamu dan supaya kamu jangan terlalu gembira terhadap apa yang diberikaNya kepadamu. Dan Allah tidak menyukai setiap orang yang sombong lagi membanggakan diri." (QS. Al-Hadid : 22-23).

Demikian juga bagi yang sedang galau terhadap jodoh. Kadang kita tak sadar mendikte Allah tentang jodoh kita, bukannya meminta yang terbaik dalam istikharah kita tetapi benar-benar mendikte Allah : Pokoknya harus dia Ya Allah… harus dia, karena aku sangat mencintainya. Seakan kita jadi yang menentukan segalanya, kita meminta dengan paksa. Dan akhirnya kalaupun Allah memberikanya maka tak selalu itu yang terbaik. Bisa jadi Allah tak mengulurkannya tidak dengan kelembutan, tapi melemparkanya dengan marah karena niat kita yang terkotori.

Maka wahai jiwa yang sedang gundah, dengarkan firman dari Allah : "… Boleh jadi kalian membenci sesuatu, padahal ia amat baik bagi kalian. Dan boleh jadi kalian mencintai sesuatu, padahal ia amat buruk bagi kalian. Allah Maha mengetahui kalian tidak mengetahui." (QS. Al-Baqarah : 216).

Maka setelah ini wahai jiwa, jangan kau hanyut dalam nestapa jiwa berkepanjangan terhadap apa-apa yang luput darimu. Setelah ini harus benar-benar dipikirkan bahwa apa-apa yang kita rasa perlu di dunia ini harus benar-benar perlu bila ada relevansinya dengan harapan kita akan bahagia di akhirat. Karena seorang mukmin tidak hidup untuk dunia tetapi menjadikan dunia untuk mencari hidup yang sesungguhnya : hidup di akhirat kelak!

Maka sudahlah, jangan kau tangisi apa yang bukan milikmu!

Sumber: http://kotasantri.com/beranda.php?aksi=Detail&sid=94
Penulis: Firmansyah

Monday, December 17, 2007

Sabtu yang Menyenangkan

Hari Sabtu kemaren, aku dapet undangan untuk Nonton Bareng. Konon sih katanya acaranya diadakan oleh Telkomsel Area. Dan undangannya katanya sih untuk SimPATI Zoners dan pelanggan Telkomsel Priority. Berhubung acaranya melibatkan salah satu Content Provider yang dipegang oleh temen kerjaku, jadinya undangannya nyampe juga. Apalagi yang namanya gratisan sayang banget kalo dilewatkan bgitu saja.

Di undangannya, acaranya mulai jam 08:15 di Pondok Indah Mall 2. Dalam hati sih ini nonton apa nggak kepagian yah. Cuman daripada ntar malah nggak bisa nonton, akhirnya berangkat dari rumah jam 7 kurang dikit. Biar bisa dateng tepat waktu. Taunya, setelah sampai disana dan menunggu cukup lama, akhirnya baru dikasih tahu kalo filmnya ternyata diputar jam 10:00. Doh.. tau bgini mending dateng siang aja. Dan sepertinya juga banyak orang-orang yang 'tertipu' mentah-mentah. Mungkin di undangannya jam 8 supaya datangnya nggak telat. Tapi, kurasa ini rada-rada kelewatan juga.

Film yang ditonton bareng adalah Mr. Magorium's Wonder Emporium, yang konon sih katanya baru diputar di 21 sekitar 2 mingguan lagi. Film ini dibintangi oleh Natalie Portman, yang so far sih filmnya bagus-bagus. Walaupun rating di IMDB nggak terlalu bagus, tetapi menurutku film ini lumayan lah untuk ditonton (males nyeritainnya disini). Apalagi ini filmnya bisa dibilang film keluarga, yang endingnya biasanya selalu happy ending dan nggak ngegantung.

Selesai nonton, diajakin makan-makan di Hanamasa sama panitianya. Pas banget karena memang perut ini sudah keroncongan. Gara-gara berangkat pagi, nggak sempet sarapan di rumah. Bener-bener puas deh hari Sabtu kemaren. Secara seminggu sebelumnya kerjaan lagi lumayan banyak dan udah rada-rada jenuh. Semua kejenuhan itu bisa hilang hanya dengan satu hari yang menyenangkan ini. Hihihi... semoga acara-acara yang seperti ini bisa terus berlanjut. ;)

Friday, December 14, 2007

Cape Deh...

Malam ini, kesabaranku diuji. Berhubung sore-sore ada meeting di luar jam kantor, jadinya aku harus pulang agak malam. Sebenarnya nggak apa-apa sih. Yang jadi masalah adalah kejadian setelahnya. Meetingnya sih selesai tepat sebelum maghrib. Karena masih ada pekerjaan yang belum selesai, aku memutuskan untuk menyelesaikannya malam itu juga. Sekalian nunggu waktu isya. Supaya ketika pulang nanti udah tenang. Tinggal tidur.

Setelah sholat Isya, ketika udah mau pulang, aku diminta temenku untuk menyelesaikan suatu masalah teknis dengan salah satu Content Provider alias CP. Beberapa hari yang lalu beberapa layanan CP ini ditutup karena menyalahi kesepakatan yang berlaku. Dan malam itu layanan tersebut sudah dibuka kembali tetapi mengalami masalah.

Well, berhubung orang teknis yang tersisa cuma aku, ya sudahlah aku terima pekerjaan itu. Aku mencoba memeriksa apakah ada kesalahan konfigurasi atau tidak, dan ternyata tak ada. Bahkan ujung-ujungnya sampe telpon-telponan hingga berlanjut ke chatting di YM untuk menyelesaikan masalah ini. Karena kurasa disisi sistemku nggak ada masalah, akhirnya aku meminta log query yang lebih lengkap ke CP tersebut. Jam sudah menunjukkan pukul 9 malam. Hhh.. Kalo jam segini aku pulang, sampai di rumah jam setengah 11 pikirku. Padahal ini masalah belum selesai. Melalui YM aku menunggu respon yang tak kunjung datang, log query yang kuminta untuk menyelidiki masalah lebih lanjut. Aku coba tanyakan lagi, tapi tetap tak ada respon. Duh.. dalam hatiku ini yang butuh siapa, ditanya kok nggak menjawab. Berhubung besok paginya aku ada acara, dan mesti berangkat pagi, aku memutuskan untuk segera pulang. Bodo ah, udah capek aku 'dikerjain' seperti ini. Memangnya nggak ada kerjaan lain apa sampe jam 9 malem di kantor nungguin sesuatu yang nggak jelas. Mana mendadak pula lagi.

Secara track record, ini CP sering bermasalah, aku juga tahunya dari temenku yang menangani CP ini. Dari mulai pelanggaran-pelanggaran ringan sampe dengan pelanggaran berat (dapet surat peringatan dari B**I juga), ada aja masalahnya. Konon, aku jadi merasa bersalah juga ketika melihat log data sms yang dikirimkan pelanggan ke CP ini. Penuh kata-kata kasar dan kata-kata makian. Atas dasar inilah aku jadi agak-agak males jika berhubungan dengan CP ini. Cuma karena memang namanya juga kerjaan, mau nggak mau mesti dikerjain. Tapi apa yang kualami sekarang ini udah kelewatan. Di perjalanan aku mencoba rileks. Beberapa kali ada telepon masuk, sekitar jam 10 yang aku tahu itu dari CP tersebut. Udah males aku angkat. Lagipula yang bener aja jam 10 mesti ngurusin yang beginian. Aku biarkan saja. Biar tahu rasa tuh. Kuperkirakan revenue CP tersebut yang hilang selama weekend ini (dengan asumsi hari senin masalahnya solved) bisa sampe puluhan juta, dan mungkin lebih. Biarin ah, salah sendiri nggak merespon waktu aku tanya tadi.

Semoga saja keputusan yang aku ambil tepat. Walaupun tercampur oleh emosi-emosi dan persepsi negatif.

Perjuangan Menuju Kantor

Pagi ini, aku berangkat buru-buru ke stasiun kereta untuk pergi ke kantor karena mendengar kabar semua KRL alias kereta listrik tidak ada yang beroperasi. Penyebabnya adalah gardu listrik yang terbakar. Entahlah di gardu listrik yang mana aku kurang tahu. Beruntungnya, jalur kereta Serpong-Tanah Abang dilewati oleh Kereta Diesel (KRD) dari Rangkasbitung menuju Jakarta Kota. Namanya juga kereta diesel, tidak terpengaruh oleh ada atau tidaknya aliran listrik.

Aku berangkat jam setengah 7 dari rumah dengan harapan bisa mengejar KRD yang jam setengah 7 lewat. Berhubung stasiunnya deket dari rumah, berangkat mepet-mepet dikit nggak apa-apa lah. Sesampainya di stasiun, kulihat keadaannya lumayan semrawut. Banyak sekali orang yang memenuhi halaman stasiun. Sepertinya mereka baru tahu juga bahwa pagi itu tidak ada KRL yang beroperasi. Kulihat mereka sepertinya agak-agak panik mengalami kejadian yang jarang terjadi seperti ini. Ada yang memutuskan untuk naik angkot atau ojek ke kantornya. Beberapa bahkan sibuk dan dengan serius menelepon. Entah siapa yang di telpon. Mungkin bosnya kali yah, dan mengabari kalau orang tersebut datang terlambat masuk kantor.

Aku lebih memilih kereta karena perjalanan ke kantor bisa ditempuh dalam waktu 45 menit. Jika naik kendaraan lain, bisa sampe 2 jam. Nggak kebayang macetnya di daerah Lebak Bulus dan Mampang kalau mesti naik bus. Karena alasan inilah, apapun yang terjadi, mending naik kereta aja lah. Kecuali jika memang nggak ada satupun kereta yang jalan, baru nyari alternatif lain.

Setelah memasuki stasiun, semakin banyak orang yang aku lihat. Rada-rada nggak yakin juga bisa naik kereta KRD yang biasanya penuh dengan para pedagang pasar. Terlebih lagi situasinya sedang seperti ini. Akhirnya kereta pun datang. Dan benar saja, kereta tersebut sudah penuh sekali dengan para pedagang dan penumpang dari stasiun Serpong. Berhubung sudah niat untuk naik kereta apapun yang terjadi, aku paksakan untuk naik. Lumayan, ketika itu aku teringat kata-kata di buku Sang Pemimpi karya Andrea Hirata yang baru selesai aku baca. Pikiran positif dan optimis akan mengekstrapolasi kurva yang menanjak (apa coba). Yah ternyata tak ada yang tak mungkin jika kita berusaha. Asalkan ada niat dan determination, semua yang berat akan terasa ringan saat kita melaluinya.

Akhirnya aku sampai di kantor jam setengah 8. Beruntung nggak sampe telat. Kalo nggak naik kereta bisa-bisa jam 9 baru nyampe. Itupun udah dengan keadaan mandi keringat. Di pagi itu kuperkirakan ribuan penumpang sepanjang jalur Serpong-Tanah Abang yang tidak terangkut kereta. Entahlah, mereka sampai jam berapa di kantornya masing-masing. Yang jelas aku bisa sampai di kantor tepat waktu, dan nggak perlu sampai mandi keringat walaupun keretanya penuh banget :P.

Wednesday, December 12, 2007

The Power Of Unix Shell

Kemarin malam, aku melakukan kesalahan bodoh dalam membuat script menggunakan bahasa PHP. Intinya sih script yang aku buat akan memberikan output file yang merepresentasikan isi dari suatu query ke database MySQL. Masing-masing field akan dipisahkan oleh tanda semicolon (;) dan masing-masing row akan dipisahkan oleh karakter newline (\n).

Berhubung karena aku melakukan kesalahan, aku lupa menambahkan karakter newline yang akan menjadi pemisah antar row. Karena kesalahan ini, file output tersebut hanya berisi satu baris. Terlebih lagi hasil query data yang aku lakukan juga lumayan banyak, maka ukuran file output tersebut juga lumayan besar. Isi file tersebut memiliki format :

aaaa1;bbbb1;cccc1;dddd1;eeee1;fffff1;;;;;;aaaa2;bbbb2;cccc2;dddd2..... (dst)

Entah juga apakah ini merupakan kesalahan lain dari scriptku atau bukan. Satu row query berisi enam field. Tapi jika melihat isi filenya seolah ada 11 field. Tapi beruntung juga sih, karena kesalahan ini aku bisa melihat bahwa masing-masing row dipisahkan oleh string ';;;;;;'.

Setelah berpikir lumayan lama mengenai solusi untuk memecahkan masalah ini - yang diantaranya adalah membuat script lain yang akan memecah satu baris file tersebut sesuai dengan jumlah row hasil query -, aku mencoba cara lain yang lebih sederhana, yaitu membuka file tersebut menggunakan editor dan me-replace semua string ';;;;;;' dengan karakter newline. Ternyata, karena saking besarnya ukuran file, ketika dibuka saja aplikasi editornya udah nge-hang duluan.

Akhirnya aku mencoba untuk mengutak-atik isi filenya mengunakan perintah di Shell. Ternyata hanya dengan menggunakan perintah sed (stream editor), semua masalah bisa terselesaikan. Untuk me-replace semua string ';;;;;;' menjadi karakter newline, hanya perlu menggunakan perintah

sed 's/;;;;;;/\n/g' [nama file]

Lama-lama jadi semakin betah aja ngutak-ngatik perintah-perintah Shell di Unix :P. Praktis dan cepat, tanpa perlu membuka file dan melihat isinya, semuanya langsung dikerjakan oleh satu baris perintah. Mungkin masalah diatas juga bisa diselesaikan menggukana editor vi. Cuma berhubung masalahnya udah selesai, nggak aku cobain deh tuh vi nya.

Monday, December 10, 2007

Simpati Pede


Hmm.. kabar baik untuk pengguna kartu SimPATI Telkomsel. Hari ini Telkomsel mengeluarkan Simpati PeDe (Per Detik). Jadi nelepon kemana-mana tarifnya per detik. Walaupun tarif ke operator lain masih lumayan mahal, tetapi untuk melakukan panggilan ke sesama nomor Telkomsel tarifnya lumayan jauh turunnya.

Tarif per detik untuk melakukan panggilan ke sesama nomor Telkomsel adalah Rp. 25 / detik Flat untuk 1 menit pertama. Setelah menit pertama, tarif yang berlaku adalah Rp 0,5 / detik. Lumayan puas juga. Secara udah nyoba dari beberapa hari yang lalu. Nelepon sejam nggak sampe Rp 3.300.

Jadi sekarang ada dua skema pentarifan. Tarif per menit atau tarif yang berlaku saat ini dan tarif baru yang menggunakan skema per detik. Pelanggan lama yang ingin melakukan perpindahan skema tarif dapat mengakses *880# (dikenakan tarif Rp. 3.000 untuk setiap kali perpindahan skema tarif). Jadi dari skema tarif per detik ini pun bisa kembali lagi ke skema tarif yang lama, namun kena lagi Rp 3.000. Dengan skema tarif per detik ini, bonus bicara / SMS dan Talkmania tidak berlaku lagi. Namun demikian bonus bicara dapat digunakan kembali jika beralih ke skema tarif yang lama.

Semoga aja nanti kapasitas jaringannya masih kuat kalo jadi banyak yang nelepon.

Info lengkap mengenai SimPATI PeDe dapat dilihat disini.

Saturday, December 08, 2007

Desember Kelabu

Desember yang kelam
Desember kelabu
Kini semua telah berlalu
Tenggelam bersama angan-angan kosong

Aku beranikan diri
Mengakhiri semua yang aku mulai
Memecah semua misteri
Yang selalu membayang-bayangi

Masaku telah tiba
Kabut hitam gelap telah sirna
Tergantikan oleh seberkas cahaya
Harapan yang tak kan pernah mati

Semua tanya telah terjawab
Tak ada kerisauan dalam hati
Untuk melangkah ke jalan yang kucari
Mengakhiri semua yang tak pasti

Kubuka lembaran hidup baru
Tuk mengulang semua impian
Aku telah kembali
Ke tempat aku memulai semua ini

Desember yang kelam
Desember kelabu
Aku telah mendapatkannya
Saat-saat yang indah
Hari-hari yang cerah
Semua kenangan ini kuukir kembali
Di 7 Desember ini

Sunday, December 02, 2007

Penantian Waktu

Seadainya aku memiliki keberanian
Dan cukup niat tentunya
Untuk meraih kesempatan itu
Mengulang saat-saat manis
Yang tak kan pernah aku lupakan

Apalah daya
Hati dan pikiranku tak pernah sama
Aku hanyalah manusia biasa
Tenggelam dalam ketidakpastian
Serta kebingungan yang terus membayang

Aku bisa mengingatnya
Saat-saat indah itu
Hari-hari yang cerah
Dimana tak ada keraguan dan kesedihan
Yang ada hanyalah harapan dan kegembiraan

Kemanakah saat-saat indah itu
Aku terus mencari
Aku ingin mengulanginya lagi
Untuk menghapuskan beban berat itu
Yang seolah tiada berakhir

Entah sampai kapan ku harus menunggu
Hingga saat-saat itu tiba kembali
Namun ku kan tetap disini
Setia hingga waktu itu datang
Dan kan kusambut dengan senyuman