<?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>Programming &#8211; PARINYA.NET</title>
	<atom:link href="https://www.parinya.net/node/category/programming/feed" rel="self" type="application/rss+xml" />
	<link>https://www.parinya.net</link>
	<description>Computation theories and information processing theories.</description>
	<lastBuildDate>Fri, 01 Mar 2019 08:05:37 +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>ทำไมโปรแกรมเมอร์เก่งถึงเป็นผู้จัดการโปรแกรมเมอร์ที่ดีไม่ได้</title>
		<link>https://www.parinya.net/node/2645</link>
					<comments>https://www.parinya.net/node/2645#respond</comments>
		
		<dc:creator><![CDATA[ไท้ ปริญญา]]></dc:creator>
		<pubDate>Fri, 20 Apr 2018 09:13:01 +0000</pubDate>
				<category><![CDATA[Management]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[ผู้จัดการโปรแกรมเมอร์]]></category>
		<category><![CDATA[โปรแกรมเมอร์]]></category>
		<guid isPermaLink="false">http://www.parinya.net/?p=2645</guid>

					<description><![CDATA[อ้างจาก Harvard Business Review เรื่อง Why the Most Productive People Don’t Always Make the Best Managers เลยลองเอามาประยุกต์กับงานโปรแกรมเมอร์ดูบ้าง โปรแกรมเมอร์ที่ทำงานได้เยอะได้ดี มักมีความสามารถและพฤติกรรมเหมือนกันอยู่ 7 อย่าง สร้างเป้าหมายในการเขียนโปรแกรมที่ท้าทาย เขียนโปรแกรมได้อย่างมีมาตรฐาน เน้นความรู้และความสามารถในการเขียนโปรแกรมให้อยู่ในระดับมืออาชีพ ผลลัพธ์ที่ได้จากการเขียนโปรแกรมต้องชัดเจน]]></description>
										<content:encoded><![CDATA[<p>อ้างจาก <a href="https://hbr.org">Harvard Business Review</a> เรื่อง <a href="https://hbr.org/2018/04/why-the-most-productive-people-dont-always-make-the-best-managers">Why the Most Productive People Don’t Always Make the Best Managers</a> เลยลองเอามาประยุกต์กับงานโปรแกรมเมอร์ดูบ้าง</p>
<p><span style="color: #ff0000;"><strong>โปรแกรมเมอร์</strong><span style="color: #000000;">ที่</span></span>ทำงานได้เยอะได้ดี มักมีความสามารถและพฤติกรรมเหมือนกันอยู่ 7 อย่าง</p>
<ol>
<li>สร้างเป้าหมายในการเขียนโปรแกรมที่ท้าทาย</li>
<li>เขียนโปรแกรมได้อย่างมีมาตรฐาน</li>
<li>เน้นความรู้และความสามารถในการเขียนโปรแกรมให้อยู่ในระดับมืออาชีพ</li>
<li>ผลลัพธ์ที่ได้จากการเขียนโปรแกรมต้องชัดเจน</li>
<li>รู้จักแก้ปัญหาในระหว่างการเขียนโปรแกรม</li>
<li>อดทนต่อความยากลำบากและอุปกรรคในการเขียนโปรแกรม</li>
<li>เขียนโปรแกรมร่วมมือกับโปรแกรมเมอร์คนอื่น ๆ ได้ดี</li>
</ol>
<p><span style="color: #ff0000;"><strong>ผู้จัดการโปรแกรมเมอร์</strong><span style="color: #000000;">ที่เก่ง</span></span> มักมีความสามารถและพฤติกรรมเหมือนกันอยู่ 6 อย่าง</p>
<ol>
<li>รู้จักฟังความคิดเห็นโปรแกรมเมอร์ และสร้างการเปลี่ยนแปลงให้กับงานโปรแกรมเมอร์</li>
<li>สนับสนุนให้โปรแกรมเมอร์ได้เรียนรู้ พัฒนา เติบโต</li>
<li>มองหานวัตกรรมใหม่ ๆ ในการเขียนโปรแกรมคอมพิวเตอร์</li>
<li>สื่อสารกับโปรแกรมเมอร์และผู้ใช้งานได้ดี</li>
<li>เข้าใจหัวอกโปรแกรมเมอร์ และรู้จักการเข้าสังคมกับโปรแกรมเมอร์และผู้ใช้งาน</li>
<li>สนับสนุนให้องค์กรโปรแกรมเมอร์มีการเติบโต</li>
</ol>
<p>สรุปแล้ว ไม่ง่ายที่โปรแกรมเมอร์จะเปลี่ยนไปเป็นผู้จัดการโปรแกรมเมอร์ และหายากที่จะมีคนเป็นได้ทั้งโปรแกรมเมอร์และผู้จัดการโปรแกรมเมอร์</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.parinya.net/node/2645/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ภาษาคอมพิวเตอร์กับแพลตฟอร์ม</title>
		<link>https://www.parinya.net/node/2504</link>
					<comments>https://www.parinya.net/node/2504#respond</comments>
		
		<dc:creator><![CDATA[ไท้ ปริญญา]]></dc:creator>
		<pubDate>Sat, 03 Jun 2017 15:54:47 +0000</pubDate>
				<category><![CDATA[Feature]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[ภาษาคอมพิวเตอร์]]></category>
		<category><![CDATA[แพลตฟอร์ม]]></category>
		<guid isPermaLink="false">http://www.parinya.net/?p=2504</guid>

					<description><![CDATA[บทความอันนี้ ผมไม่ได้ให้ความรู้อะไรนะ เป็นแค่การทบทวนตัวเอง ตัวเองก็คือตัวผมนี่แหล่ะ ก็เล่าเรื่อยเปื่อยไป และการทบทวนตัวเองของผม เป็นเรื่องของภาษาคอมพิวเตอร์ที่ผมเคยเรียนรู้ มีหลายภาษาคอมพิวเตอร์ที่ผมยังชำนาญอยู่ แต่ก็มีอีกหลายภาษาคอมพิวเตอร์ที่ผมเคยจับ เคยทำ พอผ่านไปแล้ว ก็ไม่ได้กลับไปทบทวน ซึ่งผมก็เชื่อว่า ถ้าต้องย้อนกลับไปทำ ก็น่าจะยังทำได้อยู่บ้าง (เหรอ จริงเหรอ?) แย่หน่อย ที่เดี๋ยวนี้ผมจำได้แต่หลักการ โครงสร้าง นิพจน์ และคำสงวนของภาษาคอมพิวเตอร์เท่านั้น ส่วนคำสั่งยิบย่อยนี่จำไม่ได้เลย ต้องเปิดคู่มือ ถ้าไม่มีคู่มือ]]></description>
										<content:encoded><![CDATA[<p>บทความอันนี้ ผมไม่ได้ให้ความรู้อะไรนะ เป็นแค่การทบทวนตัวเอง ตัวเองก็คือตัวผมนี่แหล่ะ ก็เล่าเรื่อยเปื่อยไป และการทบทวนตัวเองของผม เป็นเรื่องของภาษาคอมพิวเตอร์ที่ผมเคยเรียนรู้</p>
<p>มีหลายภาษาคอมพิวเตอร์ที่ผมยังชำนาญอยู่ แต่ก็มีอีกหลายภาษาคอมพิวเตอร์ที่ผมเคยจับ เคยทำ พอผ่านไปแล้ว ก็ไม่ได้กลับไปทบทวน ซึ่งผมก็เชื่อว่า ถ้าต้องย้อนกลับไปทำ ก็น่าจะยังทำได้อยู่บ้าง (เหรอ จริงเหรอ?)</p>
<p>แย่หน่อย ที่เดี๋ยวนี้ผมจำได้แต่หลักการ โครงสร้าง นิพจน์ และคำสงวนของภาษาคอมพิวเตอร์เท่านั้น ส่วนคำสั่งยิบย่อยนี่จำไม่ได้เลย ต้องเปิดคู่มือ ถ้าไม่มีคู่มือ ผมก็เขียนภาษาคอมพิวเตอร์นั้น ๆ อย่างสมบูรณ์ไม่ได้เหมือนกัน</p>
<p>มันเป็นเรื่องช่วยไม่ได้ เพราะเรามีเรื่องอื่นต้องจำอีกเยอะ!!!</p>
<p>ใน IEEE Spectrum ได้แบ่งประเภทของแพลตฟอร์มไว้ 4 ประเภท คือ Enterprise, Web, Mobile และ Embedded System ซึ่งแพลตฟอร์มเหล่านั้น ก็ล้วนทำงานอยู่บนเครื่องจักรประมวลผล ที่มีพฤติกรรมแบบคอมพิวเตอร์ทั้งนั้น ดังนั้น มันก็ต้องมีช่องทางให้สั่งงานมันได้ผ่านภาษาคอมพิวเตอร์ ไม่ว่าทางใดก็ทางนึง</p>
<p>ผมพยายามทบทวนว่าผมทำอะไรได้บ้าง มันสำคัญนะ คนเราต้องคิดเป็น ทำเป็น ถึงจะมีคุณค่า ดังนั้น ถ้าเป็นการสั่งคอมพิวเตอร์ด้วยภาษาคอมพิวเตอร์ ผมก็ต้องลองทบทวนว่าผมสั่งคอมพิวเตอร์บนแพลตฟอร์มแบบไหนได้บ้าง</p>
<figure id="attachment_2505" aria-describedby="caption-attachment-2505" style="width: 774px" class="wp-caption aligncenter"><a href="https://www.parinya.net/wp-content/uploads/2017/06/2560-06-03-21_24_08-PowerPoint-Slide-Show-Presentation1.png"><img fetchpriority="high" decoding="async" class="size-full wp-image-2505" src="https://www.parinya.net/wp-content/uploads/2017/06/2560-06-03-21_24_08-PowerPoint-Slide-Show-Presentation1.png" alt="ภาษาคอมพิวเตอร์กับแพลตฟอร์ม" width="774" height="373" srcset="https://www.parinya.net/wp-content/uploads/2017/06/2560-06-03-21_24_08-PowerPoint-Slide-Show-Presentation1.png 774w, https://www.parinya.net/wp-content/uploads/2017/06/2560-06-03-21_24_08-PowerPoint-Slide-Show-Presentation1-300x145.png 300w, https://www.parinya.net/wp-content/uploads/2017/06/2560-06-03-21_24_08-PowerPoint-Slide-Show-Presentation1-768x370.png 768w" sizes="(max-width: 774px) 100vw, 774px" /></a><figcaption id="caption-attachment-2505" class="wp-caption-text">ภาษาคอมพิวเตอร์กับแพลตฟอร์ม</figcaption></figure>
<p>ภาพข้างบนคือภาษาคอมพิวเตอร์และเครื่องไม้เครื่องมือที่ผมทำเป็น จะเห็นว่าผมไร้ทักษะในแพลตฟอร์ม Mobile และ Embedded&nbsp;อย่างเห็นได้ชัด!!!</p>
<p>คือคิดไม่เป็น ทำไม่เป็นเลยแหล่ะ ไม่ได้ไปเรียนรู้อะไรเลย และแพลตฟอร์มเหล่านั้นเป็นอนาคตซะด้วย!!!</p>
<p>มันเลยเหมือนผมเป็นคนเก่าแก่ในแพลตฟอร์มเก่า แต่เป็นเด็กใหม่ในแพลตฟอร์มใหม่ อะไรประมาณนั้น</p>
<p>ในขณะเดียวกัน บนแพลตฟอร์ม Enterprise หรือ Web เอง ทุกวันนี้ก็มีสิ่งใหม่ ๆ&nbsp;ปรากฎขึ้นมาให้ใช้งานมากมาย ไม่ว่าจะเป็นภาษา Python&nbsp;เอย Ruby เอย หรือเครื่องมือ เช่น&nbsp;Ruby on Rails, AngularJS, Node.js, Express.js แต่ผมก็ไม่ได้ไปต่อในเรื่องเหล่านี้เหมือนกัน</p>
<p>ทีนี้ย้อนกลับมาดูหลักคิดกันนิดนึง จะเห็นว่าผมใช้ตารางสองมิติเพื่อช่วยในการทบทวนตัวเอง โดยผมใช้การแจกแจกสิ่งที่ทำเป็นในด้านคอลัมน์ ในขณะที่ผมใช้การแจกแจงแพลตฟอร์มในด้านแถว จากนั้นก็บรรจุสิ่งที่ทำเป็นลงไปในนั้น ให้มันสอดคล้องกับด้านแถวและด้านคอลัมน์ แล้วมันก็ออกมาเป็นภาพข้างบน</p>
<p>ด้วยวิธีการนี้ทำให้ผมมองเห็นได้ง่าย ว่าผมอ่อนด้อยและไร้ทักษะในด้านไหนบ้าง และถ้ามันจำเป็น ผมหมายถึงจำเป็นจริง ๆ นะ ผมก็จะไปพัฒนาในด้านนั้น</p>
<p>อย่างเช่นตอนนี้ การพัฒนา Mobile Application เป็นเรื่องสำคัญ เพราะใคร ๆ ก็ใช้โทรศัพท์ฉลาดกันหมดแล้ว สัดส่วนการใช้คอมพิวเตอร์ตั้งโต๊ะและโน๊ตบุ๊คมันก็น้อยลงเรื่อย ๆ ถ้าผมต้องการ Mobile Application ของตัวเองซักตัวนึง ผมก็อาจไป<strong>จ้างให้ใครเขียนให้ก็ได้</strong></p>
<p><strong>อ้าวไม่ใช่ล่ะ!!!</strong></p>
<p>โดยสรุปแล้ว สำหรับผมนะ ตัวผมนั่นแหล่ะ ผมเห็นว่าการเรียนรู้ภาษาคอมพิวเตอร์ให้หลากหลายแพลตฟอร์ม มันก็สำคัญจริง ๆ เพียงแต่ว่าเราจะเลือกเรียนเพื่อเขียนเอง หรือจะเลือกเรียน เพื่อกำกับดูแลคนที่เขียนภาษาคอมพิวเตอร์เหล่านั้นอีกที อันนี้ก็แล้วแต่</p>
<p>เวลาแต่ล่ะคนมีจำกัด ก็ต้องเก็ง ๆ กันไปครับ</p>
<p>&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.parinya.net/node/2504/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ปัญหาการขาดแคลนโปรแกรมเมอร์</title>
		<link>https://www.parinya.net/node/2464</link>
					<comments>https://www.parinya.net/node/2464#respond</comments>
		
		<dc:creator><![CDATA[ไท้ ปริญญา]]></dc:creator>
		<pubDate>Sun, 12 Feb 2017 09:25:36 +0000</pubDate>
				<category><![CDATA[Management]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[ขาดแคลน]]></category>
		<category><![CDATA[โปรแกรมเมอร์]]></category>
		<guid isPermaLink="false">http://www.parinya.net/?p=2464</guid>

					<description><![CDATA[ข่าวออกมาถี่มาก เรื่องขาดแคลนโปรแกรมเมอร์เนี่ย เขียนโปรแกรมคอมพิวเตอร์ จริง ๆ มันไม่ได้ยาก แต่มันต้องมีโจทย์มาก่อน ทิศทางของโจทย์ จะทำให้ตัวโปรแกรมเมอร์รู้ได้เองว่า ตัวเองจะพัฒนาไปในทิศทางไหน ทิศทางของการพัฒนาโปรแกรมเมอร์ ซึ่งอิงตามโจทย์ จะขึ้นอยู่กับสามปัจจัย คือ 1. โปรแกรมคอมพิวเตอร์ต้องทำงานอยู่บนคอมพิวเตอร์แบบไหน? มันต้องทำงานอยู่บนคอมพิวเตอร์ที่อยู่ในห้องดาต้าเซ็นเตอร์ หรือ ที่ตั้งอยู่บนโต๊ะ หรือ ที่ถือติดมือพกพาได้ หรือ มันทำงานอยู่ในแอร์ ตู้เย็น หรือ]]></description>
										<content:encoded><![CDATA[<p>ข่าวออกมาถี่มาก เรื่องขาดแคลนโปรแกรมเมอร์เนี่ย</p>
<p>เขียนโปรแกรมคอมพิวเตอร์ จริง ๆ มันไม่ได้ยาก แต่มันต้องมีโจทย์มาก่อน</p>
<p>ทิศทางของโจทย์ จะทำให้ตัวโปรแกรมเมอร์รู้ได้เองว่า ตัวเองจะพัฒนาไปในทิศทางไหน</p>
<div class="text_exposed_show">
<p>ทิศทางของการพัฒนาโปรแกรมเมอร์ ซึ่งอิงตามโจทย์ จะขึ้นอยู่กับสามปัจจัย คือ</p>
<p>1. โปรแกรมคอมพิวเตอร์ต้องทำงานอยู่บนคอมพิวเตอร์แบบไหน? มันต้องทำงานอยู่บนคอมพิวเตอร์ที่อยู่ในห้องดาต้าเซ็นเตอร์ หรือ ที่ตั้งอยู่บนโต๊ะ หรือ ที่ถือติดมือพกพาได้ หรือ มันทำงานอยู่ในแอร์ ตู้เย็น หรือ มันฝังอยู่ในหุ่นยนต์</p>
<figure id="attachment_2465" aria-describedby="caption-attachment-2465" style="width: 474px" class="wp-caption aligncenter"><a href="https://www.parinya.net/wp-content/uploads/2017/02/16665653_10155810225142586_5898838388182753521_o.jpg"><img decoding="async" class="size-large wp-image-2465" src="https://www.parinya.net/wp-content/uploads/2017/02/16665653_10155810225142586_5898838388182753521_o-1024x489.jpg" alt="คลาสของคอมพิวเตอร์" width="474" height="226" srcset="https://www.parinya.net/wp-content/uploads/2017/02/16665653_10155810225142586_5898838388182753521_o-1024x489.jpg 1024w, https://www.parinya.net/wp-content/uploads/2017/02/16665653_10155810225142586_5898838388182753521_o-300x143.jpg 300w, https://www.parinya.net/wp-content/uploads/2017/02/16665653_10155810225142586_5898838388182753521_o-768x367.jpg 768w, https://www.parinya.net/wp-content/uploads/2017/02/16665653_10155810225142586_5898838388182753521_o.jpg 1340w" sizes="(max-width: 474px) 100vw, 474px" /></a><figcaption id="caption-attachment-2465" class="wp-caption-text">คลาสของคอมพิวเตอร์</figcaption></figure>
<p>2. โปรแกรมคอมพิวเตอร์ต้องประพฤติตนแบบไหน? อันนี้จัดง่ายเพราะ IEEE Spectrum เขาจัดไว้ให้แล้ว คือ เป็น web application หรือ mobile application หรือ enterprise application หรือ embedded application</p>
<p>ถ้าลองเอาข้อ 1 กับ 2 มา combination กัน ก็อาจยกตัวอย่างได้เช่น web application และ enterprise application มีโอกาสทำงานอยู่บนคอมพิวเตอร์ที่อยู่ในห้องดาต้าเซ็นเตอร์ได้ทั้งคู่ และเพื่อจะสร้าง app ทั้งสองแบบนี้ โปรแกรมเมอร์ก็จะต้องใช้ทักษะที่แตกต่างกัน ต้องพัฒนาตัวเองไปในทิศทางที่แตกต่างกัน เป็นต้น</p>
<p>3. ภาษาคอมพิวเตอร์ที่เหมาะสมและกำลังเป็นที่นิยม ซึ่งสอดคล้องกับข้อ 1 และ 2 คือภาษาอะไร อันนี้ก็ง่ายในการจัดลำดับอีกเหมือนกัน เพราะ IEEE Spectrum เขาจัดอันดับให้แล้ว</p>
<figure id="attachment_2466" aria-describedby="caption-attachment-2466" style="width: 474px" class="wp-caption aligncenter"><a href="https://www.parinya.net/wp-content/uploads/2017/02/16665288_10155810225122586_1411837288981874254_o.jpg"><img decoding="async" class="size-large wp-image-2466" src="https://www.parinya.net/wp-content/uploads/2017/02/16665288_10155810225122586_1411837288981874254_o-509x1024.jpg" alt="IEEE Spectrum Top Programming Language 2016" width="474" height="954" srcset="https://www.parinya.net/wp-content/uploads/2017/02/16665288_10155810225122586_1411837288981874254_o-509x1024.jpg 509w, https://www.parinya.net/wp-content/uploads/2017/02/16665288_10155810225122586_1411837288981874254_o-149x300.jpg 149w, https://www.parinya.net/wp-content/uploads/2017/02/16665288_10155810225122586_1411837288981874254_o.jpg 640w" sizes="(max-width: 474px) 100vw, 474px" /></a><figcaption id="caption-attachment-2466" class="wp-caption-text">IEEE Spectrum Top Programming Language 2016</figcaption></figure>
<p>จะเห็นว่า combination มันมี 3 ตัวแปร ซึ่งแปลว่ามันเยอะ</p>
<p>พอมันเยอะมันก็ต้องโฟกัส ไม่มีใครเก่งได้ทุกอย่าง โปรแกรมเมอร์เองก็ถือว่าเป็นบุคคลากรสับละเอียด แต่ล่ะคนเขาก็ชอบของเขา เขาก็โตมาแบบของเขา แต่เขาไม่ได้มาเก็งว่าทิศทางการพัฒนาทักษะของเขา มันสอดคล้องกับทิศทางของโจทย์หรือเปล่า</p>
<p>ยกตัวอย่าง บางคนเก่งภาษา C สำหรับสร้างโปรแกรมคอมพิวเตอร์แบบ enterprise application เพื่อใช้ในคอมพิวเตอร์ที่ทำงานอยู่ในดาต้าเซ็นเตอร์ เขาชำนาญด้านการสร้าง services, daemon, multi processing, multithreading และ tcp server socket</p>
<p>แต่ตอนนี้ภาษา php สำหรับงานด้าน web application ซึ่งก็ทำงานอยู่บนคอมพิวเตอร์ที่ทำงานอยู่ในดาต้าเซ็นเตอร์เหมือนกัน กำลังได้รับความนิยม เขาจำเป็นจะต้องแบ่งเวลาพัฒนาตัวเองในย่อหน้าบน เพื่อมาพัฒนาในย่อหน้านี้แค่ไหน?</p>
<p>หรือเขาจะยังคงทิศทางการพัฒนา enterprise application เพื่อทำงานบนคอมพิวเตอร์ที่ทำงานอยู่บนดาต้าเซ็นเตอร์ต่อไป โดยเปลี่ยนจากภาษา C เป็นภาษา Python แทน?</p>
<p>จะเห็นว่าอันนี้ตัดสินใจไม่ได้ เพราะขึ้นกับทิศทางของโจทย์ ถ้าทางเดิมมันยังไปได้ไกล ก็เดินต่อไปได้ ส่วนทางใหม่ก็ให้ใคร ๆ เดินต่อไป แต่ถ้าทางเดิมมันเดินไปไม่ได้ ก็ต้องเปลี่ยนมาเดินทางใหม่กับใคร ๆ เขา</p>
<p>เมืองไทยเราน่ะมีโปรแกรมเมอร์เยอะ เก่งด้วย เห็นมีเป็นพันคน แต่เขาสับละเอียดไง ดังนั้น เวลาจะบอกว่าขาดแคลนโปรแกรมเมอร์ ให้วนไปดู 3 ข้อข้างบน แล้วบอกมาว่า combination ไหนที่ขาดแคลน!!!</p>
<p>บางทีคนพอ แต่อาจกระจัดกระจาย ก็เอามารวมอยู่ด้วยกัน แต่ถ้าไม่พอก็ค่อยมาคิดอ่านว่าจะสร้างเพิ่มกันขึ้นมาได้ยังไง</p>
</div>
]]></content:encoded>
					
					<wfw:commentRss>https://www.parinya.net/node/2464/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>กระบวนการแปลภาษาทางคอมพิวเตอร์</title>
		<link>https://www.parinya.net/node/2302</link>
					<comments>https://www.parinya.net/node/2302#respond</comments>
		
		<dc:creator><![CDATA[ไท้ ปริญญา]]></dc:creator>
		<pubDate>Sat, 12 Mar 2016 08:20:03 +0000</pubDate>
				<category><![CDATA[Compiler]]></category>
		<category><![CDATA[Feature]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[กระบวนการ]]></category>
		<category><![CDATA[คอมไพเลอร์]]></category>
		<guid isPermaLink="false">http://www.parinya.net/?p=2302</guid>

					<description><![CDATA[หลายวันก่อนอ่านในกระทู้พันทิป เหมือนมีคนมาตั้งกระทู้ถามว่า กระบวนการแปลภาษาทางคอมพิวเตอร์มันเป็นยังไง แบบว่าไม่เข้าใจ อะไรประมาณนั้น ซึ่งผมมองว่าเป็นคำถามที่ดี เพราะแสดงว่าเขากำลังสนใจวัตถุประสงค์ของการแปลภาษาทางคอมพิวเตอร์ มากกว่าสนใจในภาษาคอมพิวเตอร์ชั้นสูง ซึ่งมีออกมาใหม่ ๆ กันมากมายหลายภาษาซะเหลือเกิน ผมคิดว่าคนที่ตั้งกระทู้ถาม น่าจะเป็นคนรุ่นใหม่ ผมเองเห็นใจคนรุ่นใหม่มาก เพราะพวกเขาอยู่ในยุคสมัยที่ช่องว่างระหว่างเทคโนโลยีต้นน้ำกับเทคโนโลยีปลายน้ำมันห่างออกไปทุกที พวกเขากำลังถูกผลักให้กลายเป็นผู้ใช้งาน มากกว่าเป็นผู้คิดค้นวิจัยพัฒนา พวกเขาถูกสิ่งกีดกันที่เรียกว่าเวลาในการเรียนรู้มาขวางทางเขาเอาไว้ พวกเขาต้องมีเวลามากพอในการเรียนรู้ย้อนกลับจากเทคโนโลยีปลายน้ำไปหาเทคโนโลยีต้นน้ำ เพื่อทำความเข้าใจที่มาที่ไป เพื่อจะได้สร้างเทคโนโลยีปลายน้ำใหม่ ๆ หรือตั้งต้นสร้างเทคโนโลยีต้นน้ำใหม่ได้ เมืองไทยเรานับคนได้เลย ที่คิดจะคิดภาษาคอมพิวเตอร์ชั้นสูง]]></description>
										<content:encoded><![CDATA[<p>หลายวันก่อนอ่านในกระทู้พันทิป เหมือนมีคนมาตั้งกระทู้ถามว่า กระบวนการแปลภาษาทางคอมพิวเตอร์มันเป็นยังไง แบบว่าไม่เข้าใจ อะไรประมาณนั้น ซึ่งผมมองว่าเป็นคำถามที่ดี เพราะแสดงว่าเขากำลังสนใจวัตถุประสงค์ของการแปลภาษาทางคอมพิวเตอร์ มากกว่าสนใจในภาษาคอมพิวเตอร์ชั้นสูง ซึ่งมีออกมาใหม่ ๆ กันมากมายหลายภาษาซะเหลือเกิน</p>
<p>ผมคิดว่าคนที่ตั้งกระทู้ถาม น่าจะเป็นคนรุ่นใหม่ ผมเองเห็นใจคนรุ่นใหม่มาก เพราะพวกเขาอยู่ในยุคสมัยที่ช่องว่างระหว่างเทคโนโลยีต้นน้ำกับเทคโนโลยีปลายน้ำมันห่างออกไปทุกที พวกเขากำลังถูกผลักให้กลายเป็นผู้ใช้งาน มากกว่าเป็นผู้คิดค้นวิจัยพัฒนา พวกเขาถูกสิ่งกีดกันที่เรียกว่าเวลาในการเรียนรู้มาขวางทางเขาเอาไว้ พวกเขาต้องมีเวลามากพอในการเรียนรู้ย้อนกลับจากเทคโนโลยีปลายน้ำไปหาเทคโนโลยีต้นน้ำ เพื่อทำความเข้าใจที่มาที่ไป เพื่อจะได้สร้างเทคโนโลยีปลายน้ำใหม่ ๆ หรือตั้งต้นสร้างเทคโนโลยีต้นน้ำใหม่ได้</p>
<p>เมืองไทยเรานับคนได้เลย ที่คิดจะคิดภาษาคอมพิวเตอร์ชั้นสูง ผมเคยเห็นมีอยู่คนนึงนานแล้ว ชื่อ อาจหาญ สัตยารักษ์ เคยคิดค้นภาษาคอมพิวเตอร์ที่มีไวยากรณ์เป็นภาษาไทย จุดประสงค์เพื่อสั่งให้คอมพิวเตอร์รับข้อมูลเข้าเป็นภาษาไทย และแสดงผลเป็นภาษาไทยได้ แต่เรื่องมันก็นานมาแล้ว ภาษาคอมพิวเตอร์นี้ก็ถูกลืมเลือนหายไป</p>
<p>จริง ๆ แล้วภาษาคอมพิวเตอร์เป็นสินค้าแฟชั่นนะครับ มันมักจะมีดีของมันตามยุคตามสมัย บ้างก็ดีเพราะไวยากรณ์ของมันทำให้คนเขียนโปรแกรมชีวิตดี๊ดี บ้างก็ดีเพราะพอแปลเป็นภาษาเครื่องแล้วมันมีขนาดเล็กกระทัดรัดทำงานเร็วจี๊ด</p>
<p>โดยองค์ประกอบหลัก ๆ ของการเกิดขึ้นและตั้งอยู่ของภาษาทางคอมพิวเตอร์ก็มีอยู่ 2 ประการคือ หนึ่งไวยากรณ์ของภาษา และ สองโปรแกรมที่จะแปลไวยากรณ์ของภาษาให้เป็นภาษาเครื่อง</p>
<p>เห็นมั้ยครับ? จริง ๆ ไม่มีอะไรเลย แค่คิดค้นภาษาและตัวแปลมันเท่านั้นเอง และส่วนใหญ่คนหรือกลุ่มคนที่คิดค้นภาษาทางคอมพิวเตอร์ใหม่ ๆ ก็มักจะต้องรับผิดชอบในการสร้างโปรแกรมเพื่อแปลภาษาที่คิดค้นให้เป็นภาษาเครื่องด้วย อันนี้เป็นข้อเท็จจริง ใครคิดคนนั้นทำ</p>
<p>งั้นเรามาสมมติว่าเราเป็นผู้ที่สามารถคิดค้นหน่วยประมวลผลแบบดิจิทัลขนาดเล็กที่ใช้พลังงานน้อย มีพื้นที่จัดเก็บข้อมูลและชุดคำสั่งขนาดเล็กแต่ความจุสูง และสามารถป้อนชุดคำสั่งได้ 3,000 ชุดคำสั่งใน 1 วินาที โดยหน่วยประมวลผลถูกติดตั้งอยู่ในหุ่นยนต์สูง 50 เซ็นติเมตร มีกำลัง 1 แรงม้า นะครับ</p>
<p>และสมมติว่าหน่วยประมวลผลที่คิดค้นขึ้น มันรู้จักชุดคำสั่งภาษาเครื่องหลายร้อยคำสั่งเลยนะครับ ดังนั้น เริ่มแรกถ้าเราจะสั่งให้มันทำงาน สมมติว่าจะสั่งให้หุ่นยนต์กระพริบตา เราก็ต้องสั่งมันด้วยภาษาเครื่องถูกมั้ยครับ ตามรูปข้างล่างนี้</p>
<figure id="attachment_2306" aria-describedby="caption-attachment-2306" style="width: 721px" class="wp-caption aligncenter"><a href="https://www.parinya.net/wp-content/uploads/2016/03/compiler1.png" rel="attachment wp-att-2306"><img loading="lazy" decoding="async" class="size-full wp-image-2306" src="https://www.parinya.net/wp-content/uploads/2016/03/compiler1.png" alt="สั่งเครื่องจักรด้วยภาษาเครื่อง" width="721" height="309" srcset="https://www.parinya.net/wp-content/uploads/2016/03/compiler1.png 721w, https://www.parinya.net/wp-content/uploads/2016/03/compiler1-300x129.png 300w" sizes="auto, (max-width: 721px) 100vw, 721px" /></a><figcaption id="caption-attachment-2306" class="wp-caption-text">สั่งเครื่องจักรด้วยภาษาเครื่อง</figcaption></figure>
<p>ดิบมากครับ ถ้าเราสั่งให้หุ่นยนต์กระพริบตา เราก็คงต้องใช้ภาษาเครื่องหลาย ๆ บรรทัด ค่อย ๆ สั่งคำนวณบวกลบคูณหาร สั่งย้ายค่าเข้าออกที่เก็บข้อมูล สั่งให้ทดสัญญาณดิจิทัล เพื่อเพิ่มลดกระแสไฟฟ้า เพิ่มลดความต้านทานไฟฟ้า เพิ่มลดแรงดันไฟฟ้า วนรอบรอจังหวะ บลา ๆ ๆ กว่าจะสั่งให้หุ่นยนต์กระพริบตาสำเร็จหนึ่งที</p>
<p>มันด้อยประสิทธิภาพมากเลยใช่มั้ยครับ คนที่จะสั่งเครื่องจักรก็ต้องเหนื่อยน่าดู กว่าจะเขียนคำสั่งจำนวนหลาย ๆ บรรทัด โดยจะต้องจดจำคำสั่งภาษาเครื่อง หรือดีหน่อยก็ชำเลืองมองคู่มือภาษาเครื่องไปพลาง เขียนคำสั่งไปพลาง เพื่อสั่งให้เครื่องจักรทำงานให้ ซึ่งได้ผลนิดเดียว!</p>
<p>ทีนี้เพื่อความง่ายขึ้น เราก็น่าจะเพิ่มประสิทธิภาพ โดยการคิดค้นภาษาระดับล่างขึ้นมา เพื่อทดแทนภาษาเครื่องดีกว่า ซึ่งองค์ประกอบมันก็ต้องมี 2 อย่างแบบที่บอกไว้ คือ ต้องมีไวยากรณ์ และต้องมีตัวแปลภาษา ดังนั้น ก็ต้องคิดค้นไวยากรณ์ขึ้นมา จากนั้นก็ใช้ภาษาเครื่องที่มีนั่นแหล่ะครับ มาสร้างตัวแปลภาษา เพื่อแปลภาษาระดับล่าง ให้กลายเป็นภาษาเครื่อง แล้วก็เอาไปสั่งเครื่องจักรให้มันทำงานต่อไปได้</p>
<p>ดังนั้น ด้วยการเสียสละเวลาเพื่อคิดค้นพัฒนา ก็จะทำให้การสั่งเครื่องจักรในครั้งต่อ ๆ ไป ไม่ต้องใช้ภาษาเครื่อง แต่ใช้ภาษาระดับล่างแทน ดังรูปด้านล่าง</p>
<figure id="attachment_2307" aria-describedby="caption-attachment-2307" style="width: 848px" class="wp-caption aligncenter"><a href="https://www.parinya.net/wp-content/uploads/2016/03/compiler2.png" rel="attachment wp-att-2307"><img loading="lazy" decoding="async" class="size-full wp-image-2307" src="https://www.parinya.net/wp-content/uploads/2016/03/compiler2.png" alt="การแปลภาษาเครื่องให้เป็นภาษาระดับล่าง" width="848" height="557" srcset="https://www.parinya.net/wp-content/uploads/2016/03/compiler2.png 848w, https://www.parinya.net/wp-content/uploads/2016/03/compiler2-300x197.png 300w, https://www.parinya.net/wp-content/uploads/2016/03/compiler2-768x504.png 768w" sizes="auto, (max-width: 848px) 100vw, 848px" /></a><figcaption id="caption-attachment-2307" class="wp-caption-text">การแปลภาษาเครื่องให้เป็นภาษาระดับล่าง</figcaption></figure>
<p>แบบนี้คือชีวิตดีขึ้นมั้ย? ก็ยังไม่ได้ดีขึ้นอะไรมากมายครับ เพราะภาษาระดับล่าง ยังไงก็ทำงานแบบ 1 ต่อ 1 กับภาษาเครื่องอยู่แล้ว มันไม่ได้ช่วยทำให้เขียนน้อยลง แต่มันช่วยเรื่องไวยากรณ์ จากเดิมที่เคยต้องเขียนสั่งด้วยภาษาเครื่องที่เป็นเลขฐานสอง ก็เปลี่ยนมาเป็นภาษาระดับล่างซึ่งมีคำสั่งแบบข้อความสั้น ๆ หรือคำย่อแทน</p>
<p>คนเรามักจะคิดคล้าย ๆ กันครับ คือถ้าสั่งอะไรให้ใครทำ ก็หวังจะสั่งด้วยคำสั่งที่ง่าย ๆ และสั่งแค่คำสั่งไม่กี่คำสั่ง ที่เหลือก็ให้ไปคิดเองว่าจะต้องไปทำอะไรบ้าง ดังนั้น ถ้าเราคิดจะสั่งให้หุ่นยนต์กระพริบตา จะดีกว่ามั้ยถ้าไม่ต้องมาเขียนภาษาเครื่องหลาย ๆ บรรทัด หรือเขียนภาษาระดับล่าง ๆ หลาย ๆ บรรทัดเพื่อสั่งมัน?</p>
<p>งั้นเรามาคิดค้นภาษาระดับสูงกันดีกว่า ซึ่งจะมีความยากขึ้นทั้งการออกแบบไวยากรณ์และการสร้างตัวแปลภาษา แต่พอทำสำเร็จชีวิตเราจะดีขึ้นเพราะในการสั่งงานเครื่องจักรครั้งถัด ๆ ไป แทนที่เราจะต้องเขียนภาษาระดับล่างเพื่อสั่งเครื่องจักร ก็เปลี่ยนเป็นเขียนด้วยภาษาระดับสูงเพื่อสั่งเครื่องจักรแทน</p>
<p>และเนื่องจากเราเคยสร้างภาษาระดับล่างไว้แล้ว มันก็จะเป็นการลดขั้นตอนในการสร้างตัวแปลภาษา เพราะแทนที่เราจะต้องเขียนตัวแปลภาษาด้วยภาษาเครื่อง เพื่อแปลภาษาระดับสูงให้เป็นภาษาเครื่อง เราก็เปลี่ยนเป็นเขียนตัวแปลภาษาด้วยภาษาระดับล่าง เพื่อแปลภาษาระดับสูงเป็นภาษาเครื่องแทน เบาแรงขึ้นเยอะ ดังรูปด้านล่างนี้</p>
<figure id="attachment_2308" aria-describedby="caption-attachment-2308" style="width: 868px" class="wp-caption aligncenter"><a href="https://www.parinya.net/wp-content/uploads/2016/03/compiler3.png" rel="attachment wp-att-2308"><img loading="lazy" decoding="async" class="size-full wp-image-2308" src="https://www.parinya.net/wp-content/uploads/2016/03/compiler3.png" alt="การแปลภาษาระดับสูงเป็นภาษาเครื่อง" width="868" height="752" srcset="https://www.parinya.net/wp-content/uploads/2016/03/compiler3.png 868w, https://www.parinya.net/wp-content/uploads/2016/03/compiler3-300x260.png 300w, https://www.parinya.net/wp-content/uploads/2016/03/compiler3-768x665.png 768w" sizes="auto, (max-width: 868px) 100vw, 868px" /></a><figcaption id="caption-attachment-2308" class="wp-caption-text">การแปลภาษาระดับสูงเป็นภาษาเครื่อง</figcaption></figure>
<p>พอมาถึงตรงนี้จะเริ่มงงล่ะ ไอ้นั่นแปลเป็นไอ้นี่ ไอ้นี่แปลเป็นไอ้นั่น อย่าไปงงครับ จริง ๆ แล้วหลักการมันไม่มีอะไรมาก มันคือการสร้างเครื่องมือ เพื่อเอาไปสร้างเครื่องมือ ต่อ ๆ ไปเรื่อย ๆ ครับ โดยเครื่องมือที่ถูกสร้างในแต่ล่ะขั้นตอน ก็อาจจะเอาไปสร้างอย่างอื่นที่ไม่ใช่เครื่องมือ อะไรประมาณนั้น</p>
<p>จะเห็นว่าด้วยกระบวนการแบบนี้ เราก็จะสามารถสร้างภาษาชั้นสูงให้มันสูงขึ้นไปได้เรื่อย ๆ สร้างให้มันมีไวยากรณ์เข้าใกล้ภาษามนุษย์ไปเรื่อย ๆ จนอาจจะเปลี่ยนจากภาษาไปเป็นอย่างอื่นที่ไม่ใช่ภาษาเพื่อสั่งงานเครื่องจักรก็ได้</p>
<p>จากที่อธิบายและสมมติให้ดู ก็สามารถย้ำได้อีกครั้งนะครับว่า จริง ๆ แล้วกระบวนการแปลภาษาทางคอมพิวเตอร์ มันเกี่ยวกับ ไวยากรณ์ของภาษา และ ตัวแปลภาษา เท่านั้นเอง ดังนั้น ถ้าจากตัวอย่างข้างบน เรากำหนดให้ไวยากรณ์ของภาษาระดับล่างคือภาษาแอสเซมบลี้ และภาษาระดับสูงคือภาษาซี งั้นเพื่อจะสั่งหุ่นยนต์ให้กระพริบตา เราก็ทำแค่ตัวแปลภาษาก็พอ ไม่ต้องมาเมื่อยตุ้มคิดค้นไวยากรณ์ของภาษาเอง เป็นการทุ่นแรงลงไปอีกต่อหนึ่ง เพราะงานแบบนี้มันเป็นการทำเพราะความจำเป็นไม่ใช่ทำเพราะแฟชั่น</p>
<p>แต่ถ้าเราจะสร้างภาษาระดับสูงด้วยเหตุผลทางแฟชั่น อันนี้ก็ต้องคิดค้นไวยากรณ์ขึ้นมาใหม่ และรับผิดชอบสร้างตัวแปลภาษาเองครับ ซึ่งแฟชั่นที่ว่าก็เช่น ถ้าช่วงนี้ใคร ๆ ก็อยากจะสั่งเครื่องจักรให้ทำงานด้าน Machine Learning หรือ Data Mining หรือ Data Science หรือ 3D Printing และภาษาชั้นสูงที่มีในปัจจุบัน มันไม่เอื้อต่องานด้านนี้ ก็สามารถสร้างกันขึ้นมาใหม่ได้ครับ ตามแฟชั่นกันไป</p>
<p>&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.parinya.net/node/2302/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ทักษะสำคัญ 5 ประการในวิชาชีพคอมพิวเตอร์ (หรือวิชาชีพอื่น ๆ)</title>
		<link>https://www.parinya.net/node/2243</link>
					<comments>https://www.parinya.net/node/2243#comments</comments>
		
		<dc:creator><![CDATA[ไท้ ปริญญา]]></dc:creator>
		<pubDate>Sat, 07 Nov 2015 15:08:39 +0000</pubDate>
				<category><![CDATA[Management]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[ความรู้]]></category>
		<category><![CDATA[คอมพิวเตอร์]]></category>
		<category><![CDATA[ทักษะ]]></category>
		<category><![CDATA[วิชาชีพ]]></category>
		<guid isPermaLink="false">http://www.parinya.net/?p=2243</guid>

					<description><![CDATA[เมื่อ 17 ปีก่อน ผมเป็นโปรแกรมเมอร์ที่เขียนโปรแกรมคอมพิวเตอร์ได้อย่างมีประสิทธิภาพมาก โปรแกรมคอมพิวเตอร์ที่ผมเขียนจะสะอาด มีการกำกับหมายเหตุ มีการกำกับเลขรุ่น เขียนตามหลักการเชิงวัตถุ ถูกเขียนขึ้นเพื่อตอบสนองความซับซ้อนของโจทย์ปัญหาให้ได้ประสิทธิผล ตอนนั้นผมสงสัย ผมสงสัยว่าทำไมผมจึงไม่ก้าวหน้าในหน้าที่การงาน ในขณะที่พี่อีกคนนึงซึ่งด้อยในการเขียนโปรแกรมคอมพิวเตอร์มากกว่าผม กลับก้าวหน้ากว่ามาก หนำซ้ำยังได้รับความเชื่อถือจากผู้บริหารระดับเบื้องบนอีกต่างหาก ภายหลังผมจึงเข้าใจ การออกไปผจญโลกภายนอกในวิชาชีพคอมพิวเตอร์ (หรือวิชาชีพอื่น ๆ) มันต้องมีทักษะสำคัญ 5 ประการ คือ 1. ความรู้ทางทฤษฎี เช่น]]></description>
										<content:encoded><![CDATA[<p>เมื่อ 17 ปีก่อน ผมเป็นโปรแกรมเมอร์ที่เขียนโปรแกรมคอมพิวเตอร์ได้อย่างมีประสิทธิภาพมาก โปรแกรมคอมพิวเตอร์ที่ผมเขียนจะสะอาด มีการกำกับหมายเหตุ มีการกำกับเลขรุ่น เขียนตามหลักการเชิงวัตถุ ถูกเขียนขึ้นเพื่อตอบสนองความซับซ้อนของโจทย์ปัญหาให้ได้ประสิทธิผล</p>
<p>ตอนนั้นผมสงสัย ผมสงสัยว่าทำไมผมจึงไม่ก้าวหน้าในหน้าที่การงาน ในขณะที่พี่อีกคนนึงซึ่งด้อยในการเขียนโปรแกรมคอมพิวเตอร์มากกว่าผม กลับก้าวหน้ากว่ามาก หนำซ้ำยังได้รับความเชื่อถือจากผู้บริหารระดับเบื้องบนอีกต่างหาก</p>
<p>ภายหลังผมจึงเข้าใจ</p>
<p>การออกไปผจญโลกภายนอกในวิชาชีพคอมพิวเตอร์ (หรือวิชาชีพอื่น ๆ) มันต้องมีทักษะสำคัญ 5 ประการ คือ</p>
<p>1. ความรู้ทางทฤษฎี เช่น ความรู้ในทฤษฎีคอมพิวเตอร์ ความรู้ในผลิตภัณฑ์หรือบริการทางคอมพิวเตอร์ ความรู้ในกระบวนการทางคอมพิวเตอร์</p>
<p>2. ความเชี่ยวชาญในการปฏิบัติ เช่น ทักษะการเขียนโปรแกรม ทักษะการเขียนเอกสารวิเคราะห์ระบบ ทักษะการสร้างเอกสารเพื่อบรรยาย ทักษะการบรรยายนำเสนอ ทักษะการใช้งานผลิตภัณฑ์หรือบริการทางคอมพิวเตอร์</p>
<p>3. ความมีเสน่ห์ คือ มีบุคลิกภาพดึงดูดผู้คนให้เข้าหา หน้าตาอิ่มเอมไม่เศร้าหมอง พูดจาดีน่าเชื่อถือ น้ำเสียงไม่ขู่กรรโชก วาจาไม่ก้าวร้าว ไม่ยกตนข่มท่าน ไม่ชักสีหน้า รู้จักรักษาน้ำใจคน</p>
<p>4. ความเป็นผู้นำ คือ กล้าแสดงตัว กล้าอาสา กล้าออกรับแทนคนอื่น รู้จังหวะการเป็นผู้นำและผู้ตาม กล้าคิดกล้าตัดสินใจอย่างมีสติ เป็นที่พึ่งพาของผู้อื่น</p>
<p>5. การบริหารการเมือง คือ รู้จักจัดสรรผลประโยชน์ เพื่อแบ่งให้ตัวเองและผู้อื่น รู้จักการเข้าหาผู้คน รู้จักการประนีประนอม รู้จักใช้ทฤษฎีเกม รู้จักวิธีการพึ่งพาผู้อื่นอย่างเหมาะสม รู้จักการอ่านใจคนและอ่านพฤติกรรมคน</p>
<p>ผมมีข้อ 2 แค่ข้อเดียว ส่วนข้ออื่นด้อยหมด</p>
<p>ในขณะที่พี่คนนั้นเขาด้อยในข้อ 2 แต่มีดีในข้อที่เหลือทั้ง 4 ข้อ</p>
<p>มันก็เป็นดังนี้แล &#8230;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.parinya.net/node/2243/feed</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>ให้ PHP ใช้ SAPRFC เพื่อดึงข้อมูลจาก SAP R/3</title>
		<link>https://www.parinya.net/node/1681</link>
					<comments>https://www.parinya.net/node/1681#comments</comments>
		
		<dc:creator><![CDATA[ไท้ ปริญญา]]></dc:creator>
		<pubDate>Mon, 12 Mar 2012 15:02:34 +0000</pubDate>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[SAP]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[SAPRFC]]></category>
		<guid isPermaLink="false">http://www.parinya.net/?p=1681</guid>

					<description><![CDATA[ผมกำลังจะทำชิ้นงานหนึ่งชิ้น เพื่อดึงเอาข้อมูลออกจาก SAP R/3 ออกมาใช้ครับ โดยชิ้นงานที่ว่าจะออกเป็นแนว Web Application ซึ่งผมก็คิดว่าผมจะสร้างมันด้วย PHP โดยจะใช้ SAPRFC ซึ่งเป็น PHP Extension สำหรับแทงทะลุเข้าไปใน SAP R/3 ครับ จริง ๆ แล้วผมจะเขียนภาษา ABAP เพื่อให้มันทำงานบน SAP]]></description>
										<content:encoded><![CDATA[<p>ผมกำลังจะทำชิ้นงานหนึ่งชิ้น เพื่อดึงเอาข้อมูลออกจาก SAP R/3 ออกมาใช้ครับ โดยชิ้นงานที่ว่าจะออกเป็นแนว Web Application ซึ่งผมก็คิดว่าผมจะสร้างมันด้วย PHP โดยจะใช้ SAPRFC ซึ่งเป็น PHP Extension สำหรับแทงทะลุเข้าไปใน SAP R/3 ครับ</p>
<p>จริง ๆ แล้วผมจะเขียนภาษา ABAP เพื่อให้มันทำงานบน SAP R/3 ก็ได้นะ มันได้ผลเหมือนกัน เพียงแต่ผมอยากจะแสดงผลออกมาเป็น Web Application ที่มีลูกเล่นสวย ๆ โดยใช้ XHTML + CSS + jQuery + AJAX มากกว่า และอีกอย่างผมก็ไม่อยากจะให้ผู้ใช้งาน ต้องมาติดตั้ง SAP GUI ให้วุ่นวายด้วย ก็เลยเลือกทำเป็น Web Application แทน</p>
<p>หลัก ๆ แล้วการเชื่อมต่อจาก PHP ไปที่ SAP R/3 สามารถทำได้สองวิธีครับ คือใช้ <a href="http://en.wikipedia.org/wiki/Remote_function_call">RFC</a> กับใช้ <a href="http://en.wikipedia.org/wiki/SOAP">SOAP</a> แต่ผมเลือกใช้ RFC เพราะมีคนเก่ง ๆ ทำ PHP Extension ที่เรียกว่า SAPRFC ให้เราแล้ว ทำเป็น API สวยงาม พร้อมให้เราเรียกใช้ได้เลย</p>
<p>ตอนแรกผมนึกว่าผมจะใช้ ASP.NET เพื่อทำเป็น Web Application แล้วต่อเชื่อมไป SAP R/3 ด้วย SAP Netweaver ที่มี API ของ .NET Framework เตรียมมาให้ แต่แย่หน่อย ผมไม่ได้เป็นสาวกของ Microsoft ผมชอบ PHP มากกว่า ก็เลยเลือกใช้ PHP แทน (ชุมชนมันใหญ่ดี)</p>
<p>วกกลับมาเรื่อง RFC ต่อ คือว่า แนวคิดของ SAP R/3 เ่นี่ย เขาจะอนุญาตให้โปรแกรมคอมพิวเตอร์ภายนอกเรียกเข้ามาที่ SAP R/3 ได้ แต่ไม่ให้เรียกเข้ามาตรง ๆ มาคุ้ยมาเขี่ยตามใจชอบอะไรแบบนั้น คือจะต้องเรียก Function ที่เตรียมเอาไว้ใน SAP R/3 ซึ่ง Function ดังกล่าวก็จะมี Parameter สำหรับรับเข้าและส่งออก และที่สำคัญ Function ดังกล่าวต้องสร้างเอาไว้โดยมีคุณสมบัติเป็น Remote-enabled Module</p>
<p>มีคนแต่งหนังสือสอนเรื่องนี้ไว้หลายคน เช่น <a href="http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/a5d5b6f6-0301-0010-4fae-f3b91bcfd642?QuickLink=index&#038;overridelayout=true&#038;10784662880573">อันนี้</a> เป็นต้น</p>
<p>การเขียนโปรแกรมคอมพิวเตอร์เพื่อเชื่อมต่อกับ SAP R/3 ถือว่าเป็นเรื่องท้าทาย เพราะโดยปรกติแล้ว ก็มีแต่ผลิตภัณฑ์ของ SAP กันเองนั่นแหล่ะ ที่ใช้่ RFC เพื่อเชื่อมต่อรับส่งข้อมูลหากัน คนนอกไม่ค่อยอยากไปยุ่งด้วยเท่าไหร่หรอก มันเป็นระบบกึ่งปิดกึ่งเปิด</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.parinya.net/node/1681/feed</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>ก็ทำมันบน SAP สิ</title>
		<link>https://www.parinya.net/node/1670</link>
					<comments>https://www.parinya.net/node/1670#respond</comments>
		
		<dc:creator><![CDATA[ไท้ ปริญญา]]></dc:creator>
		<pubDate>Thu, 26 Jan 2012 09:40:02 +0000</pubDate>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[SAP]]></category>
		<category><![CDATA[SAP Form]]></category>
		<guid isPermaLink="false">http://www.parinya.net/?p=1670</guid>

					<description><![CDATA[องค์กรส่วนใหญ่มักจะลดคนทำงานครับ ไม่ได้หมายถึงว่าจงใจจะลดนะ แต่หมายถึงว่ามันมีคนทำงานลาออกไป แต่ไม่ได้มีคนทำงานคนใหม่ ๆ เติมเข้ามา มันเลยทำให้เกิดช่องว่าง คืองานมีมากกว่าคน ดังนั้น ผู้ร่วมงานของผมซึ่งเคยรับบทบาทเป็น &#8220;นักวิเคราะห์ระบบงานคอมพิวเตอร์&#8221; ก็ต้องกลายร่างเป็น &#8220;นักเขียนโปรแกรมคอมพิวเตอร์&#8221; ในขณะที่ผู้ร่วมงานบางคนก็ต้องเปลี่ยนบทบาทจาก &#8220;นักบริหารจัดการระบบงานคอมพิวเตอร์&#8221; มาเป็น &#8220;นักวิเคราะห์ระบบงานคอมพิวเตอร์&#8221; ผมเองเป็นคนจำพวกหลัง มันเลยทำให้ผมต้องกลับมาวิเคราะห์ระบบงานคอมพิวเตอร์ เพื่อให้คอมพิวเตอร์มันทำงานตามความต้องการของผู้ใช้งาน!!! เดี๋ยวนี้ผู้ใช้งานเอาแต่ใจตัวเองน้อยลงครับ เริ่มจะไม่สนใจแล้วว่าผลลัพธ์จะออกมาในรูปแบบใด ขอแค่มันออกมาได้เป็นพอแล้ว มันก็เลยทำให้นักเขียนโปรแกรมคอมพิวเตอร์เริ่มมีทางเลือกมากขึ้น ว่าจะแสดงผลลัพธ์ออกมาในรูปแบบใด]]></description>
										<content:encoded><![CDATA[<p>องค์กรส่วนใหญ่มักจะลดคนทำงานครับ ไม่ได้หมายถึงว่าจงใจจะลดนะ แต่หมายถึงว่ามันมีคนทำงานลาออกไป แต่ไม่ได้มีคนทำงานคนใหม่ ๆ เติมเข้ามา มันเลยทำให้เกิดช่องว่าง คืองานมีมากกว่าคน ดังนั้น ผู้ร่วมงานของผมซึ่งเคยรับบทบาทเป็น &#8220;นักวิเคราะห์ระบบงานคอมพิวเตอร์&#8221; ก็ต้องกลายร่างเป็น &#8220;นักเขียนโปรแกรมคอมพิวเตอร์&#8221; ในขณะที่ผู้ร่วมงานบางคนก็ต้องเปลี่ยนบทบาทจาก &#8220;นักบริหารจัดการระบบงานคอมพิวเตอร์&#8221; มาเป็น &#8220;นักวิเคราะห์ระบบงานคอมพิวเตอร์&#8221;</p>
<p>ผมเองเป็นคนจำพวกหลัง มันเลยทำให้ผมต้องกลับมาวิเคราะห์ระบบงานคอมพิวเตอร์ เพื่อให้คอมพิวเตอร์มันทำงานตามความต้องการของผู้ใช้งาน!!!</p>
<p>เดี๋ยวนี้ผู้ใช้งานเอาแต่ใจตัวเองน้อยลงครับ เริ่มจะไม่สนใจแล้วว่าผลลัพธ์จะออกมาในรูปแบบใด ขอแค่มันออกมาได้เป็นพอแล้ว มันก็เลยทำให้นักเขียนโปรแกรมคอมพิวเตอร์เริ่มมีทางเลือกมากขึ้น ว่าจะแสดงผลลัพธ์ออกมาในรูปแบบใด ไม่ว่าจะเป็น Window Form, Web Form, SAP Form หรือ Oracle Form และใช้กลไกใดในการทำให้มันสำเร็จ ไม่ว่าจะเป็น Window Application หรือ Web Application เป็นต้น</p>
<p>ทีนี้ถ้าแหล่งกำเนิดข้อมูลสำหรับนำเข้าระบบฯ มันมาจากหลายแหล่งล่ะ? เราควรจะพิจารณาว่าเราควรจะสร้างกลไกแบบไหนดี เพื่อให้ทุ่นแรงมากที่สุด ซึ่งเรื่องนี้ต้องพิจารณาออกเป็นสามเรื่องใหญ่ ๆ คือ เรื่องแรกพิจารณาถึงสัดส่วนของแหล่งกำเนิดข้อมูล, สองคือการพิจารณาถึงความยากง่ายของกลไก และสามคือการพิจารณาถึงคนที่จะมาสร้างมันขึ้นมา</p>
<p>อย่างเรื่องแรกที่ใช้วิธีพิจารณาถึงสัดส่วนของแหล่งกำเนิดข้อมูล เราก็ต้องมาดูว่าระบบฯที่เราจะสร้างขึ้นมา มันนำเข้าข้อมูลมาจากไหนบ้าง เช่น จาก SAP 50%, จาก Oracle Database 20%, จาก SQL Server 20% และจาก Microsoft Excel อีก 10% งั้นก็ตัดสินใจดิบ ๆ ได้เลยว่า เราควรจะทำโปรแกรมเป็นแบบ SAP Form ทำงานในแบบ Window Application บนสภาพแวดล้อมของ SAP โดยเขียนภาษา ABAP ขึ้นมา แล้วก็เรีียก Function Module มาตรฐานโน่นนี่นั่นที่ SAP จัดเตรียมมาให้ เพื่อสร้างเป็นโปรแกรมคอมพิวเตอร์ขึ้นมา สำหรับต่อเชื่อมกับฐานข้อมูลของ SAP เอง และต่อเชื่อมกับ Oracle Database, SQL Server Database และมีกลไกในการ Import ไฟล์ Microsoft Excel อะไรเงี้ย</p>
<p>ส่วนเรื่องสองคือการพิจารณาถึงความยากง่ายของกลไก เราต้องพิจารณาว่าการเขียนโปรแกรมคอมพิวเตอร์แบบไหนยากกว่ากัน เช่น เขียน ABAP เพื่อทำเป็น SAP Form ยากมั้ย? หรือเขียนด้วย Visual Studio .NET เพื่อทำเป็น Window Form จะยากกว่า หรือเขียนด้วย PHP แล้วใช้ CakePHP เพื่อทำเป็น Web Form แล้วให้มันทำงานแบบ Web Application จะลำบากหน่อยแต่ดูสวยงาม หรือแม้กระทั่งจะเขียนด้วย Developer 2000 เพื่อทำเป็น Oracle Form ซะเลย ซึ่งถ้าสุดท้ายเราพิจารณาแล้วว่าทำเป็น SAP Form มันจะง่ายกว่า เพราะมันมีกลไกเจ๋ง ๆ อย่าง ALV Report เอย มี Selection Screen เอยเอาไว้ให้เราใช้ เราก็ควรจะเลือกมันเป็นลำดับต้น ๆ ก่อน</p>
<p>สำหรับเรื่องที่สามซึ่งเป็นเรื่องสุดท้ายที่เราจะพิจารณา นั่นก็คือคนของเราน่ะถนัดใช้เครื่องมืออะไรในการทำ และมีความพร้อมจะทำหรือเปล่า เช่น เรามี ABAPER ที่เป็นคนของบริษัทภายนอกที่เราจ้างเอาไว้ด้วย man day ตายตัว เราควรจะให้เขาทำมั้ย? หรือ เราควรจะให้คนในองค์กรทำกันเองด้วย Visual Studio .NET เพราะคนของเราก็ทำ Window Application แบบ Win Form เก่งเหมือนกัน? หรือ เราควรจะใช้คนของทีม Web เพื่อให้มาทำ Web Form ดี แต่เอ๊ะ เขาไม่เกี่ยวกับเรื่องนี้ เขาจะยอมทำให้หรือเปล่า?</p>
<p>ถ้าเราพิจารณาทั้งสามเงื่อนไขแล้ว เราเห็นว่ามันเข้าเงื่อนไขสองในสาม ก็เลือกแบบนั้น ๆ ไปก็แล้วกัน ซึ่งตามตัวอย่างข้างต้นจะเห็นว่า การเลือกทำบน SAP จะเป็นคำตอบที่ดีที่สุด เพราะมีการนำเข้าข้อมูลจาก SAP 50% ซึ่งถือเป็นข้อมูลสัดส่วนใหญ่, ใช้ ABAP เพื่อทำ SAP Form ง่ายกว่า เพราะมีเครื่องมือที่เอื้ออำนวยในการเข้าถึงข้อมูล และ ใช้ ABAPER ของบริษัทที่จ้างเอาไว้ เพราะเป็นมืออาชีพกว่า เป็นต้น</p>
<p>สุดท้ายแล้วมันก็แล้วแต่ระบบคอมพิวเตอร์ของแต่ล่ะที่นั่นแหล่ะ ว่าเมื่อพิจารณาจากสามเงื่อนไขนี้แล้ว มันจะไปตกจุดสมดุลตรงไหน ไม่แน่ว่าบางทีอาจจะต้องทำ Window Form ครึ่งนึง Web Form ครึ่งนึง สำหรับระบบคอมพิวเตอร์หนึ่งระบบก็ได้ ใครจะไปรู้!!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.parinya.net/node/1670/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Cloud Computing ราคาถูก</title>
		<link>https://www.parinya.net/node/1626</link>
					<comments>https://www.parinya.net/node/1626#comments</comments>
		
		<dc:creator><![CDATA[ไท้ ปริญญา]]></dc:creator>
		<pubDate>Tue, 11 Oct 2011 02:43:18 +0000</pubDate>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[amazon ec2]]></category>
		<category><![CDATA[cloud computing]]></category>
		<category><![CDATA[google app engine]]></category>
		<category><![CDATA[windows azure]]></category>
		<guid isPermaLink="false">http://www.parinya.net/?p=1626</guid>

					<description><![CDATA[ผมกำลังมองหา Cloud Computing ราคาถูกอยู่ ที่ว่าถูกนี่หมายถึงราคาถูกแต่สมรรถนะสูงนะ ไม่ใช่ถูกเฉย ๆ แต่สมรรถนะน้อยนิดกระจิดริดอะไรแบบนั้น ถึงแม้ทุกวันนี้จะมีบริการ Cloud Computing รายเล็กรายน้อยผุดขึ้นมาเยอะแยะ แต่ทุก ๆ ที่ก็คล้าย ๆ กันคือ แพง และ ไม่เสถียร สุดท้ายก็เลยต้องหันกลับมามองเจ้าใหญ่ ๆ สามเจ้าซึ่งได้แก่ Amazon EC2,]]></description>
										<content:encoded><![CDATA[<p>ผมกำลังมองหา Cloud Computing ราคาถูกอยู่ ที่ว่าถูกนี่หมายถึงราคาถูกแต่สมรรถนะสูงนะ ไม่ใช่ถูกเฉย ๆ แต่สมรรถนะน้อยนิดกระจิดริดอะไรแบบนั้น</p>
<p>ถึงแม้ทุกวันนี้จะมีบริการ Cloud Computing รายเล็กรายน้อยผุดขึ้นมาเยอะแยะ แต่ทุก ๆ ที่ก็คล้าย ๆ กันคือ แพง และ ไม่เสถียร สุดท้ายก็เลยต้องหันกลับมามองเจ้าใหญ่ ๆ สามเจ้าซึ่งได้แก่ Amazon EC2, Windows Azure และ Google App Engine</p>
<p>สำหรับ Amazon EC2 ผมเคยลองแล้ว ใช้ได้ดีแต่ไม่มีอะไรได้มาฟรี คิดตังค์ทุกเม็ดไม่ว่าจะทำอะไร ถ้าใช้เครื่องระดับจิ๋วก็เสียเดือนล่ะ 800 บาท ถ้าเครื่องระดับเล็กก็เสียเดือนล่ะ 2000 บาท ผมเคยลองเครื่องระดับเล็กสองเครื่อง โดนไปเดือนล่ะ 4000 บาท เสียดายตังค์มาก เพราะแค่ลองก็ต้องเสียตังค์ซะล่ะ</p>
<p>ส่วน Window Azure นี่ยังไม่เคยลอง แต่โดยส่วนตัวแล้วไม่ชอบ เพราะมันผูกขาดทุกอย่างกับเทคโนโลยี .NET มันเป็นอะไรที่ขัดแย้งกับการทำ Web Application มาก ๆ เลยไม่ค่อยจะสนใจมันซักเท่าไหร่ ถึงมันจะมี ASP.NET มาให้ใช้ด้วยก็เถอะ</p>
<p>สุดท้ายก็ Google App Engine ซึ่งในตอนแรกผมไม่ค่อยชอบเท่าไหร่ เพราะมันรองรับแต่ภาษาคอมพิวเตอร์อย่าง Java และ Python แต่พอเห็นว่ามันฟรีในระดับเบื้องต้น และถ้าอยากได้เยอะ ๆ ก็ต้องเสียตังค์เพิ่ม มันก็เลยทำให้ผมคิดว่าไอ้เจ้า Google App Engine นี่มันก็น่าสนใจเหมือนกัน แถมล่าสุดผมยังเพิ่งไปค้น ๆ เจอว่า มีคนใจดีทำกลไกเพื่อให้สามารถขับเคลื่อน PHP บน Java ได้อีกต่างหาก อันนี้ยิ่งเลิศใหญ่</p>
<p>ผมเลยว่าผมจะไปลอง ๆ Google App engine ดู เพราะผมชอบของฟรี</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.parinya.net/node/1626/feed</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<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>
	</channel>
</rss>
