Jumat, Desember 28, 2007

Google Gmail Vulnerability

Kemaren saya membaca berita yang cukup mengejutkan dari RSS Feed-nya Lifehacker tentang lubang keamanan pada aplikasi web gmail kepunyaan google. Lubang keamanan ini memungkinkan penyusup untuk memanipulasi setting filter pada gmail sehingga email2 tertentu akan di-forward ke alamat email milik si penyusup tanpa diketahui oleh pemilik email asli.

Kasus nyata menimpa seorang designer, David Airey. Ketika dia sedang berlibur, nama domainnya berpindah tangan diluar kehendaknya. Ketika ditelusuri, ternyata perusahaan web host tempat dia mendaftarkan nama domainnya menerima email dari account gmail milik David yang meminta pelepasan nama domain davidairey.com. Pihak web host menganggap email ini asli lalu memberikan kode pelepasan nama domain, sehingga nama domain tersebut dapat didaftarkan di perusahaan web host lain. Ternyata si penyusup telah meletakkan kode javascript pada situs yang pernah diakses oleh david, sedangkan saat membuka situs itu dia masih login ke akun gmail miliknya. Kode javascript pada situs terinfeksi ini akan menambahkan entri filter untuk memforward email tertentu, lalu menghapus email tersebut, sehingga pemilik email tidak akan tahu bahwa dia pernah dikirimi email tersebut. Penyusup ini meminta tebusan untuk nama domain milik David, tetapi David tetap pada prinsipnya tidak mau memberikan sesen-pun uang pada si pencuri. David pun berbagi pengalamannya, cerita lebih lengkap silahkan dibaca di link diatas.

Berita di Lifehacker juga melink ke artikel pembahasan lubang keamanan gmail di beford.org. Pada artikel ini si pemilik blog mengeksploitasi lubang keamanan pada gmail. Beruntung lubang keamanan ini saat ini telah ditutup oleh pihak google. Walaupun begitu, entri filter yang telah masuk tidak otomatis hilang sehingga harus dihapus secara manual oleh pemilik akun gmail yang terinfeksi. Cek setting filter gmail Anda saat ini juga, pastikan tidak ada filter untuk memforward email ke alamat email lain yang bukan milik Anda. Matikan juga setting forwarding email jika Anda memang tidak memerlukannya.

Untuk melindungi diri dari kode2 jahat di masa mendatang, sebuah Add-ons untuk Firefox bernama noscript sangat bermanfaat. Install Add-ons ini dari alamat ini. Add-ons ini akan memblok semua javascript secara default. Pengguna selanjutnya dapat membolehkan javascript dari situs yang dipercaya dan memblok javascript lainnya. Agak repot memang, tapi pencegahan lebih baik bukan, daripada Anda harus menderita kerugian akibat infeksi dari kode javascript yang memanfaatkan lubang keamananan pada akun online Anda.


Powered by ScribeFire.

Kamis, Desember 27, 2007

Aplikasi Portable untuk OS Windows

Trend aplikasi portable dimulai ketika Sandisk meluncurkan produk flashdisk U3. Pada flash disk ini kita dapat menginstall aplikasi yang dapat berjalan langsung dari flash disk tersebut. Aplikasi ini tidak terpengaruh oleh perubahan huruf drive flashdisk ketika dipasang pada PC yang berbeda. Hal ini berbeda dengan aplikasi konvensional yang tidak dapat berjalan jika lokasi aplikasi dipindahkan ke folder lain atau ketika huruf drive berubah.

Trend ini berlanjut dengan munculnya PortableApps.com. Aplikasi yang ditawarkan di sini beragam, dari browser firefox hingga aplikasi OpenOffice, semua adalah aplikasi Open Source. Baik U3 dan PortableApps menyediakan aplikasi launcher yang ketika dijalankan akan menampilkan menu seperti start menu pada Windows. Pada menu ini terdapat aplikasi-aplikasi portable yang ada pada flash disk tersebut.

Selain kedua penyedia aplikasi portable diatas, vendor software lain ikut meluncurkan aplikasi portable mereka sendiri. Ada 3 aplikasi portable yang saya ketahui sampai tulisan ini dibuat yaitu:
  • Internet Download Manager
  • Norton Partition Magic
  • EverNote

Ada banyak juga aplikasi lain yang tidak perlu diinstall dan dapat berjalan walaupun lokasinya dipindahkan. Hanya saja aplikasi ini tidak mencantumkan kata portable pada edisi mereka. Cukup banyak aplikasi seperti ini, saya akan usahakan mencantumkan di tulisan berikutnya. Di wikipedia terdapat listnya disini.

Semoga dimasa mendatang akan makin banyak aplikasi yang bersifat portable, sehingga tidak memerlukan instalasi ulang ketika lokasi aplikasi dipindahkan ke tempat lain. Saya juga berharap ada aplikasi portable serupa untuk OS lain, seperti Linux dan MAC OS.

Powered by ScribeFire.

Senin, Desember 24, 2007

Menggunakan 2 koneksi internet secara bersamaan di Windows XP

Koneksi internet melalui LAN pada PC seringkali harus diputuskan sementara ketika hendak menggunakan koneksi internet melalui modem. Sebenarnya kabel ethernet LAN tidak perlu dicabut, bahkan kedua koneksi bisa berjalan bersamaan pada PC yang sama. Saya akan menunjukkan cara untuk melakukannya.

Kondisi awal pada PC adalah PC sedang terhubung ke LAN melalui kabel ethernet. Hasil dari perintah route print adalah sebagai berikut:


Yang penting untuk diperhatikan adalah IP Address yang dilingkari pada gambar diatas. Ini adalah IP Address-nya gateway LAN yang sedang digunakan. IP Address ini akan berbeda-beda di tiap LAN, jadi sesuaikan dengan kondisi pada LAN Anda.

Kita akan menambahkan sebuah entri baru pada tabel routing untuk memaksa semua koneksi ke LAN dilewatkan melalui ethernet. Perintahnya adalah sebagai berikut:


Dengan kondisi ini, semua request koneksi untuk 10.0.0.0 (network LAN) akan dipastikan melalui ethernet.

Langkah selanjutnya adalah menghubungkan PC melalui modem. Setelah terhubung, akan didapatkan kondisi route yang baru adalah sebagai berikut:


Bagian yang dilingkari diatas adalah IP Address dan route untuk koneksi lewat modem. IP Address dari gateway modem ini yang akan kita jadikan sebagai default route, sehingga koneksi internet akan melewati modem, bukan melewati LAN.

Perintah untuk melakukan hal ini adalah:


Hasilnya terlihat juga pada gambar diatas. Sekarang koneksi utama PC adalah melalui modem, tetapi LAN masih tetap dapat diakses, karena untuk rentang IP Address 10.0.0.0 mask 255.0.0.0, koneksi akan dilewatkan ke gateway 10.2.16.1

Semoga tutorial singkat ini dapat membantu Anda semua menggunakan 2 koneksi, LAN dan modem secara bersamaan.

Oh ya, jika pada LAN terdapat proxy server, kita juga dapat terkoneksi internet lewat jaringan LAN. Ubah proxy pada browser menggunakan proxy dari LAN, maka browser akan terkoneksi ke internet melalui jalur internet LAN. Jika tidak menggunakan proxy, maka jalur koneksi akan melewati default gateway, yaitu gateway dari modem.

Selamat mencoba ;)

Update:
Mohon maaf gambarnya kepotong tampilannya, karena template-nya blogger. Si save aja gambarnya biar bisa kelihatan perintah route yang dituliskan.

Disclaimer:
Tulisan ini mengasumsikan Anda sebagai pembaca memahami atau setidaknya mengetahui konsep networking, terutama subnet, gateway, dan tabel routing. Jika Anda ingin mencoba, tetapi awam mengenai jaringan komputer, lebih baik minta bantuan ke administrator jaringan di kantor untuk membantu Anda melakukan setting. Terima kasih.

Powered by ScribeFire.

Rabu, Desember 19, 2007

Centrin - XL

