Minggu, Agustus 22, 2010

Kompilasi HandBrake di Ubuntu 10.04 Lucid Lynx

Mungkin sebagian dari Anda pengguna Ubuntu, sudah tahu bahwa HandBrake tidak keluar versi binary untuk distro Ubuntu dan Fedora. Padahal HandBrake menurut saya adalah salah satu aplikasi terbaik buat nge-rip DVD/encode video ke format MKV atau MP4. Alasan resmi dari developernya adalah:
"0.9.4 is no longer available due to compatibility issues with the newer version of gnome. "
Ada juga cara dengan mendownload Nightly build-nya di Launchpad-nya John Stebbins. Buat yang demen cara susah, biar keliatan lebih geek, bisa juga install dengan kompilasi dari Source Code. Sebelumnya coba cara susah ini, pastiin komputer anda terkoneksi ke Internet dan pastikan paket-paket development berikut ini sudah terinstall:
  • yasm
  • build-essential
  • autoconf
  • libtool
  • zlib1g-dev
  • libbz2-dev
  • intltool
  • libglib2.0-dev
  • libdbus-glib-1-dev
  • libgtk2.0-dev
  • libgudev-1.0-dev
  • libwebkit-dev
  • libnotify-dev
  • libgstreamer0.10-dev
  • libgstreamer-plugins-base0.10-dev
Bagaimana cara installnya? buka console, lalu seperti biasa ketikkan perintah: sudo apt-get install yasm build-essential autoconf libtool zlib1g-dev libbz2-dev intltool libglib2.0-dev libdbus-glib-1-dev libgtk2.0-dev libgudev-1.0-dev libwebkit-dev libnotify-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev
Setelah paket-paket tersebut sudah terinstall dengan baik, maka lakukan langkah-langkah sebagai berikut:
  1. Download source code HandBrake (Ya iya lahh!!!) (Pada saat tulisan ini dibuat HandBrake berada pada versi 0.9.4)
  2. Buka console kesayangan anda dan arahkan ke direktori tempat anda mendowload source code HandBrake tadi.
  3. Extract file tarball source code HandBrake dengan perintah: tar xvf HandBrake-0.9.4.tar.bz2
  4. masuk ke direktori hasil ekstraksi tadi dengan perintah: cd HandBrake-0.9.4/
  5. Jalankan perintah: ./configure --prefix=/usr/local
  6. Setelah proses selesai, lalu masuk ke direktori build dengan perintah: cd ./build
  7. Jalankan make dengan perintah: make
  8. Tunggu proses-nya yang cukup lama selesai (tergantung spesifikasi komputer Anda), dan beberapa dependancies akan didownload otomatis ketika proses berjalan, seperti faac, faad, ffmpeg, dsb.


  9. Setelah proses kompilasi selesai tanpa error, jalankan perintah install: sudo make install
  10. Untuk mencoba apakah HandBrake sudah berjalan coba jalankan perintah: HandBrakeCLI untuk versi command line-nya dan juga ghb untuk versi dengan GUI GTK2.0-nya
  11. Bagi yang masih penasaran mengenai cara kompilasinya, silahkan baca manual kompilasi aslinya di Compiling HandBrake on GNU/Linux.
Selamat! sekarang HandBrake sudah bisa digunakan untuk me-rip DVD kesayangan anda dalam format MKV atau MP4, bisa lewat GUI ataupun kalo mau merasa lebih geeky lagi buang jauh-jauh GUI, pake versi command line-nya :P :D!!

Selasa, Mei 25, 2010

Mengatasi problem "wget" ketika mendownload di balik proxy (Ubuntu Lucid Lynx)

Beberapa waktu yang lalu saya meng-upgrade OS GNU/Linux Ubuntu Karmic Koala (9.10) di MacbookPro saya ke versi LTS terbaru, Lucid Lynx (10.04). Saya upgrade menggunakan versi alternate yang saya download dari Kambing. Semua proses berjalan lancar, Lucid terinstall dengan ciamik-nya di MacbookPro dan hampir semua tombol fungsi spesial di Mac berjalan dengan baik.

Masalah muncul ketika saya akan mendownload website untuk mirroring dengan program command-line favorit saya, wget. Kantor saya menggunakan proxy untuk koneksi Internet, sehingga untuk menjalankan perintah-perintah dari console yang menjalankan download seperti apt-get install atau apt-get update misalnya kita harus men-set environment variable http_proxy dan ftp_proxy terlebih dahulu. Pada desktop GNOME sudah disediakan aplikasi "Network Proxy" yang terletak di System->Preferences, yang memudahkan kita mengubah setting proxy jaringan. Enaknya lagi program ini mendukung multiple profile proxy yang memudahkan kita untuk menyimpan lebih dari satu setting proxy, kemudian tinggal mengubahnya sesuai dengan kebutuhan kita.

