Monday, August 20, 2007

Install Excell lib di linux

[root@localhost package_install_frsource_batulayang]# /usr/local/apache2/php/bin/pear install OLE-0.5.tar
PHP Warning: PHP Startup: Unable to load dynamic library './/usr/local/apache2/php/lib/php/extensions/no-debug-non-zts-20060613/pdf.so' - .//usr/local/apache2/php/lib/php/extensions/no-debug-non-zts-20060613/pdf.so: cannot open shared object file: No such file or directory in Unknown on line 0
install ok: channel://pear.php.net/OLE-0.5
[root@localhost package_install_frsource_batulayang]# /usr/local/apache2/php/bin/pear install Spreadsheet_Excel_Writer-0.9.1.tar
PHP Warning: PHP Startup: Unable to load dynamic library './/usr/local/apache2/php/lib/php/extensions/no-debug-non-zts-20060613/pdf.so' - .//usr/local/apache2/php/lib/php/extensions/no-debug-non-zts-20060613/pdf.so: cannot open shared object file: No such file or directory in Unknown on line 0
install ok: channel://pear.php.net/Spreadsheet_Excel_Writer-0.9.1
[root@localhost package_install_frsource_batulayang]#

Tuesday, January 23, 2007

Catatan Pada php.ini

Berikut ini adalah sedikit catatan pada php.ini yang saya peroleh ketika mencoba menyiapkan sebuah http daemon.

1. Ketika akan menggunakan tanda pembuka code buka kurung lancip '<' dan tanda tanya '?' alih-alih buka kurung lancip '<' dan tanda tanya '?' dan php [*ternyata blogspot tidak membolehkan tag pada input posting :) ], pastikan untuk membuka variabel short_open_tag
.
.
;;;;;;;;;;;;;;;;;;;;
; Language Options ;
;;;;;;;;;;;;;;;;;;;;
.
.
; Allow the tags are recognized.
; NOTE: Using short tags should be avoided when developing applications or
; libraries that are meant for redistribution, or deployment on PHP
; servers which are not under your control, because short tags may not
; be supported on the target server. For portable, redistributable code,
; be sure not to use short tags.
short_open_tag = On
.
.