Setelah sekian lama mendambakan memiliki koneksi internet unlimited, akhirnya sekarang gw dapat juga merasakan mengakses internet tanpa batas di rumah. Setelah minggu lalu membeli modem HSDPA merk Sierra airCard 875, kemaren akhirnya gw langganan internet di Centrin.

Centrin menyediakan paket unlimited wireless bekerjasama dengan XL. Koneksi internet disediakan oleh Centrin, sedangkan jaringan antara pelanggan dan Centrin menggunakan GPRS/3G XL. Dengan kerjasama seperti ini, Centrin tidak perlu menyiapkan infrastruktur jaringan untuk menghubungkan pelanggan dengan jaringannya. Pelanggan pun tidak perlu membayar terlalu mahal untuk perangkat.

Dari hasil percobaan yang gw lakukan, kecepatan koneksi yang diberikan cukup memuaskan. Dengan harga Rp 345.000,- sebulan, gw bisa mengakses internet dengan kecepatan akses maksimal 64 kbps. Kecepatan ini sekitar 1/6 dari kecepatan maksimal yang ditawarkan speedy, yaitu 384 kbps. Walaupun speedy unlimited harganya sudah cukup terjangkau, yaitu Rp 750.000,- per bulan dan kecepatan 6x dari kecepatan GPRS-nya Centrin-XL, Speedy butuh jaringan telepon. Sayang rasanya mengeluarkan uang untuk memasang saluran telepon di rumah kontrakan yang 6 bulan lagi bakal ditinggalkan. Lagipula, gw tidak butuh keepatan internet yang terlalu tinggi. 64 kbps sudah menukupi untuk mendownload email lewat POP3 dan browsing, serta blogging. Dan gw juga ga mau mengeluarkan duit Rp 750.000,- hanya untuk akses internet.

Di kontrakan gw, setidaknya di ruang tengah, sinyal XL yang bisa ditangkap oleh modem hanya sekitar 2 bar. Kadang sinyal hilang sehingga koneksi internet terputus beberapa saat. Gw mau coba pindah ke kamar, siapa tahu akan daat sinyal lebih banyak. Kalau dari lantai 4 telkom japati, bisa dapet sinyal 4 bar, dan koneksi lancar, jarang terputus.

Dengan koneksi ini, semoga gw bisa lebih sering mengupdate blog-blog gw :D

Powered by ScribeFire.

Kamis, November 08, 2007

Pengalaman mengurus tilang di Bandung

Pada tanggal 26 Oktober yang lalu, saya kena tilang di jalan Surapati. Dari jalan Jalaprang memang ada rambu-rambu tidak boleh belok kanan dari jam 600 - 900 dan 1600 - 1900. Biasanya karena jarang ada polisi, semua pengendara kendaraan tidak ada yang mematuhi rambu ini. Hari itu, 'pak ogah' yang sering membantu pengendara kendaraan untuk belok dari dan ke jalan Jalaprang tidak ada. Karena lalu lintas sedang sepi, saya langsung saja belok dan ternyata di depan sudah ada polisi yang menanti. Sebelum bulan Ramadhan kemaren juga sempat ada polisi di sana, tapi entah kenapa, akhirnya semua yang diberhentikan disuruh jalan lagi, tanpa ditilang. Kali ini rupanya saya sedang bernasib kurang baik sehingga akhirnya menerima 'surat cinta' dari polisi.

Pak polisinya membawa saya ke gardu hansip untuk diberi surat tilang. Karena saya pernah membaca pembahasan di milis, mengenai slip biru, saya minta aja ke pak polisi ini slip biru, ketika dia akan menulis surat tilang dan berkata kepada saya bahwa sidangnya tanggal 2 November. Si pak polisi berkata, "Oh, mau bayar ke bank ya?" "Iya, " kata saya. Dia pun menulis di slip biru dan diberikan kepada saya, menahan SIM, lalu ke luar lagi untuk menanti mangsa berikutnya. Sayapun pulang membawa surat itu. Sesampainya di rumah, saya cerita kejadian tadi ke istri. Ketika melihat slip birunya, ternyata si pak polisi tidak menuliskan besarnya biaya yang harus saya setor di BRI Naripan yang tertera di slip biru itu.

Hari seninnya saya bertanya ke rekan sekantor yang pernah punya pengalaman ditilang dan minta slip biru juga. Ternyata Bank baru mau menerima pembayaran kalau telah dituliskan besarnya nominal yang harus dibayar di slip biru itu. Kalau tidak ditulis, artinya si polisi lagi ngerjain. Cari-cari info tambahan di internet, terutama untuk kota Bandung, akhirnya ketemu juga pengalaman serupa di blog ini dan blog ini.

