Wednesday, February 20, 2008

จะใช้ Log4j ในพอท์เล็ตยังไง (Adding Logging to a Portlet?)

เคยใช้ System.out อยู่พักหนึ่ง รู้สึกว่า Performance มันตกๆ ไงไม่รู้
เลยลองเปลี่ยนมาใช้กับ Log4j ดู อาจจะช่วยได้ (รึป่าว) ^_^!

มาดูวิธี Set กันนะครับ

1. ก่อนอื่นก็ต้องไปดาวน์โหลด log4j มาก่อนสิ ไปที่นี่นะ http://logging.apache.org/log4j/1.2/download.html

2. เมื่อเราโหลดได้แล้ว แตกไฟล์มา จะมีเยอะมากมาย ให้หาไฟล์ นามสกุล .jar
มันจะอยู่นอกสุดอะครับ
เช่น
แตก zip มาจะได้ directory ชื่อ apache-log4j-1.2.15
c:/apache-log4j-1.2.15/log4j-1.2.15.jar

3. นำไฟล์ log4j-1.2.15.jar ที่ได้ไปวางไว้ใน path /WEB-INF/lib ของ Portlet นะ

4. จากนั้นสร้างไฟล์ log4j.properties โดยสร้างไฟล์นี้ไว้ ภายใต้ directory นี้
JavaResources/JavaSource

5. จากนั้นแก้ไขค่าในไฟล์ log4j.properties ตัวอย่างเช่น

# An example log4j configuration file.
log4j.rootLogger=DEBUG, FILE
log4j.appender.FILE=org.apache.log4j.FileAppender
log4j.appender.FILE.File=C:/log/SSOApplicationPortlet.log
log4j.appender.FILE.Append=true
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.ConversionPattern=[%-d{yyyy-MM-dd HH:mm:ss}] [%37c] %3x - %m%n

อยากได้รายละเอียดการใช้เพิ่มเติม ไปที่นี่นะครับ
http://logging.apache.org/log4j/1.2/manual.html

6. มาดู Portlet ของเราต่อ เมื่อเราเตรียมการใช้งาน Log4j เสร็จแล้ว เราจะมาดูการเรียกใช้ต่อนะ

7. ใน Class ที่เราต้องการ Debug หรือ จะเก็บ Log ให้เรา Import อันนี้เข้าไป

import org.apache.log4j.Logger;

จากนั้น ประกาศตัวแปร Global เพื่อเรียกใช้งาน log ดังนี้

private static Logger logger = Logger.getLogger(ชื่อClassPortlet.class);

และก็มาถึงการ out out outttttt log กัน อยาก เก็บดู Log ตรงไหน ให้ใช้แบบนี้

System.out.println("Start doView()"); // ไม่ใช้ละนะ

logger.debug("Start doView()"); // ใช้แบบนี้เอา

8. เสร็จแล้วการใช้งาน Log4j ถ้าจะไปดู output ก็ไปดูที่ path ที่เรา Set ไว้ใน log4j.properties นะครับ



ใช้งานแล้วเป็นยังไงกันมั่ง บอกกันด้วยนะ

Friday, February 15, 2008

How to set the Linux Host Name?

นานๆเปลี่ยนที เลยลืม command อ่ะ -*-

Step 1 : ตรวจสอบ host name ก่อน
using the following commands: หลายแบบ
#uname -n
#hostname -a
#hostname -s
#hostname -d
#hostname -f
#hostname

Step 2 : กำหนด hosts ใน /etc/hosts
ถ้าใช้ IP address ที่แจกให้โดย DHCP server, ใน/etc/hosts ให้ใส่ค่าตามนี้:

127.0.0.1 leokit.blogspot.com localhost.localdomain localhost leokit

ถ้าใช้ static IP address , ใน/etc/hosts ให้ใส่ค่าตามนี้:

127.0.0.1 localhost.localdomain localhost
192.168.0.1 leokit.blogspot.com leokit


