<?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>Facebook &#8211; PARINYA.NET</title>
	<atom:link href="https://www.parinya.net/node/category/facebook/feed" rel="self" type="application/rss+xml" />
	<link>https://www.parinya.net</link>
	<description>Computation theories and information processing theories.</description>
	<lastBuildDate>Sun, 16 Oct 2011 10:23:14 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.5</generator>
	<item>
		<title>เลิกทำเกม Beelony</title>
		<link>https://www.parinya.net/node/1619</link>
					<comments>https://www.parinya.net/node/1619#respond</comments>
		
		<dc:creator><![CDATA[ไท้ ปริญญา]]></dc:creator>
		<pubDate>Sun, 02 Oct 2011 05:39:23 +0000</pubDate>
				<category><![CDATA[Facebook]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[ขาดทุน]]></category>
		<category><![CDATA[ปิดตัว]]></category>
		<category><![CDATA[เลิก]]></category>
		<category><![CDATA[beelony]]></category>
		<guid isPermaLink="false">http://www.parinya.net/?p=1619</guid>

					<description><![CDATA[หลังจากที่ผมเปิดตัวเกม Beelony บน Facebook ไปได้สองเดือน ผมก็ตัดสินใจเลิกทำมันต่อด้วยเหตุผลดังต่อไปนี้ ไม่สนุก อันนี้น้องชายผมซึ่งเล่นเกมเก่งยืนยัน เขาบอกว่าเกมสนุกคือเกมที่ต้องมีภาพสวย ๆ และมีด่านให้เล่นเยอะ ๆ ซึ่งเกมที่ผมสร้างมันตอบโจทย์ตรงนี้ไม่ได้ มันไม่สวยเด่น มันมีด่า่นน้อยจริง ๆ ผมวาดรูปไม่เก่ง ถ้าอยากได้ภาพสวย ผมมีทางเลือกสองทาง คือ หัดวาดรูปให้เก่ง กับ จ้างคนเก่ง ๆ มาทำงานให้]]></description>
										<content:encoded><![CDATA[<p>หลังจากที่ผมเปิดตัวเกม Beelony บน Facebook ไปได้สองเดือน ผมก็ตัดสินใจเลิกทำมันต่อด้วยเหตุผลดังต่อไปนี้</p>
<ol>
<li>ไม่สนุก อันนี้น้องชายผมซึ่งเล่นเกมเก่งยืนยัน เขาบอกว่าเกมสนุกคือเกมที่ต้องมีภาพสวย ๆ และมีด่านให้เล่นเยอะ ๆ ซึ่งเกมที่ผมสร้างมันตอบโจทย์ตรงนี้ไม่ได้ มันไม่สวยเด่น มันมีด่า่นน้อยจริง ๆ</li>
<li>ผมวาดรูปไม่เก่ง ถ้าอยากได้ภาพสวย ผมมีทางเลือกสองทาง คือ หัดวาดรูปให้เก่ง กับ จ้างคนเก่ง ๆ มาทำงานให้</li>
<li>การหัดวาดรูปให้เก่ง ต้องใช้ความมานะพยายาม หัดซ้ำแล้วซ้ำเล่าจนเก่งขึ้นมา ซึ่งมันเสียเวลาอย่างมาก ในขณะที่การจ้างคนเก่ง ๆ มาทำงานให้ มันเสียเวลาน้อยกว่า แต่มันก็ต้องมีต้นทุนเงินตราเกิดขึ้น ซึ่งผมไม่ได้ตั้งงบประมาณสำหรับเรื่องนี้เอาไว้</li>
<li>ผมพอจะเขียนโปรแกรมคอมพิวเตอร์เองได้ ไม่ต้องจ้างใครให้มาทำ แต่เมื่อเกมมีความซับซ้อนมากขึ้น กลายเป็นว่าต้องทดสอบมากขึ้นหลายเท่าตัว ทำให้เสียเวลาถึงสองในสามของเวลาในการพัฒนาเกมในแต่ล่ะช่วง เพราะผมไม่ใช่นักทดสอบโปรแกรมฯมืออาชีพ (ซักเท่าไหร่)</li>
<li>การปรับรูปแบบของเกมเพื่อให้ตอบสนองต่อเกมเมอร์ เป็นเรื่องง่ายในทางทฤษฎี แต่เป็นเรื่องยากในทางปฏิบัติ เพราะทุกครั้งที่เปลี่ยน มันต้องรื้อแหลกและต้องใช้เวลา</li>
<li>น้องชายผมบอกผมว่า ใน Facebook ยังมีเกมเจ๋ง ๆ อีกเยอะที่ไม่ดัง ไม่มีคนเล่น ดังนั้น การตั้งหน้าตั้งตาทำเกมให้ &#8220;เจ๋ง&#8221; แค่อย่างเดียว มันก็ยังไม่พอ ดังนั้น ต้องทำให้มัน &#8220;โดน&#8221;</li>
<li>ผมต้องใช้เงินเพื่อทุ่มเทในเรื่องอื่นซึ่งกะทันหันกว่า การจ่ายเงินกับ Infrastructure และโฆษณา เพื่อใช้ขับเคลื่อนเกมที่คุณภาพยังไม่ถึงขั้น ถือเป็นความฟุ่มเฟือยเกินไป ไม่ควรดื้อรั้น หลอกตัวเอง</li>
<li>การทำเกมให้ &#8220;โดน&#8221; เป็นศาสตร์ลี้ลับ ไม่มีสอนในโรงเรียน หาไม่เจอจากประสบการณ์ พรสวรรค์ก็ไม่ช่วยอะไร มีแต่บุญวาสนาอย่างเดียว ที่จะชี้นำพาไปได้</li>
</ol>
<p>สรุปค่าเสียหายสำหรับการขับเคลื่อน Beelony ตลอดสองเดือน ผมเสียเงินไปประมาณ 24,000+ บาท เป็นการเสียไปเพื่อได้ประสบการณ์เพียงอย่างเดียวจริง ๆ นะเนี่ย!!!!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.parinya.net/node/1619/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>เกาะไส้ติ่ง Facebook Platform for Developer</title>
		<link>https://www.parinya.net/node/1616</link>
					<comments>https://www.parinya.net/node/1616#respond</comments>
		
		<dc:creator><![CDATA[ไท้ ปริญญา]]></dc:creator>
		<pubDate>Wed, 21 Sep 2011 03:07:22 +0000</pubDate>
				<category><![CDATA[Facebook]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[ไส้ติ่ง]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[facebook app]]></category>
		<category><![CDATA[facebook application]]></category>
		<category><![CDATA[facebook platform]]></category>
		<guid isPermaLink="false">http://www.parinya.net/?p=1616</guid>

					<description><![CDATA[Facebook Platform for Developer มีการปรับเปลี่ยนอยู่เรื่อย ๆ ครับ ออกแนวสามวันจาก Facebook เป็นอื่น แต่ถึงจะปรับเปลี่ยนบ่อยยังไง มันก็ต้องมีอยู่จุด ๆ หนึ่งที่ถือว่าเป็นการปรับเปลี่ยนใหญ่ ซึ่งผมนับได้เป็นจำนวนสามจุด ได้แก่ การที่ Facebook ขอให้ใคร ๆ เลิกใช้ FBML ซึ่งตัวเองปั้นมาเองกับมือ แต่ยังคงสนับสนุนอยู่อีกพักใหญ่ ๆ]]></description>
										<content:encoded><![CDATA[<p>Facebook Platform for Developer มีการปรับเปลี่ยนอยู่เรื่อย ๆ ครับ ออกแนวสามวันจาก Facebook เป็นอื่น แต่ถึงจะปรับเปลี่ยนบ่อยยังไง มันก็ต้องมีอยู่จุด ๆ หนึ่งที่ถือว่าเป็นการปรับเปลี่ยนใหญ่ ซึ่งผมนับได้เป็นจำนวนสามจุด ได้แก่ </p>
<ol>
<li>การที่ Facebook ขอให้ใคร ๆ เลิกใช้ FBML ซึ่งตัวเองปั้นมาเองกับมือ แต่ยังคงสนับสนุนอยู่อีกพักใหญ่ ๆ และไม่รู้ว่าจะถึงเมื่อไหร่ที่จะให้เลิกใช้เด็ดขาดไปเลย</li>
<li>บังคับให้แอปทุกตัวต้องเปลี่ยนการชำระเงินในทุก ๆ วิธี มาเป็นใช้ Facebook Credits แทน โดยทาง Facebook จะหักหัวคิวอร่อยเหาะที่ 30% ของมูลค่าการซื้อขายในแต่ล่ะครั้ง และถ้าใครไม่ทำตามแล้วตรวจเจอก็จะโดนแบน เรียกว่าโดนไม่ใช่น้อย</li>
<li>สั่งให้ทุกแอปต้องมี HTTP Secure เพื่อการรักษาความปลอดภัยที่ล้ำลึก จนไม่ว่าหน้าไหนก็ไม่สามารถจะล่วงล้ำก้ำเกินเข้าไปได้ (ทำให้เหมือนว่าแอปที่สร้างขึ้นมา สำคัญขนาดแอปของสถาบันการเงินเลยทีเดียวเชียว)</li>
</ol>
<p>พวกเราเคยเอะใจกันมั้ยครับว่า การที่เราต้องเปลี่ยนโน่นนี่นั่นตามเจ้าของ Platform มันทำให้เราเกิดต้นทุน แถมต้นทุนดังกล่าวก็ไม่มีใครมาจ่ายให้เราซะด้วย เราต้องเป็นคนแบกรับเอาไว้เอง!!!</p>
<p>ผมเลยเริ่มมองว่า การทำแอปเพื่อเชื่อมกับ Facebook นั้น เราต้องมากำหนดความสัมพันธ์กันแล้วล่ะ ว่าเราจะสนิทสนมสนุกสนานกับ Facebook แค่ไหน จะเกาะ Facebook ทั้งตัว หรือจะเกาะแค่ลำไส้ใหญ่ หรือจะเกาะแค่ไส้ติ่งของ Facebook ดี?</p>
<p>พอมอง ๆ ไปว่ากลไกในการต่อเชื่อมกับ Facebook มันมีกี่ระดับบ้าง ก็พอจะคลี่ออกมาได้เป็นสามแบบเหมือนกัน ได้แก่</p>
<ol>
<li>ใช้ Authentication, ใช้ Graph API, วางไว้ใน Canvas และต้องใช้ Facebook Credits &#8211; แบบนี้เห็นกันอย่างเยอะ เช่น พวกเกมที่ต้องเล่นผ่านหน้าจอของ Facebook เป็นต้น</li>
<li>ใช้ Authentication, ใช้ Graph API, ไม่วางไว้ใน Canvas แต่ใช้หน้าเว็บของตัวเอง และไม่ใช้ Facebook Credits &#8211; แบบนี้เป็นเฉพาะบางเกมหรือบางแอป ที่ต้องการระบบเครือข่ายสังคมของ Facebook แต่ปฏิเสธที่จะอยู่ในอาณาบริเวณหน้าจอของ Facebook เพราะว่าหน้าจอของ Facebook มันไม่เหมาะสมหรือสอดคล้องกับภาพลักษณ์ของเกมหรือแอป</li>
<li>ใช้ Authentication, ไม่ใช้ Graph API, ไม่วางไว้ใน Canvas แต่ใช้หน้าเว็บของตัวเอง และไม่ใช้ Facebook Credits &#8211; เราจะไม่เห็นแบบนี้ในเกมหรือแอป แต่จะเห็นในเว็บจำพวก BLOG ที่เขาเอาไว้เขียนเล่าเรื่องราวส่วนตัว อะไรประมาณนั้น</li>
</ol>
<p>ทั้งสามแบบล้วนต้องใช้ Authentication ของ Facebook และต้องลงทะเบียนแอปกับ Facebook อยู่ดี ซึ่งมันก็คงหนีไม่พ้นที่จะต้องทำตามนโยบายของ Facebook ต่อไป ไม่ว่าจะเป็นการเพิ่ม HTTP Secure เพื่อให้เกิดความปลอดภัย บลา ๆ ๆ เป็นต้น</p>
<p>โดยสรุปแล้วผมมองว่าการเกาะกับ Platform ที่มันเป็นที่นิยมและมีชื่อเสียงนั้น มันเป็นเรื่องที่ดี เพราะเราจะทุ่นแรงในการปฏิบัติหลาย ๆ อย่าง เพราะ Platform มันจัดการให้หมดแล้ว แต่ทว่า ถ้า Platform มันเปลี่ยนบ่อยซะเหลือเกิน แถมเปลี่ยนแต่ล่ะครั้งก็เกิดต้นทุนเงินตราและต้นทุนแรงงาน อันนี้เราก็คงต้องมาพิจารณากันแล้วล่ะมั้ง ว่าเราจะเกาะลำไส้ใหญ่เขา หรือเราจะเกาะเขาแค่ปลายไส้ติ่งดี เพื่อเวลาที่เราจะฉีกตัวออกมาใหญ่ของเราเอง พังผืดจากลำไส้ใหญ่ของเขา มันจะได้ไม่มายึดติดเราจนเราขยับไม่ได้อ่ะ</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.parinya.net/node/1616/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>การยืนบนพื้นที่แคบ ๆ โดยไม่ให้ล้ม</title>
		<link>https://www.parinya.net/node/1580</link>
					<comments>https://www.parinya.net/node/1580#comments</comments>
		
		<dc:creator><![CDATA[ไท้ ปริญญา]]></dc:creator>
		<pubDate>Thu, 11 Aug 2011 08:21:04 +0000</pubDate>
				<category><![CDATA[Facebook]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[beelony]]></category>
		<category><![CDATA[facebook]]></category>
		<guid isPermaLink="false">http://www.tai-parinya.com/?p=1580</guid>

					<description><![CDATA[หลังจากผมปล่อย Beelony ออกมาให้ผู้เล่นได้เล่นมาเป็นเวลาหนึ่งเดือน ผมก็ได้เจอเรื่องน่าสนใจหลาย ๆ อย่าง เลยว่าจะเล่าให้อ่านกันดังนี้ ความน่าสนใจของเกมบน Facebook จะขึ้นอยู่กับ คุณภาพ, แบรนด์ และราคา เกมบน Facebook จะไม่มีทางเปิดตัวได้เลย ถ้าไม่มีการโฆษณา การโฆษณาบน Facebook มีราคาสูง ไม่เหมือนกับการโฆษณาผ่าน Adwords แต่ถึงแม้มันจะมีราคาสูง มันก็เข้าถึงผู้ใช้งานบน Facebook]]></description>
										<content:encoded><![CDATA[<p>หลังจากผมปล่อย <a href="http://apps.facebook.com/beelony/" title="Beelony">Beelony</a> ออกมาให้ผู้เล่นได้เล่นมาเป็นเวลาหนึ่งเดือน ผมก็ได้เจอเรื่องน่าสนใจหลาย ๆ อย่าง เลยว่าจะเล่าให้อ่านกันดังนี้</p>
<ul>
<li>ความน่าสนใจของเกมบน Facebook จะขึ้นอยู่กับ คุณภาพ, แบรนด์ และราคา</li>
<li>เกมบน Facebook จะไม่มีทางเปิดตัวได้เลย ถ้าไม่มีการโฆษณา</li>
<li>การโฆษณาบน Facebook มีราคาสูง ไม่เหมือนกับการโฆษณาผ่าน Adwords แต่ถึงแม้มันจะมีราคาสูง มันก็เข้าถึงผู้ใช้งานบน Facebook ได้ดีกว่าวิธีอื่น ๆ</li>
<li>มันมีเทคนิคในการโฆษณาบน Facebook ที่ราคาต่ำ ๆ แต่เป็นเทคนิคที่ผู้ทดลอง ต้องลองเจ็บตัวซ้ำ ๆ ซาก ๆ เองก่อนถึงจะได้รู้</li>
<li>ไม่มีทางที่เกมบน Facebook จะเปิดตัวมาแล้วดังเปรี้ยงปร้าง หรือมีคนเข้ามาเล่นอย่างล้นหลามในทันที ยุคสมัยนั้นมันจบไปแล้ว ต้องรับรู้ไว้เลยว่ามีคู่แข่งขันเยอะมาก ๆ</li>
<li>ในโลกมีคนเก่ง ๆ อยู่เยอะแยะ ออกไปสู้กับคนอื่นเขา ต้องกินให้น้อยกว่าเขา แต่ต้องทำให้ได้พอ ๆ กับเขา หรือด้อยกว่านิดหน่อยก็ยังดี</li>
<li>การลอกเลียนแบบเกมที่กำลังเป็นที่นิยมอยู่ คือการฆ่าตัวตาย เพราะผู้เล่นย่อมเลือกเล่นเกมต้นแบบซึ่งมันดีกว่าอยู่แล้ว</li>
<li>ผู้เล่นจะมีเกมในดวงใจอยู่ 2 ถึง 3 เกม จงทำให้เกมของเราเป็นเกมในดวงใจเกมที่ 4 หรือ 5 เพราะเวลาของผู้เล่นก็ไม่ได้มีมากมายอะไร เขาย่อมไม่มาสนใจเกมได้เป็นสิบ ๆ เกมหรอก</li>
<li>การเตรียม Infrastructure ใหญ่โตเอาไว้ เพราะคิดว่าจะมีผู้เล่นมากมาย กรูกันเข้ามาเล่นในฉับพลันทันที คือความเสี่ยง เพราะถ้าไม่มีผู้เล่นมากมายตามที่คิดเอาไว้ ต้นทุนของ Infrastructure มันจะย้อนกลับมาทำให้เราล่มจมทันที</li>
<li>การใช้ Cloud Computing เป็น Infrastructure นี่มันโคตรดีมาก ๆ เพราะถึงแม้ราคาปอนด์ต่อปอนด์จะแพงกว่าพวก Virtual Private Server หรือ Dedicated Server แต่ถ้าถึงเวลากลียุคทางต้นทุน มันก็ยืดหยุ่นจนนำพาให้เรารอดได้เหมือนกัน</li>
<li>การลดต้นทุนการพัฒนา, ลดต้นทุน Infrastructure และลดต้นทุนโฆษณา โดยไม่ทำให้การขับเคลื่อนเกมบน Facebook ได้รับผลกระทบ คือ ปัจจัยสำคัญที่จะทำให้เกมบน Facebook อยู่รอดไปได้เรื่อย ๆ โดยไม่เจ๊งบ๊งไปซะก่อน</li>
<li>คนอเมริกาเล่นเกมบน Facebook เยอะก็จริง แต่คนฟิลิปปินส์และคนอินโดนีเซีย ก็เล่นเกมเยอะไม่แพ้ชาติใดในโลกเหมือนกัน</li>
<li>การเขียนโปรแกรมคอมพิวเตอร์เก่ง, การวาดรูปเก่ง และการทำเสียงประกอบเกมได้เก่ง แทบกลายเป็นปัจจัยรองไปเลยในการทำเกมบน Facebook เพราะสิ่งที่สำคัญมันคือการจับกลุ่มผู้เล่นแบบเฉพาะเจาะจง และการทำให้ผู้เล่นจงรักภักดีต่อเกมต่างหาก ซึ่งทักษะที่จะทำได้มันเป็นทักษะทาง &#8220;การตลาด&#8221; เฟ้ย ไม่ใช่ทักษะทาง &#8220;วิทยาศาสตร์&#8221; เล้ย</li>
<li>ถ้าลูกเล่นหรือรูปแบบของเกมมันไม่โดน ต้องกล้าหาญที่จะรื้อถึงแก่นในทันที และถ้าการรื้อมันทำให้ผู้เล่นเกิดผลกระทบ ก็ต้องเตรียมการเพื่อชดใช้ให้แก่ผู้เล่น อย่างสมน้ำสมเนื้อเหมือนกัน</li>
<li>ผู้เล่นที่จงรักภักดีเป็นสิ่งที่สำคัญมาก เพราะเขาจะพยายามโน้มน้าว ชักชวน เผยแพร่ เพื่อให้เพื่อน ๆ ของเขาเข้ามาเล่นเกมที่เขากำลังเล่น ถึงแม้เพื่อนของเขาจะเล่นเกมอื่นอย่างติดหนึบอยู่แล้วก็ตาม</li>
<li>ภาษาอังกฤษเป็นสิ่งที่สำคัญมาก ในการสื่อสารกับผู้เล่นเกมบน Facebook ดังนั้น ต้องเขียนให้เป็นภาษาเขียน ใช้ไวยากรณ์ให้ถูกต้องแบบที่ฝรั่งเขาใช้ ไม่ใช่แบบที่คนไทยใช้สื่อสารกันเอง</li>
<li>การแปลข้อความในเกม ให้เป็นภาษาท้องถิ่นต่าง ๆ ยังไม่ใช่สิ่งสำคัญในตอนนี้</li>
</ul>
]]></content:encoded>
					
					<wfw:commentRss>https://www.parinya.net/node/1580/feed</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
			</item>
		<item>
		<title>คุยไปเรื่อย Facebook Application</title>
		<link>https://www.parinya.net/node/1563</link>
					<comments>https://www.parinya.net/node/1563#comments</comments>
		
		<dc:creator><![CDATA[ไท้ ปริญญา]]></dc:creator>
		<pubDate>Sun, 17 Jul 2011 10:31:31 +0000</pubDate>
				<category><![CDATA[Facebook]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Video Log]]></category>
		<category><![CDATA[Web Service]]></category>
		<category><![CDATA[คุยไปเรื่อย]]></category>
		<category><![CDATA[facebook application]]></category>
		<guid isPermaLink="false">http://www.tai-parinya.com/?p=1563</guid>

					<description><![CDATA[พอดีผมเพิ่งซื้อขาตั้งกล้องมา เห่อมาก เลยเอามาลองทำ Video Log ดู เพราะเปิดบล็อกแห่งนี้มาก็ 6 ปีแล้ว ไม่อยากนำเสนอแบบซ้ำซากจำเจแล้ว เลยซัดซะหนึ่งดอก โดยจะชวนพวกเราคุยสั้น ๆ เกี่ยวกับ Facebook Application แบบว่าสั้นจริง ๆ เพราะแบตกล้องมันเล่นหมดดื้อ ๆ ก็เลยถ่ายมาได้แค่นี้ httpv://www.youtube.com/watch?v=9ZlxrYeUYTg]]></description>
										<content:encoded><![CDATA[<p>พอดีผมเพิ่งซื้อขาตั้งกล้องมา เห่อมาก เลยเอามาลองทำ Video Log ดู เพราะเปิดบล็อกแห่งนี้มาก็ 6 ปีแล้ว ไม่อยากนำเสนอแบบซ้ำซากจำเจแล้ว เลยซัดซะหนึ่งดอก</p>
<p>โดยจะชวนพวกเราคุยสั้น ๆ เกี่ยวกับ Facebook Application แบบว่าสั้นจริง ๆ เพราะแบตกล้องมันเล่นหมดดื้อ ๆ ก็เลยถ่ายมาได้แค่นี้</p>
<p>httpv://www.youtube.com/watch?v=9ZlxrYeUYTg</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.parinya.net/node/1563/feed</wfw:commentRss>
			<slash:comments>5</slash:comments>
		
		
			</item>
		<item>
		<title>การติดตั้ง Web Application บน Infrastructure แบบเปิด</title>
		<link>https://www.parinya.net/node/1564</link>
					<comments>https://www.parinya.net/node/1564#comments</comments>
		
		<dc:creator><![CDATA[ไท้ ปริญญา]]></dc:creator>
		<pubDate>Mon, 11 Jul 2011 15:03:55 +0000</pubDate>
				<category><![CDATA[AWS]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[Internetworking]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Web Service]]></category>
		<category><![CDATA[infrastructure]]></category>
		<category><![CDATA[web application]]></category>
		<guid isPermaLink="false">http://www.tai-parinya.com/?p=1564</guid>

					<description><![CDATA[หลายคนเขียน Web Application เป็น, หลายคนเขียนเกมแบบ Web Application ได้ และหลายคนก็เขียน Web Application ไว้ทำงานบน Facebook Platform ได้ แต่ก็ไม่น่าเชื่อว่ามีอยู่หลายคนที่กลับไม่รู้ว่าจะจัดวาง Infrastructure ให้กับ Web Application ของตนเองยังไงดี เพื่อให้ผู้ใช้งานจากทั่วทุกสารทิศในโลกกลม ๆ ใบนี้ เข้าถึง]]></description>
										<content:encoded><![CDATA[<p>หลายคนเขียน Web Application เป็น, หลายคนเขียนเกมแบบ Web Application ได้ และหลายคนก็เขียน Web Application ไว้ทำงานบน Facebook Platform ได้ แต่ก็ไม่น่าเชื่อว่ามีอยู่หลายคนที่กลับไม่รู้ว่าจะจัดวาง Infrastructure ให้กับ Web Application ของตนเองยังไงดี เพื่อให้ผู้ใช้งานจากทั่วทุกสารทิศในโลกกลม ๆ ใบนี้ เข้าถึง Web Application ที่ตัวเองสร้างขึ้นได้!!!</p>
<p>งั้นมาดูวิธีของผมกันดีกว่า เอาแบบจากประสบการณ์จริงกันไปเลย</p>
<ol>
<li>ต้องเลือกก่อนว่าจะเอา Web Application ของเราไปขับเคลื่อนที่ไหน อย่างกรณีของผม ผมใช้บริการ Cloud Computing ของ Amazon Web Services เป็นตัวจัดการเรื่องนี้ โดยเน้นใช้งานแต่บริการของ Amazon EC2 เพื่อเอามาทำเป็น Instance Server จำนวน 2 Instance ให้ Instance นึงไว้ขับเคลื่อน Application และอีก Instance นึงไว้ขับเคลื่อน Database โดยผมเลือกใช้งานโซนแคลิฟอร์เนียเหนือ และเลือกใช้ Image แบบ LAMP หมายเลข ami-1d6a3858 ซึ่งเป็น LAMPStack ที่มีระบบปฏิบัติการเป็น Ubuntu รุ่น 10.04 แบบ 32 bit สอดไส้ด้วย PHP รุ่น 5.3 มี Virtual Core 1 ECU และ RAM 1.7 GB (เล็กชิบเป๋ง)</li>
<li>จากนั้นก็โยนโค้ดไว้ที่ Application Instance และโยนฐานข้อมูลไปไว้ที่ Database Instance โดยที่ Database Instance จะพิเศษหน่อย เพราะผมจะไม่ใช้เนื้อที่ของ Database Instance เพื่อเก็บฐานข้อมูล แต่จะใช้ Amazon Elastic Block Store ที่ผมผูกไว้กับ Database Instance เป็นตัวเก็บข้อมูลแทน</li>
<li>พอได้ขุมพลังในการขับเคลื่อนและได้ทำการเชื่อมโยง Application Instance กับ Database Instance ผ่านการ Configure อะไรหลาย ๆ อย่างแล้ว ทีนี้ก็ต้องมาดูเรื่อง Domain บ้าง โดยผมได้จดโดเมนเอาไว้ก่อนเรียบร้อยแล้วที่ Go Daddy</li>
<li>คราวนี้ก็ต้องเอา Domain ที่จดทะเบียนไว้ ไปผูกโยงเข้ากับ Application Instance ที่เตรียมเอาไว้ก่อนแล้ว โดยผมได้เลือกใช้บริการของ Dynamic DNS แบบ Custom DNS Package จากนั้นก็ Configure ไำอ้เจ้า CNAME กับ A-Records เพื่อเชื่อมโยงระหว่างชื่อ Domain กับเลข IP ของ Application Instance เข้าไว้ด้วยกัน</li>
<li>และท้ายที่สุด ก็ต้องกลับไป Configure ที่ Go Daddy เพื่อบอกให้มันรู้ว่า ตกลง Domain ที่ผมจดทะเบียนไว้ มันเชื่อมโยงไปยัง Primary Name Server ใด ซึ่งในที่นี้ก็คือ Primary Name Server ของ Dynamic DNS นั่นเอง โดยผมใส่ลงไป 5 Name Server เลย ใช้มันให้คุ้ม ทำ Load Balancing แบบเว่อร์ ๆ เพราะผมเสียดายมาก เนื่องจาก Package ที่จ่ายตังค์ไป มันเปิดให้เรากำหนด DNS ได้ถึง 75+ Domain แต่ประทานโทษ ผมใช้มันสำหรับ Domain เดียว โคตรเสียดายตังค์เลย T-T</li>
</ol>
<p>เมื่อเราทำมาถึงขั้นตอนนี้ ก็ถือว่าทุกอย่างเรียบร้อยหมดแล้ว คราวนี้เราก็จะสามารถลองใช้งาน Web Application ของเราได้ โดยการเปิด Web Browser แล้วพิมพ์ URL ของ Domain เราเข้าไป แล้วรอซักชั่วอึดใจมด จากนั้น Web Application ของเราก็จะปรากฎขึ้นมา &#8230; อย่างสวยงามเลยทีเดียวเชียว!!!</p>
<p>เอาเป็นว่าใครก็ตามที่ยังไม่รู้ ก็คงได้รู้แล้วเน้อะ อ้อ แล้วอีกอย่าง สิ่งที่ต้องรู้อีกอย่างหนึ่งก็คือ ไอ้ข้างบนที่ผมเล่ามา มันต้องเสียตังค์ด้วยอ่ะ T-T แพงซะด้วยสิ ดังนั้น ถ้าคิดจะขับเคลื่อน Web Application แล้วล่ะก็ อย่าลืมหาตังค์มาเลี้ยงมันด้วยเน้อ</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.parinya.net/node/1564/feed</wfw:commentRss>
			<slash:comments>5</slash:comments>
		
		
			</item>
		<item>
		<title>ทำงานคนเดียว มันทำได้ แต่เสร็จช้า</title>
		<link>https://www.parinya.net/node/1561</link>
					<comments>https://www.parinya.net/node/1561#comments</comments>
		
		<dc:creator><![CDATA[ไท้ ปริญญา]]></dc:creator>
		<pubDate>Thu, 30 Jun 2011 07:52:27 +0000</pubDate>
				<category><![CDATA[AWS]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Web Service]]></category>
		<guid isPermaLink="false">http://www.tai-parinya.com/?p=1561</guid>

					<description><![CDATA[ผมยังคงง่วนอยู่กับการทำเกม Beelony สำหรับเล่นบน Facebook อยู่ครับ ทำมาตั้งแต่เดือนกันยายน 2553 จนวันนี้จะหมดเดือนมิถุนายน 2554 แล้ว ก็ยังเอาขึ้นใช้จริงไม่ได้อยู่ดี เพราะช่วงที่ผ่านมาผมต้องเสียเวลาไปหลายอย่าง ไม่ว่าจะเป็น &#8230; การประเมินและทดสอบ Instance บน Amazon EC2 ว่าต้องใช้กี่ตัว แล้วก็ใช้ Instance ระดับไหนดี ถึงจะตอบสนองกับตัวเกมได้โดยจ่ายตังค์น้อยที่สุด การทำ]]></description>
										<content:encoded><![CDATA[<p>ผมยังคงง่วนอยู่กับการทำเกม Beelony สำหรับเล่นบน Facebook อยู่ครับ ทำมาตั้งแต่เดือนกันยายน 2553 จนวันนี้จะหมดเดือนมิถุนายน 2554 แล้ว ก็ยังเอาขึ้นใช้จริงไม่ได้อยู่ดี เพราะช่วงที่ผ่านมาผมต้องเสียเวลาไปหลายอย่าง ไม่ว่าจะเป็น &#8230;</p>
<ul>
<li>การประเมินและทดสอบ Instance บน Amazon EC2 ว่าต้องใช้กี่ตัว แล้วก็ใช้ Instance ระดับไหนดี ถึงจะตอบสนองกับตัวเกมได้โดยจ่ายตังค์น้อยที่สุด</li>
<li>การทำ Configuration Note เพื่อเอาไว้จัดการกับ Amazon EC2 ในกรณีที่ต้องเปลี่ยน Instance เพื่อควบคุมต้นทุน โดยให้การเปลี่ยน Instance และ Configure เสียเวลาน้อยที่สุด</li>
<li>การทำ Backdoor ให้กับตัวเกม เพื่อให้ข้ามขั้นตอนในการทดสอบได้ ซึ่งเดิมไม่ได้ทำเอาไว้ ทำให้ต้องทดสอบหูตาเหลือก กว่าจะไปถึงจุดที่อยากจะทดสอบจริง ๆ ได้</li>
<li>การหา Bug ทั้งหลายทั้งปวงที่ยังคงหลบซ่อนอยู่ในตัวเกม โดยเฉพาะตอนที่ผู้เล่นเข้าใช้ทรัพยากรแหล่งเดียวกัน</li>
<li>การซ่อมแซมคุณสมบัติของเกม ที่เล่นแล้วทำให้ไม่ลื่นไหล ขัดหูขัดตา ไม่อำนวยความสะดวก</li>
<li>การเปลี่ยนกลไกจาก PayPal มาเป็น Facebook Credits เพื่อหาเงินมาหล่อเลี้ยงตัวเกม</li>
<li>การเพิ่มคุณสมบัติดึงดูดใจ ที่ทำให้ผู้เล่นไม่รู้สึกว่ากำลังเล่นเกมที่เล่นสบายหรือเล่นยากจนเกินไป</li>
</ul>
<p>ผ่านมาจะปีนึงแล้ว ผมผลิตชิ้นงานให้กับเกมนี้ไปเป็นจำนวนมาก นับได้เป็นจำนวนเกินร้อยไฟล์ ไม่ว่าจะเป็นการโค้ด PHP + jQuery + CSS, การวาดรูป, การทำเอกสาร Configuration, การทำ Mockup, การทำ Prototype, การทำ Tools เสริม, การทำเอกสารออกแบบฐานข้อมูล, การเตรียมข้อมูลหลักสำหรับบรรจุในฐานข้อมูล เป็นต้น</p>
<p>ตอนนี้ผมเดาเอาเองว่าผมคงจะใกล้ทำมันเสร็จแล้วล่ะ แล้วก็หวังว่าจะได้มีเวลาว่าง ๆ มานั่งเขียนบล็อกเล่น ๆ ต่อ อือม แต่ในความเป็นจริงมันคงไม่ง่ายแบบนั้น เพราะพอเอาเกมขึ้นจริงแล้ว ก็ยังต้องมีการทำการตลาด, การพูดคุยกับผู้เล่น, การซ่อมแซมส่วนที่สึกหรอ และการเพิ่มคุณสมบัติใหม่ ๆ ให้กับเกมอยู่อย่างสม่ำเสมอ</p>
<p>การทำเกมเป็นงานอดิเรก มันทำคนเดียวได้ แต่มันเสร็จช้าว่ะ แย่จริง ๆ นี่แหล่ะถึงเป็นเหตุผลว่าทำไมเขาต้องทำเป็นธุรกิจ เพราะมันจะได้เสร็จเร็ว ๆ ไง!!!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.parinya.net/node/1561/feed</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Callback ของ Facebook Credits</title>
		<link>https://www.parinya.net/node/1547</link>
					<comments>https://www.parinya.net/node/1547#comments</comments>
		
		<dc:creator><![CDATA[ไท้ ปริญญา]]></dc:creator>
		<pubDate>Wed, 04 May 2011 09:46:13 +0000</pubDate>
				<category><![CDATA[Electronic Money]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[Feature]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[WorkFlow]]></category>
		<category><![CDATA[credits]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[facebook credits]]></category>
		<guid isPermaLink="false">http://www.tai-parinya.com/?p=1547</guid>

					<description><![CDATA[คราวที่แล้วผมเพิ่งจะอธิบายกลไกของ Facebook Credits ไป แต่ว่ามันยังไม่ค่อยจะละเอียดซักเท่าไหร่ งั้นคราวนี้เอาใหม่เลยแล้วกัน เอาแบบละเอียด ๆ ถึงกึ๋นไปเลย บอกกันเจ๋ง ๆ ไปเลยว่ากลไกต่าง ๆ มันเกิดจังหวะไหนบ้าง แล้วก็เกิดตรงไหนบ้าง ภาพหนึ่งภาพแทนคำล้านคำ ดังนั้น ผมคิดว่าคนที่กำลังศึกษา Facebook Credits อยู่คงจะเข้าใจ ส่วนคนที่ยังไม่เคยศึกษาแต่กำลังคิดจะศึกษา เห็นแล้วก็คงจะพอเข้าใจได้เหมือนกันว่า จุดสำคัญของการเชื่อมโยงกับ Facebook]]></description>
										<content:encoded><![CDATA[<p>คราวที่แล้วผมเพิ่งจะอธิบาย<a href="https://www.parinya.net/node/1543">กลไกของ Facebook Credits</a> ไป แต่ว่ามันยังไม่ค่อยจะละเอียดซักเท่าไหร่ งั้นคราวนี้เอาใหม่เลยแล้วกัน เอาแบบละเอียด ๆ ถึงกึ๋นไปเลย บอกกันเจ๋ง ๆ ไปเลยว่ากลไกต่าง ๆ มันเกิดจังหวะไหนบ้าง แล้วก็เกิดตรงไหนบ้าง</p>
<figure id="attachment_1553" aria-describedby="caption-attachment-1553" style="width: 640px" class="wp-caption aligncenter"><a href="https://www.parinya.net/wp-content/uploads/2011/05/callback_facebook_credits1.png"><img fetchpriority="high" decoding="async" src="https://www.parinya.net/wp-content/uploads/2011/05/callback_facebook_credits1.png" alt="" title="Callback ของ Facebook Credits" width="640" height="593" class="size-full wp-image-1553" srcset="https://www.parinya.net/wp-content/uploads/2011/05/callback_facebook_credits1.png 640w, https://www.parinya.net/wp-content/uploads/2011/05/callback_facebook_credits1-300x277.png 300w" sizes="(max-width: 640px) 100vw, 640px" /></a><figcaption id="caption-attachment-1553" class="wp-caption-text">Callback ของ Facebook Credits</figcaption></figure>
<p>ภาพหนึ่งภาพแทนคำล้านคำ ดังนั้น ผมคิดว่าคนที่กำลังศึกษา Facebook Credits อยู่คงจะเข้าใจ ส่วนคนที่ยังไม่เคยศึกษาแต่กำลังคิดจะศึกษา เห็นแล้วก็คงจะพอเข้าใจได้เหมือนกันว่า จุดสำคัญของการเชื่อมโยงกับ Facebook Credits อยู่ตรงการ Callback ซึ่งจะแอบซ่อนอยู่ในส่วนของ PHP เป็นสำคัญ</p>
<p>ทาง Facebook ได้กำหนดลำดับขั้นของ Facebook Credits ไว้ 3 ขั้นอันได้แก่ Info, Placed และ Settled โดยให้ Callback ของแอ็ปของเรา เป็นตัวกำหนดและปรับเปลี่ยนลำดับขั้นโดยการตัดสินใจของแอ็บเราเอง</p>
<p>ส่วนจะข้ามขั้นตอนจาก Info ไป Settled ได้เลยหรือเปล่า อันนี้ไม่เคยลองเหมือนกัน</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.parinya.net/node/1547/feed</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>ใช้ Facebook Credits</title>
		<link>https://www.parinya.net/node/1543</link>
					<comments>https://www.parinya.net/node/1543#respond</comments>
		
		<dc:creator><![CDATA[ไท้ ปริญญา]]></dc:creator>
		<pubDate>Mon, 18 Apr 2011 05:07:47 +0000</pubDate>
				<category><![CDATA[AWS]]></category>
		<category><![CDATA[Electronic Money]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[Feature]]></category>
		<category><![CDATA[Web Service]]></category>
		<category><![CDATA[WorkFlow]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[facebook credits]]></category>
		<category><![CDATA[facebook credits api]]></category>
		<guid isPermaLink="false">http://www.tai-parinya.com/?p=1543</guid>

					<description><![CDATA[ด้วยนโยบายอันเข้มงวดเด็ดขาดและโลภของ Facebook ซึ่งกำหนดให้ผู้พัฒนาเกมบน Facebook ต้องใช้ Facebook Credits เพื่อเป็น &#8220;เงินตราเสมือนจริง&#8221; หรือ &#8220;วิธีการชำระเงิน&#8221; บน Facebook แต่เพียงช่องทางเดียว จึงทำให้เกิดความเดือดร้อนเล็ก ๆ แก่ผู้พัฒนาเกมบน Facebook ที่จำต้องเปลี่ยนแปลง &#8220;วิธีการชำระเงิน&#8221; ของตัวเอง มาใช้ Facebook Credits แทน]]></description>
										<content:encoded><![CDATA[<p>ด้วยนโยบายอันเข้มงวดเด็ดขาดและโลภของ Facebook ซึ่งกำหนดให้ผู้พัฒนาเกมบน Facebook ต้องใช้ Facebook Credits เพื่อเป็น &#8220;เงินตราเสมือนจริง&#8221; หรือ &#8220;วิธีการชำระเงิน&#8221; บน Facebook แต่เพียงช่องทางเดียว จึงทำให้เกิดความเดือดร้อนเล็ก ๆ แก่ผู้พัฒนาเกมบน Facebook ที่จำต้องเปลี่ยนแปลง &#8220;วิธีการชำระเงิน&#8221; ของตัวเอง มาใช้ Facebook Credits แทน รวมทั้งความเดือดร้อนใหญ่ ๆ ที่ต้องจ่ายส่วยให้กับทาง Facebook ด้วย!!!</p>
<p>ผมเองก็ต้องเปลี่ยนกลไกของเกมของผมเหมือนกัน คือเปลี่ยนจาก &#8220;วิธีการชำระเงิน&#8221; ด้วย PayPal มาเป็น Facebook Credits โดยขอคงสิทธิ์ของ &#8220;เงินตราเสมือนจริง&#8221; ในเกมของตนเองเอาไว้ ไม่ใช้ Facebook Credits เพื่อเป็น &#8220;เงินตราเสมือนจริง&#8221; แต่ประการใด!!!</p>
<p>ทีนี้โดยทางเทคนิคต้องทำยังไงบ้างล่ะ? ก็ต้องโยนโค้ดที่ใช้เชื่อมโยงกับ Web Services ของ PayPal ทิ้งไปสินะ แล้วจากนั้นก็เชื่อมโยงกับ Facebook Credits ผ่านทาง SDK (Javascript + PHP) ที่ทาง Facebook จัดเตรียมเอาไว้ให้ พร้อมทั้งเข้าไปอ่าน<a href="http://developers.facebook.com/docs/creditsapi/">เอกสารของ Facebook</a> เพื่อทำความเข้าใจว่ากลไกของ Facebook Credits อ่ะมันเป็นยังไง</p>
<p>Facebook เองก็ทำ Flowchart เพื่ออธิบายกลไกให้เราเข้าใจ Facebook Credits เอาไว้บ้างเหมือนกัน แต่ประทานโทษอ่ะ มันไม่เห็นจะสอดคล้องกับความเป็นจริงในทางเทคนิคของโค้ดโปรแกรมเล้ย ดังนั้น ผมก็เลยต้องวาดเพื่อทำความเข้าใจเอง แบบข้างล่างนี้</p>
<figure id="attachment_1544" aria-describedby="caption-attachment-1544" style="width: 506px" class="wp-caption aligncenter"><a href="https://www.parinya.net/wp-content/uploads/2011/04/facebook_credits.png"><img decoding="async" src="https://www.parinya.net/wp-content/uploads/2011/04/facebook_credits.png" alt="" title="Facebook Credits" width="506" height="534" class="size-full wp-image-1544" srcset="https://www.parinya.net/wp-content/uploads/2011/04/facebook_credits.png 506w, https://www.parinya.net/wp-content/uploads/2011/04/facebook_credits-284x300.png 284w" sizes="(max-width: 506px) 100vw, 506px" /></a><figcaption id="caption-attachment-1544" class="wp-caption-text">Facebook Credits</figcaption></figure>
<p>และนอกจากนี้ ผมยังได้พบจุดสังเกตในทางเทคนิค เกี่ยวกับ Facebook Credits อีกหลายอย่าง ไม่ว่าจะเป็น &#8230;</p>
<ul>
<li>ไม่ว่าผู้เล่นจะซื้อหรือไม่ซื้อของ Facebook ก็จะสร้างหมายเลข Order ให้ ถ้ามีการร้องขอ Dialog จาก Facebook</li>
<li>Facebook Credits API จะส่งข้อมูลที่ไม่ถูกเข้ารหัสมาหนึ่งชุด และข้อมูลที่ถูกเข้ารหัสมาอีกหนึ่งชุด กลับมาที่ Callback ของเรา (ภายหลังจากการร้องขอ Dialog) และเมื่อนำข้อมูลชุดที่สองที่ถูกเข้ารหัสมาถอดรหัสออก เราจะพบว่าข้อมูลที่ได้มันเหมือนเป๊ะกับชุดที่หนึ่งที่ไม่ถูกเข้ารหัสเลยว่ะ ซึ่งก็หมายความว่า Facebook จะให้เราตรวจสอบนั่นเอง ว่าเรากำลังโดน Hack หรือเปล่า โดนโกงโดยการปลอม JSON หรือเปล่า อะไรประมาณนี้</li>
<li>ตอนวาง Order ผ่านมาเป็น Callback เข้า PHP แต่ตอนจบ Order ดันผ่านมาเป็น Callback ใน Javascript แหม ทำได้ยอกย้อนจริง ๆ</li>
<li>ต้องไม่เขียนโค้ดให้เว่อร์เกินกว่าที่ Facebook Credits API กำหนดไว้ ยกตัวอย่างเช่น ถ้าเขาให้กำหนด Callback เป็น Function แยกต่างหาก ก็ต้องทำตามเขา อย่าบ้าพลังไปผนวก Callback เข้ากับ Function ที่จะเรียกมัน หรือพูดง่าย ๆ ก็คือ Facebook Credits API มันยังอ่อนแออยู่ ยังมีจุกจิกปัญหาเล็ก ๆ น้อยอยู่</li>
</ul>
]]></content:encoded>
					
					<wfw:commentRss>https://www.parinya.net/node/1543/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>เข้ามาพร้อม ๆ กันเลยพวก</title>
		<link>https://www.parinya.net/node/1526</link>
					<comments>https://www.parinya.net/node/1526#respond</comments>
		
		<dc:creator><![CDATA[ไท้ ปริญญา]]></dc:creator>
		<pubDate>Mon, 07 Mar 2011 03:38:20 +0000</pubDate>
				<category><![CDATA[Facebook]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[beelony]]></category>
		<category><![CDATA[concurrent]]></category>
		<category><![CDATA[facebook]]></category>
		<guid isPermaLink="false">http://www.tai-parinya.com/?p=1526</guid>

					<description><![CDATA[ช่วงนี้ผมกำลังนั่งซ่อม Beelony ครับ เพราะเจอกับปัญหา Concurrent!!! ในทางคอมพิวเตอร์อ่ะ ไอ้เจ้า Concurrent จะหมายถึง อะไร ๆ ที่มันทำพร้อม ๆ กัน ทำขนานกัน แย่ง ยื้อ ยุด ฉุด กระชาก ทรัพยากรชิ้นเดียวกัน ซึ่งในที่นี้ก็คงหนีไม่พ้น &#8220;ข้อมูล&#8221; ซึ่งบรรจุอยู่ใน &#8220;สดมภ์&#8221;]]></description>
										<content:encoded><![CDATA[<p>ช่วงนี้ผมกำลังนั่งซ่อม <a href="http://apps.facebook.com/beelony">Beelony</a> ครับ เพราะเจอกับปัญหา Concurrent!!!</p>
<p>ในทางคอมพิวเตอร์อ่ะ ไอ้เจ้า Concurrent จะหมายถึง อะไร ๆ ที่มันทำพร้อม ๆ กัน ทำขนานกัน แย่ง ยื้อ ยุด ฉุด กระชาก ทรัพยากรชิ้นเดียวกัน ซึ่งในที่นี้ก็คงหนีไม่พ้น &#8220;ข้อมูล&#8221; ซึ่งบรรจุอยู่ใน &#8220;สดมภ์&#8221; โดยประกอบอยู่ใน &#8220;ระเบียน&#8221; ของ &#8220;ตาราง&#8221; ใน &#8220;ฐานข้อมูล&#8221;!!!</p>
<p>ว่ากันตามจริงแล้ว ไอ้การทำเกมให้เป็นแบบ MMORPG นี่มันก็หินเหมือนกันเน้อะ เพราะมีความเป็นไปได้ที่ผู้เล่นซึ่งมีมากมายซะเหลือเกิน ที่เล่นในช่วงเวลาแคบ ๆ เวลาหนึ่ง จะพร้อมใจกันเข้าใช้ข้อมูลชุดเดียวกัน ซึ่งบังเอิ๊ญบังเอิญที่ชุดข้อมูลที่ว่านั้น ต้องการความสงบในการปรับปรุงเป็นอย่างมากซะด้วย คือ ขอให้ทำให้เสร็จก่อนได้มั้ยเว้ยเฮ้ย แล้วค่อยมาดึงเอาไปใช้อ่ะ ไม่ใช่กำลังเปลี่ยนแปลงอยู่ครึ่ง ๆ กลาง ๆ ก็ดันดึงเอาไปแบบนี้ งี้ก็เอาไปผิดอ่ะเด้!!!</p>
<p>ที่นี้เมื่อเจอกับปัญหาแบบนี้เราจะแก้ยังไงดี ติ๊กต่อก ๆ ๆ ๆ ในขั้นแรกผมก็คิดเอาไว้สองแบบ แบบแรก คือ การใช้กลไกของ RDBMS ทำการล็อกมันซะเลย ไม่ให้ใครได้ใช้ข้อมูลดุ้นนั้น ๆ จนกว่าจะปรับปรุงเสร็จ หรือ แบบสอง คือ จะไม่มีการปรัปปรุงใด ๆ ทั้งสิ้น จะตั้งหน้าตั้งตาเพิ่ม &#8220;ระเบียน&#8221; ข้อมูลเพียงอย่างเดียว แล้วเวลาจะใช้งานก็ค่อย ๆ เอา &#8220;ระเบียน&#8221; เหล่านั้นมายำรวม ๆ กัน แล้วทบยอดกันอีกทีนึง!!!</p>
<p>สุดท้าย ผมเลือกแบบที่สองอ่ะ เพราะมันง่ายดี แต่คงต้องลองตอนทดสอบใหญ่อีกทีว่ามันจะโอเคป่าว?</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.parinya.net/node/1526/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Beelony รุ่น Alpha แบบจัดเต็ม</title>
		<link>https://www.parinya.net/node/1510</link>
					<comments>https://www.parinya.net/node/1510#comments</comments>
		
		<dc:creator><![CDATA[ไท้ ปริญญา]]></dc:creator>
		<pubDate>Wed, 02 Feb 2011 02:15:17 +0000</pubDate>
				<category><![CDATA[AWS]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[amazon]]></category>
		<category><![CDATA[aws]]></category>
		<category><![CDATA[beelony]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[game]]></category>
		<guid isPermaLink="false">http://www.tai-parinya.com/?p=1510</guid>

					<description><![CDATA[ถ้าเราเล่น Beelony ไปเรื่อย ๆ ก็จะได้รวงเยอะ ๆ เหมือนในภาพข้างล่างนี้ บวกกับไอเท็มอีกเยอะแยะที่จะผลิตได้ ซึ่งมันเยอะเลยขี้เกียจจะนับ T-T แต่ถึงมันจะเป็นรุ่น Alpha แต่มันก็มีคุณสมบัติใกล้เคียงกับตัว Production นะเอ้อ]]></description>
										<content:encoded><![CDATA[<p>ถ้าเราเล่น <a href="http://apps.facebook.com/beelony">Beelony</a> ไปเรื่อย ๆ ก็จะได้รวงเยอะ ๆ เหมือนในภาพข้างล่างนี้ บวกกับไอเท็มอีกเยอะแยะที่จะผลิตได้ ซึ่งมันเยอะเลยขี้เกียจจะนับ T-T</p>
<p><a href="https://www.parinya.net/wp-content/uploads/2011/02/beelony_grow.png"><img decoding="async" src="https://www.parinya.net/wp-content/uploads/2011/02/beelony_grow.png" alt="" title="Beelony รุ่น Alpha แบบจัดเต็ม" width="600" height="494" class="aligncenter size-full wp-image-1511" srcset="https://www.parinya.net/wp-content/uploads/2011/02/beelony_grow.png 600w, https://www.parinya.net/wp-content/uploads/2011/02/beelony_grow-300x247.png 300w" sizes="(max-width: 600px) 100vw, 600px" /></a></p>
<p>แต่ถึงมันจะเป็นรุ่น Alpha แต่มันก็มีคุณสมบัติใกล้เคียงกับตัว Production นะเอ้อ</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.parinya.net/node/1510/feed</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
			</item>
	</channel>
</rss>