Mengikuti panduan diatas, saya akhirnya datang ke kantor Polresta Bandung Tengah pada tanggal 5 November, yaitu setelah tanggal sidang yang tertera di slip.Polresta Bandung Tengah beralamat di jalan A. Yani. Kalau dari jalan W.R. Supratman, belok kanan ke arah IBCC, terus dikit, nah disitu kantornya. Saya masuk ke dalam, parkir motor, trus jalan lewat belakang gedung utama ke arah pintu keluar. Karena saya sudah cukup akrab dengan kantor Polisi sewaktu proyek di Lampung Utara 2 tahun lalu, maka sayapun mencari tulisan satlantas. Ternyata bagian Satlantas pintunya ada di bagian depan gedung utama di sebelah kanan, dekat jalur keluar kendaraan. Sayapun masuk ke sana. Di bagian kiri pintu masuk, ada sekat dari triplek dan papan petunjuk di dekat pintu masuknya bertuliskan kalo tidak salah ingat "Baga Langgar". Sayapun masuk ke sana, di dalamnya ada seorang pak polisi. Sayapun memberikan slip biru tersebut. Pak polisi ini lalu mencari di tumpukan slip lalu memberikan SIM saya sambil bilang "Bayar disini aja, Rp 20.000," . Sayapun membayar dan SIM akhirnya balik lagi ke tangan. Di ruangan itu banyak sekali slip dan barang sitaannya (SIM atau STNK) yang belum ditebus oleh pemiliknya. Tenyata banyak juga warga Bandung yang masih belum taat peraturan (termasuk saya juga nih :( )

Dari pengalaman saya ini dan dua pengalaman pada link tadi, saya dapat menyimpulkan bahwa kebijakan polisi tentang tilang masih lemah. Banyak celah, ketidakkonsistenan tindakan, dan informasi yang tidak jelas kepada masyarakat, yang mengakibatkan masih banyaknya calo berkeliaran di pengadilan dan kebingungan masyarakat untuk mengurus tilang. Polisi harusnya menerapkan standar yang ketat dan sama di semua wilayah dalam menindak pelanggaran dan memberikan informasi yang jelas kepada masyarakat mengenai cara untuk mengurus tilang. Semoga polisi Indonesia dapat bertindak semakin profesional di waktu mendatang, dan para pengemudi makin sadar dan patuh terhadap rambu-rambu lalu lintas.



Powered by ScribeFire.

Jumat, November 02, 2007

RSS Reader ku saat ini

Setelah hampir setahun menggunakan layanan Google Reader sebagai RSS reader dari situs-situs favorit saya, mulai kemaren saya menggantinya dengan Mozilla Thunderbird. Aplikasi email yang telah saya gunakan hampir 2 tahun ini ternyata telah memiliki fitur untuk mendownload feed dari website, sehingga bisa berfungsi sebagai RSS reader. Dengan menggunakan Thunderbird sebagai RSS reader, saya tidak perlu lagi harus berkunjung ke halaman Google Reader saya, hanya untuk membaca berita terbaru, atau berita yang telah ada. Feed yang telah didownload oleh Thunderbird tersimpan di harddisk dan dapat dibaca kapan saja, tanpa harus tergantung pada ketersediaan koneksi internet saat itu.

Membaca feed di Thunderbird memiliki kesan sama seperti membaca email. Saya harus mengklik judul berita satu persatu untuk membaca isinya. Saya sedikit merindukan fitur di google reader, dimana keseluruhan isi feed dapat ditampilkan dalam bentuk list, bukan hanya judulnya saja. Mudah-mudahan fitur ini dapat tersedia di Thunderbird di versi selanjutnya.

Satu fitur lagi yang saya dambakan adalah kemampuan untuk meng-cache gambar yang url-nya terdapat pada feed. Feed favorit saya yaitu Engadget selalu menyertakan gambar di setiap beritanya. Saat ini sewaktu entri feed dari engadget dibuka, RSS reader akan mendownload gambar dari situs Engadget untuk ditampilkan. Jika saya melihat entri tersebut saat koneksi internet tidak tersedia, tentu saja gambar tidak akan bisa ditampilkan. Saya memiliki ide, bahwa aplikasi RSS reader akan mendownload gambar yang linknya terdapat pada feed, lalu gambar tersebut akan tersimpan dengan nama unik, misalkan hasil hash dari URLnya. Jika ada entri lain yang memiliki link ke gambar yang sama, gambar tersebut tidak perlu didownload ulang, tetapi cukup diload dari disk berdasarkan nama unik gambar tadi. Dengan mekanisme ini, bandwidth dapat dihemat, dan feed yang mengandung gambar dapat dibaca walaupun sedang offline. Mudah2an para pengembang aplikasi Thunderbird dapat mengimplementasikan ide ini :D




Powered by ScribeFire.

Senin, Agustus 27, 2007

Berhati-hatilah ketika berada di keramaian

Hari minggu tgl 26 Agustus 2007 kemaren, saya kehilangan HP di lapangan Gazibu. Saya menduga pelaku pencopetan lebih dari satu orang. Waktu itu saya sedang berjalan di lapangan Gazibu bersama istri, melewati bagian tengah lapangan. Di ujung jalan, terlihat seperti terjadi kemacetan, yang setelah dilihat dari dekat, ternyata ada yang berjualan donat di tengah2 jalan. Di tempat itu, jalan terbagi 2, ke arah kanan dan kiri, seperti hurup T. Saya dan istri hendak belok ke arah kanan, tetapi jalanan terhalang oleh 2 orang yang terlihat seakan2 sedang mencari-cari arah jalan. Tiba-tiba dari belakang ada orang yang memegang celana saya dan menggoyang-goyangkannya. Saya secara reflek berusaha melihat ke arah belakang, dan terlihat seseorang sedang berjongkok sambil memegang celana saya. Saya berusaha melepaskan diri, khawatir kalo orang itu orang yang kurang waras, atau orang cacat dan pengemis yang memang banyak terdapat di lapangan Gazibu itu. Setelah beberapa waktu, orang itu melepaskan celana saya dan mengambil topi, yang tampak seakan-akan jatih di jalan. Di dalam hati saya berpikir, kalo topi jatuh mbok ya ngomong, jangan main pegang celana orang aja.

Setelah berjalan agak jauh, hampir sampai di gedung sate, saya meraba sarung HP, dan HP kesayangan sudah tidak berada di tempatnya. Saya minta istri untuk menelepon ke nomer HP saya, dan terdengar nada sambung. "Mungkin HP tinggal di rumah," kata istri. Tapi saya yakin sekali tadi sebelum berangkat sudah membawa HP itu. Di Cisangkuy, saya coba lagi menelepon ke HP, tetapi sekarang nadanya nada sibuk. Gak mungkin HP yang tertinggal di rumah tau-tau menelepon sendiri kan. Dicoba ditelepon lagi, nomer sudah tidak aktif. Tampaknya si pencopet memanfaatkan pulsa saya untuk menelepon. Setibanya di rumah, HP memang tidak ada di atas meja. Berakhir sudah kebersamaan dengan HP SE T630 hitam yang telah menemani saya hampir 3 tahun.

Siang harinya saya ke galeri Indosat di BEC untuk mendapatkan SIM Card pengganti, dengan nomer yang sama. Nomer ini, walaupun bukan nomer cantik, telah diketahui semua teman dan keluarga. Sehingga kalau diganti, bakal repot juga memberitahu berbagai pihak yang berkepentingan. Jadi biarlah nomer ini dipertahankan.

Hari ini kartu pengganti telah aktif, dan ketika dicek pulsanya, pulsaku sudah berkurang sekitar hampir Rp 10rb. Sementara waktu ini, aku bakal bebas dari telepon dan sms, setidaknya sampai ada dana untuk membeli HP baru. Mudah2an ada rezeki dalam waktu dekat ini :)

Pelajaran yang bisa diambil dari kejadian ini:
- Ketika berada di keramaian dan di depan ada kemacetan, sebaiknya ambil jalan lain, jangan ikut masuk ke kemacetan itu, karena biasanya komplotan pencopet sudah menunggu di situ.
- Pegang erat barang berharga, jangan sampai terlepas, walaupun ada pengalih perhatian, seperti dengan cara memegang pakaian, dll
- Ketika ada pengalih perhatian, langsung saja tegur orang itu, kalau perlu teriak, biar orang lain ikut melihat, sehingga komplotan pencopet itu urung melaksanakan niatnya.

Semoga kita semua terhindar dari tindak kejahatan.


Powered by ScribeFire.

Kamis, Agustus 23, 2007

Perjalanan mudik tahun ini

Kemaren akhirnya saya mendapatkan tiket untuk mudik lebaran tahun ini. Harga tiket pesawat untuk tanggal 12 oktober dan 17 oktober telah melambung tinggi dibandingkan dengan harga tiket di hari lain. Ketika Ortu ke Bandung kemaren, harga tiket Merpati Pdg-Bdg hanya Rp 398rb, dan ketika pulangnya hanya Rp 450rb-an. Harga tiket pulang pergi yang saya bayar kemaren adalah Rp 1.292.300,- (bdg-pdg sekitar 700rb-an, pdg-bdg sekitar 560rb-an). Kalau saja saya punya kesempatan membeli tiket lebih cepat, mungkin harga yang perlu saya bayarkan tidak semahal itu.

Penerbangan Merpati jalur Padang - Bandung sungguh sangat memudahkan saya untuk pulang ke kampung halaman. Jika tahun lalu saya harus bersusah payah datang ke bandara Sukarno-Hatta pagi2 buta, bersiap2 semenjak 3-4 jam menjelang take-off, sekarang saya hanya cukup datang ke bandara Husein 1 jam menjelang take-off untuk check-in. Dengan harga tiket yang juga cukup murah, pelayanan Merpati tidak kalah dengan maskapai lainnya (berdasarkan cerita ortu yang saya dengar).

Jika saya bandingkan harga tiket dengan maskapai yang mengklaim dirinya sebagai 'low-cost carrier', harga tiket yang saya dapatkan lebih murah. Itupun tidak akan kena pajak bandara, seperti maskapai 'sebelah'. Saya tidak perlu lagi mengeluarkan ongkos tambahan Bandung - Cengkareng.


Per 1 September mendatang, Merpati juga menambah jumlah keberangkatan tiap minggunya dari Padang ke Bandung dan sebaliknya. Jika saat ini, penerbangan Bdg-Pdg hanya 2 kali seminggu yaitu hari Jumat dan Minggu, maka akan ditambah satu hari lagi yakni hari Rabu. Semoga Merpati sukses dalam usahanya menyelenggarakan angkutan udara, selamat dalam setiap perjalanannya, dan terus meningkatkan kualitas dan pelayanannya. Sukses untukmu, Merpati.


Powered by ScribeFire.

Senin, Juli 30, 2007

Taksi di Bandung

Semenjak saya tinggal di Bandung dari tahun 2000 yang lalu, taksi di Bandung telah terkenal dengan argo kuda-nya. Saya menaiki taksi hanya untuk keperluan yang sangat mendesak, seperti berangkat ke pool bis saat mudik. Tawar menawar cukup alot, terutama kalo sopirnya ngotot sedang kita sudah dikejar waktu berangkat.

Semenjak adanya blue bird di Bandung, saya jadi cukup terbantu ketika perlu menggunakan jasa taksi. Tinggal telepon ke 022-7561234, maka taksi blue bird akan menjemput di tempat yang kita inginkan. Pelayanan sopir yang ramah, taksi yang nyaman dan AC yang berfungsi merupakan keunggulan blue bird. Kita juga tidak perlu lagi nawar2 harga, semua taksi blue bird pasti pakai argo, dan sopirnya pun hafal dengan jalan, tau jalan tercepat menuju tujuan penumpangnya.