Sayangnya, pada Ubuntu Lucid Lynx, entah kenapa wget tidak terpengaruh dengan setting proxy ini, tetapi tools apt dan yang lainnya terpengaruh. Setelah berkeliling internet mencari-cari solusinya, dan akhirnya menemukan solusinya di Lauchpad, ternyata masalahnya sangat simple!!! Ternyata masalahnya ada di environment variable no_proxy yang secara "tidak sengaja" menaruh karakter "," (koma) di bagian akhir!!! PLLOOOKKKK!!! (tepok jidat)

Solusinya adalah dengan menghilangkan tanda koma di bagian akhir tersebut, dengan cara men-set ulang variable no_proxy di console: $export no_proxy=daftar-alamat-tidak-kena-proxy1,daftar-alamat-tidak-kena-proxy2,daftar-alamat-tidak-kena-proxy3 dan kemudian wget bisa berjalan dengan normal kembali seperti biasa walau ada proxy. Jangan lupa juga cek file konfigurasi wget yang terletak di "/etc/wgetrc" dan pastikan setting use_proxy=on aktif dan setting no_proxy ditulis dengan benar (bila ada).

Kamis, April 29, 2010

Compile Sphinx indexing engine di Mac OSX 10.6.3

Cari solusi indexing database standalone yang handal? Salah satu solusinya adalah Sphinx. Sphinx adalah engine pengindeksan full-text yang didesain untuk terintegrasi dengan baik ke RDBMS-RDBMS macem MySQL dan PostgreSQL, dan yang asiknya laginya Sphinx sudah menyediakan API ke bahasa-bahasa scripting populer macem PHP, Python, Perl dan Ruby.
Karena saya develop aplikasi pake bahasa skripting PHP, maka Sphinx merupakan solusi yang pas untuk saya. Salah satu fitur yang bikin saya ngiler adalah statement berikut ini:
"high search speed (avg query is under 0.1 sec on 2-4 GB text collections)"
Wuiidddiihhh kalo dibandingin sama indexing native mysql, 100 ribu records yang besarnya sekitar 30MB aje ude empot-empotan!!! Statement berikutnya juga bikin ileran
"high scalability (upto 100 GB of text, upto 100 M documents on a single CPU)"
Saat tulisan ini dibuat, saya develop aplikasi web pake Macbook Pro, OS Snow Leopard 10.6.3, dan karena saya males compile-compile Apache, MySQL dan PHP (kecuali di OS GNU/Linux entah kenapa kurang apdol rasanya kalo ga di-compile sendiri heheheheee *kabboorr*), jadilah saya pake XAMPP for Mac OSX versi 1.7.2.
Karena binary Sphinx kage ade buat Mac OSX, cuman ade buat "Mikocok Winslow", maka itu berarti kite harus compile sendiri Sphinx. ALHAMDULILLAH WA SYUKURILLAH! OSX udah nyedian Xcode yang didalemnya udah ada semua tool development UNIX macem gcc, g++, make, automake, autoconf, you name it lah! GRATIS lagi! *Getokin Apple kalo sampe paket XCode dibikin berbayar*. ALHAMDULILLAH lagi, karena Mac OSX basisnya UNIX juga (Darwin+FreeBSD), maka console dengan shell prompt Bash yang kesohor itupun ude ade by default di OSX *ffiuuuuhhhhh, can't live without those consoles*. ALHAMDULILLAH lagi! struktur direktori Mac OSX yang kaga jauh beda sama UNIX atau GNU/Linux!
Jadilah saya "iseng-iseng berhadiah" compile Sphinx di Macbook Pro saya. Yang pasti sebelum mulai compile Sphinx, download dan install dahulu library-library berikut ini (beserta dengan header-header developmentnya!! kudu, wajib!!):
  1. Source code terbaru Sphinx
  2. Source code libstemmer
  3. Source code dan file-file header MySQL kalo kita mau integrasikan Sphinx dengan MySQL
  4. Source code dan file-file header PostgreSQL kalo kita mau integrasikan Sphinx dengan PostgreSQL
  5. Bagi yang menggunakan XAMPP bisa lebih mudah, download paket XAMPP-Dev yang sesuai dengan versi yang kita pake
