Selasa, Januari 28, 2014

Terminal msys is unknown

"Terminal msys is unknown" muncul waktu eksekusi perintah remote komputer via ssh. msys digunakan untuk kelacaran penggunaan git via command line di windows. Pada waktu itu, environment variable TERM di set ke msys, he .. he ..

Solusi yang mudah dilakukan dengan mengubah variable TERM.
set TERM=ansi

Happy coding terminal-ing ..

Senin, Januari 13, 2014

Backup dan Restore Database PostgreSQL

Pembuatan backup dan proses retore database PostgreSQL dapat dilakukan dengan membuat makefile dengan isi file sebagai berikut:
db-backup:
    time pg_dumpall -U postgres -l <database-name> -c \
        | 7z a -mx9 -si <database-name>.sql.7z
db-restore:
    time 7z e -so <database-name>.sql.7z \
        | psql -U postgres -d <database-name>

db-backup
Perintah di atas akan membackup database dengan perintah pg_dumpall, option -c ditambahkan untuk menyertakan perintah untuk membuat database. Output dari pg_dumpall akan ditampilkan ke STDOUT. 7z dengan opsi -si (Standard Input) akan memproses output dari pg_dumpall yang akan dikompress dengan tingkat kompresi maximum melalui opsi -mx9. Perintah time memberikan informasi lama waktu yang telah digunakan untuk menyelesaikan rangkaian perintah. Dalam praktek, penyimpanan dalam format 7z pada contoh di atas berhasil mengurangi ukuran file dari 99MB menjadi 5.4MB.

db-restore
Kebalikan dari db-backup. Capek ngetiknya ..

backup dengan informasi waktu di nama file output
Perintah 7z di atas dimodifikasi sebagai berikut:
7z a -mx9 -si <database-name>-`date +%Y%m%d%H%M%S`.sql.7z

bash-completion
Plus, di bash terdapat paket bash-completion yang dapat diinstall dengan perintah:
sudo apt-get install bash-completion
Sehingga di terminal setelah mengetik "make" diikuti dengan spasi kemudian disusul dengan tab, maka bash akan mencoba melengkapi dengan section yang ada pada file makefile.

Jumat, Januari 10, 2014

AIX - Hash Files

Salah satu cara membandingkan file-file yang ada dalam dua direktori berbeda adalah membandingkan hash dari masing-masing direktori. Di AIX, hal ini dapat dilakukan dengan perintah:
find . -type f \
    | sed -e 's/^/"/' -e 's/$/"/' \
    | xargs csum -h MD5

find . -type f
Membuat daftar file yang ada dalam direktori aktif dan dalam semua sub direktori. Di Ubuntu, perintah find memiliki opsi -exec yang akan mengeksekusi perintah yang ada pada nilai opsi tersebut. Di Ubuntu, untuk mengeksekusi perintah di atas dapat dilakukan dengan
find . -type f -exec md5sum "{}" \;

sed -e 's/^/"/' -e 's/$/"/'
Menambah karakter '"' di depan dan di belakang baris input. Perintah xargs tidak dapat berjalan dengan baik apabila nama file yang diberikan memiliki karakter spasi, tidak diawali dengan karakter '"', dan tidak diakhiri dengan karakter '"'.

xargs csum -h MD5
Menghitung MD5 dari file yang diberikan lewat baris input.

Senin, Januari 06, 2014

PHP: The system cannot execute the specified program.

Pada waktu menjalankan php, muncul pesan kesalahan "The system cannot execute the specified program.". Hal ini dapat disebabkan karena library yang dibutuhkan untuk menjalankan php belum ter-install di Operating System.

Langkah troubleshooting, sebagai berikut:
  1. Cari versi build dari distribusi PHP.
    Informasi ini dapat dibaca di file snapshot.txt yang ada dalam folder distribusi PHP. Misalnya:
    Build: C:\php-sdk\php53dev\vc9\x86\obj\Release
    Pada contoh di atas, library yang digunakan adalah Microsot Visual C versi 9.
  2. Download library / runtime terkait.
    Library Microsot Visual C versi 9 membutuhkan Microsoft Visual C++ 2008 Redistibutable yang dapat di-download di alamat http://www.microsoft.com/en-us/download/details.aspx?id=29