<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Welcome to XP Link Co., Ltd.</title>
	<atom:link href="http://www.xp-link.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.xp-link.com</link>
	<description>XP Link Co., Ltd is a software consultant company specializes in Java Technology from Thailand.</description>
	<lastBuildDate>Thu, 08 Mar 2012 04:06:46 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>CSS3 หน้าเว็บ style ใหม่ ไฉไลกว่าเดิม</title>
		<link>http://www.xp-link.com/2012/03/06/css3/</link>
		<comments>http://www.xp-link.com/2012/03/06/css3/#comments</comments>
		<pubDate>Tue, 06 Mar 2012 06:33:49 +0000</pubDate>
		<dc:creator>suteerapong</dc:creator>
				<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://www.xp-link.com/?p=688</guid>
		<description><![CDATA[ #canvas_layer div{ position: absolute; } #canvas_layer{ position: relative; background: transparent; /* Size of all parts are auto calculating base on this element width and height. (Normal scale is 2:2.1 at width:height) */ width: 300px ; height: 315px ; margin-left: 50px ; margin-top: 20px ; margin-bottom: 20px ; /*-webkit-box-reflect: below 0px -webkit-linear-gradient(top, transparent, rgba(255, 255, 255, [...] ]]></description>
			<content:encoded><![CDATA[<style>
#canvas_layer div{
	position: absolute;
}
#canvas_layer{
	position: relative;
	background: transparent;
	/* Size of all parts are auto calculating base on this element width and height.
	(Normal scale is 2:2.1 at width:height)  */
	width: 300px ;
	height: 315px ;
	margin-left: 50px ;
	margin-top: 20px ;
	margin-bottom: 20px ;
	/*-webkit-box-reflect: below 0px -webkit-linear-gradient(top, transparent,  rgba(255, 255, 255, 0.1),  rgba(255, 255, 255, 0.7));*/
}
#mascot_head_animate{
	background: transparent ;
	-webkit-transition: -webkit-transform 1s,top 1s;
	-moz-transition: -moz-transform 1s,top 1s;
	-ms-transition: -ms-transform 1s,top 1s;
	-o-transition: -o-transform 1s,top 1s;
	transition: transform 1s,top 1s;
}
#mascot_head{
	background: -webkit-radial-gradient(5% 95%, circle cover, #d7f680, #a4ca39 80%) ;
	background: -moz-radial-gradient(5% 95%, circle cover, #d7f680, #a4ca39 80%) ;
	background: -ms-radial-gradient(5% 95%, circle cover, #d7f680, #a4ca39 80%) ;
}
#mascot_feeler_left{
	background: -webkit-radial-gradient(0% 0%, circle cover, #d7f680, #a4ca39 30%) ;
	background: -moz-radial-gradient(5% 95%, circle cover, #d7f680, #a4ca39 80%) ;
	background: -ms-radial-gradient(5% 95%, circle cover, #d7f680, #a4ca39 80%) ;
	-webkit-transform:rotate(31deg);
	-moz-transform:rotate(31deg);
	-ms-transform:rotate(31deg);
}
#mascot_feeler_right{
	background: -webkit-radial-gradient(5% 5%, circle cover, #d7f680, #a4ca39 50%) ;
	background: -moz-radial-gradient(5% 95%, circle cover, #d7f680, #a4ca39 80%) ;
	background: -ms-radial-gradient(5% 95%, circle cover, #d7f680, #a4ca39 80%) ;
	-webkit-transform:rotate(-31deg);
	-moz-transform:rotate(-31deg);
	-ms-transform:rotate(-31deg);
}
#mascot_eye_left{
	background: #FFF;
	-webkit-transition: width 1s,height 1s,border-radius 1s,margin-left 1s,margin-top 1s;
	-moz-transition: width 1s,height 1s,border-radius 1s,margin-left 1s,margin-top 1s;
	-ms-transition: width 1s,height 1s,border-radius 1s,margin-left 1s,margin-top 1s;
	-o-transition: width 1s,height 1s,border-radius 1s,margin-left 1s,margin-top 1s;
	transition: width 1s,height 1s,border-radius 1s,margin-left 1s,margin-top 1s;
}
#mascot_eye_right{
	background: #FFF;
	-webkit-transition: width 1s,height 1s,border-radius 1s,margin-left 1s,margin-top 1s;
	-moz-transition: width 1s,height 1s,border-radius 1s,margin-left 1s,margin-top 1s;
	-ms-transition: width 1s,height 1s,border-radius 1s,margin-left 1s,margin-top 1s;
	-o-transition: width 1s,height 1s,border-radius 1s,margin-left 1s,margin-top 1s;
	transition: width 1s,height 1s,border-radius 1s,margin-left 1s,margin-top 1s;
}
.mascot_eye_shadow{
	-webkit-box-shadow: 1px 1px 7px -1px #4e6806 ;
	-moz-box-shadow: 1px 1px 7px -1px #4e6806 ;
	box-shadow: 1px 1px 7px -1px #4e6806 ;
}
#mascot_body{
	background: -webkit-radial-gradient(5% 5%, circle cover, #d7f680, #a4ca39 75%) ;
	background: -moz-radial-gradient(5% 5%, circle cover, #d7f680, #a4ca39 75%) ;
	background: -ms-radial-gradient(5% 5%, circle cover, #d7f680, #a4ca39 75%) ;
	color: #FFF ;
}
#mascot_arm_left_animate{
	background: transparent;
	-webkit-animation: leftArm 0.5s ease-in-out infinite alternate;
	-moz-animation: leftArm 0.5s ease-in-out infinite alternate;
	-ms-animation: leftArm 0.5s ease-in-out infinite alternate;
}
@-webkit-keyframes leftArm
{
	0%{-webkit-transform:rotate(-5deg)}
	100%{-webkit-transform:rotate(15deg)}
}
@-moz-keyframes leftArm
{
	0%{-moz-transform:rotate(-5deg)}</p>
<p>	100%{-moz-transform:rotate(15deg)}
}
@-ms-keyframes leftArm
{
	0%{-ms-transform:rotate(-5deg)}</p>
<p>	100%{-ms-transform:rotate(15deg)}
}
#mascot_arm_left{
	background: -webkit-radial-gradient(5% 15%, circle cover, #d7f680, #a4ca39 90%) ;
	background: -moz-radial-gradient(5% 15%, circle cover, #d7f680, #a4ca39 90%) ;
	background: -ms-radial-gradient(5% 15%, circle cover, #d7f680, #a4ca39 90%) ;
}
#mascot_arm_right{
	background: -webkit-radial-gradient(5% 85%, circle cover, #d7f680, #a4ca39 70%) ;
	background: -moz-radial-gradient(5% 15%, circle cover, #d7f680, #a4ca39 90%) ;
	background: -ms-radial-gradient(5% 15%, circle cover, #d7f680, #a4ca39 90%) ;
}
#mascot_leg_left{
	background: -webkit-radial-gradient(5% 95%, circle cover, #d7f680, #a4ca39 70%) ;
	background: -moz-radial-gradient(5% 15%, circle cover, #d7f680, #a4ca39 90%) ;
	background: -ms-radial-gradient(5% 15%, circle cover, #d7f680, #a4ca39 90%) ;
}
#mascot_leg_right{
	background: -webkit-radial-gradient(10% 90%, circle cover, #d7f680, #a4ca39 80%) ;
	background: -moz-radial-gradient(5% 15%, circle cover, #d7f680, #a4ca39 90%) ;
	background: -ms-radial-gradient(5% 15%, circle cover, #d7f680, #a4ca39 90%) ;
}
#css3content{
	width:100%;
        word-break: break-word ;
	word-wrap: break-word ;
}
#css3content td{
	padding: 20px ;
}
#css3content input[type="text"]{
	border-radius:8px;
	-moz-border-radius:8px;
	-webkit-border-radius:8px;
}
#css3content input[type="button"]{
	border-radius:8px;
	-moz-border-radius:8px;
	-webkit-border-radius:8px;
	height:35px;
        width:60px;
        border:none;
        cursor:pointer;
}
#css3content input[type="button"]:hover{
	background:#EEE;
}
#css3content b{
        color:#F58300;
        font-size:18px;
}
.subTitle{
        color:#F58300;
        font-size:16px;
}
.recommended{
        color:#AAA;
        font-size:10px;
}
#border1{
	width:80px;
	height:80px;
	border-radius:10px;
	-moz-border-radius:10px;
	-webkit-border-radius:10px;
}
#border2{
	width:180px;
	height:20px;
	border-top-left-radius:10px;
	border-top-right-radius:10px;
	-moz-border-top-left-radius:10px;
	-moz-border-top-right-radius:10px;
	-webkit-border-top-left-radius:10px;
	-webkit-border-top-right-radius:10px;
	border: 1px solid #F58300 ;
	color:#FFF;
}
#border3{
	text-align:center;
	width:180px;
	border-bottom-left-radius:10px;
	border-bottom-right-radius:10px;
	-moz-border-bottom-left-radius:10px;
	-moz-border-bottom-right-radius:10px;
	-webkit-border-bottom-left-radius:10px;
	-webkit-border-bottom-right-radius:10px;
	border: 1px solid #F58300 ;
}
#border4{
	width:80px;
	height:80px;
	border-radius:40px;
	-moz-border-radius:40px;
	-webkit-border-radius:40px;
}
.shadow{
	box-shadow: 1px 1px 7px #333;
	-webkit-box-shadow: 1px 1px 7px #333;
	-moz-box-shadow: 1px 1px 7px #333;
}
.text_neon{
	text-shadow: 1px 1px 5px #FFF;
}
.gradient1{
	background: #FFA200;
	background: -webkit-gradient(linear,left top,right bottom, from(#F58300), color-stop(0.5, #FFF), to(#FFA200));
	background: -webkit-linear-gradient(left top, #F58300, #FFF, #FFA200);
	background: -moz-linear-gradient(left top, #F58300, #FFF, #FFA200);
	background: -ms-linear-gradient(left top, #F58300, #FFF, #FFA200);
	background: -o-linear-gradient(left top, #F58300, #FFF, #FFA200);
}
.gradient2{
	background: #FFA200;
	background: -webkit-gradient(linear,left top,right top, from(#FFF0B5), color-stop(0.5, #FFCE0C), to(#FFA200));
	background: -webkit-linear-gradient(left, #FFF0B5, #FFCE0C, #FFA200);
	background: -moz-linear-gradient(left, #FFF0B5, #FFCE0C, #FFA200);
	background: -ms-linear-gradient(left, #FFF0B5, #FFCE0C, #FFA200);
	background: -o-linear-gradient(left, #FFF0B5, #FFCE0C, #FFA200);
}
.gradient3{
	background: #FFA200;
	background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#FFF0B5), color-stop(0.5, #FFCE0C), to(#FFA200));
	background: -webkit-linear-gradient(top, #FFF0B5, #FFCE0C, #FFA200);
	background: -moz-linear-gradient(top, #FFF0B5, #FFCE0C, #FFA200);
	background: -ms-linear-gradient(top, #FFF0B5, #FFCE0C, #FFA200);
	background: -o-linear-gradient(top, #FFF0B5, #FFCE0C, #FFA200);
}
.gradient4{
	background: #F58300;
	background: -webkit-radial-gradient(50% 50%, circle cover, #FFF, #F58300 70%) ;
	background: -moz-radial-gradient(50% 50%, circle cover, #FFF, #F58300 70%) ;
	background: -ms-radial-gradient(50% 50%, circle cover, #FFF, #F58300 70%) ;
	background: -o-radial-gradient(50% 50%, circle cover, #FFF, #F58300 70%) ;
}
.transitionable{
	transition: all 2s linear;
	-webkit-transition: all 2s linear;
	-moz-transition: all 2s linear;
	-ms-transition: all 2s linear;
	-o-transition: all 2s linear;
}
#anima{
	position:relative;
	-webkit-animation: animate 5s linear infinite;
	-moz-animation: animate 5s linear infinite;
	-ms-animation: animate 5s linear infinite;
}
@-webkit-keyframes animate
{
	0%{height:25px;width:100px;top:0px;left:0px;background:red;}
	25%{height:100px;width:25px;top:0px;left:0px;background:blue;}
	50%{height:25px;width:100px;top:75px;left:0px;background:green;}
	75%{height:100px;width:25px;top:0px;left:75px;background:yellow;}
	100%{height:25px;width:100px;top:0px;left:0px;background:red;}
}
@-moz-keyframes animate
{
	0%{height:25px;width:100px;top:0px;left:0px;background:red;}
	25%{height:100px;width:25px;top:0px;left:0px;background:blue;}
	50%{height:25px;width:100px;top:75px;left:0px;background:green;}
	75%{height:100px;width:25px;top:0px;left:75px;background:yellow;}
	100%{height:25px;width:100px;top:0px;left:0px;background:red;}</p>
<p>}
@-ms-keyframes animate
{
	0%{height:25px;width:100px;top:0px;left:0px;background:red;}
	25%{height:100px;width:25px;top:0px;left:0px;background:blue;}
	50%{height:25px;width:100px;top:75px;left:0px;background:green;}
	75%{height:100px;width:25px;top:0px;left:75px;background:yellow;}
	100%{height:25px;width:100px;top:0px;left:0px;background:red;}</p>
<p>}
</style>
<div id="css3content">
<b>อะไร ที่ไหน อย่างไร และทำไมต้อง CSS3</b><br/></p>
<table>
<tr>
<td style="padding:0px">
<a style="border:none;" href="http://www.xp-link.com/website/wp-content/uploads/2012/03/A-new-hope.jpg"><img src="http://www.xp-link.com/website/wp-content/uploads/2012/03/A-new-hope-219x300.jpg" alt="" title="A new hope" width="219" height="300" class="alignnone size-medium wp-image-769" /></a>
</td>
<td style="padding:0px" valign="bottom">
<a style="border:none;" href="http://pinterest.com/pin/create/button/?url=www.xp-link.com/2012/03/06/css3/&#038;media=http%3A%2F%2Fwww.xp-link.com%2Fwebsite%2Fwp-content%2Fuploads%2F2012%2F03%2FA-new-hope-219x300.jpg&#038;description=CSS3" class="pin-it-button" count-layout="horizontal">Pin It</a><br />
<script type="text/javascript" src="http://assets.pinterest.com/js/pinit.js"></script>
</td>
</tr>
<tr>
<td colspan="2" style="padding:0px">
<span class="recommended">image : &#8220;A new Hope&#8221; by DanOhh Design</span>
</td>
</tr>
</table>
<p><br/><br />
คุณเคยพบกับปัญหาเหล่านี้หรือไม่?  อยากได้หน้าเว็บสวย ๆ แต่ก็ดันทำยาก+โหลดช้าเพราะว่ามีแต่รูปภาพเต็มไปหมด หรือหน้าเว็บมี animation สวยงามแต่เปิดทีไรเครื่องก็ทำงานหนักจนอืดและร้อนไปตาม ๆ กัน (แถมบางทีเน็ตก็ไม่ค่อยจะเอื้ออำนวยอีกต่างหาก)  ทุกคนคงเคยผ่านประสบการณ์อันเลวร้ายเหล่านี้มาแล้วไม่มากก็น้อย  ฉะนั้นจากนี้จะขอนำเสนอหนึ่งในเส้นทางแห่งความหวัง  ประสบการณ์ที่หลายคนอาจไม่เคยได้สัมผัสมาก่อน <span class="subTitle">ประสบการณ์แห่ง CSS3</span><br/><br />
<span id="more-688"></span><br />
แต่ก่อนอื่นเรามาทำความเข้าใจเกี่ยวกับหน้าเว็บกันสักเล็กน้อยนะครับ  ปกติแล้วหน้าเว็บไซต์จะเกิดจากการนำสิ่งที่เรียกว่า element ซึ่งก็เป็นพวกกล่องข้อความ ปุ่ม ลิ้งค์ ตาราง ตัวหนังสือ เลเยอร์ต่าง ๆ (ที่บางครั้งก็มองไม่เห็น) ฯลฯ มาประกอบรวมกัน  และใส่ style หรือรูปร่างหน้าตาลงไปให้แต่ละ element  อย่างเช่นความกว้าง ความสูง สี เส้นขอบ เป็นต้น เพื่อจัดวางองค์ประกอบและสร้างความสวยงามให้หน้าเว็บ  โดย style ที่พูดถึงนี้ก็คือ <span class="subTitle">CSS หรือ Cascading Style Sheet</span> นั่นเองครับ  สิ่งที่จะแสดงให้เห็นต่อไปนี้แม้ไม่ใช่ style ทั้งหมดที่เพิ่มขึ้นมาใหม่ CSS3 ก็ตาม  แต่ก็นับว่าเป็นทีเด็ดของมันเลยก็ว่าได้ครับ<br/><br />
<strong>**เนื่องจาก CSS3 เป็นของใหม่  browser ที่ใช้ก็อาจต้องใหม่ตามเช่นกัน</strong>  ผมจะระบุ browser ที่สามารถใช้งานได้อย่างแน่นอนไว้ในตัวอย่างของ style แต่ละอันนะครับ<br/><br/><br />
<b>border-radius</b><br />
<hr/>
<span class="recommended">IE 9, Firefox 4, Chrome, Safari 5, Opera 10.5</span><br/></p>
<table>
<tr>
<td>
<div id="border1" style="background: #F58300 ;"></div>
</td>
<td>
<div id="border2" style="background: #F58300 ;">&nbsp;&nbsp;Cascading Style Sheet 3</div>
<div id="border3"><br/><br />
<input type="text" style="width:80%;" disabled="disable"><br/><br />
<input type="button" value=" Button " style="background:#DDD;border:none;"><br/><br/></div>
</td>
<td>
<div id="border4" style="background: #F58300 ;"></div>
</td>
</tr>
</table>
<p><br/><br />
<span class="subTitle">สังเกตตรงมุมจะเห็นว่ามันดูมน ๆ </span>นะครับ  สมัยก่อนถ้าอยากได้กรอบมน ๆ แบบยืดหดได้นี่เลือดตาแทบจะกระเด็นกันเลยทีเดียว  เพราะต้องสร้างรูปขึ้นมาแล้วตัดเอามุมกับขอบมาประกอบกันเอง  แต่ใน CSS3 นี่อยากให้มนขนาดไหนก็ไม่ยากแล้วล่ะครับ  (จะเอาให้มนจนกลมเลยก็ได้นะเออ)<br/><br/><br />
<b>box-shadow &#038; text-shadow</b><br />
<hr/>
<span class="recommended">box : IE 9, Firefox 4, Chrome 6, Safari 4, Opera 10.5 &#038; text : IE10, Firefox 3.5, Chrome, Safari 1, Opera 9</span><br/></p>
<table>
<tr>
<td>
<div id="border1" class="shadow" style="background: #F58300 ;"></div>
</td>
<td>
<div id="border2" class="shadow text_neon" style="background: #F58300 ;">&nbsp;&nbsp;Cascading Style Sheet 3</div>
<div id="border3" class="shadow" style="background: #FFF ;"><br/><br />
<input type="text"  disabled="disable" style="width:80%;"><br/><br />
<input type="button" value=" Button " class="shadow" style="background:#DDD;border:none;"><br/><br/></div>
</td>
<td style="text-shadow:2px 2px 5px #888;color:#F58300;font-size:25px;">TEXT SHADOW</td>
</tr>
</table>
<p><br/><br />
อันนี้เป็นเรื่องของเงานี่เอง  ว่ากันตามหลักศิลปะก็คือ <span class="subTitle">เงาจะแสดงให้เห็นถึงสิ่งที่เรียกว่ามิติ</span>  ซึ่งมันก็จะทำให้หน้าเว็บไม่ได้เป็นเพียงกระดาษเรียบ ๆ อีกต่อไปครับ<br/><br/><br />
<b>gradient</b><br />
<hr/>
<span class="recommended">IE10, Firefox3.6, Chrome 10, Safari 5.1, Opera 11.10</span><br/></p>
<table>
<tr>
<td>
<div id="border1" class="shadow gradient1"></div>
</td>
<td>
<div id="border1" class="shadow gradient2"></div>
</td>
<td>
<div id="border2" class="text_neon gradient3">&nbsp;&nbsp;Cascading Style Sheet 3</div>
<div id="border3"  style="background: #FFF ;"><br/><br />
<input type="text" style="width:80%;" disabled="disable"><br/><br />
<input type="button" value=" Button " class="shadow gradient3" style="border:none;"><br/><br/></div>
</td>
<td align="center">
<div id="border4" class="shadow gradient4"></div>
<p>**Opera ยังไม่สนับสนุนการไล่สีแบบวงกลมครับ</td>
</tr>
</table>
<p><br/><br />
gradient ที่พูดถึงนี่คือการไล่สีครับ  ไล่สีจากสีหนึ่งไปเป็นอีกสีหนึ่งหรือต่อไปอีกหลาย ๆ สี  จากบนลงล่าง  ซ้ายไปขวา  ทแยง หรือเป็นวงกลมก็ยังได้  <span class="subTitle">ทำให้หน้าเว็บมีสีสันน่าสนใจใช้ได้เลยทีเดียว</span><br/><br/><br />
<b>transition</b><br />
<hr/>
<span class="recommended">IE10, Firefox 4, Chrome, Safari 3.2, Opera 10.5</span><br/><br />
transition มีไว้เพื่อ<span class="subTitle">ทำให้การเปลี่ยนแปลง style ใด ๆ ของ element ดูสมจริงและนุ่มนวล</span>ครับ  คงสงสัยว่าเปลี่ยนแปลงอะไร  สมจริงแบบไหน และนุ่มนวลยังไงใช่ไหมครับ  ตัวอย่างต่อไปนี้จะแสดงให้เห็นถึงการเปลี่ยน style โดย<strong>ไม่มี transition</strong> ครับ<br/><br/></p>
<table style="border:1px solid #F58300;border-radius: 10px; -webkit-border-radius: 10px; -moz-border-radius: 10px;">
<tr>
<td>
<div style="width:500px;height:80px;">
<div id="transitionDiv1" style="width:80px;height:80px;background:#FFF133;position:relative;"></div>
</div>
</td>
</tr>
<tr>
<td align="center" style="border:1px solid #F58300;padding:0px;border-radius: 10px; -webkit-border-radius: 10px; -moz-border-radius: 10px;">
		ลองกดปุ่มด้านล่างนี้ดูครับ<br/></p>
<input type="button" value="Orange" onclick="styleTransition(1,1)" class="shadow">
<input type="button" value="Yellow" onclick="styleTransition(2,1)" class="shadow">
<input type="button" value="Circle" onclick="styleTransition(3,1)" class="shadow">
<input type="button" value="Square" onclick="styleTransition(4,1)" class="shadow">
<input type="button" value="Left" onclick="styleTransition(6,1)" class="shadow">
<input type="button" value="Right" onclick="styleTransition(5,1)" class="shadow">
		<br/><br/>
	</td>
</tr>
</table>
<p><br/><br />
เป็นไงครับ เปลี่ยนกันดื้อ ๆ เลยใช่ไหมครับ  <strong>คราวนี้ลองใส่ transition ให้มันซะหน่อย</strong><br/><br/></p>
<table style="border:1px solid #F58300;border-radius: 10px; -webkit-border-radius: 10px; -moz-border-radius: 10px;">
<tr>
<td>
<div style="width:500px;height:80px;">
<div id="transitionDiv2" style="width:80px;height:80px;background:#FFF133;position:relative;" class="transitionable"></div>
</div>
</td>
</tr>
<tr>
<td align="center" style="border:1px solid #F58300;padding:0px;border-radius: 10px; -webkit-border-radius: 10px; -moz-border-radius: 10px;">
		ลองกดปุ่มด้านล่างนี้ดูครับ<br/></p>
<input type="button" value="Orange" onclick="styleTransition(1,2)" class="shadow">
<input type="button" value="Yellow" onclick="styleTransition(2,2)" class="shadow">
<input type="button" value="Circle" onclick="styleTransition(3,2)" class="shadow">
<input type="button" value="Square" onclick="styleTransition(4,2)" class="shadow">
<input type="button" value="Left" onclick="styleTransition(6,2)" class="shadow">
<input type="button" value="Right" onclick="styleTransition(5,2)" class="shadow">
		<br/><br/>
	</td>
</tr>
</table>
<p><br/><br />
<span class="subTitle">ดูสมจริง และนุ่มนวล</span> ขึ้นมาทันทีเลยใช่ไหมล่ะครับ (tip: ลองกดปุ่มอื่นตอนที่รูปยังเปลี่ยนไม่เสร็จดูครับ)<br/><br/><br />
<b>animation</b><br />
<hr/>
<span class="recommended">IE10, Firefox 5, Chrome, Safari 5</span><br/></p>
<div style="width:100px;height:100px;margin:20px 0px 20px 50px">
<div id="anima"></div>
</div>
<p>อันนี้คงไม่ต้องอธิบายอะไรกันให้มากความ  มันก็คือ<span class="subTitle">ภาพเคลื่อนไหว</span>นั่นแหละครับ  <strong>แต่ไม่ได้เป็น flash media หรือวิดีโอ</strong>นะครับ  เกิดจากการประมวลผลโดย browser ล้วน ๆ<br/><br/><br />
<hr/><br/><br />
คราวนี้ลองเอามา<span class="subTitle">ประกอบรวม ๆ กัน + ใส่ความคิดสร้างสรรค์</span>เข้าไปสักหน่อยก็จะได้เป็นรูปข้างล่างนี้ครับ<br/></p>
<div id="canvas_layer"></div>
<p><script type="text/javascript">
make_mascot();
</script><br />
(ลองเอาเมาส์ไปชี้ที่ส่วนตัวดูครับ)<br/><br/><br />
<hr/><br/><br />
เป็นอย่างไรบ้างครับ CSS3  <span class="subTitle">สามารถทำให้หน้าเว็บสวยได้ด้วยตัวมันเอง  ไม่ต้องพึ่งไฟล์ภาพนิ่งหรือภาพเคลื่อนไหวจากที่อื่นเลยแม้แต่น้อย  ทำให้หน้าเว็บโหลดเร็วขึ้นมากเลยทีเดียว</span>  ยิ่งเดี๋ยวนี้เทคโนโลยีสมาร์ทโฟนกำลังมาแรงด้วยนะครับ  ลองคิดดูว่าจะดีแค่ไหนถ้าเว็บไซต์กินทรัพยากรของเครื่องน้อยแถมยัง<span class="subTitle">แสดงภาพเคลื่อนไหวในมือถือที่ไม่รองรับ flash media</span> ได้อีกต่างหาก ถึงแม้จะไม่อลังการเท่า flash ก็ตามที แต่ถ้าพูดถึงประสิทธิภาพและการใช้งานแล้วก็นับว่าดีไม่น้อยเลย  งานนี้ก็ได้แฮปปี้กันทั้งคนทำเว็บและก็คนเข้าเว็บล่ะครับ<br/><br/><br />
แหล่งอ้างอิงข้อมูลครับ ใครอยากศึกษาเพิ่มเติมก็ตามนี้เลย<br/><br />
- <a href="http://www.w3schools.com/css3/default.asp">w3schools &#8211; css3</a><br/><br />
- <a href="http://css3please.com/">css3 please</a><br/><br />
- <a href="http://css-tricks.com/examples/CSS3Gradient/">css-trick (gradient)</a><br/><br />
- <a href="http://slides.html5rocks.com/#css3-title">html5rock slideshow</a><br/>
</div>
<p><br/><br/> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.xp-link.com/2012/03/06/css3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>แก้ปัญหากล่อง &lt;Select&gt; ลอยใน IE6</title>
		<link>http://www.xp-link.com/2012/01/10/ie6-select-zindex-bug/</link>
		<comments>http://www.xp-link.com/2012/01/10/ie6-select-zindex-bug/#comments</comments>
		<pubDate>Tue, 10 Jan 2012 08:57:19 +0000</pubDate>
		<dc:creator>nuttarut</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[ie6]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://www.xp-link.com/?p=647</guid>
		<description><![CDATA[Pin It ปกติแล้วส่วนต่างๆ ในหน้าเว็บนั้นนอกจากจะถูกจัดตำแหน่งให้เรียงจากซ้ายไปขวาหรือบนลงล่างได้แล้ว ยังสามารถซ้อนทับกันได้อีกด้วย ตัวอย่างเช่น เวลาเรากดดูรูปในเฟสบุ๊คแล้วรูปนั้นก็จะถูกแสดงจนเต็มหน้าจอบดบังส่วนอื่นๆ ไปหมด แต่เมื่อดูเสร็จแล้วรูปนั้นก็จะหายไป และส่วนอื่นของหน้าเว็บก็จะกลับมาถูกแสดงเหมือนเดิม ซึ่งคุณลักษณะนี้จะถูกกำหนดด้วย z-index ใน CSS ที่จะบอกว่าส่วนไหนควรถูกจัดเรียงยังไงจากหลังไปหน้า ถึงแม้ว่าเราจะสามารถกำหนดคุณลักษณะนี้ได้กับทุกส่วนในหน้าเว็บ แต่ก็ยังมีข้อยกเว้นอยู่บ้างคือแท็ก &#60;select&#62; ใน IE6 (Internet Explorer เวอร์ชั่น 6) ซึ่งมีบั๊กที่ส่งผลให้แท็กนี้ไม่สนใจค่า z-index ที่ถูกกำหนดไว้ ทำให้เมื่อเราสั่งให้ส่วนอื่นมาแสดงผลทับส่วนที่เป็นแท็ก &#60;select&#62; นี้ ก็จะยังโดน &#60;select&#62; แสดงผลทับข้างหน้าอยู่ดี วิธีแก้ไขคือใช้ library ของ jQuery ที่ชื่อ bgiframe และใช้คำสั่งต่อไปนี้ $('.fix-z-index').bgiframe(); โดยแทนที่ fix-z-index ด้วยชื่อส่วนของหน้าเว็บที่มีปัญหา แค่นี้ทุกส่วนก็จะถูกแสดงผลออกมาถูกต้องอย่างที่เรากำหนดเอาไว้]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.xp-link.com/website/wp-content/uploads/2012/01/internet-explorer-6-microsoft.jpg" alt="" width="356" height="308" class="aligncenter size-full wp-image-673" /><a href="http://pinterest.com/pin/create/button/?url=http%3A%2F%2Fwww.xp-link.com%2F2012%2F01%2F10%2Fie6-select-zindex-bug%2F&#038;media=http%3A%2F%2Fwww.xp-link.com%2Fwebsite%2Fwp-content%2Fuploads%2F2012%2F01%2Finternet-explorer-6-microsoft.jpg&#038;description=IE6" class="pin-it-button" count-layout="horizontal">Pin It</a><br />
<script type="text/javascript" src="http://assets.pinterest.com/js/pinit.js"></script><br />
<br />
ปกติแล้วส่วนต่างๆ ในหน้าเว็บนั้นนอกจากจะถูกจัดตำแหน่งให้เรียงจากซ้ายไปขวาหรือบนลงล่างได้แล้ว ยังสามารถซ้อนทับกันได้อีกด้วย ตัวอย่างเช่น เวลาเรากดดูรูปในเฟสบุ๊คแล้วรูปนั้นก็จะถูกแสดงจนเต็มหน้าจอบดบังส่วนอื่นๆ ไปหมด แต่เมื่อดูเสร็จแล้วรูปนั้นก็จะหายไป และส่วนอื่นของหน้าเว็บก็จะกลับมาถูกแสดงเหมือนเดิม ซึ่งคุณลักษณะนี้จะถูกกำหนดด้วย <code>z-index</code> ใน CSS ที่จะบอกว่าส่วนไหนควรถูกจัดเรียงยังไงจากหลังไปหน้า<br />
<br />
ถึงแม้ว่าเราจะสามารถกำหนดคุณลักษณะนี้ได้กับทุกส่วนในหน้าเว็บ แต่ก็ยังมีข้อยกเว้นอยู่บ้างคือแท็ก <code>&lt;select&gt;</code> ใน IE6 (Internet Explorer เวอร์ชั่น 6) ซึ่งมี<a href="http://blogs.msdn.com/b/ie/archive/2006/01/17/514076.aspx">บั๊ก</a>ที่ส่งผลให้แท็กนี้ไม่สนใจค่า <code>z-index</code> ที่ถูกกำหนดไว้ ทำให้เมื่อเราสั่งให้ส่วนอื่นมาแสดงผลทับส่วนที่เป็นแท็ก <code>&lt;select&gt;</code> นี้ ก็จะยังโดน <code>&lt;select&gt;</code> แสดงผลทับข้างหน้าอยู่ดี<br />
<br />
วิธีแก้ไขคือใช้ library ของ jQuery ที่ชื่อ <a href="https://github.com/brandonaaron/bgiframe" target="_blank">bgiframe</a> และใช้คำสั่งต่อไปนี้</p>
<div class="code"><code>$('.fix-z-index').bgiframe();</code></div>
<p>โดยแทนที่ <code>fix-z-index</code> ด้วยชื่อส่วนของหน้าเว็บที่มีปัญหา แค่นี้ทุกส่วนก็จะถูกแสดงผลออกมาถูกต้องอย่างที่เรากำหนดเอาไว้</p>
]]></content:encoded>
			<wfw:commentRss>http://www.xp-link.com/2012/01/10/ie6-select-zindex-bug/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ทำไมต้อง WhatsApp ??</title>
		<link>http://www.xp-link.com/2011/09/22/whatsapp/</link>
		<comments>http://www.xp-link.com/2011/09/22/whatsapp/#comments</comments>
		<pubDate>Thu, 22 Sep 2011 06:28:21 +0000</pubDate>
		<dc:creator>nuntaporn</dc:creator>
				<category><![CDATA[Smart Phone]]></category>
		<category><![CDATA[phone application]]></category>
		<category><![CDATA[smart phone]]></category>
		<category><![CDATA[WhatsApp]]></category>

		<guid isPermaLink="false">http://www.xp-link.com/?p=554</guid>
		<description><![CDATA[ ทำไมต้อง WhatsApp ?? หลายๆคน คงเคยมีเพื่อนๆ ถามว่า ลง WhatsApp หรือยัง โดยที่หลายคนอาจจะยังไม่รู้ว่า WhatsApp คืออะไร ทำไมต้อง WhatsApp วันนี้เรามาทำความรู้จักเจ้าโปรแกรม WhatsApp กัน ว่ามันคืออะไรมีประโยชน์อย่างไร WhatsApp คือ mobile application ที่สามารถส่งข้อความข้าม platform ได้ ไม่ว่าจะเป็น iPhone, BlackBerry, Android และ Nokia แต่ไม่เฉพาะ ข้อความเท่านั้น ยังสามารถส่ง รูปภาพ วีดีโอ และ audio media ต่าง ๆ ได้ด้วย แล้วมันดียังไง?? ชั้นใช้ BlackBerry อยู่แล้วก็สามารถส่งข้อความหาเพื่อนได้นี่ ชั้นใช้ android อยู่แล้วก็ใช้ Gtalk คุยกับเพื่อนสิ ชั้นมี iPhone อยู่แล้ว ชั้นใช้ [...] ]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.xp-link.com/website/wp-content/uploads/2011/09/whatapps.jpg" alt="WhatApps mobile app" width="60px" height="60px"/>  <strong>ทำไมต้อง WhatsApp ??</strong> หลายๆคน คงเคยมีเพื่อนๆ ถามว่า ลง WhatsApp  หรือยัง โดยที่หลายคนอาจจะยังไม่รู้ว่า WhatsApp  คืออะไร ทำไมต้อง WhatsApp</p>
<h3>วันนี้เรามาทำความรู้จักเจ้าโปรแกรม WhatsApp  กัน ว่ามันคืออะไรมีประโยชน์อย่างไร</h3>
<p><br  /></p>
<p><a href="http://www.whatsapp.com/" title="whatsapp" target="_blank">WhatsApp</a>  คือ mobile application ที่สามารถส่งข้อความข้าม platform ได้ ไม่ว่าจะเป็น iPhone, BlackBerry, Android และ Nokia แต่ไม่เฉพาะ ข้อความเท่านั้น ยังสามารถส่ง รูปภาพ วีดีโอ และ audio media ต่าง ๆ ได้ด้วย</p>
<p><br  /><br />
<span id="more-554"></span></p>
<h4>แล้วมันดียังไง?? </h4>
<p>ชั้นใช้  BlackBerry อยู่แล้วก็สามารถส่งข้อความหาเพื่อนได้นี่</p>
<p>ชั้นใช้ android อยู่แล้วก็ใช้ Gtalk คุยกับเพื่อนสิ</p>
<p>ชั้นมี iPhone อยู่แล้ว ชั้นใช้ msn หรือ Gtalk คุยกับเพื่อน สบาย ๆ</p>
<p><br  /></p>
<p>แก้ปัญหา เรื่อง การใช้ โทรศัพท์ คนละ platform  </p>
<p>ถ้าลงเจ้าโปรแกรม WhatsApp ปัญหาต่าง ๆ เรื่อง platform ก็จะหมดไป ทุกคนสามารถ ส่งข้อความหากันได้ไม่ว่าจะใช้ โทรศัพท์คนละ platform</p>
<p><br  /></p>
<p>นอกจากนี้ยังสามารถส่งข้อความเป็นแบบกลุ่มได้ด้วยนะ เพียงแต่เราสร้าง group ขึ้นมา แล้วเลือก เพื่อนที่อยู่ใน contact list (บัญชีรายชื่อในโทรศัพท์) ของเรา ก็จะเสมือนว่าเราสร้างห้องส่วนตัวขึ้นมาคุยกันกับเพื่อนเลยทีเดียว</p>
<p><br  /></p>
<h4>แล้วใช้ยังไงต้องสมัครสมาชิกอีกหรือเปล่ามีหลาย account แล้วนะ</h4>
<p>โปรแกรมนี้ ไม่จำเป็นต้องสมัครสมาชิก และยังเหมาะสำหรับผู้ที่ไม่เคยมี account ใด ๆ หรือผู้ที่ปกติไม่เคยใช้หรือไม่เคยสมัครโปรแกรมจำพวก Instant messaging เช่น MSN Messenger หรือ Google talk เป็นต้น  เพียงแค่ ลงโปรแกรม จะสามารถเห็นรายชื่อเพื่อนที่เรามี contact list อยู่ในโทรศัพท์ ถ้าเพื่อนเองก็ลง โปรแกรม WhatsApp ไว้เหมือนกันละก็คุยกันได้เลย</p>
<p><br  /></p>
<p>ไม่แน่นะบางทีคุณอาจจะได้คุยกับเพื่อนที่ไม่ได้ติดต่อกันมันนานแล้วก็ได้</p>
<p><br  /></p>
<h4>แล้วต้องซื้อ  promotion อะไรเพิ่มเติมสำหรับ WhatsApp หรือเปล่า</h4>
<p>โปรแกรมนี้ ต้องใช้ internet นะ ถ้ามี package การใช้  internet อยู่แล้วละก็ ใช้ได้เลย</p>
<p><br  /></p>
<h4>ถ้าเราไม่ได้เปิดใช้ internet แล้วมีคนส่งข้อความมา เราจะได้รับข้อความหรือไม่</h4>
<p>เราจะได้รับสัญญาณเตือนว่ามีข้อความเข้ามาเมื่อเราเปิดใช้ internet เพราะฉะนั้น คุณสามารถทิ้งข้อความไว้หาเพื่อนคุณได้เลย </p>
<p><br  /></p>
<h3>สรุปก็คือ มันจะคล้ายกับเราใช้ บริการ SMS แต่จะสะดวกกว่า และประหยัดกว่านั่นเอง</h3>
<p><br  /></p>
<p>ที่มาและ อ่านรายละเอียดเพิ่มเติมได้ที่  <a href="http://www.whatsapp.com/" title="whatsapp" target="_blank">http://www.whatsapp.com/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.xp-link.com/2011/09/22/whatsapp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>เพิ่มความสามารถในการ Cache ให้ Hibernate ด้วย EhCache</title>
		<link>http://www.xp-link.com/2011/08/30/hibernate-caching-with-ehcache/</link>
		<comments>http://www.xp-link.com/2011/08/30/hibernate-caching-with-ehcache/#comments</comments>
		<pubDate>Tue, 30 Aug 2011 11:06:29 +0000</pubDate>
		<dc:creator>nuttarut</dc:creator>
				<category><![CDATA[Spring Framework]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.xp-link.com/?p=511</guid>
		<description><![CDATA[Pin It ในการใช้งานฐานข้อมูล (Database) โดยทั่วไปนั้นจะมีข้อมูลบางส่วนที่มีการเปลี่ยนแปลงไม่บ่อยนัก หรือไม่มีการเปลี่ยนแปลงเลย แต่ฐานข้อมูลก็ต้องมีการทำงานทุกครั้งที่มีการเข้าถึงข้อมูลเหล่านี้ ทำให้อาจเสียเวลาในการประมวลผลไปโดยเปล่าประโยชน์ หรือในกรณีของระบบที่มีการทำงานหนักมากก็อาจจะทำให้ระบบขัดข้องเนื่องจากฐานข้อมูลไม่สามารถตอบสนองต่อการเข้าถึงข้อมูลได้ทันเวลา ปัญหานี้สามารถแก้ไขได้โดยวิธีที่เรียกว่า Cache ซึ่งนำข้อมูลที่ไม่ค่อยมีการเปลี่ยนแปลงเหล่านี้มาเก็บไว้ในหน่อยความจำ เพื่อที่เมื่อมีการเข้าถึงข้อมูลชุดเดิมก็ไม่ต้องไปค้นหาในฐานข้อมูลอีกครั้ง แต่มาดึงไปใช้จากหน่วยความจำแทน ซึ่งใช้เวลาน้อยกว่าและไม่เพิ่มภาระให้ฐานข้อมูลโดยไม่จำเป็น ข้างต้นคือแนวคิดในภาพรวม ส่วนรายละเอียดและขั้นตอนในการใช้ Cache นั้นก็ขึ้นกับเทคโนโลยีในระบบที่เราเลือกใช้ สำหรับในบทความนี้เราจะมาดูว่าถ้าต้องการใช้ Cache ในระบบที่พัฒนาด้วย Java และใช้เฟรมเวิร์คอย่าง Spring และ Hibernate นั้นควรจะต้องพิจรณาอะไรบ้าง ควรใช้อะไรในการทำ Cache? สำหรับ Hibernate ซึ่งเป็นเฟรมเวิร์คที่ช่วยจัดการในเรื่องฐานข้อมูลนั้นก็มีตัวเลือกในการใช้ Cache มากมาย แต่ตัวเลือกที่น่าจะเหมาะสมที่สุดก็คงไม่พ้น EhCache เนื่องจากสามารถใช้งานร่วมกับทั้ง Hibernate แล้ว Spring ได้อย่างไม่มีปัญหา (หรือมีน้อยมาก) และทีมพัฒนาของทั้ง Hibernate และ EhCache ก็ยังทำงานร่วมกันเพื่อรับประกันว่าเฟรมเวิร์คทั้งสองจะสามารถใช้งานร่วมกันได้อย่างราบรื่น ไม่เกิดปัญหาความเข้ากันไม่ได้ ข้อมูลส่วนใดบ้างที่ควรทำ Cache ก่อนอื่นต้องทำความเข้าใจก่อนว่า Hibernate นั้นจะมี Cache [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.xp-link.com/website/wp-content/uploads/2011/08/graph7.jpg" alt="" width="300" height="231" class="aligncenter size-full wp-image-544" /><a href="http://pinterest.com/pin/create/button/?url=http%3A%2F%2Fwww.xp-link.com%2F2011%2F08%2F30%2Fhibernate-caching-with-ehcache%2F&#038;media=http%3A%2F%2Fwww.xp-link.com%2Fwebsite%2Fwp-content%2Fuploads%2F2011%2F08%2Fgraph7.jpg&#038;description=EhCache" class="pin-it-button" count-layout="horizontal">Pin It</a><br />
<script type="text/javascript" src="http://assets.pinterest.com/js/pinit.js"></script><br />
<br />
ในการใช้งานฐานข้อมูล (Database) โดยทั่วไปนั้นจะมีข้อมูลบางส่วนที่มีการเปลี่ยนแปลงไม่บ่อยนัก หรือไม่มีการเปลี่ยนแปลงเลย แต่ฐานข้อมูลก็ต้องมีการทำงานทุกครั้งที่มีการเข้าถึงข้อมูลเหล่านี้ ทำให้อาจเสียเวลาในการประมวลผลไปโดยเปล่าประโยชน์ หรือในกรณีของระบบที่มีการทำงานหนักมากก็อาจจะทำให้ระบบขัดข้องเนื่องจากฐานข้อมูลไม่สามารถตอบสนองต่อการเข้าถึงข้อมูลได้ทันเวลา<br />
<span id="more-511"></span><br />
<br />
ปัญหานี้สามารถแก้ไขได้โดยวิธีที่เรียกว่า Cache ซึ่งนำข้อมูลที่ไม่ค่อยมีการเปลี่ยนแปลงเหล่านี้มาเก็บไว้ในหน่อยความจำ เพื่อที่เมื่อมีการเข้าถึงข้อมูลชุดเดิมก็ไม่ต้องไปค้นหาในฐานข้อมูลอีกครั้ง แต่มาดึงไปใช้จากหน่วยความจำแทน ซึ่งใช้เวลาน้อยกว่าและไม่เพิ่มภาระให้ฐานข้อมูลโดยไม่จำเป็น<br />
<br />
ข้างต้นคือแนวคิดในภาพรวม ส่วนรายละเอียดและขั้นตอนในการใช้ Cache นั้นก็ขึ้นกับเทคโนโลยีในระบบที่เราเลือกใช้ สำหรับในบทความนี้เราจะมาดูว่าถ้าต้องการใช้ Cache ในระบบที่พัฒนาด้วย Java และใช้เฟรมเวิร์คอย่าง Spring และ Hibernate นั้นควรจะต้องพิจรณาอะไรบ้าง<br />
<br />
<strong>ควรใช้อะไรในการทำ Cache?</strong><br />
<br />
สำหรับ Hibernate ซึ่งเป็นเฟรมเวิร์คที่ช่วยจัดการในเรื่องฐานข้อมูลนั้นก็มีตัวเลือกในการใช้ Cache มากมาย แต่ตัวเลือกที่น่าจะเหมาะสมที่สุดก็คงไม่พ้น EhCache เนื่องจากสามารถใช้งานร่วมกับทั้ง Hibernate แล้ว Spring ได้อย่างไม่มีปัญหา (หรือมีน้อยมาก) และทีมพัฒนาของทั้ง Hibernate และ EhCache ก็ยังทำงานร่วมกันเพื่อรับประกันว่าเฟรมเวิร์คทั้งสองจะสามารถใช้งานร่วมกันได้อย่างราบรื่น ไม่เกิดปัญหาความเข้ากันไม่ได้<br />
<br />
<strong>ข้อมูลส่วนใดบ้างที่ควรทำ Cache</strong><br />
<br />
ก่อนอื่นต้องทำความเข้าใจก่อนว่า Hibernate นั้นจะมี Cache อยู่ 2 ประเภทด้วยกันคือ</p>
<ol>
<li>Second Level Cache (L2 Cache) &#8211; ใช้เก็บ Entity โดยใช้ id เป็นคีย์หลักในการตรวจสอบข้อมูล</li>
<li>Query Cache &#8211; ใช้เก็บผลที่ได้จาก Query โดยจะใช้ SQL Statement เป็นคีย์หลัก</li>
</ol>
<p>โดย Second Level Cache (หรือ L2 Cache) นั้นยังแบ่งประเภทของข้อมูลเป็นอีก 3 ประเภทคือ</p>
<ol>
<li>READ_ONLY &#8211; ข้อมูลที่ไม่มีการเปลี่ยนแปลง</li>
<li>NONSTRICT_READ_WRITE &#8211; ข้อมูลที่การเปลี่ยนแปลงไม่บ่อยมาก</li>
<li>READ_WRITE &#8211; ข้อมูลที่มีการเปลี่ยนแปลงตลอดเวลา</li>
</ol>
<p>จะเห็นได้ว่านอกจากข้อมูลที่ไม่ค่อยมีการเปลี่ยนแปลงแล้ว เราก็สามารถใช้ Cache กับข้อมูลที่มีการเปลี่ยนแปลงบ่อยได้ด้วย แต่เนื่องจากเมื่อข้อมูลมีการเปลี่ยนแปลงแล้วจะต้องมีการปรับปรุงข้อมูลที่อยู่ใน Cache ด้วย ทำให้มีการทำงานเพิ่มมากขึ้น ฉะนั้นข้อมูลที่มีอัตราส่วนการเขียนมากกว่าการอ่าน หรือข้อมูลประเภท Transaction จึงไม่เหมาะสมที่จะใช้การ Cache<br />
<br />
ส่วน Query Cache นั้นจะเก็บผลลัพธ์ที่ได้จาก SQL Statement เอาไว้ เมื่อมีการเรียกเรียกใช้ SQL Statement เดิมก็จะนำผลลัพธ์ที่เก็บไว้มาใช้งาน จึงเหมาะกับ Query ที่ตรงไปตรงมาหรือมีเงื่อนไขไม่มากนัก เช่น ข้อมูลประเทศ หรือหมวดหมู่สินค้า ซึ่งมีโอกาสที่จะถูกเรียกซ้ำบ่อย สำหรับ Query ประเภทที่เงื่อนไขเยอะ เช่น การค้นหาแบบละเอียด อาจจะไม่เหมาะที่จะใช้ Cache เท่าไหร เพราะมีโอกาสถูกเรียกใช้ซ้ำน้อย ทำให้เปลืองพื้นที่ในหน่วยความจำ<br />
<br />
ข้อมูลเพิ่มเติม &#8211; <a href="http://www.ehcache.org/documentation/user-guide/hibernate" target="_blank">ehcache.org</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.xp-link.com/2011/08/30/hibernate-caching-with-ehcache/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>การใช้งาน jQuery ร่วมกับ Javascript Library อื่น</title>
		<link>http://www.xp-link.com/2011/08/23/using-jquery-with-other-library/</link>
		<comments>http://www.xp-link.com/2011/08/23/using-jquery-with-other-library/#comments</comments>
		<pubDate>Tue, 23 Aug 2011 08:40:45 +0000</pubDate>
		<dc:creator>nuttarut</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.xp-link.com/?p=358</guid>
		<description><![CDATA[Pin It jQuery เป็นหนึ่งใน Javascript Library ที่ใช้กันแพร่หลายและได้รับความนิยมมากที่สุดตัวหนึ่งในปัจจุบัน แต่เนื่องจากการพัฒนาเว็บไซต์นั้นอาจมีการใช้ Javascript Library มากกว่าตัวเดียว หรือต้องพัฒนาต่อยอดจากระบบเก่าที่ใช้ jQuery คนละเวอร์ชั่นกับปัจจุบัน ทำให้อาจเกิดปัญหาความเข้ากันไม่ได้ระหว่าง jQuery และ Library ตัวอื่นขึ้นได้ สาเหตุ ปัญหาส่วนใหญ่เกิดขึ้นจากการที่ Javascript Library ส่วนใหญ่จะใช้เครื่องหมาย $ (Dollar sign) เป็นตัวย่อในการเรียกใช้ฟังก์ชั่นทำงาน ทำให้ถ้ามีการประกาศใช้ Library ที่ใช้เครื่องหมาย $ พร้อมกันมากกว่าหนึ่งตัว จะทำให้เกิดการสับสนขึ้นได้ว่าตกลงแล้วเราจะเรียกใช้ตัวไหนกันแน่? วิธีแก้ไข ในกรณีแบบนี้ jQuery ได้เตรียมทางออกเอาไว้ให้แล้วด้วยฟังก์ชั่นที่ชื่อ jQuery.noConflict() ซึ่งเมื่อถูกเรียกใช้งานแล้ว jQuery จะยกเลิกการใช้งานเครื่องหมาย $ ของตัวเองทั้งหมดเพื่อให้ Library ตัวอื่นใช้งานเครื่องหมาย $ ได้แทน โดยเราจะยังสามารถใช้งาน jQuery ได้เหมือนเดิมผ่านตัวแปร jQuery แต่ถ้าเรายังต้องการใช้งาน jQuery ด้วยการเรียกชื่อแบบสั้นอยู่ [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.xp-link.com/website/wp-content/uploads/2011/08/JQuery_logo.png" alt="" width="300" height="74" /><a href="http://pinterest.com/pin/create/button/?url=http%3A%2F%2Fwww.xp-link.com%2F2011%2F08%2F23%2Fusing-jquery-with-other-library&#038;media=http%3A%2F%2Fwww.xp-link.com%2Fwebsite%2Fwp-content%2Fuploads%2F2011%2F08%2FJQuery_logo.png&#038;description=jQuery" class="pin-it-button" count-layout="horizontal">Pin It</a><br />
<script type="text/javascript" src="http://assets.pinterest.com/js/pinit.js"></script><br />
</p>
<p><strong><a title="jQuery" href="http://jquery.com/" target="_blank">jQuery</a></strong> เป็นหนึ่งใน Javascript Library ที่ใช้กันแพร่หลายและได้รับความนิยมมากที่สุดตัวหนึ่งในปัจจุบัน แต่เนื่องจากการพัฒนาเว็บไซต์นั้นอาจมีการใช้ Javascript Library มากกว่าตัวเดียว หรือต้องพัฒนาต่อยอดจากระบบเก่าที่ใช้ jQuery คนละเวอร์ชั่นกับปัจจุบัน ทำให้อาจเกิดปัญหาความเข้ากันไม่ได้ระหว่าง jQuery และ Library ตัวอื่นขึ้นได้</p>
<p><span id="more-358"></span></p>
<p><strong>สาเหตุ</strong></p>
<p>ปัญหาส่วนใหญ่เกิดขึ้นจากการที่ <em>Javascript Library ส่วนใหญ่จะใช้เครื่องหมาย <code>$</code> (Dollar sign) เป็นตัวย่อในการเรียกใช้ฟังก์ชั่นทำงาน</em> ทำให้ถ้ามีการประกาศใช้ Library ที่ใช้เครื่องหมาย <code>$</code> พร้อมกันมากกว่าหนึ่งตัว จะทำให้เกิดการสับสนขึ้นได้ว่าตกลงแล้วเราจะเรียกใช้ตัวไหนกันแน่?</p>
<p><strong>วิธีแก้ไข</strong></p>
<p>ในกรณีแบบนี้ jQuery ได้เตรียมทางออกเอาไว้ให้แล้วด้วยฟังก์ชั่นที่ชื่อ <code>jQuery.noConflict()</code> ซึ่งเมื่อถูกเรียกใช้งานแล้ว jQuery จะยกเลิกการใช้งานเครื่องหมาย <code>$</code> ของตัวเองทั้งหมดเพื่อให้ Library ตัวอื่นใช้งานเครื่องหมาย <code>$</code> ได้แทน โดยเราจะยังสามารถใช้งาน jQuery ได้เหมือนเดิมผ่านตัวแปร <code>jQuery</code></p>
<p>แต่ถ้าเรายังต้องการใช้งาน jQuery ด้วยการเรียกชื่อแบบสั้นอยู่ (jQuery ใช้เครื่องหมาย <code>$</code> เพื่อลดรูปการเรียกชื่อตัวแปรให้สั้นลง) หรือใช้งาน jQuery พร้อมกันมากกว่าหนึ่งเวอร์ชั่น เราสามารถสร้างตัวแปรใหม่ขึ้นได้จากการเรียกใช้ฟังก์ชั่น <code>jQuery.noConflict()</code> เช่น</p>
<div class="code"><code>var $j = jQuery.noConflict()</code></div>
<p>จะทำให้เราเรียกใช้งาน jQuery ด้วยตัวแปร <code>$j</code> ได้ แทนที่จะต้องเรียกใช้ตัวแปร <code>jQuery</code> ซึ่งมีความยาวของตัวอักษรมากกว่า</p>
]]></content:encoded>
			<wfw:commentRss>http://www.xp-link.com/2011/08/23/using-jquery-with-other-library/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>มือถือหาย ล้อมคอก</title>
		<link>http://www.xp-link.com/2011/08/23/smart-phone-tracking/</link>
		<comments>http://www.xp-link.com/2011/08/23/smart-phone-tracking/#comments</comments>
		<pubDate>Tue, 23 Aug 2011 05:10:58 +0000</pubDate>
		<dc:creator>pradit</dc:creator>
				<category><![CDATA[Smart Phone]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[smart phone]]></category>
		<category><![CDATA[มือถือ]]></category>
		<category><![CDATA[หาย]]></category>

		<guid isPermaLink="false">http://www.xp-link.com/?p=316</guid>
		<description><![CDATA[ มือถือหาย ล้อมคอก Pin It Smart Phone ในปัจจุบันได้เป็นทุกอย่างในชีวิตเราไปแล้ว ทั้งนัดหมาย รูปภาพ และแหล่งบันเทิงส่วนตัว การโจรกรรม หรือการที่เราลืมวางไว้เกิดขึ้นบ่อยในชีวิตประจำวันของคนส่วนใหญ่ ที่เร่งรีบ และมีการแข่งขันสูง โปรแกรมช่วยป้องกันและตามหาโทรศัพท์เราคืน มีมากมายในตลาดปัจจุบัน แต่วันนี้จะแนะนำโปรแกรมชื่อ Prey. Prey เป็นโปรแกรม ช่วยป้องกัน และติดตามการโจรกรรมโทรศัพท์ของท่าน (Anti-theft, tracking service) และนอกจากจะใช้กับอุปกรณ์ smart phone แล้วยังสามารถไว้ติดตามอุปกรณ์คอมพิวเตอร์ทั้ง OS Windows, Mac และ Linux โปรแกรมนี้ให้บริการฟรีเพียง 4 อุปกรณ์ต่อสมาชิก เท่านั้น การทำงานของมันก็ง่ายมากเพียงลงโปรแกรม Agent ไว้ในอุปกรณ์ของเรา และสามารถจัดการชุดคำสั่งต่างๆได้บนเว็บไซต์ ส่ง SMS ไปเพื่อ activate การทำงาน สั่งให้โปรแกรม ถ่ายรูปแล้วส่งกลับมาให้เรา อาจจะได้หน้าคนร้ายก็ได้ สั่งปิดล็อกเครื่อง สั่งให้บอกตำแหน่งของเครื่อง ฯลฯ จะอย่างไรก็ตาม การใช้งานซอฟท์แวร์ก็เป็นเพียงการล้อมคอกอยู่ดี [...] ]]></description>
			<content:encoded><![CDATA[<h4>มือถือหาย ล้อมคอก</h4>
<table>
<tbody>
<tr>
<td><img class="size-medium wp-image-317" title="prey_eagle" src="http://www.xp-link.com/website/wp-content/uploads/2011/08/prey_eagle-234x300.jpg" alt="eagle prey fish." width="234" height="300" /><a href="http://pinterest.com/pin/create/button/?url=http%3A%2F%2Fwww.xp-link.com%2F2011%2F08%2F23%2Fsmart-phone-tracking%2F&#038;media=http%3A%2F%2Fwww.xp-link.com%2Fwebsite%2Fwp-content%2Fuploads%2F2011%2F08%2Fprey_eagle-234x300.jpg&#038;description=smart-phone-tracking" class="pin-it-button" count-layout="horizontal">Pin It</a><br />
<script type="text/javascript" src="http://assets.pinterest.com/js/pinit.js"></script></td>
<td>
<p style="padding: 15px;"><strong>Smart Phone</strong> ในปัจจุบันได้เป็นทุกอย่างในชีวิตเราไปแล้ว ทั้งนัดหมาย รูปภาพ และแหล่งบันเทิงส่วนตัว การโจรกรรม หรือการที่เราลืมวางไว้เกิดขึ้นบ่อยในชีวิตประจำวันของคนส่วนใหญ่ ที่เร่งรีบ และมีการแข่งขันสูง โปรแกรมช่วยป้องกันและตามหาโทรศัพท์เราคืน มีมากมายในตลาดปัจจุบัน<br />
แต่วันนี้จะแนะนำโปรแกรมชื่อ <a title="Prey" href="http://preyproject.com/" target="_blank">Prey</a>.</p>
</td>
</tr>
</tbody>
</table>
<p><span id="more-316"></span><br />
<a title="Prey" href="http://preyproject.com/" target="_blank">Prey</a> เป็นโปรแกรม ช่วยป้องกัน และติดตามการโจรกรรมโทรศัพท์ของท่าน (Anti-theft, tracking service)<br />
และนอกจากจะใช้กับอุปกรณ์ smart phone แล้วยังสามารถไว้ติดตามอุปกรณ์คอมพิวเตอร์ทั้ง OS Windows, Mac และ Linux</p>
<p>โปรแกรมนี้ให้บริการฟรีเพียง 4 อุปกรณ์ต่อสมาชิก เท่านั้น การทำงานของมันก็ง่ายมากเพียงลงโปรแกรม Agent ไว้ในอุปกรณ์ของเรา และสามารถจัดการชุดคำสั่งต่างๆได้บนเว็บไซต์</p>
<ol>
<li>ส่ง SMS ไปเพื่อ activate การทำงาน</li>
<li>สั่งให้โปรแกรม ถ่ายรูปแล้วส่งกลับมาให้เรา อาจจะได้หน้าคนร้ายก็ได้</li>
<li>สั่งปิดล็อกเครื่อง</li>
<li>สั่งให้บอกตำแหน่งของเครื่อง</li>
</ol>
<p>ฯลฯ</p>
<p>จะอย่างไรก็ตาม การใช้งานซอฟท์แวร์ก็เป็นเพียงการล้อมคอกอยู่ดี ต้องมีสติและระมัดระวังของใช้ด้วยตัวท่านเองจึงจะแก้ที่ต้นเหตุ</p>
<p>&nbsp;</p>
<p>Ref: <a title="Prey" href="http://preyproject.com/" target="_blank">preyproject.com</a> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.xp-link.com/2011/08/23/smart-phone-tracking/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>อยากได้ระบบ Office Automation เหมือนบริษัทชั้นนำ</title>
		<link>http://www.xp-link.com/2010/12/03/office-automation/</link>
		<comments>http://www.xp-link.com/2010/12/03/office-automation/#comments</comments>
		<pubDate>Fri, 03 Dec 2010 12:12:22 +0000</pubDate>
		<dc:creator>pradit</dc:creator>
				<category><![CDATA[Google]]></category>
		<category><![CDATA[exchange]]></category>
		<category><![CDATA[gmail]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[google app]]></category>
		<category><![CDATA[google doc]]></category>
		<category><![CDATA[google talk]]></category>
		<category><![CDATA[lotusnote]]></category>
		<category><![CDATA[microsoft office]]></category>
		<category><![CDATA[office automation]]></category>
		<category><![CDATA[outlook]]></category>

		<guid isPermaLink="false">http://www.xp-link.com/?p=222</guid>
		<description><![CDATA[ (function() { window.PinIt = window.PinIt &#124;&#124; { loaded:false }; if (window.PinIt.loaded) return; window.PinIt.loaded = true; function async_load(){ var s = document.createElement("script"); s.type = "text/javascript"; s.async = true; if (window.location.protocol == "https:") s.src = "https://assets.pinterest.com/js/pinit.js"; else s.src = "http://assets.pinterest.com/js/pinit.js"; var x = document.getElementsByTagName("script")[0]; x.parentNode.insertBefore(s, x); } if (window.attachEvent) window.attachEvent("onload", async_load); else window.addEventListener("load", async_load, false); })(); อยากได้ระบบ [...] ]]></description>
			<content:encoded><![CDATA[<p> <!-- Include ONCE for ALL buttons in the page --><br />
<script type="text/javascript">
(function() {
    window.PinIt = window.PinIt || { loaded:false };
    if (window.PinIt.loaded) return;
    window.PinIt.loaded = true;
    function async_load(){
        var s = document.createElement("script");
        s.type = "text/javascript";
        s.async = true;
        if (window.location.protocol == "https:")
            s.src = "https://assets.pinterest.com/js/pinit.js";
        else
            s.src = "http://assets.pinterest.com/js/pinit.js";
        var x = document.getElementsByTagName("script")[0];
        x.parentNode.insertBefore(s, x);
    }
    if (window.attachEvent)
        window.attachEvent("onload", async_load);
    else
        window.addEventListener("load", async_load, false);
})();
</script></p>
<h3>อยากได้ระบบ Office Automation เหมือนบริษัทชั้นนำ</h3>
<p><img src="http://www.xp-link.com/website/wp-content/uploads/2010/12/1.png" alt="" width="500" height="300" /><a href="http://pinterest.com/pin/create/button/?url=http%3A%2F%2Fwww.xp-link.com%2F2010%2F12%2F03%2Foffice-automation%2F&#038;media=http%3A%2F%2Fwww.xp-link.com%2Fwebsite%2Fwp-content%2Fuploads%2F2010%2F12%2F1.png&#038;description=office-automation" class="pin-it-button" count-layout="horizontal">Pin It</a></p>
<h3>คุณกำลังใช้ หรือ อยากใช้ หรือเคยเห็น องค์กรขนาดใหญ่ใช้ Software เหล่านี้หรือไม่?</h3>
<ul>
<li>Microsoft Office, Word, Excel, Powerpoint, Visio</li>
<li>Microsoft Exchange, Outlook</li>
<li>Lotusnote</li>
</ul>
<p>&nbsp;</p>
<p>คุณสามารถใช้ประโยชน์ในลักษณะเดียวกันและ ประหยัดได้โดยอ่านต่อไปครับ<br />
ผู้ประกอบการ ที่เริ่มสนใจการนำ Software มาช่วยงานด้านเอกสารพื้นฐานของบริษัท ต่างเริ่มหันมาใช้ Google Apps กัน <a href="http://www.xp-link.com/2010/11/24/%E0%B8%97%E0%B8%B2%E0%B8%87%E0%B9%80%E0%B8%A5%E0%B8%B7%E0%B8%AD%E0%B8%81%E0%B9%83%E0%B8%99%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B8%A5%E0%B8%94%E0%B8%95%E0%B9%89%E0%B8%99%E0%B8%97%E0%B8%B8%E0%B8%99%E0%B8%97/">(ความเดิมตอนที่แล้ว)</a> แล้วเจ้าGoogle Apps มันดีเยี่ยมอย่างไรเรามาดูกัน ก่อนอื่นเรามาทำความเข้าใจ Product แต่ละตัวกันก่อนครับ</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><span id="more-222"></span></p>
<h3>1. Google Docs</h3>
<p>คือ Program ด้านเอกสารต่างๆที่เราสามารถมาทดแทนการใช้ Word, Excel, Powerpoint และ Visio</p>
<p>(Program ด้านการสร้าง Diagram ภาพ) ผู้ประกอบการ ครับ ใช่ครับ ต่อไปนี้คุณจะมี</p>
<p>สิ่งเหล่านี้ใช้เหมือนกับบริษัทรายใหญ่ๆใช้กันแล้วครับ ถูกต้องตามกฏหมายไม่ต้องคอยกลัว</p>
<p>ใครจะมาตรวจอีกต่อไป ลองอ่านดูกันต่อไปครับ</p>
<p>&nbsp;</p>
<p><img src="http://www.xp-link.com/website/wp-content/uploads/2010/12/2.png" alt="" width="500" height="300" /><a href="http://pinterest.com/pin/create/button/?url=http%3A%2F%2Fwww.xp-link.com%2F2010%2F12%2F03%2Foffice-automation%2F&#038;media=http%3A%2F%2Fwww.xp-link.com%2Fwebsite%2Fwp-content%2Fuploads%2F2010%2F12%2F2.png&#038;description=office-automation" class="pin-it-button" count-layout="horizontal">Pin It</a></p>
<p>&nbsp;</p>
<h4>คุณสมบัติของ Google Docs มีดังต่อไปนี้:</h4>
<table>
<tbody>
<tr>
<td>
<ol>
<li>อยู่ บน Cloud (จะกล่าวถึงในครั้งต่อไป) เป็นProgram<br />
ที่ใช้บน Internet ไม่ต้องมีการลง Software ในเครื่อง<br />
หรือคอยตาม Update, ไม่ต้องมีการดูแลรักษา Upgrade เครื่อง<br />
Server เมื่อมี พนักงานเพิ่มขึ้น</li>
<li>สามารถใช้ได้ทั้งบน PC, Mac, Linux,<br />
หรืออุปกรณ์ต่างๆ ที่สามารถเป็น Website ใน Internet<br />
สมัยใหม่ทั่วๆไปได้</li>
<li>Online collaboration คุณสามารถ แชร์เอกสารและ<br />
ช่วยกันแก้ไขเอกสารไปพร้อมกันในเวลาเดียวกันได้</li>
<li>มีความปลอดภัยค่อนข้างสูง<br />
โดยคุณสามารถกำหนดสิทธิ์การเข้าถึงเอกสารต่างๆได้</li>
<li>สามารถ ดู Revision History<br />
ได้ ย้อนหลังไปดูการปรับปรุงครั้งล่าสุดได้</li>
<li>มีพื้นที่เก็บเอกสารได้ถึง 1 Gb หรือ อาจจะประมาณ<br />
เอกสาร 1000 ฉบับ ต่อผู้ใช้(ฉบับละประมาณ 1 mb.)<br />
**(Standard Edition)</li>
<li>สามารถค้นหาเอกสารได้อย่างมีประสิทธิภาพโดย มี Google search engine เป็นตัวทำงานให้เราอยู่เบื้องหลัง</li>
</ol>
</td>
<td><img src="https://lh4.googleusercontent.com/Jmoyl37cx6V2pzETKAkJ9sVgiF_ZNmBccrG6A4sH8vteHJu5jHKa60M8gjK7vEQLKU4ZahLssgeovbKff398OhIrslsWvv4Y_emAFUjotgiTLCXiUA" alt="" width="200" height="350" /><a href="http://pinterest.com/pin/create/button/?url=http%3A%2F%2Fwww.xp-link.com%2F2010%2F12%2F03%2Foffice-automation%2F&#038;media=https%3A%2F%2Flh4.googleusercontent.com%2FJmoyl37cx6V2pzETKAkJ9sVgiF_ZNmBccrG6A4sH8vteHJu5jHKa60M8gjK7vEQLKU4ZahLssgeovbKff398OhIrslsWvv4Y_emAFUjotgiTLCXiUA&#038;description=office-automation" class="pin-it-button" count-layout="horizontal">Pin It</a>
</td>
</tr>
</tbody>
</table>
<p><!--/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////--></p>
<p><img src="https://lh6.googleusercontent.com/NejDs8kgbPDrCDNI7cv2YAv3DcdtoVIjvdDzslk8evM_gbFZLD3bvxWPV9CCBceH3019mfJTcbg6GQI0JKoKjKzNidy5dqnknf8Zixcc6q3GSwbDyg" alt="" width="500" height="300" /><a href="http://pinterest.com/pin/create/button/?url=http%3A%2F%2Fwww.xp-link.com%2F2010%2F12%2F03%2Foffice-automation%2F&#038;media=https%3A%2F%2Flh6.googleusercontent.com%2FNejDs8kgbPDrCDNI7cv2YAv3DcdtoVIjvdDzslk8evM_gbFZLD3bvxWPV9CCBceH3019mfJTcbg6GQI0JKoKjKzNidy5dqnknf8Zixcc6q3GSwbDyg&#038;description=office-automation" class="pin-it-button" count-layout="horizontal">Pin It</a></p>
<h4>Google Docs ประกอบไปด้วย Program ต่างๆ ต่อไปนี้:</h4>
<p>1. Document คือ เอกสารประเภท Word เหมาะกับงานเอกสารทั่วไป ทำได้ทั้งพิมพ์ แทรก</p>
<p>ภาพ แทรก ลิงค์ ฯลฯ</p>
<p>2. Presentation คือ เอกสารประเภท การนำเสนอ Slide คล้ายกับ Powerpoint</p>
<p>3. Spreadsheet คือ เอกสารประเภท ตาราง และ การคำนวณ ต่างๆ คล้ายกับ Excel</p>
<p>4. Form คือ เอกสารที่สามารถสร้างแบบสอบถามเบื้องต้นได้</p>
<p>5. Drawing คือ เอกสารประเภท ภาพ Diagram คล้ายกับ Visio</p>
<h3>2. Gmail</h3>
<p>คือ Email ที่ให้ความจุมากถึง 7.5 Gb / User ** (Standard Edition)</p>
<p>มา ลองดูว่า Email ฉบับใหญ่ๆ ฉบับละ 1 Mb ใน Gmail เราจะเก็บ Email ได้ถึง 7,500</p>
<p>ฉบับ ต่อผู้ใช้เลยทีเดียว หากคุณมีการรับส่ง Email วันละ 10 ฉบับ คุณสามารถเก็บ Email</p>
<p>โดยไม่ต้องลบเลยไปเป็นเวลาประมาณ 2 ปีถึงจะเต็มพื้นที่ก็เป็นได้</p>
<h4>คุณสมบัติของ Gmail มีดังต่อไปนี้:</h4>
<p>1. มีความจุเยอะมาก และมีแนวโน้มที่ทาง Google จะเพิ่มความจุขึ้น เราสามารถเก็บ Email</p>
<p>เราได้โดยไม่ต้องลบหรือ หาที่จัดเก็บ</p>
<p>2. สามารถ Sync กับ Program Email หลัก ที่คุณใช้อยุ่ในปัจจุบัน หรือ กับ โทรศัพท์เคลื่อนที่ ต่างๆ</p>
<p>ได้ง่ายดาย</p>
<p>3. สามารถ เก็บ Contact ลูกค้า หรือ เพื่อน คุณไว้ Sync กับ โทรศัพ์เคลื่อนที่ใช้ OS ตระกูล Android</p>
<p>โดยไม่ต้องกลัวว่าเมื่อคุณเปลี่ยนเครื่องแล้ว Contact จะหาย</p>
<p>4. สามารถค้นหาEmailได้อย่างมีประสิทธิภาพโดย มี Google search engine</p>
<p>เป็นตัวทำงานให้เราอยู่เบื้องหลัง</p>
<p>5. มีระบบป้องกัน Spam ที่มีประสิทธิภาพค่อนข้างสูงมาก</p>
<p>6. มีการ เชื่อมต่อ (Integration) กับ Gtalk, Google Docs, Google Calendar ทำให้ทำงานร่วมกันได้ดี</p>
<p>7. สามารถใช้ Gmail เป็นชื่อ Domain ของ องค์กร ของคุณได้อีกด้วย ie: JohnDoe@xp-link.com</p>
<p>&nbsp;</p>
<h3>3. Google Talk</h3>
<p>การ สื่อสารแบบ Chat ที่เป็นที่นิยมการมาก และสามารถเก็บ ข้อความที่ Chat ไว้ได้ด้วย รวมถึงสามารถ</p>
<p>ส่งข้อความด่วนเข้าระบบโทรศัพท์เคลื่อนที่ ที่รองรับ Google Talk อีกด้วย</p>
<p>Google Chat สามารถ ใช้เป็น VoIP คือคุยกันเหมือน โทรศัพท์ หรือ เป็นภาพวีดีโอได้ ผ่านระบบเครือข่าย</p>
<p>Internet ซึ่งเหมาะสำหรับ องค์กรที่มี หลายสาขา และตั้งอยู่ห่างไกล Google Talk จะทำให้</p>
<p>ประหยัดค่าใช้จ่ายทางการโทรศัพท์ ได้เป็นอย่างมาก</p>
<h4>คุณสมบัติของ Google Talk มีดังต่อไปนี้:</h4>
<p>1. Messaging ส่งข้อความ คุยระหว่างกันได้ และเก็บหลักฐานได้</p>
<p>2. Voice Chat คุยกันผ่าน Internet</p>
<p>3. Video Chat คุยกันเป็น Video Conference</p>
<p>4. Group Chat ส่งข้อความ คุยกัน เป็นประชุม หลายคนได้</p>
<p>&nbsp;</p>
<h3>4. Google Calendar</h3>
<p>ปฎิ ทินนัดหมาย เป็นส่วนสำคัญมากสำหรับการทำธุรกิจในองค์กร แทบจะทุกองค์กร การที่เรามี</p>
<p>ปฎิทินที่สามารถจะ Collaboration ได้ แชร์กัน และทุกคนใช้ปฎิทินหลัก เป็นศุนย์กลาง</p>
<p>ทำให้ความคลาดเคลื่อน ต่อการทำธุรกิจเกิดขึ้นน้อยลง</p>
<h4>คุณสมบัติของ Google Calendarมีดังต่อไปนี้:</h4>
<table>
<tbody>
<tr>
<td><img src="https://lh4.googleusercontent.com/6RQejYzfdgj8qqT8Gb0mknc9dmYgmaqBEmoX0FGepfgpTSovF9xrtqqUqlU5MwahPmfJIXIYRnaDBQMMPnfOJWWq5kuPb_cnz1tXbNKSDDRoCuBJbQ" alt="" width="200" height="250" /><a href="http://pinterest.com/pin/create/button/?url=http%3A%2F%2Fwww.xp-link.com%2F2010%2F12%2F03%2Foffice-automation%2F&#038;media=https%3A%2F%2Flh4.googleusercontent.com%2F6RQejYzfdgj8qqT8Gb0mknc9dmYgmaqBEmoX0FGepfgpTSovF9xrtqqUqlU5MwahPmfJIXIYRnaDBQMMPnfOJWWq5kuPb_cnz1tXbNKSDDRoCuBJbQ&#038;description=office-automation" class="pin-it-button" count-layout="horizontal">Pin It</a>
</td>
<td>
<ol>
<li>จัดการตาราง นัดหมาย ส่งข้อความนัด ได้</li>
<li>สามารถเชื่อมต่อ Integrate กับระบบ Email หรือ&gt;Program ที่รองรับได้เช่น Program บนโทรศัพท์เคลื่อนที่</li>
<li>สามารถสร้างและ แชร์ปฏิทิน ขององค์กรหลักและสร้างปฏิทินย่อยเพื่อแชร์ให้กับทีมงานได้อีกด้วย</li>
<li>สามารถเปิด ปฏิทินให้เป็นสาธารณะ หรือให้ลูกค้าได้เห็นเช่นกัน</li>
</ol>
</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p>&nbsp;</p>
<h3>5. Google Site</h3>
<p>Web Site สำหรับแสดงข้อมูลข่าวสาร ภายในองค์กร หรือ ศูนย์รวมเอกสารต่างๆ ที่สามารถให้ทั้ง ภายในหรือ</p>
<p>ภายนอกได้ ใช้งานร่วมกัน</p>
<p>&nbsp;</p>
<h3>6. Google Video</h3>
<p>คุณ สามารถสร้างสถานีทีวี ภายในองค์กรได้ โดยสร้าง วีดีโอ File และ นำไปใช้ในการ Training หรือ</p>
<p>นำไปใช้แนะนำ ลูกค้า โดยที่สามารถควบคุม ความเป็นส่วนตัวได้ Google Video มีให้ใช้เฉพาะ สมาชิก</p>
<p>Premier Edition เท่านั้น</p>
<p><img src="https://lh6.googleusercontent.com/swMVcbwotCguCsPHX0CxJDedmGaKgNJqrAcfw9arxGfRfuIGmKE85_ToWomhAU9Bv7QgQKs-hOT-0KTDFmSwMfz8IWDsogP2BJb0O1tvRIM-UJCiBQ" alt="" width="500" height="300" /><a href="http://pinterest.com/pin/create/button/?url=http%3A%2F%2Fwww.xp-link.com%2F2010%2F12%2F03%2Foffice-automation%2F&#038;media=https%3A%2F%2Flh6.googleusercontent.com%2FswMVcbwotCguCsPHX0CxJDedmGaKgNJqrAcfw9arxGfRfuIGmKE85_ToWomhAU9Bv7QgQKs-hOT-0KTDFmSwMfz8IWDsogP2BJb0O1tvRIM-UJCiBQ&#038;description=office-automation" class="pin-it-button" count-layout="horizontal">Pin It</a></p>
<h3>7. Google Apps Market</h3>
<p>สุดท้าย เฉพาะตอนนี้ Google Apps มีช่องทางที่จะให้ ผู้ประกอบการ สามารถเข้าไปหาซื้อ Software</p>
<p>ที่อาจจะมีประโยชน์และนำมาใช้ในองค์กร ร่วมกับ Google Apps ได้ด้วย อาจจะเป็น ระบบ บัญชี บุคคล</p>
<p>การเข้างาน ฯลฯ โดยข้อดีต่างๆนั้นก็คือมันเป็น App ที่อยู่บน Cloud และ Google จัดการเรื่อง</p>
<p>ความปลอดภัยทางข้อมูล และรับประกันเครื่องไม่ล่มถึง 99.99%</p>
<p>จาก ทั้งหมดที่กล่าวมา ผู้ประกอบการหลายท่าน คงเริ่มมีวิสัยทัศ เห็นช่องทางการนำไปใช้ประโยชน์<br />
และนำไปประยุกค์ กับหน่วยงาน และ องค์กรของท่าน</p>
<p>อย่างไร ก็ตาม Google Apps ก็เป็นเพียงแค่อีกหนึ่ง ทางเลือก และ เครื่องมือ</p>
<p>ผู้ประกอบการก็ควรที่จะวิเคราะห์ ขั้นตอน และ กิจกรรมต่างๆ ในหน่วยงานของท่าน และปรับปรุง ขั้นตอน</p>
<p>หรือกิจกรรม พื้นฐานให้เหมาะสมเสียก่อน แล้วจึงนำเครื่องมือมาช่วย ลดขั้นตอน หรือกิจกรรมเหล่านั้น</p>
<p>จึงจะส่งผลดีต่อ องค์กรของท่าน </p>
]]></content:encoded>
			<wfw:commentRss>http://www.xp-link.com/2010/12/03/office-automation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ทางเลือกในการลดต้นทุนทางด้านงานเอกสาร</title>
		<link>http://www.xp-link.com/2010/11/24/google-app/</link>
		<comments>http://www.xp-link.com/2010/11/24/google-app/#comments</comments>
		<pubDate>Wed, 24 Nov 2010 06:35:22 +0000</pubDate>
		<dc:creator>pradit</dc:creator>
				<category><![CDATA[Google]]></category>
		<category><![CDATA[exchange]]></category>
		<category><![CDATA[gmail]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[google app]]></category>
		<category><![CDATA[google doc]]></category>
		<category><![CDATA[google talk]]></category>
		<category><![CDATA[lotusnote]]></category>
		<category><![CDATA[microsoft office]]></category>
		<category><![CDATA[office automation]]></category>
		<category><![CDATA[outlook]]></category>

		<guid isPermaLink="false">http://www.xp-link.com/?p=184</guid>
		<description><![CDATA[ (function() { window.PinIt = window.PinIt &#124;&#124; { loaded:false }; if (window.PinIt.loaded) return; window.PinIt.loaded = true; function async_load(){ var s = document.createElement("script"); s.type = "text/javascript"; s.async = true; if (window.location.protocol == "https:") s.src = "https://assets.pinterest.com/js/pinit.js"; else s.src = "http://assets.pinterest.com/js/pinit.js"; var x = document.getElementsByTagName("script")[0]; x.parentNode.insertBefore(s, x); } if (window.attachEvent) window.attachEvent("onload", async_load); else window.addEventListener("load", async_load, false); })(); ทางเลือกในการลดต้นทุนทางด้านงานเอกสาร [...] ]]></description>
			<content:encoded><![CDATA[<p> <!-- Include ONCE for ALL buttons in the page --><br />
<script type="text/javascript">
(function() {
    window.PinIt = window.PinIt || { loaded:false };
    if (window.PinIt.loaded) return;
    window.PinIt.loaded = true;
    function async_load(){
        var s = document.createElement("script");
        s.type = "text/javascript";
        s.async = true;
        if (window.location.protocol == "https:")
            s.src = "https://assets.pinterest.com/js/pinit.js";
        else
            s.src = "http://assets.pinterest.com/js/pinit.js";
        var x = document.getElementsByTagName("script")[0];
        x.parentNode.insertBefore(s, x);
    }
    if (window.attachEvent)
        window.attachEvent("onload", async_load);
    else
        window.addEventListener("load", async_load, false);
})();
</script></p>
<h3>ทางเลือกในการลดต้นทุนทางด้านงานเอกสาร</h3>
<table>
<tbody>
<tr>
<td>
<ul>
<li>โดนตรวจสอบ software ลิขสิทธิ์</li>
<li>พนักงานทำ File เอกสารหาย</li>
<li>อยากนั่งทำงานเอกสารที่ใดก็ได้</li>
<li>พนักงานพลาด การนัดหมาย หรือนัดไม่ตรงกัน</li>
<li>ต้องคอยลงโปรแกรมใหม่อยู่เป็นประจำ</li>
<li>ส่ง file เอกสารไปให้ผู้ที่เกี่ยวข้องในองค์กรแล้วเปิดไม่ได้</li>
<li>อ่านเอกสารคนละฉบับข้อความไม่ตรงกัน</li>
<li>ต้องคอยส่งเอกสารที่ปรับปรุงให้ผู้ที่เกี่ยวข้องเดิมซ้ำ หลายหน</li>
</ul>
</td>
<td><img src="https://lh6.googleusercontent.com/nHXVsaFKmmHxRGGvfWj8okXefWRLqYQC9UmVbV_zokHl9DGZP6wwvGgCqZkN7zf-KLwPdFTipNTMMpHqengzfAIPqIV-Wp6NKevD13VwhAVYWwnA_w" alt="" width="160px" height="190px" /><a href="http://pinterest.com/pin/create/button/?url=http%3A%2F%2Fwww.xp-link.com%2F2010%2F11%2F24%2Fgoogle-app%2F&#038;media=https%3A%2F%2Flh6.googleusercontent.com%2FnHXVsaFKmmHxRGGvfWj8okXefWRLqYQC9UmVbV_zokHl9DGZP6wwvGgCqZkN7zf-KLwPdFTipNTMMpHqengzfAIPqIV-Wp6NKevD13VwhAVYWwnA_w&#038;description=Google%20application" class="pin-it-button" count-layout="horizontal">Pin It</a>
</td>
</tr>
</tbody>
</table>
<h3>ปัญหาเหล่านี้สร้างความรำคาญและ เป็นอุปสรรค์ในองค์กรของคุณอยู่ใช่หรือไม่?</h3>
<p><span id="more-184"></span></p>
<p>บริษัท ห้างร้าน และโรงงานไทย ส่วนใหญ่ต้องยอมรับว่า ได้นำระบบ Software และ นำ Computer/IT มาใช้งาน กันอย่างแพร่หลายกันมากในปัจจุบัน ทั้งทางด้าน งานขาย การผลิต และ การจัดการด้านต่างๆ และยังคงมีส่วนใหญ่ที่ยังใช้ Software ผิดลิขสิทธิ์ หรืออาจจะใช้ถูกลิขสิทธิ์ แต่ก็มีขีดจำกัด ไปด้วยงบประมาณทำให้ไม่สามารถขยาย หรือใช้ได้อย่างเต็มประสิทธิภาพ</p>
<p>งาน สำคัญต่างๆในองค์กร โดยเฉพาะงานด้านเอกสาร ต้องยอมรับว่า Microsoft Office เช่น Word, Excel, Powerpoint ได้ถูกใช้กันอย่างแพร่หลาย และกลายเป็นสิ่งพื้นฐานที่ถูกเรียกใช้เมื่อทำงานด้านเอกสาร ถูกฝึกให้ใช้กัน ตั้งแต่ในมหาวิทยาลัย และ สถาบันการศึกษาต่างๆ<br />
แต่ การนำมาใช้ได้อย่างมีประสิทธิภาพสูงสุดในระดับองค์กรยังถูกน้ำมาใช้กันน้อย มาก อาจจะต้องมีการ วางระบบและลง Software ที่ Server เพื่อให้สามารถทำ Collaboration หรือ การใช้งานร่วมกัน/แชร์ เอกสาร พร้อมกันได้</p>
<table>
<tbody>
<tr>
<td><img src="https://lh3.googleusercontent.com/gcFSwLDSXr4RvcRCZRqAEUza-KVcLk56hn7rY_54ES6nwVELHj3aMWVYtzPNDpJDiyIPdc8T7QCpU1BAPQUtAFgEEIoakf0rJns2kkcbQ_wHt6rEwA" alt="" align="RIGHT" /><br />
<a href="http://pinterest.com/pin/create/button/?url=http%3A%2F%2Fwww.xp-link.com%2F2010%2F11%2F24%2Fgoogle-app%2F&#038;media=https%3A%2F%2Flh3.googleusercontent.com%2FgcFSwLDSXr4RvcRCZRqAEUza-KVcLk56hn7rY_54ES6nwVELHj3aMWVYtzPNDpJDiyIPdc8T7QCpU1BAPQUtAFgEEIoakf0rJns2kkcbQ_wHt6rEwA&#038;description=Google%20application" class="pin-it-button" count-layout="horizontal">Pin It</a>
</td>
<td>ข้อจำกัดต่างๆที่เกิดจากการใช้ Software ข้างต้น เช่น</td>
</tr>
</tbody>
</table>
<ol>
<li>ต้องคอย Install ตาม Upgrade Software</li>
<li>ต้องคอยหาคนดูแล Server</li>
<li>ต้องคอย สำรองไฟ Server</li>
<li>ต้องคอย Upgrade Server</li>
<li>ราคาค่า License ลิขสิทธิ์ ที่สูง</li>
<li>ต้องคอยปวดหัวว่า ต้องซื้อ Software ตัวไหนบ้างมาใช้</li>
<li>เมื่อซื้อผิดแล้วก็กองไว้ตรงนั้น ต้องไปซื้อมาใหม่อีก</li>
<li>เมื่อซื้อมาใช้แล้วหลายปี พอจะขยาย Software ตัวเดิมไม่มีขาย มีแต่ Version ใหม่ ทำให้ต้องเปลี่ยนของที่มีอยู่ทั้งหมด ตามด้วย</li>
<li>ต้องจ้างพนักงาน IT ที่ติดตั้งดูแลเป็น ตามข้อต่างๆข้างต้น</li>
</ol>
<p>ทำให้คุณไม่สามารถใช้ Software ข้างต้นได้ หรือ ขยายได้</p>
<h4>ผู้ประกอบการ SME ทั้งหลายล้วนมีความต้องการคล้ายกันกับองค์กรขนาดใหญ่ แต่อาจจะถูกปิดกั้นด้วยข้อจำกัด หรือ อาจขาดความองค์ความรู้เหล่านี้ และทางเลือกของท่านคือ อะไร?</h4>
<p><img class="google" src="https://lh3.googleusercontent.com/uKA2YqNA9-5Ptbd9v8xqYuFgXljzmKwtA42FL9dVY-6xDZP_V2hLg7EhgAScRWUrtJ06hcpdTc1MieLXMI2FyGdIzortaM3DpwFYJD_iT_mI9Pmz-Q" alt="" width="580px" height="360px" /><a href="http://pinterest.com/pin/create/button/?url=http%3A%2F%2Fwww.xp-link.com%2F2010%2F11%2F24%2Fgoogle-app%2F&#038;media=https%3A%2F%2Flh3.googleusercontent.com%2FuKA2YqNA9-5Ptbd9v8xqYuFgXljzmKwtA42FL9dVY-6xDZP_V2hLg7EhgAScRWUrtJ06hcpdTc1MieLXMI2FyGdIzortaM3DpwFYJD_iT_mI9Pmz-Q&#038;description=Google%20application" class="pin-it-button" count-layout="horizontal">Pin It</a></p>
<h3>Google Apps,</h3>
<p>Google บริษัทรายใหญ่ ที่เรารู้จักกันดีในชื่อ Google ที่เราใช้ในการ ค้นหาบน Web/Internet และยังให้บริการ Gmail ที่เป็นบริการ Email ฟรี อีก/ด้วย</p>
<p>Google ได้เพิ่มบริการต่างๆ ออกมาสู่ตลาดอยู่อย่างต่อเนื่อง และ Google Apps ก็เป็นส่วนหนึ่งของ บริการของ Google ที่มาตอบสนอง หน่วยงาน หรือ องค์กรต่างๆ ได้อย่างดีเยี่ยม</p>
<p>ดีเยี่ยมอย่างไรเรามาดูกันว่า Google Apps มีอะไรมาให้เราใช้กันบ้าง</p>
<h3>Google Apps ประกอบไปด้วยหลาย Editions:</h3>
<ol>
<li>Premier ($50 / ปี / คน)</li>
<li>Standard (Free, ไม่เกิน 50 คน)</li>
<li>Education (Free ทำได้เหมือน Premier)</li>
<li>Government (เหมือน Premier)</li>
<li>Non-profit (Free ไม่เกิน 3,000 คน เหมือน Education)</li>
</ol>
<h3>Google Apps มีเครื่องมีอมาให้ดังนี้:</h3>
<ol>
<li>Google Docs (Document, Presentation, Spreadsheet, Form, Draw)</li>
<li>Gmail</li>
<li>Gtalk</li>
<li>Google Calendar</li>
<li>Google Site</li>
<li>Google Video ** (Premier Edition)</li>
<li>Google Apps Market</li>
</ol>
<p>&nbsp;</p>
<p>ผู้ประกอบการ จะสามารถประหยัดค่าใช้จ่ายต่างๆที่กล่าวมาอย่างมาก และเลิกปวดหัว กับการดูแล Server และต้องไล่ตาม Update Software</p>
<p>เพิ่มประสิทธิผลการทำงานได้มากยิ่งขึ้น ความซับซ้นการเก็บ Fileจะลดลงและหมดไป แชร์เอกสาร และ สามารถช่วยกันอ่านและ แก้ไขเอกสารสำเนาเดียวกันได้ แบบที่ Software ระดับสูงทำได้กัน</p>
<p>รวมทั้งความสามารถในการเตือนนัดหมาย และมีปฏิทินกลางอันเดียวกันขององค์กร</p>
<p>เพียงเท่าที่กล่าวมาข้างต้นนี้ อาจจะทำให้หลายๆคนเริ่มเห็นทางเลือกแล้วว่า องค์กรเราก็สามารถนำเทคโนโลยีมาใช้ เพิ่ม Productivity ในการทำงานได้โดยลดต้นทุนไปได้มากจากการ หันมาใช้ Google Apps. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.xp-link.com/2010/11/24/google-app/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How To Google Map</title>
		<link>http://www.xp-link.com/2010/01/25/how-to-google-map/</link>
		<comments>http://www.xp-link.com/2010/01/25/how-to-google-map/#comments</comments>
		<pubDate>Mon, 25 Jan 2010 03:27:47 +0000</pubDate>
		<dc:creator>Thipbodee</dc:creator>
				<category><![CDATA[Google]]></category>

		<guid isPermaLink="false">http://www.xp-link.com/?p=157</guid>
		<description><![CDATA[ &#160; Google Map&#160; คือ Applicationแผนที่onlineที่ GoogleเปิดAPIให้เราเรียกงานผ่านWebโดยไม่ต้องเสียค่า ใช้จ่ายแต่อยางใดโดยgoogleได้เปิดช่องทางให้ท่านสามารถเรียกใช้งาน Google Mapsผ่าน API ให้ไปปรากฏบนหน้าwebsiteของท่านได้และมีวิธีการทำที่ไม่ซับซ้อนมากจนเกินไป &#160; ความรู้ที่เพื่อนควรมีก่อนการทำGoogle Map &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 1 FlashScript หรือ JAVAScript &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 2 Form HTMLและCSS วิธีทำGoogle Mapนั้นมีขั้นตอนดังต่อไปนี้ &#160;&#160;&#160;&#160;&#160;&#160;&#160; 1&#160; ต้องทำการสมัครAPI keyก่อนโดยการใส่ชื่อ websiteของ ท่าน และgoogleจะทำการ Generate APIKey ให้ และใช้Key นี้เพื่อใช้ในตรวจสอบก่อนการการเรียกใช้งาน Google Map &#60;link ที่ใช้สมัคร API key&#62;http://code.google.com/apis/maps/ &#160;&#160;&#160;&#160;&#160;&#160;&#160; 2&#160; เราได้ใส่ชื่อแล้วเราจะได้ APIที่มีหน้าตาแบบนี้ Your key is:ABQIAAAAZldylSKaT1dVGBqo83Q24RStgBFla87IauNVcdIb-lDNqlsAbxR Uu6uROJCOT9dSBfzZWpAnEtJ0Hg This key is good [...] ]]></description>
			<content:encoded><![CDATA[<p>
	&nbsp;</p>
<h3>
	Google Map&nbsp;</h3>
<p>
	<strong>คือ</strong> Applicationแผนที่onlineที่ GoogleเปิดAPIให้เราเรียกงานผ่านWebโดยไม่ต้องเสียค่า</p>
<p>
	ใช้จ่ายแต่อยางใดโดยgoogleได้เปิดช่องทางให้ท่านสามารถเรียกใช้งาน Google Mapsผ่าน</p>
<p>
	API ให้ไปปรากฏบนหน้าwebsiteของท่านได้และมีวิธีการทำที่ไม่ซับซ้อนมากจนเกินไป<br />
	&nbsp;</p>
<h3>
	ความรู้ที่เพื่อนควรมีก่อนการทำGoogle Map</h3>
<p>
	<br />
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1 FlashScript หรือ JAVAScript</p>
<p>	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2 Form HTMLและCSS</p>
<p><span id="more-157"></span></p>
<h3>
	วิธีทำGoogle Mapนั้นมีขั้นตอนดังต่อไปนี้</h3>
<p>	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp; ต้องทำการสมัครAPI keyก่อนโดยการใส่ชื่อ websiteของ ท่าน และgoogleจะทำการ</p>
<p>
	Generate APIKey ให้ และใช้Key นี้เพื่อใช้ในตรวจสอบก่อนการการเรียกใช้งาน Google Map</p>
<p>
	&lt;link ที่ใช้สมัคร API key&gt;http://code.google.com/apis/maps/</p>
<p>	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2&nbsp; เราได้ใส่ชื่อแล้วเราจะได้ APIที่มีหน้าตาแบบนี้<br />
	Your key is:ABQIAAAAZldylSKaT1dVGBqo83Q24RStgBFla87IauNVcdIb-lDNqlsAbxR</p>
<p>
	Uu6uROJCOT9dSBfzZWpAnEtJ0Hg<br />
	This key is good for all URLs consisting of this registered domain (and directory if applicable)</p>
<p>
	:http://192.168.1.53/What2Eat/</p>
<p>	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3&nbsp; หลังจากได้key มแล้วให้เราทำการbookmarkหน้านั้น เอาไวเพื่อง่ายต่อการจดจำหรือแล้วแต่เทคนิคที่</p>
<p>
	จำของแต่ละคน<br />
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4&nbsp; เราใช้คำสั่งนั้นในการตรวจสอบและเรียกใช้งานgoogle maps ไปใส่ในหน้าที่เราต้องการแสดงGoogle Map<br />
	&lt;script src=&quot;http://maps.google.com/maps?file=api&amp;amp;v=2&amp;amp;sensor=false&amp;amp;key=ABQIAA</p>
<p>
	AA1XbMiDxx_BTCY2_FkPh06RRaGTYH6UMl8mADNa0YKuWNNa8VNxQEerTAUcfkyrr6OwBovxn7TDAH5Q&quot;&gt;<br />
	&lt;/script&gt;<br />
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5&nbsp; หลังจากนั้นเราจะเขียนส่วนประกอบของGoogle Mapที่เราตองการผ่าน Func. initialize()<br />
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 6&nbsp; เราจะสั่งให้bodyทำการLoad Func. initialize()เพื่อShow Google Map<br />
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 7&nbsp; เราใช้&lt;div id=&quot;map_canvas&quot; style=&quot;width: 500px; height: 300px&quot;&gt;&lt;/div&gt;เพื่อกำหนดขนาดของ</p>
<p>
	Google Mapได้ที่style=&quot;width: 500px; height: 300px&quot;<br />
	**ข้อแนะนำในการสมัครAPI-key ควรใช้ชื่อURLหรือMap URL เพื่อความสะดวกเวลาทำการย้ายServerและไม่ควรใช้ IP AddressในการสมัครAPI Key<br />
	&nbsp;</p>
<h3>
	ตัวอย่างการเขียนGoogle Maps</h3>
<p>	&lt;!&#8211;<br />
	&nbsp;copyright (c) 2009 Google inc.</p>
<p>	&nbsp;You are free to copy and use this sample.<br />
	&nbsp;License can be found here: http://code.google.com/apis/ajaxsearch/faq/#license<br />
	&#8211;&gt;<br />
	&nbsp;</p>
<pre class="code">
&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Strict//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&quot;&gt;

	&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot; xmlns:v=&quot;urn:schemas-microsoft-com:vml&quot;&gt;

	&nbsp;&lt;head&gt;

	&nbsp;&nbsp; &lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=utf-8&quot;/&gt;

	&nbsp;&nbsp; &lt;title&gt;Google Maps API Sample&lt;/title&gt;

	&nbsp;&nbsp; &lt;script src=&quot;http://maps.google.com/maps?file=api&amp;amp;v=2&amp;amp;sensor=false&amp;amp;key=ABQIAAAA1XbMiDxx_BTCY2_Fk
            Ph06RRaGTYH6UMl8mADNa0YKuWNNa8VNxQEerTAUcfkyrr6OwBovxn7TDAH5Q&quot;&gt;&lt;/script&gt;

	&nbsp;&nbsp; &lt;script type=&quot;text/javascript&quot;&gt;

	&nbsp;&nbsp; function initialize() {

	&nbsp;&nbsp;&nbsp;&nbsp; if (GBrowserIsCompatible()) {

	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var map = new GMap2(document.getElementById(&quot;map_canvas&quot;));

	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; map.setCenter(new GLatLng(37.4419, -122.1419), 13);

	&nbsp;&nbsp;&nbsp;&nbsp; }

	&nbsp;&nbsp; }

	&nbsp;&nbsp; &lt;/script&gt;

	&nbsp;&lt;/head&gt;

	&nbsp;&lt;body onload=&quot;initialize()&quot; onunload=&quot;GUnload()&quot; style=&quot;font-family: Arial;border: 0 none;&quot;&gt;

	&nbsp;&nbsp; &lt;div id=&quot;map_canvas&quot; style=&quot;width: 500px; height: 300px&quot;&gt;&lt;/div&gt;

	&nbsp;&lt;/body&gt;

	&lt;/html&gt;
</pre>
<h3>
	ส่วนเพิ่มเติม</h3>
<p>	map.setCenter(new GLatLng(37.4419, -122.1419), 13);<br />
	37.4419, -122.141เป็นการกำหนดค่าเริ่มต้นให้กับแผนที่และ 13คือการกำหนดว่าเราจะมองแผนที่ละเอียดแค่ไหน<br />
	เราสามารถเพิ่มเติมเครื่องมือและลูกเล่นให้กับGoogle Mapได้โดย<br />
	เรียกคำสั้งต่อจากการsetตำแหน่ง<br />
	map.addControl(new GSmallMapControl());คือการเพิ่มเครื่องมือปรับระดับความละเอียดของGoogle Map<br />
	map.addControl(new GMapTypeControl());คือการเพิ่มเครื่องมือเรียกชนิดmapต่างๆของGoogle Map<br />
	&nbsp;</p>
<h3>
	สรุป</h3>
<p>	&nbsp;&nbsp;&nbsp; ในการสมัครใช้งานGoogle Map นั้นทำได้ง่ายมากและไม่เสียค่าใช้จ่ายแต่อย่างใด Google Map จึงเป็นอีกทางเลือกหนึ่งในการเพิ่ม</p>
<p>
	Function การใช้งานให้กับWeb Site ซึ่งวิธ๊ที่ผมได้นำเสนอไป นั้นเป็นเพียงการเรียกใช้งานGoogle Map เบื้องต้นเท่านั้น หากท่าผู้อ่านต้อง</p>
<p>
	การใช้งานในส่วนอื่นก็สามารถศึกษาเพิ่มเติมได้ที่Reference สุดท้ายผมหวังว่าบทความนี้จะเป็นประโยชน์แก่ผู้ที่ต้องการศึกษาวิธีการใช้งาน</p>
<p>
	Google Map<br />
	&nbsp;</p>
<h3>
	ข้อมูลเพิ่มเติมสามารถหาอ่านได้ที่</h3>
<p>	http://code.google.com/apis/maps/documentation/<br />
	&nbsp;</p>
<h3>
	ตัวอย่างการเขียนCode</h3>
<p>	http://code.google.com/apis/ajax/playground/?exp=maps#map_control_simple<br />
	&nbsp;</p>
<h3>
	Reference</h3>
<p>	http://code.google.com/apis/ajax/playground/?exp=maps#map_control_simple<br />
	http://code.google.com/apis/maps/documentation/</p>
<p>	&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.xp-link.com/2010/01/25/how-to-google-map/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Manage test data for integration tests using Spring and DBUnit</title>
		<link>http://www.xp-link.com/2010/01/22/manage-test-data-for-integration-tests-using-spring-and-dbunit/</link>
		<comments>http://www.xp-link.com/2010/01/22/manage-test-data-for-integration-tests-using-spring-and-dbunit/#comments</comments>
		<pubDate>Fri, 22 Jan 2010 09:57:45 +0000</pubDate>
		<dc:creator>Supanit</dc:creator>
				<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://www.xp-link.com/?p=110</guid>
		<description><![CDATA[ &#160;&#160; &#160;Testing is very important to application development. Most enterprise applications are related with persistence data in database system. If you have to test integration between DAOs and databases, called Data Access Objects Testing (DAOs Testing), you will prepare data in database for these testing. There are many ways to prepare test data in database. [...] ]]></description>
			<content:encoded><![CDATA[<p>
	<br />&nbsp;&nbsp; &nbsp;Testing is very important to application development. Most enterprise applications are related with persistence data in database system. If you have to test integration between DAOs and databases, called Data Access Objects Testing (DAOs Testing), you will prepare data in database for these testing. There are many ways to prepare test data in database.</p>
<ul>
<li>1. Inserting test data using SQL script by manually.</li>
<li>2. Import and Export data automatically by other applications.</li>
</ul>
<p><br/></p>
<p>DBUnit is a tool which provides for Data Access Objects Testing.</p>
<p><br/><br />
<span id="more-110"></span></p>
<h4>Process of DBUnit</h4>
<p>
	&nbsp;&nbsp; &nbsp;DBUnit export set of data in the one database to flat file (XML) before running the test. Then the tests are run, it import these test data from XML file to another database and deletes the test data when the tests are finish.
<p>
<br/></p>
<h4>Spring Framework and DBUnit</h4>
<p>
	&nbsp;&nbsp; &nbsp;Spring framework provides ?AbstractTransactionalDataSourceSpringContextTests? class for DBUnit. This class has ?onSetUpInTransaction? and ?onTearDownInTransaction? methods which can be overridden to use to insert and delete test data. Spring-managed beans defined in the integration tests are injected into the integration tests. Junit 4 and TestNG provide a more sophisticated lifecycle.</p>
<p><br/></p>
<h4>Advantages of DBUnit</h4>
<p>&nbsp;&nbsp; &nbsp;1. Simple and easy to implement.<br />
&nbsp;&nbsp; &nbsp;2. Test data of each tests is independent because it insert the test data when the tests is run and delete when tests is finished<br />
&nbsp;&nbsp; &nbsp;3. Support Spring framework, objects is injected automatically.<br />
&nbsp;&nbsp; &nbsp;4. XML file, that is created to store data, as a template and developer can modify its.<br /><br/><br />
<strong>Reference : </strong><a href="http://www.theserverside.com/tt/articles/article.tss?l=ManageTestDataSpringandDBunit">http://www.theserverside.com/tt/articles/article.tss?l=ManageTestDataSpringandDBunit</a> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.xp-link.com/2010/01/22/manage-test-data-for-integration-tests-using-spring-and-dbunit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