Selain pemesanan lewat telepon, taksi blue bird juga biasa mangkal di beberapa tempat tertentu, salah satunya di dekat halte monumen perjuangan, dekat dengan tempat tinggal saya. Sopir yang mangkal juga disiplin dengan peraturan perusahaannya, tidak mau mengambil penumpang yang sudah booking via telepon.

Malam tadi saya menggunakan jasa taksi blue bird untuk menjemput ortu di bandara Husein Sastranegara. Dari monumen hingga bandara, tarif argo hanya Rp 18rb rupiah. Sayang sopirnya ga mau kalau saya minta menunggu untuk sekalian mengantar saya dan ortu dari bandara ke rumah. Ga enak katanya ama taksi bandara. Dengan terpaksa akhirnya saya menggunakan taksi bandara bersama ortu untuk pulang ke rumah.

Pengalaman dengan taksi bandara, jangan ditanya lagi, ga enak bgt. Sopir berkerumun ga jelas di depan pool taksi. Mereka antara mau dan ga mau ngambil penumpang, padahal saya sedang mendorong troli yang penuh tas. Ada satu sopir yang mau, itupun taksinya lumayan jauh di baris kedua pool. Saya sejak awal sudah bilang supaya pakai argo saja. Tetapi setelah barang masuk bagasi taksi, si supir dengan santainya bilang biayanya Rp 60rb. What!!! Dasar supir edan. Alasannya biaya pool Rp 15rb. Walaupun biaya pool segitu, dengan argo pun saya yakin 1000% total biaya bahkan ga akan sampe Rp 40rb. Akhirnya ortu saya nego Rp 50rb atau barang turunin lagi aja, si supirnya setuju. Sungguh pengalaman yang sangat tidak menyenangkan, naik taksi bobrok, AC ga idup, sopirnya sepanjang jalan terus-menerus noceh lagi nunggu penumpang penerbangan Surabaya, yang harusnya datang sebelum penerbangan dari Padang. Niat narik ga sih ni orang, kataku dalam hati. Kalo ga mau narik ya jangan narik, gitu aja kok repot <_<


Kalo lain kali aku bawa teman di taksi, trus temanku kusuruh tetap tinggal di taksi, supir blue bird bakal mau ga ya nunggu untuk mengantar balik dari bandara? Sungguh taksi di Bandung selain blue bird sebaiknya dimusnahkan saja. Suruh semua supirnya jadi supir blue bird, tentunya setelah lulus seleksi blue bird. Biar terjadi monopoli taksi blue bird, karena perusahaan ini memang sangat kompeten dan mengutamakan kenyamanan penumpang. Kalau bukan karena keadaan yang sangat amat sangat terdesak, saya ga bakal naik taksi non-blue bird lagi di Bandung.


Powered by ScribeFire.

Selasa, Juli 10, 2007

Pengalaman buruk dengan mouse merk 'Sunflower'

Beberapa bulan lalu saya membeli mouse baru sebagai pengganti mouse Logitech yang telah bertugas kurang lebih 3 tahun. Mouse Logitech optikku itu tombol klik kirinya sudah tidak bisa ditekan lagi, sehingga menyulitkan penggunaan. Setelah berkeliling di BEC, akhirnya pilihan jatuh ke sebuah mouse optik yang memiliki kabel yang bisa tergulung sendiri. Saya pilih tipe seperti ini karena mouse akan sering dibawa di tas, sehingga dengan tipe kabel bisa tergulung sendiri, saya gak perlu repot2 menggulung kabel, dan lebih rapi ketika dimasukkan ke tas.

Karena mouse murah(an), maka garansi cuma garansi toko, itupun hanya seminggu. Setelah sebulan lebih digunakan, masalah baru muncul. Saya heran kenapa beberapa klik biasa malah jadi klik dobel. saya kira setting mouse yang salah. Tapi setelah dicek di Control Panel, setting tidak berubah, masih seperti biasa. Saya tes berulang kali, ternyata masalah ada di mouse murahan ini. Sekarang ini 2 tombol lain, klik tengah dan klik kanan ikut2an menjadi double, malah triple dan lebih. Kesal sekali kalau sedang paste menggunakan klik kanan, hasilnya 2-3 kali, sehingga perlu dihapus lagi. Mouse ini benar2 bikin kesal. Nanti kalau suah ada dana buat beli mouse Logitech idamanku, saya akan merasa puas sekali membanting mouse sialan ini ke dinding sampai hacur berkeping2 &gt;:)

Kalo ada yang mau beli mouse, jangan beli merk2 murahan. Harganya memang murah, tapi dampak psikologis kalo ada masalah bakal fatal, membuat Anda ingin membanting mouse itu ;)




Powered by ScribeFire.

Jumat, Juli 06, 2007

Using ScribeFire in Firefox 2.0.0.4

This plug ins is awesome. Now I can post to my blog directly from the browser, without visiting the blogger.com page. The login page in blogger.com sometimes take a long time to load. Now, I don't need to wait too long to post in my blog. Just click the ScribeFire icon in the bottom of the browser, an editor is opened. Typing the blog content, click the publish button, and my post sent to blogger. Hopefully with this, I could posting more content in this blog :)


Technorati Tags: ,

Powered by ScribeFire.

Sabtu, Juni 30, 2007

Networking di Solaris 10

Untuk melakukan setting network di Solaris 10, berikut ini beberapa perintah (command line) yang diperlukan.

  1. Melihat tabel routing di solaris:
    # netstat -r
    # netstat -rn


  2. Mensetting ethernet dan virtual ethernet:
    # ifconfig <device-ethernet> <ip-address> netmask <netmask> up
    Untuk mengaktifkan virtual ethernet:
    # ifconfig <device-ethernet>:1 plumb
    # ifconfig <device-ethernet>:1 <ip-address-2> netmask <netmask-2> up


  3. File yang perlu diubah agar setting ip-address diset saat sistem booting:
    File: /etc/netmasks
    Isi file:
    <network-number> <netmask>
    File: /etc/hostname.<device-name>
    Isi file:
    <hostname1>
    atau
    <ip-address1>
    File: /etc/hostname.<device-name>
    Isi file:
    <hostname2>
    atau
    <ip-address2>

    File: /etc/hosts
    Isi file:
    <ip-address1> <hostname1>
    <ip-address2> <hostname2>


  4. Mensetting DNS client:
    Buat file /etc/resolv.conf
    Isi file:
    domain <nama-komputer>
    nameserver <ip-dns-server-1>
    nameserver <ip-dns-server-2>
    search <search-domain>


    Edit file cat /etc/nsswitch.conf:
    Ubah sehingga baris yang dimulai dengan hosts: menjadi sbb:
    hosts: files dns

    Restart service nscd dengan perintah:
    # /etc/init.d/nscd stop
    # /etc/init.d/nscd start


  5. File lain yang terkait:
    /etc/net/ticlts/hosts
    /etc/net/ticolts/hosts
    /etc/net/ticotsord/hosts
    /etc/nodename


Jumat, Juni 29, 2007

Mencari dan menghapus paket yang tidak diperlukan di debian

Jika kita melakukan instalasi paket di debian menggunakan apt-get, maka paket lain yang dibutuhkan akan otomatis ikut diinstall. Paket2 ini biasa berupa paket library, maupun paket aplikasi lain. Sayangnya paket dependency tadi tidak otomatis ikut di-uninstall ketika kita meng-uninstall paket yang sudah tidak dibutuhkan.

Untuk mengetahui paket mana saja yang sudah tidak dibutuhkan, terdapat sebuah paket aplikasi powerful di debian yang bernama deborphan. Jalankan program ini melalui prompt, tidak perlu sebagai root, sebagai user biasa juga bisa. Program ini akan menghasilkan list paket yang orphan, artinya tidak ada paket lain yang membutuhkannya. Secara default paket yang ditampilkan adalah paket pada section library dan oldlibs. deborphan juga dapat menampilkan list semua paket orphan yang ada, tapi harap berhati2 menggunakannya, karena paket aplikasi yang kita butuhkan mungkin akan ikut ditampilkan, karena memang jarang paket aplikasi yang saling dependency.

