<?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>โกวิโท &#187; Kowit</title>
	<atom:link href="http://www.kowito.com/author/admin/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.kowito.com</link>
	<description>เกิดมาเพื่อเขียนโค้ด</description>
	<lastBuildDate>Thu, 08 Jul 2010 10:13:52 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>กลับมาเป็นมนุษย์เงินแดือนครั้งแรกในรอบปี</title>
		<link>http://www.kowito.com/2010/07/08/%e0%b8%81%e0%b8%a5%e0%b8%b1%e0%b8%9a%e0%b8%a1%e0%b8%b2%e0%b9%80%e0%b8%9b%e0%b9%87%e0%b8%99%e0%b8%a1%e0%b8%99%e0%b8%b8%e0%b8%a9%e0%b8%a2%e0%b9%8c%e0%b9%80%e0%b8%87%e0%b8%b4%e0%b8%99%e0%b9%81%e0%b8%94/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=%25e0%25b8%2581%25e0%25b8%25a5%25e0%25b8%25b1%25e0%25b8%259a%25e0%25b8%25a1%25e0%25b8%25b2%25e0%25b9%2580%25e0%25b8%259b%25e0%25b9%2587%25e0%25b8%2599%25e0%25b8%25a1%25e0%25b8%2599%25e0%25b8%25b8%25e0%25b8%25a9%25e0%25b8%25a2%25e0%25b9%258c%25e0%25b9%2580%25e0%25b8%2587%25e0%25b8%25b4%25e0%25b8%2599%25e0%25b9%2581%25e0%25b8%2594</link>
		<comments>http://www.kowito.com/2010/07/08/%e0%b8%81%e0%b8%a5%e0%b8%b1%e0%b8%9a%e0%b8%a1%e0%b8%b2%e0%b9%80%e0%b8%9b%e0%b9%87%e0%b8%99%e0%b8%a1%e0%b8%99%e0%b8%b8%e0%b8%a9%e0%b8%a2%e0%b9%8c%e0%b9%80%e0%b8%87%e0%b8%b4%e0%b8%99%e0%b9%81%e0%b8%94/#comments</comments>
		<pubDate>Thu, 08 Jul 2010 10:13:52 +0000</pubDate>
		<dc:creator>Kowit</dc:creator>
				<category><![CDATA[ครอบครัว]]></category>
		<category><![CDATA[Django]]></category>
		<category><![CDATA[jobs]]></category>

		<guid isPermaLink="false">http://www.kowito.com/2010/07/08/%e0%b8%81%e0%b8%a5%e0%b8%b1%e0%b8%9a%e0%b8%a1%e0%b8%b2%e0%b9%80%e0%b8%9b%e0%b9%87%e0%b8%99%e0%b8%a1%e0%b8%99%e0%b8%b8%e0%b8%a9%e0%b8%a2%e0%b9%8c%e0%b9%80%e0%b8%87%e0%b8%b4%e0%b8%99%e0%b9%81%e0%b8%94/</guid>
		<description><![CDATA[กลับมาทำงานประจำอีกครั้ง หลังจากโดนเมียบ่นมานาน ว่างานฟรีแลนซ์เงินไม่แนนอน ใหนจะค่ารถ ค่านมลูก มีคนเมล์มาตามให้ไปสัมภาษณ์งาน ตอนที่ตัดสินใจไปไม่รู้ด้วยซ้ำ ว่าจะให้ทำอะไร ไปมึนๆทั้งอย่างนั้น พอถามว่าใช้ภาษาอะไรก็ตอบไปแบบไม่มั่นใจ ว่าไพธอน เค้าให้ข้อสอบ c พลัสพลัส มาทำบอกว่าทำตรงใหนไม่ได้ก็ไม่ต้องทำ ข้ามไปได้ ให้เวลาไม่จำกัด ปรากฏว่าล่อไปสี่ชั่วโมงครึ่ง ทำได้แค่ครึ่งเดียวอีกต่างหาก กลับมานั่งรออยู่บ้าน ขับรถยังไม่ถึงบ้านก็โทรมาตามไปสัมภาษณ์อีกครั้งกับ Director ในวันรุ่งขึ้น แอบคิดอยู่ในใจว่างานนี้มีลุ้น นอนกระสับกระส่ายจนเช้า พอเข้ามาอีกครั้ง เค้าหยิบข้อสอบเมื่อวานขึ้นมาถาม ว่าคิดยังไงถึงทำแบบนี้ ตอบไปตรงๆว่า ไม่ถนัดเรื่อง C อิงกับ Concept ของ Python ก็เลยออกมาอย่างที่เห็น เค้าเลยสรุปว่าได้งาน ให้มาเริ่มงานวันจันทร์เลย เขียนแบบที่อยากเขียนได้เลย สรุปว่าได้งานเขียน Django ซะงั้น]]></description>
			<content:encoded><![CDATA[<p>กลับมาทำงานประจำอีกครั้ง หลังจากโดนเมียบ่นมานาน ว่างานฟรีแลนซ์เงินไม่แนนอน ใหนจะค่ารถ ค่านมลูก</p>
<p>มีคนเมล์มาตามให้ไปสัมภาษณ์งาน ตอนที่ตัดสินใจไปไม่รู้ด้วยซ้ำ ว่าจะให้ทำอะไร ไปมึนๆทั้งอย่างนั้น พอถามว่าใช้ภาษาอะไรก็ตอบไปแบบไม่มั่นใจ ว่าไพธอน เค้าให้ข้อสอบ c พลัสพลัส มาทำบอกว่าทำตรงใหนไม่ได้ก็ไม่ต้องทำ ข้ามไปได้ ให้เวลาไม่จำกัด</p>
<p>ปรากฏว่าล่อไปสี่ชั่วโมงครึ่ง ทำได้แค่ครึ่งเดียวอีกต่างหาก</p>
<p>กลับมานั่งรออยู่บ้าน ขับรถยังไม่ถึงบ้านก็โทรมาตามไปสัมภาษณ์อีกครั้งกับ Director ในวันรุ่งขึ้น แอบคิดอยู่ในใจว่างานนี้มีลุ้น</p>
<p>นอนกระสับกระส่ายจนเช้า พอเข้ามาอีกครั้ง เค้าหยิบข้อสอบเมื่อวานขึ้นมาถาม ว่าคิดยังไงถึงทำแบบนี้ ตอบไปตรงๆว่า ไม่ถนัดเรื่อง C อิงกับ Concept ของ Python ก็เลยออกมาอย่างที่เห็น เค้าเลยสรุปว่าได้งาน </p>
<p>ให้มาเริ่มงานวันจันทร์เลย เขียนแบบที่อยากเขียนได้เลย สรุปว่าได้งานเขียน Django ซะงั้น</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kowito.com/2010/07/08/%e0%b8%81%e0%b8%a5%e0%b8%b1%e0%b8%9a%e0%b8%a1%e0%b8%b2%e0%b9%80%e0%b8%9b%e0%b9%87%e0%b8%99%e0%b8%a1%e0%b8%99%e0%b8%b8%e0%b8%a9%e0%b8%a2%e0%b9%8c%e0%b9%80%e0%b8%87%e0%b8%b4%e0%b8%99%e0%b9%81%e0%b8%94/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>&#3607;&#3604;&#3626;&#3629;&#3610; wp &#3592;&#3634;&#3585; Android</title>
		<link>http://www.kowito.com/2010/02/20/wp-android/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=wp-android</link>
		<comments>http://www.kowito.com/2010/02/20/wp-android/#comments</comments>
		<pubDate>Sat, 20 Feb 2010 14:03:24 +0000</pubDate>
		<dc:creator>Kowit</dc:creator>
				<category><![CDATA[ทั่วไป]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.kowito.com/2010/02/20/wp-android/</guid>
		<description><![CDATA[&#3648;&#3611;&#3655;&#3609;&#3588;&#3619;&#3633;&#3657;&#3591;&#3649;&#3619;&#3585;&#3607;&#3637;&#3656;&#3607;&#3604;&#3626;&#3629;&#3610;&#3610;&#3621;&#3655;&#3629;&#3585;&#3592;&#3634;&#3585; Android client &#3619;&#3641;&#3657;&#3626;&#3638;&#3585;&#3623;&#3656;&#3634;&#3648;&#3586;&#3637;&#3618;&#3609;&#3652;&#3617;&#3656;&#3617;&#3633;&#3609;&#3626;&#3660;&#3648;&#3607;&#3656;&#3634;&#3610;&#3609; PC &#3649;&#3605;&#3656;&#3649;&#3621;&#3585;&#3617;&#3634;&#3604;&#3657;&#3623;&#3618;&#3588;&#3623;&#3634;&#3617;&#3626;&#3632;&#3604;&#3623;&#3585; &#3619;&#3632;&#3627;&#3623;&#3656;&#3634;&#3591;&#3607;&#3637;&#3656;&#3648;&#3586;&#3637;&#3618;&#3609; &#3609;&#3629;&#3609;&#3648;&#3621;&#3656;&#3609;&#3585;&#3633;&#3610;&#3621;&#3641;&#3585; &#3626;&#3610;&#3634;&#3618;&#3654; &#3648;&#3586;&#3637;&#3618;&#3609;&#3618;&#3634;&#3623;&#3654;&#3607;&#3656;&#3634;&#3607;&#3634;&#3591;&#3592;&#3632;&#3648;&#3627;&#3609;&#3639;&#3656;&#3629;&#3618; &#3652;&#3604;&#3657;&#3617;&#3639;&#3629;&#3606;&#3639;&#3629;&#3592;&#3629;&#3651;&#3627;&#3597;&#3656;&#3654;&#3585;&#3623;&#3656;&#3634;&#3609;&#3637;&#3657;&#3627;&#3609;&#3656;&#3629;&#3618;&#3588;&#3591;&#3604;&#3637;]]></description>
			<content:encoded><![CDATA[<p>&#3648;&#3611;&#3655;&#3609;&#3588;&#3619;&#3633;&#3657;&#3591;&#3649;&#3619;&#3585;&#3607;&#3637;&#3656;&#3607;&#3604;&#3626;&#3629;&#3610;&#3610;&#3621;&#3655;&#3629;&#3585;&#3592;&#3634;&#3585; Android client &#3619;&#3641;&#3657;&#3626;&#3638;&#3585;&#3623;&#3656;&#3634;&#3648;&#3586;&#3637;&#3618;&#3609;&#3652;&#3617;&#3656;&#3617;&#3633;&#3609;&#3626;&#3660;&#3648;&#3607;&#3656;&#3634;&#3610;&#3609; PC &#3649;&#3605;&#3656;&#3649;&#3621;&#3585;&#3617;&#3634;&#3604;&#3657;&#3623;&#3618;&#3588;&#3623;&#3634;&#3617;&#3626;&#3632;&#3604;&#3623;&#3585; &#3619;&#3632;&#3627;&#3623;&#3656;&#3634;&#3591;&#3607;&#3637;&#3656;&#3648;&#3586;&#3637;&#3618;&#3609; &#3609;&#3629;&#3609;&#3648;&#3621;&#3656;&#3609;&#3585;&#3633;&#3610;&#3621;&#3641;&#3585; &#3626;&#3610;&#3634;&#3618;&#3654; &#3648;&#3586;&#3637;&#3618;&#3609;&#3618;&#3634;&#3623;&#3654;&#3607;&#3656;&#3634;&#3607;&#3634;&#3591;&#3592;&#3632;&#3648;&#3627;&#3609;&#3639;&#3656;&#3629;&#3618; &#3652;&#3604;&#3657;&#3617;&#3639;&#3629;&#3606;&#3639;&#3629;&#3592;&#3629;&#3651;&#3627;&#3597;&#3656;&#3654;&#3585;&#3623;&#3656;&#3634;&#3609;&#3637;&#3657;&#3627;&#3609;&#3656;&#3629;&#3618;&#3588;&#3591;&#3604;&#3637;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kowito.com/2010/02/20/wp-android/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>CodeAndroid</title>
		<link>http://www.kowito.com/2009/11/29/codeandroid/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=codeandroid</link>
		<comments>http://www.kowito.com/2009/11/29/codeandroid/#comments</comments>
		<pubDate>Sun, 29 Nov 2009 06:42:43 +0000</pubDate>
		<dc:creator>Kowit</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[HTC]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Mobile Phone]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://www.kowito.com/?p=116</guid>
		<description><![CDATA[Entry แรกหลังจากกู้ Server กลับมาได้จากอาการ &#8220;โคอาล่าเป็นพิษ&#8221; หลังจากไป meeting ที่ SIS  มาได้ข้อสรุบว่า HTC ต้องการให้เหล่า Developer สร้าง App สำหรับคนไทยขึ้นมา เพื่อขยายฐานผู้ใช้ Android ในเมืองไทย ส่งผลต่อเนื่องถึงยอดขายของ HTC ในทางอ้อม หากมองในตอนนี้เห็นได้ชัดว่า  Android ไม่ได้เปรี้ยงปร้างเท่าที่ควรจะเป็น ส่วนหนึ่งคงเป็นเพราะมันไม่หล่อเหมือน  iPhone อันนี้เรื่องจริงต้องยอมรับ แต่ในระยะยาวก็ไม่แน่ เพราะ Android Open source และยังมี Google หนุนหลังเต็มที่ สำหรับตัวผมแล้วติดว่า โทรศัพท์ที่ใช้ Android ส่วนใหญ่ราคาไกล้เคียงกับ iPhone แต่ความสามารถนั้นสู้ไม่ได้ อย่างน้อยก็มัลติทัช แล้วก็เอฟเฟกต์วิ้งๆทั้งหลายแหล่ จะมีดีกว่าก็เพียงแต่มันไม่ยุ่งยาก จุกจิกกวนใจเหมือน iPhone ทำอะไรนิดอะไรหน่อยก็หมดประกัน ถ้า HTC Magic ราคาลงมาสัก 5000 อย่างนี้จะเลือกง่ายขึ้นเยอะ ด้าน [...]]]></description>
			<content:encoded><![CDATA[<p>Entry แรกหลังจากกู้ Server กลับมาได้จากอาการ &#8220;โคอาล่าเป็นพิษ&#8221;</p>
<p>หลังจากไป meeting ที่ SIS  มาได้ข้อสรุบว่า HTC ต้องการให้เหล่า Developer สร้าง App สำหรับคนไทยขึ้นมา เพื่อขยายฐานผู้ใช้ Android ในเมืองไทย ส่งผลต่อเนื่องถึงยอดขายของ HTC ในทางอ้อม</p>
<p>หากมองในตอนนี้เห็นได้ชัดว่า  Android ไม่ได้เปรี้ยงปร้างเท่าที่ควรจะเป็น ส่วนหนึ่งคงเป็นเพราะมันไม่หล่อเหมือน  iPhone อันนี้เรื่องจริงต้องยอมรับ แต่ในระยะยาวก็ไม่แน่ เพราะ Android Open source และยังมี Google หนุนหลังเต็มที่</p>
<p>สำหรับตัวผมแล้วติดว่า โทรศัพท์ที่ใช้ Android ส่วนใหญ่ราคาไกล้เคียงกับ iPhone แต่ความสามารถนั้นสู้ไม่ได้ อย่างน้อยก็มัลติทัช แล้วก็เอฟเฟกต์วิ้งๆทั้งหลายแหล่ จะมีดีกว่าก็เพียงแต่มันไม่ยุ่งยาก จุกจิกกวนใจเหมือน iPhone ทำอะไรนิดอะไรหน่อยก็หมดประกัน ถ้า HTC Magic ราคาลงมาสัก 5000 อย่างนี้จะเลือกง่ายขึ้นเยอะ</p>
<p>ด้าน Developer อันนี้ชัดเชน Android มาพร้อม Java ของดีที่ผมไม่เคยชอบ 8-( แต่ยังพอมีทาง ตอนนี้ผมมองไปที่ <a style="text-decoration: none; color: #000000;" href="http://code.google.com/p/android-scripting/">android-scripting</a> หวังว่ามันจะใช้ Python ได้เข้าท่า ตอนนี้ขอเวลาไปลองก่อน ได้ผลยังไงจะมารายงาน</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kowito.com/2009/11/29/codeandroid/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>รถไฟฟ้ามาหานะเธอ การตลาดบน Social network และละครไทย</title>
		<link>http://www.kowito.com/2009/10/20/%e0%b8%a3%e0%b8%96%e0%b9%84%e0%b8%9f%e0%b8%9f%e0%b9%89%e0%b8%b2%e0%b8%a1%e0%b8%b2%e0%b8%ab%e0%b8%b2%e0%b8%99%e0%b8%b0%e0%b9%80%e0%b8%98%e0%b8%ad-%e0%b8%81%e0%b8%b2%e0%b8%a3%e0%b8%95%e0%b8%a5%e0%b8%b2/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=%25e0%25b8%25a3%25e0%25b8%2596%25e0%25b9%2584%25e0%25b8%259f%25e0%25b8%259f%25e0%25b9%2589%25e0%25b8%25b2%25e0%25b8%25a1%25e0%25b8%25b2%25e0%25b8%25ab%25e0%25b8%25b2%25e0%25b8%2599%25e0%25b8%25b0%25e0%25b9%2580%25e0%25b8%2598%25e0%25b8%25ad-%25e0%25b8%2581%25e0%25b8%25b2%25e0%25b8%25a3%25e0%25b8%2595%25e0%25b8%25a5%25e0%25b8%25b2</link>
		<comments>http://www.kowito.com/2009/10/20/%e0%b8%a3%e0%b8%96%e0%b9%84%e0%b8%9f%e0%b8%9f%e0%b9%89%e0%b8%b2%e0%b8%a1%e0%b8%b2%e0%b8%ab%e0%b8%b2%e0%b8%99%e0%b8%b0%e0%b9%80%e0%b8%98%e0%b8%ad-%e0%b8%81%e0%b8%b2%e0%b8%a3%e0%b8%95%e0%b8%a5%e0%b8%b2/#comments</comments>
		<pubDate>Tue, 20 Oct 2009 15:13:32 +0000</pubDate>
		<dc:creator>Kowit</dc:creator>
				<category><![CDATA[หนัง]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[หนังไทย]]></category>

		<guid isPermaLink="false">http://www.kowito.com/2009/10/20/%e0%b8%a3%e0%b8%96%e0%b9%84%e0%b8%9f%e0%b8%9f%e0%b9%89%e0%b8%b2%e0%b8%a1%e0%b8%b2%e0%b8%ab%e0%b8%b2%e0%b8%99%e0%b8%b0%e0%b9%80%e0%b8%98%e0%b8%ad-%e0%b8%81%e0%b8%b2%e0%b8%a3%e0%b8%95%e0%b8%a5%e0%b8%b2/</guid>
		<description><![CDATA[เมื่อวานนี้พาภรรยาสุดรัก ไปธุระที่งานหนังสือ(มีบ่อยจนขี้เกียจจำชื่องาน) สุดท้ายก่อนกลับแวะไปดูรถไฟฟ้ามาหานะเธอจนได้ หลังจากที่กระแสบน twitter พูดถึงหนังเรื่องนี้บ่อยเหลือเกิน ในที่สุดก็ตัดสินใจไปดูหนังเรื่องนี้ โดยไม่ได้อ่านริวิว หรือดูหนังตัวอย่างมาก่อน ไม่ได้คาดหวังอะไรมาก ตัวหนังทำออกมาได้ตลาดมาก คือคนดูอยากดูอะไร ก็ทำออกมาอย่างนั้น ไม่ได้หมายความว่าไม่ดี แต่รู้สึกได้ว่าขาดความคิดสร้างสรรค์ไปหน่อย หนังเป็นเรื่องรักกุ๊กกิ้กของคนธรรมดา&#160; ที่พอดูไปแล้วอินง่ายๆเลยว่า นี่กูนี่หว่า ขายความน่ารักจนดูเป็นเอกลักษณ์ของค่ายนี้ไปเสียแล้ว แต่หนังก็ยังเรียกเสียงฮาจากความเปิ่นของตัวเอกในเรื่องได้เรื่อยๆ ถ้าเทียบกับหนังเรื่องก่อนๆของค่ายนี้ ผมให้ 7/10 เรื่องหนึ่งที่ผมคิดว่า&#160; GTH ทำการบ้านมาดี คือการคลาดบน twitter หลายๆครั้งที่ผมรู้สึกรำคาญกับโฆษณาของ GTH บน twitter แต่ครั้งนี้เรียกว่าแตกต่าง การบอกปากต่อปาก เกี่ยวกับหนังเรื่องนี้ ทำให้ผมตัดสินใจไปดู โดยไม่ลังเลแม้แต่น้อย และการที่เปิดช่องทางการตลาดบน twitter แบบนี้ ทำให้ผม “เข้าถึง” ทีมงาน มากกว่ารูปแบบเก่าๆ ดูหนังจนจบแล้ว กลับมาบ้าน อ่านริวิวบนบล็อกหลายๆที่ เพิ่งรู้ว่าหนังล้อเสตฟาน ผมคงดูละครน้อยไปจริงๆ lol ต้องขอบคุณ http://www.patsonic.com/movie/bangkok-traffic-love-story/]]></description>
			<content:encoded><![CDATA[<p>เมื่อวานนี้พาภรรยาสุดรัก ไปธุระที่งานหนังสือ(มีบ่อยจนขี้เกียจจำชื่องาน) สุดท้ายก่อนกลับแวะไปดูรถไฟฟ้ามาหานะเธอจนได้</p>
<p>หลังจากที่กระแสบน twitter พูดถึงหนังเรื่องนี้บ่อยเหลือเกิน ในที่สุดก็ตัดสินใจไปดูหนังเรื่องนี้ โดยไม่ได้อ่านริวิว หรือดูหนังตัวอย่างมาก่อน ไม่ได้คาดหวังอะไรมาก ตัวหนังทำออกมาได้ตลาดมาก คือคนดูอยากดูอะไร ก็ทำออกมาอย่างนั้น ไม่ได้หมายความว่าไม่ดี แต่รู้สึกได้ว่าขาดความคิดสร้างสรรค์ไปหน่อย หนังเป็นเรื่องรักกุ๊กกิ้กของคนธรรมดา&#160; ที่พอดูไปแล้วอินง่ายๆเลยว่า นี่กูนี่หว่า ขายความน่ารักจนดูเป็นเอกลักษณ์ของค่ายนี้ไปเสียแล้ว แต่หนังก็ยังเรียกเสียงฮาจากความเปิ่นของตัวเอกในเรื่องได้เรื่อยๆ ถ้าเทียบกับหนังเรื่องก่อนๆของค่ายนี้ ผมให้ 7/10</p>
<p>เรื่องหนึ่งที่ผมคิดว่า&#160; GTH ทำการบ้านมาดี คือการคลาดบน twitter หลายๆครั้งที่ผมรู้สึกรำคาญกับโฆษณาของ GTH บน twitter แต่ครั้งนี้เรียกว่าแตกต่าง การบอกปากต่อปาก เกี่ยวกับหนังเรื่องนี้ ทำให้ผมตัดสินใจไปดู โดยไม่ลังเลแม้แต่น้อย และการที่เปิดช่องทางการตลาดบน twitter แบบนี้ ทำให้ผม “เข้าถึง” ทีมงาน มากกว่ารูปแบบเก่าๆ </p>
<p>ดูหนังจนจบแล้ว กลับมาบ้าน อ่านริวิวบนบล็อกหลายๆที่ เพิ่งรู้ว่าหนังล้อเสตฟาน ผมคงดูละครน้อยไปจริงๆ lol ต้องขอบคุณ <a title="http://www.patsonic.com/movie/bangkok-traffic-love-story/" href="http://www.patsonic.com/movie/bangkok-traffic-love-story/">http://www.patsonic.com/movie/bangkok-traffic-love-story/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.kowito.com/2009/10/20/%e0%b8%a3%e0%b8%96%e0%b9%84%e0%b8%9f%e0%b8%9f%e0%b9%89%e0%b8%b2%e0%b8%a1%e0%b8%b2%e0%b8%ab%e0%b8%b2%e0%b8%99%e0%b8%b0%e0%b9%80%e0%b8%98%e0%b8%ad-%e0%b8%81%e0%b8%b2%e0%b8%a3%e0%b8%95%e0%b8%a5%e0%b8%b2/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>ติดตั้ง Postgres ลงบน Ubuntu 9.04 อย่างง่ายและรวดเร็ว</title>
		<link>http://www.kowito.com/2009/10/17/%e0%b8%95%e0%b8%b4%e0%b8%94%e0%b8%95%e0%b8%b1%e0%b9%89%e0%b8%87-postgres-%e0%b8%a5%e0%b8%87%e0%b8%9a%e0%b8%99-ubuntu-9-04-%e0%b8%ad%e0%b8%a2%e0%b9%88%e0%b8%b2%e0%b8%87%e0%b8%87%e0%b9%88%e0%b8%b2/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=%25e0%25b8%2595%25e0%25b8%25b4%25e0%25b8%2594%25e0%25b8%2595%25e0%25b8%25b1%25e0%25b9%2589%25e0%25b8%2587-postgres-%25e0%25b8%25a5%25e0%25b8%2587%25e0%25b8%259a%25e0%25b8%2599-ubuntu-9-04-%25e0%25b8%25ad%25e0%25b8%25a2%25e0%25b9%2588%25e0%25b8%25b2%25e0%25b8%2587%25e0%25b8%2587%25e0%25b9%2588%25e0%25b8%25b2</link>
		<comments>http://www.kowito.com/2009/10/17/%e0%b8%95%e0%b8%b4%e0%b8%94%e0%b8%95%e0%b8%b1%e0%b9%89%e0%b8%87-postgres-%e0%b8%a5%e0%b8%87%e0%b8%9a%e0%b8%99-ubuntu-9-04-%e0%b8%ad%e0%b8%a2%e0%b9%88%e0%b8%b2%e0%b8%87%e0%b8%87%e0%b9%88%e0%b8%b2/#comments</comments>
		<pubDate>Fri, 16 Oct 2009 18:34:46 +0000</pubDate>
		<dc:creator>Kowit</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[installation]]></category>
		<category><![CDATA[postgres]]></category>

		<guid isPermaLink="false">http://www.kowito.com/2009/10/17/%e0%b8%95%e0%b8%b4%e0%b8%94%e0%b8%95%e0%b8%b1%e0%b9%89%e0%b8%87-postgres-%e0%b8%a5%e0%b8%87%e0%b8%9a%e0%b8%99-ubuntu-9-04-%e0%b8%ad%e0%b8%a2%e0%b9%88%e0%b8%b2%e0%b8%87%e0%b8%87%e0%b9%88%e0%b8%b2/</guid>
		<description><![CDATA[ผมมีปัญหากับการติดตั้ง postgres มาตลอด เมื่อเปรียบเทียบกับ mysql แล้วพบว่ายุ่งยากมาก ลองใช้วิธีต่อไปนี้ทำให้ติดตั้ง postgres ภายในสามนาที!! sudo apt-get install postgresql pgadmin3 python-psycopg2 หลังจากรอขั้นตอนการติดตั้งจนเสร็จเรียบร้อยแล้วให้ตั้งรหัสผ่านให้กับ user postgres เพื่อไปติดตั้งส่วนอื่นๆต่อไปดังนี้ sudo -u postgres psql postgres=# \password postgres postgres=# \q ได้รหัสผ่านของ user postgres แล้ว!! อย่าลืมแก้ไฟล์ sudo nano /etc/postgresql/8.3/main/pg_hba.conf ตรงบรรทัด # "local" is for Unix domain socket connections only local all all ident sameuser # IPv4 local connections: [...]]]></description>
			<content:encoded><![CDATA[<p>ผมมีปัญหากับการติดตั้ง postgres มาตลอด เมื่อเปรียบเทียบกับ mysql แล้วพบว่ายุ่งยากมาก ลองใช้วิธีต่อไปนี้ทำให้ติดตั้ง postgres ภายในสามนาที!!</p>
<pre class="shell">sudo apt-get install postgresql pgadmin3 python-psycopg2</pre>
<p>หลังจากรอขั้นตอนการติดตั้งจนเสร็จเรียบร้อยแล้วให้ตั้งรหัสผ่านให้กับ user postgres เพื่อไปติดตั้งส่วนอื่นๆต่อไปดังนี้</p>
<pre class="shell">
sudo -u postgres psql

postgres=# \password postgres
postgres=# \q
</pre>
<p>ได้รหัสผ่านของ user postgres แล้ว!!<br />
อย่าลืมแก้ไฟล์ sudo nano /etc/postgresql/8.3/main/pg_hba.conf ตรงบรรทัด</p>
<pre>
# "local" is for Unix domain socket connections only
local   all         all                               ident sameuser
# IPv4 local connections:
host    all         all         127.0.0.1/32          md5
# IPv6 local connections:
host    all         all         ::1/128               md5
</pre>
<p>เป็น</p>
<pre>
# "local" is for Unix domain socket connections only
local   all         all                               md5
# IPv4 local connections:
host    all         all         127.0.0.1/32          md5
# IPv6 local connections:
host    all         all         ::1/128               md5
</pre>
<p>เมื่อได้รหัสผ่านก็สามารถ login ผ่าน pgadmin ได้แล้ว เร็วใหม?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kowito.com/2009/10/17/%e0%b8%95%e0%b8%b4%e0%b8%94%e0%b8%95%e0%b8%b1%e0%b9%89%e0%b8%87-postgres-%e0%b8%a5%e0%b8%87%e0%b8%9a%e0%b8%99-ubuntu-9-04-%e0%b8%ad%e0%b8%a2%e0%b9%88%e0%b8%b2%e0%b8%87%e0%b8%87%e0%b9%88%e0%b8%b2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ovid, Amores I, 2</title>
		<link>http://www.kowito.com/2009/10/08/ovid-amores-i-2/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=ovid-amores-i-2</link>
		<comments>http://www.kowito.com/2009/10/08/ovid-amores-i-2/#comments</comments>
		<pubDate>Thu, 08 Oct 2009 12:32:11 +0000</pubDate>
		<dc:creator>Kowit</dc:creator>
				<category><![CDATA[สบายใจ]]></category>
		<category><![CDATA[poem]]></category>

		<guid isPermaLink="false">http://www.kowito.com/2009/10/08/ovid-amores-i-2/</guid>
		<description><![CDATA[sic erit; haeserunt tenues in corde sagittae, et possessa ferus pectora versat Amor. Cedimus, an subitum luctando accendimus ignem? cedamus! leve fit, quod bene fertur, onus. Thus it will be; slender arrows are lodged in my heart, and Love vexes the chest that it has seized Shall I surrender or stir up the sudden flame [...]]]></description>
			<content:encoded><![CDATA[<p>sic erit; haeserunt tenues in corde sagittae,   <br />et possessa ferus pectora versat Amor.    <br />Cedimus, an subitum luctando accendimus ignem?    <br />cedamus! leve fit, quod bene fertur, onus.    </p>
<p>Thus it will be; slender arrows are lodged in my heart,   <br />and Love vexes the chest that it has seized    <br />Shall I surrender or stir up the sudden flame by fighting it?    <br />I will surrender &#8211; a burden becomes light when it is carried willingly.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kowito.com/2009/10/08/ovid-amores-i-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>เด็กหญิงกานต์ธีรา</title>
		<link>http://www.kowito.com/2009/10/02/%e0%b9%80%e0%b8%94%e0%b9%87%e0%b8%81%e0%b8%ab%e0%b8%8d%e0%b8%b4%e0%b8%87%e0%b8%81%e0%b8%b2%e0%b8%99%e0%b8%95%e0%b9%8c%e0%b8%98%e0%b8%b5%e0%b8%a3%e0%b8%b2/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=%25e0%25b9%2580%25e0%25b8%2594%25e0%25b9%2587%25e0%25b8%2581%25e0%25b8%25ab%25e0%25b8%258d%25e0%25b8%25b4%25e0%25b8%2587%25e0%25b8%2581%25e0%25b8%25b2%25e0%25b8%2599%25e0%25b8%2595%25e0%25b9%258c%25e0%25b8%2598%25e0%25b8%25b5%25e0%25b8%25a3%25e0%25b8%25b2</link>
		<comments>http://www.kowito.com/2009/10/02/%e0%b9%80%e0%b8%94%e0%b9%87%e0%b8%81%e0%b8%ab%e0%b8%8d%e0%b8%b4%e0%b8%87%e0%b8%81%e0%b8%b2%e0%b8%99%e0%b8%95%e0%b9%8c%e0%b8%98%e0%b8%b5%e0%b8%a3%e0%b8%b2/#comments</comments>
		<pubDate>Fri, 02 Oct 2009 02:58:35 +0000</pubDate>
		<dc:creator>Kowit</dc:creator>
				<category><![CDATA[ครอบครัว]]></category>

		<guid isPermaLink="false">http://www.kowito.com/2009/10/02/%e0%b9%80%e0%b8%94%e0%b9%87%e0%b8%81%e0%b8%ab%e0%b8%8d%e0%b8%b4%e0%b8%87%e0%b8%81%e0%b8%b2%e0%b8%99%e0%b8%95%e0%b9%8c%e0%b8%98%e0%b8%b5%e0%b8%a3%e0%b8%b2/</guid>
		<description><![CDATA[หลังจากลุ้นมาเก้าเดือน ในที่สุดลูกสาวผมก็ออกมาลืมตาดูโลก ในตอนเช้าวันอาทิตย์ที่ 20 กันยายน 2552 ( 20.09.2009) เวลา 0620 คุณแม่พลังถึกเริ่มปวดท้องตั้งแต่คืนวันเสาร์ประมาณสามสี่ทุ่ม ผมก็บอกว่า “ไปโรงพยาบาลใหม เผื่อจะคลอด ระหว่างรอจะได้ไปดูบอลที่โรงพยาบาลด้วย” เมียแสนรักก็ถามว่า “ตกลงเป็นห่วงลูกเมียหรือว่าบอล” รู้ทันอีก จนกระทั่งตีสาม เมียผมก็ปลุกอีกที เพราะว่าแน่ใจแล้วว่าอาการปวดนั้นไม่น่าจะเป็นเพราะว่าปวดขี้แน่ ก็เลยตัดสินใจกันว่า คงต้องไปโรงพยาบาลกัน เมียผมคิดว่าหมออาจจะเหม็น เลยขอตัวอาบน้ำสระผม ล้างหน้าแปรงฟันก่อน เดี๋ยวจะไม่สวย เมียผมอารมณ์ดี ตอนที่เรียกแท็กซี่ เค้าคงกลัวจะคลอดบนรถ ก็เลยขับค่อนข้างเร็ว เมียผมบอกไปว่า “ใจเย็นๆพี่ ไม่รีบ” &#160; พอไปถึงโรงพยาบาลปรากฏว่าปากมดลูกเปิดไปแล้วเจ็ดเซ็นต์ ก็เลยเข็นเข้าห้องคลอดกันเดี๋ยวนั้นเลย ผมก็ไปจัดการเรื่องเอกสารกับจองห้องกับทางโรงพยาบาล กว่าจะเสร็จแม่ผมก็มา เลยขึ้นไปหน้าห้องคลอดพร้อมกัน ได้ยินเสียงเด็กร้องมาจากห้องคลอด แม่ผมหันมาถามผมว่า “ลูกใครน่ะ” แล้วทำหน้ายิ้มๆ ผมก็พยายามแอบแง้มประตูไปดูว่าตกลงลูกผมหรือเปล่า&#160; พยาบาลเข็นเด็กออกมาปรากฏว่าใช่จริงๆ บนหน้าผากประทับตราว่า “สำเนาถูกต้อง” หน้าลอกพ่อมันมาเด๊ะๆ โดยเฉพาะจมูกแหมบๆ lol]]></description>
			<content:encoded><![CDATA[<p>หลังจากลุ้นมาเก้าเดือน ในที่สุดลูกสาวผมก็ออกมาลืมตาดูโลก ในตอนเช้าวันอาทิตย์ที่ 20 กันยายน 2552 ( 20.09.2009) เวลา 0620 </p>
<p>คุณแม่พลังถึกเริ่มปวดท้องตั้งแต่คืนวันเสาร์ประมาณสามสี่ทุ่ม ผมก็บอกว่า “ไปโรงพยาบาลใหม เผื่อจะคลอด ระหว่างรอจะได้ไปดูบอลที่โรงพยาบาลด้วย” เมียแสนรักก็ถามว่า “ตกลงเป็นห่วงลูกเมียหรือว่าบอล” รู้ทันอีก</p>
<p>จนกระทั่งตีสาม เมียผมก็ปลุกอีกที เพราะว่าแน่ใจแล้วว่าอาการปวดนั้นไม่น่าจะเป็นเพราะว่าปวดขี้แน่ ก็เลยตัดสินใจกันว่า คงต้องไปโรงพยาบาลกัน เมียผมคิดว่าหมออาจจะเหม็น เลยขอตัวอาบน้ำสระผม ล้างหน้าแปรงฟันก่อน เดี๋ยวจะไม่สวย เมียผมอารมณ์ดี ตอนที่เรียกแท็กซี่ เค้าคงกลัวจะคลอดบนรถ ก็เลยขับค่อนข้างเร็ว เมียผมบอกไปว่า “ใจเย็นๆพี่ ไม่รีบ”</p>
<p>&#160;</p>
<p>พอไปถึงโรงพยาบาลปรากฏว่าปากมดลูกเปิดไปแล้วเจ็ดเซ็นต์ ก็เลยเข็นเข้าห้องคลอดกันเดี๋ยวนั้นเลย ผมก็ไปจัดการเรื่องเอกสารกับจองห้องกับทางโรงพยาบาล กว่าจะเสร็จแม่ผมก็มา เลยขึ้นไปหน้าห้องคลอดพร้อมกัน ได้ยินเสียงเด็กร้องมาจากห้องคลอด แม่ผมหันมาถามผมว่า “ลูกใครน่ะ” แล้วทำหน้ายิ้มๆ ผมก็พยายามแอบแง้มประตูไปดูว่าตกลงลูกผมหรือเปล่า&#160; พยาบาลเข็นเด็กออกมาปรากฏว่าใช่จริงๆ บนหน้าผากประทับตราว่า “สำเนาถูกต้อง” หน้าลอกพ่อมันมาเด๊ะๆ โดยเฉพาะจมูกแหมบๆ lol</p>
<p>
<a href="http://new.kowito.com/wp-content/uploads/2009/10/karnteera011.jpg" rel="lightbox"><img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="karnteera01" border="0" alt="karnteera01" src="http://new.kowito.com/wp-content/uploads/2009/10/karnteera01_thumb1.jpg" width="244" height="148" /></a></p>
<p><a href="http://new.kowito.com/wp-content/uploads/2009/10/karnteera021.jpg" rel="lightbox"><img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="karnteera02" border="0" alt="karnteera02" src="http://new.kowito.com/wp-content/uploads/2009/10/karnteera02_thumb1.jpg" width="244" height="148" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.kowito.com/2009/10/02/%e0%b9%80%e0%b8%94%e0%b9%87%e0%b8%81%e0%b8%ab%e0%b8%8d%e0%b8%b4%e0%b8%87%e0%b8%81%e0%b8%b2%e0%b8%99%e0%b8%95%e0%b9%8c%e0%b8%98%e0%b8%b5%e0%b8%a3%e0%b8%b2/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>ตกงาน เมียใกล้คลอด</title>
		<link>http://www.kowito.com/2009/09/05/%e0%b8%95%e0%b8%81%e0%b8%87%e0%b8%b2%e0%b8%99-%e0%b9%80%e0%b8%a1%e0%b8%b5%e0%b8%a2%e0%b9%83%e0%b8%81%e0%b8%a5%e0%b9%89%e0%b8%84%e0%b8%a5%e0%b8%ad%e0%b8%94/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=%25e0%25b8%2595%25e0%25b8%2581%25e0%25b8%2587%25e0%25b8%25b2%25e0%25b8%2599-%25e0%25b9%2580%25e0%25b8%25a1%25e0%25b8%25b5%25e0%25b8%25a2%25e0%25b9%2583%25e0%25b8%2581%25e0%25b8%25a5%25e0%25b9%2589%25e0%25b8%2584%25e0%25b8%25a5%25e0%25b8%25ad%25e0%25b8%2594</link>
		<comments>http://www.kowito.com/2009/09/05/%e0%b8%95%e0%b8%81%e0%b8%87%e0%b8%b2%e0%b8%99-%e0%b9%80%e0%b8%a1%e0%b8%b5%e0%b8%a2%e0%b9%83%e0%b8%81%e0%b8%a5%e0%b9%89%e0%b8%84%e0%b8%a5%e0%b8%ad%e0%b8%94/#comments</comments>
		<pubDate>Sat, 05 Sep 2009 15:38:13 +0000</pubDate>
		<dc:creator>Kowit</dc:creator>
				<category><![CDATA[ทั่วไป]]></category>
		<category><![CDATA[บ่น]]></category>

		<guid isPermaLink="false">http://www.kowito.com/2009/09/05/%e0%b8%95%e0%b8%81%e0%b8%87%e0%b8%b2%e0%b8%99-%e0%b9%80%e0%b8%a1%e0%b8%b5%e0%b8%a2%e0%b9%83%e0%b8%81%e0%b8%a5%e0%b9%89%e0%b8%84%e0%b8%a5%e0%b8%ad%e0%b8%94/</guid>
		<description><![CDATA[ตกงานมาได้เดือนกว่าๆแล้ว ยังไม่ได้ตั้งใจหางานใหม่เสียที เพราะว่าอยากทำอะไรหลายๆอย่างให้เรียบร้อย ช่วงนี้กินเงินทดแทนประกันสังคม เดือนละ 7500 ประทังชีวิตไปก่อน จะได้มีเวลาอยู่กับลูก]]></description>
			<content:encoded><![CDATA[<p>ตกงานมาได้เดือนกว่าๆแล้ว ยังไม่ได้ตั้งใจหางานใหม่เสียที เพราะว่าอยากทำอะไรหลายๆอย่างให้เรียบร้อย ช่วงนี้กินเงินทดแทนประกันสังคม เดือนละ 7500 ประทังชีวิตไปก่อน จะได้มีเวลาอยู่กับลูก</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kowito.com/2009/09/05/%e0%b8%95%e0%b8%81%e0%b8%87%e0%b8%b2%e0%b8%99-%e0%b9%80%e0%b8%a1%e0%b8%b5%e0%b8%a2%e0%b9%83%e0%b8%81%e0%b8%a5%e0%b9%89%e0%b8%84%e0%b8%a5%e0%b8%ad%e0%b8%94/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Django template language</title>
		<link>http://www.kowito.com/2009/07/31/the-django-template-language/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=the-django-template-language</link>
		<comments>http://www.kowito.com/2009/07/31/the-django-template-language/#comments</comments>
		<pubDate>Thu, 30 Jul 2009 17:58:21 +0000</pubDate>
		<dc:creator>Kowit</dc:creator>
				<category><![CDATA[Django]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[DJango Template]]></category>
		<category><![CDATA[Template]]></category>

		<guid isPermaLink="false">http://www.kowito.com/?p=83</guid>
		<description><![CDATA[เกี่ยวกับเอกสารนี้ เอกสารนี้อธิบายรายละเอียดเกี่ยวกับไวยากรณ์ของ Django Template . หรือมีข้อสงสัยหรือปัญหาการใช้งาน โปรดอ่าน The Django template language: For Python programmers. Django template นั้นออกแบบมาอย่างสมดุลระหว่างความสามารถและความง่ายดาย. มันถูกออกแบบมาให้สามารถทำงานกับ HTML ได้สะดวก นั่นรวมถึง Text-Based อื่นๆด้วย. หลักการ ถ้าคุณเคยมีพื้นฐานการเขียนโปรแกรมที่ฝังโค้ดใน HTML แล้ว คุณจะรู้สึกเหมือนได้กลับบ้านอีกครั้ง การใช้ Django template จะเป็นอะไรที่ง่ายดาย แต่ถ้าหากคุณหวังว่าจะเห็นโค้ด Python ใน Django template แล้ว ต้องขอแสดงความเสียใจที่ทำให้ผิดหวัง The Django template มีฟังชั่นเหมือนกับภาษาโปรแกรมทั่วไป มี if tags เพื่อตรวจสอบเงื่อนไข มี for loop เอาไว้วนให้ปวดหัวเล่น Django template จะรันเพียง template [...]]]></description>
			<content:encoded><![CDATA[<blockquote>
<h4>เกี่ยวกับเอกสารนี้</h4>
<p>เอกสารนี้อธิบายรายละเอียดเกี่ยวกับไวยากรณ์ของ Django Template . หรือมีข้อสงสัยหรือปัญหาการใช้งาน โปรดอ่าน <a href="http://docs.djangoproject.com/en/dev/ref/templates/api/#ref-templates-api">The Django template language: For Python programmers.</a></p></blockquote>
<p>Django template นั้นออกแบบมาอย่างสมดุลระหว่างความสามารถและความง่ายดาย. มันถูกออกแบบมาให้สามารถทำงานกับ HTML ได้สะดวก นั่นรวมถึง Text-Based อื่นๆด้วย.</p>
<blockquote>
<h4>หลักการ</h4>
<p>ถ้าคุณเคยมีพื้นฐานการเขียนโปรแกรมที่ฝังโค้ดใน HTML แล้ว คุณจะรู้สึกเหมือนได้กลับบ้านอีกครั้ง การใช้ Django template จะเป็นอะไรที่ง่ายดาย แต่ถ้าหากคุณหวังว่าจะเห็นโค้ด Python ใน Django template แล้ว ต้องขอแสดงความเสียใจที่ทำให้ผิดหวัง<br />
The Django template มีฟังชั่นเหมือนกับภาษาโปรแกรมทั่วไป มี if tags เพื่อตรวจสอบเงื่อนไข มี for loop เอาไว้วนให้ปวดหัวเล่น Django template จะรันเพียง template tag และจะไม่รัน Python code โดยเด็ดขาด</p></blockquote>
<p><span id="more-83"></span></p>
<h3>Templates</h3>
<p>Template เป็นเพียงไฟล์ text  สามารถสร้างในรูปแบบใดก็ได้ (HTML, XML, CSV, etc.).<br />
มันจะประกอปด้วย ตัวแปร, ที่จะถูกแทนที่เมื่อ template ถูกสร้างขึ้นมา และยังมี tags ที่ทำหน้าที่ควบคุม.<br />
ข้างล่างนี่คือตัวอย่างง่ายๆ</p>
<pre name="code" class="python">
{% extends "base_generic.html" %}
{% block title %}{{ section.title }}{% endblock %}
{% block content %}
&lt;h1&gt;{{ section.title }}&lt;/h1&gt;
{% for story in story_list %}
&lt;h2&gt;
&lt;a href="{{ story.get_absolute_url }}"&gt;
{{ story.headline|upper }}
&lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;{{ story.tease|truncatewords:"100" }}&lt;/p&gt;
{% endfor %}
{% endblock %}
</pre>
<h3>Variables</h3>
<p>ตัวแปรจะมีหน้าตาประมาณนี้: {{ variable }}. เมื่อ template เจอตัวแปรนี้ จะแทนที่ตัวแปรด้วยค่าที่ได้รับมา ใช้จุดคั่นตัวแปร (.) เพื่อเข้าถึงแอททริบิวต์ในตัวแปร ยกตัวอย่างเช่น, {{ section.title }} จะถูกแทนที่ด้วยค่า title ซึ่งเป็นแอททริบิวต์ของออปเจ็กต์ section.<br />
ถ้าไม่ได้กำหนดค่าให้ หรือไม่พบตัวแปร มันจะถูกแทนที่ด้วย EMPLATE_STRING_IF_INVALID ซึ่งโดยปกติจะเป็น &#8221; (สตริงว่าง) โดยปริยาย.</p>
<h3>Filters</h3>
<p>คุณสามารถแก้ไขตัวแปรสำหรับการแสดงผลโดยการใช้ ตัวกรอง. Filters จะมีหน้าตาแบบนี้: {{ name|lower }} จะแสดงค่าของ name เป็นตัวอักษรแบบพิมพ์เล็ก ฟิลเตอร์สามารถรวมกันหลายๆอันได้แบบนี้. {{ text|escape|linebreaks }} ฟิลเตอร์นี้จะแปลง text เป็น escape character แล้วค่อยใส่ &lt;p&gt; tags เข้าไปภายหลัง. ฟิลเตอร์บางตัวจะมีอาร์กิวเมนต์</p>
<p>เช่น : {{ bio|truncatewords:30 }}. อันนี้จะแสดง 30 ตัวอักษรแรกของ bio เป็นต้น</p>
<p>ฟิลเตอร์ที่ถายในมีช่องว่างต้องเติมลูกน้ำ(”); ตัวอย่างเช่น {{ list|join:&#8221;, &#8221; }}.<br />
default<br />
ฟิลเตอร์นี้จะแสดงค่าปริยายที่เรากำหนด หากตัวแปรไม่มีค่า<br />
เช่น:<br />
{{ value|default:&#8221;nothing&#8221; }}<br />
ถ้า value ไม่มีค่าอะไรจะแสดง &#8220;nothing&#8221;.<br />
length<br />
จะแสดงความยาวของตัวแปร ใช้ได้ทั้ง list และ string ;<br />
เช่น:<br />
{{ value|length }}<br />
ถ้า value เป็น ['a', 'b', 'c', 'd'], output จะเป็น 4.</p>
<h3>Tags</h3>
<p>Tags จะหน้าตาแบบนี้: {% tag %}. Tags จะซับซ้อนกว่าตัวแปรนิดนึง: tag บางอย่างจะสร้าง text outpu. Tag บางอย่างให้ควบคุมโปรแกรม tag ส่วนมากต้องมีจุดเริ่มต้นและจุดจบ (i.e. {% tag %} &#8230; tag contents &#8230; {% endtag %}).<br />
for<br />
tag นี้เอาไว้สร้าง loop ซึงแปลว่าloop ก็คือ loop ไม่รู้จะอธิบายยังไง &#8211; -” ดูตัวอย่างอาจจะหายงง<br />
athlete_list:<br />
&lt;ul&gt;<br />
{% for athlete in athlete_list %}<br />
&lt;li&gt;{{ athlete.name }}&lt;/li&gt;<br />
{% endfor %}<br />
&lt;/ul&gt;<br />
if and else<br />
อันนี้คือ if else ธรรมดามาก มีทุกภาษา แต่ Django จะทะลึ่งนิดนึง คือจะไม่เปรียบเทียบกับอะไรเลย จะตรวจที่ตัวแปรเลยว่ามีค่า &#8220;True” หรือเปล่า ถ้าไม่มีก็ข้ามไป **ระวัง ถ้า value มีอะไรอยู่ข้างใน tag  นี้จะมองเป็น &#8220;True” เสมอ ยกเว้นมันมีค่า &#8220;False” **<br />
{% if athlete_list %}<br />
Number of athletes: {{ athlete_list|length }}<br />
{% else %}<br />
No athletes.<br />
{% endif %}<br />
จากตัวอย่างข้างบน , ถ้า athlete_list ไม่ว่างหรือไม่ใช่ “False ” จะแสดง {{ athlete_list|length }}.<br />
ifequal และ ifnotequal<br />
แสดงบางอย่างถ้าอากิวเมนต์ทั้งสองตัวเท่ากัน.<br />
ลองดูตัวอย่าง:<br />
{% ifequal athlete.name coach.name %}<br />
&#8230;<br />
{% endifequal %}<br />
หรือ:<br />
{% ifnotequal athlete.name &#8220;Joe&#8221; %}<br />
&#8230;<br />
{% endifnotequal %}<br />
block และ extends<br />
สร้าง template inheritance (อ่านด้านล่าง), ช่วยให้งานง่ายขึ้นเยอะ เราสามารถแบ่ง template เป็นชิ้นย่อยๆได้.</p>
<h3>Comments</h3>
<p>คอมเม้นในโปรแกรม คงไม่ต้องอธิบายกันให้มากความ: {# #}.<br />
ตัวอย่าง, template  นี้จะแสดง &#8216;hello&#8217;:<br />
{# greeting #}hello<br />
น่าเสียดายว่ามันใช้ได้บรรทัดเดียว หากขี้เกียจกดหลายทีให้ใช้ {% comment %} และ {% endcomment %}</p>
<h3>Template inheritance</h3>
<p>ไม่ต้องประหลาดใจว่า &#8220;เทมเพลตมรดก” (ลองดู google translate แล้วจะพบว่ามีฮากว่านี้) คืออะไร มันคือการสืบทอดคุณสมบัติของเทมเพลต มันสามารถช่วยจัดการสร้างโครงสร้างของหน้าเว็บ ด้วยการใช้ tag {%block name%}&#8230;{%endblock%} คุณมาสามารถเพิ่มเติมอะไรก็ได้ตรงกลางระหว่าง block<br />
เพื่อให้ง่ายต่อการเข้าใจเทมเพลทมรดกโดยเริ่มต้นด้วยตัวอย่าง:<br />
&lt;!DOCTYPE html PUBLIC &#8220;-//W3C//DTD XHTML 1.0 Transitional//EN&#8221;<br />
&#8220;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&#8221;&gt;<br />
&lt;html xmlns=&#8221;http://www.w3.org/1999/xhtml&#8221; xml:lang=&#8221;en&#8221; lang=&#8221;en&#8221;&gt;<br />
&lt;head&gt;<br />
&lt;link rel=&#8221;stylesheet&#8221; href=&#8221;style.css&#8221; /&gt;<br />
&lt;title&gt;{% block title %}My amazing site{% endblock %}&lt;/title&gt;<br />
&lt;/head&gt;<br />
&lt;body&gt;<br />
&lt;div id=&#8221;sidebar&#8221;&gt;<br />
{% block sidebar %}<br />
&lt;ul&gt;<br />
&lt;li&gt;&lt;a href=&#8221;/&#8221;&gt;Home&lt;/a&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;a href=&#8221;/blog/&#8221;&gt;Blog&lt;/a&gt;&lt;/li&gt;<br />
&lt;/ul&gt;<br />
{% endblock %}<br />
&lt;/div&gt;<br />
&lt;div id=&#8221;content&#8221;&gt;<br />
{% block content %}{% endblock %}<br />
&lt;/div&gt;<br />
&lt;/body&gt;<br />
&lt;/html&gt;<br />
เราสร้าง template นี้โดยใช้ชื่อว่า base.html, เป็นโครงร่าง HTML ง่ายๆ แล้วเราค่อยสร้าง template&#8217;s ต่อมาโดยการสืบทอด template&#8217;s นี้<br />
ในตัวอย่างนี้, {% block %} กำหนด block ของ child template&#8217;s ไว้สามอัน เราสามารถเพิ่มเติมได้โดยยังคงโครงสร้างของ template เดิมไว้<br />
child template อาจจะหน้าตาแบบนี้:<br />
{% extends &#8220;base.html&#8221; %}<br />
{% block title %}My amazing blog{% endblock %}<br />
{% block content %}<br />
{% for entry in blog_entries %}<br />
&lt;h2&gt;{{ entry.title }}&lt;/h2&gt;<br />
&lt;p&gt;{{ entry.body }}&lt;/p&gt;<br />
{% endfor %}<br />
{% endblock %}<br />
{% extends %} tag คือกุญแจไปสู้ห้องแห่งความลับ. แฮรี่ พอตเตอร์บอกว่าเราสารถใช้ {% extends %} เพื่อสืบทอดทุก template ได้ มหัศจรรย์จริงๆ!! เคราเมอร์ลินเป็นพยาน<br />
สังเกต {% block %} tags ใน base.html and ให้ดีๆ มันจะถูกแทนที่ด้วยข้อมูลใน child template. output ออกมาหน้าตาประมาณนี้:<br />
&lt;!DOCTYPE html PUBLIC &#8220;-//W3C//DTD XHTML 1.0 Transitional//EN&#8221;<br />
&#8220;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&#8221;&gt;<br />
&lt;html xmlns=&#8221;http://www.w3.org/1999/xhtml&#8221; xml:lang=&#8221;en&#8221; lang=&#8221;en&#8221;&gt;<br />
&lt;head&gt;<br />
&lt;link rel=&#8221;stylesheet&#8221; href=&#8221;style.css&#8221; /&gt;<br />
&lt;title&gt;My amazing blog&lt;/title&gt;<br />
&lt;/head&gt;<br />
&lt;body&gt;<br />
&lt;div id=&#8221;sidebar&#8221;&gt;<br />
&lt;ul&gt;<br />
&lt;li&gt;&lt;a href=&#8221;/&#8221;&gt;Home&lt;/a&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;a href=&#8221;/blog/&#8221;&gt;Blog&lt;/a&gt;&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;/div&gt;<br />
&lt;div id=&#8221;content&#8221;&gt;<br />
&lt;h2&gt;Entry one&lt;/h2&gt;<br />
&lt;p&gt;This is my first entry.&lt;/p&gt;<br />
&lt;h2&gt;Entry two&lt;/h2&gt;<br />
&lt;p&gt;This is my second entry.&lt;/p&gt;<br />
&lt;/div&gt;<br />
&lt;/body&gt;<br />
&lt;/html&gt;<br />
เราไม่ได้กำหนด sidebar block ใน child template ,ข้อมูลใน {% block %} tag จะใช้ค่าเดิมใน base.html<br />
เราสามารถสืบทอด template&#8217;s หลายๆชั้นเท่าที่ต้องการเช่น :<br />
สร้าง base.html เป็น templat  ที่เป็นหน้าตาหลักของ site<br />
สร้าง base_SECTIONNAME.html สำหรับทุกๆส่วนย่อย. เช่น, base_news.html, base_sports.html. โดยสืบทอดมาจาก base.html นั่นรวมถึง styles/design.<br />
สร้าง template&#8217;s ตามมาอย่างใจต้องการ news blog ect.<br />
สะดวกและง่ายดาย ประหยัดโค้ด.<br />
นี่เป็นเคล็ดลับเล็กๆน้อยๆในการสืบทอด template&#8217;s :<br />
ถ้าคุณใช้ {% extends %} มันจะต้องเป็น tag แรกใน template&#8217;s นั้น<br />
เราสามารใส่ {% block %} tags ใน base template เท่าไรก็ได้ และเรายังสามารถเพิ่มเติมมันใน child template&#8217;s ภายหลัง<br />
ถ้าเจอเนื้อหาซ้ำๆกัน, เป็นไปได้ว่าคุณย้ายมันไปไว้ใน parent template หรือเปล่า.<br />
เพื่อให้อ่านง่าย กำหนดชื่อใน {% endblock %} tag. เช่น:<br />
{% block content %}<br />
&#8230;<br />
{% endblock content %}<br />
ด้วยเทคนิคนี้ ทำให้มั่นใจได้ว่า {% block %} tags ถูกปิดเรียบร้อยแล้ว.<br />
สุดท้ายนี้, คุณไม่สามารถกำหนด {% block %} tags ที่มีชื่อเหมือนกันใน template&#8217;s เดียวกันได้เพราะนอกจากคุณจะงงแล้ว โปรแกรมก็จะงงด้วย.</p>
<h3>Automatic HTML escaping</h3>
<p>เวลาที่สร้าง HTML จาก templates, มันมีความเสียงที่จะพบตัวอักษรที่ส่งผลให้การแสดงผล HTML ผิดพลาด. ลองดูตัวอยางจากโค้ดด้านล่างนี้:<br />
Hello, {{ name }}.<br />
ดูเหมือนจะปลอดภัย แต่จะเกิดอะไรขึ้นถ้า user กรอกข้อมูลต่อไปนี้:<br />
&lt;script&gt;alert(&#8216;hello&#8217;)&lt;/script&gt;<br />
ด้วย username นี้ มันจะถูกเรนเดอร์เป็น:<br />
Hello, &lt;script&gt;alert(&#8216;hello&#8217;)&lt;/script&gt;<br />
&#8230;งานเข้า!! pop-up a JavaScript alert box!<br />
ต่อมา จะเป็นอย่างไรถ้า user ใช้ตัวอักษร &#8216;&lt;&#8217; อย่างนี้?<br />
&lt;b&gt;username<br />
template&#8217;s ก็จะออกมาแบบนี้ :<br />
Hello, &lt;b&gt;username<br />
&#8230;งานเข้าอีกแล้ว!! ซวยแล้ว ตัวหนาทั้งเว็บ!<br />
ไม่ดีแน่อย่างนี้ เพราะว่าผู้ไม่ประสงค์ดีบางคนอาจจะให้ช่องโหว่นี้ทำอันตรายต่อระบบได้. นี่เป็นช่องโหว่ของระบบรักษาความปลอดภัยที่เรียกว่าการโจมตีแบบ  Cross Site Scripting (XSS) .<br />
เพื่อแก้ปัญหานี้ เรามีอยู่สองทางเลือก:<br />
อย่างแรก คุณสามารถมั่นใจว่าจะมาสารถแสดงผลข้อมูลเหล่านี้ด้วย escape filter (อ่านด้านล่าง), ด้วยวิธีนี้ คุณสามารถมั่นใจว่าข้อมูลทุกอย่างที่แสดงผล ถูกแปลงไปเป็นข้อมูลที่ปลอดภัย<br />
หรืออีกวิธี, ใช้ความสามารถของ Django ให้เป็นประโยชน์ เราสามารถทำ auto-escaping<br />
โดยทั่วไปแล้ในDjango, ในทุกๆ template จะเปี่ยนให้โดยอัตโนมัติ เช่น:<br />
&lt; เปลี่ยนเป็น &amp;lt;<br />
&gt; เปลี่ยนเป็น &amp;gt;<br />
&#8216; (single quote) เปลี่ยนเป็น &amp;#39;<br />
&#8221; (double quote) เปลี่ยนเป็น &amp;quot;<br />
&amp; เปลี่ยนเป็น &amp;amp;<br />
ย้ำอีกครั้ง, auto-escaping เป็นไปโดยอัตโนมัติ เมื่อคุณเลือก Django คุณจะได้รับการปกป้อง.</p>
<h4>แล้วจะปิดยังไง</h4>
<p>ถ้าคุณไม่ต้องการใช้งาน  auto-escaped ทั้ง site บาง template หรือตัวแปรบางตัว คุณมาสามารถเลือกปิดได้ตามใจ<br />
ทำไมถึงอยากจะปิดล่ะ? เพราะบางบางที คุณอาจจะต้องการเรนเดอร์ HTML โค้ด,ในกรณีนี้ คุณคงไม่ต้องการ escaped charector. ยกตัวอย่างเช่น บางทีคุณเก็น blob ของ HTML ในฐานข้อมูล และต้องการแสดงผลข้อูลนั้นลงบน template&#8217;s  โดยตรง. หรือบางทีคุณอาจจะใช้ Django&#8217;s template จัดการ text ที่ไม่ใช่ HTML – อย่างเชน e-mail<br />
<strong>สำหรับตัวแปรเป็นตัวๆไป<br />
</strong>เพื่อยกเลิก auto-escaping สำหรับตัวแปรแต่ละตัวโดยใช้ safe filter:<br />
อันนี้จะแปลงตัวอักษร: {{ data }}<br />
อันนี้จะไม่แปลงตัวอักษร: {{ data|safe }}<br />
ลองดูตัวอย่างง่ายๆ data มีค่าเป็น&#8217;&lt;b&gt;&#8217;:<br />
อันนี้จะแปลงตัวอักษร: &amp;lt;b&amp;gt;<br />
อันนี้จะไม่แปลงตัวอักษร: &lt;b&gt;<br />
<strong>สำหรับ template blocks</strong><br />
เพื่อจะควบคุม auto-escaping สำหรับ template, หมายถึงทั้ง template&#8217;s ใช้  autoescape tag, อย่างนี้:<br />
{% autoescape off %}<br />
Hello {{ name }}<br />
{% endautoescape %}<br />
autoescape tag สามารถเปลี่ยนแปลงได้โดยการเปลี่ยนค่า on หรือ off ในอาร์กิวเมนต์. ลองดูตัวอย่างนี้จะทำความเข้าใจได้ง่ายขึ้น:<br />
โดยปกติแล้ว Auto-escaping จะถูกตั้งค่าเป็น on. Hello {{ name }}<br />
{% autoescape off %}<br />
This will not be auto-escaped: {{ data }}.<br />
Nor this: {{ other_data }}<br />
{% autoescape on %}<br />
Auto-escaping applies again: {{ name }}<br />
{% endautoescape %}<br />
{% endautoescape %}<br />
auto-escaping tag จะทำงานทั้งหน้า รวมไปถึงส่วน include tag,ตัวอย่างเช่น:<br />
# base.html<br />
{% autoescape off %}<br />
&lt;h1&gt;{% block title %}{% endblock %}&lt;/h1&gt;<br />
{% block content %}<br />
{% endblock %}<br />
{% endautoescape %}<br />
# child.html<br />
{% extends &#8220;base.html&#8221; %}<br />
{% block title %}This &amp; that{% endblock %}<br />
{% block content %}{{ greeting }}{% endblock %}<br />
เพราะว่า auto-escaping ถูกปิดอยู่ในbase template, เพราะฉะนั้นมันจึงถูกปิดใน child template ด้วยเช่นเดียวกัน, ผลการรันHTML เมื่อตัวแปรgreeting เป็นอย่างนี้<br />
&lt;b&gt;Hello!&lt;/b&gt;:<br />
&lt;h1&gt;This &amp; that&lt;/h1&gt;<br />
&lt;b&gt;Hello!&lt;/b&gt;</p>
<h4>Notes</h4>
<p>โดยปกติแล้ว Designer ไม่ต้องสนใจส่วนนี้มากเท่าใดนัก ปล่อยให้เป็นงานของ Developer (ไอ้คนที่เขียนโค้ดบน Pythion นั่นแหละ)เป็นคนคิดว่าอะไรควรจัดการดีกว่า.</p>
<h4>String literals and automatic escaping</h4>
<p>บ่อยครั้งที่เราใช้อาร์กิวเมนต์ที่เป็น string ในฟิลเตอร์:<br />
{{ data|default:&#8221;This is a string literal.&#8221; }}<br />
ข้อมูลตรงนี้จะไม่ถูก autoescape.<br />
หมายความว่าควรเขียนอย่างนี้<br />
{{ data|default:&#8221;3 &amp;lt; 2&#8243; }}<br />
&#8230;ไม่ใช่<br />
{{ data|default:&#8221;3 &lt; 2&#8243; }}  &lt;&#8211; บัดซบ อย่าเขียนอย่างนี้เด็ดขาด.</p>
<h4>เรียบเรียงจาก</h4>
<p><a href="http://docs.djangoproject.com/en/dev/topics/templates/#topics-templates">The Django template language</a></p>
<p>แหล่งข้อมูลเพิ่มเติม<br />
<a href="http://www.django66.com/">Django66</a><br />
<a href="http://groups.google.co.th/group/pythai">PyThai google groups</a></p>
<p>This document is licensed under a Creative Commons Attribution-Non-Commercial-Share Alike 3.0 Unported License.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kowito.com/2009/07/31/the-django-template-language/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>จำนวนเฉพาะกับตะแกรงเอราทอสเทนีส</title>
		<link>http://www.kowito.com/2009/07/30/%e0%b8%88%e0%b8%b3%e0%b8%99%e0%b8%a7%e0%b8%99%e0%b9%80%e0%b8%89%e0%b8%9e%e0%b8%b2%e0%b8%b0%e0%b8%81%e0%b8%b1%e0%b8%9a%e0%b8%95%e0%b8%b0%e0%b9%81%e0%b8%81%e0%b8%a3%e0%b8%87%e0%b9%80%e0%b8%ad%e0%b8%a3/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=%25e0%25b8%2588%25e0%25b8%25b3%25e0%25b8%2599%25e0%25b8%25a7%25e0%25b8%2599%25e0%25b9%2580%25e0%25b8%2589%25e0%25b8%259e%25e0%25b8%25b2%25e0%25b8%25b0%25e0%25b8%2581%25e0%25b8%25b1%25e0%25b8%259a%25e0%25b8%2595%25e0%25b8%25b0%25e0%25b9%2581%25e0%25b8%2581%25e0%25b8%25a3%25e0%25b8%2587%25e0%25b9%2580%25e0%25b8%25ad%25e0%25b8%25a3</link>
		<comments>http://www.kowito.com/2009/07/30/%e0%b8%88%e0%b8%b3%e0%b8%99%e0%b8%a7%e0%b8%99%e0%b9%80%e0%b8%89%e0%b8%9e%e0%b8%b2%e0%b8%b0%e0%b8%81%e0%b8%b1%e0%b8%9a%e0%b8%95%e0%b8%b0%e0%b9%81%e0%b8%81%e0%b8%a3%e0%b8%87%e0%b9%80%e0%b8%ad%e0%b8%a3/#comments</comments>
		<pubDate>Wed, 29 Jul 2009 19:30:35 +0000</pubDate>
		<dc:creator>Kowit</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://www.kowito.com/?p=75</guid>
		<description><![CDATA[ไปอ่านเจอมา เขียนไว้กันลืม def primes(n): """ primes(n) --> primes Return list of primes from 2 up to but not including n. Uses Sieve of Erasth. """ if n < 2: return [] nums = range(2,int(n)) p = [] while nums: new_prime = nums[0] p.append(new_prime) for i in nums[1:]: if i % new_prime == 0: nums.remove(i) nums.remove(nums[0]) [...]]]></description>
			<content:encoded><![CDATA[<p>ไปอ่านเจอมา เขียนไว้กันลืม</p>
<pre name="code" class="python">
def primes(n):
"""
primes(n) --> primes

Return list of primes from 2 up to but not including n.
Uses Sieve of Erasth.
"""

    if n < 2:
        return []

    nums = range(2,int(n))
    p = []

    while nums:
        new_prime = nums[0]
        p.append(new_prime)

        for i in nums[1:]:
            if i % new_prime == 0:
                nums.remove(i)
        nums.remove(nums[0])

    return p
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.kowito.com/2009/07/30/%e0%b8%88%e0%b8%b3%e0%b8%99%e0%b8%a7%e0%b8%99%e0%b9%80%e0%b8%89%e0%b8%9e%e0%b8%b2%e0%b8%b0%e0%b8%81%e0%b8%b1%e0%b8%9a%e0%b8%95%e0%b8%b0%e0%b9%81%e0%b8%81%e0%b8%a3%e0%b8%87%e0%b9%80%e0%b8%ad%e0%b8%a3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