Proses instalasinya kira-kira begini:
  1. Buka aplikasi "Terminal", kalo belom tau coba cari di /Applications/Utilities/
  2. Ekstrak file distribusi Sphinx pake perintah: tar xvf sphinx-0.9.9.tar.gz
  3. Ekstrak file distribusi libstemmer dan kopikan folder ekstraksi libstemmer ke dalam folder source Sphinx yang baru saja kita ekstrak pake perintah: cp -r ./libstemmer_c sphinx-0.9.9
  4. Masuk ke direktori hasil ekstraksi pake perintah: cd sphinx-0.9.9
  5. Karena saya pake XAMPP Mac OSX perintah configure saya seperti ini: Dicarve@Macbook sphinx-0.9.9$ CFLAGS="-O -arch i386" CXXFLAGS="-O -arch i386 -I/Applications/XAMPP/xamppfiles/include/ -I/Applications/XAMPP/xamppfiles/include/mysql" LDFLAGS="-arch i386 -L/Applications/XAMPP/xamppfiles/lib" ./configure --prefix=/usr/local/ --with-mysql -with-libstemmer --with-mysql-includes=/Applications/XAMPP/xamppfiles/include/mysql --with-mysql-libs=/Applications/XAMPP/xamppfiles/lib/mysql Saya sempet agak-agak stress karena diawal-awal proses kompilasi gagal melulu! setelah baca-baca keliling Internet dan baca disini, ternyata sphinx-nye harus di-compile di mode 32 bit! *karena by default gcc di Mac OSX compile di mode 64 bit*

  6. Apabila proses konfigurasi berjalan lancar tanpa masalah, maka lanjutkan dengan perintah berikut secara berurutan: $ make
    $ sudo make install
Horreee Sphinx berhasil diinstall!!!! Yiiihhuuu!!! Selanjutnya tinggal konfigurasi Sphinx biar bisa "bicara" sama MySQL atau PostgreSQL, selamat mencoba, dan jangan lupa baca dokumentasi sphinx di website resminya, RTFM!

Rabu, Januari 06, 2010

Emang Enak Kepentok Proxy!!!

Mengembangkan software dengan menggunakan aplikasi source code management (SCM) emang enak. Kami, developer SENAYAN Library Management System (SLiMS) pake git buat source code versioningnya. Asiknya pake git dibandingkan dengan aplikasi SCM lain adalah git menerapkan model ter-distribusi, tidak centralize seperti cvs. Asyiknya lagi pake git, kita ga harus terkoneksi ke server, kita bisa pake lingkungan hard disk lokal untuk buat branch-branch dari project kita.

Saya ga akan ngebahas cara make git disini, tapi saya ngebahas bagaimana kalau kita mau push dan pull request dari server repository git di internet, tapi kepentok sama proxy jaringan dan firewall yang biasanya cuman ngebolehin port 80 atau 3182.

Tapi itulah keindahan dunia open source, "That's The Beauty of Open Source", udah ada aplikasi yang bisa bantu kita tunneling data dari git, yang by default pake protokol SSL. aplikasi command line ini namanya Corkscrew, dan tersedia untuk semua varian GNU/Linux, UNIX, BSD, Mac OSX dan MS Windows (tapi mesti install Cygwin dulu, HAHAHHAHAHA!!! EMANG ENAKK!!!!). Apa pulak "Corkscrew" ini? ngutip langsung dari websitenya :

"Corkscrew is a tool for tunneling SSH through HTTP proxies."
Versi terakhir ketika tulisan ini diketik dan dipikirkan adalah versi 2.0.

Buat make Corkscrew, caranya gampang banget, kalo ga bisa dibilang susah :D, cukup download source code-nya dan kemudian compile deh pake compiler C favorit anda hehehheeheee..... Kalau anda pake GNU/Linux, biasanya gcc by default ude keinstall, kalo enggak yang nasib, hehheheee.... becanda! kalo ga ada gcc ya install lah dari repo distro anda :)). Step instalasinya setelah download kira-kira seperti ini :

  1. Buka console/terminal kesayangan anda (pliss, jangan buka DOS atau Command Prompt!!)
  2. Extract file hasil download Corkscrew pake perintah: tar xvzf corkscrew-2.0.tar.gz
  3. Masuk ke dalam direktori hasil ekstract: cd corkscrew-2.0
  4. Jalankan perintah berikut secara berurutan:
    ./configure --prefix=/usr/local
    make
    sudo make install

Setelah instalasi Corkscrew berhasil, maka langkah selanjutnya adalah mengkonfigurasi ssh agar bisa tunneling SSL lewat proxy. Buka file yang namanya "config", yang ada di folder ".ssh" di home directory user. Misalnya home directory saya di "/home/dicarve" maka berarti letaknya ada di "/home/dicarve/.ssh/". Kalo file "config" belom ada.......... ya dibuatlah pake text editor, pake vi, pake vim, pake emacs, pake nano (halahhhh). Edit file config tersebut dan isikan kira-kira seperti ini :

Host gitproxy 
    User git
    HostName ssh.github.com
    Port 443
    ProxyCommand /usr/local/bin/corkscrew alamat-atau-no-IP-proxy port-proxy %h %p
    IdentityFile /home/dicarve/.ssh/id_dsa
Jangan lupa di-save!! :D

Setelah semua itu selesai, maka nanti ketika kita mau pull atau push data ke repository server git, misalnya SLiMS di repo-kan di github/slims, perintah git yang kita lakukan bukannya begini:

git pull git@github.com:slims/s3st13.git master
Tapi jadi begini:
git pull git@gitproxy:slims/s3st13.git master
atau kalo mau push
git push git@gitproxy:slims/s3st13.git master