2. Ketika menggunakan variabel global, pastikan untuk membuka variabel register_long_arrays dan register_arc_arv agar anda dapat memakai variabel array gaya lama (misal $HTTP_*_VARS dll
.
.
;;;;;;;;;;;;;;;;;
; Data Handling ;
;;;;;;;;;;;;;;;;;
.
.
; Whether or not to register the EGPCS variables as global variables. You may
; want to turn this off if you don't want to clutter your scripts' global scope
; with user data. This makes most sense when coupled with track_vars - in which
; case you can access all of the GPC variables through the $HTTP_*_VARS[],
; variables.
;
; You should do your best to write your scripts so that they do not require
; register_globals to be on; Using form variables as globals can easily lead
; to possible security problems, if the code is not very well thought of.
register_globals = On

; Whether or not to register the old-style input arrays, HTTP_GET_VARS
; and friends. If you're not using them, it's recommended to turn them off,
; for performance reasons.
register_long_arrays = On

; This directive tells PHP whether to declare the argv&argc variables (that
; would contain the GET information). If you don't use these variables, you
; should turn it off for increased performance.
register_argc_argv = On
.
.

3. Untuk server yang digunakan untuk pengembangan sistem sebaiknya semua error message dibuka agar diketahui semua kesalahan yang mungkin terjadi
.
.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Error handling and logging ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

.
.
error_reporting = E_ALL

; Print out errors (as a part of the output). For production web sites,
; you're strongly encouraged to turn this feature off, and use error logging
; instead (see below). Keeping display_errors enabled on a production web site
; may reveal security information to end users, such as file paths on your Web
; server, your database schema or other information.
display_errors = On
.
.
; Disable the inclusion of HTML tags in error messages.
; Note: Never use this feature for production boxes.
html_errors = On
.
.

4. Jika ingin menggunakan ASP, maka variabel asp_tags harus dibuka terlebih dahulu
.
.
;;;;;;;;;;;;;;;;;;;;
; Language Options ;
;;;;;;;;;;;;;;;;;;;;
.
.
; Allow ASP-style <% %> tags.
asp_tags = Off
.
.

5. Pastikan untuk me-restart http daemon agar perubahan yang telah dilakukan terhadap php.ini bisa dieksekusi.

Monday, January 22, 2007

Log Instalasi PDFLib-Lite

Posting ini merupakan rangkaian log instalasi terakhir, yaitu menginstal pdflib-lite.
Untuk lebih jelasnya silahkan membaca posting-posting sebelumnya.

Untuk menginstal pdflib-lite diperlukan dua file, yaitu:
> PDFlib-Lite : http://www.pdflib.com/en/products/pdflib-family/pdflib-6/pdflib-lite/
> pecl-php pdflib : http://pecl.php.net/package/pdflib

1. Ekstrak PDFlib-lite
[root@localhost package_install_frsource]# tar -xzvf PDFlib-Lite-6.0.3.tar.tar


2. Konfigurasi PDFlib-Lite dengan sebelumnya masuk ke folder PDFlib-Lite
[root@localhost package_install_frsource]# cd PDFlib-Lite-6.0.3
[root@localhost PDFlib-Lite-6.0.3]# ./configure --prefix=/usr/local
checking whether g++ accepts -g... yes
checking whether the previously found C++ compiler works... yes
configure: creating ./config.status
config.status: creating config/mkcommon.inc
config.status: creating pdflib-config
config.status: executing default commands
_____________________________________________________________
For your convenience, here's a summary of configure's results:

Support for shared libraries: yes
C++ language binding for PDFlib: yes
Java language binding for PDFlib: yes
Perl language binding for PDFlib: yes
Python language binding for PDFlib: yes
Ruby language binding for PDFlib: no
Tcl language binding for PDFlib: no
PDF import library (PDI): no
Large file support: yes
Note: if you purchase the additional PDF import library (PDI)
you can also manipulate existing PDF documents with PDFlib.
The additional block feature can be used to personalize PDF.
See http://www.pdflib.com for details.

Please observe the licensing terms for commercial PDFlib usage.
PDFlib license agreement and purchase order can be found in the doc directory.

[root@localhost PDFlib-Lite-6.0.3]#

3. Compiling
[root@localhost PDFlib-Lite-6.0.3]# make
.
.
make[1]: Leaving directory `/usr/local/package_install_frsource/PDFlib-Lite-6.0.3/bind'
make[1]: Entering directory `/usr/local/package_install_frsource/PDFlib-Lite-6.0.3/progs'
make[2]: Entering directory `/usr/local/package_install_frsource/PDFlib-Lite-6.0.3/progs/pdflib'
../../libtool --silent --mode=link gcc -static -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -g -O2 -D__NO_CTYPE -DPDC_PF_LINUX_IA32 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DPDF_PLATFORM=\""Linux"\" -I../../libs/pdflib -o pdfimpose pdfimpose.c getopt.c ../../libs/pdflib/libs_libpdf.la -lm
../../libtool --silent --mode=link gcc -static -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -g -O2 -D__NO_CTYPE -DPDC_PF_LINUX_IA32 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DPDF_PLATFORM=\""Linux"\" -I../../libs/pdflib -o pdfimage pdfimage.c getopt.c ../../libs/pdflib/libs_libpdf.la -lm
../../libtool --silent --mode=link gcc -static -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -g -O2 -D__NO_CTYPE -DPDC_PF_LINUX_IA32 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DPDF_PLATFORM=\""Linux"\" -I../../libs/pdflib -o text2pdf text2pdf.c getopt.c ../../libs/pdflib/libs_libpdf.la -lm
make[2]: Leaving directory `/usr/local/package_install_frsource/PDFlib-Lite-6.0.3/progs/pdflib'
make[1]: Leaving directory `/usr/local/package_install_frsource/PDFlib-Lite-6.0.3/progs'
[root@localhost PDFlib-Lite-6.0.3]#

4. Installing
[root@localhost PDFlib-Lite-6.0.3]# make install
.
.
ake[3]: Leaving directory `/usr/local/package_install_frsource/PDFlib-Lite-6.0.3/bind/pdflib/java'
make[3]: Entering directory `/usr/local/package_install_frsource/PDFlib-Lite-6.0.3/bind/pdflib/perl'
../../../libtool --silent --mode=install \
../../../config/install-sh -c -m 644 pdflib_pl.la /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi
../../../config/install-sh -c -m 644 pdflib_pl.pm /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi
make[3]: Leaving directory `/usr/local/package_install_frsource/PDFlib-Lite-6.0.3/bind/pdflib/perl'
make[3]: Entering directory `/usr/local/package_install_frsource/PDFlib-Lite-6.0.3/bind/pdflib/python'
make[3]: Leaving directory `/usr/local/package_install_frsource/PDFlib-Lite-6.0.3/bind/pdflib/python'
make[2]: Leaving directory `/usr/local/package_install_frsource/PDFlib-Lite-6.0.3/bind/pdflib'
make[1]: Leaving directory `/usr/local/package_install_frsource/PDFlib-Lite-6.0.3/bind'
make[1]: Entering directory `/usr/local/package_install_frsource/PDFlib-Lite-6.0.3/progs'
make[2]: Entering directory `/usr/local/package_install_frsource/PDFlib-Lite-6.0.3/progs/pdflib'
mkdir -p /usr/local/bin
../../config/install-sh -c pdfimage text2pdf /usr/local/bin
make[2]: Leaving directory `/usr/local/package_install_frsource/PDFlib-Lite-6.0.3/progs/pdflib'
make[1]: Leaving directory `/usr/local/package_install_frsource/PDFlib-Lite-6.0.3/progs'
mkdir -p /usr/local/bin
./config/install-sh -c pdflib-config /usr/local/bin
[root@localhost PDFlib-Lite-6.0.3]#

5. Instal pecl pdflib menggunakan pear, dan masukkan /usr/local/ (sesuai dengan konfigurasi pada langkah2)
[root@localhost PDFlib-Lite-6.0.3]# pear install pecl/pdflib
-bash: pear: command not found
[root@localhost PDFlib-Lite-6.0.3]# /usr/local/apache2/php/bin/pe
pear peardev pecl
[root@localhost PDFlib-Lite-6.0.3]# /usr/local/apache2/php/bin/pear install pdflib-2\[1\].1.2.tgz
.
.

651038 4 drwxr-xr-x 3 root root 4096 Dec 30 18:21 /var/tmp/pear-build-root/install-pdflib-2.1.2/usr/local/apache2/php/lib/php/extensions
651039 4 drwxr-xr-x 2 root root 4096 Dec 30 18:21 /var/tmp/pear-build-root/install-pdflib-2.1.2/usr/local/apache2/php/lib/php/extensions/no-debug-non-zts-20060613
651031 264 -rwxr-xr-x 1 root root 264370 Dec 30 18:21 /var/tmp/pear-build-root/install-pdflib-2.1.2/usr/local/apache2/php/lib/php/extensions/no-debug-non-zts-20060613/pdf.so

Build process completed successfully
Installing '/var/tmp/pear-build-root/install-pdflib-2.1.2//usr/local/apache2/php/lib/php/extensions/no-debug-non-zts-20060613/pdf.so'
install ok: channel://pear.php.net/pdflib-2.1.2

6. Edit php.ini dan tambahkan baris yang berhuruf miring (sesuai dengan hasil langkah 5) pada bagian Dynamic Extensions
[root@localhost PDFlib-Lite-6.0.3]# vi /usr/local/apache2/php/php.ini
.
.
extension=/usr/local/apache2/php/lib/php/extensions/no-debug-non-zts-20060613/pdf.so
.
.

7. Untuk testing-nya Copy file contoh Hello world untuk php5 (php yang diinstal sebelumnya adalah php5) dari http://id2.php.net/manual/en/ref.pdf.php. Letakkan di /usr/local/apache2/htdocs/. Kemudian panggil melalui browser

Monitor Frequency Over Range

Kejadiannya ketika saya mencoba install fedora, pada monitor muncul pesan seperti dari bios yang menyebutkan "frequency over range" dan setelah itu tidak ada tampilan pada monitor walaupun pc running normal. Setelah banyak bertanya, ternyata hal ini terjadi karena frequency yang kita setting pada saat instalasi bisa jadi melebihi kapasitas monitor. Atau bisa saja karena kemungkinan video card bentrok dengan monitor.

Berikut adalah langkah-langkah troubleshootingnya:
1. Gunakan monitor lain dan reboot pc (monitor keluaran sekarang seharusnya memiliki frequency yang cukup tinggi).

2. Login ke fedora dan ganti resolusi ke yang paling rendah (640x480) dan refresh rate menjadi 60 atau 50
(*di fedora5 : System > Preference > Screen Resolution

3. Reboot pc menggunakan monitor yang over range.

Jika ketiga langkah tersebut tetap tidak berhasil
1. Gunakan monitor lain dan reboot pc

2. Login ke fedora dan edit file xorg.conf yang berada di /etc/X11/, ganti driver dengan 'vesa' seperti baris yang berhuruf miring
[@localhost]#cd /etc/X11/
[@localhost]#vi xorg.conf
.
.
#sekitar line 84
Section "Device"
Identifier "Videocard0"
Driver "vesa"
VendorName "Videocard vendor"
BoardName "ATI Technologies Inc ES1000"
EndSection
.
.
:wq

3. reboot pc menggunakan monitor yang over range

Menambah Path Directory di Windows XP

Path Directory adalah jika kita akan menjalankan sebuah program aplikasi maka Windows akan otomatis mencari di Path Directory yang ada dalam daftar Path Directories, jika program tersebut ditemukan Windows akan mengeksekusi program tersebut. Sehingga kita tidak perlu masuk ke dalam path directory dimana program itu berada. Kita tinggal memanggilnya melalui command prompt.

Berikut adalah langkah-langkah untuk menambahkan Path Directory :
1. Start > My Computer (Click Kanan) > Properties

2. System Properties > Advanced > Environment Variables

3. Environment Variables > System Variables > Pilih Path > Klik Edit

4. Tambahkan Path Directory anda.
Misalkan : c:\j2sdk1.4.2_01\bin (*note pisahkan dengan path sebelumnya menggunakan semikolon ";" ).

Dengan cara ini, saya bisa menjalankan aplikasi yang terdapat dalam C:\j2sdk1.4.2_01\bin tanpa harus berada dalam folder tersebut.
Misalnya seperti yang di bawah ini:

C:\>java -version
java version "1.4.2_01"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_01-b06)
Java HotSpot(TM) Client VM (build 1.4.2_01-b06, mixed mode)

C:\>

(*note. java adalah aplikasi yang ada dalam folder C:\j2sdk1.4.2_01\bin)

Sunday, January 21, 2007

Aloha

Saya mendengar kata ini digunakan dalam bidang jarigan komputer pada salah satu kursus singkat yang diberikan oleh Mr Otto Spaniol (Prof. Dr. yang mengajar di RWTH Aachen). Walau mungkin sebelumnya pernah diberikan pada masa-masa kuliah. Tapi saya 'mendengar' pertama kalinya pada saat itu. Dijelaskan oleh beliau dengan lugas dan sederhana. Mungkin karena beliau juga ikut berperan serta dalam pengembangan Aloha sehingga penjelasanya mudah dimengerti.

Aloha adalah protokol yang digunakan pada komunikasi satelit. Dikembangkan di University of Hawai. Prinsipnya sangat sederhana, transmiter akan mengirimkan data setiap ada frame untuk dikirim. Jika frame tersebut berhasil dikirim, frame berikutnya akan di kirimkan. Jika gagal, frame tersebut akan dikirim lagi setelah waktu acak.

Kekurangan pada Aloha versi pertama adalah karena semua stasiun menggunakan frekuensi yang sama dan tidak terkoordinas maka kemungkinan 'data collision' cukup sering terjadi sehingga menyebabkan banyak pengulangan pengiriman. Slotted Aloha adalah pengembangan dari Pure Aloha (Aloha versi pertama) yang menggunakan slot waktu untuk mengurangi 'data collision' dimana stasiun-stasiunnya harus disinkronisasi terlebih dahulu.

Database Server PostgreSQL

Berbeda dengan review sebelumnya, saya sangat puas sekali setelah membaca buku panduan PostgreSQL yang dikarang oleh Dr Richardus Eko Indrajit dan Andhie Lala Adam.

Betapa tidak, penjelasan yang diberikan sangat runut sehingga mudah untuk dimengerti. Mulai dari proses instalasi sampai penggunaan sedemikian rupa sehingga pembaca dengan gampang mengikuti. Contoh-contoh yang diberikan juga sangat membantu untuk memahami maksud penulis.

Membaca buku ini seperti mendayung sekali dua tiga pulau terlampaui. Selain kita belajar mengenai postgresql, kita juga belajar mengenai ORDBMS (Object Relational Database Management System) dan sedikit belajar administrasi linux (pada penjelasan instalasi PostgreSQL pada sistem linux).

Buku ini saya rekomendasikan bagi siapa saja tidak saja yang ingin belajar menggunakan PostgreSQL, tapi juga bagi yang ingin belajar mengenai database dan administrasinya.

Harga: gratis pinjam dari kantor