Dengan deborphan, space harddisk bisa dihemat, dengan meng-uninstall paket2 library yang sudah tidak dibutuhkan lagi. Selamat hunting ;)

Kamis, Juni 28, 2007

Menjalankan debian dalam modus text

Debian secara default berjalan pada runlevel 2. Runlevel 3,4, dan 5 memiliki perilaku yang hampir sama, namun tidak digunakan secara default. Jika pada debin diinstall XWindow dan window manager, seperti kde atau gnome, maka setiap kali sistem dijalankan, Xserver akan dijalankan. Ketika sistem ingin hanya boot dalam modus text, saya cukup kebingungan untuk melakukannya. Pada sistem linux lain yang pernah saya gunakan, seperti RedHat dan SuSe, runlevel 3 adalah modus text, sedangkan runlevel 5 adalah modus grafis Xwindow. Pada debian hal ini tidak berlaku.

Setelah mencari2 hal ini di google, saya akhirnya menemukan artikel yang membahas permasalahan yang sama di forum ini dan artikel yang menjelaskan tentang mekanisme runlevel di debian di artikel ini.

Pada sistem debian saya, saya tetap menggunakan runlevel 2, sehingga file /etc/inittab tidak saya ubah. Yang saya ubah adalah menghapus symbolic link S99kdm dari direktori /etc/rc2.d Hal ini karena saya menggunakan KDE sebagai default window manager dan kdm sebagai login managernya. Jika menggunakan gnome, hapuslah symboic link S99gdm (saya tidak begitu yakin urutannya adalah 99, yang penting adalah namanya mengandung kata gdm). Jika menggunakan login manager lain, seperti xdm, sama saja caranya, yaitu menghapus symbolic link ke script startup yang ada pada direktori /etc/rc2.d Dengan cara ini, login manager tidak akan dipanggil ketika sistem dijalankan setelah booting, sehingga tetap berada di modus text, tidak masuk ke modus grafis.

Setelah sistem direstart, sistem berhenti pada login prompt dan tidak masuk ke modus grafis. Voila, mission accomplished :)

Selasa, April 17, 2007

Review SQuirreL SQL Client

Baru saja saya install dan coba2 aplikasi SQuirreL SQL Client, sebuah aplikasi freeware yang dapat didownload dari sourceforge.net

Aplikasi ini dibangun menggunakan Java, sehingga dapat dijalankan di berbagai OS yang telah memiliki JavaVM. Proses instalasi cukup sederhana dan mudah dilakukan.
Tampilan awal aplikasi masih menggunakan theme metal default dari Java. Aplikasi ini langsung mengenali beberapa driver JDBC yang terinstall, tidak seperti DBVisualizer (pembahasan mengenai DBVisualizer menyusul)

Ketika hendak membuat koneksi ke MySQL di localhost, saya cukup kerepotan mencari tombol untuk melakukannya. Di aplikasi ini, task untuk melakukan koneksi disebut dengan istilah Alias. Untuk membuat koneksi ke MySQL, pengguna harus menuliskan string koneksi dalam format JDBC (jdbc:mysql://localhost/). Hal ini dirasa cukup menyulitkan bagi pemula, apalagi yang belum pernah menggunakan JDBC, walaupun aplikasi telah menyediakan template di isian URLnya (jdbc:mysql://<hostname>[,<failoverhost>][<:3306>]/<dbname>[?<param1>=<value1>][&<param2>=<value2>])

Setelah koneksi terjalin, hal yang cukup merepotkan lainnya adalah ketika ingin melihat informasi tabel di sebuah database. Jika di-klik dari panel tree di kiri jendela utama, tidak tampil apapun di bagian kanannya. Ternyata harus dipilih Catalog yang hendak ditampilkan dari dropdown di bagian atas tree. Dropdown ini berisi list schema. Setelah schema dipilih, barulah tampil list tabel pada tree struktur di bagian kanan. Kenapa ga diintegrasikan aja ke dalam tree-nya, biar ga 2 kali kerja kan??

Eksplorasi aplikasi ini baru sampai pada bagian ini. Info tabel yang tampil di bagian kanan cukup lengkap, dibagi dalam tab2. Yang belum ketemu hingga saat ini adalah cara menambah data ke dalam tabel, maupun untuk mengubah struktur tabel. Aplikasi ini memiliki potensi untuk berkembang lebih baik lagi, semoga saja bisa menggantikan peran Navicat (lihat tulisan sebelumnya).

Selasa, April 10, 2007

Weird GNU C++

While programming in C++, I need to transform a string into lower case. I search how to do it, and found a STL algorithm transform:

#include <string>
#include <iostream>
#include <algorithm>
#include <cctype>
using namespace std;
int main() {
  //create a string
  string s("Some STRING with MiXed cASE");
  cout << "original: " << s << endl;
  //lowercase all characters
  transform (s.begin(), s.end(),    //source
             s.begin(),             //destination
             tolower);              //operation
  cout << "lowered: " << s << endl;
  //uppercase all characters
  transform (s.begin(), s.end(),    //source
             s.begin(),             //destination
             toupper);              //operation
  cout << "uppered: " << s << endl;
}


However, when I compile it, I got this error message:
error: no matching function for call to 'transform(__gnu_cxx::__normal_iterator<char*,>, std::allocator<char> > >, __gnu_cxx::__normal_iterator<char*,>, std::allocator<char> > >, __gnu_cxx::__normal_iterator<char*,>, std::allocator<char> > >, <unresolved>)'


After googling for it, I've found a tricky solution here. Just made a new function:
char to_lower (const char c) { return tolower(c); }


Then change the transform function calling into:
  //lowercase all characters
  transform (s.begin(), s.end(),    //source
             s.begin(),             //destination
             to_lower);             //operation
  cout << "lowered: " << s << endl;


It's now compiled with error free, and running as expected. Weird isn't it??

Update : I've found another link explaining this phenomena here.
Rewriting the transform calling into this works too.
  //lowercase all characters
  transform (s.begin(), s.end(),    //source
             s.begin(),             //destination
             (int(*)(int))std::tolower);             //operation
  cout << "lowered: " << s << endl;

Powerful non free Programming Tools

Here the list of a powerful but, unfortunately, non free programming tools. I hope I could find a free-version replacement tools for these.

  1. Power Designer.
    To design a complex database, with many relation between entities, this tools is a must. Power Designer could make a CDM, and convert it into PDM, or you could reverse engineering existing database schema into PDM and CDM.
  2. Navicat
    Browsing database scheme, make new databases, grant privileges, build query from many joined tables. These functionalities are the Navicat's killer feature that I couldn't find in another MySQL tools (yet).
  3. Macromedia Dreamweaver MX 2004 + PHAkt
    Web programming with PHP+MySQL+ADOdb will be easier with this deadly combo. But I'm not prefer using Dreamweaver now,cause it mess with the code identation. I prefer using Notepad++ to edit all of my code, it's a powerful text editor. Dreamweaver is good to test a color, cause you could choose the color from color wheel or color diagram.
I hope this list is not get longer than the above item, and I hope I could find the replaement tools for the first 2 item. If you know, tell me, okay ;)

Kamis, April 05, 2007

OCCI Programming

Untuk mengakses database Oracle dari program yang dibuat dengan bahasa C++, Oracle telah menyediakan interface yang disebut OCCI. Pedoman pemrograman OCCI tersedia di website Oracle dan dapat didownload secara gratis di link ini.

Berikut ini sharing pengalaman saya menggunakan OCCI ini di pekerjaan yang sedang saya kerjakan.

Pola umum program:

Environment *env = Environment::createEnvironment(Environment::OBJECT);
try {
  Connection *con = env->createConnection(userName, password, connectString);
  Statement *stmt = con->createStatement(query);
  ResultSet *rs = stmt->executeQuery();
  ...
  stmt->closeResultSet(rs);
  con->terminateStatement(stmt);
  env->terminateConnection(con);
}
catch (SQLException &e) {
    cerr << "ERROR" << endl;
    cerr << e.getErrorCode() << endl;
    cerr << e.getMessage() << endl;
}