Step 3 : Setting the Host Name using "hostname"
หลังจากแก้ไขใน hosts ไฟล์แล้ว ให้เรา run คำสั่งนี้
#hostname leokit.blogspot.com
Step 4 : ตรวจสอบ ใน /etc/HOSTNAME
leokit.blogspot.com
Step 5 : ตรวจสอบ ใน /etc/sysconfig/network
ถ้าใช้ static IP address , ใน/etc/sysconfig/network ให้ใส่ค่าตามนี้:
NETWORKING=yes
HOSTNAME="leokit.blogspot.com"

Step 6 : ตรวจสอบ ใน /proc/sys/kernael/hostname
ตรวจสอบโดยใช้ command
#cat /proc/sys/kernel/hostname

หลังจาก Set แล้วให้ทำการ reboot หรือจะ run คำสั่งนี้ก็ได้นะ
echo leokit.blogspot.com > /proc/sys/kernel/hostname

Thursday, February 14, 2008

วิธีการทำ RedHat 8.0 CD iso เป็น DVD iso

มาเริ่มกันเลยนะ
ทำเป็น CD ใช้ตั้ง 5 แผ่น เลยหาวิธีแปลงเป็น DVD เอาดีกว่า

ขั้นตอนทำ
1. เตรียมพื้นที่สำหรับวาง Image ทั้ง CD และที่จะทำเป็น DVD iso ไว้สัก 5-6 GB แล้วกัน (เหลือดีกว่า ขาด)

2. สร้าง Directories เพื่อที่จะได้ใช้ไว้ mount iso CD linux ทั้ง 5 แผ่น
จะสร้างทีก็ใช้ command นี้ละกัน (หมายเหตุ เพื่อไม่ให้งง ก็ไม่ต้องย้าย path ไปไหน)
#mkdir psyche-i386-disc{1,2,3,4,5} psyche-docs
เราก็จะได้ directories psyche-i386-disc1 ถึง psyche-i386-disc5 เพียงแค่กด Enter ครั้งเดียว ^0^

3. ทำการ mount ISO images ซะ
#mount -o ro,loop LinuxISO/psyche-i386-disc1.iso psyche-i386-disc1
#mount -o ro,loop LinuxISO/psyche-i386-disc2.iso psyche-i386-disc2
#mount -o ro,loop LinuxISO/psyche-i386-disc3.iso psyche-i386-disc3
#mount -o ro,loop LinuxISO/psyche-i386-disc4.iso psyche-i386-disc4
#mount -o ro,loop LinuxISO/psyche-i386-disc5.iso psyche-i386-disc5

4. copy isolinux กับไฟล์ .discinfo ที่อยู่ใน psyche-i386-disc1 ออกมาไว้ข้างนอก เพราะแก้ใน directory ที่เรา mount ไว้ไม่ได้อะ
#cp -a psyche-i386-disc1/isolinux psyche-i386-disc1/.discinfo .
**อย่าลืม จุด ด้านหลังสุดนะ ให้มัน copy ไว้ path ที่เราอยู่เลย

5. ได้ละ ไปแก้ไฟล์ที่ชื่อว่า .discinfo ก่อนประมาณบรรทัดที่ 4
ค่าปกติมันจะมีแต่ 1
ให้ทำการเติม 1,2,3,4,5 ตามแผ่นที่เราอยากจะสร้าง จะเอา 1,2,3 ก็ได้
save แล้วปิดซะ

6. ถึงนั้นตอนการสร้าง ISO ไฟล์ แล้ว command ยาวมาก ให้ใช้เครื่องหมาย \ เป็นตัวต่อด้านหลังนะ

# mkisofs -o psyche-i386-dvd.iso \
-b isolinux/isolinux.bin -c isolinux/boot.cat \
-no-emul-boot -boot-load-size 4 -boot-info-table \
-R -m TRANS.TBL \
-x psyche-i386-disc1/.discinfo -x psyche-i386-disc1/isolinux \
-graft -points psyche-i386-disc1 .discinfo=.discinfo isolinux/=isolinux \
RedHat/=psyche-i386-disc2/RedHat RedHat/=psyche-i386-disc3/RedHat \
SRPMS/=psyche-i386-disc3/SRPMS SRPMS/=psyche-i386-disc4/SRPMS \
SRPMS/=psyche-i386-disc5/SRPMS docs/=psyche-docs

