Archive for the ‘ Tutorial & Example ’ Category

Tutorial : การใช้งาน DWR เบื้องต้น

สำหรับ DWR(Direct Web Remoting) เป็น Java library ที่ทำการ Convert Service ของ Java ไปเป็น JavaScript ทำให้ในฝั่งของ JavaScript สามารถเรียกใช้ method ใน class java ได้โดยตรง คำอธิบายสั้นๆจาก เว็บไซต์ DWR

DWR is a Java library that enables Java on the server and JavaScript in a browser to interact and call each other as simply as possible.

DWR is Easy Ajax for Java

สำหรับการทำงานโดยคร่าวๆเป็นดังภาพ

หรืออ่านแบบเต็มๆได้จาก DWR: Easy AJAX for JAVA

เครื่องไม้เครื่องมือที่ใช้
1. Windows XP Professional SP3
2. DWR Library Version 2.0.5
3. Eclipse IDE 3.5
4. Tomcat 6.0.18

ขั้นตอนในการพัฒนา
0. ขอข้ามขั้นตอนการติดตั้ง Tomcat , การ Download Eclipse ซึ่งคิดว่าน่าจะติดตั้งกันเป็นอยู่
1. ทำการ Download DWR จากเว็บ http://directwebremoting.org/dwr/download.html Downlaod เฉพาะ .jar มา
Read more

Tutorial : PHP+MySQL+UTF-8

ปัญหาการทำเว็บโดยใช้ฐานข้อมูลที่เป็น Encode เป็น UFT-8 ยังคงเป็นปัญหาสำหรับหลายๆอยู่ เมื่อไม่นานมานี้ผมทำเว็บให้กับ พี่คนหนึ่งแกก็เจอปัญหาแบบเดียวกันเลย แกก็เลยไม่ยอมใช้ Encode UTF-8 จนผมต้องทำ POC (Proof of Concept) ไปให้พี่แก ซึ่งหลังจากทำแล้วก็คิดว่าน่าจะมัประโยชน์กับหลายๆคนก็เลยมาเขียน Note ไว้ครับ
Software ที่ใช้ในการทดสอบ
1. Windows XP Professional SP3
2. MySQL 5.1.32
3. PHP Version 5.2.6

1. หลังจากทำการติดตั้ง MySQL แล้วให้ทำการ Configuration Database ดังนี้

Read more

Tutorial : การใช้งาน XStream

Tutorial วันนี้ สืบเนื่องจากพี่ที่ทำงานให้ศึกษา การทำงานของระบบเก่าที่มีการส่งข้อมูลผ่าน HTTP แบบที่เค้าเรียกกันว่า XML Over HTTP ซึ่งผมเองก็ไม่ได้มีความรู้ด้วยซ้ำไปว่ามันคือ อะไร แต่มี Code ส่วนหนึ่งที่ผมต้องไปแก้ไข คือการรับค่าจากทางเครื่อง Server (ซึ่งส่งมาในรูปแบบโครงสร้างของ XML) แล้วมาทำการแกะ Code ในส่วนของ XML นี่ออกมาเป็นข้อมูลเพื่อทำการบันทึกลงฐานข้อมูล หรือ นำไปใช้ประโยชน์ต่อ ซึ่งผมเห็น Code ที่เขียนแล้ว รูปแบบจะเป็นอ่าน XML มาแล้วมาใช้ jdom อ่านมาทีละ element เพื่อ Set ค่าลงไปที่ DTO หรือ Domain ก่อนที่จะส่งไปบันทึก เลยคิดว่าน่าจะมีอะไรจะ Convert โครงสร้างของ XML มาเป็น Domain และ Domain ไปเป็น XML ได้เลยตามแบบ

Domain –> XML
XML –> Domain

จากความต้องการนี้ผมก็พยายามหาจาก อ. Google ก็ได้เจอกับเจ้านี่ XStream ซึ่งในเว็บ บอกว่าว่า XStream : “XStream is a simple library to serialize objects to XML and back again” ซึ่งตรงใจผมมาก (แต่ไม่รู้จะใช้ได้จริงมั้ย) หลังจากดาวโหลดมาแล้วก็ทดลองครับ โดยสร้าง Bean หรือ Domain ขึ้นมาตัวหนึ่งดังนี้

/**
 * File Name : Employee.java
 * Created Date : Dec 3, 2009 : 10:27:23 AM
 * Copyright © 2009 www.fun4station.com
 */
package com.fun4station.model;

/**
 * @Author Supot Saelao
 * @Version 1.0
 */
public class Employee {
	private int code;
	private String firstName;
	private String lastName;
	private double salary;

	public Employee() {	}

	public Employee(int code, String firstName, String lastName, double salary) {
		this.code = code;
		this.firstName = firstName;
		this.lastName = lastName;
		this.salary = salary;
	}

	//Generate get & set method
}

Read more

วิธีเขียนโปรแกรมวน Loop แล้ว CPU ขึ้นไม่ถึง 100%

จากการได้ไปอ่านที่เว็บพี่ไท้มาเกี่ยวกับ วิธีเขียนโปรแกรมวน Loop แล้ว CPU ขึ้นไม่ถึง 100%
แล้วเห็นว่ามีประโยชน์มาก เลยถือโอกาสทดลอง ว่าวิธีนี้จะช่วยได้มากแค่ไหนครับ เลยมา Note เป็นตัวอย่างไว้ครับ
1. แบบธรรมดาให้ loop 1,000,000,000 รอบ

/**
 * File Name : SleepTest.java
 * Created Date : Nov 13, 2009 : 1:34:13 PM
 * Copyright © 2009 www.fun4station.com
 */
package com.fun4station.example;
import java.math.BigDecimal;

/**
 * @Author Supot Saelao
 * @Version 1.0
 */
public class SleepTest {
	public static void main(String[] args) {
		long start = System.currentTimeMillis();
		BigDecimal amount = new BigDecimal(0);
		for (int i = 0; i < 1000000000; i++) {
			amount = amount.add(new BigDecimal(i));
		}
		System.out.println("Amount : " + amount);
		long end = System.currentTimeMillis();
		System.out.println("Start time : " + start);
		System.out.println("End time : " + end);
		System.out.println("Diff time : " + (end - start));
	}
}

ตัวอย่าง output

cpu100-normal

Amount : 499999999500000000
Start time : 1258094775765
End time : 1258094827484
Diff time : 51719

Read more