Potongan kode diatas merupakan pola umum untuk melakukan query ke database Oracle. userName, password, connectString merupakan variabel bertipe string yang isinya disesuaikan dengan informasi akses pengguna ke database yang hendak diakses. query merupakan variabel string yang berisi query yang hendak dijalankan terhadap database yang sedang diakses.

Untuk mempermudah penggunaan, saya membuat class sendiri untuk membungkus pemanggilan fungsi2 OCCI. Pola class yang saya gunakan :

class myocciclass
{
  private:
    Environment *env;
    Connection *conn;
    Statement *stmt;
    //properties lain
    ...
    //copy konstruktor
    myocciclass(const myocciclass&);
    //assignment
    myocciclass& operator= (const myocciclass&);

  public:
    //konstruktor
    inline myocciclass(const string& user, const string& passwd, const string& db);
    //destruktor
    inline ~myocciclass();
    //method lain
    ...
};

//konstruktor
inline myocciclass::myocciclass(const string& user, const string& passwd, const string& db) {
  this->env = Environment::createEnvironment (Environment::DEFAULT);
  this->conn = env->createConnection (user, passwd, db);
  this->stmt = conn->createStatement();
}
//destruktor
inline myocciclass::~myocciclass() {
  this->conn->terminateStatement (this->stmt);
  this->env->terminateConnection (this->conn);
  Environment::terminateEnvironment (this->env);
}


Class diatas dapat ditambahkan dengan properties dan method lain yang dibutuhkan. Dengan menggunakan class seperti ini, pengaksesan database akan lebih mudah, karena di program utama, cukup melakukan instantiasi object dari class myocciclass :

myocciclass *moc = new myocciclass (userName, password, db);


Selanjutnya tinggal memanggil mothod2 pada object moc yang telah didefinisikan. Program utama tidak perlu melakukan inisialisasi maupun menutup koneksi ke database Oracle, karena hal itu telah ditangani oleh class myocciclass.

Selamat memprogram menggunakan OCCI...

Selasa, April 03, 2007

Use your Brain

Think twice before u light and take your smoke dose ;)


Quit Smoking - More amazing video clips are a click away

Stop smoking

To all smokers in the world :)


Stop Smoking - Celebrity bloopers here

Minggu, April 01, 2007

Database access from PHP

When building application that need coonections to databases, there are two common options. First, to use a programming language's build in feature to access the database. Second, using a wrapper class / library to provide an easy way to connect to the database.

In PHP, a build in feature to connect to databases is available. Take a look at PHP connection to MySQL. In PHP 5, there are two way to connect to MySQL, either using mysql_ command set, or using mysqli_ command set. Both of those command are incompatible. Example, to escape a string, mysql command set had the command and parameter like this format:

string mysql_real_escape_string ( string unescaped_string [, resource link_identifier] );

But, mysqli had the parameter position swapped:
string mysqli_real_escape_string ( mysqli link, string escapestr )


See, you can't savely replace each mysql_ with mysqli_, both command is not compatible. To connect to other database?? Every database build in command had it's own parameter sets, and it's non compatible with the other's command.

The second way to access database was created to overcome those issues. One of the library that has multiple database connection support is ADODB. When using ADODB, the command to execute query in the MySQL and in the MSSQL is the same command. The parameter are in the same order. ADODB's version to above escape_string functions is
$conn->qstr(string);


ADODB wil take care resource identifier passing to actual command. ADODB wraps all needed variables into a single object. ADODB make PHP Programming easier.

Jumat, Maret 30, 2007

Top 6 from Top 10 for programmer - codinghorror

Got this from linux-programming@linux.or.id maillist, posted by fade2blac

Jerry Weinberg: The 10 Commandments of Egoless Programming
1.Understand and accept that you will make mistakes.
2.You are not your code.
3.No matter how much "karate" you know, someone else will always know more.
4.Don't rewrite code without consultation.
5.Treat people who know less than you with respect, deference, and patience.
6.The only constant in the world is change.
7.The only true authority stems from knowledge, not from position.
8.Fight for what you believe, but gracefully accept defeat.
9.Don't be "the guy in the room."
10.Critique code instead of people- be kind to the coder, not to the code.


Dare Obasanjo: Top 10 Signs Your Software Project is Doomed
1.Trying to do too much in the first version.
2.Taking a major dependency on unproven technology.
3.Competing with an existing internal project that is either a cash cow or has powerful backers.
4.The team is understaffed.
5."Complex problems require complex solutions".
6.Schedule Chicken
7.Scope Creep
8.Second System Syndrome
9.No Entrance Strategy.
10.Tackling a problem you don't know how to solve.


Omar Shahine: Top 10 Tips for Working at Microsoft (or Anywhere Else)
1.Process is no substitute for thinking.
2.Get out of your office.
3.Use your product (the one your customers will).
4.Fix things that are broken rather than complain about them being broken. Actions speak better than your complaining.
5.Make hard problem look easy. Don't make easy problems look hard.
6.Use the right communication tool for the job.
7.Learn to make mistakes.
8.Keep things simple.
9.Add value all the time.
10.Use their product.


Michael McDonough: The Top 10 Things They Never Taught Me in Design School
1.Talent is one-third of the success equation.
2.95 percent of any creative profession is shit work.
3.If everything is equally important, then nothing is very important.
4.Don't over-think a problem.
5.Start with what you know; then remove the unknowns.
6.Don't forget your goal.
7.When you throw your weight around, you usually fall off balance.
8.The road to hell is paved with good intentions; or, no good deed goes unpunished.
9.It all comes down to output.
10.The rest of the world counts.


Andres Taylor: Top 10 Things Ten Years of Professional Software Development Has Taught Me
1.Object orientation is much harder than you think.
2.The difficult part of software development is communication.
3.Learn to say no.
4.If everything is equally important, then nothing is important.
5.Don't over-think a problem.
6.Dive really deep into something, but don't get hung up.
7.Learn about the other parts of the software development machine.
8.Your colleagues are your best teachers.
9.It all comes down to working software.
10.Some people are assholes.


Steve Yegge: 10 Great Books
1.The Pragmatic Programmer: From Journeyman to Master
2.Refactoring: Improving the Design of Existing Code
3.Design Patterns
4.Concurrent Programming in Java(TM): Design Principles and Pattern (2nd Edition)
5.Mastering Regular Expressions, 2nd Edition
6.The Algorithm Design Manual
7.The C Programming Language, Second Edition
8.The Little Schemer
9.Compilers
10.WikiWikiWeb

Becoming an Aplication Developer (part 2)

...
I had my first PC in the year 2001, in the end of second semester of my first year. But instead to be more focus doing programming, I spent most of my time playing computer games. 'Cause of my addiction to computer games, I had a low GPA in my second and third years in my college. When my friends graduated, I was still retook lecture that I've failed.

My first application developer job was in my internship in my third years. Together with Iwan BK, my college buddy, we build an online registration system for our college. I've got many experience that I didn't get in classroom.

Next, I've joined Comlabs, building another online academic system. For all this years, web programming is the only programming method that I'm god of. I could only use Java to make an desktop application for the lecture task. Since I learn PHP for a software project lecture task, I had involved in many web project using PHP.

I've finally graduated from Informatics Department, with my final task 'Building CMS' :D It's just a very simple CMS, built using PHP and MySQL. Until now, I've made my living by doing web programming.

Right now, I'm developing an inventory application, web-based. It's my friend who ask me to build this application for his brother. This is the moment for me to make my first software product. I've had this plan for a long-long time, but couldn't make it cause I'm still too lazy and still addicted to play computer games in my spare time.

When this application done, I'll kept improved this application, and make another product, actualizing my dreams when I first touch the computer, to become an application developer ...

Becoming an Aplication Developer

When I first know about computer, years ago when I was in Junior High School, I'm very excited. My friend introduced me to his computer games collection. Being able to type in DOS command prompt to play a game from a floppy diskette is my first thing to do with my school computer.