------------- ถ้าเป็น AS4 ใช้แบบนี้นะ
# mkisofs -o rh4up3-i386-dvd.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -R -m TRANS.TBL -x rh4-i386-disc1/.discinfo -x rh4-i386-disc1/isolinux -graft -points rh4-i386-disc1 .discinfo=.discinfo isolinux/=isolinux RedHat/=rh4-i386-disc2/RedHat RedHat/=rh4-i386-disc3/RedHat SRPMS/=rh4-i386-disc3/RedHat/RPMS SRPMS/=rh4-i386-disc4/RedHat/RPMS docs/=rh4-docs

7.จากนั้นก็ทำการ ไรท์ DVD ตามปกติเลย

*** จะ un-mount ใช้ คำสั่งนี้

#umount /media/iso

Friday, February 8, 2008

Step by Step Installation FFMpeg

Step by Step Installation ffmpeg

# wget http://ffmpeg.mplayerhq.hu/ffmpeg-ex...pshot.tar.bz2
# tar -xjvf ffmpeg-export-snapshot.tar.bz2
# cd ffmpeg-export-XXXXXXX
# ./configure --prefix=/usr/local
# make clean && make
# make install
# cd ..
# rm -rf ffmpeg*

Monday, February 4, 2008

Get 'uid' by Puma API

PUMA API :

เอาไว้ใช้ จัดการเกี่ยวกับ user หน่ะ

วันนี้เอาวิธีที่จะดึงข้อมูลของ 'uid' มาฝากนะ มั่วตั้งนาน หาก็ยาก ^0^


------------------------------------------------------------

javax.naming.Context context = new javax.naming.InitialContext();
PortletServiceHome portletServiceHome = (PortletServiceHome) context.lookup("portletservice/com.ibm.portal.um.portletservice.PumaHome");


if (portletServiceHome != null) {
PumaHome service = (PumaHome) portletServiceHome.getPortletService(PumaHome.class);
PumaController pumaController = service.getController(request);
com.ibm.portal.puma.User user = (com.ibm.portal.puma.User) pumaController.getCurrentUser();

userId = user.get("uid").toString();

}

------------------------------------------------------------

เห็นมะ ได้และ uid

Friday, February 1, 2008

ย้ายข้อมูลไปมาระหว่าง Using DB2 utilities to clone databases across different platforms

จะดึงข้อมูลมา Test บนเครื่องเราซะหน่อย แต่ดันข้าม platform
อ่ะๆ วิธีนี้ใช้ได้ทั้ง Windows<->Unix นะ


Linux -> Windows

ฝั่ง Linux นะ
1. db2look -d dbname -a -e -l -x -c -o dbname.log
หรือถ้าจะเอาเฉพาะ Table ก็ได้
db2look -d dbname -t tablename -a -e -l -x -c -o dbname.log

1.1 edit this file *.log change DB name in Script
2. db2move dbname export -aw
หรือระบุ Schema หรือ Table
db2move dbname export -aw -tn ชื่อtable -sn ชื่อschema

ฝั่ง Windows นะ
3. db2 -tvf path of file in 1.
4. db2move newdbname load > dbname.log

*Remark
When you transfer file FTP use ASCIIafter import Set Integrity TOO!

มาบอกอะไรตอนนี้ - ADD new Column to Table created.

สร้าง Table เสร็จไปละ
แต่อยากจะขอเก็บฟิลด์ข้อมูลเพิ่ม

ข้อมูลก็ใส่หมดละ ทำไงดีละนี่

หุหุ -*-

ทำตามนี่นะ
เช่น จะเพิ่ม ฟิลด์ SEX เข้าไปงี้

ALTER TABLE <ชื่อ table>
ADD SEX INTEGER
ADD ชื่อฟิลด์ใหม่ <ชนิดข้อมูล>

แค่นี้เอง
ลองๆดูนะจ๊ะ