Soon I found a BASIC programming book, it took me to the next step experience with computer. In my dad school (my dad was a teacher), I could use their computer, an old 8088 PC, only capable running DOS 6.22. I created my first program using BASICA, then found out another variant of BASIC, GW-BASIC and QBASIC. I even used my pocket money saving to buy another BASIC Programming books, and rerite code in those books.

When I graduate from Senior High School, and preparing to enter University, Informatics Department come in my mind. My parents didn't want me to go to that department, cause of my miopya eyes. They afraid my miopya will getting worse, cause I would be sitting in front of the computer most of my time.

Even thought my parents disagree, I take the risk and choose Informatics Department in Bandung Institute of Technology. Looks like it's path of my life, cause I was accepted. My parents has to accept this and bless me to do my study.

(continue to part 2...)

Kamis, Februari 15, 2007

Trik mengakses Guess VMware yang ada dibelakang NAT

Sudah empat hari ini gw berkutat dengan setting VMware. Linux Debian yang jalan diatas VMware hanya bisa berkomunikasi dengan hostnya. Setting ethernet VMware sudah diset menjadi bridge. Tetap saja komputer lain yang terhubung ke host tidak bisa menghubungi Debian, dan Debiannya juga ga bisa menghubungi komputer lainnya.

Hari selasa lalu, gw test jalankan Knoppix pada VMware ini, dan hasilnya Knoppix juga ga bisa akses komputer lain. Gw lakukan test ini, untuk meyakinkan diri bahwa kesalahan bukan di sistem Debiannya. Linux Debian sebelumnya jalan baik di kantor. Sekarang ini di kantor yang lain, mesti diganti IP Addressnya. Mulanya gw kira pergantian IP Address ini yang kurang sempurna sehingga sistem tidak bisa mengakses gateway jaringan.

Oh ya, pesan kesalahan yang tampil di Linuxnya yang bikin gw curiga ini bukan kesalahan biasa. Kalau ping ko jaringan sendiri, harusnya bisa tanpa gateway kan. Nah pada kasus ini, ping ke gateway aja menghasilkan pesan error Destination Host Unreachable. Aneh banget kan ya. Ping ke komputer local lain juga pesannya sama. Hanya ke host VMware saja ping dan komunikasi jaringan lain bisa berlangsung dengan baik.

Setelah berputar-putar di internet melalui google sebagai penunjuk jalannya, akhirnya ada secercah cahaya terang :D
Dari link ini, gw menemukan perasalahan serupa yang dialami orang lain, yang sama2 menggunakan hardware ethernet Marvell Yukon. Ada pendapat bahwa permasalahan ini kemungkinan disebabkan oleh adanya firewall hardware yang harus dimatikan lesat driver. Gw coba download driver dari situs marvell-nya, tapi ga nemu setting firewall hardware. Di akhir pembahasan pada link diatas, ada trik yang akhirnya gw coba.
Trik yang gw maksud adalah dengan menjadikan guest VMware terhubung ke jaringan dengan metode NAT. Lho, kalo NAT, gimana bisa diakses dari komputer lainnya??? Nah, ini dia solusinya.

Keadaan jaringan :
Jaringan komputer memiliki IP Address 10.2.25.96 s/d 10.2.25.127 dengan netmask 255.255.255.224, gateway 10.2.25.97
Host VMware memiliki IP Address 10.2.25.110
Gw set IP Address untuk Guest VMware dengan IP Address 192.168.10.3 netmask 255.255.255.0, gateway 192.168.10.2
Untuk memudahkan, IP Address ini diberikan oleh DHCP-nya VMware, sehingga di linux ga perlu susah2 ngeset IP lagi, tinggal diset aja untuk mendapatkan IP Address dari DHCP server. Untuk Debian, edit file /etc/network/interfaces, isikan baris berikut ini:
auto eth0
iface eth0 inet dhcp

Catatan: jika entri ini telah ada di file /etc/network/interfaces edit saja sesuai dengan kebutuhan, misal : baris
auto eth0
cukup hanya muncul sekali.

OK, sekarang kita mulai setting komputer di jaringan dan Debiannya agar bisa saling berkomunikasi.

  1. Pada komputer host, set agar komputer dapat bertindak sebagai router.
    Pada host Windows, edit registry HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\
    Services\Tcpip\Parameters\IPEnableRouter
    lalu ubah nilainya menjadi '1'
    Pada host Linux, jalankan perintah:
    # echo 1 > /proc/sys/net/ipv4/ip_forward

  2. Pada system guest, tambahkan routing ke jaringan lokal, menggunakan IP-nya VMnet8.
    Untuk Linux, perintahnya:
    # route add -net 10.2.25.96 netmask 255.255.255.224 gw 192.168.10.1 eth0
    Untuk guest Windows, perintahnya:
    route -p add 10.2.25.96 mask 255.255.255.224 192.168.10.1

  3. Pada komputer lain di jaringan yang ingin mengakses sistem guest VMware diatas, tambahkan routing sebagai berikut:
    Untuk Windows, perintahnya:
    route -p add 192.168.10.0 mask 255.255.255.0 10.2.25.110
    Untuk Linux, perintahnya:
    # route add -net 192.168.10.0 netmask 255.255.255.0 gw 10.2.25.110 eth0



Voila! Sekarang antara Guest VMware dan komputer lain di jaringan host telah bisa saling berkomunikasi ;)

Tambahan:
Untuk sistem windows, penambahan routing dengan perintah route -p akan membuat routing tersebut permanen. Untuk membuat routing yang permanen di sistem Linux, gw menemukan jawabannya di sini.
Caranya:

  1. Edit file /etc/network/interfaces

  2. Tambahkan baris berikut ini:
    up route add -net 10.2.25.96 netmask 255.255.255.224 gw 192.168.10.1
    down route del -net 10.2.25.96 netmask 255.255.255.224 gw 192.168.10.1


Sekarang tabel routing akan otomatis ditambahkan saat sistem Linux booting, atau saat DHCP client memperbaharui IP Address.

Senin, Februari 12, 2007

Hari pertama ngantor di telkom japati

Mulai hari ini gw ngantornya di telkom japati. Kantor gw (Swamedia) lagi ngerjain proyek ama telkom, dan gw termasuk tim yang ikut ngerjain proyek itu.

Kalo masuk ke ruangan sih udah hari jumat lalu. Waktu itu ngangkutin komputer yang akan digunakan. Tapi abis itu langsung balik lagi ke kantor.

Hari pertama ini belum bener2 mulai kerja, coz jaringan belum nyambung semua. Linux Debian tempat repository svn-nya disimpan juga masih belum connect ke komputer lain, padahal hostnya udah bisa. Debian ini jalan di atas VMware, dan ethernetnya udah diset Bridges. Sementara gw set jadi NAT dulu aja, buat update debiannya via internet.

Internetan di sini, ga bisa YM dan Meebo. Jadi terputus lah koneksi ke dunia luar, hanya bisa menikmati layanan internet via halaman web doang.

Minggu, Februari 11, 2007

Ethernet tak dikenali pada Debian Sarge yang jalan di VMware

Gw baru saja mengalami masalah yang cukup membuat pusing kepala. Debian Sarge diinstall di atas VMware tidak mengenali virtual ethernet card yang sudah diset. Selama ini Debian itu jalan baik-baik saja. Gw mulai kluar keringat dingin nih, soalnya hari senin besok bakal dipake seperti biasa. Udah ada 2 proyek kantor yang filenya ada disana. Dalam putus asa, sempat kepikir buat install ulang aja.

Hasil googling yang gw dapatkan ga ada satupun yang berhasil. Permasalahan yang dihadapi juga beda ama masalah gw. Hasil googling memiliki permasalahan mesin virtual yang dicopy, dipindahkan, atau di-clone. Sedangkan pada masalah gw, gw ga ngapa-ngapain tu mesin. Mesin ini hanya dimatikan selama seharian lebih, karena perlu gw salin ke harddisk lain. Setelah dihidupkan lagi, tau2 aja ga bisa diremote pake ssh. Gw cek langsung di VMwarenya, ternyata eth0 memang ga dikenali oleh sistem.

Setelah setengah hari lebih me-reboot mesin, mencoba ilangin semua ethrernet, start, matikan, add new ethernet, start lagi, dan masih ga bisa2 juga, ada satu tulisan kecil diantara pembahasan permasalahan ini dari hasil google. Coba lakukan modprobe pcnet32.

Ketika gw ketik :
# modprobe pcnet32
Voila! eth0 dikenali oleh sistem.
# ifup eth0
Weitz, eth0 up and running......

Fiuh.......... untung ga perlu install ulang. Biar ga perlu ngelakuin ini tiap kali mesin reboot, tinggal tambahin aja entri nya ke file /etc/rc.local:
modprobe pcnet32
ifup eth0

Ingat, tambahkan entri ini sebelum baris yang berisi:
exit 0

Gw test reboot, dan eth0 hidup dengan normal. Sekarang yang masih gw bingung adalah kenapa tiba2 hal seperti ini terjadi. Selama seminggu lebih mesin Debian ini baik2 saja. Baru dimatikan 1 hari lebih, trus diidupin lagi, masalah ini muncul. Kenapa module pcnet32 harus diload manual?? Yang tau atau pernah mengalami masalah kayak gini, tolong kasi tau yah ;)

Sabtu, Februari 10, 2007

Salut dengan pelayanan Gramedia Jl Merdeka Bandung

Hari senin yang lalu gw beli majalan CHIP di penjual majalah deket kantor. Gw emang biasa beli majalan CHIP bulan ganjil, karena untuk edisi bulan lalunya ada di dalam DVD-nya, dalam format PDF.
Setelah dibuka, ternyata ada halaman yang berulang. Halaman 33 sampai 49 ada dobel, sedangkan halaman 50 dan seterusnya yang seharusnya ada malah ga ada.
Tadi siang, gw ke Gramedia Jl Merdeka. Karena di tas gw ada laptop, gw dibolehin tetep bawa tas menuju lantai 2. Di sana, sempat binggung juga nyari bagian informasinya. Gw terus aja jalan ke belakang, dan ternyata bagian informasi sudah lebih bagus sekarang. Ada label 'Informasi' yang bisa terlihat dengan jelas dari kejauhan. Mbak yang duduk di meja itu juga ramah. Gw langsung aja keluarkan majalah yang gw bawa, dan perlihatkan halaman majalah yang berulang. Si mbaknya langsung memproses keluhan gw, meminta rekannya mengambilkan majalah yang baru sebagai gantinya. Setelah dibuka plastiknya, si Mbak kasi majalahnya ke gw, nyuruh gw ngecek ulang lagi. Setelah gw cek dan halamannya lengkap, ya gw pergi.

Salut dengan pelayanan yang diberikan Gramedia Jl Merdeka. Semoga pelayanan ini dapat dipertahankan dan kalo bisa ditingkatkan. Toko lain semoga juga dapat mengikuti jejak Gramedia yang satu ini.

Senin, Februari 05, 2007

Kompilasi ulang PHP5 untuk mendukung OCI8

Langkah-langkah kompilasi PHP5 di Debian 3.1:


  1. Install paket-paket yang dibutukan dengan perintah berikut ini:
    # apt-get install php5-dev
    # apt-get install librecode-dev apache-dev apache2-prefork-dev chrpath debhelper freetds-dev po-debconf libbz2-dev libc-client-dev libcurl3-dev libdb4.4-dev libexpat1-dev libfreetype6-dev libgcrypt11-dev libgd2-xpm-dev libjpeg62-dev libkrb5-dev libldap2-dev libmcal0-dev libmhash-dev libmysqlclient15-dev libncurses5-dev libpam0g-dev libpcre3-dev libpng12-dev libsablot0-dev libsnmp9-dev libt1-dev libtool libwrap0-dev libxmltok1-dev libxml2-dev libxslt1-dev libzzip-dev re2c unixodbc-dev firebird2-dev libmcrypt-dev libpspell-dev libsqlite0-dev libtidy-dev

    Catatan: beberapa paket dev diatas mungkin telah obselete, atau merupakan paket virtual. Perhatikan pesan kesalahan yang ditampilkan oleh apt, untuk mengatasi conflict atau paket yang kurang. Saya menggunakan distribusi testing untuk melakukan kompilasi php5 ini.

  2. Install Oracle client, jika pada sistem belum ada Oracle, maupun Oracle client. Untuk memudahkan, oracle telah menyediakan repository debian untuk menginstall paket oracle-xe. Cukup tambahkan baris ini:
    deb http://oss.oracle.com/debian/ unstable main non-free

    di file /etc/apt-source.list lalu jalankan perintah
    # apt-get update
    Lalu install oracle-xe-client dengan perintah:
    # apt-get install libaio oracle-xe-client
    Setelah terinstall oracle-xe, jalankan perintah ini:
    # . /usr/lib/oracle/xe/app/oracle/product/10.2.0/client/bin/oracle_env.sh (PS: jangan lupa titik di awal).
    Jika Anda menginstall oracle client lain, atau oracle server, set ORACLE_HOME dan LD_LIBRARY_PATH sesuai dengan dokumentasi oracle itu.
    Set juga variabel berikut ini:
    # export LD_PRELOAD=libclntsh.so
    Lalu edit file /etc/ld.so.conf, tambahkan baris berikut ini:
    /usr/lib/oracle/xe/app/oracle/product/10.2.0/client/lib
    Selanjutnya jalankan perintah # ldconfig agar library oracle client diload ke sistem.

  3. Download source code php5 dengan perintah
    # apt-get source php5
    Source code akan didownload ke current direktory saat command dieksekusi.

  4. Pindahlah ke direktory hasil ekstract source php5, lalu edit file debian/rules

  5. Tambahkan opsi --with-oci8 pada bagian akhir dari COMMON_CONFIG = […].

  6. Tambah change log dengan perintah:
    $ debchange -i
    Isi dengan keterangan yang informatif, misal: kompilasi ulang PHP5 dengan menambahkan --with-oci8.

  7. Jalankan
    $ dpkg-buildpackage
    untuk mengkompile php5

  8. Proses kompilasi akan berjalan, tunggu hingga proses ini selesai. Jika masih ada paket dev yang kurang, maka proses kompilasi akan terhenti dan tampil nama paket dev yang dibutuhkan, tapi belun diinstall. Install paket ini, lalu ulangi lagi perintah $ dpkg-buildpackage.

  9. Proses kompilasi yang sukses akan menghasilkan file .deb di direktori diatas direktori tempat php5 source berada. Install file deb yang diperlukan dengan perintah seperti biasa:
    # dpkg -i namafile.deb
    Reload apache setelah selesai melakukan instalasi.
Sekarang pada sistem debian Anda telah terinstall PHP5 dengan dukungan OCI8. Cek melalui perintah <?php phpinfo(); ?> pada sebuah halaman php. Temukan bagian OCI8.

Update ley-out

Setelah sekian lama tertunda akibat koneksi internet kantor yang pas-pasan, akhirnya sekarang blog ini make leyout yang baru. Isi dari blog lama, seperti shoutbox, prayer time, dll baru aja gw pindahin, jadinya masih kacau gitu, blm nyambung ama leyout dari template. Nanti dibenerin lagi deh.

Oh iya, kalo dulu comment post pake haloscan, sekarang make bawaannya blogger. comment yang lama masih ada kok di haloscan, tapi mungkin ga bakal dipake lagi. Ribet sih ngaturnya. Kalo pake bawaan blogger, kan ngaturnya sekalian di dashboard :D

Kalo shoutbox, akan dipertahankan. ID gw di shoutbox itu unik, palindrom (93039), dan merupakan hal yang membuat gw ngelanjutin nge-blog waktu awal ngeblog dulu :D

Selasa, Januari 16, 2007

Dah lama juga ga ngebloggggg

Hmmm, ga terasa tahun baru telah datang. Di tahun yang baru ini , banyak rencana yang terpikirkan dan ingin dilaksanakan. Sanggup ga a gw melaksanakan semua rencara di tahun ini??

Blog ini tampaknya perlu pembenahan, baik dari segi layout, maupun isi.